From 1699f7ca8d824545e13ed2e7bafe3f2e9b34d060 Mon Sep 17 00:00:00 2001 From: Thomas Peyrin Date: Wed, 27 May 2020 09:07:58 +0200 Subject: [PATCH] removed v12 and v13 suffixes from romulus --- romulus/Implementations/crypto_aead/romulusm1+/LWC_AEAD_KAT_128_128.txt | 7623 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ romulus/Implementations/crypto_aead/romulusm1+/armcortexm/api.h | 5 +++++ romulus/Implementations/crypto_aead/romulusm1+/armcortexm/crypto_aead.h | 13 +++++++++++++ romulus/Implementations/crypto_aead/romulusm1+/armcortexm/encrypt.c | 383 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ romulus/Implementations/crypto_aead/romulusm1+/armcortexm/romulus.h | 69 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ romulus/Implementations/crypto_aead/romulusm1+/armcortexm/skinny128.h | 15 +++++++++++++++ romulus/Implementations/crypto_aead/romulusm1+/armcortexm/skinny128.s | 1706 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ romulus/Implementations/crypto_aead/romulusm1+/armsrc_NEC/api.h | 5 +++++ romulus/Implementations/crypto_aead/romulusm1+/armsrc_NEC/crypto_aead.h | 11 +++++++++++ romulus/Implementations/crypto_aead/romulusm1+/armsrc_NEC/encrypt.c | 738 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ romulus/Implementations/crypto_aead/romulusm1+/armsrc_NEC/skinny.h | 8 ++++++++ romulus/Implementations/crypto_aead/romulusm1+/armsrc_NEC/skinny_key_schedule2.c | 2163 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ romulus/Implementations/crypto_aead/romulusm1+/armsrc_NEC/skinny_key_schedule3.c | 2201 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ romulus/Implementations/crypto_aead/romulusm1+/armsrc_NEC/skinny_main.c | 3462 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ romulus/Implementations/crypto_aead/romulusm1+/opt32/api.h | 5 +++++ romulus/Implementations/crypto_aead/romulusm1+/opt32/crypto_aead.h | 18 ++++++++++++++++++ romulus/Implementations/crypto_aead/romulusm1+/opt32/encrypt.c | 367 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ romulus/Implementations/crypto_aead/romulusm1+/opt32/romulus.h | 69 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ romulus/Implementations/crypto_aead/romulusm1+/opt32/skinny128.c | 107 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ romulus/Implementations/crypto_aead/romulusm1+/opt32/skinny128.h | 95 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ romulus/Implementations/crypto_aead/romulusm1+/opt32/tk_schedule.c | 368 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ romulus/Implementations/crypto_aead/romulusm1+/opt32/tk_schedule.h | 39 +++++++++++++++++++++++++++++++++++++++ romulus/Implementations/crypto_aead/romulusm1+v13/LWC_AEAD_KAT_128_128.txt | 7623 --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- romulus/Implementations/crypto_aead/romulusm1+v13/armcortexm/api.h | 5 ----- romulus/Implementations/crypto_aead/romulusm1+v13/armcortexm/crypto_aead.h | 13 ------------- romulus/Implementations/crypto_aead/romulusm1+v13/armcortexm/encrypt.c | 383 ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- romulus/Implementations/crypto_aead/romulusm1+v13/armcortexm/romulus.h | 69 --------------------------------------------------------------------- romulus/Implementations/crypto_aead/romulusm1+v13/armcortexm/skinny128.h | 15 --------------- romulus/Implementations/crypto_aead/romulusm1+v13/armcortexm/skinny128.s | 1706 -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- romulus/Implementations/crypto_aead/romulusm1+v13/armsrc_NEC/api.h | 5 ----- romulus/Implementations/crypto_aead/romulusm1+v13/armsrc_NEC/crypto_aead.h | 11 ----------- romulus/Implementations/crypto_aead/romulusm1+v13/armsrc_NEC/encrypt.c | 738 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ romulus/Implementations/crypto_aead/romulusm1+v13/armsrc_NEC/skinny.h | 8 -------- romulus/Implementations/crypto_aead/romulusm1+v13/armsrc_NEC/skinny_key_schedule2.c | 2163 --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- romulus/Implementations/crypto_aead/romulusm1+v13/armsrc_NEC/skinny_key_schedule3.c | 2201 ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- romulus/Implementations/crypto_aead/romulusm1+v13/armsrc_NEC/skinny_main.c | 3462 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ romulus/Implementations/crypto_aead/romulusm1+v13/opt32/api.h | 5 ----- romulus/Implementations/crypto_aead/romulusm1+v13/opt32/crypto_aead.h | 18 ------------------ romulus/Implementations/crypto_aead/romulusm1+v13/opt32/encrypt.c | 367 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- romulus/Implementations/crypto_aead/romulusm1+v13/opt32/romulus.h | 69 --------------------------------------------------------------------- romulus/Implementations/crypto_aead/romulusm1+v13/opt32/skinny128.c | 107 ----------------------------------------------------------------------------------------------------------- romulus/Implementations/crypto_aead/romulusm1+v13/opt32/skinny128.h | 95 ----------------------------------------------------------------------------------------------- romulus/Implementations/crypto_aead/romulusm1+v13/opt32/tk_schedule.c | 368 -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- romulus/Implementations/crypto_aead/romulusm1+v13/opt32/tk_schedule.h | 39 --------------------------------------- romulus/Implementations/crypto_aead/romulusm1/LWC_AEAD_KAT_128_128.txt | 7623 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ romulus/Implementations/crypto_aead/romulusm1/armcortexm/api.h | 5 +++++ romulus/Implementations/crypto_aead/romulusm1/armcortexm/crypto_aead.h | 13 +++++++++++++ romulus/Implementations/crypto_aead/romulusm1/armcortexm/encrypt.c | 383 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ romulus/Implementations/crypto_aead/romulusm1/armcortexm/romulus.h | 69 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ romulus/Implementations/crypto_aead/romulusm1/armcortexm/skinny128.h | 17 +++++++++++++++++ romulus/Implementations/crypto_aead/romulusm1/armcortexm/skinny128.s | 1974 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ romulus/Implementations/crypto_aead/romulusm1/armsrc_NEC/api.h | 5 +++++ romulus/Implementations/crypto_aead/romulusm1/armsrc_NEC/crypto_aead.h | 11 +++++++++++ romulus/Implementations/crypto_aead/romulusm1/armsrc_NEC/encrypt.c | 738 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ romulus/Implementations/crypto_aead/romulusm1/armsrc_NEC/genkat_aead.c | 161 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ romulus/Implementations/crypto_aead/romulusm1/armsrc_NEC/skinny.h | 8 ++++++++ romulus/Implementations/crypto_aead/romulusm1/armsrc_NEC/skinny_key_schedule2.c | 3027 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ romulus/Implementations/crypto_aead/romulusm1/armsrc_NEC/skinny_key_schedule3.c | 2898 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ romulus/Implementations/crypto_aead/romulusm1/armsrc_NEC/skinny_main.c | 4687 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ romulus/Implementations/crypto_aead/romulusm1/opt32/api.h | 5 +++++ romulus/Implementations/crypto_aead/romulusm1/opt32/crypto_aead.h | 18 ++++++++++++++++++ romulus/Implementations/crypto_aead/romulusm1/opt32/encrypt.c | 367 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ romulus/Implementations/crypto_aead/romulusm1/opt32/romulus.h | 69 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ romulus/Implementations/crypto_aead/romulusm1/opt32/skinny128.c | 110 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ romulus/Implementations/crypto_aead/romulusm1/opt32/skinny128.h | 94 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ romulus/Implementations/crypto_aead/romulusm1/opt32/tk_schedule.c | 379 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ romulus/Implementations/crypto_aead/romulusm1/opt32/tk_schedule.h | 39 +++++++++++++++++++++++++++++++++++++++ romulus/Implementations/crypto_aead/romulusm1/ref/api.h | 5 +++++ romulus/Implementations/crypto_aead/romulusm1/ref/encrypt.c | 711 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ romulus/Implementations/crypto_aead/romulusm1/ref/genkat_aead.c | 163 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ romulus/Implementations/crypto_aead/romulusm1/ref/skinny.h | 1 + romulus/Implementations/crypto_aead/romulusm1/ref/skinny_reference.c | 547 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ romulus/Implementations/crypto_aead/romulusm1/ref/variant.h | 3 +++ romulus/Implementations/crypto_aead/romulusm1v12/LWC_AEAD_KAT_128_128.txt | 7623 --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- romulus/Implementations/crypto_aead/romulusm1v12/armcortexm/api.h | 5 ----- romulus/Implementations/crypto_aead/romulusm1v12/armcortexm/crypto_aead.h | 13 ------------- romulus/Implementations/crypto_aead/romulusm1v12/armcortexm/encrypt.c | 383 ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- romulus/Implementations/crypto_aead/romulusm1v12/armcortexm/romulus.h | 69 --------------------------------------------------------------------- romulus/Implementations/crypto_aead/romulusm1v12/armcortexm/skinny128.h | 17 ----------------- romulus/Implementations/crypto_aead/romulusm1v12/armcortexm/skinny128.s | 1974 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ romulus/Implementations/crypto_aead/romulusm1v12/armsrc_NEC/api.h | 5 ----- romulus/Implementations/crypto_aead/romulusm1v12/armsrc_NEC/crypto_aead.h | 11 ----------- romulus/Implementations/crypto_aead/romulusm1v12/armsrc_NEC/encrypt.c | 738 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ romulus/Implementations/crypto_aead/romulusm1v12/armsrc_NEC/genkat_aead.c | 161 ----------------------------------------------------------------------------------------------------------------------------------------------------------------- romulus/Implementations/crypto_aead/romulusm1v12/armsrc_NEC/skinny.h | 8 -------- romulus/Implementations/crypto_aead/romulusm1v12/armsrc_NEC/skinny_key_schedule2.c | 3027 --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- romulus/Implementations/crypto_aead/romulusm1v12/armsrc_NEC/skinny_key_schedule3.c | 2898 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ romulus/Implementations/crypto_aead/romulusm1v12/armsrc_NEC/skinny_main.c | 4687 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- romulus/Implementations/crypto_aead/romulusm1v12/opt32/api.h | 5 ----- romulus/Implementations/crypto_aead/romulusm1v12/opt32/crypto_aead.h | 18 ------------------ romulus/Implementations/crypto_aead/romulusm1v12/opt32/encrypt.c | 367 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- romulus/Implementations/crypto_aead/romulusm1v12/opt32/romulus.h | 69 --------------------------------------------------------------------- romulus/Implementations/crypto_aead/romulusm1v12/opt32/skinny128.c | 110 -------------------------------------------------------------------------------------------------------------- romulus/Implementations/crypto_aead/romulusm1v12/opt32/skinny128.h | 94 ---------------------------------------------------------------------------------------------- romulus/Implementations/crypto_aead/romulusm1v12/opt32/tk_schedule.c | 379 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- romulus/Implementations/crypto_aead/romulusm1v12/opt32/tk_schedule.h | 39 --------------------------------------- romulus/Implementations/crypto_aead/romulusm1v12/ref/api.h | 5 ----- romulus/Implementations/crypto_aead/romulusm1v12/ref/encrypt.c | 711 --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- romulus/Implementations/crypto_aead/romulusm1v12/ref/genkat_aead.c | 163 ------------------------------------------------------------------------------------------------------------------------------------------------------------------- romulus/Implementations/crypto_aead/romulusm1v12/ref/skinny.h | 1 - romulus/Implementations/crypto_aead/romulusm1v12/ref/skinny_reference.c | 547 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- romulus/Implementations/crypto_aead/romulusm1v12/ref/variant.h | 3 --- romulus/Implementations/crypto_aead/romulusm2/LWC_AEAD_KAT_128_96.txt | 7623 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ romulus/Implementations/crypto_aead/romulusm2/ref/api.h | 5 +++++ romulus/Implementations/crypto_aead/romulusm2/ref/encrypt.c | 859 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ romulus/Implementations/crypto_aead/romulusm2/ref/genkat_aead.c | 163 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ romulus/Implementations/crypto_aead/romulusm2/ref/skinny.h | 1 + romulus/Implementations/crypto_aead/romulusm2/ref/skinny_reference.c | 547 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ romulus/Implementations/crypto_aead/romulusm2/ref/variant.h | 3 +++ romulus/Implementations/crypto_aead/romulusm2v12/LWC_AEAD_KAT_128_96.txt | 7623 --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- romulus/Implementations/crypto_aead/romulusm2v12/ref/api.h | 5 ----- romulus/Implementations/crypto_aead/romulusm2v12/ref/encrypt.c | 859 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- romulus/Implementations/crypto_aead/romulusm2v12/ref/genkat_aead.c | 163 ------------------------------------------------------------------------------------------------------------------------------------------------------------------- romulus/Implementations/crypto_aead/romulusm2v12/ref/skinny.h | 1 - romulus/Implementations/crypto_aead/romulusm2v12/ref/skinny_reference.c | 547 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- romulus/Implementations/crypto_aead/romulusm2v12/ref/variant.h | 3 --- romulus/Implementations/crypto_aead/romulusm3/LWC_AEAD_KAT_128_96.txt | 7623 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ romulus/Implementations/crypto_aead/romulusm3/ref/api.h | 5 +++++ romulus/Implementations/crypto_aead/romulusm3/ref/encrypt.c | 707 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ romulus/Implementations/crypto_aead/romulusm3/ref/genkat_aead.c | 163 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ romulus/Implementations/crypto_aead/romulusm3/ref/skinny.h | 1 + romulus/Implementations/crypto_aead/romulusm3/ref/skinny_reference.c | 547 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ romulus/Implementations/crypto_aead/romulusm3/ref/variant.h | 3 +++ romulus/Implementations/crypto_aead/romulusm3v12/LWC_AEAD_KAT_128_96.txt | 7623 --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- romulus/Implementations/crypto_aead/romulusm3v12/ref/api.h | 5 ----- romulus/Implementations/crypto_aead/romulusm3v12/ref/encrypt.c | 707 ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- romulus/Implementations/crypto_aead/romulusm3v12/ref/genkat_aead.c | 163 ------------------------------------------------------------------------------------------------------------------------------------------------------------------- romulus/Implementations/crypto_aead/romulusm3v12/ref/skinny.h | 1 - romulus/Implementations/crypto_aead/romulusm3v12/ref/skinny_reference.c | 547 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- romulus/Implementations/crypto_aead/romulusm3v12/ref/variant.h | 3 --- romulus/Implementations/crypto_aead/romulusn1+/LWC_AEAD_KAT_128_128.txt | 7623 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ romulus/Implementations/crypto_aead/romulusn1+/armcortexm/api.h | 5 +++++ romulus/Implementations/crypto_aead/romulusn1+/armcortexm/crypto_aead.h | 13 +++++++++++++ romulus/Implementations/crypto_aead/romulusn1+/armcortexm/encrypt.c | 261 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ romulus/Implementations/crypto_aead/romulusn1+/armcortexm/romulus.h | 68 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ romulus/Implementations/crypto_aead/romulusn1+/armcortexm/skinny128.h | 15 +++++++++++++++ romulus/Implementations/crypto_aead/romulusn1+/armcortexm/skinny128.s | 1706 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ romulus/Implementations/crypto_aead/romulusn1+/armsrc_NEC/api.h | 5 +++++ romulus/Implementations/crypto_aead/romulusn1+/armsrc_NEC/crypto_aead.h | 11 +++++++++++ romulus/Implementations/crypto_aead/romulusn1+/armsrc_NEC/encrypt.c | 541 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ romulus/Implementations/crypto_aead/romulusn1+/armsrc_NEC/skinny.h | 8 ++++++++ romulus/Implementations/crypto_aead/romulusn1+/armsrc_NEC/skinny_key_schedule2.c | 2163 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ romulus/Implementations/crypto_aead/romulusn1+/armsrc_NEC/skinny_key_schedule3.c | 2201 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ romulus/Implementations/crypto_aead/romulusn1+/armsrc_NEC/skinny_main.c | 3462 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ romulus/Implementations/crypto_aead/romulusn1+/opt32/api.h | 5 +++++ romulus/Implementations/crypto_aead/romulusn1+/opt32/crypto_aead.h | 18 ++++++++++++++++++ romulus/Implementations/crypto_aead/romulusn1+/opt32/encrypt.c | 270 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ romulus/Implementations/crypto_aead/romulusn1+/opt32/romulus.h | 68 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ romulus/Implementations/crypto_aead/romulusn1+/opt32/skinny128.c | 107 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ romulus/Implementations/crypto_aead/romulusn1+/opt32/skinny128.h | 95 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ romulus/Implementations/crypto_aead/romulusn1+/opt32/tk_schedule.c | 368 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ romulus/Implementations/crypto_aead/romulusn1+/opt32/tk_schedule.h | 39 +++++++++++++++++++++++++++++++++++++++ romulus/Implementations/crypto_aead/romulusn1+v13/LWC_AEAD_KAT_128_128.txt | 7623 --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- romulus/Implementations/crypto_aead/romulusn1+v13/armcortexm/api.h | 5 ----- romulus/Implementations/crypto_aead/romulusn1+v13/armcortexm/crypto_aead.h | 13 ------------- romulus/Implementations/crypto_aead/romulusn1+v13/armcortexm/encrypt.c | 261 --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- romulus/Implementations/crypto_aead/romulusn1+v13/armcortexm/romulus.h | 68 -------------------------------------------------------------------- romulus/Implementations/crypto_aead/romulusn1+v13/armcortexm/skinny128.h | 15 --------------- romulus/Implementations/crypto_aead/romulusn1+v13/armcortexm/skinny128.s | 1706 -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- romulus/Implementations/crypto_aead/romulusn1+v13/armsrc_NEC/api.h | 5 ----- romulus/Implementations/crypto_aead/romulusn1+v13/armsrc_NEC/crypto_aead.h | 11 ----------- romulus/Implementations/crypto_aead/romulusn1+v13/armsrc_NEC/encrypt.c | 541 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- romulus/Implementations/crypto_aead/romulusn1+v13/armsrc_NEC/skinny.h | 8 -------- romulus/Implementations/crypto_aead/romulusn1+v13/armsrc_NEC/skinny_key_schedule2.c | 2163 --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- romulus/Implementations/crypto_aead/romulusn1+v13/armsrc_NEC/skinny_key_schedule3.c | 2201 ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- romulus/Implementations/crypto_aead/romulusn1+v13/armsrc_NEC/skinny_main.c | 3462 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ romulus/Implementations/crypto_aead/romulusn1+v13/opt32/api.h | 5 ----- romulus/Implementations/crypto_aead/romulusn1+v13/opt32/crypto_aead.h | 18 ------------------ romulus/Implementations/crypto_aead/romulusn1+v13/opt32/encrypt.c | 270 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ romulus/Implementations/crypto_aead/romulusn1+v13/opt32/romulus.h | 68 -------------------------------------------------------------------- romulus/Implementations/crypto_aead/romulusn1+v13/opt32/skinny128.c | 107 ----------------------------------------------------------------------------------------------------------- romulus/Implementations/crypto_aead/romulusn1+v13/opt32/skinny128.h | 95 ----------------------------------------------------------------------------------------------- romulus/Implementations/crypto_aead/romulusn1+v13/opt32/tk_schedule.c | 368 -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- romulus/Implementations/crypto_aead/romulusn1+v13/opt32/tk_schedule.h | 39 --------------------------------------- romulus/Implementations/crypto_aead/romulusn1/LWC_AEAD_KAT_128_128.txt | 7623 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ romulus/Implementations/crypto_aead/romulusn1/armcortexm/api.h | 5 +++++ romulus/Implementations/crypto_aead/romulusn1/armcortexm/crypto_aead.h | 13 +++++++++++++ romulus/Implementations/crypto_aead/romulusn1/armcortexm/encrypt.c | 261 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ romulus/Implementations/crypto_aead/romulusn1/armcortexm/romulus.h | 68 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ romulus/Implementations/crypto_aead/romulusn1/armcortexm/skinny128.h | 17 +++++++++++++++++ romulus/Implementations/crypto_aead/romulusn1/armcortexm/skinny128.s | 1974 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ romulus/Implementations/crypto_aead/romulusn1/armsrc_NEC/api.h | 5 +++++ romulus/Implementations/crypto_aead/romulusn1/armsrc_NEC/crypto_aead.h | 11 +++++++++++ romulus/Implementations/crypto_aead/romulusn1/armsrc_NEC/encrypt.c | 541 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ romulus/Implementations/crypto_aead/romulusn1/armsrc_NEC/genkat_aead.c | 161 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ romulus/Implementations/crypto_aead/romulusn1/armsrc_NEC/skinny.h | 8 ++++++++ romulus/Implementations/crypto_aead/romulusn1/armsrc_NEC/skinny_key_schedule2.c | 3027 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ romulus/Implementations/crypto_aead/romulusn1/armsrc_NEC/skinny_key_schedule3.c | 3081 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ romulus/Implementations/crypto_aead/romulusn1/armsrc_NEC/skinny_main.c | 4687 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ romulus/Implementations/crypto_aead/romulusn1/opt32/api.h | 5 +++++ romulus/Implementations/crypto_aead/romulusn1/opt32/crypto_aead.h | 18 ++++++++++++++++++ romulus/Implementations/crypto_aead/romulusn1/opt32/encrypt.c | 270 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ romulus/Implementations/crypto_aead/romulusn1/opt32/romulus.h | 68 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ romulus/Implementations/crypto_aead/romulusn1/opt32/skinny128.c | 110 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ romulus/Implementations/crypto_aead/romulusn1/opt32/skinny128.h | 94 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ romulus/Implementations/crypto_aead/romulusn1/opt32/tk_schedule.c | 379 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ romulus/Implementations/crypto_aead/romulusn1/opt32/tk_schedule.h | 39 +++++++++++++++++++++++++++++++++++++++ romulus/Implementations/crypto_aead/romulusn1/ref/api.h | 5 +++++ romulus/Implementations/crypto_aead/romulusn1/ref/encrypt.c | 493 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ romulus/Implementations/crypto_aead/romulusn1/ref/genkat_aead.c | 163 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ romulus/Implementations/crypto_aead/romulusn1/ref/skinny.h | 1 + romulus/Implementations/crypto_aead/romulusn1/ref/skinny_reference.c | 547 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ romulus/Implementations/crypto_aead/romulusn1/ref/variant.h | 3 +++ romulus/Implementations/crypto_aead/romulusn1v12/LWC_AEAD_KAT_128_128.txt | 7623 --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- romulus/Implementations/crypto_aead/romulusn1v12/armcortexm/api.h | 5 ----- romulus/Implementations/crypto_aead/romulusn1v12/armcortexm/crypto_aead.h | 13 ------------- romulus/Implementations/crypto_aead/romulusn1v12/armcortexm/encrypt.c | 261 --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- romulus/Implementations/crypto_aead/romulusn1v12/armcortexm/romulus.h | 68 -------------------------------------------------------------------- romulus/Implementations/crypto_aead/romulusn1v12/armcortexm/skinny128.h | 17 ----------------- romulus/Implementations/crypto_aead/romulusn1v12/armcortexm/skinny128.s | 1974 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ romulus/Implementations/crypto_aead/romulusn1v12/armsrc_NEC/api.h | 5 ----- romulus/Implementations/crypto_aead/romulusn1v12/armsrc_NEC/crypto_aead.h | 11 ----------- romulus/Implementations/crypto_aead/romulusn1v12/armsrc_NEC/encrypt.c | 541 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- romulus/Implementations/crypto_aead/romulusn1v12/armsrc_NEC/genkat_aead.c | 161 ----------------------------------------------------------------------------------------------------------------------------------------------------------------- romulus/Implementations/crypto_aead/romulusn1v12/armsrc_NEC/skinny.h | 8 -------- romulus/Implementations/crypto_aead/romulusn1v12/armsrc_NEC/skinny_key_schedule2.c | 3027 --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- romulus/Implementations/crypto_aead/romulusn1v12/armsrc_NEC/skinny_key_schedule3.c | 3081 --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- romulus/Implementations/crypto_aead/romulusn1v12/armsrc_NEC/skinny_main.c | 4687 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- romulus/Implementations/crypto_aead/romulusn1v12/opt32/api.h | 5 ----- romulus/Implementations/crypto_aead/romulusn1v12/opt32/crypto_aead.h | 18 ------------------ romulus/Implementations/crypto_aead/romulusn1v12/opt32/encrypt.c | 270 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ romulus/Implementations/crypto_aead/romulusn1v12/opt32/romulus.h | 68 -------------------------------------------------------------------- romulus/Implementations/crypto_aead/romulusn1v12/opt32/skinny128.c | 110 -------------------------------------------------------------------------------------------------------------- romulus/Implementations/crypto_aead/romulusn1v12/opt32/skinny128.h | 94 ---------------------------------------------------------------------------------------------- romulus/Implementations/crypto_aead/romulusn1v12/opt32/tk_schedule.c | 379 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- romulus/Implementations/crypto_aead/romulusn1v12/opt32/tk_schedule.h | 39 --------------------------------------- romulus/Implementations/crypto_aead/romulusn1v12/ref/api.h | 5 ----- romulus/Implementations/crypto_aead/romulusn1v12/ref/encrypt.c | 493 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- romulus/Implementations/crypto_aead/romulusn1v12/ref/genkat_aead.c | 163 ------------------------------------------------------------------------------------------------------------------------------------------------------------------- romulus/Implementations/crypto_aead/romulusn1v12/ref/skinny.h | 1 - romulus/Implementations/crypto_aead/romulusn1v12/ref/skinny_reference.c | 547 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- romulus/Implementations/crypto_aead/romulusn1v12/ref/variant.h | 3 --- romulus/Implementations/crypto_aead/romulusn2/LWC_AEAD_KAT_128_96.txt | 7623 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ romulus/Implementations/crypto_aead/romulusn2/ref/api.h | 5 +++++ romulus/Implementations/crypto_aead/romulusn2/ref/encrypt.c | 505 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ romulus/Implementations/crypto_aead/romulusn2/ref/genkat_aead.c | 162 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ romulus/Implementations/crypto_aead/romulusn2/ref/skinny.h | 1 + romulus/Implementations/crypto_aead/romulusn2/ref/skinny_reference.c | 547 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ romulus/Implementations/crypto_aead/romulusn2/ref/variant.h | 3 +++ romulus/Implementations/crypto_aead/romulusn2v12/LWC_AEAD_KAT_128_96.txt | 7623 --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- romulus/Implementations/crypto_aead/romulusn2v12/ref/api.h | 5 ----- romulus/Implementations/crypto_aead/romulusn2v12/ref/encrypt.c | 505 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- romulus/Implementations/crypto_aead/romulusn2v12/ref/genkat_aead.c | 162 ------------------------------------------------------------------------------------------------------------------------------------------------------------------ romulus/Implementations/crypto_aead/romulusn2v12/ref/skinny.h | 1 - romulus/Implementations/crypto_aead/romulusn2v12/ref/skinny_reference.c | 547 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- romulus/Implementations/crypto_aead/romulusn2v12/ref/variant.h | 3 --- romulus/Implementations/crypto_aead/romulusn3/LWC_AEAD_KAT_128_96.txt | 7623 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ romulus/Implementations/crypto_aead/romulusn3/ref/api.h | 5 +++++ romulus/Implementations/crypto_aead/romulusn3/ref/encrypt.c | 518 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ romulus/Implementations/crypto_aead/romulusn3/ref/genkat_aead.c | 162 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ romulus/Implementations/crypto_aead/romulusn3/ref/skinny.h | 1 + romulus/Implementations/crypto_aead/romulusn3/ref/skinny_reference.c | 547 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ romulus/Implementations/crypto_aead/romulusn3/ref/variant.h | 3 +++ romulus/Implementations/crypto_aead/romulusn3v12/LWC_AEAD_KAT_128_96.txt | 7623 --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- romulus/Implementations/crypto_aead/romulusn3v12/ref/api.h | 5 ----- romulus/Implementations/crypto_aead/romulusn3v12/ref/encrypt.c | 518 -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- romulus/Implementations/crypto_aead/romulusn3v12/ref/genkat_aead.c | 162 ------------------------------------------------------------------------------------------------------------------------------------------------------------------ romulus/Implementations/crypto_aead/romulusn3v12/ref/skinny.h | 1 - romulus/Implementations/crypto_aead/romulusn3v12/ref/skinny_reference.c | 547 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- romulus/Implementations/crypto_aead/romulusn3v12/ref/variant.h | 3 --- 260 files changed, 122284 insertions(+), 122284 deletions(-) create mode 100644 romulus/Implementations/crypto_aead/romulusm1+/LWC_AEAD_KAT_128_128.txt create mode 100644 romulus/Implementations/crypto_aead/romulusm1+/armcortexm/api.h create mode 100644 romulus/Implementations/crypto_aead/romulusm1+/armcortexm/crypto_aead.h create mode 100644 romulus/Implementations/crypto_aead/romulusm1+/armcortexm/encrypt.c create mode 100644 romulus/Implementations/crypto_aead/romulusm1+/armcortexm/romulus.h create mode 100644 romulus/Implementations/crypto_aead/romulusm1+/armcortexm/skinny128.h create mode 100644 romulus/Implementations/crypto_aead/romulusm1+/armcortexm/skinny128.s create mode 100644 romulus/Implementations/crypto_aead/romulusm1+/armsrc_NEC/api.h create mode 100644 romulus/Implementations/crypto_aead/romulusm1+/armsrc_NEC/crypto_aead.h create mode 100644 romulus/Implementations/crypto_aead/romulusm1+/armsrc_NEC/encrypt.c create mode 100644 romulus/Implementations/crypto_aead/romulusm1+/armsrc_NEC/skinny.h create mode 100644 romulus/Implementations/crypto_aead/romulusm1+/armsrc_NEC/skinny_key_schedule2.c create mode 100644 romulus/Implementations/crypto_aead/romulusm1+/armsrc_NEC/skinny_key_schedule3.c create mode 100644 romulus/Implementations/crypto_aead/romulusm1+/armsrc_NEC/skinny_main.c create mode 100644 romulus/Implementations/crypto_aead/romulusm1+/opt32/api.h create mode 100644 romulus/Implementations/crypto_aead/romulusm1+/opt32/crypto_aead.h create mode 100644 romulus/Implementations/crypto_aead/romulusm1+/opt32/encrypt.c create mode 100644 romulus/Implementations/crypto_aead/romulusm1+/opt32/romulus.h create mode 100644 romulus/Implementations/crypto_aead/romulusm1+/opt32/skinny128.c create mode 100644 romulus/Implementations/crypto_aead/romulusm1+/opt32/skinny128.h create mode 100644 romulus/Implementations/crypto_aead/romulusm1+/opt32/tk_schedule.c create mode 100644 romulus/Implementations/crypto_aead/romulusm1+/opt32/tk_schedule.h delete mode 100644 romulus/Implementations/crypto_aead/romulusm1+v13/LWC_AEAD_KAT_128_128.txt delete mode 100644 romulus/Implementations/crypto_aead/romulusm1+v13/armcortexm/api.h delete mode 100644 romulus/Implementations/crypto_aead/romulusm1+v13/armcortexm/crypto_aead.h delete mode 100644 romulus/Implementations/crypto_aead/romulusm1+v13/armcortexm/encrypt.c delete mode 100644 romulus/Implementations/crypto_aead/romulusm1+v13/armcortexm/romulus.h delete mode 100644 romulus/Implementations/crypto_aead/romulusm1+v13/armcortexm/skinny128.h delete mode 100644 romulus/Implementations/crypto_aead/romulusm1+v13/armcortexm/skinny128.s delete mode 100644 romulus/Implementations/crypto_aead/romulusm1+v13/armsrc_NEC/api.h delete mode 100644 romulus/Implementations/crypto_aead/romulusm1+v13/armsrc_NEC/crypto_aead.h delete mode 100644 romulus/Implementations/crypto_aead/romulusm1+v13/armsrc_NEC/encrypt.c delete mode 100644 romulus/Implementations/crypto_aead/romulusm1+v13/armsrc_NEC/skinny.h delete mode 100644 romulus/Implementations/crypto_aead/romulusm1+v13/armsrc_NEC/skinny_key_schedule2.c delete mode 100644 romulus/Implementations/crypto_aead/romulusm1+v13/armsrc_NEC/skinny_key_schedule3.c delete mode 100644 romulus/Implementations/crypto_aead/romulusm1+v13/armsrc_NEC/skinny_main.c delete mode 100644 romulus/Implementations/crypto_aead/romulusm1+v13/opt32/api.h delete mode 100644 romulus/Implementations/crypto_aead/romulusm1+v13/opt32/crypto_aead.h delete mode 100644 romulus/Implementations/crypto_aead/romulusm1+v13/opt32/encrypt.c delete mode 100644 romulus/Implementations/crypto_aead/romulusm1+v13/opt32/romulus.h delete mode 100644 romulus/Implementations/crypto_aead/romulusm1+v13/opt32/skinny128.c delete mode 100644 romulus/Implementations/crypto_aead/romulusm1+v13/opt32/skinny128.h delete mode 100644 romulus/Implementations/crypto_aead/romulusm1+v13/opt32/tk_schedule.c delete mode 100644 romulus/Implementations/crypto_aead/romulusm1+v13/opt32/tk_schedule.h create mode 100644 romulus/Implementations/crypto_aead/romulusm1/LWC_AEAD_KAT_128_128.txt create mode 100644 romulus/Implementations/crypto_aead/romulusm1/armcortexm/api.h create mode 100644 romulus/Implementations/crypto_aead/romulusm1/armcortexm/crypto_aead.h create mode 100644 romulus/Implementations/crypto_aead/romulusm1/armcortexm/encrypt.c create mode 100644 romulus/Implementations/crypto_aead/romulusm1/armcortexm/romulus.h create mode 100644 romulus/Implementations/crypto_aead/romulusm1/armcortexm/skinny128.h create mode 100644 romulus/Implementations/crypto_aead/romulusm1/armcortexm/skinny128.s create mode 100644 romulus/Implementations/crypto_aead/romulusm1/armsrc_NEC/api.h create mode 100644 romulus/Implementations/crypto_aead/romulusm1/armsrc_NEC/crypto_aead.h create mode 100644 romulus/Implementations/crypto_aead/romulusm1/armsrc_NEC/encrypt.c create mode 100644 romulus/Implementations/crypto_aead/romulusm1/armsrc_NEC/genkat_aead.c create mode 100644 romulus/Implementations/crypto_aead/romulusm1/armsrc_NEC/skinny.h create mode 100644 romulus/Implementations/crypto_aead/romulusm1/armsrc_NEC/skinny_key_schedule2.c create mode 100644 romulus/Implementations/crypto_aead/romulusm1/armsrc_NEC/skinny_key_schedule3.c create mode 100644 romulus/Implementations/crypto_aead/romulusm1/armsrc_NEC/skinny_main.c create mode 100644 romulus/Implementations/crypto_aead/romulusm1/opt32/api.h create mode 100644 romulus/Implementations/crypto_aead/romulusm1/opt32/crypto_aead.h create mode 100644 romulus/Implementations/crypto_aead/romulusm1/opt32/encrypt.c create mode 100644 romulus/Implementations/crypto_aead/romulusm1/opt32/romulus.h create mode 100644 romulus/Implementations/crypto_aead/romulusm1/opt32/skinny128.c create mode 100644 romulus/Implementations/crypto_aead/romulusm1/opt32/skinny128.h create mode 100644 romulus/Implementations/crypto_aead/romulusm1/opt32/tk_schedule.c create mode 100644 romulus/Implementations/crypto_aead/romulusm1/opt32/tk_schedule.h create mode 100644 romulus/Implementations/crypto_aead/romulusm1/ref/api.h create mode 100644 romulus/Implementations/crypto_aead/romulusm1/ref/encrypt.c create mode 100644 romulus/Implementations/crypto_aead/romulusm1/ref/genkat_aead.c create mode 100644 romulus/Implementations/crypto_aead/romulusm1/ref/skinny.h create mode 100644 romulus/Implementations/crypto_aead/romulusm1/ref/skinny_reference.c create mode 100644 romulus/Implementations/crypto_aead/romulusm1/ref/variant.h delete mode 100644 romulus/Implementations/crypto_aead/romulusm1v12/LWC_AEAD_KAT_128_128.txt delete mode 100644 romulus/Implementations/crypto_aead/romulusm1v12/armcortexm/api.h delete mode 100644 romulus/Implementations/crypto_aead/romulusm1v12/armcortexm/crypto_aead.h delete mode 100644 romulus/Implementations/crypto_aead/romulusm1v12/armcortexm/encrypt.c delete mode 100644 romulus/Implementations/crypto_aead/romulusm1v12/armcortexm/romulus.h delete mode 100644 romulus/Implementations/crypto_aead/romulusm1v12/armcortexm/skinny128.h delete mode 100644 romulus/Implementations/crypto_aead/romulusm1v12/armcortexm/skinny128.s delete mode 100644 romulus/Implementations/crypto_aead/romulusm1v12/armsrc_NEC/api.h delete mode 100644 romulus/Implementations/crypto_aead/romulusm1v12/armsrc_NEC/crypto_aead.h delete mode 100644 romulus/Implementations/crypto_aead/romulusm1v12/armsrc_NEC/encrypt.c delete mode 100644 romulus/Implementations/crypto_aead/romulusm1v12/armsrc_NEC/genkat_aead.c delete mode 100644 romulus/Implementations/crypto_aead/romulusm1v12/armsrc_NEC/skinny.h delete mode 100644 romulus/Implementations/crypto_aead/romulusm1v12/armsrc_NEC/skinny_key_schedule2.c delete mode 100644 romulus/Implementations/crypto_aead/romulusm1v12/armsrc_NEC/skinny_key_schedule3.c delete mode 100644 romulus/Implementations/crypto_aead/romulusm1v12/armsrc_NEC/skinny_main.c delete mode 100644 romulus/Implementations/crypto_aead/romulusm1v12/opt32/api.h delete mode 100644 romulus/Implementations/crypto_aead/romulusm1v12/opt32/crypto_aead.h delete mode 100644 romulus/Implementations/crypto_aead/romulusm1v12/opt32/encrypt.c delete mode 100644 romulus/Implementations/crypto_aead/romulusm1v12/opt32/romulus.h delete mode 100644 romulus/Implementations/crypto_aead/romulusm1v12/opt32/skinny128.c delete mode 100644 romulus/Implementations/crypto_aead/romulusm1v12/opt32/skinny128.h delete mode 100644 romulus/Implementations/crypto_aead/romulusm1v12/opt32/tk_schedule.c delete mode 100644 romulus/Implementations/crypto_aead/romulusm1v12/opt32/tk_schedule.h delete mode 100644 romulus/Implementations/crypto_aead/romulusm1v12/ref/api.h delete mode 100644 romulus/Implementations/crypto_aead/romulusm1v12/ref/encrypt.c delete mode 100644 romulus/Implementations/crypto_aead/romulusm1v12/ref/genkat_aead.c delete mode 100644 romulus/Implementations/crypto_aead/romulusm1v12/ref/skinny.h delete mode 100644 romulus/Implementations/crypto_aead/romulusm1v12/ref/skinny_reference.c delete mode 100644 romulus/Implementations/crypto_aead/romulusm1v12/ref/variant.h create mode 100644 romulus/Implementations/crypto_aead/romulusm2/LWC_AEAD_KAT_128_96.txt create mode 100644 romulus/Implementations/crypto_aead/romulusm2/ref/api.h create mode 100644 romulus/Implementations/crypto_aead/romulusm2/ref/encrypt.c create mode 100644 romulus/Implementations/crypto_aead/romulusm2/ref/genkat_aead.c create mode 100644 romulus/Implementations/crypto_aead/romulusm2/ref/skinny.h create mode 100644 romulus/Implementations/crypto_aead/romulusm2/ref/skinny_reference.c create mode 100644 romulus/Implementations/crypto_aead/romulusm2/ref/variant.h delete mode 100644 romulus/Implementations/crypto_aead/romulusm2v12/LWC_AEAD_KAT_128_96.txt delete mode 100644 romulus/Implementations/crypto_aead/romulusm2v12/ref/api.h delete mode 100644 romulus/Implementations/crypto_aead/romulusm2v12/ref/encrypt.c delete mode 100644 romulus/Implementations/crypto_aead/romulusm2v12/ref/genkat_aead.c delete mode 100644 romulus/Implementations/crypto_aead/romulusm2v12/ref/skinny.h delete mode 100644 romulus/Implementations/crypto_aead/romulusm2v12/ref/skinny_reference.c delete mode 100644 romulus/Implementations/crypto_aead/romulusm2v12/ref/variant.h create mode 100644 romulus/Implementations/crypto_aead/romulusm3/LWC_AEAD_KAT_128_96.txt create mode 100644 romulus/Implementations/crypto_aead/romulusm3/ref/api.h create mode 100644 romulus/Implementations/crypto_aead/romulusm3/ref/encrypt.c create mode 100644 romulus/Implementations/crypto_aead/romulusm3/ref/genkat_aead.c create mode 100644 romulus/Implementations/crypto_aead/romulusm3/ref/skinny.h create mode 100644 romulus/Implementations/crypto_aead/romulusm3/ref/skinny_reference.c create mode 100644 romulus/Implementations/crypto_aead/romulusm3/ref/variant.h delete mode 100644 romulus/Implementations/crypto_aead/romulusm3v12/LWC_AEAD_KAT_128_96.txt delete mode 100644 romulus/Implementations/crypto_aead/romulusm3v12/ref/api.h delete mode 100644 romulus/Implementations/crypto_aead/romulusm3v12/ref/encrypt.c delete mode 100644 romulus/Implementations/crypto_aead/romulusm3v12/ref/genkat_aead.c delete mode 100644 romulus/Implementations/crypto_aead/romulusm3v12/ref/skinny.h delete mode 100644 romulus/Implementations/crypto_aead/romulusm3v12/ref/skinny_reference.c delete mode 100644 romulus/Implementations/crypto_aead/romulusm3v12/ref/variant.h create mode 100644 romulus/Implementations/crypto_aead/romulusn1+/LWC_AEAD_KAT_128_128.txt create mode 100644 romulus/Implementations/crypto_aead/romulusn1+/armcortexm/api.h create mode 100644 romulus/Implementations/crypto_aead/romulusn1+/armcortexm/crypto_aead.h create mode 100644 romulus/Implementations/crypto_aead/romulusn1+/armcortexm/encrypt.c create mode 100644 romulus/Implementations/crypto_aead/romulusn1+/armcortexm/romulus.h create mode 100644 romulus/Implementations/crypto_aead/romulusn1+/armcortexm/skinny128.h create mode 100644 romulus/Implementations/crypto_aead/romulusn1+/armcortexm/skinny128.s create mode 100644 romulus/Implementations/crypto_aead/romulusn1+/armsrc_NEC/api.h create mode 100644 romulus/Implementations/crypto_aead/romulusn1+/armsrc_NEC/crypto_aead.h create mode 100644 romulus/Implementations/crypto_aead/romulusn1+/armsrc_NEC/encrypt.c create mode 100644 romulus/Implementations/crypto_aead/romulusn1+/armsrc_NEC/skinny.h create mode 100644 romulus/Implementations/crypto_aead/romulusn1+/armsrc_NEC/skinny_key_schedule2.c create mode 100644 romulus/Implementations/crypto_aead/romulusn1+/armsrc_NEC/skinny_key_schedule3.c create mode 100644 romulus/Implementations/crypto_aead/romulusn1+/armsrc_NEC/skinny_main.c create mode 100644 romulus/Implementations/crypto_aead/romulusn1+/opt32/api.h create mode 100644 romulus/Implementations/crypto_aead/romulusn1+/opt32/crypto_aead.h create mode 100644 romulus/Implementations/crypto_aead/romulusn1+/opt32/encrypt.c create mode 100644 romulus/Implementations/crypto_aead/romulusn1+/opt32/romulus.h create mode 100644 romulus/Implementations/crypto_aead/romulusn1+/opt32/skinny128.c create mode 100644 romulus/Implementations/crypto_aead/romulusn1+/opt32/skinny128.h create mode 100644 romulus/Implementations/crypto_aead/romulusn1+/opt32/tk_schedule.c create mode 100644 romulus/Implementations/crypto_aead/romulusn1+/opt32/tk_schedule.h delete mode 100644 romulus/Implementations/crypto_aead/romulusn1+v13/LWC_AEAD_KAT_128_128.txt delete mode 100644 romulus/Implementations/crypto_aead/romulusn1+v13/armcortexm/api.h delete mode 100644 romulus/Implementations/crypto_aead/romulusn1+v13/armcortexm/crypto_aead.h delete mode 100644 romulus/Implementations/crypto_aead/romulusn1+v13/armcortexm/encrypt.c delete mode 100644 romulus/Implementations/crypto_aead/romulusn1+v13/armcortexm/romulus.h delete mode 100644 romulus/Implementations/crypto_aead/romulusn1+v13/armcortexm/skinny128.h delete mode 100644 romulus/Implementations/crypto_aead/romulusn1+v13/armcortexm/skinny128.s delete mode 100644 romulus/Implementations/crypto_aead/romulusn1+v13/armsrc_NEC/api.h delete mode 100644 romulus/Implementations/crypto_aead/romulusn1+v13/armsrc_NEC/crypto_aead.h delete mode 100644 romulus/Implementations/crypto_aead/romulusn1+v13/armsrc_NEC/encrypt.c delete mode 100644 romulus/Implementations/crypto_aead/romulusn1+v13/armsrc_NEC/skinny.h delete mode 100644 romulus/Implementations/crypto_aead/romulusn1+v13/armsrc_NEC/skinny_key_schedule2.c delete mode 100644 romulus/Implementations/crypto_aead/romulusn1+v13/armsrc_NEC/skinny_key_schedule3.c delete mode 100644 romulus/Implementations/crypto_aead/romulusn1+v13/armsrc_NEC/skinny_main.c delete mode 100644 romulus/Implementations/crypto_aead/romulusn1+v13/opt32/api.h delete mode 100644 romulus/Implementations/crypto_aead/romulusn1+v13/opt32/crypto_aead.h delete mode 100644 romulus/Implementations/crypto_aead/romulusn1+v13/opt32/encrypt.c delete mode 100644 romulus/Implementations/crypto_aead/romulusn1+v13/opt32/romulus.h delete mode 100644 romulus/Implementations/crypto_aead/romulusn1+v13/opt32/skinny128.c delete mode 100644 romulus/Implementations/crypto_aead/romulusn1+v13/opt32/skinny128.h delete mode 100644 romulus/Implementations/crypto_aead/romulusn1+v13/opt32/tk_schedule.c delete mode 100644 romulus/Implementations/crypto_aead/romulusn1+v13/opt32/tk_schedule.h create mode 100644 romulus/Implementations/crypto_aead/romulusn1/LWC_AEAD_KAT_128_128.txt create mode 100644 romulus/Implementations/crypto_aead/romulusn1/armcortexm/api.h create mode 100644 romulus/Implementations/crypto_aead/romulusn1/armcortexm/crypto_aead.h create mode 100644 romulus/Implementations/crypto_aead/romulusn1/armcortexm/encrypt.c create mode 100644 romulus/Implementations/crypto_aead/romulusn1/armcortexm/romulus.h create mode 100644 romulus/Implementations/crypto_aead/romulusn1/armcortexm/skinny128.h create mode 100644 romulus/Implementations/crypto_aead/romulusn1/armcortexm/skinny128.s create mode 100644 romulus/Implementations/crypto_aead/romulusn1/armsrc_NEC/api.h create mode 100644 romulus/Implementations/crypto_aead/romulusn1/armsrc_NEC/crypto_aead.h create mode 100644 romulus/Implementations/crypto_aead/romulusn1/armsrc_NEC/encrypt.c create mode 100644 romulus/Implementations/crypto_aead/romulusn1/armsrc_NEC/genkat_aead.c create mode 100644 romulus/Implementations/crypto_aead/romulusn1/armsrc_NEC/skinny.h create mode 100644 romulus/Implementations/crypto_aead/romulusn1/armsrc_NEC/skinny_key_schedule2.c create mode 100644 romulus/Implementations/crypto_aead/romulusn1/armsrc_NEC/skinny_key_schedule3.c create mode 100644 romulus/Implementations/crypto_aead/romulusn1/armsrc_NEC/skinny_main.c create mode 100644 romulus/Implementations/crypto_aead/romulusn1/opt32/api.h create mode 100644 romulus/Implementations/crypto_aead/romulusn1/opt32/crypto_aead.h create mode 100644 romulus/Implementations/crypto_aead/romulusn1/opt32/encrypt.c create mode 100644 romulus/Implementations/crypto_aead/romulusn1/opt32/romulus.h create mode 100644 romulus/Implementations/crypto_aead/romulusn1/opt32/skinny128.c create mode 100644 romulus/Implementations/crypto_aead/romulusn1/opt32/skinny128.h create mode 100644 romulus/Implementations/crypto_aead/romulusn1/opt32/tk_schedule.c create mode 100644 romulus/Implementations/crypto_aead/romulusn1/opt32/tk_schedule.h create mode 100644 romulus/Implementations/crypto_aead/romulusn1/ref/api.h create mode 100644 romulus/Implementations/crypto_aead/romulusn1/ref/encrypt.c create mode 100644 romulus/Implementations/crypto_aead/romulusn1/ref/genkat_aead.c create mode 100644 romulus/Implementations/crypto_aead/romulusn1/ref/skinny.h create mode 100644 romulus/Implementations/crypto_aead/romulusn1/ref/skinny_reference.c create mode 100644 romulus/Implementations/crypto_aead/romulusn1/ref/variant.h delete mode 100644 romulus/Implementations/crypto_aead/romulusn1v12/LWC_AEAD_KAT_128_128.txt delete mode 100644 romulus/Implementations/crypto_aead/romulusn1v12/armcortexm/api.h delete mode 100644 romulus/Implementations/crypto_aead/romulusn1v12/armcortexm/crypto_aead.h delete mode 100644 romulus/Implementations/crypto_aead/romulusn1v12/armcortexm/encrypt.c delete mode 100644 romulus/Implementations/crypto_aead/romulusn1v12/armcortexm/romulus.h delete mode 100644 romulus/Implementations/crypto_aead/romulusn1v12/armcortexm/skinny128.h delete mode 100644 romulus/Implementations/crypto_aead/romulusn1v12/armcortexm/skinny128.s delete mode 100644 romulus/Implementations/crypto_aead/romulusn1v12/armsrc_NEC/api.h delete mode 100644 romulus/Implementations/crypto_aead/romulusn1v12/armsrc_NEC/crypto_aead.h delete mode 100644 romulus/Implementations/crypto_aead/romulusn1v12/armsrc_NEC/encrypt.c delete mode 100644 romulus/Implementations/crypto_aead/romulusn1v12/armsrc_NEC/genkat_aead.c delete mode 100644 romulus/Implementations/crypto_aead/romulusn1v12/armsrc_NEC/skinny.h delete mode 100644 romulus/Implementations/crypto_aead/romulusn1v12/armsrc_NEC/skinny_key_schedule2.c delete mode 100644 romulus/Implementations/crypto_aead/romulusn1v12/armsrc_NEC/skinny_key_schedule3.c delete mode 100644 romulus/Implementations/crypto_aead/romulusn1v12/armsrc_NEC/skinny_main.c delete mode 100644 romulus/Implementations/crypto_aead/romulusn1v12/opt32/api.h delete mode 100644 romulus/Implementations/crypto_aead/romulusn1v12/opt32/crypto_aead.h delete mode 100644 romulus/Implementations/crypto_aead/romulusn1v12/opt32/encrypt.c delete mode 100644 romulus/Implementations/crypto_aead/romulusn1v12/opt32/romulus.h delete mode 100644 romulus/Implementations/crypto_aead/romulusn1v12/opt32/skinny128.c delete mode 100644 romulus/Implementations/crypto_aead/romulusn1v12/opt32/skinny128.h delete mode 100644 romulus/Implementations/crypto_aead/romulusn1v12/opt32/tk_schedule.c delete mode 100644 romulus/Implementations/crypto_aead/romulusn1v12/opt32/tk_schedule.h delete mode 100644 romulus/Implementations/crypto_aead/romulusn1v12/ref/api.h delete mode 100644 romulus/Implementations/crypto_aead/romulusn1v12/ref/encrypt.c delete mode 100644 romulus/Implementations/crypto_aead/romulusn1v12/ref/genkat_aead.c delete mode 100644 romulus/Implementations/crypto_aead/romulusn1v12/ref/skinny.h delete mode 100644 romulus/Implementations/crypto_aead/romulusn1v12/ref/skinny_reference.c delete mode 100644 romulus/Implementations/crypto_aead/romulusn1v12/ref/variant.h create mode 100644 romulus/Implementations/crypto_aead/romulusn2/LWC_AEAD_KAT_128_96.txt create mode 100644 romulus/Implementations/crypto_aead/romulusn2/ref/api.h create mode 100644 romulus/Implementations/crypto_aead/romulusn2/ref/encrypt.c create mode 100644 romulus/Implementations/crypto_aead/romulusn2/ref/genkat_aead.c create mode 100644 romulus/Implementations/crypto_aead/romulusn2/ref/skinny.h create mode 100644 romulus/Implementations/crypto_aead/romulusn2/ref/skinny_reference.c create mode 100644 romulus/Implementations/crypto_aead/romulusn2/ref/variant.h delete mode 100644 romulus/Implementations/crypto_aead/romulusn2v12/LWC_AEAD_KAT_128_96.txt delete mode 100644 romulus/Implementations/crypto_aead/romulusn2v12/ref/api.h delete mode 100644 romulus/Implementations/crypto_aead/romulusn2v12/ref/encrypt.c delete mode 100644 romulus/Implementations/crypto_aead/romulusn2v12/ref/genkat_aead.c delete mode 100644 romulus/Implementations/crypto_aead/romulusn2v12/ref/skinny.h delete mode 100644 romulus/Implementations/crypto_aead/romulusn2v12/ref/skinny_reference.c delete mode 100644 romulus/Implementations/crypto_aead/romulusn2v12/ref/variant.h create mode 100644 romulus/Implementations/crypto_aead/romulusn3/LWC_AEAD_KAT_128_96.txt create mode 100644 romulus/Implementations/crypto_aead/romulusn3/ref/api.h create mode 100644 romulus/Implementations/crypto_aead/romulusn3/ref/encrypt.c create mode 100644 romulus/Implementations/crypto_aead/romulusn3/ref/genkat_aead.c create mode 100644 romulus/Implementations/crypto_aead/romulusn3/ref/skinny.h create mode 100644 romulus/Implementations/crypto_aead/romulusn3/ref/skinny_reference.c create mode 100644 romulus/Implementations/crypto_aead/romulusn3/ref/variant.h delete mode 100644 romulus/Implementations/crypto_aead/romulusn3v12/LWC_AEAD_KAT_128_96.txt delete mode 100644 romulus/Implementations/crypto_aead/romulusn3v12/ref/api.h delete mode 100644 romulus/Implementations/crypto_aead/romulusn3v12/ref/encrypt.c delete mode 100644 romulus/Implementations/crypto_aead/romulusn3v12/ref/genkat_aead.c delete mode 100644 romulus/Implementations/crypto_aead/romulusn3v12/ref/skinny.h delete mode 100644 romulus/Implementations/crypto_aead/romulusn3v12/ref/skinny_reference.c delete mode 100644 romulus/Implementations/crypto_aead/romulusn3v12/ref/variant.h diff --git a/romulus/Implementations/crypto_aead/romulusm1+/LWC_AEAD_KAT_128_128.txt b/romulus/Implementations/crypto_aead/romulusm1+/LWC_AEAD_KAT_128_128.txt new file mode 100644 index 0000000..24ecfd7 --- /dev/null +++ b/romulus/Implementations/crypto_aead/romulusm1+/LWC_AEAD_KAT_128_128.txt @@ -0,0 +1,7623 @@ +Count = 1 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = +AD = +CT = 1866911F9E436083F788BBF27C62180A + +Count = 2 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = +AD = 00 +CT = 111C6F780802BB6A6E8686408FF08D6A + +Count = 3 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = +AD = 0001 +CT = E2D3227EB942543A4988C59C16B696DD + +Count = 4 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = +AD = 000102 +CT = 08FECA98C7581ACFC042AA3CC5CD5408 + +Count = 5 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = +AD = 00010203 +CT = 60E45A18AA85AC51E74AF13DB36308F5 + +Count = 6 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = +AD = 0001020304 +CT = 74A33F25C1AE488B07190F868E3421EB + +Count = 7 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = +AD = 000102030405 +CT = 86D53E9861FE1DB8277CF50801100EBA + +Count = 8 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = +AD = 00010203040506 +CT = 3518A21D26C30E8CBADED094B5ACA042 + +Count = 9 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = +AD = 0001020304050607 +CT = 2135BA52B0149CDF777D08B5F04BEF0A + +Count = 10 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = +AD = 000102030405060708 +CT = 93C4A4AF1910FAA1F5342C14551D2FC2 + +Count = 11 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = +AD = 00010203040506070809 +CT = 744ACC075CECF6A1A1E1B2DABDA34987 + +Count = 12 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = +AD = 000102030405060708090A +CT = 65166EBBF08569C2A1C996AE79034419 + +Count = 13 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = +AD = 000102030405060708090A0B +CT = 109D49FFFC203DE880126A9B1473EDFC + +Count = 14 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = +AD = 000102030405060708090A0B0C +CT = 27337EB7055C8657599BFAC630D35C6E + +Count = 15 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = +AD = 000102030405060708090A0B0C0D +CT = 6BA056F320349BAC9594761A9C0C0A75 + +Count = 16 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = +AD = 000102030405060708090A0B0C0D0E +CT = 80B644B84609B497FF568AE3C098AA94 + +Count = 17 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = +AD = 000102030405060708090A0B0C0D0E0F +CT = 57E3E2A18ED55AD98985FA605F0E0FCB + +Count = 18 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 2C3AD5CF835E9F421941BF4B091F4D34 + +Count = 19 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 08B703395B691DA9C8BC97EA4A6291DA + +Count = 20 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = B254818D0F5BC9D4BEAB28205168B495 + +Count = 21 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 4A9759BD7CD841FF07B1EE49EEC0538C + +Count = 22 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = 4A2D5D6E78CA57A018A3E764694D5528 + +Count = 23 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = 5C561DA38DE44FD650E49E87FD9E7AB1 + +Count = 24 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 507AC27E02F1E7205D39D0AD05353BAE + +Count = 25 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = 61DEBA7A6AAC4A8169D4F96834373969 + +Count = 26 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = D51A0C104B90A6A0C3BE54692FBD2265 + +Count = 27 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = 2C5CAEA5D2942CEC970FFBE0B939B558 + +Count = 28 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = C0CEC1425764810F09E6CB9452DE3C10 + +Count = 29 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = C57C2765B00216FBF5F0B4020095F054 + +Count = 30 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = DAFC784AF1090DD7E7295D32304250DB + +Count = 31 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 9CCD6981AFEA2118FD62C0EFA090483B + +Count = 32 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = 5F588E7A5925ABBF3C715D1E6143323C + +Count = 33 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 54060E93F5733CBE709EA1F12E203BE6 + +Count = 34 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00 +AD = +CT = BE8291743705C8BDE2D0BD5725D31FF045 + +Count = 35 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00 +AD = 00 +CT = DE7F7EBE417335CB5A33413834769E8C13 + +Count = 36 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00 +AD = 0001 +CT = 5AB470885A182486B85CD7B8D7FFDD005C + +Count = 37 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00 +AD = 000102 +CT = B76B85778627FB371A9F2CCFBFEF6FFE1C + +Count = 38 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00 +AD = 00010203 +CT = 5F36B380E3B43CF0C03AE079E7DC41FDA3 + +Count = 39 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00 +AD = 0001020304 +CT = 80AA1348466930003C89C22A6DA94763DB + +Count = 40 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00 +AD = 000102030405 +CT = 3D2E15FFAE9B18948BB130E43EB6F73DB7 + +Count = 41 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00 +AD = 00010203040506 +CT = 0E4948B96A314B623A6BB43DC2011027CB + +Count = 42 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00 +AD = 0001020304050607 +CT = 665986EC404C2AE1B8E14F0F005B02BC22 + +Count = 43 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00 +AD = 000102030405060708 +CT = 23A55991578C354221D816C8EFE92F1E99 + +Count = 44 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00 +AD = 00010203040506070809 +CT = E691EC26BBCC5577FD8B63FD12DF87D63E + +Count = 45 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00 +AD = 000102030405060708090A +CT = E26A46BBBDF45898D6381C867BD4F2638A + +Count = 46 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00 +AD = 000102030405060708090A0B +CT = 57D4DFAE7876EA0CF0B9AE0C09DC67643D + +Count = 47 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00 +AD = 000102030405060708090A0B0C +CT = 64444F7536FB24788C9B4B4A6F62A43571 + +Count = 48 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00 +AD = 000102030405060708090A0B0C0D +CT = 728BE459D195830EB45B0DD4BF0C4EF0ED + +Count = 49 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00 +AD = 000102030405060708090A0B0C0D0E +CT = 1E3B87A4B0EB36BBBB02B3E43D278B6511 + +Count = 50 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00 +AD = 000102030405060708090A0B0C0D0E0F +CT = 2C738F2F926BC61AF03510269B4BB4FEBD + +Count = 51 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = B24DDCB567783BB641AECDA7D5A0D0F88C + +Count = 52 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = A7AAF5AAA0419EA54AAC1F6C839AFFAB18 + +Count = 53 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = 790ECA0E742B0DF8AAAFA3CCA05B743696 + +Count = 54 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = C661EB47B8FF0D361F7C06DA2DAC347448 + +Count = 55 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = DC9C74F367971E1D5E365B3691779719EA + +Count = 56 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = 514F4354EE83B5580F44CFD7ED7096C815 + +Count = 57 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 4B442169B930AD35E09C9A8039CA19D4AD + +Count = 58 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = C2E1BC1A2B115CD68C9A4164B00B29F139 + +Count = 59 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = A84FB3DE1AFA66C4C0456606E72E2EBD2F + +Count = 60 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = 8B0554D00C4E7C34ADBA3FDFA1D4E78465 + +Count = 61 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 6BAF7085DC27B1F26C8B02066C4BC2D8F3 + +Count = 62 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 3782782251FF07FAC7C014713E217B1F33 + +Count = 63 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = 77FD8D8B7748FFEAF2D870AAC859B43C8D + +Count = 64 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = B5C0A52FD541B67C4A3B5CB6E0110C0C79 + +Count = 65 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = 4D445A9FB60A2A8BA51191FEBC7304DE64 + +Count = 66 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 510F1974FF3E635493C5DDEFCC4FFCFA58 + +Count = 67 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001 +AD = +CT = 9145C38D138AE14EF990D9764F21DADCF9E1 + +Count = 68 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001 +AD = 00 +CT = A08D2A742EEA81932BCCB7BFFFA1E5973448 + +Count = 69 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001 +AD = 0001 +CT = D2E9C4C1D8086447746ED12C7C67431343AA + +Count = 70 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001 +AD = 000102 +CT = 4E61124FED01E2B532D24D4565F152CB13D3 + +Count = 71 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001 +AD = 00010203 +CT = 105D090DA529ABC8E05CDB562CE8D6E30A50 + +Count = 72 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001 +AD = 0001020304 +CT = AA63CFCC46215F2FC5B7DAD4C86CBCFD816A + +Count = 73 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001 +AD = 000102030405 +CT = DE3BDCD09480939D1C0D41841C6AD718BE7B + +Count = 74 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001 +AD = 00010203040506 +CT = 87E0CB7729C4E5785882B7A10C5CBDD5093F + +Count = 75 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001 +AD = 0001020304050607 +CT = 9DF41431805E053AD2BBDAA9461B403A3BC5 + +Count = 76 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001 +AD = 000102030405060708 +CT = 1EAD6425C8B8DBB6DF0F945A3CDA39003F35 + +Count = 77 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001 +AD = 00010203040506070809 +CT = 04B69D6A746BDB459B3A988FD06D0EAC833C + +Count = 78 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001 +AD = 000102030405060708090A +CT = 849F663D6768A4E12AD1F0CC245AFCC3C9FF + +Count = 79 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001 +AD = 000102030405060708090A0B +CT = 5DD42CCEA55A3C02487FDD52CEF4AC34BC54 + +Count = 80 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001 +AD = 000102030405060708090A0B0C +CT = FB5BE429DF3540365A4C9F0B41EAD3E8B83C + +Count = 81 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001 +AD = 000102030405060708090A0B0C0D +CT = 8589780FE636BF46AD9EFBD07CCEACD44492 + +Count = 82 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001 +AD = 000102030405060708090A0B0C0D0E +CT = 30C09C4708A6146BB8E5021C53E16702D706 + +Count = 83 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001 +AD = 000102030405060708090A0B0C0D0E0F +CT = 4F4E73BDEE492E821C0C3764909D5A4F8E33 + +Count = 84 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = C83106933C1BE63DAF1F53FA3C2D14DDDE72 + +Count = 85 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 13F32B1E085CEA7B61F89FA7F6D93872D5C5 + +Count = 86 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = 5EF95AB5580C0EDE339B69F817F743FC11EB + +Count = 87 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 14BBFAC7B55EF98BDC3EB99A77C6BC787FD8 + +Count = 88 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = EC649998DA26A01903EA309D3A6ED31ED34D + +Count = 89 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = F34A897960EED48EFAD7F65EB203E204FB64 + +Count = 90 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 0D2497730BD17DD2F94C0B250BB7245EBEF0 + +Count = 91 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = 54998778D0CF45036A5B7067802681A17A81 + +Count = 92 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 449AF852D84E15F42B57C9BB633FFBA81051 + +Count = 93 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = FD6B33BE4B9838779A9832BD6476DAB34FF4 + +Count = 94 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 910AA2387C8A3C9F2EA16D823D76F2236ECA + +Count = 95 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 5CC4B9B394D5917BF8EE902172B2E8965BCA + +Count = 96 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = 4A7E4078E9C50B5C876EBE5760C8BBC40EFE + +Count = 97 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 912ECB572B81B51D5BB9E1EEE18FDD663E30 + +Count = 98 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = 8499D56D8229870F105531F5B09F23AFC56B + +Count = 99 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 0049FAC9401CC458CAE9F2963DB475C733C3 + +Count = 100 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102 +AD = +CT = 1F9CC58CA6ADA5640D42ADC3BEA0C8A02C3770 + +Count = 101 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102 +AD = 00 +CT = CED387058D20377F9E3E4B52CCDC3646EC8FFB + +Count = 102 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102 +AD = 0001 +CT = A7190537E398103EB9BD2A2E5A631028914DA5 + +Count = 103 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102 +AD = 000102 +CT = A5AE33040B2F8A92A80104F63AD270C322C445 + +Count = 104 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102 +AD = 00010203 +CT = 349ADB83A847F2CD9C6DC8945679B2EB8559C8 + +Count = 105 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102 +AD = 0001020304 +CT = E9F6362578F03054AA8A4B0797BE3634E39BF8 + +Count = 106 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102 +AD = 000102030405 +CT = E59E0E5624695996B61CEDB3B72A28B3F22674 + +Count = 107 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102 +AD = 00010203040506 +CT = 40FB811547A168CC2F259349638C24531BAE42 + +Count = 108 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102 +AD = 0001020304050607 +CT = 01603729FAD23B7C3F20892AE36181E0B83B21 + +Count = 109 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102 +AD = 000102030405060708 +CT = 889344A705B5D3D8A875E038CBB9B325B79B4E + +Count = 110 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102 +AD = 00010203040506070809 +CT = 62E2B16006FC76BC528E67BC9EC703CFD31D86 + +Count = 111 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102 +AD = 000102030405060708090A +CT = B2D7F8C11A12002DFAB9F76797AE2398313884 + +Count = 112 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102 +AD = 000102030405060708090A0B +CT = 2E083EA4726C3CC002364E698676FD90393A8A + +Count = 113 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102 +AD = 000102030405060708090A0B0C +CT = CDCCFC09FB902F2203C49F617F3615D317C087 + +Count = 114 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102 +AD = 000102030405060708090A0B0C0D +CT = 78265933C8F04C935B8B4F8CB31E62BF54185E + +Count = 115 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102 +AD = 000102030405060708090A0B0C0D0E +CT = D6ACD80CF8A77A3B425FD6B818A43F8B481A55 + +Count = 116 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102 +AD = 000102030405060708090A0B0C0D0E0F +CT = 7362F95E2CFD58B37E7C973A62AE2817B86A58 + +Count = 117 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 0DAD3DE636CFBAAD428366D5CCE437658D87CD + +Count = 118 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 0B8AEA03CEB2EC21BB8A361A70119DE18E759E + +Count = 119 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = F77AD020F72D4CDCAE3EB4187F318556557844 + +Count = 120 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 22EAB85725FE7DBB4ACE5BAA4A5DD161B9D1ED + +Count = 121 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = 6876FAA5798052969D2A3575C435849CBCDAA1 + +Count = 122 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = 4E723B024D913E886B0B2D966BA790DE10ED3C + +Count = 123 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 5CEB2D35F4694708C46BA39E5E25777D18F2D0 + +Count = 124 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = E3A37D66523AA7128C48C5F5A3F2A09E380649 + +Count = 125 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 18A1A8ADFE1F8A3D1133B1D2B60E2515E12CC4 + +Count = 126 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = 5453A60186713304E5360212E415DF759C4864 + +Count = 127 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = AB0F4BD15A7D32A1943A7F6C21CA396F988CC0 + +Count = 128 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 7B68957B2358E17F79D02A2340F2F0D0287052 + +Count = 129 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = A286A5452A74AC9B176DBB0AAEF20D707BB809 + +Count = 130 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 48164B35EE4D16BECB4C435E0C70439B172F1E + +Count = 131 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = 9EE4690D356E15188E16DAA6A46B9340BC5FCC + +Count = 132 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 86C8328858D597DF070FEB18BACE174BD8BD8B + +Count = 133 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203 +AD = +CT = 52F8B8B389D7EA60E553BD3815C0BCB02678F75D + +Count = 134 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203 +AD = 00 +CT = 7792D2B8BF9D4842F7361C5692C2C81A08D01F61 + +Count = 135 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203 +AD = 0001 +CT = A950D1B265AC89779916BB39A4DFFC447F458A2F + +Count = 136 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203 +AD = 000102 +CT = 8E9AC9091ABD41C246A435776E42607AFB72D2C8 + +Count = 137 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203 +AD = 00010203 +CT = 30B51FDAEF4F976076299BD1E876323A58E2CC89 + +Count = 138 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203 +AD = 0001020304 +CT = A848C61C995A81EA34359C6E1AC0988DB4C02828 + +Count = 139 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203 +AD = 000102030405 +CT = 582C0A1622ECD65DFCE4AD5246CB9AABC05F1927 + +Count = 140 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203 +AD = 00010203040506 +CT = 3E8C31FF15E979822B7AD2EEB0C0B42F4C892035 + +Count = 141 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203 +AD = 0001020304050607 +CT = 29C56C408E5EB79E281147233754DD9ECA3281C2 + +Count = 142 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203 +AD = 000102030405060708 +CT = 30050F7623EBB8AE7B1D8AA8D4B2EE54C2D482F5 + +Count = 143 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203 +AD = 00010203040506070809 +CT = 4297B6C49D71E4455B8AD4D6A516EC02E0D562E2 + +Count = 144 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203 +AD = 000102030405060708090A +CT = E1D2D846A23FDAC10172B1E5506C7D0F2B5B7AAD + +Count = 145 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203 +AD = 000102030405060708090A0B +CT = E3CBF370C48C4550A07CA5007172A9FB3CCB700A + +Count = 146 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203 +AD = 000102030405060708090A0B0C +CT = 6AD38CEDD18A8A7BF3E08FFE4286A5D376C63211 + +Count = 147 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203 +AD = 000102030405060708090A0B0C0D +CT = 08FA27B58394D5C7C0C859FCAF19F9C6453AA0E7 + +Count = 148 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203 +AD = 000102030405060708090A0B0C0D0E +CT = 57969EF1F480906DE807A4A8081A5535FC3EB4C6 + +Count = 149 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203 +AD = 000102030405060708090A0B0C0D0E0F +CT = CD6C770125FF572E8974885C8D20E41C60E720C6 + +Count = 150 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = FDD39CBE20BFAD461973C137573E7866B5B1F31B + +Count = 151 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = F234ABD0C0DB6F17A54F007E752FB7C46A00EAB7 + +Count = 152 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = B0B7B1ABB1952BD5C53EF23A868EE02DC51F00C2 + +Count = 153 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 4E7A4C2587E214FA918C967CDDFD45F81AE24A20 + +Count = 154 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = C3EC1A08266CBCFE3757D64D828CCDD771277374 + +Count = 155 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = E66BF84F0415EFD391DDD47F70DB9F9D2D736B1B + +Count = 156 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 6D676EFDC9CBFC49F5D43172A340B267721892E9 + +Count = 157 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = 5C9647B5333FE0C97114D7033EA125BBBB732CAA + +Count = 158 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 4AC6B18AF1D24341583B2A17112376657987344F + +Count = 159 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = 130D9D8B0447B6B0B8659DFF6C31B8C223E75707 + +Count = 160 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 82D2F091558E3DBADEA5987C9CC68A76AAEABB1D + +Count = 161 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 082455375C773436D6AA28A7220198E0805C6854 + +Count = 162 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = C10516FEB4C47005CA6A411E121F61C1ED7F2CD2 + +Count = 163 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = B490384378915B2DC3B261B29A5D155EB81F8CA0 + +Count = 164 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = 464635F56E2C6C120069883AF236EB07F0551BDB + +Count = 165 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = FC61E5D3226627035C91E7C4B327208C07ADEEF6 + +Count = 166 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304 +AD = +CT = 668683BB1C3BA41F8349E43C58AB7BFE2D0524590B + +Count = 167 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304 +AD = 00 +CT = A0E8B15DFC3F0DB2815424A51391D59A92FF7606D1 + +Count = 168 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304 +AD = 0001 +CT = 72B323F0214CE115F219514C09F632A5423F22B889 + +Count = 169 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304 +AD = 000102 +CT = 723E0DDD99C88B0B7212E0ADE60C74DFC2D9CFCA0C + +Count = 170 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304 +AD = 00010203 +CT = 7CE2DBC1AF73BEDB29D49A11338922F8D3617D5B0A + +Count = 171 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304 +AD = 0001020304 +CT = B349A0E768838B0C588C3E9C36603BF4E6218D0E91 + +Count = 172 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304 +AD = 000102030405 +CT = C37DECC657708111DDA30E39E95FF2CAD438F2162F + +Count = 173 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304 +AD = 00010203040506 +CT = 315C388D3761D32F3710B9F363A357CDC4CBEEE79B + +Count = 174 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304 +AD = 0001020304050607 +CT = 28EBC6F6E802676E53BB8923A0DD4C8F34762F0D73 + +Count = 175 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304 +AD = 000102030405060708 +CT = 0BBB1F77B64E4A1CE3CC912BF080B1CD3DD0B9D150 + +Count = 176 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304 +AD = 00010203040506070809 +CT = 3634CC549D379CC61F2B9F6FA233BFB9988B541D76 + +Count = 177 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304 +AD = 000102030405060708090A +CT = DACD4B7B4E8920C2B5A81C445089465F882FC0A60C + +Count = 178 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304 +AD = 000102030405060708090A0B +CT = A6D65328BEF4A8F4F0B0639A3BF538AEE512C8A9FB + +Count = 179 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304 +AD = 000102030405060708090A0B0C +CT = 66840C7FA1026DAE7D30F04624BD0939371F048713 + +Count = 180 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304 +AD = 000102030405060708090A0B0C0D +CT = 92213F364C69746BBA2B49789BCE74C831E0771B76 + +Count = 181 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304 +AD = 000102030405060708090A0B0C0D0E +CT = 9063CD25D2730D6BF13C1F8BB9892BDAEE78C27820 + +Count = 182 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304 +AD = 000102030405060708090A0B0C0D0E0F +CT = FC7EE5F876EA35178A7E9CD53ED37EC205AEBCD8E5 + +Count = 183 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = D0918CD46793FC5BA18EE5134CD46D10F43B88B851 + +Count = 184 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = B5D9F315DFF7CA27D95975F2418A60877A375A0B8F + +Count = 185 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = 2E16C86E5EA365E0FCFB6474DF73179739EBC45229 + +Count = 186 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 1198EB0732468AC2F26C25D0DE704AE992F8804F8C + +Count = 187 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = 7B7135A83C3A853A7DE67F41B2AA1D97519673479E + +Count = 188 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = A294A6543F683929561B403CE56E41A4BA7239DBAC + +Count = 189 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 2654399A67AD4217B6EC9D5C6FD426C467317A2944 + +Count = 190 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = 9B3F560FD44AD82060A1F351D2BDD2E00BCCA673EA + +Count = 191 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 442DBFA7B4B9BBFE9DAD9364114B9240476674FF43 + +Count = 192 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = B6BBF55DB33B277C39F6450073AE60D62FE139D2D8 + +Count = 193 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = C5710D63CFBBA0EEE6783BD205771A8B6181CB3E14 + +Count = 194 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = C35451F637A2F8BB7359B4F8E0ECA036537C8CD709 + +Count = 195 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = D14CFE8CE8D02366E0E4A34BC7B0B450C9AB77C093 + +Count = 196 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 44B4327D69BD27ED907C659228F1B0648A98713CF3 + +Count = 197 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = FE5B58DDEE1F0D2C4839076860E12ED48528E8C759 + +Count = 198 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 45C5573B47720A3D07091F192C9E75E7FD0E9DC8CF + +Count = 199 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405 +AD = +CT = B601801AB242B97DE6F81CAF00E5415C7D790C95E1BA + +Count = 200 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405 +AD = 00 +CT = 9AC5FBD1C98A09D3AFB6E52BAB48678D408CE54C85F8 + +Count = 201 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405 +AD = 0001 +CT = 57CE537331ECB95A13128DBCEAE808D753EBCE3E1C32 + +Count = 202 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405 +AD = 000102 +CT = BDD19CCDBD35839CF47245722C6C3A7D4F74368C981D + +Count = 203 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405 +AD = 00010203 +CT = 6527B2B1E055FFCC2129049A715F3C28997E2CB0BDD0 + +Count = 204 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405 +AD = 0001020304 +CT = 7AB42CBAAA7985A70DD4E0140A7C6138D294CE441635 + +Count = 205 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405 +AD = 000102030405 +CT = 87B180CD60FF68638EBCC7366482B7D909CC793C3B47 + +Count = 206 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405 +AD = 00010203040506 +CT = 8186A2FE01278442C3498085B38ABAA28F7EFD481DDD + +Count = 207 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405 +AD = 0001020304050607 +CT = 11D04FD0BFE2152DE585872109059B23C9CE5E69E6DB + +Count = 208 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405 +AD = 000102030405060708 +CT = 45B1D346226B655632AA2738E69D24E4C30A866B3B30 + +Count = 209 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405 +AD = 00010203040506070809 +CT = EC4B8EB711E689B277C2012D14C939C83CE25FEE7DCE + +Count = 210 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405 +AD = 000102030405060708090A +CT = 7EF628C8D41A5A2E8224B83A40AF02231E3503B85A11 + +Count = 211 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405 +AD = 000102030405060708090A0B +CT = CE4B380C6E8DD15EC797562A3A0A3A823FFF9BF5841C + +Count = 212 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405 +AD = 000102030405060708090A0B0C +CT = 3F4DE7CC1C3B0B4C7C23671AD513D3E91F9E279BA206 + +Count = 213 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405 +AD = 000102030405060708090A0B0C0D +CT = B3D8CE3BC3C29D18FDED15A5C6DFC84FADFF77008D69 + +Count = 214 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405 +AD = 000102030405060708090A0B0C0D0E +CT = D5C18093F54F0269D05318E5F0C6F780FE234DC7BCD0 + +Count = 215 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405 +AD = 000102030405060708090A0B0C0D0E0F +CT = AAB087EF4412209E47AF4D051EEB40CCED8E368C601F + +Count = 216 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = EBF9E2F644C60BF34E3BCECD4A2BD49BFDE857B1A307 + +Count = 217 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = B3E47389B37E4A72754756DE3C1C57A8B9B9A7D85AC8 + +Count = 218 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = 69D874E0AEADA8964045B377B493B3602C62D03A62FE + +Count = 219 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 5F37BB2856D017512CCDC5C9BF779B37FD558393F68A + +Count = 220 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = 655CB01A3970499157C4113D7CC50478366CF605C654 + +Count = 221 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = 8F90E093417BF26101560F0B20ACFE394460A9303E9D + +Count = 222 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = DFD1193E5C2CC19B7D2564244158BCD111B4CF831446 + +Count = 223 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = 7A6AC6649D7330F4BAE0C3C7633045BD6A180AF523E5 + +Count = 224 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = D0AA0E752389BAAEA6FE88A4AE63DF8A376DDBB10A40 + +Count = 225 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = 99991751D8FE6C9F312C3E8DA0A9896F6EB671150899 + +Count = 226 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 2DDD2CB715E5CE8B6747ED8B344A0FECCD8DFB0178B4 + +Count = 227 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = CD23CDDF6EAC59D5CD2EA2C370DF8655E536B936AA0A + +Count = 228 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = 1E30686EEA1CCE448E297901FAA7DDD3A71ABD79930B + +Count = 229 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 53EC287FF428603831A066715AEF0F7A4AD9BFF039EC + +Count = 230 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = F6D8DFEA6CC2A0B23900C4AE5FC4D9E32E53C94F0B37 + +Count = 231 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = F9AF95B65D16B69CE27FCE727B7EC237D69576113058 + +Count = 232 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506 +AD = +CT = 80B77A443964F70CAB4E19C3C95B570E6FB7C566F2A8FE + +Count = 233 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506 +AD = 00 +CT = 2D94005D91611D7AB6D96EAC7A7A3220625A049D8C91EA + +Count = 234 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506 +AD = 0001 +CT = FAA0BCFB5E305087F4B6313153EFB5CFCBC4EB68B99D96 + +Count = 235 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506 +AD = 000102 +CT = 208293D2A9BA26179C0D601247D12B57464BAD31347688 + +Count = 236 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506 +AD = 00010203 +CT = DBE6D14215FC0F3C87DBFFC6930C237DE46241DABE153D + +Count = 237 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506 +AD = 0001020304 +CT = B434FC4F60DE7898AB4ABB8BF927F75B69FAC15CA507A0 + +Count = 238 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506 +AD = 000102030405 +CT = F274176FB6C70909D600D8B35F1F821E91570F284E8D90 + +Count = 239 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506 +AD = 00010203040506 +CT = 85C5F80D67E07EAA56BE9354907297B7523F4E9CB9E878 + +Count = 240 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506 +AD = 0001020304050607 +CT = 75DE105677161C67068D7B0E5E08EFEF2C0B99CE0D7085 + +Count = 241 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506 +AD = 000102030405060708 +CT = E080D952A102342A3CF8674C37BA5F58EB3D16BFE2871A + +Count = 242 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506 +AD = 00010203040506070809 +CT = F85897CFE56E388702428A05960DBDA9705BFE2A7DCAA4 + +Count = 243 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506 +AD = 000102030405060708090A +CT = 5B21E22E1BFD9349F8CDBF2DCD3CCDF8EBB99004BB2E91 + +Count = 244 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506 +AD = 000102030405060708090A0B +CT = 44EAF432478DEE05DF061164C6AF6A0DE633F5B94BDDEF + +Count = 245 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506 +AD = 000102030405060708090A0B0C +CT = FC99C2F09FBBD294BB3BD84EFC0D373294463C3B4F78D9 + +Count = 246 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506 +AD = 000102030405060708090A0B0C0D +CT = DF88C757C73AB3DF013EFD19C02DD6A48A76C535D42D2D + +Count = 247 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506 +AD = 000102030405060708090A0B0C0D0E +CT = 471FD774E2DAF55E73AA3B425944CEDFABA77B443E0194 + +Count = 248 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506 +AD = 000102030405060708090A0B0C0D0E0F +CT = 6689ABDE126B660C20EF6C3BAF8B0F9C1E855811353820 + +Count = 249 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 4EA6A82E266428BE4A835CED94343EAFCB6775BDBC27F6 + +Count = 250 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = AE26127556DB4580B11E24CABA083C0AE48BD0E7AF881D + +Count = 251 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = F772EBB2AF94F4F43860679202E287E8A02850DF8EEAEB + +Count = 252 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 426D27EF11CFECCB49FCF63CB67B297E48EBC2E02D5AE1 + +Count = 253 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = EAEA48561C45F2D3BA92E3E715CF9AE814F9C735802CEC + +Count = 254 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = 58DCC72E1EDB100F7DAEAADFD6A8A9E09555F6B14D6E1E + +Count = 255 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 22BD7B6396B41E0E600997E22722165E55C7969BC0DF41 + +Count = 256 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = D14254DBB959C95EAC5A489CB64AFEABB0681BFB51F912 + +Count = 257 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 76735A1B28F97E2566463803DDF6E38B06838DC40F822D + +Count = 258 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = 05C75C49522C09765DB5BD7CB2CAD5399ED633F1A282DA + +Count = 259 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = CB84E1D35E404717C7D21DC6DC444296C79F67F9F16907 + +Count = 260 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = F1952BF75C2A8BAFDF09A8346CE68F9C2B14272734BDAC + +Count = 261 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = 19BA8AA196331CDD954987C25B354E0D646C12D6AF0D8D + +Count = 262 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 6ED1DF1380E32F24A01842B1E94CBCC4F796A14F3D3736 + +Count = 263 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = 3AE914041DDF011B1CA0EF66DF6CEE9E529211A507EB57 + +Count = 264 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 6B6664889477990133AB3C052EC44C8E06B8D22D817AC7 + +Count = 265 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304050607 +AD = +CT = EE55F50DFAAD7EB04E1037F108C966AC463136174A840B0A + +Count = 266 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304050607 +AD = 00 +CT = 6A4BB5E586D8C83657ACCD14A90BCFA855C43330A49DFD97 + +Count = 267 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304050607 +AD = 0001 +CT = 29BE233A4F6CC964AAA1794F5186C1B4DD1DB86924CD3D11 + +Count = 268 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304050607 +AD = 000102 +CT = 1CEE79926AE087F4A5F11B78E49DAF64B28A02DB0F5AC6A5 + +Count = 269 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304050607 +AD = 00010203 +CT = BC1CAC6CFAB3B4F14AF8A9EEF115F7239508A6FBA474174C + +Count = 270 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304050607 +AD = 0001020304 +CT = 323FBAB5FB96A9F1C22E0BC2E30E88D35DE06DF190E5168F + +Count = 271 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304050607 +AD = 000102030405 +CT = 649BC51F8399B1DE0BE9DB3608F53BA849BA7B5CEFC86213 + +Count = 272 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304050607 +AD = 00010203040506 +CT = 2C6338B66C2319C1A01B0203A803FFF1EC6F915586266AE6 + +Count = 273 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304050607 +AD = 0001020304050607 +CT = B53F0A5FDF4258046EC677F00282955B0551E621DE957B2C + +Count = 274 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304050607 +AD = 000102030405060708 +CT = D5DCF61CD7BE7644153AF1B0F6E9366E43F2FFFFB2763C6E + +Count = 275 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304050607 +AD = 00010203040506070809 +CT = 030481E435D0957CFEAF1249C3502CEAA94A7C80002DF893 + +Count = 276 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304050607 +AD = 000102030405060708090A +CT = FD6102CA26CDA445B3FB25F4241D7E09881E084C07A72449 + +Count = 277 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304050607 +AD = 000102030405060708090A0B +CT = 3138D1640651C5E3E339235F9163DC48AFE03367A56FA43B + +Count = 278 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304050607 +AD = 000102030405060708090A0B0C +CT = 17DBF78E0B3964C0C2B0DC580F53038E452FF895EEDAD827 + +Count = 279 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304050607 +AD = 000102030405060708090A0B0C0D +CT = EFF49B796890B5B65BAF95E70CFFE4397811971BAAAFA7BE + +Count = 280 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304050607 +AD = 000102030405060708090A0B0C0D0E +CT = BD23BDE6C3CA82CE4A4ADC63DF766A26952E1BC3D47B7664 + +Count = 281 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304050607 +AD = 000102030405060708090A0B0C0D0E0F +CT = B904C08FB78E0F5127765D113B79B16F3C99C9E9194F9672 + +Count = 282 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304050607 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = FAA7AD47DA0F14DBB11F25E82F7EB62A6EEFE396D210BB68 + +Count = 283 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304050607 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 7614791082ED8A1125AD0B7BD77D36A64F15EB06F7136641 + +Count = 284 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304050607 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = B6B7EEB1F82882CB31FB3066CC2C55C29F315CF4C66FFCF5 + +Count = 285 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304050607 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 582EF95BF4A5F5C727DFC758AE2A6B4242B133247C37923C + +Count = 286 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304050607 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = 3D43AD6F0D9EC4CE65F201C0DDF1371B522101F12211E8B1 + +Count = 287 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304050607 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = E54D09C265137201DF3A48674832296AB4CCAE3051D8CCF3 + +Count = 288 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304050607 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 3F43F4C7422F2EE9386AF6322CE56455547A9C290DB3C9BF + +Count = 289 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304050607 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = F299909625031D1BA42D71ECC8D8ED842B0142BE48B7D858 + +Count = 290 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304050607 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = F0217F2510639DBCE85E9DA90276BEDC3C0E7CC89D97E148 + +Count = 291 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304050607 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = 3F58D34D3E260E328643F80EA58EB6A7426DE034AC1C8145 + +Count = 292 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304050607 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = B35FB53B1F1DD719CF95D2F79506BA45061125F908F44752 + +Count = 293 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304050607 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 53B8CC542D5141129C2899F2981B098C0AC3C98D78222FBE + +Count = 294 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304050607 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = 399E3E9A4336B2603638DD47B1A1E5C64E2A5E9C085C7358 + +Count = 295 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304050607 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = F88C52F66DF7F7A2D6352B76DA12B9237350AADD57B4B60A + +Count = 296 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304050607 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = 928B4B6EEFAB400DF474614A88678135FE0ED2296A0D70DA + +Count = 297 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304050607 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = CF1ED60D0F19CAD796344513786DBF029AE9A060E46A0E03 + +Count = 298 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708 +AD = +CT = 19C02A457CE30C6EFEB42AA3995982EE812147DC3E8B17EA38 + +Count = 299 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708 +AD = 00 +CT = 80A4574A9240E521A0CA008D7BB2A2786D0196C9C88EC4AC25 + +Count = 300 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708 +AD = 0001 +CT = 080358DB59F9BF0CAACDEDCC3C1A01B137B90C099A9C2E43A1 + +Count = 301 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708 +AD = 000102 +CT = B93F5C630F463D94F49790695E10A6B0888CCCD190AFCF2F53 + +Count = 302 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708 +AD = 00010203 +CT = D7A797F2FA7CAEFFDEE002D032B54DFCC22EE687B721388CCA + +Count = 303 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708 +AD = 0001020304 +CT = BE24A8449E471BDE3AB49E7783ED2EDE0A81D14C3A8C024547 + +Count = 304 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708 +AD = 000102030405 +CT = 6AFE6C20C769621B61EBC350A8774A2C84069238169B3BDD3A + +Count = 305 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708 +AD = 00010203040506 +CT = 9FFDB7A8FA0B31AE0F7F2387A801A9DEDE78EB075B7C1B224B + +Count = 306 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708 +AD = 0001020304050607 +CT = 697E26DB031FF1F0819B11959566060F874B4FAA70B0D1C6D5 + +Count = 307 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708 +AD = 000102030405060708 +CT = 636A54D781421661ADEA7986A5DDFDF1DCF6D5FD359D226FE0 + +Count = 308 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708 +AD = 00010203040506070809 +CT = AE04E6677C9D082280A5D9333277DC809E6CEB6FA04F7B5D3D + +Count = 309 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708 +AD = 000102030405060708090A +CT = 7ACE5C33B96D05EEFA6336EE42AF0F5A6E8F24A91BBAC847A6 + +Count = 310 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708 +AD = 000102030405060708090A0B +CT = 76403E9A4B2A2A73DAE6368D13E6C93F05B2766532780B2C56 + +Count = 311 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708 +AD = 000102030405060708090A0B0C +CT = 7E8528048189CEC7389B15457CE71BE0D13C9A50CDC80AE7CA + +Count = 312 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708 +AD = 000102030405060708090A0B0C0D +CT = DC6A0BD7D4C76B80EC9850498393F35AC029C717B53D5F03B4 + +Count = 313 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708 +AD = 000102030405060708090A0B0C0D0E +CT = AED4F16BA1A52D70C07BD191CF0E3A36591E40D117F5B72E54 + +Count = 314 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708 +AD = 000102030405060708090A0B0C0D0E0F +CT = 8F87EA472F18EECBDF61664B377BDCC2B054ECA41F18BB54AF + +Count = 315 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 629E64255BAD63CF3D46848C6FDAE6ADD6ED47DD7774CE3807 + +Count = 316 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 91022B6AE49767C59CEDD5CA40F47E5E8F541BAC95EDE35482 + +Count = 317 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = 4C653119E82C372E38905C1048371A9A5A2B38F10F4BFE7BCF + +Count = 318 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 9EC09EC5CB85CFB807BA0716BDDDA8753F5F07668AD1909157 + +Count = 319 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = A7406B37DB78B64BF3E96E2DE69CA4EE388AD4D73EAB56A2CD + +Count = 320 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = 03C0F98A6A94DAC8A55F2EB7F25335AE6CDD895AA8FE49626D + +Count = 321 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 9B230F55504AB3DC0C15797429DBA602B0AFBE67D5A352970C + +Count = 322 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = 8C48BD9DD82A7D097C0B4744318B2550715601AADE95B26D55 + +Count = 323 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 7F8ED5ACBC6246698E2AB9F943FCDD2C45901399B95AED94A2 + +Count = 324 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = FD1F1E12B2761C7E6F0FFEC29E478BD58803322C1F55D710DD + +Count = 325 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = F47CCFCB9904479F36224E3A03AB93574448AB9D3A19EFCD0B + +Count = 326 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = C6027CE52151812B908860A622C12FF03C5D1DDA2FD966407D + +Count = 327 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = F6A83DFAC3CEB517E9C30BD59CE9FDFA433F774FAE66D37853 + +Count = 328 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 61B440018BB84FC376EE8828DC3E8B7F1C79C67E1E235D7E24 + +Count = 329 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = 1431626654D5EC84FB35ED83353921AFE40140F6A06AF5CCA2 + +Count = 330 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 102738C754BECBF2D456969B434BD8CD46221ADDAAA59C0950 + +Count = 331 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506070809 +AD = +CT = 0ADB9BC4BE268A5FA1E06081CAED8BFB320B53DE6BC3FDC52E2E + +Count = 332 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506070809 +AD = 00 +CT = 7840F13174B746AE025760C050A4A1C21158748FA133E8989B34 + +Count = 333 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506070809 +AD = 0001 +CT = 02C7FDFFE0F2B82167160C25CC9BA8C71908C66FC054E44DD27D + +Count = 334 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506070809 +AD = 000102 +CT = A980698548FF9E365AF628C5E802D5C30696401E5FA1D4C39B60 + +Count = 335 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506070809 +AD = 00010203 +CT = 49446DBF7D6CCEB0456AA61E138D9C89A548AC34D13F23331FB9 + +Count = 336 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506070809 +AD = 0001020304 +CT = C0C0D00B5A48475A4412ADEAA142461F010655D9033D6167F27C + +Count = 337 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506070809 +AD = 000102030405 +CT = 8F505DA4EF2670B32E4C7FD1A3B994CBABA345483BEFBF6A7E29 + +Count = 338 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506070809 +AD = 00010203040506 +CT = 8052132F05705F6169007CF079F990B585235EF0CC9300488881 + +Count = 339 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506070809 +AD = 0001020304050607 +CT = C3331C1B84151BE47436DCAF209868A940476CA632CC850C20EE + +Count = 340 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506070809 +AD = 000102030405060708 +CT = DA8DF765AA9936BA4EC7AC4415CF17555FAADA214F161A78D515 + +Count = 341 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506070809 +AD = 00010203040506070809 +CT = 4B6345F582B5F23FEA255A319722399E98F61FA9BFE9F871F794 + +Count = 342 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506070809 +AD = 000102030405060708090A +CT = F98047FA416E88A0135524F716D35A5DA88828F68E89E84E2B69 + +Count = 343 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506070809 +AD = 000102030405060708090A0B +CT = 3DEF7707AE02F3DFBD9A619081FF4036D5FBB1EF01115D142DBD + +Count = 344 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C +CT = 4B472983691C8945FC594417D6E04571C0DEDF57502CD3B0A28E + +Count = 345 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C0D +CT = 16303690B8185745D5D9E24C0355608B9D1DA1C6D47DF9D62AD6 + +Count = 346 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C0D0E +CT = 1C31A767C094C010F095FA654E3A0ED96A60B8FBC94C5A13EBDF + +Count = 347 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C0D0E0F +CT = A76F64207C72E1D1593EFAC6A66F82BE0610350736A57F6B39D3 + +Count = 348 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 4B65F49C4FA01526E96F6A55263A9B2D1B5F9D41B4620FA234A6 + +Count = 349 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 7E8E2EFF4C292C15E1B4C874A971977031970E8E0BCA3CAD2B24 + +Count = 350 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = 5D33068CF741CB3842DE4E2B44B3ED2D3B0C75677C1DC5AD7962 + +Count = 351 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = F74A7FA2F38990EBA26E7457AA4BEC1EC31307F15E056BA8D8FF + +Count = 352 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = 30724D84EA86EEF3090F69B72ED273AB1E92F41494F889CC393F + +Count = 353 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = 7FE80A53969E2EE729735D57632476AB8894E25EC57A76CEF833 + +Count = 354 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 4FCB65B89C96FD74421DAA7B1EAEC11FCE92A8CE55E07F654E9C + +Count = 355 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = 638B724486A33A715FE2F9285FC0D41A543529A491DA6EB78D88 + +Count = 356 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = C4F7EE4F47601B77072B828B0595052ADBFA73E22282EC548212 + +Count = 357 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = 3CFE4172BA0E0117E88374CE93C16A18A227A83DE21EB27695F4 + +Count = 358 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 2551C1B84CA0A2956E2D31738680A841710296ADBE2EB648107E + +Count = 359 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 2204CE867F0DB4365EA828B1A1744E8FDCC6BDBB137B73AF104C + +Count = 360 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = 54BA6153B467E4695E619656E0D18965512EC8F685637CB60329 + +Count = 361 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 72B84D1D14FBCAF037EBFF68D3F8EC03AF6EDEBFACE16AFFF5AE + +Count = 362 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = F7F1B2333546F2485549B89D9E17545541C60C393ACC55C9CADF + +Count = 363 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 4656447CD3973FF12FEEDA227ADC4C9A0BAB014CC7E39FCD3022 + +Count = 364 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A +AD = +CT = ED9C82E3487E47022DAD8CD51C7E45C9DFADA5521125A36990E5BC + +Count = 365 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A +AD = 00 +CT = 42FA63A0EC2C7566718E7AC665FE82C62381ED1B72628C44F0BA52 + +Count = 366 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A +AD = 0001 +CT = A066422CEE26018A590832FF12B8AD7390D60302C7B47F6A011A08 + +Count = 367 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A +AD = 000102 +CT = C7AFC18D41B6167981E827D97D2B834FF213B460D1DC8A8E9EF92A + +Count = 368 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A +AD = 00010203 +CT = 1F6CF5308C32CB7AB63C340D47909391B2FE5BE966A3F36A9CE7AB + +Count = 369 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A +AD = 0001020304 +CT = 8EA2858FA51CC2CFD6B8C5AD02F7B8704AA3502A998028509E698C + +Count = 370 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A +AD = 000102030405 +CT = FA120AC9DFB57468D86C710C6A51A8738C8161CFA146FCAEAC6CF6 + +Count = 371 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A +AD = 00010203040506 +CT = B6823033B526472CC56693E1A68F4848531B0895D23C9C7399BC43 + +Count = 372 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A +AD = 0001020304050607 +CT = 7B54C966E4027902954E8A857A08C3D45B1CFC1C29C0C5957E87BB + +Count = 373 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A +AD = 000102030405060708 +CT = A052A31926CC95045B4EE319108A8617CBCF5AE2965E4292C7BD97 + +Count = 374 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A +AD = 00010203040506070809 +CT = 883303B7CF4376E57F949D476382D0B1FC91674E45E93FAEAA8D3E + +Count = 375 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A +AD = 000102030405060708090A +CT = 1309BBCE222B2046A83C20F56DEDC85B9CBA7AD29109DFFA35F380 + +Count = 376 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A +AD = 000102030405060708090A0B +CT = B1FC1FF58CA6DD3BCD33FB330AEDEA2ED60A56B1C6EE0CBEF7D1D7 + +Count = 377 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C +CT = EA587A7D3559E3B9D1431241516AE2D8FBE96147B97CA0B1F48C4D + +Count = 378 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C0D +CT = 8B4DD67A9F72004C26E2B573EF14F0398AC243F70668EE93CF7EF7 + +Count = 379 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C0D0E +CT = A3B9736A04CBFACEE12BF2BD6746FA48FF6603895AAC3E592C4ADD + +Count = 380 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C0D0E0F +CT = DD3F1651914C97BDF0D7CC7350645D9ECC8C9396BDAA2052C51952 + +Count = 381 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C0D0E0F10 +CT = BD73EE0A454D06F1B4716734B74A8749BF0D5B1407499E75C9CD16 + +Count = 382 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 2ABB7D1EC52EB7F5F90B6AFC6AA899ED3A1F26A273E29164C90BE3 + +Count = 383 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = E44F7764A37622B8173D20BDF2E629C75849BEC3A9CD845B17159A + +Count = 384 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = D5439DC2771B6EE42E7B12A8A2ABAE7A270E007918DA2914E55D72 + +Count = 385 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = 9704D6AA5D4E8CE956BBFBE7E7B22A1DB610593FC05538A48A053D + +Count = 386 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = 6F181AC89A5C4312E20C583A87020056F7BF941B3265DD5EFD91B6 + +Count = 387 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 42383E59CC38D5820FE1D3D7C437BC1518D36D2A8D901DEF574E7F + +Count = 388 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = A1A16F24A100C7A20FD0B3FE309BC20E191A13A9695BDBA1967896 + +Count = 389 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 8585D83508A5868001256E32D295587A301CD0470DD29909255CF8 + +Count = 390 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = C353DEC418F80E4BF6B166D98E128F272530BF478F7A9842C72AC1 + +Count = 391 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 0D9E81FE27D9A785E2E6A4437D09B94844C5E2B38A5FD4329427A6 + +Count = 392 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 4E3A1C08743AAE44ADFDFBFB648F4FDC48818440F79A5C044CD801 + +Count = 393 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = ED3BC411110E280437D6C7EF3E65BAB23CB1B864D29F5C62A902E0 + +Count = 394 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 914D3382D241E82886A36920E79F093F71D5EBC4E13B32D7EBB06E + +Count = 395 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = 8AACAD3693DB4940BBA07787A0A1F9B30459CDACF39AE20E1E1D62 + +Count = 396 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 179662F4A56A73301EF04FDFB88936D011AB3865A726631D34E16B + +Count = 397 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B +AD = +CT = 94E74750B3B4FAD25A8588810FC14AF7C562A65F1B05D6B3F948BC2C + +Count = 398 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B +AD = 00 +CT = FD62CC21242D778BB04228BB159EE386FB154FA96648CF8B950B9A6C + +Count = 399 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B +AD = 0001 +CT = 8CC22DFCD992BCEC5FC5A8CA0F0E6A638626C04C590C632AACC306CA + +Count = 400 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B +AD = 000102 +CT = 89A0E6A175A661BAA2D99ACA27693B2EBF1A650B72B2AB1A10783C88 + +Count = 401 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B +AD = 00010203 +CT = B5BA71F99D719B9B8EB39CBF367BD2FE57FB1F929EABCF2C2629D2AA + +Count = 402 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B +AD = 0001020304 +CT = 0EC5A738408DD5DF050D87940E098C6D86965269A7F340D607414D4F + +Count = 403 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B +AD = 000102030405 +CT = 268C439CF402396C2C68B6C8931C237D2FA4BA6AEAE9990853CF3BF4 + +Count = 404 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B +AD = 00010203040506 +CT = 5E497A951A144674BD8B025CFFBF771004C6D4020B8C0103D8D58E73 + +Count = 405 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B +AD = 0001020304050607 +CT = FA00CCF57AD9824665CD0BBECABF3C909FBAB7FCC77C558974310F05 + +Count = 406 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B +AD = 000102030405060708 +CT = 32F413324E9E403713C343CA39FC0A779669639C18AB55D24AE76FEB + +Count = 407 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B +AD = 00010203040506070809 +CT = 8019CDD284CA3FC097383927A2FB2AFF8A20EFAFD8E9328D1B6807A5 + +Count = 408 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B +AD = 000102030405060708090A +CT = 6B96B92BF6D15110857FEA9C93F650235B2B02F12AC65112B2EB8454 + +Count = 409 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B +CT = 75FC41C36EFB607A180BE7AE361995171C61D13C29C4637715788967 + +Count = 410 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C +CT = 8BE186943661FBF4C58CFBF685D6C179AECF566A2D3A18556D9738A0 + +Count = 411 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C0D +CT = B1BA3B0B35546C573BE38EB59471B2E05EA0CCDA4C8930B02F2182B9 + +Count = 412 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C0D0E +CT = 860F661AB5AB59E82A0C578103A562323E23B5E2EA32BAE9E155FEE5 + +Count = 413 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C0D0E0F +CT = 3425DE14322CD19799F564C0383D05DEB85745465B33F0A79D8F6B5D + +Count = 414 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C0D0E0F10 +CT = C8890081006AFF79D2AE03462CEF12DC7363EF5A9CD8EFBECBC10C35 + +Count = 415 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 36A574A8F69303C389FE8DC27BAA668656499BAB7CE82AC9D1DD3D3D + +Count = 416 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = F414CC6CDBF647CA8397A79FD5414739F080A164648B802CE5B70545 + +Count = 417 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 12DA8BBAFCF5048C5257C065333CFDFF0EEE3058800D8B9B9F67E9C7 + +Count = 418 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = E7A9C157E310BABB7048ACF95864D79CF1D189F1C13C05816CBD2847 + +Count = 419 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = 94C961C204702E977F9258EF6FBF37135D4566A21F491FC981FAA6F1 + +Count = 420 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 749A9EC3DF8F4BB1C9F54A4CD3777D6DDA4D22FDCDB056009B3EA2B3 + +Count = 421 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = D8D0C931291F9CCD5F0F80B72275AA05696CBD8907984FE4924C874D + +Count = 422 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 602086A7670354AD01D199EAE1DFDBF731BEA0BE0756BE344AE4C42A + +Count = 423 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = FA874E3D2D48184F2A5D60AF46A436C91ECDA9FC717C37A1574AB229 + +Count = 424 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 7584DEEA1A1F8F4EF869B39D97E3D9A352D7411F97F0303549FCE8AC + +Count = 425 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 67658BDA4B3C2389F4922D2DE79DCD878629C7A11CCF790C46ABD533 + +Count = 426 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = C314C1F091F5461C7DF28F1921FB811FF6633ED0CEA364DCB5A82551 + +Count = 427 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = DCA056E3E6EAA245EE94E374F2C82F34839D870AA8892C1BA123D2C7 + +Count = 428 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = 7D65C76C864697E6228FE5F69FDF0A136DC08F9647E3FFCFD83A2889 + +Count = 429 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 603ABC44A3350BA9A2ABD6B33C9235F97A1AFB0EB5267FA47E212510 + +Count = 430 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C +AD = +CT = 2E34D9583CB3936C955D590786273C207B67B2BC9FECBA21B3E9FE89D0 + +Count = 431 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C +AD = 00 +CT = FC61C14BF14488B79AD0AC2939BD0FEB5E3E7E705A029F5E77A4026528 + +Count = 432 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C +AD = 0001 +CT = 3C44FDB8617BD6E8B10364A6E91BC0F49D54202F2E3D09D4F1A1ED92E6 + +Count = 433 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C +AD = 000102 +CT = 5FBD044FA73DB912FE63782072B499CC598C62CD9BFF80DCEA6E7FC655 + +Count = 434 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C +AD = 00010203 +CT = BC1AE6E0F40F2F2FEA3661C60E2B2DC87BA5F1C767B81D7F3095500293 + +Count = 435 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C +AD = 0001020304 +CT = F60E6D729D18BEBD21A86396472BD7263AA5C3017C8480C45A2F321D7B + +Count = 436 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C +AD = 000102030405 +CT = 49A3758C3EE1E26A02938E0E0DFE357B2FE69FFC6B4BE926F565FBD4DA + +Count = 437 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C +AD = 00010203040506 +CT = 1473F62BED50C732373C47B8A45D12985CAA5E15DC661198B830EFC788 + +Count = 438 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C +AD = 0001020304050607 +CT = D7FEB6C9DD78B0C35249F95714EF2B96E4F0B0FE1B949B2C299E6D00EB + +Count = 439 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C +AD = 000102030405060708 +CT = 7E0DAC5D783CC0801222FB457813007AC10CFD0D85A42C7FE081181C96 + +Count = 440 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C +AD = 00010203040506070809 +CT = A8E5954953D6E4D3C844BE3839700865C75A9FBA0AD3199D13FCFCABDC + +Count = 441 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A +CT = 2DB2C0F9818EB070D3D35B9A43B9C491179645DDC6F28DC1F0A35B8A2D + +Count = 442 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B +CT = 99A813F103C59695BDDB007A6352DC6B3747B24B5541FF36BB6C6B0016 + +Count = 443 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C +CT = A5D502FE9DE9D7CABEC9028BDB7D2048917CB693F2331B48303E7F2133 + +Count = 444 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C0D +CT = 75B7AD1A1F5E1D84317E24A6314701DB0635C084F0B668715463F6561C + +Count = 445 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C0D0E +CT = 04BCC9C103D1531703582D24F22D44E7A27E800C64017FE05EA371519E + +Count = 446 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C0D0E0F +CT = 5D82E6D669F034B70678DD29BC0631ACE3A96F1B9CADD43879CB24926D + +Count = 447 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C0D0E0F10 +CT = B5694B8589976888A9937EE6A914C0E9369F662DF67A8D7B00C6009E97 + +Count = 448 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = D3B4F37DAC2654EED7F6920EAB38D308F5C84722F8268F2AB2734CBB15 + +Count = 449 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = 7FEAA58BFB956ED28CB45D6D5B579B0E58E99B51A423952C25ACE2AECA + +Count = 450 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = F9E8B0428E2C880840C8CF132E40BBB35E9347118B12A5BA6649770C17 + +Count = 451 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = 6A78F1E711B5C869FF147242336941F2C806E419D843474FEBE9EAC6C5 + +Count = 452 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = BE8F15DD80480214DA4CA31F9E4BBC8B46CA4A6F237FF4F2578AA3B509 + +Count = 453 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 3D83424D57BAC7340F990E0AF45D7B1E0731B47D72DC2948E15A644A4F + +Count = 454 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = 2A39E2246321085387F5290A6079F5632C1F15A113BB004711849847C8 + +Count = 455 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 4A4116C4ECB6D42C1520427FB7EDAA4ABB5ECDFCD0F66B8A0E33358AE4 + +Count = 456 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = 8693B2C60FC77EA928536FAD8825C7519509E4B0B70235ECE403022031 + +Count = 457 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 9F2951F0F2797CA1C5E6FA7B9F0541BE0D03C0A4AC688D03313D773E33 + +Count = 458 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 1AE8870A1443C44BF23DA102C52BA99113255735372F5C42975F73610B + +Count = 459 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = 40A89A9B02EBD9D64C5C83BA21A7F6E56D311B8F71763C0A67D9222F12 + +Count = 460 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 9A7D44F8BCE47DA7AE975D01626CF9DA41241DCB40F57B627DB2C041F6 + +Count = 461 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = 1827BAA6407BF7176678067497F12FB8E4D4308AD145C9BDF08DA376B0 + +Count = 462 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 7C2292C443885042726CC2DAAF2A74362F5357120ADC440B77E07D01A2 + +Count = 463 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D +AD = +CT = 6A0037DDE95185558855A2BE11C2E42134D49274BBAC71EA7C30622D9C0F + +Count = 464 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D +AD = 00 +CT = FCFBEEDC8C1EA9663D31B0B1099DB83FCB756CA68D56835CCA4C27E4C2F8 + +Count = 465 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D +AD = 0001 +CT = 0E2E8F30F0C391A4034208D1C996F7928650DCD1510FF7E1E4836A3E3BB4 + +Count = 466 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D +AD = 000102 +CT = 575E8B0D5124FE1FB2ADD8B3B4ACEE7B0D72A712B72BF2AB847A0D50C4AD + +Count = 467 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D +AD = 00010203 +CT = B7B87F03895D737DE58D81735C66C55BD69CB4DAC86F358ABFBE8CD9F411 + +Count = 468 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D +AD = 0001020304 +CT = 883200C322B6A50C78D11D4B9EE2A15269CC350CC46C2E840DD153F25B26 + +Count = 469 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D +AD = 000102030405 +CT = B32B255C42EB056FA673CF76DF3E2C950586963F04F3626E3338978AE354 + +Count = 470 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D +AD = 00010203040506 +CT = E070F7A721BF3DAFBAC0F9407055ED095E29A818C2332D2590A5DA82E0ED + +Count = 471 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D +AD = 0001020304050607 +CT = 9858EB2547202F0F4F2CB92E94D5AD5D03DCD0A917D6AB58B2C5A10BCA7D + +Count = 472 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708 +CT = 051C362CF017180E46C5E7140C63641978D3FF2F11D0A226209E614F64D5 + +Count = 473 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D +AD = 00010203040506070809 +CT = 7C89FABF7AC9D748F5D4F1F23EB00DEE5CF46A670F40EC13124EAD00CFDD + +Count = 474 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A +CT = E9E7805A5AD6973E1776BE51A919F819C1D36773522D6C0E8057AF9D9498 + +Count = 475 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B +CT = 437A96250084F91F2CDDD619CAE7FC2DA1F2ECEEDDACB0B3D3FC817952B8 + +Count = 476 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C +CT = F7EDEC7A5925AB5BE45C3D001E87FAAEED66E71ADD075F06799FF10E3E7F + +Count = 477 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C0D +CT = 981E132FCB6E05D97B4BFC27712A86A0AEDC542D7F1A425E76C97FCFE26E + +Count = 478 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C0D0E +CT = D75FB460D0DDD09649B6127CB23B47831ADC0EA6C28C8E6D28E6B562039B + +Count = 479 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C0D0E0F +CT = 3BA03A55E0A533C45551F57E137BE70FECC03CFBF1B26FFF107DD1B6E581 + +Count = 480 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C0D0E0F10 +CT = D49379CDD92AF2E7106391ECEEC1D3E96814ABDDD54F675BA59621E74D5B + +Count = 481 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 0ED61625352A4F3F04366B0DBAC6CD03533936C2E96E3952D34BC7CBA735 + +Count = 482 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = CF7438ADB25D0B7A0AD38BD1FE95035B75446C132A9D193C36D3A34CE0D2 + +Count = 483 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 4E6167E1A9C5A69913248D548C08F3F5EAA6A90A86332789CD129E49534A + +Count = 484 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = DC1C20DA81C6507FF04F37898873FD1191DA26D0BBE0BE8DBA5543847041 + +Count = 485 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = E18C3DAEF7D94AB73C608ACD567F74967817C7DFF42982C6C22B4BFC7136 + +Count = 486 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = C7E0D5D310EA6EE24CBC8CF735DECE37D6910853A97161AB52C030A804A6 + +Count = 487 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = F870F5A0D5BDF885E3098BE5E6FDFD7F19398FD64387C8AC5AE158AC56BF + +Count = 488 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 8C8365A66AE21C1F85DBE288E2212B62B08DB2A5822ABFF5BB6A68657F09 + +Count = 489 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = 56B1986DB3CC994B16A8DD77D3166143D0849C31E5623222C2EADDE8635F + +Count = 490 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 6816CC0E29DC9CF5EE3356AA2DC5DA952FFC3582252E036C86457AC9AB36 + +Count = 491 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = DA881562170087570755526093925C093D871298D29927435FDDEF6ED02C + +Count = 492 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = 9585D0E243369D6747A3529DADD3A59921E80C091F165E1649C9F15D485B + +Count = 493 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = FCD6D40EEB4170F2166A02211A3207577F59730E28C6E5AF2A8FFDFE9689 + +Count = 494 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = 747DED74E776EED785233E35A0A6B8D51FE450CA83A8DD0ED8E216953F54 + +Count = 495 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 94CE60ED5B8FEC3AB32C0C50C989ECCA82D53C1974BBAD94C66AE239642F + +Count = 496 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E +AD = +CT = C9D434E029AB94CCCD50CD556B536FDB928B58140D0CC974758C3C87B13E73 + +Count = 497 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E +AD = 00 +CT = ABF2737CB216E48C905368983AC7E21BB33F05B3E6047B8D5C52B5D6BC8435 + +Count = 498 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E +AD = 0001 +CT = CD4152069F0CAB5811EB059D2750D436687D249CD1DCC738A043E7C8D7F4E9 + +Count = 499 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E +AD = 000102 +CT = 068115A1A61EEE822161225498BBED2DDB1864F5BC9B56D1C016D6D566138B + +Count = 500 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E +AD = 00010203 +CT = 072704C1B2318F950FC1BD241CEC7577F6408E60D1D0CDBF82701183843989 + +Count = 501 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E +AD = 0001020304 +CT = 2C77B946EC63D560E4AC86BF5B21F699F0EE7CA50920B31C55AC3D5F55B86D + +Count = 502 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405 +CT = D947444DFD94E9196DA53538BF2380A52540A8250E97834AD6BE51FD83D42E + +Count = 503 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E +AD = 00010203040506 +CT = 8DEF202572092D738D2EB08BBF16ABAA7D4A3E0B20A0653786B65CF4753506 + +Count = 504 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E +AD = 0001020304050607 +CT = 8597E78352A4453F3A4E9A4E84C93603AB4AA42F3C109D58254CBCEBCE1BDB + +Count = 505 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708 +CT = C4C26879C7A42F1593C0FF36CD91E457605F16DDFBF6F30D3DED1498CB5B40 + +Count = 506 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E +AD = 00010203040506070809 +CT = CE14DA59ABD94EEBE3FBEBA9B1A51AE928B3B2D5F5B5D65CE669B52915E152 + +Count = 507 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A +CT = D335FAD7BFF7E7D171649417BDBF26049C86FD9197608D9BED741D21C78D9D + +Count = 508 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B +CT = A2DF8B426BED93B81D1ED02EB991DB8E00E42A80A171EA34604C8DF214A483 + +Count = 509 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C +CT = 80246D0F6225876A55DF221741F134586751B16F91154E39E5471D9633927E + +Count = 510 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C0D +CT = E83BBA40059B837AE6FCCFE5D189B5F10ACEB872B343C71E61B3BCA5077CBC + +Count = 511 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C0D0E +CT = 727A95D518B1397C612E5F58E5A67536D5456C3E532C52E02306DF9EE39F97 + +Count = 512 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C0D0E0F +CT = 87C05EBB2AFF3CBFB6B69784F5E3207B179D606BEEE40F884AFD955E322C00 + +Count = 513 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 3C7B6ABC78A1043B18A7F85807131EEEA5DFE4B4B3F2F689E7C3F71B748002 + +Count = 514 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 58F3F3033E1FE80689DAC957E20D6AA226D2165C419BF2736B73FDDC7035BA + +Count = 515 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = C0CD09D5755F679B9C40AF41C6C6ADE10E3ACF28A208489F1429D73F3667D7 + +Count = 516 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = AE125CFF191639364FDBC61474C5AF7DC1B0ADDBBC3DE46A9C5CB312F0F7A3 + +Count = 517 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = 789A88EE9FB4442845E98B5FF1D7D3037056CFC4EBECD07CA44439ADC8D743 + +Count = 518 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = A0A368E9E620C757ED0B371C7732DF943D590DC8B2E14AAA6156A3AB1ECEE1 + +Count = 519 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = C3ADC17FA1554DF785EEC93A1DF194FEA8FE01C3DA09AC2F2517C5B732D0AA + +Count = 520 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = 9A1CDEC82D7C835390FBF2ABEEE7924DA5B44A7EBE3D9A5E28ADBB9D60F327 + +Count = 521 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = BFC2F4DB5814B34FD864B31A3E35D1523617EC2DF109FDEECCE7B1140B775F + +Count = 522 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = E393AD98AC53AAEA678E824C50B43E66091064079CFFFF5B6689F947DF4156 + +Count = 523 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 38F66465936D56E765BABD2601AE66D1674537046C27910D96DAE4EAE5D7EC + +Count = 524 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = E4FFAB81BFB7C03FC981E78F0B85928F81950091B048161C1958C5C2C8A546 + +Count = 525 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = 3B5271BD6E294939F33555E2828CF33302BF23BD4A6AF174B8DC318E940593 + +Count = 526 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = AA57ACCEA4325C5C91DA1EB41AF8BEF49C2D464F51344CA54BB25F40A71EC8 + +Count = 527 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = 1A1F3D43B701B5291A91141BC2BC001199BEC48736F54A737CE18E8BE88834 + +Count = 528 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 5B7188EC3CF7D9936934C796F3849EEAD622CC438F3C9228FA223EB9CDFF2B + +Count = 529 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F +AD = +CT = EF0C294594429B657EA6CDD1476737EC4EA2F510FF840BE0862B266BD14864F9 + +Count = 530 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F +AD = 00 +CT = A4B170FA2C2FCF597D4A84CDE1E4CEEB7791137B8A211BE3D91D252F2F599804 + +Count = 531 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F +AD = 0001 +CT = 97D7BFBEEE1842E9E042B52F5E01E7EE0D992D25B8B9BAB4E6413D38DB265BDD + +Count = 532 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102 +CT = 4F506F57FAE9E1DCA3B83F301C7D794C00AAC7970791400157F809902800F9EA + +Count = 533 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F +AD = 00010203 +CT = 30C64146F376E577AD040B20861564B45C00CD6BBEF057E4548212C923E9E8B1 + +Count = 534 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F +AD = 0001020304 +CT = 2C06C3F9E54AB6F0DAE9B99C2C31C8FDA91C12FA81262B56C106906CA9C65D4E + +Count = 535 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405 +CT = 9D22ACBA0486F7C808FF9DFB4593829FB3371357304B1C0615CE384625C203DE + +Count = 536 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F +AD = 00010203040506 +CT = B838773C0770DA6ADB610B95A8E4A3E5C0A4A79C84C7413EF8AA7E6834F1607D + +Count = 537 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F +AD = 0001020304050607 +CT = 4022B9A8622D623C58E58D821FBAC95DD93EEEC934811DB96D008634719BC748 + +Count = 538 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708 +CT = 573FA80904B97B47FFCA75B8B5EC2BBB2E1236B19E48DD7E5F14A93C14A3947D + +Count = 539 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F +AD = 00010203040506070809 +CT = 4CE3937187EBB73CF5B931A9B8B75CD05ADCABA1563DF3EB5BB03C3221ED8856 + +Count = 540 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A +CT = 6CB7321CEA1A021733BE841260DD6F593454376E9A24609510944903DE04C064 + +Count = 541 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B +CT = 6B63FC5EEA5D8150B6C4AF6DF1B1D66B42B82B134CC69D39620529656C5D5F8B + +Count = 542 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C +CT = 353FFD32013981E870D7B23A2FAB8DBE58F4CD6BCB9707BCE028FCCEBB078DF4 + +Count = 543 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C0D +CT = 61FA36866B10E0308C7BECEC6087CF213BE2E0809048CD6A29F196CE291AD799 + +Count = 544 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C0D0E +CT = 32EF3303B5803D24843E0ABC2206C585D9C32BFC66A28D110508F96272E04C82 + +Count = 545 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C0D0E0F +CT = 82965C77931E6C1632B0B78BEA9FFAC1E59B8CE9DD15C6F8653CF2EA459E519F + +Count = 546 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C0D0E0F10 +CT = E1CB1ADAF7D5FB76A063EDC3B859530EF1D686E27A93EC2E05D50DD88D128935 + +Count = 547 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = FB4F1218C4AFA05D8B0C4509EF0AE1F5D1A7DEAAB36773244BFCD15BCA42D93F + +Count = 548 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = CBD59602AECECF8B98A9FBFE526383DC8FC7ACA5D63DF15AC72546923D5A5BAD + +Count = 549 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 67156AD4AE9841801C6B855D3FD58D334065112FA6304A194D51A22B2541BC30 + +Count = 550 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = 4D31121A065EA817E54EA65E1A393859342785A85482844BDB1B6FFF9F616976 + +Count = 551 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = 9CFDADC09DCE46B60CCE6D0B8A3A608FD267696C4F41AEE7B6DD7F041DC39B3B + +Count = 552 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = C58CAC9C556A202257D005519B6D2BDE0F6C74E84B1AF3A1E60BEF4E31B03B77 + +Count = 553 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = B9428714002B91756889E5C5B5E0B55C3B45CFC9375D7F735D808DBA9519C58B + +Count = 554 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 10911DDEBD95BF54501C37A978C243045E3EA6A0F5D3B8136849CBB1CC447976 + +Count = 555 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = A85A4E15F8A98AAA14937083964AF7F871D0C4D5B4190B34197B406EAA0FCEFC + +Count = 556 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = BA29DDE0961BD8DAD7302526578D877523B7CC50048770F4ED5B5E8768EC50FF + +Count = 557 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 00CA00DA0080C914DDADE7F18347730A9A8B2EBDDAA8377A067898C950D479F7 + +Count = 558 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = E83A37FC819FE21252F1AC62538E63CB280FEF3DD53131B215209D2D880467EF + +Count = 559 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 4FDF901264652C05941033033AB37CC881A6B5FE32F608513BC50575C1C37A8C + +Count = 560 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = 75CB85AE5F177F5FA32B125C73152018140D1B09C891236104D983B16FD02B80 + +Count = 561 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 5A376FE4E47C89D5DC8F43557F4FA0C7AED2FA1013642DB01A3612C54FAB0359 + +Count = 562 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10 +AD = +CT = 88D982936E20E0CB1395A297ACCD1F814341BC5A7A3B3BDFF5A209562F5A6F1971 + +Count = 563 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 00 +CT = 77044E500A97FC0E11D52704D436CEA22551CC887DC856EA5BF880D8063AE1A114 + +Count = 564 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 0001 +CT = 24BC2C0B966061F296F49E84C74F87591A244523E2398E24121C0360C9D30242C9 + +Count = 565 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102 +CT = 0504DBB1336C348B36F9D636614DDF998490A829305F40FCE7EF44C8D252FD8E4A + +Count = 566 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 00010203 +CT = 20A8095E96EF31D877DB85EC661D1D800FDCE6A4BBFBBE5935A38044CE44026916 + +Count = 567 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 0001020304 +CT = 080E36DC84BA1A24BC7718B08A56C3FADE7B13C12D3E68354E9C014C28E7C19D29 + +Count = 568 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405 +CT = 01F3BFB8553C24AFE63CB18179D28AF0CC2872905A699C342EBA94A4DA3C0B1E95 + +Count = 569 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 00010203040506 +CT = 7CCC05A01AC92BC130CB3D93EE83283C29F7BD1A3BC7B7D1390DB09158787764E7 + +Count = 570 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 0001020304050607 +CT = CCBED0C207AD7BB6366013E38C4526CC5F2DE663579EB22E94B05D5B715EAB392F + +Count = 571 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708 +CT = 0C46CFEC57BB5461EC2C0511D226BCDF27A6F05CA6C89060413C2B24B5D5C8BAD7 + +Count = 572 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 00010203040506070809 +CT = 9F7DD7DB2E8F38C785F98FE547077C3AE05AAC5A2DDD3AF695CF44D08770EC8267 + +Count = 573 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A +CT = 2D4DE26EBBBAD0B80468AF94D3534DDDAA170F383E160EF4F9F1577E8F7A3D66C9 + +Count = 574 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B +CT = D22772AFDAEEC256E7CE46BDA73730F1D772751A555A7A85EAA306949FC0EEE714 + +Count = 575 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C +CT = 67F08FDEF881EFA34F8AD07E59ADBC210BE604B0E29665C462DC30C83459ECE321 + +Count = 576 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C0D +CT = E0617ADCF34A078765B2F23C4C168D82E17747EFB7635773B627417C6BADDAE2E9 + +Count = 577 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C0D0E +CT = 3AB04445E4BB764257E08AD83E55507409B58A5F9ED3D45C9A9E6CEF6C5D0CEADB + +Count = 578 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C0D0E0F +CT = E28C41F9AE0BABB296F2615CB50359EA9EE68F964EAB944C8611302134400F8B35 + +Count = 579 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 823DDF46B296F6D828090843BBDF8F63422025A86F4DED6C9664BC4B0154AFD5D9 + +Count = 580 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = FAAD68F5D151A09320348D5955F66D377F0226EC1AC8E8169C8FC44DC663683D1E + +Count = 581 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = 8AF21480F9C48E8F99AF2EDA11F167D0C939E059B857503EA6313DB71EA904FF57 + +Count = 582 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 6EAF94B0B3AC2CE720957F90255CEF4AD94D2EB78E90CE1DCB440CFF1034116518 + +Count = 583 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = 2D826B20205624ED5B0A31F06E9D26701D4D5653DE8A41150064D4487A9A648C34 + +Count = 584 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = 05EBF9A8F632B6FA84B27F4DD0D0C5C3543BBCBE940201460CA7BFE8E25AD25608 + +Count = 585 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 8058BF6B432FE70FB1C1B9DDF242E3828141A86E4DB2767163F6C80630A3A638AD + +Count = 586 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = 40030879A60CB9F951A78188F0C10733B787A26A5595AC0051E25F33692DD96C22 + +Count = 587 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = F160BD208E76FC5FF65403F75E6ABBEE3ECEAE2A4B5C471A90C0DE2B316EFCD5C4 + +Count = 588 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = C81D194816E26A85CE0BA3DCF2EFFE4D01878C6907EA85FD1DC9231A213EA0182D + +Count = 589 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 776CB287899526D1A024CA3D764C1D97FA5DC402E38956110202C82683DA75FEB4 + +Count = 590 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 47071FB03735958D7D77D6F1AF5229CE4E2EFFBB56B6EF7CEE83644D3673765DE4 + +Count = 591 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = 04BBD029C6F15FB17E94F379D0CEC45DE41A1365E8E07466FFB20082313D6FF117 + +Count = 592 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 8CD0818681C761DBDFFA64E7E81D1201B6BBA00E0B216BADA595929CA2A456078D + +Count = 593 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = 95DEB6242BB0997805DEED2F3631914700F675DEB2899948A312DCA5AB8DF6A855 + +Count = 594 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 1B40AED7A8A928E94EEF54622A24C7BA4642C69B9BBE816E286AD4671E78EB0644 + +Count = 595 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = +CT = 41557C1A57DEBF7E3F0006AA85840BACDB5DEAAFF2278A66ACAF008D035E1102E6C0 + +Count = 596 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 00 +CT = 1B48B1137612DD2FD753A24820F4EE6B4490A291C3298870A212CC4AB5C27CF0788C + +Count = 597 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 0001 +CT = 99DD62B7F4FD82C888A68697194D34F014D86C5C8F4682D058E8E92729E9E533EA64 + +Count = 598 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102 +CT = EF1D5A78F6EE79D321FA0F28763B08007FA3208F95C5BC3363D71471E42F6F9AFC33 + +Count = 599 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 00010203 +CT = 16468A7835CFE6FDD0F2F72C608103176556B7EE6E221CA2FC51AC79BB184F646F7E + +Count = 600 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 0001020304 +CT = 283C9F6B14728410E9430611AD78EC7BDD8B450F5F8B5B3C6AE826DCFE5150A688F8 + +Count = 601 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405 +CT = 87FB9AC6130621DF0DBD6EFAB68DA1D301990F860006C73749E0D57166469C990ADF + +Count = 602 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 00010203040506 +CT = 0545C8D9873F4A9678C428AD21BFDE0DA8E465C2C3C919B2B81169C369FCDC9C512D + +Count = 603 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 0001020304050607 +CT = F772E6B83E1946D6430566FE7AA27C1D191CAE6CAC8DB4FAAF1F2C5DC05AE7E99308 + +Count = 604 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708 +CT = D1B9E2312608BD2B54BE125BB287EB04272A50CF3B7A92E7851F0932FBA1100DE081 + +Count = 605 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 00010203040506070809 +CT = 5F437486D08F236F1CB1028099F4D1E9A520CD57E91026C0628D9572D3E5E2F3ADB2 + +Count = 606 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A +CT = 6902AB55A82C9E1009A007F0D8EB93B92329EBDF1476C4D47D979100D5E28E9F15E7 + +Count = 607 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B +CT = DF78A10470C9F632E84076B1F50ECD78D0A6833CDA1D8B671078716032D0770761B9 + +Count = 608 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C +CT = 5693A1C52597D29D6F0BEC9709162EE53B092D28C52B235E4C1DA83951C2DC00E852 + +Count = 609 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C0D +CT = E6E881E7558BC9E28DAE9720403C88A56ED6DEF065E2AAE69D918E394377648A08DD + +Count = 610 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C0D0E +CT = 509C4896651D3820483268BA04619733C0A8CA9AD0413B320460A5A9568267862A42 + +Count = 611 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C0D0E0F +CT = 54E448C71819AE7F99E9A631C2E2269DB06E65B3A00696FEF8744DA5A5A02DBFC115 + +Count = 612 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = D98DAA4A1753FEFF7480BD4D1E3B8F0DA6D3DA83FAA02DD95F2478A869A1EF9494D0 + +Count = 613 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 9FF0AC96A387A518A3EA863CF1B3D7CBFFF5E623D1CEB32D1F7EA0625D6654D3669F + +Count = 614 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = 389318AA18AAE97C4EB5A50D2A822E9745175D42003C95F182435D7C2A1E9E272B51 + +Count = 615 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 058B677CC520153EE68F59127406AD9E1B9BB5CC4B5E4808B83383D8845A6E640113 + +Count = 616 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = 068C5C1749C631760EDACF4F678F8DF2E0C6DD27B87F4635B5A0275EBA620B6BC9D6 + +Count = 617 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = 4E4E1A0B632E73D3CB118B8D559CEA4C5A072C686464922F7417E862912E006A1F82 + +Count = 618 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 088024DC216EA695B327F4A10ACC80C11D7BC04D4BC8C0AE0DA0D019BC35D10B125C + +Count = 619 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = 1FDB21AECD0DE8C02D55B0674FBD15374C51951C704F5874F9FC4643AFC45244D4CC + +Count = 620 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = CC1A671769C4B79A6635FD5D5074051CD8C721B313042155027FD0EC30F0E4A4BC7A + +Count = 621 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = 2385353A0E2E0FD6835200249081F5A472E6030F47B9E7A129111036679D87C18DCA + +Count = 622 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = EE6B0DDB538CA224A95AB38804A3243F95A98761813A116339F50E94DFA903E991C6 + +Count = 623 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 68182DE7567BD23CDD33EB2C20377E6DC72D77D7031AB13DDC4122BDE4C03936CD7E + +Count = 624 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = 3AB3EA01579D1C2FBD63FA64EFF5DAC34677D6771EB45CDBD4D1C5C88C3D41F3A631 + +Count = 625 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 6F11FE06FAE20FB5B507CD30287C2FC3352B019D582B076F7FD724A78AC83BD3E0F2 + +Count = 626 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = D4B90DEE960A59EA789923E310516F67DD9C98152B7F17C6B23655A97F68F91E94AA + +Count = 627 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = DF9753D8A877963EAC53D043F03D769A20C317A52673DB25D21331075D6CFAF45072 + +Count = 628 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = +CT = CE05264AEC47DC78F4EF2BEB7E31EAA1BF76D1EE7C76D98308F7E84ECAC6DF82CE1C20 + +Count = 629 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 00 +CT = 48BF5C358A68D93917ADEBFE8502A28BF0BE71FA176DCC9F036CD406B1F938836AC569 + +Count = 630 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 0001 +CT = 5E19A0433CD43034D88CDAA20FC5520DCB121896E2FA2EE8E3ED1D559EAE61ECB80C58 + +Count = 631 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102 +CT = 087B87FD8D943BE86C90678DBBBFDEE94B50F609E9B6F12CCFC06794991815AF829931 + +Count = 632 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 00010203 +CT = D2046B38F77D9E313473C1E7038B3474648562AD862BBF37936CD89C5D9C8841825E46 + +Count = 633 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 0001020304 +CT = 7079694DCAE40F16CD56A3D26199FE71342A9FD985C7757C66FCFEC8F3A22E00E4DD7D + +Count = 634 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405 +CT = 4BFF2AEE7E5E91B0C87C3C37C405FCB21EBA70E66345F3AC94E9EE93A5BD167FFF3590 + +Count = 635 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 00010203040506 +CT = 1BD41EFD231D8966B038D0FBEC6462ADDE0FEAAAC7F15F2B4B59A2F8D57393F0292770 + +Count = 636 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 0001020304050607 +CT = 4C87F09ED1F010B6ACD71C04E4AB40F4A8C06DAB5B5244F63B4DC76DB31A5CB9322DED + +Count = 637 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708 +CT = AB1F7ECD1AA5AE36A60DCF590EA06F6273EB7427B5E319CBBDCD938308F5A842F1E832 + +Count = 638 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 00010203040506070809 +CT = 3F1C24737C44EA6214D70528A08D9E2E1E5A1937294EF60197E1794468168EB25E667C + +Count = 639 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A +CT = DD5EE071DE7C7D9631164ECAD095038FA6B1A7CB2EABE7BD192964337F54A4C9E132A8 + +Count = 640 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B +CT = 73A04C3645F4D52DDC5224574CC321E7ADAF98124505660A138AC1FEAB11E87AD6B11C + +Count = 641 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C +CT = FB1E2271B7B8D705FF9553B2B4B44B5E8FF60E0A0E5CA79061927FD4EA89B6B46C4CB5 + +Count = 642 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C0D +CT = 5CDBB5C8FC9677A96E203FD1526525A96C283325194EF02B32E1633D38D4CBEFE0484F + +Count = 643 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C0D0E +CT = ABA1A4AFFE2287BEFAAC434E1550574DDBED7D9701403845B9F50EB18A6EFADF815F5D + +Count = 644 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C0D0E0F +CT = 8B1A7787133F40FAE18F564509DE6A0F65827EACEB7600E44196BFD30E68AC1C84A176 + +Count = 645 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 71C9C149560ADF1AD807072128BCA26C767F5F6ECBFA2F27B5FDB92FE713FF57A22771 + +Count = 646 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = AB0B3BC1AE26FCC70C279AF1BA9DEC7A6085D4A152280E9DC00E2D22DBFEC4B6D12282 + +Count = 647 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = F7546036EB94FFEAFA4F5EDF5BB37E21D64AB90C90AB1ED085A568E9F8C0F3EA13CD9E + +Count = 648 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 925674AEAA2107C33E78122622694FB0ECCE99A832823A54A217B488784339722C4DEA + +Count = 649 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = 96674182CFCFDAADB0B98EE4A9FE9E23F2B9B276113747776BB77DFBBE18F8AD2A9408 + +Count = 650 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = 08E43598469E933939A98AF2B0D5F3C5E45AB4FA40C8CBAC5409D35AE79489FE11C18E + +Count = 651 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = EB0E4202F4C050590709E4A8C66E2A8D2C0393C5252FDC06E8782951D9C2DE253213AD + +Count = 652 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = 772C644B2FEA773442AEF412EDFD89B4E0765BE221913D5B610DFA03CC841FA9996A57 + +Count = 653 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = D9BA6750E1ADEEFB093C8EE5319CC48F0593A82570322BE63179A745CDB57E8E9C58AA + +Count = 654 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = 83F2FCC9FC19D2918A930DA5D25E0A78271D05A6FC7C6A4CF247943778746391D9BB65 + +Count = 655 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = BDC7911CF4F575E096F5AC7B9CD8EDA13D23AF37FFD10E9D14AA448C6B467C47ED2D6C + +Count = 656 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 94F8699B09E9F9BE5C2255D4C12F1C6EBE69C35ABF4FB373649E2D8EEC01BBAFF2812F + +Count = 657 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = F6262B69F29843DD169B793F63BC11E70419F988EC4C1B4EA89BD7CA17B9D2C6089589 + +Count = 658 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 3CB59D747A84D5C68B6C76D367EEC2669A347E11AD4447DE4E8DFC033BCF469777672D + +Count = 659 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = 0E4B288606238654BED0EC71EA4360593C64C8E5DDDF5E37F9520E44B03A564685F8CC + +Count = 660 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = DC06E8047545C3737C9EC3D65C68AFCE495FD9A4F32F82800DBBE5C325C4437F0EF85C + +Count = 661 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = +CT = 490A4E7E2886734863DF229603AD71852BEB0367258891B6F4302BFE84FE55C1C10281CB + +Count = 662 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 00 +CT = 956021668B0360DB7793A62CDBA9611F6D92EC697F67A566411DA49C3AEED1954D77D665 + +Count = 663 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 0001 +CT = B3C806AEFDCB85578E4FD4FDD67FE3F87E9E7B4CB9376C71939A47871F58F5D1221DA140 + +Count = 664 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102 +CT = 335B195E259CF3D53763F05C2FDBD0CCBF7B1B28022FA81048556789784F011D8A758FB8 + +Count = 665 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 00010203 +CT = D97B6785EF5E402E0413FD5666DEB70F9CB4722E65882BFFF60F5CEF1F53A175D20C02DF + +Count = 666 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 0001020304 +CT = C2BE5677887AA43E57016756FAE2B3FDDBE6AC849A6C885B583981DAFFBCC7D52D10BF2A + +Count = 667 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405 +CT = 52712DA11B4FA6DBF1DB41034480AC99F8CF6827B1E71124E80861C2AB906F76B990B4F2 + +Count = 668 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 00010203040506 +CT = 817D27F98E2212FC1D2A6BE85C3442905BDF19F5CB11103E2826DAB124102C338E857DEB + +Count = 669 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 0001020304050607 +CT = A446D84307C0565F0C64EA9641AA576E14E2D91838A1F038392D286247D77A4CF7BB80E8 + +Count = 670 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708 +CT = 80316166310E8D960258CAC86BD54D9F2EC4D0C6807527A0396B641CE86E0AFC78D5713A + +Count = 671 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 00010203040506070809 +CT = 980103AC4F2CF2B54C76D563774BF892BC0A149AAB0BF680079D416E987F2C521B3357C3 + +Count = 672 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A +CT = E5A0104787442B9BEC7A33B3C84BBB082F58A6C786D49927929778527A54E64983766D78 + +Count = 673 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B +CT = 2B51ABBFC4CF35CA824CDCBA83064183EF97B0A0D105D2ED16AED057AB3B482EB61CB51C + +Count = 674 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C +CT = 954EFDF6335CD7FB0E61E4C7EB375E415694D6543B71AB3B1FB3040FEAF1CBA65EE7E6D6 + +Count = 675 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C0D +CT = 5434F35A44576A2EFC10A752E43670DDE6F05C1D9AC75A2C3D78DAACD42BAD9BF1F62677 + +Count = 676 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C0D0E +CT = 4E861C486A30ECCD6D60F21C2413751C6532DAEC473A1313C3A686FF7DD5DA6BE9FD98C3 + +Count = 677 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C0D0E0F +CT = EA02A7DAB49BA00696B6FBC17782DF8EAFAD88A03BD9092900E9E9EAED641730F3593F35 + +Count = 678 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 79E1AC9D1BC556884696AC4B6D62B8C467C6BD18711C58C566182B8D66DD4E359A604E9B + +Count = 679 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 223A87D48DA7216BD16DAFC5DA810D18FF78E4307558636815466333BF11A0D06B421742 + +Count = 680 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = 47EF322B4185B5B45EB0872B8064AAA7159E19BB7207A9DAC579BD4C4BD2EAD415544CF1 + +Count = 681 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 6781F9BBFB08259267F7B5409B5075FDDEA4536C1254CE3B2B7C9E23E9C42225F2495B92 + +Count = 682 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = DAF1C8E354CEE62DF2FA599CE15C4DB5EFFACE2D779B724B108A0E064022CDB85CB108DB + +Count = 683 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = 2B0E8DC409732CF38D86B3B038FD73854943CAE49D3124CE546E25696F050FD99FCD8650 + +Count = 684 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 88DE829B6C16D859EED8381CA0C90D69CAD039CE92F0F1EDDAD303FD176F50CAD430A491 + +Count = 685 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = AD9A221D48CF48EC5E4296B9818A18BDFF5D1AFFF1B774FB4F8EE48A6E8571B56B0371F4 + +Count = 686 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 69F63B718F1FC21D8CB98F307800680F7AD0FC9C256CAB536CE01A17E048F685B995E4DE + +Count = 687 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = DAE6A863AEE9A4655122AA218DA1F7B441F248F0AA7160E4BEB79734BEF1B4DBB6A9F184 + +Count = 688 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 56845422C4C39ADBDB4E6B49817AB15E87910270E6203DC218D495E849CD1AD60D4DFD71 + +Count = 689 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = EBEC5FD5D2850F6BCDAD1DF4140E15444F02650DC6A7FA91FD87F40FB25A5B522587DDBC + +Count = 690 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = 2AFCD4637DA9139CABE4FEE7FA27D4000956BB26C4B37068233B315D101307CA3469AC4E + +Count = 691 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 08E7D60B9DE2E26566589FAAD4A5FBEB5D54BC0551B80F091E1E0CEF4D204FE45E882032 + +Count = 692 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = 8166C48F3DF8DC41FC7EEBF45BDC9FBB07026516D3A714C980AC1F2C40852A5F7045CE7A + +Count = 693 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 56818624A6992013CA810A9F2846C741483478DFAFBF587BED1BF11F2A8BC447F3A4055F + +Count = 694 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = +CT = 6E42182BC0B5754F0782EC4EB03C42AF3549F1BF9F3A1540348A709CD8C6FA491164FD0567 + +Count = 695 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 00 +CT = 447B5900DD8A1F1FC97B8E1D02BDE4C0081C2C32AA930AC870E54A21721AB01CB1532550E5 + +Count = 696 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 0001 +CT = F1AF3A25F300744B6529938B83EB72A5BF9232B7CB17A4BB2CCB7B306302754F5776BEBD02 + +Count = 697 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102 +CT = 03E13E320DF5C71CA04F4577DD1C0CAF16F67AA1EE6A028FB6F1BF2084EADE1A4C63574CE8 + +Count = 698 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 00010203 +CT = BF87938AEE33EC2CB2E2ECC31520177146ABC4329F8D7827DC5F74DEBBDF4D2FD93E273320 + +Count = 699 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 0001020304 +CT = E0AD1EAF97A05A26AE6E2F929049CE326352C3F2E6D842C5A224EEB720622B727F1293AD49 + +Count = 700 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405 +CT = 47EE76BA3D98ABF9F6BFA2342888DC340DB97ED5C516E7D7C8A26087899182BF9317549229 + +Count = 701 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 00010203040506 +CT = 9ADD3BBCC05A820D9B6EFE204A85F6BC2AA21F34FCCDD3405984D9A223D4768DFC224309FD + +Count = 702 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 0001020304050607 +CT = DF06F1E791A648BB59C9902821AC399D93153040DAFFC145EA6B2E5B83A97ACB83F002EC5C + +Count = 703 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708 +CT = 1844EF8F0B322B2340392A6FB34F3C608038949C8482A42CCAF7002FCFB4FA238B5F4E972F + +Count = 704 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 00010203040506070809 +CT = D3F8EB37375E26B4D6F5D9CD41D8B2B20D34747E5C4F4E8B67DCB8436134F89E34869588B0 + +Count = 705 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A +CT = A1046D2563D762A0B536B90ABA205F1DA56A7233D878C61DFEE6686837E016B992AADE361C + +Count = 706 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B +CT = 036CC075D32F39D3E7AADC3BEB933D95B0C3E988A06B490FEECF8E08B581BAA08AAF1366FD + +Count = 707 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C +CT = 88DB65BB097DB7C7851E828F5179A32F55387569A0C6593C9592CE4A904F78248E922707C4 + +Count = 708 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C0D +CT = 14212A7C9A858C6924CE80B6BC364922C081F8C19D551F9EE8DA5FA7A8B9EB95EB5CA78C7D + +Count = 709 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C0D0E +CT = 5DF919C6C480633B4C6E1951F505BD32CD34F91B6840208E8B17D899575328B5AAD9C8E4CB + +Count = 710 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C0D0E0F +CT = 0DE47D8B15E29392580CDB622C7E996BB070909BB06DB059A81FCA15BC0031BFD38735E1EC + +Count = 711 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 75AD8248B3026FE87DB3221ECA5C46F6AB812E8A759C5066F476CA8262D3CC0B1AA1CDAE79 + +Count = 712 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 80E4199B18A9A6E947CEE980303556AF1DD86F1D989AB7185CC8D0AABF37651A6FC874B784 + +Count = 713 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = E94F4B82E14B78B17CCB56982C3AA3DDBE1541DC4F425429D496F50CF56508707030F7332F + +Count = 714 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 22298C97DF5F814D1F0F1D3D0356D8AA5029EC194AEA908A2E7104EDFE14F27A0BCE34B212 + +Count = 715 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = C133E00D95788CA3BE0C57825EF02421157A2036B6399B363654803000241DE93569B2855A + +Count = 716 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = 5E063F06D6C5949E5A71CFC0A0D491D567F90C6E2D8F539BA1775475C3DAF47CBD1AA6C3C3 + +Count = 717 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 7C9E9E12EF9586A2089B0D0BA2B9180E60982D498894C36F927F854E889BD06AE16659B7FE + +Count = 718 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = 711250CBF13451750B0CB51F1579D0E6FDFFDF65C19167CB84091EE8AFE1B410BE24D60F48 + +Count = 719 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = DA482AADE11333A3A784124B63DFCFA84B65189C802DE1BE48983CD6308203E0ECC122D97B + +Count = 720 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = 3CA3EE3AAACF2D70461829E3673F90174EBE5A4B3BA4B7724A7774A92364747B3178A613B3 + +Count = 721 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 1AA6D1A58471F7B2409101C2F4F2824A39040F56E96FBD2BC0481906D71A9C5BBFAC0C99A6 + +Count = 722 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = E29C055D186D684F7080A8EC33381DAC6902B653E881BA92962159D414AEF992C03BD69BAC + +Count = 723 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = 287A386916BCBC61478FB49F7708CC306BC17DBB4B99E2993B9D12BFA0EF80B06C64C41781 + +Count = 724 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 9D50D834CFC921EA885E9228ADDC38E0DA20ED4F9F67F91E7B858D1F98E8E86A4FD6BF9E69 + +Count = 725 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = 052AA063DB8A8F865B4228E40A9456901BFD0509F9147D2A2F681222E6D625E8A2C9C9A6E6 + +Count = 726 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = BF72CC915D3309D49CD00BF0C538FAE343839E82745D4280D4CF605E65519C43FA35B7A9EC + +Count = 727 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = +CT = 2EEBF5D2B590EBAC4AFA6343C6EB50A04F8C25E7719DE1A3DAE8AC075BA3EA0A3C6B9C8AB6FF + +Count = 728 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 00 +CT = 094011114CC6619F4996B8263DCA6184A147B68FA32A4C3017171E9F6A3845350F3D45C4983A + +Count = 729 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 0001 +CT = 8913D6BC6205EFCA20F5D6C2DA99A844EA224F3D5F2C8D7A36DBCB6C327AB6CD86FAE1650060 + +Count = 730 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102 +CT = CB812D246E8C312101D9716D62ED6DEB20A154E77047659B6A271773C62B6BF3D8CF49B67B95 + +Count = 731 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 00010203 +CT = 6C4D7BA3CBEFEC1C47849356B58038ECE8C257C5C3802F1B6DA38BB600FDB45B326F9118B43D + +Count = 732 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 0001020304 +CT = 367CBCD15C2EDA5C5AF1EAFA882D23BEF635B1BEF8F3D309BBD684DB9698517A7E19A9628B6E + +Count = 733 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405 +CT = 8A5DC05353397158FC2F11323AC55C09B3CE45E4CBFA221ADF54EC468A78A0F2B817B5DCAE0D + +Count = 734 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 00010203040506 +CT = D64890AA62D3F7431AEF164F745B637A4DBB33F2544BCFE7D854085ECB721EC422E56B1CF81A + +Count = 735 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 0001020304050607 +CT = 3B358F8ED90E72B1FA67891C069A7E944F7EA245D1AF6A2DDDE4F0184F25ADCE0E440243E5E1 + +Count = 736 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708 +CT = 2E5F156AE85F6CC3900ACDF6199383A5CE88FFEA72B1C377B5FE3EAD767BF57FEE78677416E1 + +Count = 737 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 00010203040506070809 +CT = 1092388469017807194389706CAA961C69F4DFA8138BAC2CA248491D8C140341CB271D82D5A0 + +Count = 738 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A +CT = 86DDC9C8F3D6D66915F5A0DB905E6BDB3B4F6F7A7FAF4FB773648DE1FA6B9FE4ADD6A6C6F25B + +Count = 739 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B +CT = 43E07D84B9BFDD918D16797A004CC0E1C69EABBA434A997DEA5C59D2B1E5651915BEC8D1527F + +Count = 740 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C +CT = 4C118B7C6AF5B9780233498EC00C11A50F0ED8D12CEA655B01D7D3D36DA85E52861E2185D298 + +Count = 741 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C0D +CT = 1129FB46229983009569BE51D0A47C3F90C38E9D0EC2A425A5C585C62ECC84C2330406FA497A + +Count = 742 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C0D0E +CT = 1DF32BBF88E42D5758982979B414788316BF4F74B79C55DC89DE290C8B1E458842C6EA7425DE + +Count = 743 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C0D0E0F +CT = D8F523E8E3D5D052FBFE737B507423604B28D34CCB21AFDE4ED010594C7F0493C38480001861 + +Count = 744 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = B8EF2648409DF3170E7DD883571CF599A41985E1702413731B197A46C13C4B911E6CCECC6CA0 + +Count = 745 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 6EBBCB0AC350D23C313958452F6DBE21C50B2DFB1996D08BD24AE70BACADA70917354C033B6C + +Count = 746 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = 8C591987F3ADA292A5202AAC3D228624F4ED45D9F324F635B2D04BDF5C283B1318F526514A7C + +Count = 747 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 6B122135EAD8295462AE73198FFE410519A5EA0138848E49B6EB6075EC96C19E812434A2C5F5 + +Count = 748 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = EA5CDEB4EA23F2E987ADE3B2C37CB71B5AD3822D09EEFFBF39453D2EF633DA718AF595478E79 + +Count = 749 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = 490AC1BA199C9D12F9EA069F0D62B3A8F71A5D01D9F2B35898B6770EBA233CCAC533B055EFE7 + +Count = 750 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = A6B9C649F3DF0B2B0A80515189C545DB13F19D8A78B1FC3C8966857F169DE68130916BD44448 + +Count = 751 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = 8ED0AA3BC2AE2524F0916E5BF2A9C869FF6D29A202CAB3F73C1551E2EA10AD726FC1E047479B + +Count = 752 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = B10ADAAFC47DB344BEC8163CB26F43425A53D330CAF9C58E1E3D36160FA641DE99E36052E673 + +Count = 753 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = A516030137972F0B3CB18E9004E216FEEA6EBF81970279C7A08E72207273AB8483B70464D12E + +Count = 754 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 8197B7F71A1088CE3DE9FC3D4C23D5E522D808BD0B0BD4485586FED9346B790FA087D985E7BA + +Count = 755 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 42E94B2ED011FF5E030CA672968EF1244A7EDBC180ACFCF512C36425CD0B2FF049098B423708 + +Count = 756 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = EDE668393407A9640C5511DC14A9CAB88AECE27BE7D1EB51D7A5C0BA410725AB826804C8722C + +Count = 757 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = A1FD495DB04555CA2DE857C3C5811B4D223D82328332170FA7C9ED1F9B42170714F585CB0884 + +Count = 758 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = C8D13C94075526DAC76E7CB1346B0612668AA906FC033078A49AD9C5A39EB38F2EF61AD10466 + +Count = 759 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = B0DDF37AF7457D58F3D3F5ADC666D6C11DF0237668414BCD76B762F80B9D412CDDE27D122919 + +Count = 760 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = +CT = A4A9C5EE94E98A8B13D6EA5C1C2ED0407FBAD8FA52FFA2A3BCC620AAB685447453A60BBEBC14A1 + +Count = 761 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 00 +CT = 2EFC5DD9329E33FBE1C7C7165EBB6725632A07E51AAE3C021AFDED4821007A7A5A024FCAAD53B8 + +Count = 762 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 0001 +CT = 3E11E140DD3B2C96E08332B34EA4450301D1E7A63C7611168C537540DDF4E2D332A21AE3CC0081 + +Count = 763 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102 +CT = 1EFFFE66004739445A2DF9E5F3F777A229222CF15A2E50575C616414D49BD1AB8E1241704CDBC2 + +Count = 764 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 00010203 +CT = CE4281EA3844A66566AE1FD7B85910BAE650964B3B0684107A33D972E3501AE9310C1260620371 + +Count = 765 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 0001020304 +CT = 1F4580A2482AF4BF411337DD16B9A917A1E2C6E1B456CD0995F252F36EBD6E091A2AA25259BCAF + +Count = 766 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405 +CT = C4DADEA234E4668A00D1D8DFF1E99E86D121CF26A9560D3B657434E3FC6F90A8CB23A04895CB7B + +Count = 767 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 00010203040506 +CT = 398467E91BA83110105BE189D4CED49C383A2E3891B5FD4879C6EF22CFE15DD9CD4A163346CEBE + +Count = 768 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 0001020304050607 +CT = 6A2CFA9151DA72318D610F3E9640A6405DDC62619509B8F96E08B28B3E54FD5BF4BEE78C53C6F4 + +Count = 769 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708 +CT = 9322CE5051C388DB9B513082B5C24236CE7887A05FBA7DBBE0431D6CA3A1B5680F78151E517C78 + +Count = 770 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 00010203040506070809 +CT = 7E256F78989FCD7B00D912E4A81BA58BA12883CC3F9AF20E4074EB066F424F5541AFBC88848601 + +Count = 771 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A +CT = C21701C35E0E5FB450C66BD785B5E8A35426198531AD9BF1B30BB9ACC229A49C7C247BD28887DC + +Count = 772 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B +CT = 89D7DFC17B98897E84B11F0159DBD6445E671DBE2F5323522C2BA8AF02E074B7AFCC5487CE71FD + +Count = 773 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C +CT = 97B594C65278FDFF5DC5DE78872F7BB256B9A8A40A1D88AE5319A2C5CC6BDFF43ABA2B4E9A0231 + +Count = 774 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C0D +CT = F245BA07E7313C4D6DF2A7AD249934F9D623ADA17805B2AF60E486132BFD356075A9B8A8BDAB0C + +Count = 775 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C0D0E +CT = AF25B22EF43E3C43233801860542510677C09405A112E08BBC49711C226BCFDFFA024C1423DB5B + +Count = 776 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C0D0E0F +CT = 6350A0EF716237E8C673C80CAAECFD1CCA33EFD8620A0C47563D500B3F245273C122B3CFEFC6B1 + +Count = 777 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 4C7E93A2E700534E094C38FC1E15EFD0B38371076DEA78C0989346825A3A72243145AF9A0E3C5B + +Count = 778 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = B2E1F92143DE07005E38A3B4CB53405C956C98862723A2A1686E5AF192D56D062F53E57317DB04 + +Count = 779 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = FE83C5247C1F5555F5A72E735B064A78E165781169AF07D2F78FD54B294C403A90B1F4E65B2644 + +Count = 780 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = BF65111B5D2002CBB859FE63D53E7C3CE7643316B7C43F767ADDD554AFC2EC90140469C306434E + +Count = 781 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = EED3146322BB83F0B7D895480E4AEF71C8D6531DC7498271AA8F39110C1E3D7A7CB12BA47A9682 + +Count = 782 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = FB585EBA78EE2CA4B5A113B74FBDF72671FBA412CDB00BDD52644168248FE9932155EC718DE545 + +Count = 783 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 205FB1023DFD4162A2D9754908BE4292C1A0E2591CAF368B6D861FC137FDAC7EA9B7151D77DBA3 + +Count = 784 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = 9B32D954A56EB24A2C1A830C71F47220BC36196EB6266DF038290F09D8AC8031582D675E24A7A6 + +Count = 785 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 1436612371EB40E2A9C6538A0398C0748CD58D0CDCD34F4F9AC3C0B0379146FC8D0A8565DD33B9 + +Count = 786 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = 40974A76C99D02EDB4AE33B7BC43B1E4429C3746CCEDD2BAA7FFDC2F02F4F9A778B3BA0567EAE8 + +Count = 787 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 05056E1CCCD5B8E116154DD41834CA86B9FAA64D0EA73FB22516CFBD24C9308D1A4161994D6B8B + +Count = 788 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 216AED297F8EB030731AC7EEF3AF4245B58EB8F3793729C5D8FFD93D1317A8F0E379B4591A177C + +Count = 789 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = EA2EB6514225E107CBBDBEB9C18AF30A8BEC8DAAC73D3B32A37EA22C50BE11B49A626604C14464 + +Count = 790 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 29E880DAEAA07EF8893CAC648B5094FEDFE58CFB3AA7D0779E96987201A31B45C148CAE6BF09D6 + +Count = 791 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = F41088E8A014AEB8D5D64D7469C2FEBF859104321AC5431CFFB2A72FD65C63391573B409D1DF63 + +Count = 792 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 0668AC9999E590ADBD245FE6CBFF85CE11AB7A148EB006B759FEA17D6877B9AC6113630C987418 + +Count = 793 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = +CT = C000827D8D01B9B5CB952F7DC7B57B8182FA83A90D27B20C6E81CE63AAF16C1BB99DE1EC4944ABC6 + +Count = 794 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 00 +CT = 0CA91C09E967E2BBA0ADE530602B05E88ACC43913B7C19E54BB93FB8A609C037C9A2B27679C16147 + +Count = 795 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 0001 +CT = A969B567D8890E29A74B7F26719303D2480269FC4EDC67C56BFCFC490D841975D91988D1FC91D442 + +Count = 796 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102 +CT = B6DFAB41870974CC35044253107AF44E6B9F6D03159FA3D1B71DDD6702C7E5A77075AD1663E4AD8E + +Count = 797 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 00010203 +CT = C7F36BD6B93D58FA3EC0F813DC24F69B250996FE50929179D51D181236DE2AE6B1FCCB290E089FEE + +Count = 798 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 0001020304 +CT = ECE85A3C013F461931560D39EAB0A7E90F87EF4EE317FA92A54A372C95AF001F1108A4AF72D09D0A + +Count = 799 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405 +CT = B0F1708D4378E80E35A96D144C6FDDC849C3D0835FB349DEB70CAD18E11ABD770B56C83796706340 + +Count = 800 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 00010203040506 +CT = 42D77D8C4611818BFA937AEB8F6CBE6E47A856849810D4CBD23AE820003CDC55B8AF5B8B3F58544D + +Count = 801 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 0001020304050607 +CT = 887D6CE43B5E0E82A9680DFDFCE69EE0248B085B27E7FA2ACC636F0B6119DC0D20E1AA85A53BA263 + +Count = 802 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708 +CT = 845216AA26F8BB4A891A66AD2F1B99113BA527F79BF46B2953BE0DB8D8C71FB987E37F0361BDFAE9 + +Count = 803 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 00010203040506070809 +CT = 31057115C2F90BA169D2A4DDE2A857E4D94EE538159E886B117AC2C39DDD1BA637BB46078BC2BE54 + +Count = 804 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A +CT = 8BC592237EAA62FCB2DE12E813D88E685C8B8287F622DB18596C360524AD0E169EDE1FF79CD182B9 + +Count = 805 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B +CT = D24BE21ACA8351A249B3754E1150FEE6A2EEBCAD57D6AA1EAB294402BAF07466D32A411077F2ACB0 + +Count = 806 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C +CT = 6DDC1799B115C95F6D253FB5D311530C5B666F4C810F0E7FC2A42284BFC809EA54F9FF439E0B2045 + +Count = 807 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C0D +CT = 3625A6E8C166D102812703136F595969AE5406D034A532312E7F21EB18A1A63016012552EC6FFAC5 + +Count = 808 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C0D0E +CT = EC0AF560E68430C451AFE03E78162F737FD5F37F00309B7FB8FEF6C652940A90A8E6C12CA14047A1 + +Count = 809 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C0D0E0F +CT = 241B611643449CEDCABC0253D571A59BE92D678A8FCF31E4AC5464CF55C0A940D66CF20687699753 + +Count = 810 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = AE4E53BC1A28901D145237AE8AFCD15307EAFE52B66BA2FCAF8FAC873DA8472DA5A18A729FF2B3B4 + +Count = 811 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 926C98DC8106C4D6C383D777952E37D33E7F05D4DEBB8F48DA856F1ECE703B820F026B0FB84A0941 + +Count = 812 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = B9937D4AF0E88F8917E9F6AA9CF2D00F73A472C20FEAA29CB2497424C33A83F31844C6DD65E98A12 + +Count = 813 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 5961E61763DC4B55E9D04E3AB6625CC9DE674F1734F295ECCCF4B881A7F295201A85A3D79929E9B2 + +Count = 814 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = CE56FCE198EB2AF128BB01B57F3A22D8AACD993CEA4516F16B6E3F51BEA97919119A143F576F0B31 + +Count = 815 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = 05A604FC68C16ECAEDC654BC0196CE65292CD43BEEA9B1E9BE9745924F6177A9D74EA6E19C2A1F6A + +Count = 816 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 6628258D3B248FCA51B301B3AAA2D75C35BE3089858CB1CDCA435A1ECBFD774B94F9FD53F9F28818 + +Count = 817 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = 1F945CFE5099E97FE6961491A478DA682D5F96F538E7CF44CD08B7FB59F87DCCE3205A96C41CB364 + +Count = 818 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 08004F723EF18C9C782B583CA487365766B9729C48C91EDEC884A7821AD0ADBEDF5C3E8B5A566826 + +Count = 819 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = 9C1211CDE325FF71286314242F5F6D16946F1669FBC142CEA0122AB9C7B9AE1102C5EAA9EC9DA33D + +Count = 820 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 77095DC22FD400471FFC7F3991036AE525F9A99F8E3ADB69D79EC1990E0AF56BFD23501D8BA1A832 + +Count = 821 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 4A98722B7CEA0BC6C86A17D7491EC2A38BC241E18F67C975D1F70AE58522950DF41E1B22F9FCEE23 + +Count = 822 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = EA2CF08FC028D934CAF48D973D6B6444D2F162CB14E5EC7BB4326213DE95EE2E8F13CCE3EC27C4BC + +Count = 823 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 032C015B0B314DFBD38A5455A7642E0D633554D3A29B0132F3E74C8FCA9454FA8608632FFFB9A37B + +Count = 824 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = 8B8BF86B7481569287473A68FF15461D84B16F631AD5953B4317FF5DD27794C9087424BCA78F68F1 + +Count = 825 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 04FCBB9CC28981BC668125BFD22F8F54AE1911448C44FD40E3F596F087F7417F62040F20421C1763 + +Count = 826 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = +CT = C9170C2E811B227FCD6093B696772476529CF855C18066D9BF63A8580728075D65110E24685EE2EE0D + +Count = 827 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 00 +CT = 1A6158B87336FF4646D44C8FCEC32A719E7343E14C4512D3204B71B3C7F0A47345E973F40A22C5045B + +Count = 828 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 0001 +CT = 95EFA1BB28CF6DBD16A39CB9A759882A6566C07BEAC190DDC59867FCA54331B38D877989C039B35102 + +Count = 829 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102 +CT = FD664F2BF2F326047E13083CC385FF001D67454320F4DE69B070CF341E4BA416132602C60EDB99CABA + +Count = 830 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 00010203 +CT = 5F41C128A483AC43BF43F5E8745E781ED94010E1C8614E222C0B85A38F3DB4474A55BEE506C0D3AF14 + +Count = 831 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 0001020304 +CT = 853907274FB783663AB025E062AEF2403A13D6430F2A64A203B1FC453E239B9079178C4DAC0EDB424D + +Count = 832 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405 +CT = 3A321DF65897F34C699D3B4DF239FF44517D4DA03B0C27567D89758F992B031147CA6E79707ECEA704 + +Count = 833 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 00010203040506 +CT = 413BD8B3E855CC5E039B352EEC28B4D49C7E1D272C78675BE7CB931FB475BCA67FAF1792C66A0EF147 + +Count = 834 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 0001020304050607 +CT = 3AED02B733B3F1AE8E1292BE87B7EE9A2F94D078463F5BF0E39ED90435F04B198388C0C3FE0D8F949C + +Count = 835 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708 +CT = 8FA954F8C28DFDD369D15E48B2ADB475A16BF4D268808CF74713D682440E822CC33D24188C9CBA663E + +Count = 836 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 00010203040506070809 +CT = 738D3DABF87953534F89AA0232C3731DB5808A5855B0073E913EE5C385219C52F4F816C2B504AD3C14 + +Count = 837 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A +CT = 6E2DADFF6322E89DC12003F6D4DB8BD2A641B6F5FBAB545DDC64C93A66B60F911803F1697061F65AEB + +Count = 838 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B +CT = C6505EDE6EDD40F7F7B44579F59102A3EF96341EF64148CFD344B06EAD996906858E48D36580B58BB6 + +Count = 839 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C +CT = A57085ADD164FAC2D7F5CCBEDCAFEB19A1B64227A6EF0BBBF197D71D1A919F27390C796A15B658AF94 + +Count = 840 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C0D +CT = 1355A5DC8DBCE7741582B7AD08CB84C9390527781863DEE2F6AAB6A74489FEB2E8A45E4A1C9DBC3AE7 + +Count = 841 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C0D0E +CT = FC0150146EBB88814ECA874CA64F6C97692226C337FF5BA8271AFBD7FA3DC075D99E7945E69F5899E7 + +Count = 842 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C0D0E0F +CT = F62FF55B93241141AF10B2EE32E56544B31B3D47937817D6EBDD20E8898F6F4EAE2E8E5F9D055F5151 + +Count = 843 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = E12FAA314954AE0FCFEAC615CD836F5845885C6AE3EA874BAB53DDC81BD8CDE368283EA17AA8AF3673 + +Count = 844 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = CF04AB29FB84BD52C4CEFDDBD5EA3D13946C552CF99E4EA28C452E858904D74712859D748D1E632724 + +Count = 845 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = 6F1D7E2A516F10A88AF3119CAFD876A118ACB3ECB15FBC13CE9D077D91FF0BED6751D3BC795BC49C15 + +Count = 846 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 334D531BFF5182B6F333DE077566D8D9D3632ABCC350A78EB6787540BC1DB21FB941290B769537A2BF + +Count = 847 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = 153D88758D542B5C2611F882AA6E5ACBCE7FD31ACA3BF964A853F7E52E03367C9F6FD7C73F50B9B24C + +Count = 848 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = 079C2F46C630E65A21F442EC8E6F839B98C334BE3AECB266272503B163B8256BA06DD33B8C12BDC03F + +Count = 849 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 8C9B88D0ED43D65EE82415738B81EAA5D0322191380EBBE80F303F520B1BBA3C8F4C5FAAF073ED4962 + +Count = 850 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = 5C3738344DB426A22B22D7AF3A265276FEC4AEE8359D3BAB3E9E03F400A19594A3BBA661FA796925E2 + +Count = 851 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 37F373E3A77A0900F8F3C8AD27FF24812F4759F6ED2F54B12B26C2C8D989846BEBFCD63D7528525ACC + +Count = 852 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = 02966CDC3666415CEB1F74683DA6A957F113B710BD281F6D962CDBF2EF661A4C4329527E534F58F243 + +Count = 853 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = A90B952DB395DE1901B3854BFF722127722A116F7C1F3D5CAA60CBD4524BD7743A2E8D4F375C4C7BC7 + +Count = 854 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 8144BAA7CBB58B7CBA55EA5C1CD273FE72472C5D9521F2E512BA92CD4C4C0124411BC90C1E883D1F68 + +Count = 855 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = 1BFD03AD6763BBA807B3C16E0566F9D465B3764639ADAA17FD47C0870570E093B759EF0C233AE033B2 + +Count = 856 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 20BCEA542DFB8899A3EE1EFCA08A1E7A978DF163B0619630ACD82A60C8386AC6F30895E5A9D3189358 + +Count = 857 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = FE75FCA4BE34EE220177EF51603647CACEDAD888396527B5B9D70C11DE33C9DDD33653A358C2E7AF3F + +Count = 858 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 5B158DE40EF52648B3FEB44F73291DFFF5F3E3DB5FF224183ABA576846F08086F6052704CE39358565 + +Count = 859 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = +CT = 419A816D395121A9482755987BFBAB9E275F17126AF4651C8835116F660AAA0012B605C91BFBE1F4D5D7 + +Count = 860 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 00 +CT = 20F5472F60355295AA31EE25CB256B2EAD273E91A55BA3FFE96F578FA1528132BA0A738043A701C31487 + +Count = 861 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 0001 +CT = 1730702CD7218BD416D1ADE3F44924B06849659611DA6866B88CABBD2ADB366021BBF7271E2858446D3C + +Count = 862 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102 +CT = 9AA77143D9E7F100470CBCA1743D65238665760683BC82CEC1DB2A2BCD9D579BF8F9A5099114C32FD4E9 + +Count = 863 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 00010203 +CT = 58F90AD5D9A0905E362A89384071D5ABA81E0660575E419DEE23364A7662D7EF4FED8E1854A33BAC68E3 + +Count = 864 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 0001020304 +CT = 67F2D0A4B463C49AFC3D044D6AD18262E43F2EFA279886122731A7ACD6E579332544AA0585C1B2036CF0 + +Count = 865 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405 +CT = 9F4D35491C5D59552BB65F58022A759CA6BE2F89CEE2B4ECFDAC53E0F3ABD9A9AE54F726BF3B93501B18 + +Count = 866 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 00010203040506 +CT = 215F6F14CFCBEDC210BA79AA04C040294F66603BC57AC12196261056DFBD318DBDCDC6227962D6050E0A + +Count = 867 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 0001020304050607 +CT = ED920833489FF813FE43D786D8FEDC286540F61BD05A840813B1977C6D2FB3CD2927A0F19B635D8E550B + +Count = 868 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708 +CT = 2953F41BB669963509A5A179DB2F8ECFF157D2EFA71E4AC7F14CF7723DC2C9196C9C4ADC7FAF71A7C466 + +Count = 869 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 00010203040506070809 +CT = 40C7D68B830F80FEAFBE426680402C84E5E6032F7D850B4D0A4C85C7D512AAE61467632E95FB2510E2E3 + +Count = 870 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A +CT = B9D5E2C01D9373287530B262BE1929857BF0B3FD0C70EF20391D4620FF7159635C5D8E5DBBA4019462AF + +Count = 871 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B +CT = 80773800F9D9FD812B90B29A952F923B371ACF311E2A6256263E953CC612E4C337C06961F447666E3C76 + +Count = 872 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C +CT = 4B545651763C2125F6D70A82EC1F1B8CEC40B4774610A27AEF21FA64653B05DDA347DCD9175E70EC774B + +Count = 873 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C0D +CT = 9A46E7D0ED9467E13609C9DC6B57FD2C073105ADF9E013C4FA9979FC3DB6BF954E66F09BE83E6DD7E483 + +Count = 874 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C0D0E +CT = DC0A3D64F0101A354C5E09B9E88FD869FA04B419288D8E0B8952770BD132C8D1761AC6DF757FAF205DF6 + +Count = 875 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C0D0E0F +CT = 7E07DC89779C365A87B73A3A32E4D6AA0885524CC23B8266DDE48A31C1806EF9320090FBBF4AEC257D49 + +Count = 876 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = D89692073EC99EE6BAB2E4E5953C8AAEBB02DB0EBDF0048835013AD3781A7A3B00781574E48845F40372 + +Count = 877 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 4ACB2196062983C474184A500F221525EDE764F35E725CD2DCBB6DBA2781CA23A3A939F141A890B830E7 + +Count = 878 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = 7608B3540DEE7EEB0D07E68ACCDD5BF8D94C6BD4C4141C049F6C576C6B9AF6BD3E22711C37E8D45C51C9 + +Count = 879 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = CC3FA47F7667B09C40AA0D1C168D3C180A3ADB9A9BEE3A00620563BB63E299AB4D32F47EA65C61662397 + +Count = 880 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = 48198078D1A4C96CC87732659FA12795EB1369680567C74661C23B4B5512B28597FF427E7BC412BAEFF0 + +Count = 881 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = F421DF62F8B729EDCA7D3FCFEF7EBD6218160CB08AA5455ECD410C117FCD6AADE20A98B99B33F3BD1606 + +Count = 882 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 817DEA984D5DEEC575D5C34111734D1FDDC531465E82F487ED0D44A09A9797E7F186368340DAB30EF216 + +Count = 883 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = 54B488DEA696AB95944D1CA6CBB493B09DFFC77591FD4F76A2E3984CA8D4BE63CBD101D5C98545621E47 + +Count = 884 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 61F38F2EA0D5B188F007FCCCCC5A0BE47A6BD38498A08EAB42F4383E333B4BE111CC7F973C7E81CD8EE5 + +Count = 885 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = FD20037A1BDBCE3B5CA3F19D081D8F53727D31F0EFD156AB2D7CC92803A6E8BF6E6E0DC365CF88BC614A + +Count = 886 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 6B233034B356D13D4AA190D349FE71C7BAC975B870BA5C2307E8654E8B61EF2143E88D4CC0395FC90E0D + +Count = 887 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 36E4E1C14D057C36DFF3AEC43A0038087E9B5B6CB7A90876D0622EFF442AB536E7DCC841E9A31BC43D29 + +Count = 888 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = 8FF0C9F01EB2474B92C6D9C080595CB38BC2B796E767C6BB5C7CB40FBAE44303C26DEFBD605EB8D4B56E + +Count = 889 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = B9F40B184D6A9F8F687777AE14EA0653F7DFCF479564A20EE7B6C52B2C9293A3AAFA84C0C114284764D9 + +Count = 890 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = 4D0D8A0675DA4E6C2945AD2D5A3A60DCB2C46EC5BB08DA1EDC210968F2950F317E490A34FDD5FF5C1C86 + +Count = 891 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 51B00DE55EF93FA3D636E19DBCEC81D9D79EFDB37FA99CE6ED2CC88BA65068DB6A0C25409B2838ACD6BC + +Count = 892 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = +CT = F2E21C8F7FCA30DFC73A8EF3089568A405C1CD2D1E0659ABD5DF5F28228E4F12631D50C429A62A5A186103 + +Count = 893 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 00 +CT = D193DB059A883B840F0C10D24286BED3CC3AE43D456DA94F85C5C40BB93882CADE3F83B31D1D6312280DE6 + +Count = 894 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 0001 +CT = 0600545F11F2A96019159E3F37F262ACAD959E97BEFE57C3945AE38A4A5CEC4EF82A45ED9CBFB4FD46DADC + +Count = 895 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102 +CT = 71D12E18CACF651E3EEB3553222E36E8944F8F6F55F7915C3C2CAB5C1BEC6A99AC5AFE32768AEEC74CE9BA + +Count = 896 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 00010203 +CT = 723D5B69C542D808EEABEB34771977AB9E07CBDEBC367E2076248BD0D8B0340C1CE3F2876512D510692ACF + +Count = 897 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 0001020304 +CT = 2F42B21BD65E18A7B67EDF2DEEDFFF9F153C8D9CDF785243DBF4046067E0BD3C98B6A220BBFF8BF11750A0 + +Count = 898 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405 +CT = 4D2B120D2CF0C9CCAB90A0A8380F66E2D5103AAB66CA02C03B6EC1B47A3C28ED2B1A2932DC22D742F3CC0B + +Count = 899 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 00010203040506 +CT = D9CD13E58093FB45EA1C0B1B3ECBDF631E06B543718E9EF70E9D528FBFB610F31B3CE48D1C124AD597BC59 + +Count = 900 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 0001020304050607 +CT = FD642CBE3CD82141394C87D6874729E9AFE5AF623206F738E045D41523698469150FF6ED595EF3CD0D5338 + +Count = 901 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708 +CT = C617BCC3DE1FA3524B9019FFFE05CD9C4B243830B2231E2B01330FF152FB37C002B85CDCCC2BB707778E68 + +Count = 902 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 00010203040506070809 +CT = A76A99F5C213B1FB4B02B6FFA408A47F2CA840C95B9D37DC04686B11085808BA64AD2CEF2893E8E784C520 + +Count = 903 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A +CT = C7C892C0ED0CFE339F40A67330899D19EE5CDDC4562A251040B3C79F855FA7916794B89E9C052A8EF0A491 + +Count = 904 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B +CT = 0E49FDFDFDBF3C9A39960B13E0AD74BCC08B68B13B3B34B106CEE7913CE9D586E9677632DB387EDE306F09 + +Count = 905 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C +CT = DB9F186CC4FA64549078A7348460807E751122F19F643F86DE2ABF03F6CB35157AD3FD856F52F30B308D3B + +Count = 906 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C0D +CT = 47B1AB9D977E7F389C73166A2FEBD053CA96FDC7ABA12E0612B84E2E3500BD766D9D4E7424CE85D0E51634 + +Count = 907 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C0D0E +CT = 101074C03F9CB3B42C8DD7F572A49A093B1E2A5C017993A3F726B60D936B538D253CE84A8D29E1E85B40EB + +Count = 908 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C0D0E0F +CT = 155C7AD1876C3DA5678132730422E48C3B73942F1051F782DB84B5F1C70DE1122D4E1BBB4CB227EEFA6955 + +Count = 909 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 6C3B27FEC386CF119988F2D17F4AC4CFF73AEADA18F5E4CAB4BCAE79DD67F473A2A7643A608BD45364456F + +Count = 910 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = CE3CE9F1F1C09ED6319E557ADD4BB0E505FFC4F21862FC983CF4FB76B7651280C712C08514CFDD39381674 + +Count = 911 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = F815F8CABF46B20027886E5E1D843C63CB59D575EB4A70A581C855CA76C9FA2064A7EFD7D26C0C64B03165 + +Count = 912 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 969DD4AB3363AD45593CDB09F5E897064CA8E694D4333689684013112139B6EFCC419F5B2695EC173F2AC4 + +Count = 913 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = 5642072157E26636092F8B30CFD109ACF18A1E8167DFB0DA5EC26E63B089CBF3F07E07C3EC7A51C142D2F3 + +Count = 914 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = 0F15F6DA00C966B57FC572EB42DA8181852307D89EB3CDCF975C9362F1BE79B2900167471849078111DEE4 + +Count = 915 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 9F90061E714F9FC973166EFD46025C8321DD06EDDBA649C9F2059789A189C07E32B77D1EA23E89C1A63214 + +Count = 916 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = CE886499D31DC40CFF0E9797AB3F894FD0DB32F7A3EB049BA9519514FEB2DB3FB3D6CF7993F3AE42170A20 + +Count = 917 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = FC183C633855953E29AC3BF745A1BDB55015522A86DC0AE734B6BB620A044C33EC922976346D94D37ED9FC + +Count = 918 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = 01F1F4D719B18B3A40C930D4B613BD6BC2F950FEA9962200CA3EF73CBE0003E46411437C063DE31B13FEDD + +Count = 919 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = F7D4BA9A3B57DA489E154D97405861F10F8CF4B00F6C477487E1B318F2E111D176A323C760122B17D40E8A + +Count = 920 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = EE36D428BAD6E3901FFC7E4120D767C160E638A1A2590EA336164648112BAA0CEBEB655285A46DD96E99A7 + +Count = 921 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = CF96D84E70A1C5ECF18D96397216B6612F7E12EF26F7DE79E538D4043370C37A99A33FE952261B242FFF2D + +Count = 922 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = E1707B9CEB74857EC13A0EB3190C05C90F6D797673D4818B009FE8F1FEDD3F7B1C6B18E0AE0E22AF386F5F + +Count = 923 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = BF5AECC86F81A7B24B3856B335E4107E86D99F2BE4C3B56352D82953EB5F9F25A473B02935597F46A7B93F + +Count = 924 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 4581AB92CDFD5A97745915AF2D8C604599B836C7265B534C294D315FF9A4F27219103F5E189F7BEFDFC3E0 + +Count = 925 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = +CT = 89DCD6C69995B8269D08E4A958B0DF061001B88CA48DA3C7212D6D0A8C24111BF44D9BE6279708C990F8D5FB + +Count = 926 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 00 +CT = AE5F84185561E0DB43EB3FE10E2FB008148D2D99DCABC1FA80F424B13E8838804D9AF5A0CCBDF561D704B0B8 + +Count = 927 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 0001 +CT = 58CA96439F3DB11518C22EE7A0F541E77E762B6A2C73559A76771FB1D7BA18225AC37DD0CD53EBB6120C596E + +Count = 928 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102 +CT = 665703649040E56059B60368BDFA0CB2DF652790A0149994885035F12827ED1EEB4CC502C6CE94A287FFCD7C + +Count = 929 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 00010203 +CT = D2A088F6A0D0D6A6AB4F31915A123CEE93AE8CC0DFE7094BF51D62F45B5E3522B8BF4704B8B60915DBF11BA3 + +Count = 930 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 0001020304 +CT = A4433A764D6BE41F1968EF46B98AC675669B2E983A3B48B44CF578C5BFCE510C16FB3193ED3629AB246C2C88 + +Count = 931 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405 +CT = E5C649AB224A7BBF5E18265E312ACA291992BCA73D95E3C4AD11C3B817455112FE02107028E31CEDAB0FE1D0 + +Count = 932 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 00010203040506 +CT = 7EE2B53675EE57515C36DB3A6CCD567BD3ED5687BB0457EF4AF23865BE7154803969E39EFA08400B5C7D77D2 + +Count = 933 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 0001020304050607 +CT = B59BE789C1E2EC4A535D4C5123F353C79E5B927488622AA07D0F0D8C49E54B90DD6FAE2744B587C5ABBE9853 + +Count = 934 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708 +CT = C3DD58FF0913A7395A6D43AA254C8DD93A3E9407D803FDFA0F412FF12E9F9461E1C9A7CB0ABA7ABC804EAC3F + +Count = 935 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 00010203040506070809 +CT = 5212A4C796E6E3CD2A71798D82FE62CE5D098391DC5D69B136648B1FC0E9438BF085BF8015ED3679E32C69EB + +Count = 936 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A +CT = FD2FF2C2EC29F1DE683D31EF7FA5813A156FF3748C6EC86CD1AAB941F576F2274B5CB53B9DF592CC306C5DA6 + +Count = 937 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B +CT = 6271A11D4624EECD2CE39AE1243F03B004E81AD809200A09196B907FFD785AA89D21B16574329AAC91C3C1EF + +Count = 938 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C +CT = B361733657C17FACC8BC674E2145063F181FC0A272CDA24B689E69921D88D6083F355DB8FE6CD069B7168302 + +Count = 939 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C0D +CT = 1D544D1067B9E42FB6317B9DA8DD7C9891F531144D459B85DE83BA941A9D20B2F8F4B76BBD7C6831A60F69F9 + +Count = 940 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C0D0E +CT = AEEA0F96149FB2368333A831164FDD91AE90C54F29D7B0140816A0C6F8AE944FBC6E5BC9790A0B3B452739F2 + +Count = 941 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C0D0E0F +CT = 36F11412AA07FE0BD0FE930CCEF1EF4CB7DE5F168274D4C60B48496D663636ADC3A7A885194084E209820649 + +Count = 942 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C0D0E0F10 +CT = CE5EEA17D07A107634C7AEB06969FBDE926A58314B9089F323692D985613172B4B76C3214D8128ADCB15F2F1 + +Count = 943 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = E16D0167C21A223FDCBFBCCE44624708F80EA4DEBA18217AAC790EBEC5A27C493DF18CF11542B8AB18FD5CE2 + +Count = 944 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = CCC7E5B42427A0B697E4FAD60619A6DF95DB0695EE456A1995CDF56E9394330E02F48E6815B7DCB7EAEF3990 + +Count = 945 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = D9448B255E8A84EA4DB91A1BCFB0FB306585F6A392B50FA42EA53BC56649EB93C80CC6C5EE658D01977B5234 + +Count = 946 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = 597E8BDFEB15536D7C79F9ECD0311724B10439BA94823E709871F206BBE449D7E9A5C032A06422C101C88188 + +Count = 947 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = F96ABD9CC3AA699D8E5EF1BCE6EF9589D9C1B158343F540C97162C645432D8F89BAE08A94EAADFA41135ACBE + +Count = 948 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 95DEB425618EE095DA36DBC4ABF304DDDB2897B4766C5725AD6FB6C544EAD4C84590023F3DBA0BAD95359848 + +Count = 949 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = 7E884D82165A741294B49CB7805CA7333E28DFCAF36F897D91D1D278710D77A472C637CD2B78FF4506A70493 + +Count = 950 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = A268197F83A85A3A5969C724A1FD154A143EB3E56B81EB4BB0FEE9B3CE01369976EB98A9D732D164CD09386B + +Count = 951 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = A3CBC69F29FCE5E2FF1F289C446D041CABFB7D290AB6BA39F6E04935E36537B22E241D620A62799125001B62 + +Count = 952 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = B555961F952D7F2606C1D4358B6E287A7D3EB016DC0607EE06D4674F2E3BA0C2F454A2C48A8474CFE54D125B + +Count = 953 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 5DC536822D8B2B935CB56E2A2BBC088312E65186ECB8ABC1750EDF6B9BDD48C9823B4AD42BA44E292BA078B7 + +Count = 954 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = F70B5102CB608E74DF3B04E2069D17D4E2EE9DBA1C46C95CBA703DBE53FD2B222871432DD9E4066875811040 + +Count = 955 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = BDBF2A734F116257CA6779060F59A1013733C9328E7D83D732ABD902399023F4768947472BCE6D35F75B5B9E + +Count = 956 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = 0ED340023E426B2DA909C5FDD6FC0D28387D495B1B59B441D67078375F9446A539FF8F0EBB8A05F3E5CEA70B + +Count = 957 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 4FC88AC68DC354CC75BC980927EAC6BC6845B73040E46036D0C911CAC2B1230B3AF6EC03103047F45F5211FC + +Count = 958 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = +CT = 5BECB8F1C73A85B3B3F4E27BBA3267E73C49507B96AB415FF03CE369FB19AC5EF9178D34B69875A8E64AABA695 + +Count = 959 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 00 +CT = DC20D4969955BFDF400A3E3C65D53F17126786ABDD42621D43193D2A952E4CDE49728903D1FE7FD259722C3C6D + +Count = 960 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 0001 +CT = 89801DF7D0C8511EA4D33FCC9F41D352335240EE9E7344D23992BEA729316492011BAB6F1A584BA8E5B23EE24B + +Count = 961 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102 +CT = A535779595181AA7D271DB96EC0167976DFDC783EFBF3E6197E7A219E80007A1D6D6777C91FF991810C9FE83C5 + +Count = 962 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 00010203 +CT = 34416EE41ECC9D585BF0BF0131357FAAE399AED0C6AA6B744D68F5694C0209E9EB74971723AE554C1A9A114EAB + +Count = 963 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 0001020304 +CT = AC205AFF748D9EDEDF908044A496B2CEBCA4C0EC032ED9151250B7A6E989FB4B13249B3A0BBC47618DFD8875F7 + +Count = 964 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405 +CT = A11D3F46C0C00DA1B1B39178D7170E48FD5398F4F50C59A87209B3A783E849A14FF242AC024290B6C68B8C9B33 + +Count = 965 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 00010203040506 +CT = 933449C60326706449F9DDBA5ECF3B97BFD3D41F9A7F08B1ADB96FE34265583D8C7A3027163705218251D989FF + +Count = 966 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 0001020304050607 +CT = 8F0C040AF77EC955C8D386607895FD548F1D5FF6C8F2F50101BCBEAB4FCFF4A7345A43E5AA3415B250808475D4 + +Count = 967 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708 +CT = 8F63EE79DAC276FA245B11BDCF103DCE431AD99893218DF023F38367335D3B9F60678888053A028A385021553A + +Count = 968 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 00010203040506070809 +CT = AB608713FBE23EFB7D8B5D0FCD7F93F4286344340FF51B245FA06B44193C28548491C6FA4FD1B48D883EFE19C7 + +Count = 969 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A +CT = EB8E6075CFD228B29B8B0EBCD0670FA17D971D8B29CBCC9CA4A923654E56EFC0D389EC5B5D4CBD89A757B83A8A + +Count = 970 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B +CT = C7C5974345FFC8158E7A86390E7ADA67E32EA8DBFF7FCCD04DDAC2D5D7C762CF4C8C43DCD4E047C2E382EC6EEC + +Count = 971 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C +CT = A67916E06996BE652ABB9D463CD406E149E166FDD5930A8C8463FE87B527CDD97689DF6C5A0D74374B64EBED19 + +Count = 972 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C0D +CT = D02719BDE52A6E0BE03AEEB020C5E94AFB5BC175CC5D8A90D16397BBA1DDF8290331344037C503A5D754F8B263 + +Count = 973 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C0D0E +CT = 04E4DB7FB0CD5E82DC510EA1C018D807FFF7A5E05B47CDF1B9BCAA54AB7DD6B24DA74BA5A4ED41D57665C1C0D1 + +Count = 974 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C0D0E0F +CT = 4E54BA0EC07B188A1510BA1FB47D58B05A2A28746EDD40F141C65C53646D77CA15662EA0B47045A06DA6B439B0 + +Count = 975 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C0D0E0F10 +CT = C2D9703A91A09CBDF03FA8D5E1D3491D12EFEFB78952B8F99BD13E0CEFC7A2381A79ED49951A1BF02772221785 + +Count = 976 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = D583D8F6B7283BE885DA6AA7FD035AE3F4DCF9F77935B1D17DE8D5C7C3D1EAF729BE90D2E1713319375A6D75D8 + +Count = 977 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = 61FDAA3BFB1F53A142ABF43A0AD887F41D62B8DBACE075BCE17C92DAF7F7AB22AA58D2A32F154B14BA0CAD97A3 + +Count = 978 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 13614E426D15B41022825840BD6293F6D1C53786EDEB307B93A24A6BFF92465895CF60A51B3848531E455A5ED7 + +Count = 979 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = 35E62D092ABF45438909C842BEC93E0C5A7477EFCDA8CEAA007A0B2839F81DAFD0E58F74DF305FC4433238853D + +Count = 980 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = 1F5433AE3413FF0AFB39CBC3530F4C7A9206EB40506F4D2A1A0074FF31530A01A7CF8B89851E29A9FDC02E3076 + +Count = 981 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = E330230E92AD51FBC4BC065A51F972E83E6C21952F243C5042B9D72D89E3DE4729A8EBFE846BCA81EC7F36A0A9 + +Count = 982 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = E053C3CCD93606672243446746B136CB1EA9D727E34A85D1311C1F300BCF1D3FBF5717DC284595171A18851361 + +Count = 983 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 7614FFF72AFF37A06AAD7614A9C86557A2C06E15FAF8B1FBAA13D735B981A0F61C56A04B5C7727B6DC6E2BF521 + +Count = 984 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = A9A35CC93AA2EA16BE0B4764B2778BDF5486A480F54B3D7DCD22C26A14EE4892384F8E6BE7727F7061FDA779A0 + +Count = 985 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 070E4AE6E7A50C554F4EB193A8CF343D8996679E79E594F305D4C968CB83D433978A047F4B407F004C74C249C7 + +Count = 986 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = D91335D6B8C0FC089A0ACC1F6C3B826BABB4B0F52037A482B13D8D315C009D40832A7111C834D0B5ED00453F73 + +Count = 987 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = 16072473B039F9D516B857F7435B6D0DC286862BA7D929285C9D4084B7E1CC1B0DF879B7C05A63385C59B75D79 + +Count = 988 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = A5F8D9E8F762AA0E90750C6CA7183E669AB7046E27DA7033B2A2A2511A702FD8462DF15199E26D81D3BB8E6EC7 + +Count = 989 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = D3AEA0D48F11EC1DFDFAD2D4E93B2D7406B788B5B8211B454D007A8E142E65A03C043A1AC914A596FA5EF61EFF + +Count = 990 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 8FB96D82A57BD284F00D36BD47F0A1B17AC10ABA8FFE2A5BBA8861A67AB10414DF9DF848658C9911CD4F8179BA + +Count = 991 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = +CT = 2370658D0C95EB0D1A5D8775900A8BDDF0062505CE2E63BBE9B89423492DF8EB52410E29EF641F126D67691E05FC + +Count = 992 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 00 +CT = 8206456FBEA6CFF4A9C31B9452CDCBE46347C09DB83D461C26CEB16733AC613D31F4591997BA5B514EE24A4F9845 + +Count = 993 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 0001 +CT = 433BAF8509EA4E4F24E310C97872E8452CE6E3F6799FB7E0F332E84954558088DF04946DF6521584AE4AB7512D94 + +Count = 994 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102 +CT = A25E179FE7702845DACADA152BC52699FAE1C592AEAD30C2E5598D036DD2954AB6EDE22D32A8B48E9BBF6876E586 + +Count = 995 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 00010203 +CT = 435C9C3A51A23A7B74108A1D0151A40C6F6553FD05BB171BC284D8B53D524612CAB0B5A642236218FA04E5746120 + +Count = 996 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 0001020304 +CT = 986E25CC3D38DFF8F672AD26E1B8ECE6F291755C654DAA3B4082E38FE459523E374E95E54346B739C52D927D178A + +Count = 997 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405 +CT = F21161DD1E41023A2D2B9DA4F81F1574EFAE2F620828DF02B0AAB78633B41EAA496FA9B277295FE038C94197E172 + +Count = 998 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 00010203040506 +CT = CF63CA01DA92C8FD16B684ADEC2926FC60115924DF04A8BBFA5D249A709271630627676175C4FF3C1EAB933DDFDD + +Count = 999 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 0001020304050607 +CT = 5A4038541B99E0A2E2E0018146FCE081B087F60CC9C7FEB87A372A3B71F43BF0CEDFA4FFE13CC2D4E1B74BDBFDBC + +Count = 1000 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708 +CT = 87A910C11201684B6CD7EE14AE85DDFFDD1E58185D8F0FA5853DCAA6E742F91D88104F0115792871626D0ADBD851 + +Count = 1001 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 00010203040506070809 +CT = 53EF5B5F921D084AF23873F0D03F1220700E5E73A7289D86392E030279C4625718F3A9FC2929204F4804AA4B988A + +Count = 1002 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A +CT = 32B1289769BEB0756CE996B2E9E637B10E5B97DBD080B5B21B3DF1E998D6A2A5C153FA01B5CA5B3798DDBC892BF4 + +Count = 1003 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B +CT = 333E89843F69B1188CAF741DD08B3BD452194D4625C8099696DF87502F3512C771E0A9884914869A0C4B39FB70E5 + +Count = 1004 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C +CT = FB179E5964ABBFF3D671AF5008F2148891ABF5BB5CD83B1889C2E144FA525972EB6AB9BBE948B06A726B11D50BD7 + +Count = 1005 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C0D +CT = CFC7D53931CB0F11E79C5ECA4BD13F50ACB7099B260F22AC7E6D28D27B05EB376246388A169B36CDDE369C0106C2 + +Count = 1006 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C0D0E +CT = 247855303B112571885102345CC45E3C2D227D6C5B12100A9930775FCEDAAEA1A300FE98FCEAE7803186206D69FA + +Count = 1007 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C0D0E0F +CT = 65E31C7A893BF7D505FFE1F61BAD96B7C0376466B6DEE44D8744FD7C53E77352A335EA70E499AECA0853C734BC8F + +Count = 1008 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C0D0E0F10 +CT = CBB31E9C67A9E2550CA3460425446C3B26A735CFA25B7FD2EB641527E6343CC8D67326C2FE98BA106B819988F14D + +Count = 1009 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 69D2BC1C40E9BA13A05A95972E152FFDAF9D660F99D0B57ACC2649C5A6E3AA570B4DA9E0C531D9E3ED01F4B299A0 + +Count = 1010 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = 3F23E6A2757545AE2558B2F6776420B489E1AEFBB65AD9B872F7ED5E96740E8363AE01C173FB45A5450BD0A09121 + +Count = 1011 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 4E0A6E3AEB356944E94DCF0ED42CAB56FC284C6B69E1E15173839FEA52C5D665BA1E90725712BF011FCD11B936BF + +Count = 1012 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = AFA973D22E7D7EF3C717F33C941DAD4ABF01899A522027BCC3E18D990FB4D2E2B556ABCD0A732A9F45B35917185F + +Count = 1013 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = DEF758DC420B46CB389B56F69E0A9BEE0245C19A632355F90DFE7140C8495E9CCC30269305700CE2EC9F5133E111 + +Count = 1014 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 466C7C9D09CB300C6F24B1AF814A0B6A96EBDAB8A4D8C882C47DDCD29A0EE6DFA381EF52CC5B338DE5AE4222FA2F + +Count = 1015 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = 847CDC8CDAC1624BD209CC99FE3A3D378B0082F3EDAA018D39658B29E705F31EC86FCA03BE0D6378A56B1CDF7078 + +Count = 1016 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 452A05DDFA0239DC6850C38DFB3BFB60044C96EBC45716257053B7740489EE673B42F55053122371B9071F3D88B4 + +Count = 1017 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = FE638EFF673E9B19424507DEE2B95966F499CA2472E9E60D45B5F28475681F119ABE44B3F4B0444C653EB3C77DB5 + +Count = 1018 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 3034696BEC1DCFBD83F7E431EB999CBCC615FA4F214C455E400013165056384018D6EF6A49909323FADB1E1E878D + +Count = 1019 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 00A1F250619ECE02A1588F7B9F545E9CFA53CE90B3833ED85B0942D4D314948706B4E2F42188E54323E96D193528 + +Count = 1020 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = 725224341C6E30657A7CA51FBF9A63FA85667FB64FD80056F68AEB101B4F74D9507A0D908700D5728AFDDA90B275 + +Count = 1021 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 7FE5D3AFD2D314A2CC1B6F8FB39752EAB85B924FA66010E3CB3A01AC3B403DC0E547B7B9E5B4507D36EB5E97E8AE + +Count = 1022 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = 302239E8F9AE8FF616F6E914EAE077D841E7FDC8A9D536295655E8C89A227924AA17B06E786175C2E5AE63A1E272 + +Count = 1023 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 1CA222752CB92A1BE8AD1D25751E884B2C39B8B8E37E0E9AEB8AB79113EB3994FF9EA22FFEE053E1101EBE48F34C + +Count = 1024 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = +CT = 1939803835F71AF5F76A26ABFE5B4ED950AF5FF5CC06BF3D68992C1AA14C0BC0DD187C2EED9B7AAD51F7E139122303 + +Count = 1025 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 00 +CT = 53EFA83F4F1E582CD951D13AE7CF8DAD819AA7F99C49EF6C08EC01D305A03EDBE927E92DFD222D545C6D35C0E79ECC + +Count = 1026 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 0001 +CT = 7F0A097597C2A620A4F374EE495F3376158883C881C80961DCF04610B5B415AAEC63AA53E6ABFEFD1447A42D15CF14 + +Count = 1027 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102 +CT = BE2F0EB9EEAF732D5BEE9174063A3944DF2626E667028DA2ABD1E17D22BEC836BCBD1017BC7859F4689435A86FE4FC + +Count = 1028 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 00010203 +CT = DC8EA97E2D99363B8413BBC26558570AC3BC01075C7ACA010E734CD22250157AC2CC0BDFD1DEF951B5B8412316FCD6 + +Count = 1029 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 0001020304 +CT = E8022E170269D19802C006700AB6F51AA6ADB76C0D0C7101F4CC228FE7A8E557FF167F5C4E69A80A419EE91BC346B3 + +Count = 1030 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405 +CT = 612194DDBBC85EA3115F1D2026CF3CFB98B1517EA6AE59202D2BAF55320B9C978D795D50D4474A97D19E925C6BAA86 + +Count = 1031 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 00010203040506 +CT = 65157E2B120EC6FE8A8A61BE932AB88104DBABDFD1F9A134A130A713D8D93EEDE6997A5505C63730B0AEB75DEB7DAC + +Count = 1032 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 0001020304050607 +CT = 32E15DA07CE98F7F8A3B99A015B55F614A6D99F5F267611E2C14E2A5FB4403F771F42C822A939A4CB264AE484799DC + +Count = 1033 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708 +CT = 2E5371FEED954F526DB7CE729C6FF44C5652B03B5E696B05C2E141C6448955520FD957D7BE5F19860C10301C568DE0 + +Count = 1034 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 00010203040506070809 +CT = DBAD2359B40ABFF16F1DB33B29B2106055E4ED013365F96693676D5A2C07DB7B1E853D8083C2CDBF340D037A9CF347 + +Count = 1035 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A +CT = E02C8A1DF26EC5687CA56974909CD997AF0D5C44606C9DBD513C84A250CA58C247AB50F877AB93358869BA79D316A3 + +Count = 1036 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B +CT = E36E4A8FA2305C1B2FD7FE363E09E57A1CECDB389BACD8C8E119C89048E6D6B6BFD21113F5D8A1C22AC0DD43CDCDFD + +Count = 1037 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C +CT = FC506BB221FA62F90A27A33FD4E654DAFFAD145A002B9DCE1C1A8D815007E2975324F3AC1845D80AE137334DF123CC + +Count = 1038 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C0D +CT = E772C5DCBF8291B194F236E866BC643DB0E13D981EBEFAC29055B932BBD095A4A0A2D424228FBFE1BED08AD6E6F85F + +Count = 1039 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C0D0E +CT = B4A919DC5F838BDA077D4DB5776BCD952C795ED4BD3604F8598F4571EDBAD6C3CC9B6F3E3C55456D9DD5C894B356A1 + +Count = 1040 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C0D0E0F +CT = 70B2A8ED2593B3B6315A15914E148BAAE58B6303341F0BA95CC5A16E9C5DAA4BD0CFE41C196B57994D816629894FA2 + +Count = 1041 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C0D0E0F10 +CT = D122CEFD796992D02A737272AA00E9E3B778E3F151F1E651A010E047325AC37A1CD7E41DA1017763CC6213BA1081BC + +Count = 1042 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 8C0A25D9B41AAEA7F27EB1B16F48AF7AD8E8A17AB7578325596D6E733EECFB4E37296832A1E019DF399921BC54A600 + +Count = 1043 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = 2B1EFAE9C6165951C0EA91ADB4F7268ECD612BC84E375C40D396679AC27BF630C090E1BD0DAE062EA9BA59FF279AD3 + +Count = 1044 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 5ED6DF1B25E5820A8432DCF91EFBF4570BC6EF5E2404F9C0E228BD497CBB71F6F8FE3CB5688CEE5F4FCAE8BCBFC128 + +Count = 1045 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = A879D7A0A1C97A5E6BD5578D96B1ACA0A2A0C7F64D9CAF2F721D30C4CE651DAFDEF1E95914FAA7DCBF86EF17483F58 + +Count = 1046 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = C5C4B461D0BF049006B2E3B22B7AFD85E84967EA97DA45C0C2C39D5C634DFB3E8783E8CA0B0F3A49D71A1EF4AB61EC + +Count = 1047 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = B47397120FEE8341A297582A0EF8ED0AEF0D7B7BBC973535CE4D26C8DDD52ECE1E51C43E20B946774B1E9F2D6C7C01 + +Count = 1048 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = AF80FD34D7CDE8D535E60C2B215144D2A422AF88AE08AE9AB5F237D8BC80DE61E58D80D8B8E6E6C8DA096E574309DA + +Count = 1049 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 8EDC54382B037B3F4EDBD439DF514A32E7EC6849871089B1934594FCDE2D390F5EAA2BC60B1A54D590FFDC47E4A80C + +Count = 1050 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = 9008E8E6CF4D68D387F3FD79869981C6EDE8E3FB5AD232CAF7B39098696C2F5404386C81B29304F98838C852981CF6 + +Count = 1051 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 9EC1EA974935503E608D67E669E672C5F2D013E43DD14768FE0A47FD2E835FB62247964E75C1E9C0661E6C33F4F1E0 + +Count = 1052 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = EDCD94F4D44169F04FF807C1DCDDECCDA63B34158B6C68BFF1AE842184279A6D729BE79F0F26F4147D5841E8C0939D + +Count = 1053 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = 5FA0A4E138DBC93D9B23E3AA8F3DBE6382A9B467AEDE53BD81350527B88EAF8B392DA0893B5B9D02412CF0F7D50350 + +Count = 1054 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 1040BBF069791D0C5C80E535604879651EA5ECF6CCF64E8F7F6D060832A260A8A0275443939E08DB233F0B1314CE85 + +Count = 1055 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = F8E14234D6E1F3CDC8FC2EB2D735B14B49758990E2703BD44061659C0AEBA1AB5C94F00B216C8FCCEFDF265BE661C7 + +Count = 1056 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = DAC32E172659EA149589F2593EC44124E951DF9FE2373DB651D3AEAE74F1CEBB53C2E33CB423FDCEFA44EA20A52C7F + +Count = 1057 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = +CT = 42494509C7406E43F61FBF06F885CDF4F2C2D87430736130FFF7907E71C7CA384E16C54C859F0E17CFF78E92FAB564C5 + +Count = 1058 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 00 +CT = CB5A29175C2CF4B0EF917C3C56D65BF46677F5E0BE2AC00A098E69B5BD0B2A9E1C0B5FC3F18F79415CEF03C670D34B11 + +Count = 1059 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 0001 +CT = 6AFEA5365BA595A03F75EE28CF127AF76A42D5C5A2347C3A355481445A9B842BA769FE62FAC06C0EF3540624C5A76936 + +Count = 1060 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102 +CT = E27AF5BEB783F21124A2EF6DD75BA94B602A333ECCEA3EB043C04C9EF99926307231CBBE492B767A0CF2AAE19F4A0548 + +Count = 1061 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 00010203 +CT = C2733CCE8416CEFB175501253408F6767C412536649751D63D758EC809AEEE72933CC4F62962A37C3EDA915C7CB0B10D + +Count = 1062 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 0001020304 +CT = 09D5A115BC8E30DCE572250709B93F11412939F2738BD7B3A51109EDB0D1CE92D961F58697735D2CAF1791AAEF88AA15 + +Count = 1063 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405 +CT = D76C5F8FA6CDF860F36A0BD80C1A010EC5493A1697C91DA17D47C7293EDB85793435CB82E02217E236A4268A90E3ACD4 + +Count = 1064 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 00010203040506 +CT = 1DC180F09D7001563379865F014987917BE39DE70C2A8A714750C86ED3A1967F03B4C4E7674617B8E274B169F4BFADB5 + +Count = 1065 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 0001020304050607 +CT = FE93F5A11132479F2FC8082FFE87917379AA6291752B62C6EA12CC6AB8A67FCC45645BE7EBB8AA9B7A3177D72760B597 + +Count = 1066 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708 +CT = ED2C0C3418B6033DB5F70C4CC587E69BEF0FAAF72DDC4CA87180A1C8DD238107C63F336C39BB2D0002506382B35ED53B + +Count = 1067 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 00010203040506070809 +CT = 63ED601B27EF5C4D5262CE556D4D9E06B0473FB6C19A7BA27100AB25F776731AD3CC461EDF2DB5BB5A00B8E72E4791F8 + +Count = 1068 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A +CT = 3241FA626E6DB0BFE9C0B2BB77C84E6B5D89D065C7F875E7DD53F5E9FD584396DB24AB26764C015AB49B634DE6820904 + +Count = 1069 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B +CT = C20C08CF78FFD6E6E98B62DE938C328B8D7800ED7D83EED5F667A95B55E00E17DAE827F1F8A0B319F6B87E14C1AC3CF8 + +Count = 1070 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C +CT = 69A3E5A023459BBB606552E822FD273BD82B66E74E7F4F58871B777ABF266313D44ABD1808B13566ED442D0DE0377530 + +Count = 1071 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C0D +CT = 524741D704105F3BEE700B5AEE3E2D25473486EFA3FC1FF0E8FAB427F971A818C529714322399778C1F5573F011C6D0A + +Count = 1072 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C0D0E +CT = 3B750FDF94272134EDA14AA019E0F720DB3ECBC57C3564CFB3BB786436D0D895165353EF53B8F707A723EFC42F8CF711 + +Count = 1073 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C0D0E0F +CT = 68B710D7B16974580DE1B71602947CAEF8897A5D0A0719DDF614D1853B314183B9491762858F2820C11A4CF6EC023D70 + +Count = 1074 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C0D0E0F10 +CT = A1F56278B46E18D4F3EBD7981824798CAF8056C20E8C70394320361C50BBF812ECB9E07A81E26741DAA8FAEB7DDBFE00 + +Count = 1075 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = DB9BDEA0A80CC6DFDC9FD20C6EAE4D5229C5673748265B358A09FE50A63B8DC4C204AF80B3927FCC2D511952C22DEDE5 + +Count = 1076 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = 92001B02F3E79F07D50D7CF8220A78FD1D31AC28F315431D53BF854108FC37709A42A64A2592C99A62B54E36C52A57BD + +Count = 1077 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 34FB1217BCE173AE129F86BE52C95E6D04F5923057016187C0A363CDF6BB30D4A4C4E96B651E88FE5377DF8112E5C281 + +Count = 1078 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = 60B8203504EB09A7AAC923B3100448F11B1ABAF0D428B74C94185455284ADE98A669F7EB8C63ECB721D05C017349066C + +Count = 1079 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = BF9A6EAB965AC9FCC02138B17AFE018CA53D611B2FB3BD46B8415B6511489886EDA6D3B86D70CEC5D0EB6B3839E39FFB + +Count = 1080 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 77620F5B16AF222DF6B8C063AEA5F0ACA7C36E0CC7DD0E8382EA793013888D663D1682F1C3EE6422216A5A5369B1B0B7 + +Count = 1081 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = 8EED905B044634CC334414EDCE46214BA2B54BA3CD9F384DD6B652E788794122A697CCDCC63218388CA5547E14267254 + +Count = 1082 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = DAAA1AE219D1DFE3DCB6D42E4A2FB387383DD777EB0A4CA3F9FEFCC4BA4876E82CD3FEB14A55871F964747A1867E8194 + +Count = 1083 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = 0565216CEE83173206D99D9ABA5E8CA3D80081D5341D38C9DB7034323504B6CAFEADFA6EF511578B3FD0DA3EB46856BD + +Count = 1084 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 80DBD4D7E64447F037AD4F13047B39436126F3B82238AEB0978B743FFD6D9852D82444D31A63EB0E923469A4EA486F1E + +Count = 1085 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = FE6E62858A6F55983254B2F72DF074BCD888639A5FEC4AF6E952BB1D6D9B062846673F450F819C3B7FA505F01880F6BC + +Count = 1086 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = B1322523B52BFCD33BCC4C19E01463E4C03D881EEA62DD6BB82C82C48F106F672A0682A040055991A9D52F3CEDFB5517 + +Count = 1087 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = E85EAF4D6FECF969A44CF24358191A59A8B8D2BCA0AE2A4F3B168674DAFB3C31E9B6533486A76E1AA7F2D1141783A8C0 + +Count = 1088 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = 57D14CA7AD8AD04A4221317D915D61619327E3F409050B6D827C1392B88D5CEA665B74F7685330185666E7F4CE26CBC9 + +Count = 1089 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = A617E429C7DD351098375900EA5EC8CA23DF17B8DEEA71EA0E8C49A46E01FFEB7C7EA84D0540657671018B9248EA9BD7 + diff --git a/romulus/Implementations/crypto_aead/romulusm1+/armcortexm/api.h b/romulus/Implementations/crypto_aead/romulusm1+/armcortexm/api.h new file mode 100644 index 0000000..a4aa567 --- /dev/null +++ b/romulus/Implementations/crypto_aead/romulusm1+/armcortexm/api.h @@ -0,0 +1,5 @@ +#define CRYPTO_KEYBYTES 16 +#define CRYPTO_NSECBYTES 0 +#define CRYPTO_NPUBBYTES 16 +#define CRYPTO_ABYTES 16 +#define CRYPTO_NOOVERLAP 1 diff --git a/romulus/Implementations/crypto_aead/romulusm1+/armcortexm/crypto_aead.h b/romulus/Implementations/crypto_aead/romulusm1+/armcortexm/crypto_aead.h new file mode 100644 index 0000000..6f4ee42 --- /dev/null +++ b/romulus/Implementations/crypto_aead/romulusm1+/armcortexm/crypto_aead.h @@ -0,0 +1,13 @@ +//API required by the NIST for the LWC competition +int crypto_aead_encrypt(unsigned char *c, unsigned long long *clen, + const unsigned char *m, unsigned long long mlen, + const unsigned char *ad, unsigned long long adlen, + const unsigned char *nsec, const unsigned char *npub, + const unsigned char *k); + +//API required by the NIST for the LWC competition +int crypto_aead_decrypt(unsigned char *m, unsigned long long *outputmlen, + unsigned char *nsec, + const unsigned char *c, unsigned long long clen, + const unsigned char *ad, unsigned long long adlen, + const unsigned char *npub, const unsigned char *k); diff --git a/romulus/Implementations/crypto_aead/romulusm1+/armcortexm/encrypt.c b/romulus/Implementations/crypto_aead/romulusm1+/armcortexm/encrypt.c new file mode 100644 index 0000000..ade5211 --- /dev/null +++ b/romulus/Implementations/crypto_aead/romulusm1+/armcortexm/encrypt.c @@ -0,0 +1,383 @@ +#include "skinny128.h" +#include "romulus.h" +#include + +u8 final_ad_domain (unsigned long long adlen, unsigned long long mlen) { + u8 domain = 0; + u32 leftover; + //Determine which domain bits we need based on the length of the ad + if (adlen == 0) { + domain ^= 0x02; // No message, so only 1 block with padding + } else { + leftover = (u32)(adlen % (2 * BLOCKBYTES)); + if (leftover == 0) { // Even or odd ad length? + domain ^= 0x08; // Even with a full double block at the end + } else if (leftover < BLOCKBYTES) { + domain ^= 0x02; // Odd with a partial single block at the end + } else if (leftover > BLOCKBYTES) { + domain ^= 0x0A; // Even with a partial double block at the end + } + } + //Determine which domain bits we need based on the length of the message + if (mlen == 0) { + domain ^= 0x01; // No message, so only 1 block with padding + } else { + leftover = (u32)(mlen % (2 * BLOCKBYTES)); + if (leftover == 0) { // Even or odd message length? + domain ^= 0x04; // Even with a full double block at the end + } else if (leftover < BLOCKBYTES) { + domain ^= 0x01; // Odd with a partial single block at the end + } else if (leftover > BLOCKBYTES) { + domain ^= 0x05; // Even with a partial double block at the end + } + } + return domain; +} + +//Encryption and authentication using Romulus-N1 +int crypto_aead_encrypt + (unsigned char *c, unsigned long long *clen, + const unsigned char *m, unsigned long long mlen, + const unsigned char *ad, unsigned long long adlen, + const unsigned char *nsec, + const unsigned char *npub, + const unsigned char *k) { + + u64 tmp_mlen = mlen; + u32 tmp; + const u8* m_auth = m; + u8 final_domain = 0x30; + skinny_128_384_tks tks; + u8 state[BLOCKBYTES], pad[BLOCKBYTES]; + (void)nsec; + + // ----------------- Initialization ----------------- + *clen = mlen + TAGBYTES; + memset(tks.tk1, 0x00, KEYBYTES); + memset(state, 0x00, BLOCKBYTES); + tks.tk1[0] = 0x01; // Init the 56-bit LFSR counter + // ----------------- Initialization ----------------- + + // ----------------- Process the associated data ----------------- + final_domain ^= final_ad_domain(adlen, mlen); + SET_DOMAIN(tks, 0x28); + while (adlen > 2*BLOCKBYTES) { // Process double blocks but the last + UPDATE_CTR(tks.tk1); + XOR_BLOCK(state, state, ad); + tkschedule_lfsr(tks.rtk, ad + BLOCKBYTES, k, SKINNY128_384_ROUNDS); + tkschedule_perm(tks.rtk); + tkschedule_perm_tk1(tks.rtk1, tks.tk1); + skinny128_384(state, tks.rtk, state, tks.rtk1); + UPDATE_CTR(tks.tk1); + ad += 2*BLOCKBYTES; + adlen -= 2*BLOCKBYTES; + } + // Pad and process the left-over blocks + if (adlen == 2*BLOCKBYTES) { // Left-over complete double block + UPDATE_CTR(tks.tk1); + XOR_BLOCK(state, state, ad); + tkschedule_lfsr(tks.rtk, ad + BLOCKBYTES, k, SKINNY128_384_ROUNDS); + tkschedule_perm(tks.rtk); + tkschedule_perm_tk1(tks.rtk1, tks.tk1); + skinny128_384(state, tks.rtk, state, tks.rtk1); + UPDATE_CTR(tks.tk1); + } else if (adlen > BLOCKBYTES) { // Left-over partial double block + adlen -= BLOCKBYTES; + UPDATE_CTR(tks.tk1); + XOR_BLOCK(state, state, ad); + memcpy(pad, ad + BLOCKBYTES, adlen); + memset(pad + adlen, 0x00, 15 - adlen); + pad[15] = adlen; // Padding + tkschedule_lfsr(tks.rtk, pad, k, SKINNY128_384_ROUNDS); + tkschedule_perm(tks.rtk); + tkschedule_perm_tk1(tks.rtk1, tks.tk1); + skinny128_384(state, tks.rtk, state, tks.rtk1); + UPDATE_CTR(tks.tk1); + } else { + SET_DOMAIN(tks, 0x2C); + UPDATE_CTR(tks.tk1); + if (adlen == BLOCKBYTES) { // Left-over complete single block + XOR_BLOCK(state, state, ad); + } else { // Left-over partial single block + for(int i =0; i < adlen; i++) + state[i] ^= ad[i]; + state[15] ^= adlen; // Padding + } + if (tmp_mlen >= BLOCKBYTES) { + tkschedule_lfsr(tks.rtk, m_auth, k, SKINNY128_384_ROUNDS); + tkschedule_perm(tks.rtk); + tkschedule_perm_tk1(tks.rtk1, tks.tk1); + skinny128_384(state, tks.rtk, state, tks.rtk1); + if (tmp_mlen > BLOCKBYTES) + UPDATE_CTR(tks.tk1); + m_auth += BLOCKBYTES; + tmp_mlen -= BLOCKBYTES; + } else { + memcpy(pad, m_auth, tmp_mlen); + memset(pad + tmp_mlen, 0x00, BLOCKBYTES - tmp_mlen - 1); + pad[15] = (u8)tmp_mlen; // Padding + tkschedule_lfsr(tks.rtk, pad, k, SKINNY128_384_ROUNDS); + tkschedule_perm(tks.rtk); + tkschedule_perm_tk1(tks.rtk1, tks.tk1); + skinny128_384(state, tks.rtk, state, tks.rtk1); + tmp_mlen = 0; + } + } + // Process all message double blocks except the last + SET_DOMAIN(tks, 0x2C); + while (tmp_mlen > 32) { + UPDATE_CTR(tks.tk1); + XOR_BLOCK(state, state, m_auth); + tkschedule_lfsr(tks.rtk, m_auth + BLOCKBYTES, k, SKINNY128_384_ROUNDS); + tkschedule_perm(tks.rtk); + tkschedule_perm_tk1(tks.rtk1, tks.tk1); + skinny128_384(state, tks.rtk, state, tks.rtk1); + UPDATE_CTR(tks.tk1); + m_auth += 2 * BLOCKBYTES; + tmp_mlen -= 2 * BLOCKBYTES; + } + // Process the last message double block + if (tmp_mlen == 2 * BLOCKBYTES) { // Last message double block is full + UPDATE_CTR(tks.tk1); + XOR_BLOCK(state, state, m_auth); + tkschedule_lfsr(tks.rtk, m_auth + BLOCKBYTES, k, SKINNY128_384_ROUNDS); + tkschedule_perm(tks.rtk); + tkschedule_perm_tk1(tks.rtk1, tks.tk1); + skinny128_384(state, tks.rtk, state, tks.rtk1); + } else if (tmp_mlen > BLOCKBYTES) { // Last message double block is partial + tmp_mlen -= BLOCKBYTES; + UPDATE_CTR(tks.tk1); + XOR_BLOCK(state, state, m_auth); + memcpy(pad, m_auth + BLOCKBYTES, tmp_mlen); + memset(pad + tmp_mlen, 0x00, BLOCKBYTES - tmp_mlen - 1); + pad[15] = (u8)tmp_mlen; // Padding + tkschedule_lfsr(tks.rtk, pad, k, SKINNY128_384_ROUNDS); + tkschedule_perm(tks.rtk); + tkschedule_perm_tk1(tks.rtk1, tks.tk1); + skinny128_384(state, tks.rtk, state, tks.rtk1); + } else if (tmp_mlen == BLOCKBYTES) { // Last message single block is full + XOR_BLOCK(state, state, m_auth); + } else if (tmp_mlen > 0) { // Last message single block is partial + for(int i =0; i < (int)tmp_mlen; i++) + state[i] ^= m_auth[i]; + state[15] ^= (u8)tmp_mlen; // Padding + } + // Process the last partial block + SET_DOMAIN(tks, final_domain); + UPDATE_CTR(tks.tk1); + tkschedule_lfsr(tks.rtk, npub, k, SKINNY128_384_ROUNDS); + tkschedule_perm(tks.rtk); + tkschedule_perm_tk1(tks.rtk1, tks.tk1); + skinny128_384(state, tks.rtk, state, tks.rtk1); + // ----------------- Process the associated data ----------------- + + + // ----------------- Generate the tag ----------------- + G(state,state); + memcpy(c + mlen, state, TAGBYTES); + // ----------------- Generate the tag ----------------- + + memset(tks.tk1, 0x00, KEYBYTES); + tks.tk1[0] = 0x01; // Init the 56-bit LFSR counter + if (mlen > 0) { + SET_DOMAIN(tks, 0x24); + while (mlen > BLOCKBYTES) { + tkschedule_perm_tk1(tks.rtk1, tks.tk1); + skinny128_384(state, tks.rtk, state, tks.rtk1); + RHO(state,c,m); + UPDATE_CTR(tks.tk1); + c += BLOCKBYTES; + m += BLOCKBYTES; + mlen -= BLOCKBYTES; + } + tkschedule_perm_tk1(tks.rtk1, tks.tk1); + skinny128_384(state, tks.rtk, state, tks.rtk1); + for(int i = 0; i < (int)mlen; i++) { + tmp = m[i]; // Use of tmp variable in case c = m + c[i] = m[i] ^ (state[i] >> 1) ^ (state[i] & 0x80) ^ (state[i] << 7); + state[i] ^= (u8)tmp; + } + state[15] ^= (u8)mlen; // Padding + } + + return 0; +} + +//Decryption and tag verification using Romulus-N1 +int crypto_aead_decrypt + (unsigned char *m, unsigned long long *mlen, + unsigned char *nsec, + const unsigned char *c, unsigned long long clen, + const unsigned char *ad, unsigned long long adlen, + const unsigned char *npub, + const unsigned char *k) { + + u32 tmp, tmp_mlen; + u8 final_domain = 0x30; + u8* m_auth = m; + const u8* c_tmp = c; + skinny_128_384_tks tks; + u8 state[BLOCKBYTES], pad[BLOCKBYTES]; + (void)nsec; + + if (clen < TAGBYTES) + return -1; + + // ----------------- Initialization ----------------- + *mlen = clen - TAGBYTES; + memset(tks.tk1, 0x00, KEYBYTES); + tks.tk1[0] = 0x01; // Init the 56-bit LFSR counter + // ----------------- Initialization ----------------- + + // ----------------- Process the ciphertext ----------------- + clen -= TAGBYTES; + memcpy(state, c + clen, TAGBYTES); + tmp_mlen = clen; + if (tmp_mlen > 0) { + tkschedule_lfsr(tks.rtk, npub, k, SKINNY128_384_ROUNDS); + tkschedule_perm(tks.rtk); + SET_DOMAIN(tks, 0x24); + while (tmp_mlen > BLOCKBYTES) { + tkschedule_perm_tk1(tks.rtk1, tks.tk1); + skinny128_384(state, tks.rtk, state, tks.rtk1); + RHO_INV(state, c, m); + UPDATE_CTR(tks.tk1); + c += BLOCKBYTES; + m += BLOCKBYTES; + tmp_mlen -= BLOCKBYTES; + } + tkschedule_perm_tk1(tks.rtk1, tks.tk1); + skinny128_384(state, tks.rtk, state, tks.rtk1); + for(int i = 0; i < (int)tmp_mlen; i++) { + m[i] = c[i] ^ (state[i] >> 1) ^ (state[i] & 0x80) ^ (state[i] << 7); + state[i] ^= m[i]; + } + state[15] ^= (u8)tmp_mlen; // Padding + } + // ----------------- Process the ciphertext ----------------- + + // ----------------- Process the associated data ----------------- + memset(tks.tk1, 0x00, KEYBYTES); + tks.tk1[0] = 0x01; // Init the 56-bit LFSR counter + memset(state, 0x00, BLOCKBYTES); + final_domain ^= final_ad_domain(adlen, clen); + SET_DOMAIN(tks, 0x28); + while (adlen > 2*BLOCKBYTES) { // Process double blocks but the last + UPDATE_CTR(tks.tk1); + XOR_BLOCK(state, state, ad); + tkschedule_lfsr(tks.rtk, ad + BLOCKBYTES, k, SKINNY128_384_ROUNDS); + tkschedule_perm(tks.rtk); + tkschedule_perm_tk1(tks.rtk1, tks.tk1); + skinny128_384(state, tks.rtk, state, tks.rtk1); + UPDATE_CTR(tks.tk1); + ad += 2*BLOCKBYTES; + adlen -= 2*BLOCKBYTES; + } + // Pad and process the left-over blocks + if (adlen == 2*BLOCKBYTES) { // Left-over complete double block + UPDATE_CTR(tks.tk1); + XOR_BLOCK(state, state, ad); + tkschedule_lfsr(tks.rtk, ad + BLOCKBYTES, k, SKINNY128_384_ROUNDS); + tkschedule_perm(tks.rtk); + tkschedule_perm_tk1(tks.rtk1, tks.tk1); + skinny128_384(state, tks.rtk, state, tks.rtk1); + UPDATE_CTR(tks.tk1); + } else if (adlen > BLOCKBYTES) { // Left-over partial double block + adlen -= BLOCKBYTES; + UPDATE_CTR(tks.tk1); + XOR_BLOCK(state, state, ad); + memcpy(pad, ad + BLOCKBYTES, adlen); + memset(pad + adlen, 0x00, 15 - adlen); + pad[15] = adlen; // Padding + tkschedule_lfsr(tks.rtk, pad, k, SKINNY128_384_ROUNDS); + tkschedule_perm(tks.rtk); + tkschedule_perm_tk1(tks.rtk1, tks.tk1); + skinny128_384(state, tks.rtk, state, tks.rtk1); + UPDATE_CTR(tks.tk1); + } else { + SET_DOMAIN(tks, 0x2C); + UPDATE_CTR(tks.tk1); + if (adlen == BLOCKBYTES) { // Left-over complete single block + XOR_BLOCK(state, state, ad); + } else { // Left-over partial single block + for(int i =0; i < (int)adlen; i++) + state[i] ^= ad[i]; + state[15] ^= adlen; // Padding + } + if (clen >= BLOCKBYTES) { + tkschedule_lfsr(tks.rtk, m_auth, k, SKINNY128_384_ROUNDS); + tkschedule_perm(tks.rtk); + tkschedule_perm_tk1(tks.rtk1, tks.tk1); + skinny128_384(state, tks.rtk, state, tks.rtk1); + if (clen > BLOCKBYTES) + UPDATE_CTR(tks.tk1); + m_auth += BLOCKBYTES; + clen -= BLOCKBYTES; + } else { + memcpy(pad, m_auth, clen); + memset(pad + clen, 0x00, BLOCKBYTES - clen - 1); + pad[15] = (u8)clen; // Padding + tkschedule_lfsr(tks.rtk, pad, k, SKINNY128_384_ROUNDS); + tkschedule_perm(tks.rtk); + tkschedule_perm_tk1(tks.rtk1, tks.tk1); + skinny128_384(state, tks.rtk, state, tks.rtk1); + clen = 0; + } + } + // Process all message double blocks except the last + SET_DOMAIN(tks, 0x2C); + while (clen > 32) { + UPDATE_CTR(tks.tk1); + XOR_BLOCK(state, state, m_auth); + tkschedule_lfsr(tks.rtk, m_auth + BLOCKBYTES, k, SKINNY128_384_ROUNDS); + tkschedule_perm(tks.rtk); + tkschedule_perm_tk1(tks.rtk1, tks.tk1); + skinny128_384(state, tks.rtk, state, tks.rtk1); + UPDATE_CTR(tks.tk1); + m_auth += 2 * BLOCKBYTES; + clen -= 2 * BLOCKBYTES; + } + // Process the last message double block + if (clen == 2 * BLOCKBYTES) { // Last message double block is full + UPDATE_CTR(tks.tk1); + XOR_BLOCK(state, state, m_auth); + tkschedule_lfsr(tks.rtk, m_auth + BLOCKBYTES, k, SKINNY128_384_ROUNDS); + tkschedule_perm(tks.rtk); + tkschedule_perm_tk1(tks.rtk1, tks.tk1); + skinny128_384(state, tks.rtk, state, tks.rtk1); + } else if (clen > BLOCKBYTES) { // Last message double block is partial + clen -= BLOCKBYTES; + UPDATE_CTR(tks.tk1); + XOR_BLOCK(state, state, m_auth); + memcpy(pad, m_auth + BLOCKBYTES, clen); + memset(pad + clen, 0x00, BLOCKBYTES - clen - 1); + pad[15] = (u8)clen; // Padding + tkschedule_lfsr(tks.rtk, pad, k, SKINNY128_384_ROUNDS); + tkschedule_perm(tks.rtk); + tkschedule_perm_tk1(tks.rtk1, tks.tk1); + skinny128_384(state, tks.rtk, state, tks.rtk1); + } else if (clen == BLOCKBYTES) { // Last message single block is full + XOR_BLOCK(state, state, m_auth); + } else if (clen > 0) { // Last message single block is partial + for(int i =0; i < (int)clen; i++) + state[i] ^= m[i]; + state[15] ^= (u8)clen; // Padding + } + // Process the last partial block + SET_DOMAIN(tks, final_domain); + UPDATE_CTR(tks.tk1); + tkschedule_lfsr(tks.rtk, npub, k, SKINNY128_384_ROUNDS); + tkschedule_perm(tks.rtk); + tkschedule_perm_tk1(tks.rtk1, tks.tk1); + skinny128_384(state, tks.rtk, state, tks.rtk1); + // ----------------- Process the associated data ----------------- + + // ----------------- Generate and check the tag ----------------- + G(state,state); + tmp = 0; + for(int i = 0; i < TAGBYTES; i++) + tmp |= state[i] ^ c_tmp[*mlen+i]; //constant-time tag comparison + // ----------------- Generate and check the tag ----------------- + + return tmp; +} \ No newline at end of file diff --git a/romulus/Implementations/crypto_aead/romulusm1+/armcortexm/romulus.h b/romulus/Implementations/crypto_aead/romulusm1+/armcortexm/romulus.h new file mode 100644 index 0000000..626a767 --- /dev/null +++ b/romulus/Implementations/crypto_aead/romulusm1+/armcortexm/romulus.h @@ -0,0 +1,69 @@ +#ifndef ROMULUSN1_H_ +#define ROMULUSN1_H_ + +#include "skinny128.h" + +typedef unsigned char u8; +typedef unsigned int u32; +typedef unsigned int u64; +typedef struct { + u8 tk1[16]; //to manipulate tk1 byte-wise + u32 rtk1[4*16]; //to avoid tk schedule recomputations + u32 rtk[4*SKINNY128_384_ROUNDS]; //all round tweakeys +} skinny_128_384_tks; + +#define TAGBYTES 16 +#define KEYBYTES 16 +#define BLOCKBYTES 16 + +#define SET_DOMAIN(tks, domain) ((tks).tk1[7] = (domain)) + +//G as defined in the Romulus specification in a 32-bit word-wise manner +#define G(x,y) ({ \ + tmp = ((u32*)(y))[0]; \ + ((u32*)(x))[0] = (tmp >> 1 & 0x7f7f7f7f) ^ ((tmp ^ (tmp << 7)) & 0x80808080); \ + tmp = ((u32*)(y))[1]; \ + ((u32*)(x))[1] = (tmp >> 1 & 0x7f7f7f7f) ^ ((tmp ^ (tmp << 7)) & 0x80808080); \ + tmp = ((u32*)(y))[2]; \ + ((u32*)(x))[2] = (tmp >> 1 & 0x7f7f7f7f) ^ ((tmp ^ (tmp << 7)) & 0x80808080); \ + tmp = ((u32*)(y))[3]; \ + ((u32*)(x))[3] = (tmp >> 1 & 0x7f7f7f7f) ^ ((tmp ^ (tmp << 7)) & 0x80808080); \ +}) + +//update the counter in tk1 in a 32-bit word-wise manner +#define UPDATE_CTR(tk1) ({ \ + tmp = ((u32*)(tk1))[1]; \ + ((u32*)(tk1))[1] = (tmp << 1) & 0x00ffffff; \ + ((u32*)(tk1))[1] |= (((u32*)(tk1))[0] >> 31); \ + ((u32*)(tk1))[1] |= tmp & 0xff000000; \ + ((u32*)(tk1))[0] <<= 1; \ + if ((tmp >> 23) & 0x01) \ + ((u32*)(tk1))[0] ^= 0x95; \ +}) + +//x <- y ^ z for 128-bit blocks +#define XOR_BLOCK(x,y,z) ({ \ + ((u32*)(x))[0] = ((u32*)(y))[0] ^ ((u32*)(z))[0]; \ + ((u32*)(x))[1] = ((u32*)(y))[1] ^ ((u32*)(z))[1]; \ + ((u32*)(x))[2] = ((u32*)(y))[2] ^ ((u32*)(z))[2]; \ + ((u32*)(x))[3] = ((u32*)(y))[3] ^ ((u32*)(z))[3]; \ +}) + + +//Rho as defined in the Romulus specification +//use pad as a tmp variable in case y = z +#define RHO(x,y,z) ({ \ + G(pad,x); \ + XOR_BLOCK(y, pad, z); \ + XOR_BLOCK(x, x, z); \ +}) + +//Rho inverse as defined in the Romulus specification +//use pad as a tmp variable in case y = z +#define RHO_INV(x, y, z) ({ \ + G(pad, x); \ + XOR_BLOCK(z, pad, y); \ + XOR_BLOCK(x, x, z); \ +}) + +#endif // ROMULUSN1_H_ \ No newline at end of file diff --git a/romulus/Implementations/crypto_aead/romulusm1+/armcortexm/skinny128.h b/romulus/Implementations/crypto_aead/romulusm1+/armcortexm/skinny128.h new file mode 100644 index 0000000..7f53b7d --- /dev/null +++ b/romulus/Implementations/crypto_aead/romulusm1+/armcortexm/skinny128.h @@ -0,0 +1,15 @@ +#ifndef SKINNY128_H_ +#define SKINNY128_H_ + +typedef unsigned char u8; +typedef unsigned int u32; + +#define SKINNY128_384_ROUNDS 40 + +extern void skinny128_384(u8* ctext, const u32* tk, const u8* ptext, const u32* rtk1); +extern void tkschedule_lfsr(u32* rtk, const u8* tk2, const u8* tk3, const int rounds); +extern void tkschedule_perm(u32* rtk); +extern void tkschedule_perm_tk1(u32* rtk1, const u8* tk1); + + +#endif // SKINNY128_H_ \ No newline at end of file diff --git a/romulus/Implementations/crypto_aead/romulusm1+/armcortexm/skinny128.s b/romulus/Implementations/crypto_aead/romulusm1+/armcortexm/skinny128.s new file mode 100644 index 0000000..2f938a0 --- /dev/null +++ b/romulus/Implementations/crypto_aead/romulusm1+/armcortexm/skinny128.s @@ -0,0 +1,1706 @@ +/******************************************************************************* +* ARM assembly implementation of fixsliced SKINNY-128-384. +* +* For more details, see the paper at: https:// +* +* @author Alexandre Adomnicai, Nanyang Technological University, +* alexandre.adomnicai@ntu.edu.sg +* +* @date May 2020 +*******************************************************************************/ + +.syntax unified +.thumb + +/******************************************************************************* +* applies P^2 on the tweakey state in a bitsliced manner +*******************************************************************************/ +.align 2 +p2: + movw r1, #0xcc00 + movt r1, #0xcc00 //r1 <- 0xcc00cc00 + movw r10, #0xcc00 + movt r10, #0x0033 //r10<- 0xcc000033 + and r11, r1, r6, ror #14 + bfi r11, r6, #16, #8 + and r12, r6, #0xcc000000 + orr r11, r11, r12, lsr #2 + and r12, r10, r6 + orr r11, r11, r12, lsr #8 + and r12, r6, #0x00cc0000 + orr r6, r11, r12, lsr #18 + and r11, r1, r7, ror #14 + bfi r11, r7, #16, #8 + and r12, r7, #0xcc000000 + orr r11, r11, r12, lsr #2 + and r12, r10, r7 + orr r11, r11, r12, lsr #8 + and r12, r7, #0x00cc0000 + orr r7, r11, r12, lsr #18 + and r11, r1, r8, ror #14 + bfi r11, r8, #16, #8 + and r12, r8, #0xcc000000 + orr r11, r11, r12, lsr #2 + and r12, r10, r8 + orr r11, r11, r12, lsr #8 + and r12, r8, #0x00cc0000 + orr r8, r11, r12, lsr #18 + and r11, r1, r9, ror #14 + bfi r11, r9, #16, #8 + and r12, r9, #0xcc000000 + orr r11, r11, r12, lsr #2 + and r12, r10, r9 + orr r11, r11, r12, lsr #8 + and r12, r9, #0x00cc0000 + orr r9, r11, r12, lsr #18 + bx lr + +/******************************************************************************* +* applies P^4 on the tweakey state in a bitsliced manner +*******************************************************************************/ +.align 2 +p4: + str.w r14, [sp] //store r14 on the stack + movw r14, #0x00cc + movt r14, #0xcc00 //r14<- 0xcc0000cc + movw r12, #0xcc00 + movt r12, #0x3300 //r12<- 0x3300cc00 + movw r11, #0x00cc + movt r11, #0x00cc //r11<- 0x00cc00cc + and r10, r14, r6, ror #22 + and r1, r12, r6, ror #16 + orr r10, r10, r1 + and r1, r6, r11 + orr r10, r10, r1, lsr #2 + movw r1, #0xcc33 //r1 <- 0x0000cc33 + and r6, r6, r1 + orr r6, r10, r6, ror #24 + and r10, r14, r7, ror #22 + and r1, r12, r7, ror #16 + orr r10, r10, r1 + and r1, r7, r11 + orr r10, r10, r1, lsr #2 + movw r1, #0xcc33 //r1 <- 0x0000cc33 + and r7, r7, r1 + orr r7, r10, r7, ror #24 + and r10, r14, r8, ror #22 + and r1, r12, r8, ror #16 + orr r10, r10, r1 + and r1, r8, r11 + orr r10, r10, r1, lsr #2 + movw r1, #0xcc33 //r1 <- 0x0000cc33 + and r8, r8, r1 + orr r8, r10, r8, ror #24 + and r10, r14, r9, ror #22 + ldr.w r14, [sp] //restore r14 + and r12, r12, r9, ror #16 + orr r10, r10, r12 + and r12, r9, r11 + orr r10, r10, r12, lsr #2 + movw r12, #0xcc33 //r1 <- 0x0000cc33 + and r9, r9, r12 + orr r9, r10, r9, ror #24 + bx lr + +/******************************************************************************* +* applies P^6 on the tweakey state in a bitsliced manner +*******************************************************************************/ +.align 2 +p6: + movw r1, #0x3333 //r1 <- 0x00003333 + movw r12, #0x00cc + movt r12, #0x3300 //r12<- 0x330000cc + and r10, r6, r1, ror #8 // --- permute r6 6 times + and r11, r12, r6, ror #24 + orr r11, r11, r10, ror #6 + and r10, r1, r6, ror #10 + orr r11, r11, r10 + and r10, r6, #0x000000cc + orr r11, r11, r10, lsl #14 + and r10, r6, #0x00003300 + orr r6, r11, r10, lsl #2 // permute r6 6 times --- + and r10, r7, r1, ror #8 // --- permute r7 6 times + and r11, r12, r7, ror #24 + orr r11, r11, r10, ror #6 + and r10, r1, r7, ror #10 + orr r11, r11, r10 + and r10, r7, #0x000000cc + orr r11, r11, r10, lsl #14 + and r10, r7, #0x00003300 + orr r7, r11, r10, lsl #2 // permute r7 6 times --- + and r10, r8, r1, ror #8 // --- permute r8 6 times + and r11, r12, r8, ror #24 + orr r11, r11, r10, ror #6 + and r10, r1, r8, ror #10 + orr r11, r11, r10 + and r10, r8, #0x000000cc + orr r11, r11, r10, lsl #14 + and r10, r8, #0x00003300 + orr r8, r11, r10, lsl #2 // permute r8 6 times --- + and r10, r9, r1, ror #8 // --- permute r9 6 times + and r11, r12, r9, ror #24 + orr r11, r11, r10, ror #6 + and r10, r1, r9, ror #10 + orr r11, r11, r10 + and r10, r9, #0x000000cc + orr r11, r11, r10, lsl #14 + and r10, r9, #0x00003300 // permute r9 6 times --- + orr r9, r11, r10, lsl #2 + bx lr + +/******************************************************************************* +* applies P^8 on the tweakey state in a bitsliced manner +*******************************************************************************/ +.align 2 +p8: + movw r12, #0x3333 //r12<- 0x00003333 + movw r1, #0x0000 + movt r1, #0x33cc //r1 <- 0x33cc0000 + and r10, r6, r1 // --- permute r6 8 times + and r11, r1, r6, ror #8 + orr r11, r11, r10, ror #24 + and r10, r6, r12, lsl #2 + orr r11, r11, r10, ror #26 + and r10, r6, r12, lsl #8 + orr r6, r11, r10, lsr #6 // permute r6 8 times --- + and r10, r7, r1 // --- permute r7 8 times + and r11, r1, r7, ror #8 + orr r11, r11, r10, ror #24 + and r10, r7, r12, lsl #2 + orr r11, r11, r10, ror #26 + and r10, r7, r12, lsl #8 + orr r7, r11, r10, lsr #6 // permute r7 8 times --- + and r10, r8, r1 // --- permute r8 8 times + and r11, r1, r8, ror #8 + orr r11, r11, r10, ror #24 + and r10, r8, r12, lsl #2 + orr r11, r11, r10, ror #26 + and r10, r8, r12, lsl #8 + orr r8, r11, r10, lsr #6 // permute r8 8 times --- + and r10, r9, r1 // --- permute r9 8 times + and r11, r1, r9, ror #8 + orr r11, r11, r10, ror #24 + and r10, r9, r12, lsl #2 + orr r11, r11, r10, ror #26 + and r10, r9, r12, lsl #8 + orr r9, r11, r10, lsr #6 // permute r9 8 times --- + bx lr + +/******************************************************************************* +* applies P^10 on the tweakey state in a bitsliced manner +*******************************************************************************/ +.align 2 +p10: + movw r12, #0x0033 + movt r12, #0x3300 //r12<- 0x33000033 + movw r1, #0xcc33 //r1 <- 0x0000cc33 + and r10, r6, r1, ror #8 // --- permute r6 10 times + and r11, r12, r6, ror #26 + orr r11, r11, r10, ror #8 + and r10, r6, r12, ror #24 + orr r11, r11, r10, ror #22 + and r10, r6, #0x00330000 + orr r11, r11, r10, lsr #14 + and r10, r6, #0x0000cc00 + orr r6, r11, r10, lsr #2 // permute r6 10 times --- + and r10, r7, r1, ror #8 // --- permute r6 10 times + and r11, r12, r7, ror #26 + orr r11, r11, r10, ror #8 + and r10, r7, r12, ror #24 + orr r11, r11, r10, ror #22 + and r10, r7, #0x00330000 + orr r11, r11, r10, lsr #14 + and r10, r7, #0x0000cc00 + orr r7, r11, r10, lsr #2 // permute r6 10 times --- + and r10, r8, r1, ror #8 // --- permute r6 10 times + and r11, r12, r8, ror #26 + orr r11, r11, r10, ror #8 + and r10, r8, r12, ror #24 + orr r11, r11, r10, ror #22 + and r10, r8, #0x00330000 + orr r11, r11, r10, lsr #14 + and r10, r8, #0x0000cc00 + orr r8, r11, r10, lsr #2 // permute r6 10 times --- + and r10, r9, r1, ror #8 // --- permute r6 10 times + and r11, r12, r9, ror #26 + orr r11, r11, r10, ror #8 + and r10, r9, r12, ror #24 + orr r11, r11, r10, ror #22 + and r10, r9, #0x00330000 + orr r11, r11, r10, lsr #14 + and r10, r9, #0x0000cc00 + orr r9, r11, r10, lsr #2 // permute r6 10 times --- + bx lr + +/******************************************************************************* +* applies P^12 on the tweakey state in a bitsliced manner +*******************************************************************************/ +.align 2 +p12: + str.w r14, [sp] //store r14 on the stack + movw r14, #0xcc33 //r14<- 0x0000cc33 + movw r12, #0x00cc + movt r12, #0x00cc //r12<- 0x00cc00cc + movw r1, #0x3300 + movt r1, #0xcc00 //r1 <- 0xcc003300 + and r10, r14, r6, ror #8 // --- permute r6 12 times + and r11, r12, r6, ror #30 + orr r11, r11, r10 + and r10, r1, r6, ror #16 + orr r11, r11, r10 + movw r10, #0xcccc //r10<- 0x0000cccc + and r10, r6, r10, ror #8 + orr r6, r11, r10, ror #10 // permute r6 12 times --- + and r10, r14, r7, ror #8 // --- permute r7 12 times + and r11, r12, r7, ror #30 + orr r11, r11, r10 + and r10, r1, r7, ror #16 + orr r11, r11, r10 + movw r10, #0xcccc //r10<- 0x0000cccc + and r10, r7, r10, ror #8 + orr r7, r11, r10, ror #10 // permute r7 12 times --- + and r10, r14, r8, ror #8 // --- permute r8 12 times + and r11, r12, r8, ror #30 + orr r11, r11, r10 + and r10, r1, r8, ror #16 + orr r11, r11, r10 + movw r10, #0xcccc //r10<- 0x0000cccc + and r10, r8, r10, ror #8 + orr r8, r11, r10, ror #10 // permute r8 12 times --- + and r10, r14, r9, ror #8 // --- permute r9 12 times + and r11, r12, r9, ror #30 + orr r11, r11, r10 + and r10, r1, r9, ror #16 + ldr.w r14, [sp] + orr r11, r11, r10 + movw r10, #0xcccc //r10<- 0x0000cccc + and r10, r9, r10, ror #8 + orr r9, r11, r10, ror #10 // permute r9 12 times --- + bx lr + +/******************************************************************************* +* applies P^14 on the tweakey state in a bitsliced manner +*******************************************************************************/ +.align 2 +p14: + movw r1, #0xcc00 + movt r1, #0x0033 //r1 <- 0x0033cc00 + movw r12, #0xcc00 + movt r12, #0xcc00 //r12<- 0x33003300 + and r10, r1, r6, ror #24 // --- permute r6 14 times + and r11, r6, #0x00000033 + orr r11, r10, r11, ror #14 + and r10, r6, #0x33000000 + orr r11, r11, r10, ror #30 + and r10, r6, #0x00ff0000 + orr r11, r11, r10, ror #16 + and r10, r6, r12 + orr r6, r11, r10, ror #18 // permute r6 14 times --- + and r10, r1, r7, ror #24 // --- permute r7 14 times + and r11, r7, #0x00000033 + orr r11, r10, r11, ror #14 + and r10, r7, #0x33000000 + orr r11, r11, r10, ror #30 + and r10, r7, #0x00ff0000 + orr r11, r11, r10, ror #16 + and r10, r7, r12 + orr r7, r11, r10, ror #18 // permute r7 14 times --- + and r10, r1, r8, ror #24 // --- permute r8 14 times + and r11, r8, #0x00000033 + orr r11, r10, r11, ror #14 + and r10, r8, #0x33000000 + orr r11, r11, r10, ror #30 + and r10, r8, #0x00ff0000 + orr r11, r11, r10, ror #16 + and r10, r8, r12 + orr r8, r11, r10, ror #18 // permute r8 14 times --- + and r10, r1, r9, ror #24 // --- permute r9 14 times + and r11, r9, #0x00000033 + orr r11, r10, r11, ror #14 + and r10, r9, #0x33000000 + orr r11, r11, r10, ror #30 + and r10, r9, #0x00ff0000 + orr r11, r11, r10, ror #16 + and r10, r9, r12 + orr r9, r11, r10, ror #18 // permute r9 14 times --- + bx lr + +.align 2 +packing: + eor r12, r2, r2, lsr #3 + and r12, r12, r10 + eor r2, r2, r12 + eor r2, r2, r12, lsl #3 //SWAPMOVE(r2, r2, 0x0a0a0a0a, 3) + eor r12, r3, r3, lsr #3 + and r12, r12, r10 + eor r3, r3, r12 + eor r3, r3, r12, lsl #3 //SWAPMOVE(r3, r3, 0x0a0a0a0a, 3) + eor r12, r4, r4, lsr #3 + and r12, r12, r10 + eor r4, r4, r12 + eor r4, r4, r12, lsl #3 //SWAPMOVE(r4, r4, 0x0a0a0a0a, 3) + eor r12, r5, r5, lsr #3 + and r12, r12, r10 + eor r5, r5, r12 + eor r5, r5, r12, lsl #3 //SWAPMOVE(r5, r5, 0x0a0a0a0a, 3) + eor r12, r2, r4, lsr #2 + and r12, r12, r11 + eor r2, r2, r12 + eor r4, r4, r12, lsl #2 //SWAPMOVE(r4, r2, 0x30303030, 2) + eor r12, r2, r3, lsr #4 + and r12, r12, r11, lsr #2 + eor r2, r2, r12 + eor r3, r3, r12, lsl #4 //SWAPMOVE(r3, r2, 0x0c0c0c0c, 4) + eor r12, r2, r5, lsr #6 + and r12, r12, r11, lsr #4 + eor r2, r2, r12 + eor r5, r5, r12, lsl #6 //SWAPMOVE(r5, r2, 0x03030303, 6) + eor r12, r4, r3, lsr #2 + and r12, r12, r11, lsr #2 + eor r4, r4, r12 + eor r3, r3, r12, lsl #2 //SWAPMOVE(r3, r4, 0x0c0c0c0c, 2) + eor r12, r4, r5, lsr #4 + and r12, r12, r11, lsr #4 + eor r4, r4, r12 + eor r5, r5, r12, lsl #4 //SWAPMOVE(r5, r4, 0x03030303, 4) + eor r12, r3, r5, lsr #2 + and r12, r12, r11, lsr #4 + eor r3, r3, r12 + eor r5, r5, r12, lsl #2 //SWAPMOVE(r5, r3, 0x03030303, 2) + bx lr + +/****************************************************************************** +* Compute LFSR2(TK2) ^ LFSR3(TK3) for all rounds. +* Performing both at the same time allows to save some memory accesses. +******************************************************************************/ +@ void tkschedule_lfsr(u32* tk, const u8* tk2, const u8* tk3, const int rounds) +.global tkschedule_lfsr +.type tkschedule_lfsr,%function +.align 2 +tkschedule_lfsr: + push {r0-r12, r14} + ldr.w r3, [r1, #8] //load tk2 (3rd word) + ldr.w r4, [r1, #4] //load tk2 (2nd word) + ldr.w r5, [r1, #12] //load tk2 (4th word) + ldr.w r12, [r1] //load tk2 (1st word) + mov r1, r2 //move tk3 address in r1 + mov r2, r12 //move 1st tk2 word in r2 + movw r10, #0x0a0a + movt r10, #0x0a0a //r10 <- 0x0a0a0a0a + movw r11, #0x3030 + movt r11, #0x3030 //r7 <- 0x30303030 + bl packing //pack tk2 + mov r6, r2 //move tk2 from r2-r5 to r6-r9 + mov r7, r3 //move tk2 from r2-r5 to r6-r9 + mov r8, r4 //move tk2 from r2-r5 to r6-r9 + mov r9, r5 //move tk2 from r2-r5 to r6-r9 + ldr.w r3, [r1, #8] //load tk3 (3rd word) + ldr.w r4, [r1, #4] //load tk3 (2nd word) + ldr.w r5, [r1, #12] //load tk3 (4th) word) + ldr.w r2, [r1] //load tk3 (1st) word) + bl packing //pack tk3 + eor r10, r10, r10, lsl #4 //r10<- 0xaaaaaaaa + ldr.w r1, [sp, #12] //load loop counter in r1 + eor r11, r2, r6 //tk2 ^ tk3 (1st word) + eor r12, r3, r7 //tk2 ^ tk3 (2nd word) + strd r11, r12, [r0], #8 //store in tk + eor r11, r4, r8 //tk2 ^ tk3 (3rd word) + eor r12, r5, r9 //tk2 ^ tk3 (4th word) + strd r11, r12, [r0], #8 //store in tk + loop: + and r12, r8, r10 // --- apply LFSR2 to tk2 + eor r12, r12, r6 + and r14, r10, r12, lsl #1 + and r12, r12, r10 + orr r6, r14, r12, lsr #1 // apply LFSR2 to tk2 --- + and r12, r3, r10 // --- apply LFSR3 to tk3 + eor r12, r5, r12, lsr #1 + and r14, r10, r12, lsl #1 + and r12, r12, r10 + orr r5, r14, r12, lsr #1 // apply LFSR3 to tk3 --- + eor r11, r5, r7 //tk2 ^ tk3 (1st word) + eor r12, r2, r8 //tk2 ^ tk3 (2nd word) + strd r11, r12, [r0], #8 //store in tk + eor r11, r3, r9 //tk2 ^ tk3 (3rd word) + eor r12, r4, r6 //tk2 ^ tk3 (4th word) + strd r11, r12, [r0], #24 //store in tk + and r12, r9, r10 // --- apply LFSR2 to tk2 + eor r12, r12, r7 + and r14, r10, r12, lsl #1 + and r12, r12, r10 + orr r7, r14, r12, lsr #1 // apply LFSR2 to tk2 --- + and r12, r2, r10 // --- apply LFSR3 to tk3 + eor r12, r4, r12, lsr #1 + and r14, r10, r12, lsl #1 + and r12, r12, r10 + orr r4, r14, r12, lsr #1 // apply LFSR3 to tk3 --- + eor r11, r4, r8 //tk2 ^ tk3 (1st word) + eor r12, r5, r9 //tk2 ^ tk3 (2nd word) + strd r11, r12, [r0], #8 //store in tk + eor r11, r2, r6 //tk2 ^ tk3 (3rd word) + eor r12, r3, r7 //tk2 ^ tk3 (4th word) + strd r11, r12, [r0], #24 //store in tk + and r12, r6, r10 // --- apply LFSR2 to tk2 + eor r12, r12, r8 + and r14, r10, r12, lsl #1 + and r12, r12, r10 + orr r8, r14, r12, lsr #1 // apply LFSR2 to tk2 --- + and r12, r5, r10 // --- apply LFSR3 to tk3 + eor r12, r3, r12, lsr #1 + and r14, r10, r12, lsl #1 + and r12, r12, r10 + orr r3, r14, r12, lsr #1 // apply LFSR3 to tk3 --- + eor r11, r3, r9 //tk2 ^ tk3 (1st word) + eor r12, r4, r6 //tk2 ^ tk3 (2nd word) + strd r11, r12, [r0], #8 //store in tk + eor r11, r5, r7 //tk2 ^ tk3 (3rd word) + eor r12, r2, r8 //tk2 ^ tk3 (4th word) + strd r11, r12, [r0], #24 //store in tk + and r12, r7, r10 // --- apply LFSR2 to tk2 + eor r12, r12, r9 + and r14, r10, r12, lsl #1 + and r12, r12, r10 + orr r9, r14, r12, lsr #1 // apply LFSR2 to tk2 --- + and r12, r4, r10 // --- apply LFSR3 to tk3 + eor r12, r2, r12, lsr #1 + and r14, r10, r12, lsl #1 + and r12, r12, r10 + orr r2, r14, r12, lsr #1 // apply LFSR3 to tk3 --- + eor r11, r2, r6 //tk2 ^ tk3 (1st word) + eor r12, r3, r7 //tk2 ^ tk3 (2nd word) + strd r11, r12, [r0], #8 //store in tk + eor r11, r4, r8 //tk2 ^ tk3 (3rd word) + eor r12, r5, r9 //tk2 ^ tk3 (4th word) + strd r11, r12, [r0], #24 //store in tk + subs.w r1, r1, #8 //decrease loop counter by 8 + bne loop + pop {r0-r12, r14} + bx lr + +@ void tkschedule_perm(u32* tk) +.global tkschedule_perm +.type tkschedule_perm,%function +.align 2 +tkschedule_perm: + push {r0-r12, lr} + sub.w sp, #4 //to store r14 in subroutines + ldm r0, {r6-r9} //load tk + movw r10, #0xf0f0 + movt r10, #0xf0f0 //r10<- 0xf0f0f0f0 + and r6, r6, r10 //tk &= 0xf0f0f0f0 (1st word) + and r7, r7, r10 //tk &= 0xf0f0f0f0 (2nd word) + and r8, r8, r10 //tk &= 0xf0f0f0f0 (3rd word) + and r9, r9, r10 //tk &= 0xf0f0f0f0 (4th word) + eor r8, r8, #0x00000004 //add rconst + eor r9, r9, #0x00000040 //add rconst + mvn r9, r9 //to remove a NOT in sbox calculations + strd r8, r9, [r0], #8 //store 1st half tk for 1st round + strd r6, r7, [r0], #8 //store 2nd half tk for 1st round + ldm r0, {r6-r9} //load tk + bl p2 //apply the permutation twice + movw r10, #0xc3c3 + movt r10, #0xc3c3 //r10<- 0xc3c3c3c3 + and r11, r10, r6, ror #26 //ror and mask to match fixslicing + and r12, r10, r7, ror #26 //ror and mask to match fixslicing + strd r11, r12, [r0], #8 //store 1st half tk for 2nd round + and r11, r10, r8, ror #26 //ror and mask to match fixslicing + and r12, r10, r9, ror #26 //ror and mask to match fixslicing + eor r11, r11, #0x10000000 //add rconst + eor r11, r11, #0x00000100 //add rconst + eor r12, r12, #0x00000100 //add rconst + mvn r12, r12 //to save a NOT in sbox calculations + strd r11, r12, [r0], #8 //store 2nd half tk for 2nd round + and r10, r10, r10, lsr #6 //r10<- 0x03030303 + and r11, r10, r6, ror #28 //--- ror and masks to match fixslicing + and r6, r6, r10, lsl #6 + orr r6, r11, r6, ror #12 + and r11, r10, r7, ror #28 + and r7, r7, r10, lsl #6 + orr r7, r11, r7, ror #12 + and r11, r10, r8, ror #28 + and r8, r8, r10, lsl #6 + orr r8, r11, r8, ror #12 + and r11, r10, r9, ror #28 + and r9, r9, r10, lsl #6 + orr r9, r11, r9, ror #12 //ror and masks to match fixslicing --- + eor r7, r7, #0x04000000 //add rconst + eor r8, r8, #0x44000000 //add rconst + eor r9, r9, #0x04000000 //add rconst + mvn r9, r9 //to save a NOT in sbox calculations + strd r8, r9, [r0], #8 //store 1st half tk for 3rd round + strd r6, r7, [r0], #8 //store 2nd half tk for 3rd round + ldm r0, {r6-r9} //load tk + bl p4 //apply the permutation 4 times + movw r10, #0xf0f0 + movt r10, #0xf0f0 //r10<- 0xf0f0f0f0 + and r11, r10, r6, ror #16 //ror and mask to match fixslicing + and r12, r10, r7, ror #16 //ror and mask to match fixslicing + eor r11, r11, #0x00400000 //add rconst + eor r12, r12, #0x00400000 //add rconst + strd r11, r12, [r0, #24] //store 2nd half tk for 5th round + and r11, r10, r8, ror #16 //ror and mask to match fixslicing + and r12, r10, r9, ror #16 //ror and mask to match fixslicing + eor r11, r11, #0x00440000 //add rconst + eor r12, r12, #0x00500000 //add rconst + mvn r12, r12 //to save a NOT in sbox calculations + strd r11, r12, [r0, #16] //store 1st half tk for 5th round + and r10, r10, r10, lsr #2 //r10<- 0x30303030 + and r11, r10, r6, ror #14 //--- ror and masks to match fixslicing + and r6, r6, r10, ror #4 + orr r6, r11, r6, ror #6 + and r11, r10, r7, ror #14 + and r7, r7, r10, ror #4 + orr r7, r11, r7, ror #6 + and r11, r10, r8, ror #14 + and r8, r8, r10, ror #4 + orr r8, r11, r8, ror #6 + and r11, r10, r9, ror #14 + and r9, r9, r10, ror #4 + orr r9, r11, r9, ror #6 //ror and masks to match fixslicing --- + eor r6, r6, #0x00100000 //add rconst + eor r7, r7, #0x00100000 //add rconst + eor r8, r8, #0x00100000 //add rconst + eor r8, r8, #0x00000001 //add rconst + eor r9, r9, #0x00100000 //add rconst + mvn r9, r9 //to save a NOT in sbox calculations + strd r6, r7, [r0], #8 //store 1st half tk for 4th round + strd r8, r9, [r0], #24 //store 2nd half tk for 4th round + ldm r0, {r6-r9} //load tk + bl p6 //apply the permutation 6 times + movw r10, #0xc3c3 + movt r10, #0xc3c3 //r10<- 0xc3c3c3c3 + and r11, r10, r6, ror #10 //ror and mask to match fixslicing + and r12, r10, r7, ror #10 //ror and mask to match fixslicing + eor r11, r11, #0x01000000 //add rconst + eor r12, r12, #0x01000000 //add rconst + strd r11, r12, [r0], #8 //store 1st half tk for 6th round + and r11, r10, r8, ror #10 //ror and mask to match fixslicing + and r12, r10, r9, ror #10 //ror and mask to match fixslicing + eor r11, r11, #0x01400000 //add rconst + eor r11, r11, #0x00001000 //add rconst + eor r12, r12, #0x00400000 //add rconst + mvn r12, r12 //to save a NOT in sbox calculations + strd r11, r12, [r0], #8 //store 2nd half tk for 6th round + and r10, r10, r10, lsr #6 //r10<- 0x03030303 + and r11, r10, r6, ror #12 //--- ror and masks to match fixslicing + and r6, r6, r10, lsl #6 + orr r6, r11, r6, ror #28 + and r11, r10, r7, ror #12 + and r7, r7, r10, lsl #6 + orr r7, r11, r7, ror #28 + and r11, r10, r8, ror #12 + and r8, r8, r10, lsl #6 + orr r8, r11, r8, ror #28 + and r11, r10, r9, ror #12 + and r9, r9, r10, lsl #6 + orr r9, r11, r9, ror #28 //ror and masks to match fixslicing --- + eor r6, r6, #0x00000400 //add rconst + eor r7, r7, #0x00000400 //add rconst + eor r8, r8, #0x01000000 //add rconst + eor r8, r8, #0x00004000 //add rconst + eor r9, r9, #0x01000000 //add rconst + eor r9, r9, #0x00000400 //add rconst + mvn r9, r9 //to save a NOT in sbox calculations + strd r8, r9, [r0], #8 //store 1st half tk for 7th round + strd r6, r7, [r0], #8 //store 2nd half tk for 7th round + ldm r0, {r6-r9} //load tk + bl p8 //apply the permutation 8 times + movw r10, #0xf0f0 + movt r10, #0xf0f0 //r10<- 0xf0f0f0f0 + and r11, r10, r6 //ror and mask to match fixslicing + and r12, r10, r7 //ror and mask to match fixslicing + eor r12, r12, #0x00000040 //add rconst + strd r11, r12, [r0, #24] //store 2nd half tk for 9th round + and r11, r10, r8 //ror and mask to match fixslicing + and r12, r10, r9 //ror and mask to match fixslicing + eor r11, r11, #0x00000054 //add rconst + eor r12, r12, #0x00000050 //add rconst + mvn r12, r12 //to save a NOT in sbox calculations + strd r11, r12, [r0, #16] //store 1st half tk for 9th round + and r10, r10, r10, lsr #2 //r10<- 0x30303030 + and r11, r10, r6, ror #30 //--- ror and masks to match fixslicing + and r6, r6, r10, ror #4 + orr r6, r11, r6, ror #22 + and r11, r10, r7, ror #30 + and r7, r7, r10, ror #4 + orr r7, r11, r7, ror #22 + and r11, r10, r8, ror #30 + and r8, r8, r10, ror #4 + orr r8, r11, r8, ror #22 + and r11, r10, r9, ror #30 + and r9, r9, r10, ror #4 + orr r9, r11, r9, ror #22 //ror and masks to match fixslicing --- + eor r6 ,r6, #0x00000010 + eor r8, r8, #0x00010000 + eor r8, r8, #0x00000410 + eor r9, r9, #0x00000410 + mvn r9, r9 //to save a NOT in sbox calculations + strd r6, r7, [r0], #8 //store 1st half tk for 8th round + strd r8, r9, [r0], #24 //store 2nd half tk for 8th round + ldm r0, {r6-r9} //load tk + bl p10 //apply the permutation 10 times + movw r10, #0xc3c3 + movt r10, #0xc3c3 //r10<- 0xc3c3c3c3 + and r11, r10, r6, ror #26 //ror and mask to match fixslicing + and r12, r10, r7, ror #26 //ror and mask to match fixslicing + eor r11, r11, #0x00000100 //add rconst + eor r12, r12, #0x00000100 //add rconst + strd r11, r12, [r0], #8 //store 1st half tk for 10th round + and r11, r10, r8, ror #26 //ror and mask to match fixslicing + and r12, r10, r9, ror #26 //ror and mask to match fixslicing + eor r11, r11, #0x10000000 //add rconst + eor r11, r11, #0x00000140 //add rconst + eor r12, r12, #0x00000100 //add rconst + mvn r12, r12 //to save a NOT in sbox calculations + strd r11, r12, [r0], #8 //store 2nd half tk for 10th round + and r10, r10, r10, lsr #6 //r10<- 0x03030303 + and r11, r10, r6, ror #28 //--- ror and masks to match fixslicing + and r6, r6, r10, lsl #6 + orr r6, r11, r6, ror #12 + and r11, r10, r7, ror #28 + and r7, r7, r10, lsl #6 + orr r7, r11, r7, ror #12 + and r11, r10, r8, ror #28 + and r8, r8, r10, lsl #6 + orr r8, r11, r8, ror #12 + and r11, r10, r9, ror #28 + and r9, r9, r10, lsl #6 + orr r9, r11, r9, ror #12 //ror and masks to match fixslicing --- + eor r6, r6, #0x04000000 //add rconst + eor r7, r7, #0x04000000 //add rconst + eor r8, r8, #0x44000000 //add rconst + eor r9, r9, #0x00000100 //add rconst + mvn r9, r9 //to save a NOT in sbox calculations + strd r8, r9, [r0], #8 //store 1st half tk for 11th round + strd r6, r7, [r0], #8 //store 2nd half tk for 11th round + ldm r0, {r6-r9} //load tk + bl p12 //apply the permutation 4 times + movw r10, #0xf0f0 + movt r10, #0xf0f0 //r10<- 0xf0f0f0f0 + and r11, r10, r6, ror #16 //ror and mask to match fixslicing + and r12, r10, r7, ror #16 //ror and mask to match fixslicing + eor r11, r11, #0x00400000 //add rconst + strd r11, r12, [r0, #24] //store 2nd half tk for 13th round + and r11, r10, r8, ror #16 //ror and mask to match fixslicing + and r12, r10, r9, ror #16 //ror and mask to match fixslicing + eor r11, r11, #0x00140000 //add rconst + eor r12, r12, #0x00500000 //add rconst + mvn r12, r12 //to save a NOT in sbox calculations + strd r11, r12, [r0, #16] //store 1st half tk for 13th round + and r10, r10, r10, lsr #2 //r10<- 0x30303030 + and r11, r10, r6, ror #14 //--- ror and masks to match fixslicing + and r6, r6, r10, ror #4 + orr r6, r11, r6, ror #6 + and r11, r10, r7, ror #14 + and r7, r7, r10, ror #4 + orr r7, r11, r7, ror #6 + and r11, r10, r8, ror #14 + and r8, r8, r10, ror #4 + orr r8, r11, r8, ror #6 + and r11, r10, r9, ror #14 + and r9, r9, r10, ror #4 + orr r9, r11, r9, ror #6 //ror and masks to match fixslicing --- + eor r6, r6, #0x00100000 //add rconst + eor r7, r7, #0x00100000 //add rconst + eor r8, r8, #0x04000000 //add rconst + eor r8, r8, #0x00000001 //add rconst + eor r9, r9, #0x04000000 //add rconst + mvn r9, r9 //to save a NOT in sbox calculations + strd r6, r7, [r0], #8 //store 1st half tk for 12th round + strd r8, r9, [r0], #24 //store 2nd half tk for 12th round + ldm r0, {r6-r9} //load tk + bl p14 //apply the permutation 6 times + movw r10, #0xc3c3 + movt r10, #0xc3c3 //r10<- 0xc3c3c3c3 + and r11, r10, r6, ror #10 //ror and mask to match fixslicing + and r12, r10, r7, ror #10 //ror and mask to match fixslicing + strd r11, r12, [r0], #8 //store 1st half tk for 14th round + and r11, r10, r8, ror #10 //ror and mask to match fixslicing + and r12, r10, r9, ror #10 //ror and mask to match fixslicing + eor r11, r11, #0x01400000 //add rconst + eor r11, r11, #0x00001000 //add rconst + eor r12, r12, #0x01400000 //add rconst + mvn r12, r12 //to save a NOT in sbox calculations + strd r11, r12, [r0], #8 //store 2nd half tk for 14th round + and r10, r10, r10, lsr #6 //r10<- 0x03030303 + and r11, r10, r6, ror #12 //--- ror and masks to match fixslicing + and r6, r6, r10, lsl #6 + orr r6, r11, r6, ror #28 + and r11, r10, r7, ror #12 + and r7, r7, r10, lsl #6 + orr r7, r11, r7, ror #28 + and r11, r10, r8, ror #12 + and r8, r8, r10, lsl #6 + orr r8, r11, r8, ror #28 + and r11, r10, r9, ror #12 + and r9, r9, r10, lsl #6 + orr r9, r11, r9, ror #28 //ror and masks to match fixslicing --- + eor r7, r7, #0x00000400 //add rconst + eor r8, r8, #0x01000000 //add rconst + eor r8, r8, #0x00004400 //add rconst + eor r9, r9, #0x00000400 //add const + mvn r9, r9 //to save a NOT in sbox calculations + strd r8, r9, [r0], #8 //store 1st half tk for 15th round + strd r6, r7, [r0], #8 //store 2nd half tk for 15th round + ldm r0, {r6-r9} //load tk + movw r10, #0xf0f0 + movt r10, #0xf0f0 //r10<- 0xf0f0f0f0 + and r11, r10, r6 //ror and mask to match fixslicing + and r12, r10, r7 //ror and mask to match fixslicing + eor r11, r11, #0x00000040 //add rconst + eor r12, r12, #0x00000040 //add rconst + strd r11, r12, [r0, #24] //store 2nd half tk for 17th round + and r11, r10, r8 //ror and mask to match fixslicing + and r12, r10, r9 //ror and mask to match fixslicing + eor r11, r11, #0x00000004 //add rconst + eor r12, r12, #0x00000050 //add rconst + mvn r12, r12 //to save a NOT in sbox calculations + strd r11, r12, [r0, #16] //store 1st half tk for 17th round + and r10, r10, r10, lsr #2 //r10<- 0x30303030 + and r11, r10, r6, ror #30 //--- ror and masks to match fixslicing + and r6, r6, r10, ror #4 + orr r6, r11, r6, ror #22 + and r11, r10, r7, ror #30 + and r7, r7, r10, ror #4 + orr r7, r11, r7, ror #22 + and r11, r10, r8, ror #30 + and r8, r8, r10, ror #4 + orr r8, r11, r8, ror #22 + and r11, r10, r9, ror #30 + and r9, r9, r10, ror #4 + orr r9, r11, r9, ror #22 //ror and masks to match fixslicing --- + eor r6 ,r6, #0x00000010 + eor r7 ,r7, #0x00000010 + eor r8, r8, #0x00000010 + eor r8, r8, #0x00010000 + mvn r9, r9 //to save a NOT in sbox calculations + strd r6, r7, [r0], #8 //store 1st half tk for 16th round + strd r8, r9, [r0], #24 //store 2nd half tk for 16th round + ldm r0, {r6-r9} //load tk + bl p2 //apply the permutation twice + movw r10, #0xc3c3 + movt r10, #0xc3c3 //r10<- 0xc3c3c3c3 + and r11, r10, r6, ror #26 //ror and mask to match fixslicing + and r12, r10, r7, ror #26 //ror and mask to match fixslicing + eor r11, r11, #0x00000100 //add rconst + strd r11, r12, [r0], #8 //store 1st half tk for 18th round + and r11, r10, r8, ror #26 //ror and mask to match fixslicing + and r12, r10, r9, ror #26 //ror and mask to match fixslicing + eor r11, r11, #0x10000000 //add rconst + eor r11, r11, #0x00000140 //add rconst + eor r12, r12, #0x00000040 //add rconst + mvn r12, r12 //to save a NOT in sbox calculations + strd r11, r12, [r0], #8 //store 2nd half tk for 18th round + and r10, r10, r10, lsr #6 //r10<- 0x03030303 + and r11, r10, r6, ror #28 //--- ror and masks to match fixslicing + and r6, r6, r10, lsl #6 + orr r6, r11, r6, ror #12 + and r11, r10, r7, ror #28 + and r7, r7, r10, lsl #6 + orr r7, r11, r7, ror #12 + and r11, r10, r8, ror #28 + and r8, r8, r10, lsl #6 + orr r8, r11, r8, ror #12 + and r11, r10, r9, ror #28 + and r9, r9, r10, lsl #6 + orr r9, r11, r9, ror #12 //ror and masks to match fixslicing --- + eor r7, r7, #0x04000000 //add rconst + eor r8, r8, #0x40000000 //add rconst + eor r8, r8, #0x00000100 //add rconst + eor r9, r9, #0x04000000 //add rconst + eor r9, r9, #0x00000100 //add rconst + mvn r9, r9 //to save a NOT in sbox calculations + strd r8, r9, [r0], #8 //store 1st half tk for 19th round + strd r6, r7, [r0], #8 //store 2nd half tk for 19th round + ldm r0, {r6-r9} //load tk + bl p4 //apply the permutation 4 times + movw r10, #0xf0f0 + movt r10, #0xf0f0 //r10<- 0xf0f0f0f0 + and r11, r10, r6, ror #16 //ror and mask to match fixslicing + and r12, r10, r7, ror #16 //ror and mask to match fixslicing + eor r12, r12, #0x00400000 //add rconst + strd r11, r12, [r0, #24] //store 2nd half tk for 21th round + and r11, r10, r8, ror #16 //ror and mask to match fixslicing + and r12, r10, r9, ror #16 //ror and mask to match fixslicing + eor r11, r11, #0x00440000 //add rconst + eor r12, r12, #0x00100000 //add rconst + mvn r12, r12 //to save a NOT in sbox calculations + strd r11, r12, [r0, #16] //store 1st half tk for 21th round + and r10, r10, r10, lsr #2 //r10<- 0x30303030 + and r11, r10, r6, ror #14 //--- ror and masks to match fixslicing + and r6, r6, r10, ror #4 + orr r6, r11, r6, ror #6 + and r11, r10, r7, ror #14 + and r7, r7, r10, ror #4 + orr r7, r11, r7, ror #6 + and r11, r10, r8, ror #14 + and r8, r8, r10, ror #4 + orr r8, r11, r8, ror #6 + and r11, r10, r9, ror #14 + and r9, r9, r10, ror #4 + orr r9, r11, r9, ror #6 //ror and masks to match fixslicing --- + eor r6, r6, #0x00100000 //add rconst + eor r8, r8, #0x04100000 //add rconst + eor r8, r8, #0x00000001 //add rconst + eor r9, r9, #0x00100000 //add rconst + mvn r9, r9 //to save a NOT in sbox calculations + strd r6, r7, [r0], #8 //store 1st half tk for 20th round + strd r8, r9, [r0], #24 //store 2nd half tk for 20th round + ldm r0, {r6-r9} //load tk + bl p6 //apply the permutation 6 times + movw r10, #0xc3c3 + movt r10, #0xc3c3 //r10<- 0xc3c3c3c3 + and r11, r10, r6, ror #10 //ror and mask to match fixslicing + and r12, r10, r7, ror #10 //ror and mask to match fixslicing + eor r11, r11, #0x01000000 //add rconst + eor r12, r12, #0x01000000 //add rconst + strd r11, r12, [r0], #8 //store 1st half tk for 22th round + and r11, r10, r8, ror #10 //ror and mask to match fixslicing + and r12, r10, r9, ror #10 //ror and mask to match fixslicing + eor r11, r11, #0x00400000 //add rconst + eor r11, r11, #0x00001000 //add rconst + mvn r12, r12 //to save a NOT in sbox calculations + strd r11, r12, [r0], #8 //store 2nd half tk for 22th round + and r10, r10, r10, lsr #6 //r10<- 0x03030303 + and r11, r10, r6, ror #12 //--- ror and masks to match fixslicing + and r6, r6, r10, lsl #6 + orr r6, r11, r6, ror #28 + and r11, r10, r7, ror #12 + and r7, r7, r10, lsl #6 + orr r7, r11, r7, ror #28 + and r11, r10, r8, ror #12 + and r8, r8, r10, lsl #6 + orr r8, r11, r8, ror #28 + and r11, r10, r9, ror #12 + and r9, r9, r10, lsl #6 + orr r9, r11, r9, ror #28 //ror and masks to match fixslicing --- + eor r6, r6, #0x00000400 //add rconst + eor r8, r8, #0x00004000 //add rconst + eor r9, r9, #0x01000000 //add rconst + mvn r9, r9 //to save a NOT in sbox calculations + strd r8, r9, [r0], #8 //store 1st half tk for 23th round + strd r6, r7, [r0], #8 //store 2nd half tk for 23th round + ldm r0, {r6-r9} //load tk + bl p8 //apply the permutation 8 times + movw r10, #0xf0f0 + movt r10, #0xf0f0 //r10<- 0xf0f0f0f0 + and r11, r10, r6 //ror and mask to match fixslicing + and r12, r10, r7 //ror and mask to match fixslicing + strd r11, r12, [r0, #24] //store 2nd half tk for 25th round + and r11, r10, r8 //ror and mask to match fixslicing + and r12, r10, r9 //ror and mask to match fixslicing + eor r11, r11, #0x00000014 //add rconst + eor r12, r12, #0x00000040 //add rconst + mvn r12, r12 //to save a NOT in sbox calculations + strd r11, r12, [r0, #16] //store 1st half tk for 25th round + and r10, r10, r10, lsr #2 //r10<- 0x30303030 + and r11, r10, r6, ror #30 //--- ror and masks to match fixslicing + and r6, r6, r10, ror #4 + orr r6, r11, r6, ror #22 + and r11, r10, r7, ror #30 + and r7, r7, r10, ror #4 + orr r7, r11, r7, ror #22 + and r11, r10, r8, ror #30 + and r8, r8, r10, ror #4 + orr r8, r11, r8, ror #22 + and r11, r10, r9, ror #30 + and r9, r9, r10, ror #4 + orr r9, r11, r9, ror #22 //ror and masks to match fixslicing --- + eor r8, r8, #0x00010400 + eor r9, r9, #0x00000400 + mvn r9, r9 //to save a NOT in sbox calculations + strd r6, r7, [r0], #8 //store 1st half tk for 24th round + strd r8, r9, [r0], #24 //store 2nd half tk for 24th round + ldm r0, {r6-r9} //load tk + bl p10 //apply the permutation 10 times + movw r10, #0xc3c3 + movt r10, #0xc3c3 //r10<- 0xc3c3c3c3 + and r11, r10, r6, ror #26 //ror and mask to match fixslicing + and r12, r10, r7, ror #26 //ror and mask to match fixslicing + strd r11, r12, [r0], #8 //store 1st half tk for 26th round + and r11, r10, r8, ror #26 //ror and mask to match fixslicing + and r12, r10, r9, ror #26 //ror and mask to match fixslicing + eor r11, r11, #0x10000000 //add rconst + eor r11, r11, #0x00000100 //add rconst + mvn r12, r12 //to save a NOT in sbox calculations + strd r11, r12, [r0], #8 //store 2nd half tk for 26th round + and r10, r10, r10, lsr #6 //r10<- 0x03030303 + and r11, r10, r6, ror #28 //--- ror and masks to match fixslicing + and r6, r6, r10, lsl #6 + orr r6, r11, r6, ror #12 + and r11, r10, r7, ror #28 + and r7, r7, r10, lsl #6 + orr r7, r11, r7, ror #12 + and r11, r10, r8, ror #28 + and r8, r8, r10, lsl #6 + orr r8, r11, r8, ror #12 + and r11, r10, r9, ror #28 + and r9, r9, r10, lsl #6 + orr r9, r11, r9, ror #12 //ror and masks to match fixslicing --- + eor r7, r7, #0x04000000 //add rconst + eor r8, r8, #0x40000000 //add rconst + eor r9, r9, #0x04000000 //add rconst + mvn r9, r9 //to save a NOT in sbox calculations + strd r8, r9, [r0], #8 //store 1st half tk for 27th round + strd r6, r7, [r0], #8 //store 2nd half tk for 27th round + ldm r0, {r6-r9} //load tk + bl p12 //apply the permutation 4 times + movw r10, #0xf0f0 + movt r10, #0xf0f0 //r10<- 0xf0f0f0f0 + and r11, r10, r6, ror #16 //ror and mask to match fixslicing + and r12, r10, r7, ror #16 //ror and mask to match fixslicing + eor r12, r12, #0x00400000 //add rconst + strd r11, r12, [r0, #24] //store 2nd half tk for 29th round + and r11, r10, r8, ror #16 //ror and mask to match fixslicing + and r12, r10, r9, ror #16 //ror and mask to match fixslicing + eor r11, r11, #0x00440000 //add rconst + eor r12, r12, #0x00500000 //add rconst + mvn r12, r12 //to save a NOT in sbox calculations + strd r11, r12, [r0, #16] //store 1st half tk for 29th round + and r10, r10, r10, lsr #2 //r10<- 0x30303030 + and r11, r10, r6, ror #14 //--- ror and masks to match fixslicing + and r6, r6, r10, ror #4 + orr r6, r11, r6, ror #6 + and r11, r10, r7, ror #14 + and r7, r7, r10, ror #4 + orr r7, r11, r7, ror #6 + and r11, r10, r8, ror #14 + and r8, r8, r10, ror #4 + orr r8, r11, r8, ror #6 + and r11, r10, r9, ror #14 + and r9, r9, r10, ror #4 + orr r9, r11, r9, ror #6 //ror and masks to match fixslicing --- + eor r6, r6, #0x00100000 //add rconst + eor r8, r8, #0x00100000 //add rconst + eor r8, r8, #0x00000001 //add rconst + eor r9, r9, #0x00100000 //add rconst + mvn r9, r9 //to save a NOT in sbox calculations + strd r6, r7, [r0], #8 //store 1st half tk for 28th round + strd r8, r9, [r0], #24 //store 2nd half tk for 28th round + ldm r0, {r6-r9} //load tk + bl p14 //apply the permutation 6 times + movw r10, #0xc3c3 + movt r10, #0xc3c3 //r10<- 0xc3c3c3c3 + and r11, r10, r6, ror #10 //ror and mask to match fixslicing + and r12, r10, r7, ror #10 //ror and mask to match fixslicing + eor r11, r11, #0x01000000 //add rconst + eor r12, r12, #0x01000000 //add rconst + strd r11, r12, [r0], #8 //store 1st half tk for 30th round + and r11, r10, r8, ror #10 //ror and mask to match fixslicing + and r12, r10, r9, ror #10 //ror and mask to match fixslicing + eor r11, r11, #0x01400000 //add rconst + eor r11, r11, #0x00001000 //add rconst + mvn r12, r12 //to save a NOT in sbox calculations + strd r11, r12, [r0], #8 //store 2nd half tk for 30th round + and r10, r10, r10, lsr #6 //r10<- 0x03030303 + and r11, r10, r6, ror #12 //--- ror and masks to match fixslicing + and r6, r6, r10, lsl #6 + orr r6, r11, r6, ror #28 + and r11, r10, r7, ror #12 + and r7, r7, r10, lsl #6 + orr r7, r11, r7, ror #28 + and r11, r10, r8, ror #12 + and r8, r8, r10, lsl #6 + orr r8, r11, r8, ror #28 + and r11, r10, r9, ror #12 + and r9, r9, r10, lsl #6 + orr r9, r11, r9, ror #28 //ror and masks to match fixslicing --- + eor r6, r6, #0x00000400 //add rconst + eor r7, r7, #0x00000400 //add rconst + eor r8, r8, #0x00004000 //add rconst + eor r9, r9, #0x01000000 //add rconst + mvn r9, r9 //to save a NOT in sbox calculations + strd r8, r9, [r0], #8 //store 1st half tk for 31th round + strd r6, r7, [r0], #8 //store 2nd half tk for 31th round + ldm r0, {r6-r9} //load tk + movw r10, #0xf0f0 + movt r10, #0xf0f0 //r10<- 0xf0f0f0f0 + and r11, r10, r6 //ror and mask to match fixslicing + and r12, r10, r7 //ror and mask to match fixslicing + strd r11, r12, [r0, #24] //store 2nd half tk for 33th round + and r11, r10, r8 //ror and mask to match fixslicing + and r12, r10, r9 //ror and mask to match fixslicing + eor r11, r11, #0x00000014 //add rconst + eor r12, r12, #0x00000050 //add rconst + mvn r12, r12 //to save a NOT in sbox calculations + strd r11, r12, [r0, #16] //store 1st half tk for 33th round + and r10, r10, r10, lsr #2 //r10<- 0x30303030 + and r11, r10, r6, ror #30 //--- ror and masks to match fixslicing + and r6, r6, r10, ror #4 + orr r6, r11, r6, ror #22 + and r11, r10, r7, ror #30 + and r7, r7, r10, ror #4 + orr r7, r11, r7, ror #22 + and r11, r10, r8, ror #30 + and r8, r8, r10, ror #4 + orr r8, r11, r8, ror #22 + and r11, r10, r9, ror #30 + and r9, r9, r10, ror #4 + orr r9, r11, r9, ror #22 //ror and masks to match fixslicing --- + eor r6 ,r6, #0x00000010 + eor r8, r8, #0x00010400 + eor r9, r9, #0x00000400 + mvn r9, r9 //to save a NOT in sbox calculations + strd r6, r7, [r0], #8 //store 1st half tk for 32th round + strd r8, r9, [r0], #24 //store 2nd half tk for 32th round + ldm r0, {r6-r9} //load tk + bl p2 //apply the permutation twice + movw r10, #0xc3c3 + movt r10, #0xc3c3 //r10<- 0xc3c3c3c3 + and r11, r10, r6, ror #26 //ror and mask to match fixslicing + and r12, r10, r7, ror #26 //ror and mask to match fixslicing + strd r11, r12, [r0], #8 //store 1st half tk for 34th round + and r11, r10, r8, ror #26 //ror and mask to match fixslicing + and r12, r10, r9, ror #26 //ror and mask to match fixslicing + eor r11, r11, #0x10000000 //add rconst + eor r11, r11, #0x00000140 //add rconst + eor r12, r12, #0x00000100 //add rconst + mvn r12, r12 //to save a NOT in sbox calculations + strd r11, r12, [r0], #8 //store 2nd half tk for 34th round + and r10, r10, r10, lsr #6 //r10<- 0x03030303 + and r11, r10, r6, ror #28 //--- ror and masks to match fixslicing + and r6, r6, r10, lsl #6 + orr r6, r11, r6, ror #12 + and r11, r10, r7, ror #28 + and r7, r7, r10, lsl #6 + orr r7, r11, r7, ror #12 + and r11, r10, r8, ror #28 + and r8, r8, r10, lsl #6 + orr r8, r11, r8, ror #12 + and r11, r10, r9, ror #28 + and r9, r9, r10, lsl #6 + orr r9, r11, r9, ror #12 //ror and masks to match fixslicing --- + eor r7, r7, #0x04000000 //add rconst + eor r8, r8, #0x44000000 //add rconst + mvn r9, r9 //to save a NOT in sbox calculations + strd r8, r9, [r0], #8 //store 1st half tk for 35th round + strd r6, r7, [r0], #8 //store 2nd half tk for 35th round + ldm r0, {r6-r9} //load tk + bl p4 //apply the permutation 4 times + movw r10, #0xf0f0 + movt r10, #0xf0f0 //r10<- 0xf0f0f0f0 + and r11, r10, r6, ror #16 //ror and mask to match fixslicing + and r12, r10, r7, ror #16 //ror and mask to match fixslicing + eor r11, r11, #0x00400000 //add rconst + strd r11, r12, [r0, #24] //store 2nd half tk for 37th round + and r11, r10, r8, ror #16 //ror and mask to match fixslicing + and r12, r10, r9, ror #16 //ror and mask to match fixslicing + eor r11, r11, #0x00440000 //add rconst + eor r12, r12, #0x00500000 //add rconst + mvn r12, r12 //to save a NOT in sbox calculations + strd r11, r12, [r0, #16] //store 1st half tk for 37th round + and r10, r10, r10, lsr #2 //r10<- 0x30303030 + and r11, r10, r6, ror #14 //--- ror and masks to match fixslicing + and r6, r6, r10, ror #4 + orr r6, r11, r6, ror #6 + and r11, r10, r7, ror #14 + and r7, r7, r10, ror #4 + orr r7, r11, r7, ror #6 + and r11, r10, r8, ror #14 + and r8, r8, r10, ror #4 + orr r8, r11, r8, ror #6 + and r11, r10, r9, ror #14 + and r9, r9, r10, ror #4 + orr r9, r11, r9, ror #6 //ror and masks to match fixslicing --- + eor r6, r6, #0x00100000 //add rconst + eor r7, r7, #0x00100000 //add rconst + eor r8, r8, #0x00000001 //add rconst + eor r9, r9, #0x00100000 //add rconst + mvn r9, r9 //to save a NOT in sbox calculations + strd r6, r7, [r0], #8 //store 1st half tk for 36th round + strd r8, r9, [r0], #24 //store 2nd half tk for 36th round + ldm r0, {r6-r9} //load tk + bl p6 //apply the permutation 6 times + movw r10, #0xc3c3 + movt r10, #0xc3c3 //r10<- 0xc3c3c3c3 + and r11, r10, r6, ror #10 //ror and mask to match fixslicing + and r12, r10, r7, ror #10 //ror and mask to match fixslicing + eor r12, r12, #0x01000000 //add rconst + strd r11, r12, [r0], #8 //store 1st half tk for 38th round + and r11, r10, r8, ror #10 //ror and mask to match fixslicing + and r12, r10, r9, ror #10 //ror and mask to match fixslicing + eor r11, r11, #0x01400000 //add rconst + eor r11, r11, #0x00001000 //add rconst + eor r12, r12, #0x00400000 //add rconst + mvn r12, r12 //to save a NOT in sbox calculations + strd r11, r12, [r0], #8 //store 2nd half tk for 38th round + and r10, r10, r10, lsr #6 //r10<- 0x03030303 + and r11, r10, r6, ror #12 //--- ror and masks to match fixslicing + and r6, r6, r10, lsl #6 + orr r6, r11, r6, ror #28 + and r11, r10, r7, ror #12 + and r7, r7, r10, lsl #6 + orr r7, r11, r7, ror #28 + and r11, r10, r8, ror #12 + and r8, r8, r10, lsl #6 + orr r8, r11, r8, ror #28 + and r11, r10, r9, ror #12 + and r9, r9, r10, lsl #6 + orr r9, r11, r9, ror #28 //ror and masks to match fixslicing --- + eor r6, r6, #0x00000400 //add rconst + eor r7, r7, #0x00000400 //add rconst + eor r8, r8, #0x01000000 + eor r8, r8, #0x00004000 //add rconst + eor r9, r9, #0x00000400 //add rconst + mvn r9, r9 //to save a NOT in sbox calculations + strd r8, r9, [r0], #8 //store 1st half tk for 39th round + strd r6, r7, [r0], #8 //store 2nd half tk for 39th round + ldm r0, {r6-r9} //load tk + bl p8 //apply the permutation 8 times + movw r10, #0x3030 + movt r10, #0x3030 //r10<- 0x30303030 + and r11, r10, r6, ror #30 //--- ror and masks to match fixslicing + and r6, r6, r10, ror #4 + orr r6, r11, r6, ror #22 + and r11, r10, r7, ror #30 + and r7, r7, r10, ror #4 + orr r7, r11, r7, ror #22 + and r11, r10, r8, ror #30 + and r8, r8, r10, ror #4 + orr r8, r11, r8, ror #22 + and r11, r10, r9, ror #30 + and r9, r9, r10, ror #4 + orr r9, r11, r9, ror #22 //ror and masks to match fixslicing --- + eor r6, r6, #0x00000010 + eor r8, r8, #0x00010000 + eor r8, r8, #0x00000010 + eor r9, r9, #0x00000400 + mvn r9, r9 //to save a NOT in sbox calculations + strd r6, r7, [r0], #8 //store 1st half tk for 40th round + strd r8, r9, [r0] //store 2nd half tk for 40th round + add.w sp, #4 + pop {r0-r12, lr} + bx lr + +/****************************************************************************** +* Applies the permutations P^2, ..., P^14 for rounds 0 to 16. Since P^16=Id, we +* don't need more calculations as no LFSR is applied to TK1. +******************************************************************************/ +@ void tkschedule_perm_tk1(u32* tk, const u8* key) +.global tkschedule_perm_tk1 +.type tkschedule_perm_tk1,%function +.align 2 +tkschedule_perm_tk1: + push {r0-r12, lr} + ldr.w r3, [r1, #8] //load tk1 (3rd word) + ldr.w r4, [r1, #4] //load tk1 (2nd word) + ldr.w r5, [r1, #12] //load tk1 (4th word) + ldr.w r2, [r1] //load tk1 (1st word) + movw r10, #0x0a0a + movt r10, #0x0a0a //r6 <- 0x0a0a0a0a + movw r11, #0x3030 + movt r11, #0x3030 //r7 <- 0x30303030 + bl packing //pack tk1 + mov r6, r2 //move tk1 from r2-r5 to r6-r9 + mov r7, r3 //move tk1 from r2-r5 to r6-r9 + mov r8, r4 //move tk1 from r2-r5 to r6-r9 + mov r9, r5 //move tk1 from r2-r5 to r6-r9 + movw r2, #0xf0f0 + movt r2, #0xf0f0 //r2<- 0xf0f0f0f0 + and r11, r8, r2 //tk &= 0xf0f0f0f0 (3rd word) + and r12, r9, r2 //tk &= 0xf0f0f0f0 (4th word) + strd r11, r12, [r0], #8 //store 1st half tk for 1st round + and r11, r6, r2 //tk &= 0xf0f0f0f0 (1st word) + and r12, r7, r2 //tk &= 0xf0f0f0f0 (2nd word) + strd r11, r12, [r0], #8 //store 2nd half tk for 1st round + + bl p2 //apply the permutation twice + movw r3, #0x0303 + movt r3, #0x0303 //r3<- 0x03030303 + and r11, r3, r6, ror #28 //--- ror and masks to match fixslicing + and r12, r6, r3, lsl #6 + orr r12, r11, r12, ror #12 + str.w r12, [r0, #8] + and r11, r3, r7, ror #28 + and r12, r7, r3, lsl #6 + orr r12, r11, r12, ror #12 + str.w r12, [r0, #12] + and r11, r3, r9, ror #28 + and r12, r9, r3, lsl #6 + orr r12, r11, r12, ror #12 + str.w r12, [r0, #4] + and r11, r3, r8, ror #28 + and r12, r8, r3, lsl #6 + orr r12, r11, r12, ror #12 + str.w r12, [r0], #16 //ror and masks to match fixslicing --- + bl p2 //apply the permutation 4 times + and r11, r2, r6, ror #16 //ror and mask to match fixslicing + and r12, r2, r7, ror #16 //ror and mask to match fixslicing + strd r11, r12, [r0, #8] //store 2nd half tk for 5th round + and r11, r2, r8, ror #16 //ror and mask to match fixslicing + and r12, r2, r9, ror #16 //ror and mask to match fixslicing + strd r11, r12, [r0], #16 //store 1st half tk for 5th round + bl p2 //apply the permutation 6 times + and r11, r3, r6, ror #12 //--- ror and masks to match fixslicing + and r12, r6, r3, lsl #6 + orr r12, r11, r12, ror #28 + str.w r12, [r0, #8] + and r11, r3, r7, ror #12 + and r12, r7, r3, lsl #6 + orr r12, r11, r12, ror #28 + str.w r12, [r0, #12] + and r11, r3, r9, ror #12 + and r12, r9, r3, lsl #6 + orr r12, r11, r12, ror #28 + str.w r12, [r0, #4] + and r11, r3, r8, ror #12 + and r12, r8, r3, lsl #6 + orr r12, r11, r12, ror #28 + str.w r12, [r0], #16 //ror and masks to match fixslicing --- + bl p2 //apply the permutation 8 times + and r11, r2, r6 //ror and mask to match fixslicing + and r12, r2, r7 //ror and mask to match fixslicing + strd r11, r12, [r0, #8] //store 2nd half tk for 9th round + and r11, r2, r8 //ror and mask to match fixslicing + and r12, r2, r9 //ror and mask to match fixslicing + strd r11, r12, [r0], #16 //store 1st half tk for 9th round + bl p2 //apply the permutation 10 + and r11, r3, r6, ror #28 //--- ror and masks to match fixslicing + and r12, r6, r3, lsl #6 + orr r12, r11, r12, ror #12 + str.w r12, [r0, #8] + and r11, r3, r7, ror #28 + and r12, r7, r3, lsl #6 + orr r12, r11, r12, ror #12 + str.w r12, [r0, #12] + and r11, r3, r9, ror #28 + and r12, r9, r3, lsl #6 + orr r12, r11, r12, ror #12 + str.w r12, [r0, #4] + and r11, r3, r8, ror #28 + and r12, r8, r3, lsl #6 + orr r12, r11, r12, ror #12 + str.w r12, [r0], #16 //ror and masks to match fixslicing --- + bl p2 //apply the permutation 12 times + and r11, r2, r6, ror #16 //ror and mask to match fixslicing + and r12, r2, r7, ror #16 //ror and mask to match fixslicing + strd r11, r12, [r0, #8] //store 2nd half tk for 5th round + and r11, r2, r8, ror #16 //ror and mask to match fixslicing + and r12, r2, r9, ror #16 //ror and mask to match fixslicing + strd r11, r12, [r0], #16 //store 1st half tk for 5th round + bl p2 //apply the permutation 14 times + and r11, r3, r6, ror #12 //--- ror and masks to match fixslicing + and r12, r6, r3, lsl #6 + orr r12, r11, r12, ror #28 + str.w r12, [r0, #8] + and r11, r3, r7, ror #12 + and r12, r7, r3, lsl #6 + orr r12, r11, r12, ror #28 + str.w r12, [r0, #12] + and r11, r3, r9, ror #12 + and r12, r9, r3, lsl #6 + orr r12, r11, r12, ror #28 + str.w r12, [r0, #4] + and r11, r3, r8, ror #12 + and r12, r8, r3, lsl #6 + orr r12, r11, r12, ror #28 + str.w r12, [r0] //ror and masks to match fixslicing --- + pop {r0-r12, lr} + bx lr + +.align 2 +quadruple_round: + orr r8, r2, r3 + eor r5, r5, r8 + mvn r5, r5 + eor r8, r3, r4, lsr #1 + and r8, r8, r6 + eor r3, r3, r8 + eor r4, r4, r8, lsl #1 //SWAPMOVE(r4, r3, 0x55555555, 1); + eor r8, r4, r5, lsr #1 + and r8, r8, r6 + eor r4, r4, r8 + eor r5, r5, r8, lsl #1 //SWAPMOVE(r5, r4, 0x55555555, 1); + orr r8, r4, r5 + eor r3, r3, r8 + mvn r3, r3 + eor r8, r2, r3, lsr #1 + and r8, r8, r6 + eor r2, r2, r8 + eor r3, r3, r8, lsl #1 //SWAPMOVE(r3, r2, 0x55555555, 1); + eor r8, r5, r2, lsr #1 + and r8, r8, r6 + eor r5, r5, r8 + eor r2, r2, r8, lsl #1 //SWAPMOVE(r2, r5, 0x55555555, 1); + orr r8, r2, r3 + eor r5, r5, r8 + mvn r5, r5 + eor r8, r3, r4, lsr #1 + and r8, r8, r6 + eor r3, r3, r8 + eor r4, r4, r8, lsl #1 //SWAPMOVE(r4, r3, 0x55555555, 1); + eor r8, r4, r5, lsr #1 + and r8, r8, r6 + eor r4, r4, r8 + eor r5, r5, r8, lsl #1 //SWAPMOVE(r5, r4, 0x55555555, 1); + orr r8, r4, r5 + eor r3, r3, r8 + eor r8, r2, r5 + and r8, r8, r6 + eor r2, r2, r8 + eor r5, r5, r8 //SWAPMOVE(r5, r2, 0x55555555, 0); + ldmia.w r1!, {r8-r11} //load rkeys in r8,...,r11 + eor r2, r2, r8 //add rtk_2_3 + rconst + eor r3, r3, r9 //add rtk_2_3 + rconst + eor r4, r4, r10 //add rtk_2_3 + rconst + eor r5, r5, r11 //add rtk_2_3 + rconst + ldmia.w r0!,{r8-r11} + eor r2, r2, r8 //add rtk_1 + eor r3, r3, r9 //add rtk_1 + eor r4, r4, r10 //add rtk_1 + eor r5, r5, r11 //add rtk_1 + and r8, r7, r2, ror #30 // --- mixcolumns 0 --- + eor r2, r2, r8, ror #24 + and r8, r7, r2, ror #18 + eor r2, r2, r8, ror #2 + and r8, r7, r2, ror #6 + eor r2, r2, r8, ror #4 + and r8, r7, r3, ror #30 + eor r3, r3, r8, ror #24 + and r8, r7, r3, ror #18 + eor r3, r3, r8, ror #2 + and r8, r7, r3, ror #6 + eor r3, r3, r8, ror #4 + and r8, r7, r4, ror #30 + eor r4, r4, r8, ror #24 + and r8, r7, r4, ror #18 + eor r4, r4, r8, ror #2 + and r8, r7, r4, ror #6 + eor r4, r4, r8, ror #4 + and r8, r7, r5, ror #30 + eor r5, r5, r8, ror #24 + and r8, r7, r5, ror #18 + eor r5, r5, r8, ror #2 + and r8, r7, r5, ror #6 + eor r5, r5, r8, ror #4 + orr r8, r4, r5 + eor r3, r3, r8 + mvn r3, r3 + eor r8, r2, r3, lsr #1 + and r8, r8, r6 + eor r2, r2, r8 + eor r3, r3, r8, lsl #1 //SWAPMOVE(r3, r2, 0x55555555, 1); + eor r8, r5, r2, lsr #1 + and r8, r8, r6 + eor r5, r5, r8 + eor r2, r2, r8, lsl #1 //SWAPMOVE(r2, r5, 0x55555555, 1); + orr r8, r2, r3 + eor r5, r5, r8 + mvn r5, r5 + eor r8, r3, r4, lsr #1 + and r8, r8, r6 + eor r3, r3, r8 + eor r4, r4, r8, lsl #1 //SWAPMOVE(r4, r3, 0x55555555, 1); + eor r8, r4, r5, lsr #1 + and r8, r8, r6 + eor r4, r4, r8 + eor r5, r5, r8, lsl #1 //SWAPMOVE(r5, r4, 0x55555555, 1); + orr r8, r4, r5 + eor r3, r3, r8 + mvn r3, r3 + eor r8, r2, r3, lsr #1 + and r8, r8, r6 + eor r2, r2, r8 + eor r3, r3, r8, lsl #1 //SWAPMOVE(r3, r2, 0x55555555, 1); + eor r8, r5, r2, lsr #1 + and r8, r8, r6 + eor r5, r5, r8 + eor r2, r2, r8, lsl #1 //SWAPMOVE(r2, r5, 0x55555555, 1); + orr r8, r2, r3 + eor r5, r5, r8 + eor r8, r3, r4 + and r8, r8, r6 + eor r3, r3, r8 + eor r4, r4, r8 //SWAPMOVE(r4, r3, 0x55555555, 0); + ldmia.w r1!, {r8-r11} //load rkeys in r8,...,r11 + eor r2, r2, r8 //add rkey + rconst + eor r3, r3, r9 //add rkey + rconst + eor r4, r4, r10 //add rkey + rconst + eor r5, r5, r11 //add rkey + rconst + and r8, r7, r2, ror #16 // --- mixcolumns 1 --- + eor r2, r2, r8, ror #30 + and r8, r7, r2, ror #28 + eor r2, r2, r8 + and r8, r7, r2, ror #16 + eor r2, r2, r8, ror #2 + and r8, r7, r3, ror #16 + eor r3, r3, r8, ror #30 + and r8, r7, r3, ror #28 + eor r3, r3, r8 + and r8, r7, r3, ror #16 + eor r3, r3, r8, ror #2 + and r8, r7, r4, ror #16 + eor r4, r4, r8, ror #30 + and r8, r7, r4, ror #28 + eor r4, r4, r8 + and r8, r7, r4, ror #16 + eor r4, r4, r8, ror #2 + and r8, r7, r5, ror #16 + eor r5, r5, r8, ror #30 + and r8, r7, r5, ror #28 + eor r5, r5, r8 + and r8, r7, r5, ror #16 + eor r5, r5, r8, ror #2 + orr r8, r2, r3 + eor r5, r5, r8 + mvn r5, r5 + eor r8, r3, r4, lsr #1 + and r8, r8, r6 + eor r3, r3, r8 + eor r4, r4, r8, lsl #1 //SWAPMOVE(r4, r3, 0x55555555, 1); + eor r8, r4, r5, lsr #1 + and r8, r8, r6 + eor r4, r4, r8 + eor r5, r5, r8, lsl #1 //SWAPMOVE(r5, r4, 0x55555555, 1); + orr r8, r4, r5 + eor r3, r3, r8 + mvn r3, r3 + eor r8, r2, r3, lsr #1 + and r8, r8, r6 + eor r2, r2, r8 + eor r3, r3, r8, lsl #1 //SWAPMOVE(r3, r2, 0x55555555, 1); + eor r8, r5, r2, lsr #1 + and r8, r8, r6 + eor r5, r5, r8 + eor r2, r2, r8, lsl #1 //SWAPMOVE(r2, r5, 0x55555555, 1); + orr r8, r2, r3 + eor r5, r5, r8 + mvn r5, r5 + eor r8, r3, r4, lsr #1 + and r8, r8, r6 + eor r3, r3, r8 + eor r4, r4, r8, lsl #1 //SWAPMOVE(r4, r3, 0x55555555, 1); + eor r8, r4, r5, lsr #1 + and r8, r8, r6 + eor r4, r4, r8 + eor r5, r5, r8, lsl #1 //SWAPMOVE(r5, r4, 0x55555555, 1); + orr r8, r4, r5 + eor r3, r3, r8 + eor r8, r2, r5 + and r8, r8, r6 + eor r2, r2, r8 + eor r5, r5, r8 //SWAPMOVE(r5, r2, 0x55555555, 0); + ldmia.w r1!, {r8-r11} //load rkeys in r8,...,r11 + eor r2, r2, r8 //add rtk_2_3 + rconst + eor r3, r3, r9 //add rtk_2_3 + rconst + eor r4, r4, r10 //add rtk_2_3 + rconst + eor r5, r5, r11 //add rtk_2_3 + rconst + ldmia.w r0!,{r8-r11} + eor r2, r2, r8 //add rtk_1 + eor r3, r3, r9 //add rtk_1 + eor r4, r4, r10 //add rtk_1 + eor r5, r5, r11 //add rtk_1 + and r8, r7, r2, ror #10 // --- mixcolumns 2 --- + eor r2, r2, r8, ror #4 + and r8, r7, r2, ror #6 + eor r2, r2, r8, ror #6 + and r8, r7, r2, ror #26 + eor r2, r2, r8 + and r8, r7, r3, ror #10 + eor r3, r3, r8, ror #4 + and r8, r7, r3, ror #6 + eor r3, r3, r8, ror #6 + and r8, r7, r3, ror #26 + eor r3, r3, r8 + and r8, r7, r4, ror #10 + eor r4, r4, r8, ror #4 + and r8, r7, r4, ror #6 + eor r4, r4, r8, ror #6 + and r8, r7, r4, ror #26 + eor r4, r4, r8 + and r8, r7, r5, ror #10 + eor r5, r5, r8, ror #4 + and r8, r7, r5, ror #6 + eor r5, r5, r8, ror #6 + and r8, r7, r5, ror #26 + eor r5, r5, r8 + orr r8, r4, r5 + eor r3, r3, r8 + mvn r3, r3 + eor r8, r2, r3, lsr #1 + and r8, r8, r6 + eor r2, r2, r8 + eor r3, r3, r8, lsl #1 //SWAPMOVE(r3, r2, 0x55555555, 1); + eor r8, r5, r2, lsr #1 + and r8, r8, r6 + eor r5, r5, r8 + eor r2, r2, r8, lsl #1 //SWAPMOVE(r2, r5, 0x55555555, 1); + orr r8, r2, r3 + eor r5, r5, r8 + mvn r5, r5 + eor r8, r3, r4, lsr #1 + and r8, r8, r6 + eor r3, r3, r8 + eor r4, r4, r8, lsl #1 //SWAPMOVE(r4, r3, 0x55555555, 1); + eor r8, r4, r5, lsr #1 + and r8, r8, r6 + eor r4, r4, r8 + eor r5, r5, r8, lsl #1 //SWAPMOVE(r5, r4, 0x55555555, 1); + orr r8, r4, r5 + eor r3, r3, r8 + mvn r3, r3 + eor r8, r2, r3, lsr #1 + and r8, r8, r6 + eor r2, r2, r8 + eor r3, r3, r8, lsl #1 //SWAPMOVE(r3, r2, 0x55555555, 1); + eor r8, r5, r2, lsr #1 + and r8, r8, r6 + eor r5, r5, r8 + eor r2, r2, r8, lsl #1 //SWAPMOVE(r2, r5, 0x55555555, 1); + orr r8, r2, r3 + eor r5, r5, r8 + eor r8, r3, r4 + and r8, r8, r6 + eor r3, r3, r8 + eor r4, r4, r8 //SWAPMOVE(r4, r3, 0x55555555, 0); + ldmia r1!, {r8-r11} //load rkeys in r8,...,r11 + eor r2, r2, r8 //add rkey + rconst + eor r3, r3, r9 //add rkey + rconst + eor r4, r4, r10 //add rkey + rconst + eor r5, r5, r11 //add rkey + rconst + and r8, r7, r2, ror #4 // --- mixcolumns 3 --- + eor r2, r2, r8, ror #26 + and r8, r7, r2 + eor r2, r2, r8, ror #4 + and r8, r7, r2, ror #4 + eor r2, r2, r8, ror #22 + and r8, r7, r3, ror #4 + eor r3, r3, r8, ror #26 + and r8, r7, r3 + eor r3, r3, r8, ror #4 + and r8, r7, r3, ror #4 + eor r3, r3, r8, ror #22 + and r8, r7, r4, ror #4 + eor r4, r4, r8, ror #26 + and r8, r7, r4 + eor r4, r4, r8, ror #4 + and r8, r7, r4, ror #4 + eor r4, r4, r8, ror #22 + and r8, r7, r5, ror #4 + eor r5, r5, r8, ror #26 + and r8, r7, r5 + eor r5, r5, r8, ror #4 + and r8, r7, r5, ror #4 + eor r5, r5, r8, ror #22 + bx lr + +/****************************************************************************** +* Encrypt a single block using fixsliced SKINNY-128-128. +******************************************************************************/ +@ void skinny128_384(u8* ctext, const u32* tk, const u8* ptext) +.global skinny128_384 +.type skinny128_384,%function +.align 2 +skinny128_384: + push {r0-r12, r14} + mov.w r0, r3 + ldr.w r3, [r2, #8] + ldr.w r4, [r2, #4] + ldr.w r5, [r2, #12] + ldr.w r2, [r2] + movw r6, #0x0a0a + movt r6, #0x0a0a //r6 <- 0x0a0a0a0a + movw r7, #0x3030 + movt r7, #0x3030 //r7 <- 0x30303030 + eor r12, r2, r2, lsr #3 + and r12, r12, r6 + eor r2, r2, r12 + eor r2, r2, r12, lsl #3 //SWAPMOVE(r2, r2, 0x0a0a0a0a, 3) + eor r12, r3, r3, lsr #3 + and r12, r12, r6 + eor r3, r3, r12 + eor r3, r3, r12, lsl #3 //SWAPMOVE(r3, r3, 0x0a0a0a0a, 3) + eor r12, r4, r4, lsr #3 + and r12, r12, r6 + eor r4, r4, r12 + eor r4, r4, r12, lsl #3 //SWAPMOVE(r4, r4, 0x0a0a0a0a, 3) + eor r12, r5, r5, lsr #3 + and r12, r12, r6 + eor r5, r5, r12 + eor r5, r5, r12, lsl #3 //SWAPMOVE(r5, r5, 0x0a0a0a0a, 3) + eor r12, r2, r4, lsr #2 + and r12, r12, r7 + eor r2, r2, r12 + eor r4, r4, r12, lsl #2 //SWAPMOVE(r4, r2, 0x30303030, 2) + eor r12, r2, r3, lsr #4 + and r12, r12, r7, lsr #2 + eor r2, r2, r12 + eor r3, r3, r12, lsl #4 //SWAPMOVE(r3, r2, 0x0c0c0c0c, 4) + eor r12, r2, r5, lsr #6 + and r12, r12, r7, lsr #4 + eor r2, r2, r12 + eor r5, r5, r12, lsl #6 //SWAPMOVE(r5, r2, 0x03030303, 6) + eor r12, r4, r3, lsr #2 + and r12, r12, r7, lsr #2 + eor r4, r4, r12 + eor r3, r3, r12, lsl #2 //SWAPMOVE(r3, r4, 0x0c0c0c0c, 2) + eor r12, r4, r5, lsr #4 + and r12, r12, r7, lsr #4 + eor r4, r4, r12 + eor r5, r5, r12, lsl #4 //SWAPMOVE(r5, r4, 0x03030303, 4) + eor r12, r3, r5, lsr #2 + and r12, r12, r7, lsr #4 + eor r3, r3, r12 + eor r5, r5, r12, lsl #2 //SWAPMOVE(r5, r3, 0x03030303, 2) + movw r6, #0x5555 + movt r6, #0x5555 //r6 <- 0x55555555 + bl quadruple_round + bl quadruple_round + bl quadruple_round + bl quadruple_round + sub.w r0, #128 // rtk1 repeats every 16 rounds + bl quadruple_round + bl quadruple_round + bl quadruple_round + bl quadruple_round + sub.w r0, #128 // rtk1 repeats every 16 rounds + bl quadruple_round + bl quadruple_round + movw r6, #0x0a0a + movt r6, #0x0a0a //r6 <- 0x0a0a0a0a + eor r10, r3, r5, lsr #2 + and r10, r10, r7, lsr #4 + eor r3, r3, r10 + eor r5, r5, r10, lsl #2 //SWAPMOVE(r5, r3, 0x03030303, 2) + eor r10, r4, r5, lsr #4 + and r10, r10, r7, lsr #4 + eor r4, r4, r10 + eor r5, r5, r10, lsl #4 //SWAPMOVE(r5, r4, 0x03030303, 4) + eor r10, r4, r3, lsr #2 + and r10, r10, r7, lsr #2 + eor r4, r4, r10 + eor r3, r3, r10, lsl #2 //SWAPMOVE(r3, r4, 0x0c0c0c0c, 2) + eor r10, r2, r5, lsr #6 + and r10, r10, r7, lsr #4 + eor r2, r2, r10 + eor r5, r5, r10, lsl #6 //SWAPMOVE(r5, r2, 0x03030303, 6) + eor r10, r2, r3, lsr #4 + and r10, r10, r7, lsr #2 + eor r2, r2, r10 + eor r3, r3, r10, lsl #4 //SWAPMOVE(r3, r2, 0x0c0c0c0c, 4) + eor r10, r2, r4, lsr #2 + and r10, r10, r7 + eor r2, r2, r10 + eor r4, r4, r10, lsl #2 //SWAPMOVE(r4, r2, 0x30303030, 2) + eor r10, r5, r5, lsr #3 + and r10, r10, r6 + eor r5, r5, r10 + eor r5, r5, r10, lsl #3 //SWAPMOVE(r5, r5, 0x0a0a0a0a, 3) + eor r10, r4, r4, lsr #3 + and r10, r10, r6 + eor r4, r4, r10 + eor r4, r4, r10, lsl #3 //SWAPMOVE(r4, r4, 0x0a0a0a0a, 3) + eor r10, r3, r3, lsr #3 + and r10, r10, r6 + eor r3, r3, r10 + eor r3, r3, r10, lsl #3 //SWAPMOVE(r3, r3, 0x0a0a0a0a, 3) + eor r10, r2, r2, lsr #3 + and r10, r10, r6 + eor r2, r2, r10 + eor r2, r2, r10, lsl #3 //SWAPMOVE(r2, r2, 0x0a0a0a0a, 3) + ldr.w r0, [sp], #4 + strd r2, r4, [r0] + strd r3, r5, [r0, #8] + pop {r1-r12,r14} + bx lr + \ No newline at end of file diff --git a/romulus/Implementations/crypto_aead/romulusm1+/armsrc_NEC/api.h b/romulus/Implementations/crypto_aead/romulusm1+/armsrc_NEC/api.h new file mode 100644 index 0000000..a4aa567 --- /dev/null +++ b/romulus/Implementations/crypto_aead/romulusm1+/armsrc_NEC/api.h @@ -0,0 +1,5 @@ +#define CRYPTO_KEYBYTES 16 +#define CRYPTO_NSECBYTES 0 +#define CRYPTO_NPUBBYTES 16 +#define CRYPTO_ABYTES 16 +#define CRYPTO_NOOVERLAP 1 diff --git a/romulus/Implementations/crypto_aead/romulusm1+/armsrc_NEC/crypto_aead.h b/romulus/Implementations/crypto_aead/romulusm1+/armsrc_NEC/crypto_aead.h new file mode 100644 index 0000000..cfc09d6 --- /dev/null +++ b/romulus/Implementations/crypto_aead/romulusm1+/armsrc_NEC/crypto_aead.h @@ -0,0 +1,11 @@ +int crypto_aead_encrypt(unsigned char *c, unsigned long long *clen, + const unsigned char *m, unsigned long long mlen, + const unsigned char *ad, unsigned long long adlen, + const unsigned char *nsec, const unsigned char *npub, + const unsigned char *k); + +int crypto_aead_decrypt(unsigned char *m, unsigned long long *outputmlen, + unsigned char *nsec, + const unsigned char *c, unsigned long long clen, + const unsigned char *ad, unsigned long long adlen, + const unsigned char *npub, const unsigned char *k); diff --git a/romulus/Implementations/crypto_aead/romulusm1+/armsrc_NEC/encrypt.c b/romulus/Implementations/crypto_aead/romulusm1+/armsrc_NEC/encrypt.c new file mode 100644 index 0000000..91d0e6e --- /dev/null +++ b/romulus/Implementations/crypto_aead/romulusm1+/armsrc_NEC/encrypt.c @@ -0,0 +1,738 @@ +/* + * Date: 29 November 2018 + * Contact: Thomas Peyrin - thomas.peyrin@gmail.com + * Mustafa Khairallah - mustafam001@e.ntu.edu.sg + */ + +#include "crypto_aead.h" +#include "api.h" +#include "skinny.h" +#include +#include + +void pad (const unsigned char* m, unsigned char* mp, int l, int len8) { + int i; + + for (i = 0; i < l; i++) { + if (i < len8) { + mp[i] = m[i]; + } + else if (i == l - 1) { + mp[i] = (len8 & 0x0f); + } + else { + mp[i] = 0x00; + } + } + +} + +void g8A (unsigned char* s, unsigned char* c) { + unsigned int tmps[4]; + unsigned int tmpc[4]; + + tmps[0] = *((unsigned int *)&s[0]); + tmps[1] = *((unsigned int *)&s[4]); + tmps[2] = *((unsigned int *)&s[8]); + tmps[3] = *((unsigned int *)&s[12]); + + // c[i] = (s[i] >> 1) ^ (s[i] & 0x80) ^ ((s[i] & 0x01) << 7); + // + // (s[i] >> 1) -> ((s[i]>>1)&0x7f) + // (s[i] & 0x80) -> (s[i])&0x80) not changed + // ((s[i] & 0x01) << 7) -> ((s[i]<<7)&0x80) + + // use word access because of speeding up + tmpc[0] = ((tmps[0]>>1) & 0x7f7f7f7f) ^ (tmps[0] & 0x80808080) ^ ((tmps[0]<<7) & 0x80808080); + tmpc[1] = ((tmps[1]>>1) & 0x7f7f7f7f) ^ (tmps[1] & 0x80808080) ^ ((tmps[1]<<7) & 0x80808080); + tmpc[2] = ((tmps[2]>>1) & 0x7f7f7f7f) ^ (tmps[2] & 0x80808080) ^ ((tmps[2]<<7) & 0x80808080); + tmpc[3] = ((tmps[3]>>1) & 0x7f7f7f7f) ^ (tmps[3] & 0x80808080) ^ ((tmps[3]<<7) & 0x80808080); + + *((unsigned int *)&c[0]) = tmpc[0]; + *((unsigned int *)&c[4]) = tmpc[1]; + *((unsigned int *)&c[8]) = tmpc[2]; + *((unsigned int *)&c[12]) = tmpc[3]; +} + +void g8A_for_Tag_Generation (unsigned char* s, unsigned char* c) { + unsigned int tmps[4]; + unsigned int tmpc[4]; + + tmps[0] = *((unsigned int *)&s[0]); + tmps[1] = *((unsigned int *)&s[4]); + tmps[2] = *((unsigned int *)&s[8]); + tmps[3] = *((unsigned int *)&s[12]); + + // c[i] = (s[i] >> 1) ^ (s[i] & 0x80) ^ ((s[i] & 0x01) << 7); + // + // (s[i] >> 1) -> ((s[i]>>1)&0x7f) + // (s[i] & 0x80) -> (s[i])&0x80) not changed + // ((s[i] & 0x01) << 7) -> ((s[i]<<7)&0x80) + + // use word access because of speeding up + tmpc[0] = ((tmps[0]>>1) & 0x7f7f7f7f) ^ (tmps[0] & 0x80808080) ^ ((tmps[0]<<7) & 0x80808080); + tmpc[1] = ((tmps[1]>>1) & 0x7f7f7f7f) ^ (tmps[1] & 0x80808080) ^ ((tmps[1]<<7) & 0x80808080); + tmpc[2] = ((tmps[2]>>1) & 0x7f7f7f7f) ^ (tmps[2] & 0x80808080) ^ ((tmps[2]<<7) & 0x80808080); + tmpc[3] = ((tmps[3]>>1) & 0x7f7f7f7f) ^ (tmps[3] & 0x80808080) ^ ((tmps[3]<<7) & 0x80808080); + + // use byte access because of memory alignment. + // c is not always in word(4 byte) alignment. + c[0] = tmpc[0] &0xFF; + c[1] = (tmpc[0]>>8) &0xFF; + c[2] = (tmpc[0]>>16)&0xFF; + c[3] = (tmpc[0]>>24)&0xFF; + c[4] = tmpc[1] &0xFF; + c[5] = (tmpc[1]>>8) &0xFF; + c[6] = (tmpc[1]>>16)&0xFF; + c[7] = (tmpc[1]>>24)&0xFF; + c[8] = tmpc[2] &0xFF; + c[9] = (tmpc[2]>>8) &0xFF; + c[10] = (tmpc[2]>>16)&0xFF; + c[11] = (tmpc[2]>>24)&0xFF; + c[12] = tmpc[3] &0xFF; + c[13] = (tmpc[3]>>8) &0xFF; + c[14] = (tmpc[3]>>16)&0xFF; + c[15] = (tmpc[3]>>24)&0xFF; +} + +void rho_ad_eqov16 (const unsigned char* m, + unsigned char* s) { + *((unsigned int *)&s[0]) ^= *((unsigned int *)&m[0]); + *((unsigned int *)&s[4]) ^= *((unsigned int *)&m[4]); + *((unsigned int *)&s[8]) ^= *((unsigned int *)&m[8]); + *((unsigned int *)&s[12]) ^= *((unsigned int *)&m[12]); +} + +void rho_ad_ud16 (const unsigned char* m, + unsigned char* s, + int len8) { + unsigned char mp [16]; + + pad(m,mp,16,len8); + *((unsigned int *)&s[0]) ^= *((unsigned int *)&mp[0]); + *((unsigned int *)&s[4]) ^= *((unsigned int *)&mp[4]); + *((unsigned int *)&s[8]) ^= *((unsigned int *)&mp[8]); + *((unsigned int *)&s[12]) ^= *((unsigned int *)&mp[12]); +} + +void rho_eqov16 (const unsigned char* m, + unsigned char* c, + unsigned char* s) { + g8A(s,c); + + *((unsigned int *)&s[0]) ^= *((unsigned int *)&m[0]); + *((unsigned int *)&s[4]) ^= *((unsigned int *)&m[4]); + *((unsigned int *)&s[8]) ^= *((unsigned int *)&m[8]); + *((unsigned int *)&s[12]) ^= *((unsigned int *)&m[12]); + + *((unsigned int *)&c[0]) ^= *((unsigned int *)&m[0]); + *((unsigned int *)&c[4]) ^= *((unsigned int *)&m[4]); + *((unsigned int *)&c[8]) ^= *((unsigned int *)&m[8]); + *((unsigned int *)&c[12]) ^= *((unsigned int *)&m[12]); +} + +void rho_ud16 (const unsigned char* m, + unsigned char* c, + unsigned char* s, + int len8, + int ver) { + int i; + unsigned char mp [16]; + + pad(m,mp,ver,len8); + + g8A(s,c); + *((unsigned int *)&s[0]) ^= *((unsigned int *)&mp[0]); + *((unsigned int *)&s[4]) ^= *((unsigned int *)&mp[4]); + *((unsigned int *)&s[8]) ^= *((unsigned int *)&mp[8]); + *((unsigned int *)&s[12]) ^= *((unsigned int *)&mp[12]); + for (i = 0; i < ver; i++) { + if (i < len8) { + c[i] = c[i] ^ mp[i]; + } + else { + c[i] = 0; + } + } +} + +void irho (unsigned char* m, + const unsigned char* c, + unsigned char* s, + int len8, + int ver) { + int i; + unsigned char cp [16]; + + pad(c,cp,ver,len8); + + g8A(s,m); + for (i = 0; i < ver; i++) { + if (i < len8) { + s[i] = s[i] ^ cp[i] ^ m[i]; + } + else { + s[i] = s[i] ^ cp[i]; + } + if (i < len8) { + m[i] = m[i] ^ cp[i]; + } + else { + m[i] = 0; + } + } +} + +void reset_lfsr_gf56 (unsigned char* CNT) { + *((unsigned int *)&CNT[0]) = 0x00000001; + *((unsigned int *)&CNT[4]) = 0x00000000; +} + +void lfsr_gf56 (unsigned char* CNT) { + unsigned int tmpCNT[2]; + unsigned int fb0; + + tmpCNT[0] = *((unsigned int *)&CNT[0]); // CNT3 CNT2 CNT1 CNT0 + tmpCNT[1] = *((unsigned int *)&CNT[4]); // CNT7 CNT6 CNT5 CNT4 + + fb0 = 0; + if ((tmpCNT[1] >> 23)&0x01) { + fb0 = 0x95; + } + + tmpCNT[1] = tmpCNT[1] << 1 | tmpCNT[0] >> 31; + tmpCNT[0] = tmpCNT[0] << 1 ^ fb0; + + *((unsigned int *)&CNT[0]) = tmpCNT[0]; + *((unsigned int *)&CNT[4]) = tmpCNT[1]; +} + +void block_cipher(unsigned char* s, + const unsigned char* k, unsigned char* T, + unsigned char* CNT, + skinny_ctrl* p_skinny_ctrl) { + p_skinny_ctrl->func_skinny_128_384_enc (s,p_skinny_ctrl,CNT,T,k); +} + +void nonce_encryption (const unsigned char* N, + unsigned char* CNT, + unsigned char*s, const unsigned char* k, + unsigned char D, + skinny_ctrl* p_skinny_ctrl) { + unsigned char T [16]; + *((unsigned int *)&T[0]) = *((unsigned int *)&N[0]); + *((unsigned int *)&T[4]) = *((unsigned int *)&N[4]); + *((unsigned int *)&T[8]) = *((unsigned int *)&N[8]); + *((unsigned int *)&T[12]) = *((unsigned int *)&N[12]); + CNT[7] = D; + block_cipher(s,k,T,CNT,p_skinny_ctrl); + +} + +void generate_tag (unsigned char** c, unsigned char* s, + int n, unsigned long long* clen) { + + g8A_for_Tag_Generation(s, *c); + *c = *c + n; + *c = *c - *clen; + +} + +unsigned long long msg_encryption (const unsigned char** M, unsigned char** c, + const unsigned char* N, + unsigned char* CNT, + unsigned char*s, const unsigned char* k, + unsigned char D, + unsigned long long mlen, + skinny_ctrl* p_skinny_ctrl) { + int len8; + + if (mlen >= 16) { + len8 = 16; + mlen = mlen - 16; + rho_eqov16(*M, *c, s); + } + else { + len8 = mlen; + mlen = 0; + rho_ud16(*M, *c, s, len8, 16); + } + *c = *c + len8; + *M = *M + len8; + lfsr_gf56(CNT); + if (mlen != 0) { + nonce_encryption(N,CNT,s,k,D,p_skinny_ctrl); + } + return mlen; +} + + + +unsigned long long msg_decryption (unsigned char** M, const unsigned char** c, + const unsigned char* N, + unsigned char* CNT, + unsigned char*s, const unsigned char* k, + unsigned char D, + unsigned long long clen, + skinny_ctrl* p_skinny_ctrl) { + int len8; + + if (clen >= 16) { + len8 = 16; + clen = clen - 16; + } + else { + len8 = clen; + clen = 0; + } + irho(*M, *c, s, len8, 16); + *c = *c + len8; + *M = *M + len8; + lfsr_gf56(CNT); + nonce_encryption(N,CNT,s,k,D,p_skinny_ctrl); + return clen; +} + +unsigned long long ad2msg_encryption (const unsigned char** M, + unsigned char* CNT, + unsigned char*s, const unsigned char* k, + unsigned char D, + unsigned long long mlen, + skinny_ctrl* p_skinny_ctrl) { + unsigned char T [16]; + int len8; + + if (mlen <= 16) { + len8 = mlen; + mlen = 0; + + pad (*M,T,16,len8); + } + else { + len8 = 16; + mlen = mlen - 16; + + unsigned char *pM = (unsigned char *)(*M); + *((unsigned int *)&T[0]) = *((unsigned int *)&pM[0]); + *((unsigned int *)&T[4]) = *((unsigned int *)&pM[4]); + *((unsigned int *)&T[8]) = *((unsigned int *)&pM[8]); + *((unsigned int *)&T[12]) = *((unsigned int *)&pM[12]); + } + + CNT[7] = D; + block_cipher(s,k,T,CNT,p_skinny_ctrl); + lfsr_gf56(CNT); + *M = *M + len8; + + return mlen; + +} + + +unsigned long long ad_encryption (const unsigned char** A, unsigned char* s, + const unsigned char* k, unsigned long long adlen, + unsigned char* CNT, + unsigned char D, + skinny_ctrl* p_skinny_ctrl) { + + unsigned char T [16]; + int len8; + + if (adlen >= 16) { + len8 = 16; + adlen = adlen - 16; + rho_ad_eqov16(*A, s); + } + else { + len8 = adlen; + adlen = 0; + rho_ad_ud16(*A, s, len8); + } + *A = *A + len8; + lfsr_gf56(CNT); + if (adlen != 0) { + if (adlen >= 16) { + len8 = 16; + adlen = adlen - 16; + + unsigned char *pA = (unsigned char *)(*A); + *((unsigned int *)&T[0]) = *((unsigned int *)&pA[0]); + *((unsigned int *)&T[4]) = *((unsigned int *)&pA[4]); + *((unsigned int *)&T[8]) = *((unsigned int *)&pA[8]); + *((unsigned int *)&T[12]) = *((unsigned int *)&pA[12]); + } + else { + len8 = adlen; + adlen = 0; + + pad(*A, T, 16, len8); + } + *A = *A + len8; + CNT[7] = D; + block_cipher(s,k,T,CNT,p_skinny_ctrl); + lfsr_gf56(CNT); + } + + return adlen; +} + +int crypto_aead_encrypt ( + unsigned char* c, unsigned long long* clen, + const unsigned char* m, unsigned long long mlen, + const unsigned char* ad, unsigned long long adlen, + const unsigned char* nsec, + const unsigned char* npub, + const unsigned char* k + ) +{ + unsigned char s[16]; + unsigned char CNT[8]; // size 7 -> 8 for word access + unsigned char T[16]; + const unsigned char* N; + unsigned char w; + unsigned long long xlen; + + skinny_ctrl l_skinny_ctrl; + l_skinny_ctrl.func_skinny_128_384_enc = skinny_128_384_enc123_12; + + (void)nsec; + N = npub; + + xlen = mlen; + + *((unsigned int *)&s[0]) = 0x00000000; + *((unsigned int *)&s[4]) = 0x00000000; + *((unsigned int *)&s[8]) = 0x00000000; + *((unsigned int *)&s[12]) = 0x00000000; + reset_lfsr_gf56(CNT); + + w = 48; + + if (adlen == 0) { + w = w ^ 2; + if (xlen == 0) { + w =w ^ 1; + } + else if (xlen%(32) == 0) { + w = w ^ 4; + } + else if (xlen%(32) < 16) { + w = w ^ 1; + } + else if (xlen%(32) == 16) { + w = w ^ 0; + } + else { + w = w ^ 5; + } + } + else if (adlen%(32) == 0) { + w = w ^ 8; + if (xlen == 0) { + w =w ^ 1; + } + else if (xlen%(32) == 0) { + w = w ^ 4; + } + else if (xlen%(32) < 16) { + w = w ^ 1; + } + else if (xlen%(32) == 16) { + w = w ^ 0; + } + else { + w = w ^ 5; + } + } + else if (adlen%(32) < 16) { + w = w ^ 2; + if (xlen == 0) { + w =w ^ 1; + } + else if (xlen%(32) == 0) { + w = w ^ 4; + } + else if (xlen%(32) < 16) { + w = w ^ 1; + } + else if (xlen%(32) == 16) { + w = w ^ 0; + } + else { + w = w ^ 5; + } + } + else if (adlen%(32) == 16) { + w = w ^ 0; + if (xlen == 0) { + w =w ^ 1; + } + else if (xlen%(32) == 0) { + w = w ^ 4; + } + else if (xlen%(32) < 16) { + w = w ^ 1; + } + else if (xlen%(32) == 16) { + w = w ^ 0; + } + else { + w = w ^ 5; + } + } + else { + w = w ^ 10; + if (xlen == 0) { + w =w ^ 1; + } + else if (xlen%(32) == 0) { + w = w ^ 4; + } + else if (xlen%(32) < 16) { + w = w ^ 1; + } + else if (xlen%(32) == 16) { + w = w ^ 0; + } + else { + w = w ^ 5; + } + } + + if (adlen == 0) { // AD is an empty string + lfsr_gf56(CNT); + } + else while (adlen > 0) { + adlen = ad_encryption(&ad,s,k,adlen,CNT,40,&l_skinny_ctrl); + } + + if ((w & 8) == 0) { + xlen = ad2msg_encryption (&m,CNT,s,k,44,xlen,&l_skinny_ctrl); + } + else if (mlen == 0) { + lfsr_gf56(CNT); + } + while (xlen > 0) { + xlen = ad_encryption(&m,s,k,xlen,CNT,44,&l_skinny_ctrl); + } + nonce_encryption(N,CNT,s,k,w,&l_skinny_ctrl); + + // because, nonce_encryption is called at the last block of AD encryption + l_skinny_ctrl.func_skinny_128_384_enc = skinny_128_384_enc1_1; + + // Tag generation + g8A(s, T); + + m = m - mlen; + + reset_lfsr_gf56(CNT); + + *((unsigned int *)&s[0]) = *((unsigned int *)&T[0]); + *((unsigned int *)&s[4]) = *((unsigned int *)&T[4]); + *((unsigned int *)&s[8]) = *((unsigned int *)&T[8]); + *((unsigned int *)&s[12]) = *((unsigned int *)&T[12]); + + *clen = mlen + 16; + + if (mlen > 0) { + nonce_encryption(N,CNT,s,k,36,&l_skinny_ctrl); + while (mlen > 16) { + mlen = msg_encryption(&m,&c,N,CNT,s,k,36,mlen,&l_skinny_ctrl); + } + rho_ud16(m, c, s, mlen, 16); + c = c + mlen; + m = m + mlen; + } + + // Tag Concatenation + + // use byte access because of memory alignment. + // c is not always in word(4 byte) alignment. + + for (int i = 0; i < 16; i = i + 1) { + *(c + i) = T[i]; + } + + c = c - *clen; + + return 0; +} + +int crypto_aead_decrypt( +unsigned char *m,unsigned long long *mlen, +unsigned char *nsec, +const unsigned char *c,unsigned long long clen, +const unsigned char *ad,unsigned long long adlen, +const unsigned char *npub, +const unsigned char *k +) +{ + unsigned char s[16]; + unsigned char CNT[8]; // size 7 -> 8 for word access + unsigned char T[16]; + const unsigned char* N; + unsigned char w; + unsigned long long xlen; + const unsigned char* mauth; + + skinny_ctrl l_skinny_ctrl; + l_skinny_ctrl.func_skinny_128_384_enc = skinny_128_384_enc123_12; + + (void)nsec; + mauth = m; + + N = npub; + + xlen = clen-16; + + reset_lfsr_gf56(CNT); + + for (int i = 0; i < 16; i++) { + T[i] = *(c + clen - 16 + i); + } + + *((unsigned int *)&s[0]) = *((unsigned int *)&T[0]); + *((unsigned int *)&s[4]) = *((unsigned int *)&T[4]); + *((unsigned int *)&s[8]) = *((unsigned int *)&T[8]); + *((unsigned int *)&s[12]) = *((unsigned int *)&T[12]); + + clen = clen - 16; + *mlen = clen; + + if (clen > 0) { + nonce_encryption(N,CNT,s,k,36,&l_skinny_ctrl); + while (clen > 16) { + clen = msg_decryption(&m,&c,N,CNT,s,k,36,clen,&l_skinny_ctrl); + } + irho(m, c, s, clen, 16); + c = c + clen; + m = m + clen; + } + + *((unsigned int *)&s[0]) = 0x00000000; + *((unsigned int *)&s[4]) = 0x00000000; + *((unsigned int *)&s[8]) = 0x00000000; + *((unsigned int *)&s[12]) = 0x00000000; + reset_lfsr_gf56(CNT); + + w = 48; + + if (adlen == 0) { + w = w ^ 2; + if (xlen == 0) { + w =w ^ 1; + } + else if (xlen%(32) == 0) { + w = w ^ 4; + } + else if (xlen%(32) < 16) { + w = w ^ 1; + } + else if (xlen%(32) == 16) { + w = w ^ 0; + } + else { + w = w ^ 5; + } + } + else if (adlen%(32) == 0) { + w = w ^ 8; + if (xlen == 0) { + w =w ^ 1; + } + else if (xlen%(32) == 0) { + w = w ^ 4; + } + else if (xlen%(32) < 16) { + w = w ^ 1; + } + else if (xlen%(32) == 16) { + w = w ^ 0; + } + else { + w = w ^ 5; + } + } + else if (adlen%(32) < 16) { + w = w ^ 2; + if (xlen == 0) { + w =w ^ 1; + } + else if (xlen%(32) == 0) { + w = w ^ 4; + } + else if (xlen%(32) < 16) { + w = w ^ 1; + } + else if (xlen%(32) == 16) { + w = w ^ 0; + } + else { + w = w ^ 5; + } + } + else if (adlen%(32) == 16) { + w = w ^ 0; + if (xlen == 0) { + w =w ^ 1; + } + else if (xlen%(32) == 0) { + w = w ^ 4; + } + else if (xlen%(32) < 16) { + w = w ^ 1; + } + else if (xlen%(32) == 16) { + w = w ^ 0; + } + else { + w = w ^ 5; + } + } + else { + w = w ^ 10; + if (xlen == 0) { + w =w ^ 1; + } + else if (xlen%(32) == 0) { + w = w ^ 4; + } + else if (xlen%(32) < 16) { + w = w ^ 1; + } + else if (xlen%(32) == 16) { + w = w ^ 0; + } + else { + w = w ^ 5; + } + } + + if (adlen == 0) { // AD is an empty string + lfsr_gf56(CNT); + } + else while (adlen > 0) { + adlen = ad_encryption(&ad,s,k,adlen,CNT,40,&l_skinny_ctrl); + } + + if ((w & 8) == 0) { + xlen = ad2msg_encryption (&mauth,CNT,s,k,44,xlen,&l_skinny_ctrl); + } + else if (clen == 0) { + lfsr_gf56(CNT); + } + while (xlen > 0) { + xlen = ad_encryption(&mauth,s,k,xlen,CNT,44,&l_skinny_ctrl); + } + nonce_encryption(N,CNT,s,k,w,&l_skinny_ctrl); + + // Tag generation + g8A_for_Tag_Generation(s, T); + for (int i = 0; i < 16; i++) { + if (T[i] != (*(c+i))) { + return -1; + } + } + + return 0; +} diff --git a/romulus/Implementations/crypto_aead/romulusm1+/armsrc_NEC/skinny.h b/romulus/Implementations/crypto_aead/romulusm1+/armsrc_NEC/skinny.h new file mode 100644 index 0000000..2da62ae --- /dev/null +++ b/romulus/Implementations/crypto_aead/romulusm1+/armsrc_NEC/skinny.h @@ -0,0 +1,8 @@ +typedef struct ___skinny_ctrl { + unsigned char roundKeys[704]; // number of round : 40 + void (*func_skinny_128_384_enc)(unsigned char*, struct ___skinny_ctrl*, unsigned char* CNT, unsigned char* T, const unsigned char* K); +} skinny_ctrl; + +extern void skinny_128_384_enc123_12 (unsigned char* input, skinny_ctrl* pskinny_ctrl, unsigned char* CNT, unsigned char* T, const unsigned char* K); +extern void skinny_128_384_enc12_12 (unsigned char* input, skinny_ctrl* pskinny_ctrl, unsigned char* CNT, unsigned char* T, const unsigned char* K); +extern void skinny_128_384_enc1_1 (unsigned char* input, skinny_ctrl* pskinny_ctrl, unsigned char* CNT, unsigned char* T, const unsigned char* K); diff --git a/romulus/Implementations/crypto_aead/romulusm1+/armsrc_NEC/skinny_key_schedule2.c b/romulus/Implementations/crypto_aead/romulusm1+/armsrc_NEC/skinny_key_schedule2.c new file mode 100644 index 0000000..1315e83 --- /dev/null +++ b/romulus/Implementations/crypto_aead/romulusm1+/armsrc_NEC/skinny_key_schedule2.c @@ -0,0 +1,2163 @@ +/****************************************************************************** + * Copyright (c) 2020, NEC Corporation. + * + * THIS CODE IS FURNISHED TO YOU "AS IS" WITHOUT WARRANTY OF ANY KIND. + * + *****************************************************************************/ + +/* + * SKINNY-128-384 + * + * load * AC(c0 c1) ^ TK3 + * calc AC(c0 c1) ^ TK2 -> store + * ART(TK2) + * + * number of rounds : 40 + */ + +__attribute__((aligned(4))) +void RunEncryptionKeyScheduleTK2(unsigned char *roundKeys) +{ + // r0 : points to roundKeys(& masterKey) + // r1-r4 : key state + // r5-r6 : temp use + // r7 : constant(0xfefefefe) + // r8 : constant(0x01010101) + // r9 : temp use + // r10 : temp use + asm volatile( + "stmdb sp!, {r4-r10} \n\t" + "ldr.w r1, [r0,#16] \n\t" // load master key + "ldr.w r2, [r0,#20] \n\t" // load master key + "ldr.w r3, [r0,#24] \n\t" // load master key + "ldr.w r4, [r0,#28] \n\t" // load master key + "mov.w r7, #0xfefefefe \n\t" + "mov.w r8, #0x01010101 \n\t" + + // round 1 + + "ldr.w r9, [r0,#384] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#388] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#64] \n\t" + "str.w r10, [r0,#68] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 2 + + "ldr.w r9, [r0,#392] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#396] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#72] \n\t" + "str.w r10, [r0,#76] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 3 + + "ldr.w r9, [r0,#400] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#404] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#80] \n\t" + "str.w r10, [r0,#84] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 4 + + "ldr.w r9, [r0,#408] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#412] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#88] \n\t" + "str.w r10, [r0,#92] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 5 + + "ldr.w r9, [r0,#416] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#420] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#96] \n\t" + "str.w r10, [r0,#100] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 6 + + "ldr.w r9, [r0,#424] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#428] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#104] \n\t" + "str.w r10, [r0,#108] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 7 + + "ldr.w r9, [r0,#432] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#436] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#112] \n\t" + "str.w r10, [r0,#116] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 8 + + "ldr.w r9, [r0,#440] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#444] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#120] \n\t" + "str.w r10, [r0,#124] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 9 + + "ldr.w r9, [r0,#448] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#452] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#128] \n\t" + "str.w r10, [r0,#132] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 10 + + "ldr.w r9, [r0,#456] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#460] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#136] \n\t" + "str.w r10, [r0,#140] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 11 + + "ldr.w r9, [r0,#464] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#468] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#144] \n\t" + "str.w r10, [r0,#148] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 12 + + "ldr.w r9, [r0,#472] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#476] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#152] \n\t" + "str.w r10, [r0,#156] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 13 + + "ldr.w r9, [r0,#480] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#484] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#160] \n\t" + "str.w r10, [r0,#164] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 14 + + "ldr.w r9, [r0,#488] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#492] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#168] \n\t" + "str.w r10, [r0,#172] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 15 + + "ldr.w r9, [r0,#496] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#500] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#176] \n\t" + "str.w r10, [r0,#180] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 16 + + "ldr.w r9, [r0,#504] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#508] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#184] \n\t" + "str.w r10, [r0,#188] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 17 + + "ldr.w r9, [r0,#512] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#516] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#192] \n\t" + "str.w r10, [r0,#196] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 18 + + "ldr.w r9, [r0,#520] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#524] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#200] \n\t" + "str.w r10, [r0,#204] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 19 + + "ldr.w r9, [r0,#528] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#532] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#208] \n\t" + "str.w r10, [r0,#212] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 20 + + "ldr.w r9, [r0,#536] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#540] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#216] \n\t" + "str.w r10, [r0,#220] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 21 + + "ldr.w r9, [r0,#544] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#548] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#224] \n\t" + "str.w r10, [r0,#228] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 22 + + "ldr.w r9, [r0,#552] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#556] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#232] \n\t" + "str.w r10, [r0,#236] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 23 + + "ldr.w r9, [r0,#560] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#564] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#240] \n\t" + "str.w r10, [r0,#244] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 24 + + "ldr.w r9, [r0,#568] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#572] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#248] \n\t" + "str.w r10, [r0,#252] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 25 + + "ldr.w r9, [r0,#576] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#580] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#256] \n\t" + "str.w r10, [r0,#260] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 26 + + "ldr.w r9, [r0,#584] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#588] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#264] \n\t" + "str.w r10, [r0,#268] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 27 + + "ldr.w r9, [r0,#592] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#596] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#272] \n\t" + "str.w r10, [r0,#276] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 28 + + "ldr.w r9, [r0,#600] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#604] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#280] \n\t" + "str.w r10, [r0,#284] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 29 + + "ldr.w r9, [r0,#608] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#612] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#288] \n\t" + "str.w r10, [r0,#292] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 30 + + "ldr.w r9, [r0,#616] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#620] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#296] \n\t" + "str.w r10, [r0,#300] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 31 + + "ldr.w r9, [r0,#624] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#628] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#304] \n\t" + "str.w r10, [r0,#308] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 32 + + "ldr.w r9, [r0,#632] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#636] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#312] \n\t" + "str.w r10, [r0,#316] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 33 + + "ldr.w r9, [r0,#640] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#644] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#320] \n\t" + "str.w r10, [r0,#324] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 34 + + "ldr.w r9, [r0,#648] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#652] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#328] \n\t" + "str.w r10, [r0,#332] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 35 + + "ldr.w r9, [r0,#656] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#660] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#336] \n\t" + "str.w r10, [r0,#340] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 36 + + "ldr.w r9, [r0,#664] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#668] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#344] \n\t" + "str.w r10, [r0,#348] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 37 + + "ldr.w r9, [r0,#672] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#676] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#352] \n\t" + "str.w r10, [r0,#356] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 38 + + "ldr.w r9, [r0,#680] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#684] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#360] \n\t" + "str.w r10, [r0,#364] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 39 + + "ldr.w r9, [r0,#688] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#692] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#368] \n\t" + "str.w r10, [r0,#372] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 40 + + "ldr.w r9, [r0,#696] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#700] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#376] \n\t" + "str.w r10, [r0,#380] \n\t" + + // permutation + + // not need to calculate (not used) + + "ldmia.w sp!, {r4-r10} \n\t" + : + : [roundKeys] "r" (roundKeys) + : "cc"); +} diff --git a/romulus/Implementations/crypto_aead/romulusm1+/armsrc_NEC/skinny_key_schedule3.c b/romulus/Implementations/crypto_aead/romulusm1+/armsrc_NEC/skinny_key_schedule3.c new file mode 100644 index 0000000..0b8f83b --- /dev/null +++ b/romulus/Implementations/crypto_aead/romulusm1+/armsrc_NEC/skinny_key_schedule3.c @@ -0,0 +1,2201 @@ +/****************************************************************************** + * Copyright (c) 2020, NEC Corporation. + * + * THIS CODE IS FURNISHED TO YOU "AS IS" WITHOUT WARRANTY OF ANY KIND. + * + *****************************************************************************/ + +/* + * SKINNY-128-384 + * + * AC(c0 c1) ^ TK3 -> store + * ART(TK3) + * + * number of rounds : 40 + */ + +__attribute__((aligned(4))) +void RunEncryptionKeyScheduleTK3(unsigned char *roundKeys, unsigned char *pRC) +{ + // r0 : points to roundKeys(& masterKey) + // r1 : points to RC + // r2-r5 : key state + // r6-r7 : temp use + // r8 : constant(0x7f7f7f7f) + // r9 : constant(0x80808080) + asm volatile( + "stmdb sp!, {r4-r9} \n\t" + "ldr.w r2, [r0,#32] \n\t" // load master key + "ldr.w r3, [r0,#36] \n\t" // load master key + "ldr.w r4, [r0,#40] \n\t" // load master key + "ldr.w r5, [r0,#44] \n\t" // load master key + "mov.w r8, #0x7f7f7f7f \n\t" + "mov.w r9, #0x80808080 \n\t" + + // round 1 + + // AC(c0 c1) + "ldrb.w r6, [r1,#0] \n\t" // load RC + + "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc + "and.w r6, r6, #0xf \n\t" + "eor.w r6, r6, r2 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#384] \n\t" + "str.w r7, [r0,#388] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 2 + + // AC(c0 c1) + "ldrb.w r6, [r1,#1] \n\t" // load RC + + "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc + "and.w r6, r6, #0xf \n\t" + "eor.w r6, r6, r2 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#392] \n\t" + "str.w r7, [r0,#396] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 3 + + // AC(c0 c1) + "ldrb.w r6, [r1,#2] \n\t" // load RC + + "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc + "and.w r6, r6, #0xf \n\t" + "eor.w r6, r6, r2 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#400] \n\t" + "str.w r7, [r0,#404] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 4 + + // AC(c0 c1) + "ldrb.w r6, [r1,#3] \n\t" // load RC + + "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc + "and.w r6, r6, #0xf \n\t" + "eor.w r6, r6, r2 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#408] \n\t" + "str.w r7, [r0,#412] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 5 + + // AC(c0 c1) + "ldrb.w r6, [r1,#4] \n\t" // load RC + + "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc + "and.w r6, r6, #0xf \n\t" + "eor.w r6, r6, r2 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#416] \n\t" + "str.w r7, [r0,#420] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 6 + + // AC(c0 c1) + "ldrb.w r6, [r1,#5] \n\t" // load RC + + "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc + "and.w r6, r6, #0xf \n\t" + "eor.w r6, r6, r2 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#424] \n\t" + "str.w r7, [r0,#428] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 7 + + // AC(c0 c1) + "ldrb.w r6, [r1,#6] \n\t" // load RC + + "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc + "and.w r6, r6, #0xf \n\t" + "eor.w r6, r6, r2 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#432] \n\t" + "str.w r7, [r0,#436] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 8 + + // AC(c0 c1) + "ldrb.w r6, [r1,#7] \n\t" // load RC + + "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc + "and.w r6, r6, #0xf \n\t" + "eor.w r6, r6, r2 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#440] \n\t" + "str.w r7, [r0,#444] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 9 + + // AC(c0 c1) + "ldrb.w r6, [r1,#8] \n\t" // load RC + + "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc + "and.w r6, r6, #0xf \n\t" + "eor.w r6, r6, r2 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#448] \n\t" + "str.w r7, [r0,#452] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 10 + + // AC(c0 c1) + "ldrb.w r6, [r1,#9] \n\t" // load RC + + "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc + "and.w r6, r6, #0xf \n\t" + "eor.w r6, r6, r2 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#456] \n\t" + "str.w r7, [r0,#460] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 11 + + // AC(c0 c1) + "ldrb.w r6, [r1,#10] \n\t" // load RC + + "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc + "and.w r6, r6, #0xf \n\t" + "eor.w r6, r6, r2 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#464] \n\t" + "str.w r7, [r0,#468] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 12 + + // AC(c0 c1) + "ldrb.w r6, [r1,#11] \n\t" // load RC + + "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc + "and.w r6, r6, #0xf \n\t" + "eor.w r6, r6, r2 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#472] \n\t" + "str.w r7, [r0,#476] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 13 + + // AC(c0 c1) + "ldrb.w r6, [r1,#12] \n\t" // load RC + + "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc + "and.w r6, r6, #0xf \n\t" + "eor.w r6, r6, r2 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#480] \n\t" + "str.w r7, [r0,#484] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 14 + + // AC(c0 c1) + "ldrb.w r6, [r1,#13] \n\t" // load RC + + "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc + "and.w r6, r6, #0xf \n\t" + "eor.w r6, r6, r2 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#488] \n\t" + "str.w r7, [r0,#492] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 15 + + // AC(c0 c1) + "ldrb.w r6, [r1,#14] \n\t" // load RC + + "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc + "and.w r6, r6, #0xf \n\t" + "eor.w r6, r6, r2 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#496] \n\t" + "str.w r7, [r0,#500] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 16 + + // AC(c0 c1) + "ldrb.w r6, [r1,#15] \n\t" // load RC + + "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc + "and.w r6, r6, #0xf \n\t" + "eor.w r6, r6, r2 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#504] \n\t" + "str.w r7, [r0,#508] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 17 + + // AC(c0 c1) + "ldrb.w r6, [r1,#16] \n\t" // load RC + + "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc + "and.w r6, r6, #0xf \n\t" + "eor.w r6, r6, r2 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#512] \n\t" + "str.w r7, [r0,#516] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 18 + + // AC(c0 c1) + "ldrb.w r6, [r1,#17] \n\t" // load RC + + "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc + "and.w r6, r6, #0xf \n\t" + "eor.w r6, r6, r2 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#520] \n\t" + "str.w r7, [r0,#524] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 19 + + // AC(c0 c1) + "ldrb.w r6, [r1,#18] \n\t" // load RC + + "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc + "and.w r6, r6, #0xf \n\t" + "eor.w r6, r6, r2 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#528] \n\t" + "str.w r7, [r0,#532] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 20 + + // AC(c0 c1) + "ldrb.w r6, [r1,#19] \n\t" // load RC + + "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc + "and.w r6, r6, #0xf \n\t" + "eor.w r6, r6, r2 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#536] \n\t" + "str.w r7, [r0,#540] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 21 + + // AC(c0 c1) + "ldrb.w r6, [r1,#20] \n\t" // load RC + + "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc + "and.w r6, r6, #0xf \n\t" + "eor.w r6, r6, r2 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#544] \n\t" + "str.w r7, [r0,#548] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 22 + + // AC(c0 c1) + "ldrb.w r6, [r1,#21] \n\t" // load RC + + "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc + "and.w r6, r6, #0xf \n\t" + "eor.w r6, r6, r2 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#552] \n\t" + "str.w r7, [r0,#556] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 23 + + // AC(c0 c1) + "ldrb.w r6, [r1,#22] \n\t" // load RC + + "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc + "and.w r6, r6, #0xf \n\t" + "eor.w r6, r6, r2 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#560] \n\t" + "str.w r7, [r0,#564] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 24 + + // AC(c0 c1) + "ldrb.w r6, [r1,#23] \n\t" // load RC + + "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc + "and.w r6, r6, #0xf \n\t" + "eor.w r6, r6, r2 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#568] \n\t" + "str.w r7, [r0,#572] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 25 + + // AC(c0 c1) + "ldrb.w r6, [r1,#24] \n\t" // load RC + + "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc + "and.w r6, r6, #0xf \n\t" + "eor.w r6, r6, r2 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#576] \n\t" + "str.w r7, [r0,#580] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 26 + + // AC(c0 c1) + "ldrb.w r6, [r1,#25] \n\t" // load RC + + "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc + "and.w r6, r6, #0xf \n\t" + "eor.w r6, r6, r2 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#584] \n\t" + "str.w r7, [r0,#588] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 27 + + // AC(c0 c1) + "ldrb.w r6, [r1,#26] \n\t" // load RC + + "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc + "and.w r6, r6, #0xf \n\t" + "eor.w r6, r6, r2 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#592] \n\t" + "str.w r7, [r0,#596] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 28 + + // AC(c0 c1) + "ldrb.w r6, [r1,#27] \n\t" // load RC + + "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc + "and.w r6, r6, #0xf \n\t" + "eor.w r6, r6, r2 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#600] \n\t" + "str.w r7, [r0,#604] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 29 + + // AC(c0 c1) + "ldrb.w r6, [r1,#28] \n\t" // load RC + + "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc + "and.w r6, r6, #0xf \n\t" + "eor.w r6, r6, r2 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#608] \n\t" + "str.w r7, [r0,#612] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 30 + + // AC(c0 c1) + "ldrb.w r6, [r1,#29] \n\t" // load RC + + "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc + "and.w r6, r6, #0xf \n\t" + "eor.w r6, r6, r2 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#616] \n\t" + "str.w r7, [r0,#620] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 31 + + // AC(c0 c1) + "ldrb.w r6, [r1,#30] \n\t" // load RC + + "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc + "and.w r6, r6, #0xf \n\t" + "eor.w r6, r6, r2 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#624] \n\t" + "str.w r7, [r0,#628] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 32 + + // AC(c0 c1) + "ldrb.w r6, [r1,#31] \n\t" // load RC + + "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc + "and.w r6, r6, #0xf \n\t" + "eor.w r6, r6, r2 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#632] \n\t" + "str.w r7, [r0,#636] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 33 + + // AC(c0 c1) + "ldrb.w r6, [r1,#32] \n\t" // load RC + + "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc + "and.w r6, r6, #0xf \n\t" + "eor.w r6, r6, r2 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#640] \n\t" + "str.w r7, [r0,#644] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 34 + + // AC(c0 c1) + "ldrb.w r6, [r1,#33] \n\t" // load RC + + "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc + "and.w r6, r6, #0xf \n\t" + "eor.w r6, r6, r2 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#648] \n\t" + "str.w r7, [r0,#652] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 35 + + // AC(c0 c1) + "ldrb.w r6, [r1,#34] \n\t" // load RC + + "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc + "and.w r6, r6, #0xf \n\t" + "eor.w r6, r6, r2 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#656] \n\t" + "str.w r7, [r0,#660] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 36 + + // AC(c0 c1) + "ldrb.w r6, [r1,#35] \n\t" // load RC + + "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc + "and.w r6, r6, #0xf \n\t" + "eor.w r6, r6, r2 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#664] \n\t" + "str.w r7, [r0,#668] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 37 + + // AC(c0 c1) + "ldrb.w r6, [r1,#36] \n\t" // load RC + + "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc + "and.w r6, r6, #0xf \n\t" + "eor.w r6, r6, r2 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#672] \n\t" + "str.w r7, [r0,#676] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 38 + + // AC(c0 c1) + "ldrb.w r6, [r1,#37] \n\t" // load RC + + "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc + "and.w r6, r6, #0xf \n\t" + "eor.w r6, r6, r2 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#680] \n\t" + "str.w r7, [r0,#684] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 39 + + // AC(c0 c1) + "ldrb.w r6, [r1,#38] \n\t" // load RC + + "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc + "and.w r6, r6, #0xf \n\t" + "eor.w r6, r6, r2 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#688] \n\t" + "str.w r7, [r0,#692] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 40 + + // AC(c0 c1) + "ldrb.w r6, [r1,#39] \n\t" // load RC + + "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc + "and.w r6, r6, #0xf \n\t" + "eor.w r6, r6, r2 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#696] \n\t" + "str.w r7, [r0,#700] \n\t" + + // permutation + + // not need to calculate (not used) + + "ldmia.w sp!, {r4-r9} \n\t" + : + : [roundKeys] "r" (roundKeys), [pRC] "r" (pRC) + : "cc"); +} diff --git a/romulus/Implementations/crypto_aead/romulusm1+/armsrc_NEC/skinny_main.c b/romulus/Implementations/crypto_aead/romulusm1+/armsrc_NEC/skinny_main.c new file mode 100644 index 0000000..e266958 --- /dev/null +++ b/romulus/Implementations/crypto_aead/romulusm1+/armsrc_NEC/skinny_main.c @@ -0,0 +1,3462 @@ +/****************************************************************************** + * Copyright (c) 2020, NEC Corporation. + * + * THIS CODE IS FURNISHED TO YOU "AS IS" WITHOUT WARRANTY OF ANY KIND. + * + *****************************************************************************/ + +/* + * SKINNY-128-384 + * + * ART(TK1) -> store + * load AC(c0 c1) ^ TK3 ^ TK2 + * load TK1 + * calc AC(c0 c1) ^ TK3 ^ TK2 ^ TK1 -> use at (AC->ART) + * SC->SR->(AC->ART)->MC + * + * number of rounds : 40 + */ + +#include "skinny.h" + +/* + * S-BOX + */ +unsigned char SBOX[512] += { + // Original + 0x65, 0x4c, 0x6a, 0x42, 0x4b, 0x63, 0x43, 0x6b, 0x55, 0x75, 0x5a, 0x7a, 0x53, 0x73, 0x5b, 0x7b, + 0x35, 0x8c, 0x3a, 0x81, 0x89, 0x33, 0x80, 0x3b, 0x95, 0x25, 0x98, 0x2a, 0x90, 0x23, 0x99, 0x2b, + 0xe5, 0xcc, 0xe8, 0xc1, 0xc9, 0xe0, 0xc0, 0xe9, 0xd5, 0xf5, 0xd8, 0xf8, 0xd0, 0xf0, 0xd9, 0xf9, + 0xa5, 0x1c, 0xa8, 0x12, 0x1b, 0xa0, 0x13, 0xa9, 0x05, 0xb5, 0x0a, 0xb8, 0x03, 0xb0, 0x0b, 0xb9, + 0x32, 0x88, 0x3c, 0x85, 0x8d, 0x34, 0x84, 0x3d, 0x91, 0x22, 0x9c, 0x2c, 0x94, 0x24, 0x9d, 0x2d, + 0x62, 0x4a, 0x6c, 0x45, 0x4d, 0x64, 0x44, 0x6d, 0x52, 0x72, 0x5c, 0x7c, 0x54, 0x74, 0x5d, 0x7d, + 0xa1, 0x1a, 0xac, 0x15, 0x1d, 0xa4, 0x14, 0xad, 0x02, 0xb1, 0x0c, 0xbc, 0x04, 0xb4, 0x0d, 0xbd, + 0xe1, 0xc8, 0xec, 0xc5, 0xcd, 0xe4, 0xc4, 0xed, 0xd1, 0xf1, 0xdc, 0xfc, 0xd4, 0xf4, 0xdd, 0xfd, + 0x36, 0x8e, 0x38, 0x82, 0x8b, 0x30, 0x83, 0x39, 0x96, 0x26, 0x9a, 0x28, 0x93, 0x20, 0x9b, 0x29, + 0x66, 0x4e, 0x68, 0x41, 0x49, 0x60, 0x40, 0x69, 0x56, 0x76, 0x58, 0x78, 0x50, 0x70, 0x59, 0x79, + 0xa6, 0x1e, 0xaa, 0x11, 0x19, 0xa3, 0x10, 0xab, 0x06, 0xb6, 0x08, 0xba, 0x00, 0xb3, 0x09, 0xbb, + 0xe6, 0xce, 0xea, 0xc2, 0xcb, 0xe3, 0xc3, 0xeb, 0xd6, 0xf6, 0xda, 0xfa, 0xd3, 0xf3, 0xdb, 0xfb, + 0x31, 0x8a, 0x3e, 0x86, 0x8f, 0x37, 0x87, 0x3f, 0x92, 0x21, 0x9e, 0x2e, 0x97, 0x27, 0x9f, 0x2f, + 0x61, 0x48, 0x6e, 0x46, 0x4f, 0x67, 0x47, 0x6f, 0x51, 0x71, 0x5e, 0x7e, 0x57, 0x77, 0x5f, 0x7f, + 0xa2, 0x18, 0xae, 0x16, 0x1f, 0xa7, 0x17, 0xaf, 0x01, 0xb2, 0x0e, 0xbe, 0x07, 0xb7, 0x0f, 0xbf, + 0xe2, 0xca, 0xee, 0xc6, 0xcf, 0xe7, 0xc7, 0xef, 0xd2, 0xf2, 0xde, 0xfe, 0xd7, 0xf7, 0xdf, 0xff, + + // Original ^ c2(0x02) + 0x67, 0x4e, 0x68, 0x40, 0x49, 0x61, 0x41, 0x69, 0x57, 0x77, 0x58, 0x78, 0x51, 0x71, 0x59, 0x79, + 0x37, 0x8e, 0x38, 0x83, 0x8b, 0x31, 0x82, 0x39, 0x97, 0x27, 0x9a, 0x28, 0x92, 0x21, 0x9b, 0x29, + 0xe7, 0xce, 0xea, 0xc3, 0xcb, 0xe2, 0xc2, 0xeb, 0xd7, 0xf7, 0xda, 0xfa, 0xd2, 0xf2, 0xdb, 0xfb, + 0xa7, 0x1e, 0xaa, 0x10, 0x19, 0xa2, 0x11, 0xab, 0x07, 0xb7, 0x08, 0xba, 0x01, 0xb2, 0x09, 0xbb, + 0x30, 0x8a, 0x3e, 0x87, 0x8f, 0x36, 0x86, 0x3f, 0x93, 0x20, 0x9e, 0x2e, 0x96, 0x26, 0x9f, 0x2f, + 0x60, 0x48, 0x6e, 0x47, 0x4f, 0x66, 0x46, 0x6f, 0x50, 0x70, 0x5e, 0x7e, 0x56, 0x76, 0x5f, 0x7f, + 0xa3, 0x18, 0xae, 0x17, 0x1f, 0xa6, 0x16, 0xaf, 0x00, 0xb3, 0x0e, 0xbe, 0x06, 0xb6, 0x0f, 0xbf, + 0xe3, 0xca, 0xee, 0xc7, 0xcf, 0xe6, 0xc6, 0xef, 0xd3, 0xf3, 0xde, 0xfe, 0xd6, 0xf6, 0xdf, 0xff, + 0x34, 0x8c, 0x3a, 0x80, 0x89, 0x32, 0x81, 0x3b, 0x94, 0x24, 0x98, 0x2a, 0x91, 0x22, 0x99, 0x2b, + 0x64, 0x4c, 0x6a, 0x43, 0x4b, 0x62, 0x42, 0x6b, 0x54, 0x74, 0x5a, 0x7a, 0x52, 0x72, 0x5b, 0x7b, + 0xa4, 0x1c, 0xa8, 0x13, 0x1b, 0xa1, 0x12, 0xa9, 0x04, 0xb4, 0x0a, 0xb8, 0x02, 0xb1, 0x0b, 0xb9, + 0xe4, 0xcc, 0xe8, 0xc0, 0xc9, 0xe1, 0xc1, 0xe9, 0xd4, 0xf4, 0xd8, 0xf8, 0xd1, 0xf1, 0xd9, 0xf9, + 0x33, 0x88, 0x3c, 0x84, 0x8d, 0x35, 0x85, 0x3d, 0x90, 0x23, 0x9c, 0x2c, 0x95, 0x25, 0x9d, 0x2d, + 0x63, 0x4a, 0x6c, 0x44, 0x4d, 0x65, 0x45, 0x6d, 0x53, 0x73, 0x5c, 0x7c, 0x55, 0x75, 0x5d, 0x7d, + 0xa0, 0x1a, 0xac, 0x14, 0x1d, 0xa5, 0x15, 0xad, 0x03, 0xb0, 0x0c, 0xbc, 0x05, 0xb5, 0x0d, 0xbd, + 0xe0, 0xc8, 0xec, 0xc4, 0xcd, 0xe5, 0xc5, 0xed, 0xd0, 0xf0, 0xdc, 0xfc, 0xd5, 0xf5, 0xdd, 0xfd, +}; + +/* + * Round Constants + */ +unsigned char RC[56] += { + 0x01, 0x03, 0x07, 0x0F, 0x1F, 0x3E, 0x3D, 0x3B, + 0x37, 0x2F, 0x1E, 0x3C, 0x39, 0x33, 0x27, 0x0E, + 0x1D, 0x3A, 0x35, 0x2B, 0x16, 0x2C, 0x18, 0x30, + 0x21, 0x02, 0x05, 0x0B, 0x17, 0x2E, 0x1C, 0x38, + 0x31, 0x23, 0x06, 0x0D, 0x1B, 0x36, 0x2D, 0x1A, + 0x34, 0x29, 0x12, 0x24, 0x08, 0x11, 0x22, 0x04, + 0x09, 0x13, 0x26, 0x0c, 0x19, 0x32, 0x25, 0x0a,}; + +extern void Encrypt(unsigned char *block, unsigned char *roundKeys, unsigned char *pSBOX) __attribute__((noinline)); +extern void RunEncryptionKeyScheduleTK2(unsigned char *roundKeys) __attribute__((noinline)); +extern void RunEncryptionKeyScheduleTK3(unsigned char *roundKeys, unsigned char *pRC) __attribute__((noinline)); + +void skinny_128_384_enc123_12 (unsigned char* input, skinny_ctrl* pskinny_ctrl, unsigned char* CNT, unsigned char* T, const unsigned char* K) +{ + *((unsigned int *)&pskinny_ctrl->roundKeys[0] ) = *((unsigned int *)&CNT[0]); + *((unsigned int *)&pskinny_ctrl->roundKeys[4] ) = *((unsigned int *)&CNT[4]); + *((unsigned int *)&pskinny_ctrl->roundKeys[16]) = *((unsigned int *)&T[0]); + *((unsigned int *)&pskinny_ctrl->roundKeys[20]) = *((unsigned int *)&T[4]); + *((unsigned int *)&pskinny_ctrl->roundKeys[24]) = *((unsigned int *)&T[8]); + *((unsigned int *)&pskinny_ctrl->roundKeys[28]) = *((unsigned int *)&T[12]); + *((unsigned int *)&pskinny_ctrl->roundKeys[32]) = *((unsigned int *)&K[0]); + *((unsigned int *)&pskinny_ctrl->roundKeys[36]) = *((unsigned int *)&K[4]); + *((unsigned int *)&pskinny_ctrl->roundKeys[40]) = *((unsigned int *)&K[8]); + *((unsigned int *)&pskinny_ctrl->roundKeys[44]) = *((unsigned int *)&K[12]); + + RunEncryptionKeyScheduleTK3(pskinny_ctrl->roundKeys, RC); + RunEncryptionKeyScheduleTK2(pskinny_ctrl->roundKeys); + Encrypt(input, pskinny_ctrl->roundKeys, SBOX); + + pskinny_ctrl->func_skinny_128_384_enc = skinny_128_384_enc12_12; +} + +void skinny_128_384_enc12_12 (unsigned char* input, skinny_ctrl* pskinny_ctrl, unsigned char* CNT, unsigned char* T, const unsigned char* K) +{ + (void)K; + + *((unsigned int *)&pskinny_ctrl->roundKeys[0] ) = *((unsigned int *)&CNT[0]); + *((unsigned int *)&pskinny_ctrl->roundKeys[4] ) = *((unsigned int *)&CNT[4]); + *((unsigned int *)&pskinny_ctrl->roundKeys[16]) = *((unsigned int *)&T[0]); + *((unsigned int *)&pskinny_ctrl->roundKeys[20]) = *((unsigned int *)&T[4]); + *((unsigned int *)&pskinny_ctrl->roundKeys[24]) = *((unsigned int *)&T[8]); + *((unsigned int *)&pskinny_ctrl->roundKeys[28]) = *((unsigned int *)&T[12]); + + RunEncryptionKeyScheduleTK2(pskinny_ctrl->roundKeys); + Encrypt(input, pskinny_ctrl->roundKeys, SBOX); +} + +extern void skinny_128_384_enc1_1 (unsigned char* input, skinny_ctrl* pskinny_ctrl, unsigned char* CNT, unsigned char* T, const unsigned char* K) +{ + (void)T; + (void)K; + + *((unsigned int *)&pskinny_ctrl->roundKeys[0] ) = *((unsigned int *)&CNT[0]); + *((unsigned int *)&pskinny_ctrl->roundKeys[4] ) = *((unsigned int *)&CNT[4]); + + Encrypt(input, pskinny_ctrl->roundKeys, SBOX); +} + +__attribute__((aligned(4))) +void Encrypt(unsigned char *block, unsigned char *roundKeys, unsigned char *pSBOX) +{ + // r0 : ponits to plaintext + // r1 : points to roundKeys(& masterKey) + // r2 : points to SBOX + // r3-r6 : cipher state + // r7-r12: temp use + // r14 : temp use + asm volatile( + "stmdb sp!, {r4-r12,r14} \n\t" + "stmdb.w sp!, {r0} \n\t" // push store pointer + +// ART(TK1) + + "ldm.w r1, {r3-r4} \n\t" // load master key + + // round 1-2 + +// // round key store(do not need) +// "str.w r3, [r1,#0] \n\t" +// "str.w r4, [r1,#4] \n\t" + + // premutation + + // r3 ( k3 k2 k1 k0) --- --- --- --- + // r4 ( k7 k6 k5 k4) --- --- --- --- + // r5 (--- --- --- ---) -----> k5 k0 k7 k1 + // r6 (--- --- --- ---) k3 k4 k6 k2 +#ifdef STM32F4 // for Cortex-M4 + "ror.w r5,r4, #16 \n\t" // r5( k5 k4 k7 k6) + "bfi.w r5,r3, #16,#8 \n\t" // r5( k5 k0 k7 k6) + "pkhtb.w r6,r3, r3, asr #16 \n\t" // r6( k3 k2 k3 k2) + "ror.w r3, #8 \n\t" // r3( k0 k3 k2 k1) + "bfi.w r5,r3, #0,#8 \n\t" // r5( k5 k4 k2 k6) + "bfi.w r6,r4, #16,#8 \n\t" // r6( k3 k4 k3 k2) + "ror.w r4,#16 \n\t" // r4( k5 k4 k7 k6) + "bfi.w r6,r4, #8,#8 \n\t" // r6( k3 k4 k6 k2) +#else // for Cortex-M3 + "rev.w r5, r4 \n\t" // r5( k4 k5 k6 k7) + "lsl.w r5, r5, #8 \n\t" // r5( k5 k6 k7 ---) + "bfi.w r5,r3, #16,#8 \n\t" // r5( k5 k0 k7 ---) + "lsr.w r3, r3, #8 \n\t" // r3(--- k3 k2 k1) + "bfi.w r5,r3, #0, #8 \n\t" // r5( k5 k0 k7 k1) + "rev16.w r6, r3 \n\t" // r6( k3 --- k1 k2) + "bfi.w r6,r4, #16,#8 \n\t" // r6( k3 k4 k1 k2) + "lsr.w r4, r4, #16 \n\t" // r4(-- --- k7 k6) + "bfi.w r6,r4, #8, #8 \n\t" // r6( k3 k4 k6 k2) +#endif + // round 3-4 + + // round key store + "str.w r5, [r1,#8] \n\t" + "str.w r6, [r1,#12] \n\t" + + // premutation + + // r3 (--- --- --- ---) k5 k0 k7 k1 + // r4 (--- --- --- ---) k3 k4 k6 k2 + // r5 ( k3 k2 k1 k0) -----> --- --- --- --- + // r6 ( k7 k6 k5 k4) --- --- --- --- +#ifdef STM32F4 // for Cortex-M4 + "ror.w r3,r6, #16 \n\t" // r3( k5 k4 k7 k6) + "bfi.w r3,r5, #16,#8 \n\t" // r3( k5 k0 k7 k6) + "pkhtb.w r4,r5, r5, asr #16 \n\t" // r4( k3 k2 k3 k2) + "ror.w r5, #8 \n\t" // r5( k0 k3 k2 k1) + "bfi.w r3,r5, #0,#8 \n\t" // r3( k5 k4 k2 k6) + "bfi.w r4,r6, #16,#8 \n\t" // r4( k3 k4 k3 k2) + "ror.w r6,#16 \n\t" // r6( k5 k4 k7 k6) + "bfi.w r4,r6, #8,#8 \n\t" // r4( k3 k4 k6 k2) +#else // for Cortex-M3 + "rev.w r3, r6 \n\t" // r3( k4 k5 k6 k7) + "lsl.w r3, r3, #8 \n\t" // r3( k5 k6 k7 ---) + "bfi.w r3,r5, #16,#8 \n\t" // r3( k5 k0 k7 ---) + "lsr.w r5, r5, #8 \n\t" // r5(--- k3 k2 k1) + "bfi.w r3,r5, #0, #8 \n\t" // r3( k5 k0 k7 k1) + "rev16.w r4, r5 \n\t" // r4( k3 --- k1 k2) + "bfi.w r4,r6, #16,#8 \n\t" // r4( k3 k4 k1 k2) + "lsr.w r6, r6, #16 \n\t" // r6(-- --- k7 k6) + "bfi.w r4,r6, #8, #8 \n\t" // r4( k3 k4 k6 k2) +#endif + + // round 5-6 + + // round key store + "str.w r3, [r1,#16] \n\t" + "str.w r4, [r1,#20] \n\t" + + // premutation + + // r3 ( k3 k2 k1 k0) --- --- --- --- + // r4 ( k7 k6 k5 k4) --- --- --- --- + // r5 (--- --- --- ---) -----> k5 k0 k7 k1 + // r6 (--- --- --- ---) k3 k4 k6 k2 +#ifdef STM32F4 // for Cortex-M4 + "ror.w r5,r4, #16 \n\t" // r5( k5 k4 k7 k6) + "bfi.w r5,r3, #16,#8 \n\t" // r5( k5 k0 k7 k6) + "pkhtb.w r6,r3, r3, asr #16 \n\t" // r6( k3 k2 k3 k2) + "ror.w r3, #8 \n\t" // r3( k0 k3 k2 k1) + "bfi.w r5,r3, #0,#8 \n\t" // r5( k5 k4 k2 k6) + "bfi.w r6,r4, #16,#8 \n\t" // r6( k3 k4 k3 k2) + "ror.w r4,#16 \n\t" // r4( k5 k4 k7 k6) + "bfi.w r6,r4, #8,#8 \n\t" // r6( k3 k4 k6 k2) +#else // for Cortex-M3 + "rev.w r5, r4 \n\t" // r5( k4 k5 k6 k7) + "lsl.w r5, r5, #8 \n\t" // r5( k5 k6 k7 ---) + "bfi.w r5,r3, #16,#8 \n\t" // r5( k5 k0 k7 ---) + "lsr.w r3, r3, #8 \n\t" // r3(--- k3 k2 k1) + "bfi.w r5,r3, #0, #8 \n\t" // r5( k5 k0 k7 k1) + "rev16.w r6, r3 \n\t" // r6( k3 --- k1 k2) + "bfi.w r6,r4, #16,#8 \n\t" // r6( k3 k4 k1 k2) + "lsr.w r4, r4, #16 \n\t" // r4(-- --- k7 k6) + "bfi.w r6,r4, #8, #8 \n\t" // r6( k3 k4 k6 k2) +#endif + // round 7-8 + + // round key store + "str.w r5, [r1,#24] \n\t" + "str.w r6, [r1,#28] \n\t" + + // premutation + + // r3 (--- --- --- ---) k5 k0 k7 k1 + // r4 (--- --- --- ---) k3 k4 k6 k2 + // r5 ( k3 k2 k1 k0) -----> --- --- --- --- + // r6 ( k7 k6 k5 k4) --- --- --- --- +#ifdef STM32F4 // for Cortex-M4 + "ror.w r3,r6, #16 \n\t" // r3( k5 k4 k7 k6) + "bfi.w r3,r5, #16,#8 \n\t" // r3( k5 k0 k7 k6) + "pkhtb.w r4,r5, r5, asr #16 \n\t" // r4( k3 k2 k3 k2) + "ror.w r5, #8 \n\t" // r5( k0 k3 k2 k1) + "bfi.w r3,r5, #0,#8 \n\t" // r3( k5 k4 k2 k6) + "bfi.w r4,r6, #16,#8 \n\t" // r4( k3 k4 k3 k2) + "ror.w r6,#16 \n\t" // r6( k5 k4 k7 k6) + "bfi.w r4,r6, #8,#8 \n\t" // r4( k3 k4 k6 k2) +#else // for Cortex-M3 + "rev.w r3, r6 \n\t" // r3( k4 k5 k6 k7) + "lsl.w r3, r3, #8 \n\t" // r3( k5 k6 k7 ---) + "bfi.w r3,r5, #16,#8 \n\t" // r3( k5 k0 k7 ---) + "lsr.w r5, r5, #8 \n\t" // r5(--- k3 k2 k1) + "bfi.w r3,r5, #0, #8 \n\t" // r3( k5 k0 k7 k1) + "rev16.w r4, r5 \n\t" // r4( k3 --- k1 k2) + "bfi.w r4,r6, #16,#8 \n\t" // r4( k3 k4 k1 k2) + "lsr.w r6, r6, #16 \n\t" // r6(-- --- k7 k6) + "bfi.w r4,r6, #8, #8 \n\t" // r4( k3 k4 k6 k2) +#endif + + // round 9-10 + + // round key store + "str.w r3, [r1,#32] \n\t" + "str.w r4, [r1,#36] \n\t" + + // premutation + + // r3 ( k3 k2 k1 k0) --- --- --- --- + // r4 ( k7 k6 k5 k4) --- --- --- --- + // r5 (--- --- --- ---) -----> k5 k0 k7 k1 + // r6 (--- --- --- ---) k3 k4 k6 k2 +#ifdef STM32F4 // for Cortex-M4 + "ror.w r5,r4, #16 \n\t" // r5( k5 k4 k7 k6) + "bfi.w r5,r3, #16,#8 \n\t" // r5( k5 k0 k7 k6) + "pkhtb.w r6,r3, r3, asr #16 \n\t" // r6( k3 k2 k3 k2) + "ror.w r3, #8 \n\t" // r3( k0 k3 k2 k1) + "bfi.w r5,r3, #0,#8 \n\t" // r5( k5 k4 k2 k6) + "bfi.w r6,r4, #16,#8 \n\t" // r6( k3 k4 k3 k2) + "ror.w r4,#16 \n\t" // r4( k5 k4 k7 k6) + "bfi.w r6,r4, #8,#8 \n\t" // r6( k3 k4 k6 k2) +#else // for Cortex-M3 + "rev.w r5, r4 \n\t" // r5( k4 k5 k6 k7) + "lsl.w r5, r5, #8 \n\t" // r5( k5 k6 k7 ---) + "bfi.w r5,r3, #16,#8 \n\t" // r5( k5 k0 k7 ---) + "lsr.w r3, r3, #8 \n\t" // r3(--- k3 k2 k1) + "bfi.w r5,r3, #0, #8 \n\t" // r5( k5 k0 k7 k1) + "rev16.w r6, r3 \n\t" // r6( k3 --- k1 k2) + "bfi.w r6,r4, #16,#8 \n\t" // r6( k3 k4 k1 k2) + "lsr.w r4, r4, #16 \n\t" // r4(-- --- k7 k6) + "bfi.w r6,r4, #8, #8 \n\t" // r6( k3 k4 k6 k2) +#endif + // round 11-12 + + // round key store + "str.w r5, [r1,#40] \n\t" + "str.w r6, [r1,#44] \n\t" + + // premutation + + // r3 (--- --- --- ---) k5 k0 k7 k1 + // r4 (--- --- --- ---) k3 k4 k6 k2 + // r5 ( k3 k2 k1 k0) -----> --- --- --- --- + // r6 ( k7 k6 k5 k4) --- --- --- --- +#ifdef STM32F4 // for Cortex-M4 + "ror.w r3,r6, #16 \n\t" // r3( k5 k4 k7 k6) + "bfi.w r3,r5, #16,#8 \n\t" // r3( k5 k0 k7 k6) + "pkhtb.w r4,r5, r5, asr #16 \n\t" // r4( k3 k2 k3 k2) + "ror.w r5, #8 \n\t" // r5( k0 k3 k2 k1) + "bfi.w r3,r5, #0,#8 \n\t" // r3( k5 k4 k2 k6) + "bfi.w r4,r6, #16,#8 \n\t" // r4( k3 k4 k3 k2) + "ror.w r6,#16 \n\t" // r6( k5 k4 k7 k6) + "bfi.w r4,r6, #8,#8 \n\t" // r4( k3 k4 k6 k2) +#else // for Cortex-M3 + "rev.w r3, r6 \n\t" // r3( k4 k5 k6 k7) + "lsl.w r3, r3, #8 \n\t" // r3( k5 k6 k7 ---) + "bfi.w r3,r5, #16,#8 \n\t" // r3( k5 k0 k7 ---) + "lsr.w r5, r5, #8 \n\t" // r5(--- k3 k2 k1) + "bfi.w r3,r5, #0, #8 \n\t" // r3( k5 k0 k7 k1) + "rev16.w r4, r5 \n\t" // r4( k3 --- k1 k2) + "bfi.w r4,r6, #16,#8 \n\t" // r4( k3 k4 k1 k2) + "lsr.w r6, r6, #16 \n\t" // r6(-- --- k7 k6) + "bfi.w r4,r6, #8, #8 \n\t" // r4( k3 k4 k6 k2) +#endif + + // round 13-14 + + // round key store + "str.w r3, [r1,#48] \n\t" + "str.w r4, [r1,#52] \n\t" + + // premutation + + // r3 ( k3 k2 k1 k0) --- --- --- --- + // r4 ( k7 k6 k5 k4) --- --- --- --- + // r5 (--- --- --- ---) -----> k5 k0 k7 k1 + // r6 (--- --- --- ---) k3 k4 k6 k2 +#ifdef STM32F4 // for Cortex-M4 + "ror.w r5,r4, #16 \n\t" // r5( k5 k4 k7 k6) + "bfi.w r5,r3, #16,#8 \n\t" // r5( k5 k0 k7 k6) + "pkhtb.w r6,r3, r3, asr #16 \n\t" // r6( k3 k2 k3 k2) + "ror.w r3, #8 \n\t" // r3( k0 k3 k2 k1) + "bfi.w r5,r3, #0,#8 \n\t" // r5( k5 k4 k2 k6) + "bfi.w r6,r4, #16,#8 \n\t" // r6( k3 k4 k3 k2) + "ror.w r4,#16 \n\t" // r4( k5 k4 k7 k6) + "bfi.w r6,r4, #8,#8 \n\t" // r6( k3 k4 k6 k2) +#else // for Cortex-M3 + "rev.w r5, r4 \n\t" // r5( k4 k5 k6 k7) + "lsl.w r5, r5, #8 \n\t" // r5( k5 k6 k7 ---) + "bfi.w r5,r3, #16,#8 \n\t" // r5( k5 k0 k7 ---) + "lsr.w r3, r3, #8 \n\t" // r3(--- k3 k2 k1) + "bfi.w r5,r3, #0, #8 \n\t" // r5( k5 k0 k7 k1) + "rev16.w r6, r3 \n\t" // r6( k3 --- k1 k2) + "bfi.w r6,r4, #16,#8 \n\t" // r6( k3 k4 k1 k2) + "lsr.w r4, r4, #16 \n\t" // r4(-- --- k7 k6) + "bfi.w r6,r4, #8, #8 \n\t" // r6( k3 k4 k6 k2) +#endif + // round 15-16 + + // round key store + "str.w r5, [r1,#56] \n\t" + "str.w r6, [r1,#60] \n\t" + + // premutation + + // not need to calculate (not used) + +// SC->(AC->ART)->SR->MC + + "add.w r14, r2, #256 \n\t" // point to SBOX ^ c2(0x02) + + "ldm.w r0, {r3-r6} \n\t" // load plaintext + // r0 now free to overwrite + + // round 1 + + // SubCell+ShiftRow+AC(c2) + // r3 (s3 s2 s1 s0) + // r4 (s7 s6 s5 s4) + // r5 (s11 s10 s9 s8) + // r6 (s15 s14 s13 s12) + + // 1st-2nd line + // r3(s3 s2 s1 s0) + "uxtb.w r9, r3, ror #24 \n\t" // s3 + "uxtb.w r8, r3, ror #16 \n\t" // s2 + "uxtb.w r7, r3, ror #8 \n\t" // s1 + "uxtb.w r3, r3 \n\t" // s0 + // r4(s6 s5 s4 s7) + "uxtb.w r12, r4, ror #16 \n\t" // s6 + "uxtb.w r11, r4, ror #8 \n\t" // s5 + "uxtb.w r10, r4 \n\t" // s4 + "uxtb.w r4, r4, ror #24 \n\t" // s7 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "eor.w r3, r3, r7, lsl #8 \n\t" + "eor.w r3, r3, r8, lsl #16 \n\t" + "eor.w r3, r3, r9, lsl #24 \n\t" + "eor.w r4, r4, r10, lsl #8 \n\t" + "eor.w r4, r4, r11, lsl #16 \n\t" + "eor.w r4, r4, r12, lsl #24 \n\t" + + // 3rd-4th line + // r5(s9 s8 s11 s10) + "uxtb.w r9, r5, ror #8 \n\t" // s9 + "uxtb.w r8, r5 \n\t" // s8 + "uxtb.w r7, r5, ror #24 \n\t" // s11 + "uxtb.w r5, r5, ror #16 \n\t" // s10 + // r6(s12 s15 s14 s13) + "uxtb.w r12, r6 \n\t" // s12 + "uxtb.w r11, r6, ror #24 \n\t" // s15 + "uxtb.w r10, r6, ror #16 \n\t" // s14 + "uxtb.w r6, r6, ror #8 \n\t" // s13 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "eor.w r5, r5, r7, lsl #8 \n\t" + "eor.w r5, r5, r8, lsl #16 \n\t" + "eor.w r5, r5, r9, lsl #24 \n\t" + "eor.w r6, r6, r10, lsl #8 \n\t" + "eor.w r6, r6, r11, lsl #16 \n\t" + "eor.w r6, r6, r12, lsl #24 \n\t" + + // AddRoundKey and AddRoundConst(from roundKeys) + "ldr.w r9, [r1,#0] \n\t" // load TK1 + "ldr.w r10, [r1,#4] \n\t" // load TK1 + "ldr.w r11, [r1,#64] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "ldr.w r12, [r1,#68] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + + "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) + "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) + // r8( s9 s8 s11 s10) + // r6(s12 s14 s14 s13) + + // MixColumn + "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 + "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 + "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 + // r8 ----------------> r8 + + // round 2 + + // SubCell+ShiftRow+AC(c2) + // r7 (s3 s2 s1 s0) + // r8 (s7 s6 s5 s4) + // r9 (s11 s10 s9 s8) + // r10(s15 s14 s13 s12) + + // 1st-2nd line + // r7(s3 s2 s1 s0) + "uxtb.w r5, r7, ror #24 \n\t" // s3 + "uxtb.w r4, r7, ror #16 \n\t" // s2 + "uxtb.w r3, r7, ror #8 \n\t" // s1 + "uxtb.w r7, r7 \n\t" // s0 + // r8(s6 s5 s4 s7) + "uxtb.w r12, r8, ror #16 \n\t" // s6 + "uxtb.w r11, r8, ror #8 \n\t" // s5 + "uxtb.w r6, r8 \n\t" // s4 + "uxtb.w r8, r8, ror #24 \n\t" // s7 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldr.w r0, [r1,#72] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r7, r7, r3, lsl #8 \n\t" + "eor.w r7, r7, r4, lsl #16 \n\t" + "eor.w r7, r7, r5, lsl #24 \n\t" + "eor.w r8, r8, r6, lsl #8 \n\t" + "eor.w r8, r8, r11, lsl #16 \n\t" + "eor.w r8, r8, r12, lsl #24 \n\t" + "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) + + // 3rd-4th line + // r9(s9 s8 s11 s10) + "uxtb.w r5, r9, ror #8 \n\t" // s9 + "uxtb.w r7, r9 \n\t" // s8 + "uxtb.w r3, r9, ror #24 \n\t" // s11 + "uxtb.w r9, r9, ror #16 \n\t" // s10 + // r10(s12 s15 s14 s13) + "uxtb.w r12, r10 \n\t" // s12 + "uxtb.w r11, r10, ror #24 \n\t" // s15 + "uxtb.w r6, r10, ror #16 \n\t" // s14 + "uxtb.w r10, r10, ror #8 \n\t" // s13 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldr.w r0, [r1,#76] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r9, r9, r3, lsl #8 \n\t" + "eor.w r9, r9, r7, lsl #16 \n\t" + "eor.w r9, r9, r5, lsl #24 \n\t" + "eor.w r10, r10, r6, lsl #8 \n\t" + "eor.w r10, r10, r11, lsl #16 \n\t" + "eor.w r10, r10, r12, lsl #24 \n\t" + "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) + + // AddRoundKey and AddRoundConst(from roundKeys) + + // r9( s9 s8 s11 s10) + // r10(s12 s14 s14 s13) + + // MixColumn + "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 + "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 + "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 + // r4 ----------------> r4 + // round 3 + + // SubCell+ShiftRow+AC(c2) + // r3 (s3 s2 s1 s0) + // r4 (s7 s6 s5 s4) + // r5 (s11 s10 s9 s8) + // r6 (s15 s14 s13 s12) + + // 1st-2nd line + // r3(s3 s2 s1 s0) + "uxtb.w r9, r3, ror #24 \n\t" // s3 + "uxtb.w r8, r3, ror #16 \n\t" // s2 + "uxtb.w r7, r3, ror #8 \n\t" // s1 + "uxtb.w r3, r3 \n\t" // s0 + // r4(s6 s5 s4 s7) + "uxtb.w r12, r4, ror #16 \n\t" // s6 + "uxtb.w r11, r4, ror #8 \n\t" // s5 + "uxtb.w r10, r4 \n\t" // s4 + "uxtb.w r4, r4, ror #24 \n\t" // s7 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "eor.w r3, r3, r7, lsl #8 \n\t" + "eor.w r3, r3, r8, lsl #16 \n\t" + "eor.w r3, r3, r9, lsl #24 \n\t" + "eor.w r4, r4, r10, lsl #8 \n\t" + "eor.w r4, r4, r11, lsl #16 \n\t" + "eor.w r4, r4, r12, lsl #24 \n\t" + + // 3rd-4th line + // r5(s9 s8 s11 s10) + "uxtb.w r9, r5, ror #8 \n\t" // s9 + "uxtb.w r8, r5 \n\t" // s8 + "uxtb.w r7, r5, ror #24 \n\t" // s11 + "uxtb.w r5, r5, ror #16 \n\t" // s10 + // r6(s12 s15 s14 s13) + "uxtb.w r12, r6 \n\t" // s12 + "uxtb.w r11, r6, ror #24 \n\t" // s15 + "uxtb.w r10, r6, ror #16 \n\t" // s14 + "uxtb.w r6, r6, ror #8 \n\t" // s13 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "eor.w r5, r5, r7, lsl #8 \n\t" + "eor.w r5, r5, r8, lsl #16 \n\t" + "eor.w r5, r5, r9, lsl #24 \n\t" + "eor.w r6, r6, r10, lsl #8 \n\t" + "eor.w r6, r6, r11, lsl #16 \n\t" + "eor.w r6, r6, r12, lsl #24 \n\t" + + // AddRoundKey and AddRoundConst(from roundKeys) + "ldr.w r9, [r1,#8] \n\t" // load TK1 + "ldr.w r10, [r1,#12] \n\t" // load TK1 + "ldr.w r11, [r1,#80] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "ldr.w r12, [r1,#84] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + + "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) + "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) + // r8( s9 s8 s11 s10) + // r6(s12 s14 s14 s13) + + // MixColumn + "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 + "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 + "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 + // r8 ----------------> r8 + + // round 4 + + // SubCell+ShiftRow+AC(c2) + // r7 (s3 s2 s1 s0) + // r8 (s7 s6 s5 s4) + // r9 (s11 s10 s9 s8) + // r10(s15 s14 s13 s12) + + // 1st-2nd line + // r7(s3 s2 s1 s0) + "uxtb.w r5, r7, ror #24 \n\t" // s3 + "uxtb.w r4, r7, ror #16 \n\t" // s2 + "uxtb.w r3, r7, ror #8 \n\t" // s1 + "uxtb.w r7, r7 \n\t" // s0 + // r8(s6 s5 s4 s7) + "uxtb.w r12, r8, ror #16 \n\t" // s6 + "uxtb.w r11, r8, ror #8 \n\t" // s5 + "uxtb.w r6, r8 \n\t" // s4 + "uxtb.w r8, r8, ror #24 \n\t" // s7 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldr.w r0, [r1,#88] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r7, r7, r3, lsl #8 \n\t" + "eor.w r7, r7, r4, lsl #16 \n\t" + "eor.w r7, r7, r5, lsl #24 \n\t" + "eor.w r8, r8, r6, lsl #8 \n\t" + "eor.w r8, r8, r11, lsl #16 \n\t" + "eor.w r8, r8, r12, lsl #24 \n\t" + "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) + + // 3rd-4th line + // r9(s9 s8 s11 s10) + "uxtb.w r5, r9, ror #8 \n\t" // s9 + "uxtb.w r7, r9 \n\t" // s8 + "uxtb.w r3, r9, ror #24 \n\t" // s11 + "uxtb.w r9, r9, ror #16 \n\t" // s10 + // r10(s12 s15 s14 s13) + "uxtb.w r12, r10 \n\t" // s12 + "uxtb.w r11, r10, ror #24 \n\t" // s15 + "uxtb.w r6, r10, ror #16 \n\t" // s14 + "uxtb.w r10, r10, ror #8 \n\t" // s13 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldr.w r0, [r1,#92] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r9, r9, r3, lsl #8 \n\t" + "eor.w r9, r9, r7, lsl #16 \n\t" + "eor.w r9, r9, r5, lsl #24 \n\t" + "eor.w r10, r10, r6, lsl #8 \n\t" + "eor.w r10, r10, r11, lsl #16 \n\t" + "eor.w r10, r10, r12, lsl #24 \n\t" + "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) + + // AddRoundKey and AddRoundConst(from roundKeys) + + // r9( s9 s8 s11 s10) + // r10(s12 s14 s14 s13) + + // MixColumn + "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 + "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 + "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 + // r4 ----------------> r4 + // round 5 + + // SubCell+ShiftRow+AC(c2) + // r3 (s3 s2 s1 s0) + // r4 (s7 s6 s5 s4) + // r5 (s11 s10 s9 s8) + // r6 (s15 s14 s13 s12) + + // 1st-2nd line + // r3(s3 s2 s1 s0) + "uxtb.w r9, r3, ror #24 \n\t" // s3 + "uxtb.w r8, r3, ror #16 \n\t" // s2 + "uxtb.w r7, r3, ror #8 \n\t" // s1 + "uxtb.w r3, r3 \n\t" // s0 + // r4(s6 s5 s4 s7) + "uxtb.w r12, r4, ror #16 \n\t" // s6 + "uxtb.w r11, r4, ror #8 \n\t" // s5 + "uxtb.w r10, r4 \n\t" // s4 + "uxtb.w r4, r4, ror #24 \n\t" // s7 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "eor.w r3, r3, r7, lsl #8 \n\t" + "eor.w r3, r3, r8, lsl #16 \n\t" + "eor.w r3, r3, r9, lsl #24 \n\t" + "eor.w r4, r4, r10, lsl #8 \n\t" + "eor.w r4, r4, r11, lsl #16 \n\t" + "eor.w r4, r4, r12, lsl #24 \n\t" + + // 3rd-4th line + // r5(s9 s8 s11 s10) + "uxtb.w r9, r5, ror #8 \n\t" // s9 + "uxtb.w r8, r5 \n\t" // s8 + "uxtb.w r7, r5, ror #24 \n\t" // s11 + "uxtb.w r5, r5, ror #16 \n\t" // s10 + // r6(s12 s15 s14 s13) + "uxtb.w r12, r6 \n\t" // s12 + "uxtb.w r11, r6, ror #24 \n\t" // s15 + "uxtb.w r10, r6, ror #16 \n\t" // s14 + "uxtb.w r6, r6, ror #8 \n\t" // s13 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "eor.w r5, r5, r7, lsl #8 \n\t" + "eor.w r5, r5, r8, lsl #16 \n\t" + "eor.w r5, r5, r9, lsl #24 \n\t" + "eor.w r6, r6, r10, lsl #8 \n\t" + "eor.w r6, r6, r11, lsl #16 \n\t" + "eor.w r6, r6, r12, lsl #24 \n\t" + + // AddRoundKey and AddRoundConst(from roundKeys) + "ldr.w r9, [r1,#16] \n\t" // load TK1 + "ldr.w r10, [r1,#20] \n\t" // load TK1 + "ldr.w r11, [r1,#96] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "ldr.w r12, [r1,#100] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + + "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) + "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) + // r8( s9 s8 s11 s10) + // r6(s12 s14 s14 s13) + + // MixColumn + "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 + "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 + "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 + // r8 ----------------> r8 + + // round 6 + + // SubCell+ShiftRow+AC(c2) + // r7 (s3 s2 s1 s0) + // r8 (s7 s6 s5 s4) + // r9 (s11 s10 s9 s8) + // r10(s15 s14 s13 s12) + + // 1st-2nd line + // r7(s3 s2 s1 s0) + "uxtb.w r5, r7, ror #24 \n\t" // s3 + "uxtb.w r4, r7, ror #16 \n\t" // s2 + "uxtb.w r3, r7, ror #8 \n\t" // s1 + "uxtb.w r7, r7 \n\t" // s0 + // r8(s6 s5 s4 s7) + "uxtb.w r12, r8, ror #16 \n\t" // s6 + "uxtb.w r11, r8, ror #8 \n\t" // s5 + "uxtb.w r6, r8 \n\t" // s4 + "uxtb.w r8, r8, ror #24 \n\t" // s7 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldr.w r0, [r1,#104] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r7, r7, r3, lsl #8 \n\t" + "eor.w r7, r7, r4, lsl #16 \n\t" + "eor.w r7, r7, r5, lsl #24 \n\t" + "eor.w r8, r8, r6, lsl #8 \n\t" + "eor.w r8, r8, r11, lsl #16 \n\t" + "eor.w r8, r8, r12, lsl #24 \n\t" + "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) + + // 3rd-4th line + // r9(s9 s8 s11 s10) + "uxtb.w r5, r9, ror #8 \n\t" // s9 + "uxtb.w r7, r9 \n\t" // s8 + "uxtb.w r3, r9, ror #24 \n\t" // s11 + "uxtb.w r9, r9, ror #16 \n\t" // s10 + // r10(s12 s15 s14 s13) + "uxtb.w r12, r10 \n\t" // s12 + "uxtb.w r11, r10, ror #24 \n\t" // s15 + "uxtb.w r6, r10, ror #16 \n\t" // s14 + "uxtb.w r10, r10, ror #8 \n\t" // s13 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldr.w r0, [r1,#108] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r9, r9, r3, lsl #8 \n\t" + "eor.w r9, r9, r7, lsl #16 \n\t" + "eor.w r9, r9, r5, lsl #24 \n\t" + "eor.w r10, r10, r6, lsl #8 \n\t" + "eor.w r10, r10, r11, lsl #16 \n\t" + "eor.w r10, r10, r12, lsl #24 \n\t" + "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) + + // AddRoundKey and AddRoundConst(from roundKeys) + + // r9( s9 s8 s11 s10) + // r10(s12 s14 s14 s13) + + // MixColumn + "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 + "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 + "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 + // r4 ----------------> r4 + // round 7 + + // SubCell+ShiftRow+AC(c2) + // r3 (s3 s2 s1 s0) + // r4 (s7 s6 s5 s4) + // r5 (s11 s10 s9 s8) + // r6 (s15 s14 s13 s12) + + // 1st-2nd line + // r3(s3 s2 s1 s0) + "uxtb.w r9, r3, ror #24 \n\t" // s3 + "uxtb.w r8, r3, ror #16 \n\t" // s2 + "uxtb.w r7, r3, ror #8 \n\t" // s1 + "uxtb.w r3, r3 \n\t" // s0 + // r4(s6 s5 s4 s7) + "uxtb.w r12, r4, ror #16 \n\t" // s6 + "uxtb.w r11, r4, ror #8 \n\t" // s5 + "uxtb.w r10, r4 \n\t" // s4 + "uxtb.w r4, r4, ror #24 \n\t" // s7 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "eor.w r3, r3, r7, lsl #8 \n\t" + "eor.w r3, r3, r8, lsl #16 \n\t" + "eor.w r3, r3, r9, lsl #24 \n\t" + "eor.w r4, r4, r10, lsl #8 \n\t" + "eor.w r4, r4, r11, lsl #16 \n\t" + "eor.w r4, r4, r12, lsl #24 \n\t" + + // 3rd-4th line + // r5(s9 s8 s11 s10) + "uxtb.w r9, r5, ror #8 \n\t" // s9 + "uxtb.w r8, r5 \n\t" // s8 + "uxtb.w r7, r5, ror #24 \n\t" // s11 + "uxtb.w r5, r5, ror #16 \n\t" // s10 + // r6(s12 s15 s14 s13) + "uxtb.w r12, r6 \n\t" // s12 + "uxtb.w r11, r6, ror #24 \n\t" // s15 + "uxtb.w r10, r6, ror #16 \n\t" // s14 + "uxtb.w r6, r6, ror #8 \n\t" // s13 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "eor.w r5, r5, r7, lsl #8 \n\t" + "eor.w r5, r5, r8, lsl #16 \n\t" + "eor.w r5, r5, r9, lsl #24 \n\t" + "eor.w r6, r6, r10, lsl #8 \n\t" + "eor.w r6, r6, r11, lsl #16 \n\t" + "eor.w r6, r6, r12, lsl #24 \n\t" + + // AddRoundKey and AddRoundConst(from roundKeys) + "ldr.w r9, [r1,#24] \n\t" // load TK1 + "ldr.w r10, [r1,#28] \n\t" // load TK1 + "ldr.w r11, [r1,#112] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "ldr.w r12, [r1,#116] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + + "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) + "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) + // r8( s9 s8 s11 s10) + // r6(s12 s14 s14 s13) + + // MixColumn + "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 + "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 + "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 + // r8 ----------------> r8 + + // round 8 + + // SubCell+ShiftRow+AC(c2) + // r7 (s3 s2 s1 s0) + // r8 (s7 s6 s5 s4) + // r9 (s11 s10 s9 s8) + // r10(s15 s14 s13 s12) + + // 1st-2nd line + // r7(s3 s2 s1 s0) + "uxtb.w r5, r7, ror #24 \n\t" // s3 + "uxtb.w r4, r7, ror #16 \n\t" // s2 + "uxtb.w r3, r7, ror #8 \n\t" // s1 + "uxtb.w r7, r7 \n\t" // s0 + // r8(s6 s5 s4 s7) + "uxtb.w r12, r8, ror #16 \n\t" // s6 + "uxtb.w r11, r8, ror #8 \n\t" // s5 + "uxtb.w r6, r8 \n\t" // s4 + "uxtb.w r8, r8, ror #24 \n\t" // s7 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldr.w r0, [r1,#120] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r7, r7, r3, lsl #8 \n\t" + "eor.w r7, r7, r4, lsl #16 \n\t" + "eor.w r7, r7, r5, lsl #24 \n\t" + "eor.w r8, r8, r6, lsl #8 \n\t" + "eor.w r8, r8, r11, lsl #16 \n\t" + "eor.w r8, r8, r12, lsl #24 \n\t" + "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) + + // 3rd-4th line + // r9(s9 s8 s11 s10) + "uxtb.w r5, r9, ror #8 \n\t" // s9 + "uxtb.w r7, r9 \n\t" // s8 + "uxtb.w r3, r9, ror #24 \n\t" // s11 + "uxtb.w r9, r9, ror #16 \n\t" // s10 + // r10(s12 s15 s14 s13) + "uxtb.w r12, r10 \n\t" // s12 + "uxtb.w r11, r10, ror #24 \n\t" // s15 + "uxtb.w r6, r10, ror #16 \n\t" // s14 + "uxtb.w r10, r10, ror #8 \n\t" // s13 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldr.w r0, [r1,#124] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r9, r9, r3, lsl #8 \n\t" + "eor.w r9, r9, r7, lsl #16 \n\t" + "eor.w r9, r9, r5, lsl #24 \n\t" + "eor.w r10, r10, r6, lsl #8 \n\t" + "eor.w r10, r10, r11, lsl #16 \n\t" + "eor.w r10, r10, r12, lsl #24 \n\t" + "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) + + // AddRoundKey and AddRoundConst(from roundKeys) + + // r9( s9 s8 s11 s10) + // r10(s12 s14 s14 s13) + + // MixColumn + "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 + "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 + "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 + // r4 ----------------> r4 + // round 9 + + // SubCell+ShiftRow+AC(c2) + // r3 (s3 s2 s1 s0) + // r4 (s7 s6 s5 s4) + // r5 (s11 s10 s9 s8) + // r6 (s15 s14 s13 s12) + + // 1st-2nd line + // r3(s3 s2 s1 s0) + "uxtb.w r9, r3, ror #24 \n\t" // s3 + "uxtb.w r8, r3, ror #16 \n\t" // s2 + "uxtb.w r7, r3, ror #8 \n\t" // s1 + "uxtb.w r3, r3 \n\t" // s0 + // r4(s6 s5 s4 s7) + "uxtb.w r12, r4, ror #16 \n\t" // s6 + "uxtb.w r11, r4, ror #8 \n\t" // s5 + "uxtb.w r10, r4 \n\t" // s4 + "uxtb.w r4, r4, ror #24 \n\t" // s7 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "eor.w r3, r3, r7, lsl #8 \n\t" + "eor.w r3, r3, r8, lsl #16 \n\t" + "eor.w r3, r3, r9, lsl #24 \n\t" + "eor.w r4, r4, r10, lsl #8 \n\t" + "eor.w r4, r4, r11, lsl #16 \n\t" + "eor.w r4, r4, r12, lsl #24 \n\t" + + // 3rd-4th line + // r5(s9 s8 s11 s10) + "uxtb.w r9, r5, ror #8 \n\t" // s9 + "uxtb.w r8, r5 \n\t" // s8 + "uxtb.w r7, r5, ror #24 \n\t" // s11 + "uxtb.w r5, r5, ror #16 \n\t" // s10 + // r6(s12 s15 s14 s13) + "uxtb.w r12, r6 \n\t" // s12 + "uxtb.w r11, r6, ror #24 \n\t" // s15 + "uxtb.w r10, r6, ror #16 \n\t" // s14 + "uxtb.w r6, r6, ror #8 \n\t" // s13 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "eor.w r5, r5, r7, lsl #8 \n\t" + "eor.w r5, r5, r8, lsl #16 \n\t" + "eor.w r5, r5, r9, lsl #24 \n\t" + "eor.w r6, r6, r10, lsl #8 \n\t" + "eor.w r6, r6, r11, lsl #16 \n\t" + "eor.w r6, r6, r12, lsl #24 \n\t" + + // AddRoundKey and AddRoundConst(from roundKeys) + "ldr.w r9, [r1,#32] \n\t" // load TK1 + "ldr.w r10, [r1,#36] \n\t" // load TK1 + "ldr.w r11, [r1,#128] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "ldr.w r12, [r1,#132] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + + "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) + "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) + // r8( s9 s8 s11 s10) + // r6(s12 s14 s14 s13) + + // MixColumn + "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 + "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 + "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 + // r8 ----------------> r8 + + // round 10 + + // SubCell+ShiftRow+AC(c2) + // r7 (s3 s2 s1 s0) + // r8 (s7 s6 s5 s4) + // r9 (s11 s10 s9 s8) + // r10(s15 s14 s13 s12) + + // 1st-2nd line + // r7(s3 s2 s1 s0) + "uxtb.w r5, r7, ror #24 \n\t" // s3 + "uxtb.w r4, r7, ror #16 \n\t" // s2 + "uxtb.w r3, r7, ror #8 \n\t" // s1 + "uxtb.w r7, r7 \n\t" // s0 + // r8(s6 s5 s4 s7) + "uxtb.w r12, r8, ror #16 \n\t" // s6 + "uxtb.w r11, r8, ror #8 \n\t" // s5 + "uxtb.w r6, r8 \n\t" // s4 + "uxtb.w r8, r8, ror #24 \n\t" // s7 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldr.w r0, [r1,#136] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r7, r7, r3, lsl #8 \n\t" + "eor.w r7, r7, r4, lsl #16 \n\t" + "eor.w r7, r7, r5, lsl #24 \n\t" + "eor.w r8, r8, r6, lsl #8 \n\t" + "eor.w r8, r8, r11, lsl #16 \n\t" + "eor.w r8, r8, r12, lsl #24 \n\t" + "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) + + // 3rd-4th line + // r9(s9 s8 s11 s10) + "uxtb.w r5, r9, ror #8 \n\t" // s9 + "uxtb.w r7, r9 \n\t" // s8 + "uxtb.w r3, r9, ror #24 \n\t" // s11 + "uxtb.w r9, r9, ror #16 \n\t" // s10 + // r10(s12 s15 s14 s13) + "uxtb.w r12, r10 \n\t" // s12 + "uxtb.w r11, r10, ror #24 \n\t" // s15 + "uxtb.w r6, r10, ror #16 \n\t" // s14 + "uxtb.w r10, r10, ror #8 \n\t" // s13 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldr.w r0, [r1,#140] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r9, r9, r3, lsl #8 \n\t" + "eor.w r9, r9, r7, lsl #16 \n\t" + "eor.w r9, r9, r5, lsl #24 \n\t" + "eor.w r10, r10, r6, lsl #8 \n\t" + "eor.w r10, r10, r11, lsl #16 \n\t" + "eor.w r10, r10, r12, lsl #24 \n\t" + "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) + + // AddRoundKey and AddRoundConst(from roundKeys) + + // r9( s9 s8 s11 s10) + // r10(s12 s14 s14 s13) + + // MixColumn + "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 + "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 + "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 + // r4 ----------------> r4 + // round 11 + + // SubCell+ShiftRow+AC(c2) + // r3 (s3 s2 s1 s0) + // r4 (s7 s6 s5 s4) + // r5 (s11 s10 s9 s8) + // r6 (s15 s14 s13 s12) + + // 1st-2nd line + // r3(s3 s2 s1 s0) + "uxtb.w r9, r3, ror #24 \n\t" // s3 + "uxtb.w r8, r3, ror #16 \n\t" // s2 + "uxtb.w r7, r3, ror #8 \n\t" // s1 + "uxtb.w r3, r3 \n\t" // s0 + // r4(s6 s5 s4 s7) + "uxtb.w r12, r4, ror #16 \n\t" // s6 + "uxtb.w r11, r4, ror #8 \n\t" // s5 + "uxtb.w r10, r4 \n\t" // s4 + "uxtb.w r4, r4, ror #24 \n\t" // s7 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "eor.w r3, r3, r7, lsl #8 \n\t" + "eor.w r3, r3, r8, lsl #16 \n\t" + "eor.w r3, r3, r9, lsl #24 \n\t" + "eor.w r4, r4, r10, lsl #8 \n\t" + "eor.w r4, r4, r11, lsl #16 \n\t" + "eor.w r4, r4, r12, lsl #24 \n\t" + + // 3rd-4th line + // r5(s9 s8 s11 s10) + "uxtb.w r9, r5, ror #8 \n\t" // s9 + "uxtb.w r8, r5 \n\t" // s8 + "uxtb.w r7, r5, ror #24 \n\t" // s11 + "uxtb.w r5, r5, ror #16 \n\t" // s10 + // r6(s12 s15 s14 s13) + "uxtb.w r12, r6 \n\t" // s12 + "uxtb.w r11, r6, ror #24 \n\t" // s15 + "uxtb.w r10, r6, ror #16 \n\t" // s14 + "uxtb.w r6, r6, ror #8 \n\t" // s13 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "eor.w r5, r5, r7, lsl #8 \n\t" + "eor.w r5, r5, r8, lsl #16 \n\t" + "eor.w r5, r5, r9, lsl #24 \n\t" + "eor.w r6, r6, r10, lsl #8 \n\t" + "eor.w r6, r6, r11, lsl #16 \n\t" + "eor.w r6, r6, r12, lsl #24 \n\t" + + // AddRoundKey and AddRoundConst(from roundKeys) + "ldr.w r9, [r1,#40] \n\t" // load TK1 + "ldr.w r10, [r1,#44] \n\t" // load TK1 + "ldr.w r11, [r1,#144] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "ldr.w r12, [r1,#148] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + + "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) + "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) + // r8( s9 s8 s11 s10) + // r6(s12 s14 s14 s13) + + // MixColumn + "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 + "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 + "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 + // r8 ----------------> r8 + + // round 12 + + // SubCell+ShiftRow+AC(c2) + // r7 (s3 s2 s1 s0) + // r8 (s7 s6 s5 s4) + // r9 (s11 s10 s9 s8) + // r10(s15 s14 s13 s12) + + // 1st-2nd line + // r7(s3 s2 s1 s0) + "uxtb.w r5, r7, ror #24 \n\t" // s3 + "uxtb.w r4, r7, ror #16 \n\t" // s2 + "uxtb.w r3, r7, ror #8 \n\t" // s1 + "uxtb.w r7, r7 \n\t" // s0 + // r8(s6 s5 s4 s7) + "uxtb.w r12, r8, ror #16 \n\t" // s6 + "uxtb.w r11, r8, ror #8 \n\t" // s5 + "uxtb.w r6, r8 \n\t" // s4 + "uxtb.w r8, r8, ror #24 \n\t" // s7 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldr.w r0, [r1,#152] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r7, r7, r3, lsl #8 \n\t" + "eor.w r7, r7, r4, lsl #16 \n\t" + "eor.w r7, r7, r5, lsl #24 \n\t" + "eor.w r8, r8, r6, lsl #8 \n\t" + "eor.w r8, r8, r11, lsl #16 \n\t" + "eor.w r8, r8, r12, lsl #24 \n\t" + "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) + + // 3rd-4th line + // r9(s9 s8 s11 s10) + "uxtb.w r5, r9, ror #8 \n\t" // s9 + "uxtb.w r7, r9 \n\t" // s8 + "uxtb.w r3, r9, ror #24 \n\t" // s11 + "uxtb.w r9, r9, ror #16 \n\t" // s10 + // r10(s12 s15 s14 s13) + "uxtb.w r12, r10 \n\t" // s12 + "uxtb.w r11, r10, ror #24 \n\t" // s15 + "uxtb.w r6, r10, ror #16 \n\t" // s14 + "uxtb.w r10, r10, ror #8 \n\t" // s13 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldr.w r0, [r1,#156] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r9, r9, r3, lsl #8 \n\t" + "eor.w r9, r9, r7, lsl #16 \n\t" + "eor.w r9, r9, r5, lsl #24 \n\t" + "eor.w r10, r10, r6, lsl #8 \n\t" + "eor.w r10, r10, r11, lsl #16 \n\t" + "eor.w r10, r10, r12, lsl #24 \n\t" + "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) + + // AddRoundKey and AddRoundConst(from roundKeys) + + // r9( s9 s8 s11 s10) + // r10(s12 s14 s14 s13) + + // MixColumn + "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 + "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 + "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 + // r4 ----------------> r4 + // round 13 + + // SubCell+ShiftRow+AC(c2) + // r3 (s3 s2 s1 s0) + // r4 (s7 s6 s5 s4) + // r5 (s11 s10 s9 s8) + // r6 (s15 s14 s13 s12) + + // 1st-2nd line + // r3(s3 s2 s1 s0) + "uxtb.w r9, r3, ror #24 \n\t" // s3 + "uxtb.w r8, r3, ror #16 \n\t" // s2 + "uxtb.w r7, r3, ror #8 \n\t" // s1 + "uxtb.w r3, r3 \n\t" // s0 + // r4(s6 s5 s4 s7) + "uxtb.w r12, r4, ror #16 \n\t" // s6 + "uxtb.w r11, r4, ror #8 \n\t" // s5 + "uxtb.w r10, r4 \n\t" // s4 + "uxtb.w r4, r4, ror #24 \n\t" // s7 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "eor.w r3, r3, r7, lsl #8 \n\t" + "eor.w r3, r3, r8, lsl #16 \n\t" + "eor.w r3, r3, r9, lsl #24 \n\t" + "eor.w r4, r4, r10, lsl #8 \n\t" + "eor.w r4, r4, r11, lsl #16 \n\t" + "eor.w r4, r4, r12, lsl #24 \n\t" + + // 3rd-4th line + // r5(s9 s8 s11 s10) + "uxtb.w r9, r5, ror #8 \n\t" // s9 + "uxtb.w r8, r5 \n\t" // s8 + "uxtb.w r7, r5, ror #24 \n\t" // s11 + "uxtb.w r5, r5, ror #16 \n\t" // s10 + // r6(s12 s15 s14 s13) + "uxtb.w r12, r6 \n\t" // s12 + "uxtb.w r11, r6, ror #24 \n\t" // s15 + "uxtb.w r10, r6, ror #16 \n\t" // s14 + "uxtb.w r6, r6, ror #8 \n\t" // s13 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "eor.w r5, r5, r7, lsl #8 \n\t" + "eor.w r5, r5, r8, lsl #16 \n\t" + "eor.w r5, r5, r9, lsl #24 \n\t" + "eor.w r6, r6, r10, lsl #8 \n\t" + "eor.w r6, r6, r11, lsl #16 \n\t" + "eor.w r6, r6, r12, lsl #24 \n\t" + + // AddRoundKey and AddRoundConst(from roundKeys) + "ldr.w r9, [r1,#48] \n\t" // load TK1 + "ldr.w r10, [r1,#52] \n\t" // load TK1 + "ldr.w r11, [r1,#160] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "ldr.w r12, [r1,#164] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + + "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) + "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) + // r8( s9 s8 s11 s10) + // r6(s12 s14 s14 s13) + + // MixColumn + "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 + "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 + "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 + // r8 ----------------> r8 + + // round 14 + + // SubCell+ShiftRow+AC(c2) + // r7 (s3 s2 s1 s0) + // r8 (s7 s6 s5 s4) + // r9 (s11 s10 s9 s8) + // r10(s15 s14 s13 s12) + + // 1st-2nd line + // r7(s3 s2 s1 s0) + "uxtb.w r5, r7, ror #24 \n\t" // s3 + "uxtb.w r4, r7, ror #16 \n\t" // s2 + "uxtb.w r3, r7, ror #8 \n\t" // s1 + "uxtb.w r7, r7 \n\t" // s0 + // r8(s6 s5 s4 s7) + "uxtb.w r12, r8, ror #16 \n\t" // s6 + "uxtb.w r11, r8, ror #8 \n\t" // s5 + "uxtb.w r6, r8 \n\t" // s4 + "uxtb.w r8, r8, ror #24 \n\t" // s7 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldr.w r0, [r1,#168] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r7, r7, r3, lsl #8 \n\t" + "eor.w r7, r7, r4, lsl #16 \n\t" + "eor.w r7, r7, r5, lsl #24 \n\t" + "eor.w r8, r8, r6, lsl #8 \n\t" + "eor.w r8, r8, r11, lsl #16 \n\t" + "eor.w r8, r8, r12, lsl #24 \n\t" + "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) + + // 3rd-4th line + // r9(s9 s8 s11 s10) + "uxtb.w r5, r9, ror #8 \n\t" // s9 + "uxtb.w r7, r9 \n\t" // s8 + "uxtb.w r3, r9, ror #24 \n\t" // s11 + "uxtb.w r9, r9, ror #16 \n\t" // s10 + // r10(s12 s15 s14 s13) + "uxtb.w r12, r10 \n\t" // s12 + "uxtb.w r11, r10, ror #24 \n\t" // s15 + "uxtb.w r6, r10, ror #16 \n\t" // s14 + "uxtb.w r10, r10, ror #8 \n\t" // s13 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldr.w r0, [r1,#172] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r9, r9, r3, lsl #8 \n\t" + "eor.w r9, r9, r7, lsl #16 \n\t" + "eor.w r9, r9, r5, lsl #24 \n\t" + "eor.w r10, r10, r6, lsl #8 \n\t" + "eor.w r10, r10, r11, lsl #16 \n\t" + "eor.w r10, r10, r12, lsl #24 \n\t" + "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) + + // AddRoundKey and AddRoundConst(from roundKeys) + + // r9( s9 s8 s11 s10) + // r10(s12 s14 s14 s13) + + // MixColumn + "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 + "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 + "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 + // r4 ----------------> r4 + // round 15 + + // SubCell+ShiftRow+AC(c2) + // r3 (s3 s2 s1 s0) + // r4 (s7 s6 s5 s4) + // r5 (s11 s10 s9 s8) + // r6 (s15 s14 s13 s12) + + // 1st-2nd line + // r3(s3 s2 s1 s0) + "uxtb.w r9, r3, ror #24 \n\t" // s3 + "uxtb.w r8, r3, ror #16 \n\t" // s2 + "uxtb.w r7, r3, ror #8 \n\t" // s1 + "uxtb.w r3, r3 \n\t" // s0 + // r4(s6 s5 s4 s7) + "uxtb.w r12, r4, ror #16 \n\t" // s6 + "uxtb.w r11, r4, ror #8 \n\t" // s5 + "uxtb.w r10, r4 \n\t" // s4 + "uxtb.w r4, r4, ror #24 \n\t" // s7 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "eor.w r3, r3, r7, lsl #8 \n\t" + "eor.w r3, r3, r8, lsl #16 \n\t" + "eor.w r3, r3, r9, lsl #24 \n\t" + "eor.w r4, r4, r10, lsl #8 \n\t" + "eor.w r4, r4, r11, lsl #16 \n\t" + "eor.w r4, r4, r12, lsl #24 \n\t" + + // 3rd-4th line + // r5(s9 s8 s11 s10) + "uxtb.w r9, r5, ror #8 \n\t" // s9 + "uxtb.w r8, r5 \n\t" // s8 + "uxtb.w r7, r5, ror #24 \n\t" // s11 + "uxtb.w r5, r5, ror #16 \n\t" // s10 + // r6(s12 s15 s14 s13) + "uxtb.w r12, r6 \n\t" // s12 + "uxtb.w r11, r6, ror #24 \n\t" // s15 + "uxtb.w r10, r6, ror #16 \n\t" // s14 + "uxtb.w r6, r6, ror #8 \n\t" // s13 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "eor.w r5, r5, r7, lsl #8 \n\t" + "eor.w r5, r5, r8, lsl #16 \n\t" + "eor.w r5, r5, r9, lsl #24 \n\t" + "eor.w r6, r6, r10, lsl #8 \n\t" + "eor.w r6, r6, r11, lsl #16 \n\t" + "eor.w r6, r6, r12, lsl #24 \n\t" + + // AddRoundKey and AddRoundConst(from roundKeys) + "ldr.w r9, [r1,#56] \n\t" // load TK1 + "ldr.w r10, [r1,#60] \n\t" // load TK1 + "ldr.w r11, [r1,#176] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "ldr.w r12, [r1,#180] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + + "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) + "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) + // r8( s9 s8 s11 s10) + // r6(s12 s14 s14 s13) + + // MixColumn + "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 + "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 + "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 + // r8 ----------------> r8 + + // round 16 + + // SubCell+ShiftRow+AC(c2) + // r7 (s3 s2 s1 s0) + // r8 (s7 s6 s5 s4) + // r9 (s11 s10 s9 s8) + // r10(s15 s14 s13 s12) + + // 1st-2nd line + // r7(s3 s2 s1 s0) + "uxtb.w r5, r7, ror #24 \n\t" // s3 + "uxtb.w r4, r7, ror #16 \n\t" // s2 + "uxtb.w r3, r7, ror #8 \n\t" // s1 + "uxtb.w r7, r7 \n\t" // s0 + // r8(s6 s5 s4 s7) + "uxtb.w r12, r8, ror #16 \n\t" // s6 + "uxtb.w r11, r8, ror #8 \n\t" // s5 + "uxtb.w r6, r8 \n\t" // s4 + "uxtb.w r8, r8, ror #24 \n\t" // s7 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldr.w r0, [r1,#184] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r7, r7, r3, lsl #8 \n\t" + "eor.w r7, r7, r4, lsl #16 \n\t" + "eor.w r7, r7, r5, lsl #24 \n\t" + "eor.w r8, r8, r6, lsl #8 \n\t" + "eor.w r8, r8, r11, lsl #16 \n\t" + "eor.w r8, r8, r12, lsl #24 \n\t" + "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) + + // 3rd-4th line + // r9(s9 s8 s11 s10) + "uxtb.w r5, r9, ror #8 \n\t" // s9 + "uxtb.w r7, r9 \n\t" // s8 + "uxtb.w r3, r9, ror #24 \n\t" // s11 + "uxtb.w r9, r9, ror #16 \n\t" // s10 + // r10(s12 s15 s14 s13) + "uxtb.w r12, r10 \n\t" // s12 + "uxtb.w r11, r10, ror #24 \n\t" // s15 + "uxtb.w r6, r10, ror #16 \n\t" // s14 + "uxtb.w r10, r10, ror #8 \n\t" // s13 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldr.w r0, [r1,#188] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r9, r9, r3, lsl #8 \n\t" + "eor.w r9, r9, r7, lsl #16 \n\t" + "eor.w r9, r9, r5, lsl #24 \n\t" + "eor.w r10, r10, r6, lsl #8 \n\t" + "eor.w r10, r10, r11, lsl #16 \n\t" + "eor.w r10, r10, r12, lsl #24 \n\t" + "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) + + // AddRoundKey and AddRoundConst(from roundKeys) + + // r9( s9 s8 s11 s10) + // r10(s12 s14 s14 s13) + + // MixColumn + "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 + "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 + "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 + // r4 ----------------> r4 + // round 17 + + // SubCell+ShiftRow+AC(c2) + // r3 (s3 s2 s1 s0) + // r4 (s7 s6 s5 s4) + // r5 (s11 s10 s9 s8) + // r6 (s15 s14 s13 s12) + + // 1st-2nd line + // r3(s3 s2 s1 s0) + "uxtb.w r9, r3, ror #24 \n\t" // s3 + "uxtb.w r8, r3, ror #16 \n\t" // s2 + "uxtb.w r7, r3, ror #8 \n\t" // s1 + "uxtb.w r3, r3 \n\t" // s0 + // r4(s6 s5 s4 s7) + "uxtb.w r12, r4, ror #16 \n\t" // s6 + "uxtb.w r11, r4, ror #8 \n\t" // s5 + "uxtb.w r10, r4 \n\t" // s4 + "uxtb.w r4, r4, ror #24 \n\t" // s7 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "eor.w r3, r3, r7, lsl #8 \n\t" + "eor.w r3, r3, r8, lsl #16 \n\t" + "eor.w r3, r3, r9, lsl #24 \n\t" + "eor.w r4, r4, r10, lsl #8 \n\t" + "eor.w r4, r4, r11, lsl #16 \n\t" + "eor.w r4, r4, r12, lsl #24 \n\t" + + // 3rd-4th line + // r5(s9 s8 s11 s10) + "uxtb.w r9, r5, ror #8 \n\t" // s9 + "uxtb.w r8, r5 \n\t" // s8 + "uxtb.w r7, r5, ror #24 \n\t" // s11 + "uxtb.w r5, r5, ror #16 \n\t" // s10 + // r6(s12 s15 s14 s13) + "uxtb.w r12, r6 \n\t" // s12 + "uxtb.w r11, r6, ror #24 \n\t" // s15 + "uxtb.w r10, r6, ror #16 \n\t" // s14 + "uxtb.w r6, r6, ror #8 \n\t" // s13 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "eor.w r5, r5, r7, lsl #8 \n\t" + "eor.w r5, r5, r8, lsl #16 \n\t" + "eor.w r5, r5, r9, lsl #24 \n\t" + "eor.w r6, r6, r10, lsl #8 \n\t" + "eor.w r6, r6, r11, lsl #16 \n\t" + "eor.w r6, r6, r12, lsl #24 \n\t" + + // AddRoundKey and AddRoundConst(from roundKeys) + "ldr.w r9, [r1,#0] \n\t" // load TK1 + "ldr.w r10, [r1,#4] \n\t" // load TK1 + "ldr.w r11, [r1,#192] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "ldr.w r12, [r1,#196] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + + "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) + "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) + // r8( s9 s8 s11 s10) + // r6(s12 s14 s14 s13) + + // MixColumn + "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 + "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 + "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 + // r8 ----------------> r8 + + // round 18 + + // SubCell+ShiftRow+AC(c2) + // r7 (s3 s2 s1 s0) + // r8 (s7 s6 s5 s4) + // r9 (s11 s10 s9 s8) + // r10(s15 s14 s13 s12) + + // 1st-2nd line + // r7(s3 s2 s1 s0) + "uxtb.w r5, r7, ror #24 \n\t" // s3 + "uxtb.w r4, r7, ror #16 \n\t" // s2 + "uxtb.w r3, r7, ror #8 \n\t" // s1 + "uxtb.w r7, r7 \n\t" // s0 + // r8(s6 s5 s4 s7) + "uxtb.w r12, r8, ror #16 \n\t" // s6 + "uxtb.w r11, r8, ror #8 \n\t" // s5 + "uxtb.w r6, r8 \n\t" // s4 + "uxtb.w r8, r8, ror #24 \n\t" // s7 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldr.w r0, [r1,#200] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r7, r7, r3, lsl #8 \n\t" + "eor.w r7, r7, r4, lsl #16 \n\t" + "eor.w r7, r7, r5, lsl #24 \n\t" + "eor.w r8, r8, r6, lsl #8 \n\t" + "eor.w r8, r8, r11, lsl #16 \n\t" + "eor.w r8, r8, r12, lsl #24 \n\t" + "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) + + // 3rd-4th line + // r9(s9 s8 s11 s10) + "uxtb.w r5, r9, ror #8 \n\t" // s9 + "uxtb.w r7, r9 \n\t" // s8 + "uxtb.w r3, r9, ror #24 \n\t" // s11 + "uxtb.w r9, r9, ror #16 \n\t" // s10 + // r10(s12 s15 s14 s13) + "uxtb.w r12, r10 \n\t" // s12 + "uxtb.w r11, r10, ror #24 \n\t" // s15 + "uxtb.w r6, r10, ror #16 \n\t" // s14 + "uxtb.w r10, r10, ror #8 \n\t" // s13 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldr.w r0, [r1,#204] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r9, r9, r3, lsl #8 \n\t" + "eor.w r9, r9, r7, lsl #16 \n\t" + "eor.w r9, r9, r5, lsl #24 \n\t" + "eor.w r10, r10, r6, lsl #8 \n\t" + "eor.w r10, r10, r11, lsl #16 \n\t" + "eor.w r10, r10, r12, lsl #24 \n\t" + "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) + + // AddRoundKey and AddRoundConst(from roundKeys) + + // r9( s9 s8 s11 s10) + // r10(s12 s14 s14 s13) + + // MixColumn + "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 + "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 + "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 + // r4 ----------------> r4 + // round 19 + + // SubCell+ShiftRow+AC(c2) + // r3 (s3 s2 s1 s0) + // r4 (s7 s6 s5 s4) + // r5 (s11 s10 s9 s8) + // r6 (s15 s14 s13 s12) + + // 1st-2nd line + // r3(s3 s2 s1 s0) + "uxtb.w r9, r3, ror #24 \n\t" // s3 + "uxtb.w r8, r3, ror #16 \n\t" // s2 + "uxtb.w r7, r3, ror #8 \n\t" // s1 + "uxtb.w r3, r3 \n\t" // s0 + // r4(s6 s5 s4 s7) + "uxtb.w r12, r4, ror #16 \n\t" // s6 + "uxtb.w r11, r4, ror #8 \n\t" // s5 + "uxtb.w r10, r4 \n\t" // s4 + "uxtb.w r4, r4, ror #24 \n\t" // s7 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "eor.w r3, r3, r7, lsl #8 \n\t" + "eor.w r3, r3, r8, lsl #16 \n\t" + "eor.w r3, r3, r9, lsl #24 \n\t" + "eor.w r4, r4, r10, lsl #8 \n\t" + "eor.w r4, r4, r11, lsl #16 \n\t" + "eor.w r4, r4, r12, lsl #24 \n\t" + + // 3rd-4th line + // r5(s9 s8 s11 s10) + "uxtb.w r9, r5, ror #8 \n\t" // s9 + "uxtb.w r8, r5 \n\t" // s8 + "uxtb.w r7, r5, ror #24 \n\t" // s11 + "uxtb.w r5, r5, ror #16 \n\t" // s10 + // r6(s12 s15 s14 s13) + "uxtb.w r12, r6 \n\t" // s12 + "uxtb.w r11, r6, ror #24 \n\t" // s15 + "uxtb.w r10, r6, ror #16 \n\t" // s14 + "uxtb.w r6, r6, ror #8 \n\t" // s13 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "eor.w r5, r5, r7, lsl #8 \n\t" + "eor.w r5, r5, r8, lsl #16 \n\t" + "eor.w r5, r5, r9, lsl #24 \n\t" + "eor.w r6, r6, r10, lsl #8 \n\t" + "eor.w r6, r6, r11, lsl #16 \n\t" + "eor.w r6, r6, r12, lsl #24 \n\t" + + // AddRoundKey and AddRoundConst(from roundKeys) + "ldr.w r9, [r1,#8] \n\t" // load TK1 + "ldr.w r10, [r1,#12] \n\t" // load TK1 + "ldr.w r11, [r1,#208] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "ldr.w r12, [r1,#212] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + + "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) + "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) + // r8( s9 s8 s11 s10) + // r6(s12 s14 s14 s13) + + // MixColumn + "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 + "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 + "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 + // r8 ----------------> r8 + + // round 20 + + // SubCell+ShiftRow+AC(c2) + // r7 (s3 s2 s1 s0) + // r8 (s7 s6 s5 s4) + // r9 (s11 s10 s9 s8) + // r10(s15 s14 s13 s12) + + // 1st-2nd line + // r7(s3 s2 s1 s0) + "uxtb.w r5, r7, ror #24 \n\t" // s3 + "uxtb.w r4, r7, ror #16 \n\t" // s2 + "uxtb.w r3, r7, ror #8 \n\t" // s1 + "uxtb.w r7, r7 \n\t" // s0 + // r8(s6 s5 s4 s7) + "uxtb.w r12, r8, ror #16 \n\t" // s6 + "uxtb.w r11, r8, ror #8 \n\t" // s5 + "uxtb.w r6, r8 \n\t" // s4 + "uxtb.w r8, r8, ror #24 \n\t" // s7 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldr.w r0, [r1,#216] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r7, r7, r3, lsl #8 \n\t" + "eor.w r7, r7, r4, lsl #16 \n\t" + "eor.w r7, r7, r5, lsl #24 \n\t" + "eor.w r8, r8, r6, lsl #8 \n\t" + "eor.w r8, r8, r11, lsl #16 \n\t" + "eor.w r8, r8, r12, lsl #24 \n\t" + "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) + + // 3rd-4th line + // r9(s9 s8 s11 s10) + "uxtb.w r5, r9, ror #8 \n\t" // s9 + "uxtb.w r7, r9 \n\t" // s8 + "uxtb.w r3, r9, ror #24 \n\t" // s11 + "uxtb.w r9, r9, ror #16 \n\t" // s10 + // r10(s12 s15 s14 s13) + "uxtb.w r12, r10 \n\t" // s12 + "uxtb.w r11, r10, ror #24 \n\t" // s15 + "uxtb.w r6, r10, ror #16 \n\t" // s14 + "uxtb.w r10, r10, ror #8 \n\t" // s13 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldr.w r0, [r1,#220] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r9, r9, r3, lsl #8 \n\t" + "eor.w r9, r9, r7, lsl #16 \n\t" + "eor.w r9, r9, r5, lsl #24 \n\t" + "eor.w r10, r10, r6, lsl #8 \n\t" + "eor.w r10, r10, r11, lsl #16 \n\t" + "eor.w r10, r10, r12, lsl #24 \n\t" + "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) + + // AddRoundKey and AddRoundConst(from roundKeys) + + // r9( s9 s8 s11 s10) + // r10(s12 s14 s14 s13) + + // MixColumn + "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 + "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 + "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 + // r4 ----------------> r4 + // round 21 + + // SubCell+ShiftRow+AC(c2) + // r3 (s3 s2 s1 s0) + // r4 (s7 s6 s5 s4) + // r5 (s11 s10 s9 s8) + // r6 (s15 s14 s13 s12) + + // 1st-2nd line + // r3(s3 s2 s1 s0) + "uxtb.w r9, r3, ror #24 \n\t" // s3 + "uxtb.w r8, r3, ror #16 \n\t" // s2 + "uxtb.w r7, r3, ror #8 \n\t" // s1 + "uxtb.w r3, r3 \n\t" // s0 + // r4(s6 s5 s4 s7) + "uxtb.w r12, r4, ror #16 \n\t" // s6 + "uxtb.w r11, r4, ror #8 \n\t" // s5 + "uxtb.w r10, r4 \n\t" // s4 + "uxtb.w r4, r4, ror #24 \n\t" // s7 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "eor.w r3, r3, r7, lsl #8 \n\t" + "eor.w r3, r3, r8, lsl #16 \n\t" + "eor.w r3, r3, r9, lsl #24 \n\t" + "eor.w r4, r4, r10, lsl #8 \n\t" + "eor.w r4, r4, r11, lsl #16 \n\t" + "eor.w r4, r4, r12, lsl #24 \n\t" + + // 3rd-4th line + // r5(s9 s8 s11 s10) + "uxtb.w r9, r5, ror #8 \n\t" // s9 + "uxtb.w r8, r5 \n\t" // s8 + "uxtb.w r7, r5, ror #24 \n\t" // s11 + "uxtb.w r5, r5, ror #16 \n\t" // s10 + // r6(s12 s15 s14 s13) + "uxtb.w r12, r6 \n\t" // s12 + "uxtb.w r11, r6, ror #24 \n\t" // s15 + "uxtb.w r10, r6, ror #16 \n\t" // s14 + "uxtb.w r6, r6, ror #8 \n\t" // s13 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "eor.w r5, r5, r7, lsl #8 \n\t" + "eor.w r5, r5, r8, lsl #16 \n\t" + "eor.w r5, r5, r9, lsl #24 \n\t" + "eor.w r6, r6, r10, lsl #8 \n\t" + "eor.w r6, r6, r11, lsl #16 \n\t" + "eor.w r6, r6, r12, lsl #24 \n\t" + + // AddRoundKey and AddRoundConst(from roundKeys) + "ldr.w r9, [r1,#16] \n\t" // load TK1 + "ldr.w r10, [r1,#20] \n\t" // load TK1 + "ldr.w r11, [r1,#224] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "ldr.w r12, [r1,#228] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + + "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) + "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) + // r8( s9 s8 s11 s10) + // r6(s12 s14 s14 s13) + + // MixColumn + "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 + "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 + "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 + // r8 ----------------> r8 + + // round 22 + + // SubCell+ShiftRow+AC(c2) + // r7 (s3 s2 s1 s0) + // r8 (s7 s6 s5 s4) + // r9 (s11 s10 s9 s8) + // r10(s15 s14 s13 s12) + + // 1st-2nd line + // r7(s3 s2 s1 s0) + "uxtb.w r5, r7, ror #24 \n\t" // s3 + "uxtb.w r4, r7, ror #16 \n\t" // s2 + "uxtb.w r3, r7, ror #8 \n\t" // s1 + "uxtb.w r7, r7 \n\t" // s0 + // r8(s6 s5 s4 s7) + "uxtb.w r12, r8, ror #16 \n\t" // s6 + "uxtb.w r11, r8, ror #8 \n\t" // s5 + "uxtb.w r6, r8 \n\t" // s4 + "uxtb.w r8, r8, ror #24 \n\t" // s7 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldr.w r0, [r1,#232] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r7, r7, r3, lsl #8 \n\t" + "eor.w r7, r7, r4, lsl #16 \n\t" + "eor.w r7, r7, r5, lsl #24 \n\t" + "eor.w r8, r8, r6, lsl #8 \n\t" + "eor.w r8, r8, r11, lsl #16 \n\t" + "eor.w r8, r8, r12, lsl #24 \n\t" + "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) + + // 3rd-4th line + // r9(s9 s8 s11 s10) + "uxtb.w r5, r9, ror #8 \n\t" // s9 + "uxtb.w r7, r9 \n\t" // s8 + "uxtb.w r3, r9, ror #24 \n\t" // s11 + "uxtb.w r9, r9, ror #16 \n\t" // s10 + // r10(s12 s15 s14 s13) + "uxtb.w r12, r10 \n\t" // s12 + "uxtb.w r11, r10, ror #24 \n\t" // s15 + "uxtb.w r6, r10, ror #16 \n\t" // s14 + "uxtb.w r10, r10, ror #8 \n\t" // s13 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldr.w r0, [r1,#236] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r9, r9, r3, lsl #8 \n\t" + "eor.w r9, r9, r7, lsl #16 \n\t" + "eor.w r9, r9, r5, lsl #24 \n\t" + "eor.w r10, r10, r6, lsl #8 \n\t" + "eor.w r10, r10, r11, lsl #16 \n\t" + "eor.w r10, r10, r12, lsl #24 \n\t" + "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) + + // AddRoundKey and AddRoundConst(from roundKeys) + + // r9( s9 s8 s11 s10) + // r10(s12 s14 s14 s13) + + // MixColumn + "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 + "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 + "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 + // r4 ----------------> r4 + // round 23 + + // SubCell+ShiftRow+AC(c2) + // r3 (s3 s2 s1 s0) + // r4 (s7 s6 s5 s4) + // r5 (s11 s10 s9 s8) + // r6 (s15 s14 s13 s12) + + // 1st-2nd line + // r3(s3 s2 s1 s0) + "uxtb.w r9, r3, ror #24 \n\t" // s3 + "uxtb.w r8, r3, ror #16 \n\t" // s2 + "uxtb.w r7, r3, ror #8 \n\t" // s1 + "uxtb.w r3, r3 \n\t" // s0 + // r4(s6 s5 s4 s7) + "uxtb.w r12, r4, ror #16 \n\t" // s6 + "uxtb.w r11, r4, ror #8 \n\t" // s5 + "uxtb.w r10, r4 \n\t" // s4 + "uxtb.w r4, r4, ror #24 \n\t" // s7 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "eor.w r3, r3, r7, lsl #8 \n\t" + "eor.w r3, r3, r8, lsl #16 \n\t" + "eor.w r3, r3, r9, lsl #24 \n\t" + "eor.w r4, r4, r10, lsl #8 \n\t" + "eor.w r4, r4, r11, lsl #16 \n\t" + "eor.w r4, r4, r12, lsl #24 \n\t" + + // 3rd-4th line + // r5(s9 s8 s11 s10) + "uxtb.w r9, r5, ror #8 \n\t" // s9 + "uxtb.w r8, r5 \n\t" // s8 + "uxtb.w r7, r5, ror #24 \n\t" // s11 + "uxtb.w r5, r5, ror #16 \n\t" // s10 + // r6(s12 s15 s14 s13) + "uxtb.w r12, r6 \n\t" // s12 + "uxtb.w r11, r6, ror #24 \n\t" // s15 + "uxtb.w r10, r6, ror #16 \n\t" // s14 + "uxtb.w r6, r6, ror #8 \n\t" // s13 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "eor.w r5, r5, r7, lsl #8 \n\t" + "eor.w r5, r5, r8, lsl #16 \n\t" + "eor.w r5, r5, r9, lsl #24 \n\t" + "eor.w r6, r6, r10, lsl #8 \n\t" + "eor.w r6, r6, r11, lsl #16 \n\t" + "eor.w r6, r6, r12, lsl #24 \n\t" + + // AddRoundKey and AddRoundConst(from roundKeys) + "ldr.w r9, [r1,#24] \n\t" // load TK1 + "ldr.w r10, [r1,#28] \n\t" // load TK1 + "ldr.w r11, [r1,#240] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "ldr.w r12, [r1,#244] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + + "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) + "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) + // r8( s9 s8 s11 s10) + // r6(s12 s14 s14 s13) + + // MixColumn + "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 + "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 + "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 + // r8 ----------------> r8 + + // round 24 + + // SubCell+ShiftRow+AC(c2) + // r7 (s3 s2 s1 s0) + // r8 (s7 s6 s5 s4) + // r9 (s11 s10 s9 s8) + // r10(s15 s14 s13 s12) + + // 1st-2nd line + // r7(s3 s2 s1 s0) + "uxtb.w r5, r7, ror #24 \n\t" // s3 + "uxtb.w r4, r7, ror #16 \n\t" // s2 + "uxtb.w r3, r7, ror #8 \n\t" // s1 + "uxtb.w r7, r7 \n\t" // s0 + // r8(s6 s5 s4 s7) + "uxtb.w r12, r8, ror #16 \n\t" // s6 + "uxtb.w r11, r8, ror #8 \n\t" // s5 + "uxtb.w r6, r8 \n\t" // s4 + "uxtb.w r8, r8, ror #24 \n\t" // s7 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldr.w r0, [r1,#248] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r7, r7, r3, lsl #8 \n\t" + "eor.w r7, r7, r4, lsl #16 \n\t" + "eor.w r7, r7, r5, lsl #24 \n\t" + "eor.w r8, r8, r6, lsl #8 \n\t" + "eor.w r8, r8, r11, lsl #16 \n\t" + "eor.w r8, r8, r12, lsl #24 \n\t" + "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) + + // 3rd-4th line + // r9(s9 s8 s11 s10) + "uxtb.w r5, r9, ror #8 \n\t" // s9 + "uxtb.w r7, r9 \n\t" // s8 + "uxtb.w r3, r9, ror #24 \n\t" // s11 + "uxtb.w r9, r9, ror #16 \n\t" // s10 + // r10(s12 s15 s14 s13) + "uxtb.w r12, r10 \n\t" // s12 + "uxtb.w r11, r10, ror #24 \n\t" // s15 + "uxtb.w r6, r10, ror #16 \n\t" // s14 + "uxtb.w r10, r10, ror #8 \n\t" // s13 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldr.w r0, [r1,#252] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r9, r9, r3, lsl #8 \n\t" + "eor.w r9, r9, r7, lsl #16 \n\t" + "eor.w r9, r9, r5, lsl #24 \n\t" + "eor.w r10, r10, r6, lsl #8 \n\t" + "eor.w r10, r10, r11, lsl #16 \n\t" + "eor.w r10, r10, r12, lsl #24 \n\t" + "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) + + // AddRoundKey and AddRoundConst(from roundKeys) + + // r9( s9 s8 s11 s10) + // r10(s12 s14 s14 s13) + + // MixColumn + "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 + "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 + "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 + // r4 ----------------> r4 + // round 25 + + // SubCell+ShiftRow+AC(c2) + // r3 (s3 s2 s1 s0) + // r4 (s7 s6 s5 s4) + // r5 (s11 s10 s9 s8) + // r6 (s15 s14 s13 s12) + + // 1st-2nd line + // r3(s3 s2 s1 s0) + "uxtb.w r9, r3, ror #24 \n\t" // s3 + "uxtb.w r8, r3, ror #16 \n\t" // s2 + "uxtb.w r7, r3, ror #8 \n\t" // s1 + "uxtb.w r3, r3 \n\t" // s0 + // r4(s6 s5 s4 s7) + "uxtb.w r12, r4, ror #16 \n\t" // s6 + "uxtb.w r11, r4, ror #8 \n\t" // s5 + "uxtb.w r10, r4 \n\t" // s4 + "uxtb.w r4, r4, ror #24 \n\t" // s7 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "eor.w r3, r3, r7, lsl #8 \n\t" + "eor.w r3, r3, r8, lsl #16 \n\t" + "eor.w r3, r3, r9, lsl #24 \n\t" + "eor.w r4, r4, r10, lsl #8 \n\t" + "eor.w r4, r4, r11, lsl #16 \n\t" + "eor.w r4, r4, r12, lsl #24 \n\t" + + // 3rd-4th line + // r5(s9 s8 s11 s10) + "uxtb.w r9, r5, ror #8 \n\t" // s9 + "uxtb.w r8, r5 \n\t" // s8 + "uxtb.w r7, r5, ror #24 \n\t" // s11 + "uxtb.w r5, r5, ror #16 \n\t" // s10 + // r6(s12 s15 s14 s13) + "uxtb.w r12, r6 \n\t" // s12 + "uxtb.w r11, r6, ror #24 \n\t" // s15 + "uxtb.w r10, r6, ror #16 \n\t" // s14 + "uxtb.w r6, r6, ror #8 \n\t" // s13 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "eor.w r5, r5, r7, lsl #8 \n\t" + "eor.w r5, r5, r8, lsl #16 \n\t" + "eor.w r5, r5, r9, lsl #24 \n\t" + "eor.w r6, r6, r10, lsl #8 \n\t" + "eor.w r6, r6, r11, lsl #16 \n\t" + "eor.w r6, r6, r12, lsl #24 \n\t" + + // AddRoundKey and AddRoundConst(from roundKeys) + "ldr.w r9, [r1,#32] \n\t" // load TK1 + "ldr.w r10, [r1,#36] \n\t" // load TK1 + "ldr.w r11, [r1,#256] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "ldr.w r12, [r1,#260] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + + "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) + "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) + // r8( s9 s8 s11 s10) + // r6(s12 s14 s14 s13) + + // MixColumn + "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 + "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 + "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 + // r8 ----------------> r8 + + // round 26 + + // SubCell+ShiftRow+AC(c2) + // r7 (s3 s2 s1 s0) + // r8 (s7 s6 s5 s4) + // r9 (s11 s10 s9 s8) + // r10(s15 s14 s13 s12) + + // 1st-2nd line + // r7(s3 s2 s1 s0) + "uxtb.w r5, r7, ror #24 \n\t" // s3 + "uxtb.w r4, r7, ror #16 \n\t" // s2 + "uxtb.w r3, r7, ror #8 \n\t" // s1 + "uxtb.w r7, r7 \n\t" // s0 + // r8(s6 s5 s4 s7) + "uxtb.w r12, r8, ror #16 \n\t" // s6 + "uxtb.w r11, r8, ror #8 \n\t" // s5 + "uxtb.w r6, r8 \n\t" // s4 + "uxtb.w r8, r8, ror #24 \n\t" // s7 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldr.w r0, [r1,#264] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r7, r7, r3, lsl #8 \n\t" + "eor.w r7, r7, r4, lsl #16 \n\t" + "eor.w r7, r7, r5, lsl #24 \n\t" + "eor.w r8, r8, r6, lsl #8 \n\t" + "eor.w r8, r8, r11, lsl #16 \n\t" + "eor.w r8, r8, r12, lsl #24 \n\t" + "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) + + // 3rd-4th line + // r9(s9 s8 s11 s10) + "uxtb.w r5, r9, ror #8 \n\t" // s9 + "uxtb.w r7, r9 \n\t" // s8 + "uxtb.w r3, r9, ror #24 \n\t" // s11 + "uxtb.w r9, r9, ror #16 \n\t" // s10 + // r10(s12 s15 s14 s13) + "uxtb.w r12, r10 \n\t" // s12 + "uxtb.w r11, r10, ror #24 \n\t" // s15 + "uxtb.w r6, r10, ror #16 \n\t" // s14 + "uxtb.w r10, r10, ror #8 \n\t" // s13 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldr.w r0, [r1,#268] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r9, r9, r3, lsl #8 \n\t" + "eor.w r9, r9, r7, lsl #16 \n\t" + "eor.w r9, r9, r5, lsl #24 \n\t" + "eor.w r10, r10, r6, lsl #8 \n\t" + "eor.w r10, r10, r11, lsl #16 \n\t" + "eor.w r10, r10, r12, lsl #24 \n\t" + "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) + + // AddRoundKey and AddRoundConst(from roundKeys) + + // r9( s9 s8 s11 s10) + // r10(s12 s14 s14 s13) + + // MixColumn + "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 + "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 + "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 + // r4 ----------------> r4 + // round 27 + + // SubCell+ShiftRow+AC(c2) + // r3 (s3 s2 s1 s0) + // r4 (s7 s6 s5 s4) + // r5 (s11 s10 s9 s8) + // r6 (s15 s14 s13 s12) + + // 1st-2nd line + // r3(s3 s2 s1 s0) + "uxtb.w r9, r3, ror #24 \n\t" // s3 + "uxtb.w r8, r3, ror #16 \n\t" // s2 + "uxtb.w r7, r3, ror #8 \n\t" // s1 + "uxtb.w r3, r3 \n\t" // s0 + // r4(s6 s5 s4 s7) + "uxtb.w r12, r4, ror #16 \n\t" // s6 + "uxtb.w r11, r4, ror #8 \n\t" // s5 + "uxtb.w r10, r4 \n\t" // s4 + "uxtb.w r4, r4, ror #24 \n\t" // s7 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "eor.w r3, r3, r7, lsl #8 \n\t" + "eor.w r3, r3, r8, lsl #16 \n\t" + "eor.w r3, r3, r9, lsl #24 \n\t" + "eor.w r4, r4, r10, lsl #8 \n\t" + "eor.w r4, r4, r11, lsl #16 \n\t" + "eor.w r4, r4, r12, lsl #24 \n\t" + + // 3rd-4th line + // r5(s9 s8 s11 s10) + "uxtb.w r9, r5, ror #8 \n\t" // s9 + "uxtb.w r8, r5 \n\t" // s8 + "uxtb.w r7, r5, ror #24 \n\t" // s11 + "uxtb.w r5, r5, ror #16 \n\t" // s10 + // r6(s12 s15 s14 s13) + "uxtb.w r12, r6 \n\t" // s12 + "uxtb.w r11, r6, ror #24 \n\t" // s15 + "uxtb.w r10, r6, ror #16 \n\t" // s14 + "uxtb.w r6, r6, ror #8 \n\t" // s13 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "eor.w r5, r5, r7, lsl #8 \n\t" + "eor.w r5, r5, r8, lsl #16 \n\t" + "eor.w r5, r5, r9, lsl #24 \n\t" + "eor.w r6, r6, r10, lsl #8 \n\t" + "eor.w r6, r6, r11, lsl #16 \n\t" + "eor.w r6, r6, r12, lsl #24 \n\t" + + // AddRoundKey and AddRoundConst(from roundKeys) + "ldr.w r9, [r1,#40] \n\t" // load TK1 + "ldr.w r10, [r1,#44] \n\t" // load TK1 + "ldr.w r11, [r1,#272] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "ldr.w r12, [r1,#276] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + + "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) + "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) + // r8( s9 s8 s11 s10) + // r6(s12 s14 s14 s13) + + // MixColumn + "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 + "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 + "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 + // r8 ----------------> r8 + + // round 28 + + // SubCell+ShiftRow+AC(c2) + // r7 (s3 s2 s1 s0) + // r8 (s7 s6 s5 s4) + // r9 (s11 s10 s9 s8) + // r10(s15 s14 s13 s12) + + // 1st-2nd line + // r7(s3 s2 s1 s0) + "uxtb.w r5, r7, ror #24 \n\t" // s3 + "uxtb.w r4, r7, ror #16 \n\t" // s2 + "uxtb.w r3, r7, ror #8 \n\t" // s1 + "uxtb.w r7, r7 \n\t" // s0 + // r8(s6 s5 s4 s7) + "uxtb.w r12, r8, ror #16 \n\t" // s6 + "uxtb.w r11, r8, ror #8 \n\t" // s5 + "uxtb.w r6, r8 \n\t" // s4 + "uxtb.w r8, r8, ror #24 \n\t" // s7 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldr.w r0, [r1,#280] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r7, r7, r3, lsl #8 \n\t" + "eor.w r7, r7, r4, lsl #16 \n\t" + "eor.w r7, r7, r5, lsl #24 \n\t" + "eor.w r8, r8, r6, lsl #8 \n\t" + "eor.w r8, r8, r11, lsl #16 \n\t" + "eor.w r8, r8, r12, lsl #24 \n\t" + "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) + + // 3rd-4th line + // r9(s9 s8 s11 s10) + "uxtb.w r5, r9, ror #8 \n\t" // s9 + "uxtb.w r7, r9 \n\t" // s8 + "uxtb.w r3, r9, ror #24 \n\t" // s11 + "uxtb.w r9, r9, ror #16 \n\t" // s10 + // r10(s12 s15 s14 s13) + "uxtb.w r12, r10 \n\t" // s12 + "uxtb.w r11, r10, ror #24 \n\t" // s15 + "uxtb.w r6, r10, ror #16 \n\t" // s14 + "uxtb.w r10, r10, ror #8 \n\t" // s13 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldr.w r0, [r1,#284] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r9, r9, r3, lsl #8 \n\t" + "eor.w r9, r9, r7, lsl #16 \n\t" + "eor.w r9, r9, r5, lsl #24 \n\t" + "eor.w r10, r10, r6, lsl #8 \n\t" + "eor.w r10, r10, r11, lsl #16 \n\t" + "eor.w r10, r10, r12, lsl #24 \n\t" + "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) + + // AddRoundKey and AddRoundConst(from roundKeys) + + // r9( s9 s8 s11 s10) + // r10(s12 s14 s14 s13) + + // MixColumn + "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 + "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 + "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 + // r4 ----------------> r4 + // round 29 + + // SubCell+ShiftRow+AC(c2) + // r3 (s3 s2 s1 s0) + // r4 (s7 s6 s5 s4) + // r5 (s11 s10 s9 s8) + // r6 (s15 s14 s13 s12) + + // 1st-2nd line + // r3(s3 s2 s1 s0) + "uxtb.w r9, r3, ror #24 \n\t" // s3 + "uxtb.w r8, r3, ror #16 \n\t" // s2 + "uxtb.w r7, r3, ror #8 \n\t" // s1 + "uxtb.w r3, r3 \n\t" // s0 + // r4(s6 s5 s4 s7) + "uxtb.w r12, r4, ror #16 \n\t" // s6 + "uxtb.w r11, r4, ror #8 \n\t" // s5 + "uxtb.w r10, r4 \n\t" // s4 + "uxtb.w r4, r4, ror #24 \n\t" // s7 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "eor.w r3, r3, r7, lsl #8 \n\t" + "eor.w r3, r3, r8, lsl #16 \n\t" + "eor.w r3, r3, r9, lsl #24 \n\t" + "eor.w r4, r4, r10, lsl #8 \n\t" + "eor.w r4, r4, r11, lsl #16 \n\t" + "eor.w r4, r4, r12, lsl #24 \n\t" + + // 3rd-4th line + // r5(s9 s8 s11 s10) + "uxtb.w r9, r5, ror #8 \n\t" // s9 + "uxtb.w r8, r5 \n\t" // s8 + "uxtb.w r7, r5, ror #24 \n\t" // s11 + "uxtb.w r5, r5, ror #16 \n\t" // s10 + // r6(s12 s15 s14 s13) + "uxtb.w r12, r6 \n\t" // s12 + "uxtb.w r11, r6, ror #24 \n\t" // s15 + "uxtb.w r10, r6, ror #16 \n\t" // s14 + "uxtb.w r6, r6, ror #8 \n\t" // s13 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "eor.w r5, r5, r7, lsl #8 \n\t" + "eor.w r5, r5, r8, lsl #16 \n\t" + "eor.w r5, r5, r9, lsl #24 \n\t" + "eor.w r6, r6, r10, lsl #8 \n\t" + "eor.w r6, r6, r11, lsl #16 \n\t" + "eor.w r6, r6, r12, lsl #24 \n\t" + + // AddRoundKey and AddRoundConst(from roundKeys) + "ldr.w r9, [r1,#48] \n\t" // load TK1 + "ldr.w r10, [r1,#52] \n\t" // load TK1 + "ldr.w r11, [r1,#288] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "ldr.w r12, [r1,#292] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + + "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) + "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) + // r8( s9 s8 s11 s10) + // r6(s12 s14 s14 s13) + + // MixColumn + "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 + "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 + "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 + // r8 ----------------> r8 + + // round 30 + + // SubCell+ShiftRow+AC(c2) + // r7 (s3 s2 s1 s0) + // r8 (s7 s6 s5 s4) + // r9 (s11 s10 s9 s8) + // r10(s15 s14 s13 s12) + + // 1st-2nd line + // r7(s3 s2 s1 s0) + "uxtb.w r5, r7, ror #24 \n\t" // s3 + "uxtb.w r4, r7, ror #16 \n\t" // s2 + "uxtb.w r3, r7, ror #8 \n\t" // s1 + "uxtb.w r7, r7 \n\t" // s0 + // r8(s6 s5 s4 s7) + "uxtb.w r12, r8, ror #16 \n\t" // s6 + "uxtb.w r11, r8, ror #8 \n\t" // s5 + "uxtb.w r6, r8 \n\t" // s4 + "uxtb.w r8, r8, ror #24 \n\t" // s7 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldr.w r0, [r1,#296] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r7, r7, r3, lsl #8 \n\t" + "eor.w r7, r7, r4, lsl #16 \n\t" + "eor.w r7, r7, r5, lsl #24 \n\t" + "eor.w r8, r8, r6, lsl #8 \n\t" + "eor.w r8, r8, r11, lsl #16 \n\t" + "eor.w r8, r8, r12, lsl #24 \n\t" + "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) + + // 3rd-4th line + // r9(s9 s8 s11 s10) + "uxtb.w r5, r9, ror #8 \n\t" // s9 + "uxtb.w r7, r9 \n\t" // s8 + "uxtb.w r3, r9, ror #24 \n\t" // s11 + "uxtb.w r9, r9, ror #16 \n\t" // s10 + // r10(s12 s15 s14 s13) + "uxtb.w r12, r10 \n\t" // s12 + "uxtb.w r11, r10, ror #24 \n\t" // s15 + "uxtb.w r6, r10, ror #16 \n\t" // s14 + "uxtb.w r10, r10, ror #8 \n\t" // s13 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldr.w r0, [r1,#300] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r9, r9, r3, lsl #8 \n\t" + "eor.w r9, r9, r7, lsl #16 \n\t" + "eor.w r9, r9, r5, lsl #24 \n\t" + "eor.w r10, r10, r6, lsl #8 \n\t" + "eor.w r10, r10, r11, lsl #16 \n\t" + "eor.w r10, r10, r12, lsl #24 \n\t" + "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) + + // AddRoundKey and AddRoundConst(from roundKeys) + + // r9( s9 s8 s11 s10) + // r10(s12 s14 s14 s13) + + // MixColumn + "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 + "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 + "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 + // r4 ----------------> r4 + // round 31 + + // SubCell+ShiftRow+AC(c2) + // r3 (s3 s2 s1 s0) + // r4 (s7 s6 s5 s4) + // r5 (s11 s10 s9 s8) + // r6 (s15 s14 s13 s12) + + // 1st-2nd line + // r3(s3 s2 s1 s0) + "uxtb.w r9, r3, ror #24 \n\t" // s3 + "uxtb.w r8, r3, ror #16 \n\t" // s2 + "uxtb.w r7, r3, ror #8 \n\t" // s1 + "uxtb.w r3, r3 \n\t" // s0 + // r4(s6 s5 s4 s7) + "uxtb.w r12, r4, ror #16 \n\t" // s6 + "uxtb.w r11, r4, ror #8 \n\t" // s5 + "uxtb.w r10, r4 \n\t" // s4 + "uxtb.w r4, r4, ror #24 \n\t" // s7 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "eor.w r3, r3, r7, lsl #8 \n\t" + "eor.w r3, r3, r8, lsl #16 \n\t" + "eor.w r3, r3, r9, lsl #24 \n\t" + "eor.w r4, r4, r10, lsl #8 \n\t" + "eor.w r4, r4, r11, lsl #16 \n\t" + "eor.w r4, r4, r12, lsl #24 \n\t" + + // 3rd-4th line + // r5(s9 s8 s11 s10) + "uxtb.w r9, r5, ror #8 \n\t" // s9 + "uxtb.w r8, r5 \n\t" // s8 + "uxtb.w r7, r5, ror #24 \n\t" // s11 + "uxtb.w r5, r5, ror #16 \n\t" // s10 + // r6(s12 s15 s14 s13) + "uxtb.w r12, r6 \n\t" // s12 + "uxtb.w r11, r6, ror #24 \n\t" // s15 + "uxtb.w r10, r6, ror #16 \n\t" // s14 + "uxtb.w r6, r6, ror #8 \n\t" // s13 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "eor.w r5, r5, r7, lsl #8 \n\t" + "eor.w r5, r5, r8, lsl #16 \n\t" + "eor.w r5, r5, r9, lsl #24 \n\t" + "eor.w r6, r6, r10, lsl #8 \n\t" + "eor.w r6, r6, r11, lsl #16 \n\t" + "eor.w r6, r6, r12, lsl #24 \n\t" + + // AddRoundKey and AddRoundConst(from roundKeys) + "ldr.w r9, [r1,#56] \n\t" // load TK1 + "ldr.w r10, [r1,#60] \n\t" // load TK1 + "ldr.w r11, [r1,#304] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "ldr.w r12, [r1,#308] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + + "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) + "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) + // r8( s9 s8 s11 s10) + // r6(s12 s14 s14 s13) + + // MixColumn + "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 + "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 + "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 + // r8 ----------------> r8 + + // round 32 + + // SubCell+ShiftRow+AC(c2) + // r7 (s3 s2 s1 s0) + // r8 (s7 s6 s5 s4) + // r9 (s11 s10 s9 s8) + // r10(s15 s14 s13 s12) + + // 1st-2nd line + // r7(s3 s2 s1 s0) + "uxtb.w r5, r7, ror #24 \n\t" // s3 + "uxtb.w r4, r7, ror #16 \n\t" // s2 + "uxtb.w r3, r7, ror #8 \n\t" // s1 + "uxtb.w r7, r7 \n\t" // s0 + // r8(s6 s5 s4 s7) + "uxtb.w r12, r8, ror #16 \n\t" // s6 + "uxtb.w r11, r8, ror #8 \n\t" // s5 + "uxtb.w r6, r8 \n\t" // s4 + "uxtb.w r8, r8, ror #24 \n\t" // s7 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldr.w r0, [r1,#312] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r7, r7, r3, lsl #8 \n\t" + "eor.w r7, r7, r4, lsl #16 \n\t" + "eor.w r7, r7, r5, lsl #24 \n\t" + "eor.w r8, r8, r6, lsl #8 \n\t" + "eor.w r8, r8, r11, lsl #16 \n\t" + "eor.w r8, r8, r12, lsl #24 \n\t" + "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) + + // 3rd-4th line + // r9(s9 s8 s11 s10) + "uxtb.w r5, r9, ror #8 \n\t" // s9 + "uxtb.w r7, r9 \n\t" // s8 + "uxtb.w r3, r9, ror #24 \n\t" // s11 + "uxtb.w r9, r9, ror #16 \n\t" // s10 + // r10(s12 s15 s14 s13) + "uxtb.w r12, r10 \n\t" // s12 + "uxtb.w r11, r10, ror #24 \n\t" // s15 + "uxtb.w r6, r10, ror #16 \n\t" // s14 + "uxtb.w r10, r10, ror #8 \n\t" // s13 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldr.w r0, [r1,#316] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r9, r9, r3, lsl #8 \n\t" + "eor.w r9, r9, r7, lsl #16 \n\t" + "eor.w r9, r9, r5, lsl #24 \n\t" + "eor.w r10, r10, r6, lsl #8 \n\t" + "eor.w r10, r10, r11, lsl #16 \n\t" + "eor.w r10, r10, r12, lsl #24 \n\t" + "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) + + // AddRoundKey and AddRoundConst(from roundKeys) + + // r9( s9 s8 s11 s10) + // r10(s12 s14 s14 s13) + + // MixColumn + "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 + "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 + "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 + // r4 ----------------> r4 + // round 33 + + // SubCell+ShiftRow+AC(c2) + // r3 (s3 s2 s1 s0) + // r4 (s7 s6 s5 s4) + // r5 (s11 s10 s9 s8) + // r6 (s15 s14 s13 s12) + + // 1st-2nd line + // r3(s3 s2 s1 s0) + "uxtb.w r9, r3, ror #24 \n\t" // s3 + "uxtb.w r8, r3, ror #16 \n\t" // s2 + "uxtb.w r7, r3, ror #8 \n\t" // s1 + "uxtb.w r3, r3 \n\t" // s0 + // r4(s6 s5 s4 s7) + "uxtb.w r12, r4, ror #16 \n\t" // s6 + "uxtb.w r11, r4, ror #8 \n\t" // s5 + "uxtb.w r10, r4 \n\t" // s4 + "uxtb.w r4, r4, ror #24 \n\t" // s7 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "eor.w r3, r3, r7, lsl #8 \n\t" + "eor.w r3, r3, r8, lsl #16 \n\t" + "eor.w r3, r3, r9, lsl #24 \n\t" + "eor.w r4, r4, r10, lsl #8 \n\t" + "eor.w r4, r4, r11, lsl #16 \n\t" + "eor.w r4, r4, r12, lsl #24 \n\t" + + // 3rd-4th line + // r5(s9 s8 s11 s10) + "uxtb.w r9, r5, ror #8 \n\t" // s9 + "uxtb.w r8, r5 \n\t" // s8 + "uxtb.w r7, r5, ror #24 \n\t" // s11 + "uxtb.w r5, r5, ror #16 \n\t" // s10 + // r6(s12 s15 s14 s13) + "uxtb.w r12, r6 \n\t" // s12 + "uxtb.w r11, r6, ror #24 \n\t" // s15 + "uxtb.w r10, r6, ror #16 \n\t" // s14 + "uxtb.w r6, r6, ror #8 \n\t" // s13 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "eor.w r5, r5, r7, lsl #8 \n\t" + "eor.w r5, r5, r8, lsl #16 \n\t" + "eor.w r5, r5, r9, lsl #24 \n\t" + "eor.w r6, r6, r10, lsl #8 \n\t" + "eor.w r6, r6, r11, lsl #16 \n\t" + "eor.w r6, r6, r12, lsl #24 \n\t" + + // AddRoundKey and AddRoundConst(from roundKeys) + "ldr.w r9, [r1,#0] \n\t" // load TK1 + "ldr.w r10, [r1,#4] \n\t" // load TK1 + "ldr.w r11, [r1,#320] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "ldr.w r12, [r1,#324] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + + "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) + "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) + // r8( s9 s8 s11 s10) + // r6(s12 s14 s14 s13) + + // MixColumn + "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 + "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 + "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 + // r8 ----------------> r8 + + // round 34 + + // SubCell+ShiftRow+AC(c2) + // r7 (s3 s2 s1 s0) + // r8 (s7 s6 s5 s4) + // r9 (s11 s10 s9 s8) + // r10(s15 s14 s13 s12) + + // 1st-2nd line + // r7(s3 s2 s1 s0) + "uxtb.w r5, r7, ror #24 \n\t" // s3 + "uxtb.w r4, r7, ror #16 \n\t" // s2 + "uxtb.w r3, r7, ror #8 \n\t" // s1 + "uxtb.w r7, r7 \n\t" // s0 + // r8(s6 s5 s4 s7) + "uxtb.w r12, r8, ror #16 \n\t" // s6 + "uxtb.w r11, r8, ror #8 \n\t" // s5 + "uxtb.w r6, r8 \n\t" // s4 + "uxtb.w r8, r8, ror #24 \n\t" // s7 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldr.w r0, [r1,#328] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r7, r7, r3, lsl #8 \n\t" + "eor.w r7, r7, r4, lsl #16 \n\t" + "eor.w r7, r7, r5, lsl #24 \n\t" + "eor.w r8, r8, r6, lsl #8 \n\t" + "eor.w r8, r8, r11, lsl #16 \n\t" + "eor.w r8, r8, r12, lsl #24 \n\t" + "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) + + // 3rd-4th line + // r9(s9 s8 s11 s10) + "uxtb.w r5, r9, ror #8 \n\t" // s9 + "uxtb.w r7, r9 \n\t" // s8 + "uxtb.w r3, r9, ror #24 \n\t" // s11 + "uxtb.w r9, r9, ror #16 \n\t" // s10 + // r10(s12 s15 s14 s13) + "uxtb.w r12, r10 \n\t" // s12 + "uxtb.w r11, r10, ror #24 \n\t" // s15 + "uxtb.w r6, r10, ror #16 \n\t" // s14 + "uxtb.w r10, r10, ror #8 \n\t" // s13 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldr.w r0, [r1,#332] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r9, r9, r3, lsl #8 \n\t" + "eor.w r9, r9, r7, lsl #16 \n\t" + "eor.w r9, r9, r5, lsl #24 \n\t" + "eor.w r10, r10, r6, lsl #8 \n\t" + "eor.w r10, r10, r11, lsl #16 \n\t" + "eor.w r10, r10, r12, lsl #24 \n\t" + "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) + + // AddRoundKey and AddRoundConst(from roundKeys) + + // r9( s9 s8 s11 s10) + // r10(s12 s14 s14 s13) + + // MixColumn + "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 + "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 + "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 + // r4 ----------------> r4 + // round 35 + + // SubCell+ShiftRow+AC(c2) + // r3 (s3 s2 s1 s0) + // r4 (s7 s6 s5 s4) + // r5 (s11 s10 s9 s8) + // r6 (s15 s14 s13 s12) + + // 1st-2nd line + // r3(s3 s2 s1 s0) + "uxtb.w r9, r3, ror #24 \n\t" // s3 + "uxtb.w r8, r3, ror #16 \n\t" // s2 + "uxtb.w r7, r3, ror #8 \n\t" // s1 + "uxtb.w r3, r3 \n\t" // s0 + // r4(s6 s5 s4 s7) + "uxtb.w r12, r4, ror #16 \n\t" // s6 + "uxtb.w r11, r4, ror #8 \n\t" // s5 + "uxtb.w r10, r4 \n\t" // s4 + "uxtb.w r4, r4, ror #24 \n\t" // s7 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "eor.w r3, r3, r7, lsl #8 \n\t" + "eor.w r3, r3, r8, lsl #16 \n\t" + "eor.w r3, r3, r9, lsl #24 \n\t" + "eor.w r4, r4, r10, lsl #8 \n\t" + "eor.w r4, r4, r11, lsl #16 \n\t" + "eor.w r4, r4, r12, lsl #24 \n\t" + + // 3rd-4th line + // r5(s9 s8 s11 s10) + "uxtb.w r9, r5, ror #8 \n\t" // s9 + "uxtb.w r8, r5 \n\t" // s8 + "uxtb.w r7, r5, ror #24 \n\t" // s11 + "uxtb.w r5, r5, ror #16 \n\t" // s10 + // r6(s12 s15 s14 s13) + "uxtb.w r12, r6 \n\t" // s12 + "uxtb.w r11, r6, ror #24 \n\t" // s15 + "uxtb.w r10, r6, ror #16 \n\t" // s14 + "uxtb.w r6, r6, ror #8 \n\t" // s13 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "eor.w r5, r5, r7, lsl #8 \n\t" + "eor.w r5, r5, r8, lsl #16 \n\t" + "eor.w r5, r5, r9, lsl #24 \n\t" + "eor.w r6, r6, r10, lsl #8 \n\t" + "eor.w r6, r6, r11, lsl #16 \n\t" + "eor.w r6, r6, r12, lsl #24 \n\t" + + // AddRoundKey and AddRoundConst(from roundKeys) + "ldr.w r9, [r1,#8] \n\t" // load TK1 + "ldr.w r10, [r1,#12] \n\t" // load TK1 + "ldr.w r11, [r1,#336] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "ldr.w r12, [r1,#340] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + + "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) + "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) + // r8( s9 s8 s11 s10) + // r6(s12 s14 s14 s13) + + // MixColumn + "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 + "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 + "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 + // r8 ----------------> r8 + + // round 36 + + // SubCell+ShiftRow+AC(c2) + // r7 (s3 s2 s1 s0) + // r8 (s7 s6 s5 s4) + // r9 (s11 s10 s9 s8) + // r10(s15 s14 s13 s12) + + // 1st-2nd line + // r7(s3 s2 s1 s0) + "uxtb.w r5, r7, ror #24 \n\t" // s3 + "uxtb.w r4, r7, ror #16 \n\t" // s2 + "uxtb.w r3, r7, ror #8 \n\t" // s1 + "uxtb.w r7, r7 \n\t" // s0 + // r8(s6 s5 s4 s7) + "uxtb.w r12, r8, ror #16 \n\t" // s6 + "uxtb.w r11, r8, ror #8 \n\t" // s5 + "uxtb.w r6, r8 \n\t" // s4 + "uxtb.w r8, r8, ror #24 \n\t" // s7 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldr.w r0, [r1,#344] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r7, r7, r3, lsl #8 \n\t" + "eor.w r7, r7, r4, lsl #16 \n\t" + "eor.w r7, r7, r5, lsl #24 \n\t" + "eor.w r8, r8, r6, lsl #8 \n\t" + "eor.w r8, r8, r11, lsl #16 \n\t" + "eor.w r8, r8, r12, lsl #24 \n\t" + "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) + + // 3rd-4th line + // r9(s9 s8 s11 s10) + "uxtb.w r5, r9, ror #8 \n\t" // s9 + "uxtb.w r7, r9 \n\t" // s8 + "uxtb.w r3, r9, ror #24 \n\t" // s11 + "uxtb.w r9, r9, ror #16 \n\t" // s10 + // r10(s12 s15 s14 s13) + "uxtb.w r12, r10 \n\t" // s12 + "uxtb.w r11, r10, ror #24 \n\t" // s15 + "uxtb.w r6, r10, ror #16 \n\t" // s14 + "uxtb.w r10, r10, ror #8 \n\t" // s13 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldr.w r0, [r1,#348] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r9, r9, r3, lsl #8 \n\t" + "eor.w r9, r9, r7, lsl #16 \n\t" + "eor.w r9, r9, r5, lsl #24 \n\t" + "eor.w r10, r10, r6, lsl #8 \n\t" + "eor.w r10, r10, r11, lsl #16 \n\t" + "eor.w r10, r10, r12, lsl #24 \n\t" + "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) + + // AddRoundKey and AddRoundConst(from roundKeys) + + // r9( s9 s8 s11 s10) + // r10(s12 s14 s14 s13) + + // MixColumn + "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 + "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 + "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 + // r4 ----------------> r4 + // round 37 + + // SubCell+ShiftRow+AC(c2) + // r3 (s3 s2 s1 s0) + // r4 (s7 s6 s5 s4) + // r5 (s11 s10 s9 s8) + // r6 (s15 s14 s13 s12) + + // 1st-2nd line + // r3(s3 s2 s1 s0) + "uxtb.w r9, r3, ror #24 \n\t" // s3 + "uxtb.w r8, r3, ror #16 \n\t" // s2 + "uxtb.w r7, r3, ror #8 \n\t" // s1 + "uxtb.w r3, r3 \n\t" // s0 + // r4(s6 s5 s4 s7) + "uxtb.w r12, r4, ror #16 \n\t" // s6 + "uxtb.w r11, r4, ror #8 \n\t" // s5 + "uxtb.w r10, r4 \n\t" // s4 + "uxtb.w r4, r4, ror #24 \n\t" // s7 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "eor.w r3, r3, r7, lsl #8 \n\t" + "eor.w r3, r3, r8, lsl #16 \n\t" + "eor.w r3, r3, r9, lsl #24 \n\t" + "eor.w r4, r4, r10, lsl #8 \n\t" + "eor.w r4, r4, r11, lsl #16 \n\t" + "eor.w r4, r4, r12, lsl #24 \n\t" + + // 3rd-4th line + // r5(s9 s8 s11 s10) + "uxtb.w r9, r5, ror #8 \n\t" // s9 + "uxtb.w r8, r5 \n\t" // s8 + "uxtb.w r7, r5, ror #24 \n\t" // s11 + "uxtb.w r5, r5, ror #16 \n\t" // s10 + // r6(s12 s15 s14 s13) + "uxtb.w r12, r6 \n\t" // s12 + "uxtb.w r11, r6, ror #24 \n\t" // s15 + "uxtb.w r10, r6, ror #16 \n\t" // s14 + "uxtb.w r6, r6, ror #8 \n\t" // s13 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "eor.w r5, r5, r7, lsl #8 \n\t" + "eor.w r5, r5, r8, lsl #16 \n\t" + "eor.w r5, r5, r9, lsl #24 \n\t" + "eor.w r6, r6, r10, lsl #8 \n\t" + "eor.w r6, r6, r11, lsl #16 \n\t" + "eor.w r6, r6, r12, lsl #24 \n\t" + + // AddRoundKey and AddRoundConst(from roundKeys) + "ldr.w r9, [r1,#16] \n\t" // load TK1 + "ldr.w r10, [r1,#20] \n\t" // load TK1 + "ldr.w r11, [r1,#352] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "ldr.w r12, [r1,#356] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + + "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) + "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) + // r8( s9 s8 s11 s10) + // r6(s12 s14 s14 s13) + + // MixColumn + "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 + "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 + "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 + // r8 ----------------> r8 + + // round 38 + + // SubCell+ShiftRow+AC(c2) + // r7 (s3 s2 s1 s0) + // r8 (s7 s6 s5 s4) + // r9 (s11 s10 s9 s8) + // r10(s15 s14 s13 s12) + + // 1st-2nd line + // r7(s3 s2 s1 s0) + "uxtb.w r5, r7, ror #24 \n\t" // s3 + "uxtb.w r4, r7, ror #16 \n\t" // s2 + "uxtb.w r3, r7, ror #8 \n\t" // s1 + "uxtb.w r7, r7 \n\t" // s0 + // r8(s6 s5 s4 s7) + "uxtb.w r12, r8, ror #16 \n\t" // s6 + "uxtb.w r11, r8, ror #8 \n\t" // s5 + "uxtb.w r6, r8 \n\t" // s4 + "uxtb.w r8, r8, ror #24 \n\t" // s7 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldr.w r0, [r1,#360] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r7, r7, r3, lsl #8 \n\t" + "eor.w r7, r7, r4, lsl #16 \n\t" + "eor.w r7, r7, r5, lsl #24 \n\t" + "eor.w r8, r8, r6, lsl #8 \n\t" + "eor.w r8, r8, r11, lsl #16 \n\t" + "eor.w r8, r8, r12, lsl #24 \n\t" + "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) + + // 3rd-4th line + // r9(s9 s8 s11 s10) + "uxtb.w r5, r9, ror #8 \n\t" // s9 + "uxtb.w r7, r9 \n\t" // s8 + "uxtb.w r3, r9, ror #24 \n\t" // s11 + "uxtb.w r9, r9, ror #16 \n\t" // s10 + // r10(s12 s15 s14 s13) + "uxtb.w r12, r10 \n\t" // s12 + "uxtb.w r11, r10, ror #24 \n\t" // s15 + "uxtb.w r6, r10, ror #16 \n\t" // s14 + "uxtb.w r10, r10, ror #8 \n\t" // s13 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldr.w r0, [r1,#364] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r9, r9, r3, lsl #8 \n\t" + "eor.w r9, r9, r7, lsl #16 \n\t" + "eor.w r9, r9, r5, lsl #24 \n\t" + "eor.w r10, r10, r6, lsl #8 \n\t" + "eor.w r10, r10, r11, lsl #16 \n\t" + "eor.w r10, r10, r12, lsl #24 \n\t" + "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) + + // AddRoundKey and AddRoundConst(from roundKeys) + + // r9( s9 s8 s11 s10) + // r10(s12 s14 s14 s13) + + // MixColumn + "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 + "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 + "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 + // r4 ----------------> r4 + // round 39 + + // SubCell+ShiftRow+AC(c2) + // r3 (s3 s2 s1 s0) + // r4 (s7 s6 s5 s4) + // r5 (s11 s10 s9 s8) + // r6 (s15 s14 s13 s12) + + // 1st-2nd line + // r3(s3 s2 s1 s0) + "uxtb.w r9, r3, ror #24 \n\t" // s3 + "uxtb.w r8, r3, ror #16 \n\t" // s2 + "uxtb.w r7, r3, ror #8 \n\t" // s1 + "uxtb.w r3, r3 \n\t" // s0 + // r4(s6 s5 s4 s7) + "uxtb.w r12, r4, ror #16 \n\t" // s6 + "uxtb.w r11, r4, ror #8 \n\t" // s5 + "uxtb.w r10, r4 \n\t" // s4 + "uxtb.w r4, r4, ror #24 \n\t" // s7 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "eor.w r3, r3, r7, lsl #8 \n\t" + "eor.w r3, r3, r8, lsl #16 \n\t" + "eor.w r3, r3, r9, lsl #24 \n\t" + "eor.w r4, r4, r10, lsl #8 \n\t" + "eor.w r4, r4, r11, lsl #16 \n\t" + "eor.w r4, r4, r12, lsl #24 \n\t" + + // 3rd-4th line + // r5(s9 s8 s11 s10) + "uxtb.w r9, r5, ror #8 \n\t" // s9 + "uxtb.w r8, r5 \n\t" // s8 + "uxtb.w r7, r5, ror #24 \n\t" // s11 + "uxtb.w r5, r5, ror #16 \n\t" // s10 + // r6(s12 s15 s14 s13) + "uxtb.w r12, r6 \n\t" // s12 + "uxtb.w r11, r6, ror #24 \n\t" // s15 + "uxtb.w r10, r6, ror #16 \n\t" // s14 + "uxtb.w r6, r6, ror #8 \n\t" // s13 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "eor.w r5, r5, r7, lsl #8 \n\t" + "eor.w r5, r5, r8, lsl #16 \n\t" + "eor.w r5, r5, r9, lsl #24 \n\t" + "eor.w r6, r6, r10, lsl #8 \n\t" + "eor.w r6, r6, r11, lsl #16 \n\t" + "eor.w r6, r6, r12, lsl #24 \n\t" + + // AddRoundKey and AddRoundConst(from roundKeys) + "ldr.w r9, [r1,#24] \n\t" // load TK1 + "ldr.w r10, [r1,#28] \n\t" // load TK1 + "ldr.w r11, [r1,#368] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "ldr.w r12, [r1,#372] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + + "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) + "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) + // r8( s9 s8 s11 s10) + // r6(s12 s14 s14 s13) + + // MixColumn + "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 + "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 + "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 + // r8 ----------------> r8 + + // round 40 + + // SubCell+ShiftRow+AC(c2) + // r7 (s3 s2 s1 s0) + // r8 (s7 s6 s5 s4) + // r9 (s11 s10 s9 s8) + // r10(s15 s14 s13 s12) + + // 1st-2nd line + // r7(s3 s2 s1 s0) + "uxtb.w r5, r7, ror #24 \n\t" // s3 + "uxtb.w r4, r7, ror #16 \n\t" // s2 + "uxtb.w r3, r7, ror #8 \n\t" // s1 + "uxtb.w r7, r7 \n\t" // s0 + // r8(s6 s5 s4 s7) + "uxtb.w r12, r8, ror #16 \n\t" // s6 + "uxtb.w r11, r8, ror #8 \n\t" // s5 + "uxtb.w r6, r8 \n\t" // s4 + "uxtb.w r8, r8, ror #24 \n\t" // s7 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldr.w r0, [r1,#376] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r7, r7, r3, lsl #8 \n\t" + "eor.w r7, r7, r4, lsl #16 \n\t" + "eor.w r7, r7, r5, lsl #24 \n\t" + "eor.w r8, r8, r6, lsl #8 \n\t" + "eor.w r8, r8, r11, lsl #16 \n\t" + "eor.w r8, r8, r12, lsl #24 \n\t" + "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) + + // 3rd-4th line + // r9(s9 s8 s11 s10) + "uxtb.w r5, r9, ror #8 \n\t" // s9 + "uxtb.w r7, r9 \n\t" // s8 + "uxtb.w r3, r9, ror #24 \n\t" // s11 + "uxtb.w r9, r9, ror #16 \n\t" // s10 + // r10(s12 s15 s14 s13) + "uxtb.w r12, r10 \n\t" // s12 + "uxtb.w r11, r10, ror #24 \n\t" // s15 + "uxtb.w r6, r10, ror #16 \n\t" // s14 + "uxtb.w r10, r10, ror #8 \n\t" // s13 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldr.w r0, [r1,#380] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r9, r9, r3, lsl #8 \n\t" + "eor.w r9, r9, r7, lsl #16 \n\t" + "eor.w r9, r9, r5, lsl #24 \n\t" + "eor.w r10, r10, r6, lsl #8 \n\t" + "eor.w r10, r10, r11, lsl #16 \n\t" + "eor.w r10, r10, r12, lsl #24 \n\t" + "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) + + // AddRoundKey and AddRoundConst(from roundKeys) + + // r9( s9 s8 s11 s10) + // r10(s12 s14 s14 s13) + + // MixColumn + "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 + "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 + "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 + // r4 ----------------> r4 + + "ldmia.w sp!, {r0} \n\t" // pop store pointer + // r0 reload + + "str.w r3, [r0,#0] \n\t" // store ciphertext + "str.w r4, [r0,#4] \n\t" // store ciphertext + "str.w r5, [r0,#8] \n\t" // store ciphertext + "str.w r6, [r0,#12] \n\t" // store ciphertext + + "ldmia.w sp!, {r4-r12,r14} \n\t" + : + : [block] "r" (block), [roundKeys] "r" (roundKeys), [pSBOX] "" (pSBOX) + : "cc"); +} + diff --git a/romulus/Implementations/crypto_aead/romulusm1+/opt32/api.h b/romulus/Implementations/crypto_aead/romulusm1+/opt32/api.h new file mode 100644 index 0000000..a4aa567 --- /dev/null +++ b/romulus/Implementations/crypto_aead/romulusm1+/opt32/api.h @@ -0,0 +1,5 @@ +#define CRYPTO_KEYBYTES 16 +#define CRYPTO_NSECBYTES 0 +#define CRYPTO_NPUBBYTES 16 +#define CRYPTO_ABYTES 16 +#define CRYPTO_NOOVERLAP 1 diff --git a/romulus/Implementations/crypto_aead/romulusm1+/opt32/crypto_aead.h b/romulus/Implementations/crypto_aead/romulusm1+/opt32/crypto_aead.h new file mode 100644 index 0000000..e2ca9b0 --- /dev/null +++ b/romulus/Implementations/crypto_aead/romulusm1+/opt32/crypto_aead.h @@ -0,0 +1,18 @@ + +int crypto_aead_encrypt( + unsigned char *c, unsigned long long *clen, + const unsigned char *m, unsigned long long mlen, + const unsigned char *ad, unsigned long long adlen, + const unsigned char *nsec, + const unsigned char *npub, + const unsigned char *k +); + +int crypto_aead_decrypt( + unsigned char *m, unsigned long long *mlen, + unsigned char *nsec, + const unsigned char *c, unsigned long long clen, + const unsigned char *ad, unsigned long long adlen, + const unsigned char *npub, + const unsigned char *k +); \ No newline at end of file diff --git a/romulus/Implementations/crypto_aead/romulusm1+/opt32/encrypt.c b/romulus/Implementations/crypto_aead/romulusm1+/opt32/encrypt.c new file mode 100644 index 0000000..ba9f51d --- /dev/null +++ b/romulus/Implementations/crypto_aead/romulusm1+/opt32/encrypt.c @@ -0,0 +1,367 @@ +#include "skinny128.h" +#include "tk_schedule.h" +#include "romulus.h" +#include +#include + +static u8 final_ad_domain (unsigned long long adlen, unsigned long long mlen) { + u8 domain = 0; + u32 leftover; + //Determine which domain bits we need based on the length of the ad + if (adlen == 0) { + domain ^= 0x02; // No message, so only 1 block with padding + } else { + leftover = (u32)(adlen % (2 * BLOCKBYTES)); + if (leftover == 0) { // Even or odd ad length? + domain ^= 0x08; // Even with a full double block at the end + } else if (leftover < BLOCKBYTES) { + domain ^= 0x02; // Odd with a partial single block at the end + } else if (leftover > BLOCKBYTES) { + domain ^= 0x0A; // Even with a partial double block at the end + } + } + //Determine which domain bits we need based on the length of the message + if (mlen == 0) { + domain ^= 0x01; // No message, so only 1 block with padding + } else { + leftover = (unsigned)(mlen % (2 * BLOCKBYTES)); + if (leftover == 0) { // Even or odd message length? + domain ^= 0x04; // Even with a full double block at the end + } else if (leftover < BLOCKBYTES) { + domain ^= 0x01; // Odd with a partial single block at the end + } else if (leftover > BLOCKBYTES) { + domain ^= 0x05; // Even with a partial double block at the end + } + } + return domain; +} + +//Encryption and authentication using Romulus-N1 +int crypto_aead_encrypt + (unsigned char *c, unsigned long long *clen, + const unsigned char *m, unsigned long long mlen, + const unsigned char *ad, unsigned long long adlen, + const unsigned char *nsec, + const unsigned char *npub, + const unsigned char *k) { + + u32 tmp; + u64 tmp_mlen = mlen; + const u8* m_auth = m; + u8 final_domain = 0x30; + skinny_128_384_tks tks; + u8 state[BLOCKBYTES], pad[BLOCKBYTES]; + (void)nsec; + + // ----------------- Initialization ----------------- + *clen = mlen + TAGBYTES; + memset(tks.tk1, 0x00, KEYBYTES); + memset(state, 0x00, BLOCKBYTES); + tks.tk1[0] = 0x01; // Init the 56-bit LFSR counter + // ----------------- Initialization ----------------- + + // ----------------- Process the associated data ----------------- + final_domain ^= final_ad_domain(adlen, mlen); + SET_DOMAIN(tks, 0x28); + while (adlen > 2*BLOCKBYTES) { // Process double blocks but the last + UPDATE_CTR(tks.tk1); + XOR_BLOCK(state, state, ad); + precompute_rtk2_3(tks.rtk2_3, npub, k); + precompute_rtk1(tks.rtk1, tks.tk1); + skinny128_384_plus(state, state, tks.rtk1, tks.rtk2_3); + UPDATE_CTR(tks.tk1); + ad += 2*BLOCKBYTES; + adlen -= 2*BLOCKBYTES; + } + // Pad and process the left-over blocks + if (adlen == 2*BLOCKBYTES) { // Left-over complete double block + UPDATE_CTR(tks.tk1); + XOR_BLOCK(state, state, ad); + precompute_rtk2_3(tks.rtk2_3, ad + BLOCKBYTES, k); + precompute_rtk1(tks.rtk1, tks.tk1); + skinny128_384_plus(state, state, tks.rtk1, tks.rtk2_3); + UPDATE_CTR(tks.tk1); + } else if (adlen > BLOCKBYTES) { // Left-over partial double block + adlen -= BLOCKBYTES; + UPDATE_CTR(tks.tk1); + XOR_BLOCK(state, state, ad); + memcpy(pad, ad + BLOCKBYTES, adlen); + memset(pad + adlen, 0x00, 15 - adlen); + pad[15] = adlen; // Padding + precompute_rtk2_3(tks.rtk2_3, pad, k); + precompute_rtk1(tks.rtk1, tks.tk1); + skinny128_384_plus(state, state, tks.rtk1, tks.rtk2_3); + UPDATE_CTR(tks.tk1); + } else { + SET_DOMAIN(tks, 0x2C); + UPDATE_CTR(tks.tk1); + if (adlen == BLOCKBYTES) { // Left-over complete single block + XOR_BLOCK(state, state, ad); + } else { // Left-over partial single block + for(int i =0; i < (int)adlen; i++) + state[i] ^= ad[i]; + state[15] ^= adlen; // Padding + } + if (tmp_mlen >= BLOCKBYTES) { + precompute_rtk2_3(tks.rtk2_3, m_auth, k); + precompute_rtk1(tks.rtk1, tks.tk1); + skinny128_384_plus(state, state, tks.rtk1, tks.rtk2_3); + if (tmp_mlen > BLOCKBYTES) + UPDATE_CTR(tks.tk1); + tmp_mlen -= BLOCKBYTES; + m_auth += BLOCKBYTES; + } else { + memcpy(pad, m_auth, tmp_mlen); + memset(pad + tmp_mlen, 0x00, BLOCKBYTES - tmp_mlen - 1); + pad[15] = (u8)tmp_mlen; // Padding + precompute_rtk2_3(tks.rtk2_3, pad, k); + precompute_rtk1(tks.rtk1, tks.tk1); + skinny128_384_plus(state, state, tks.rtk1, tks.rtk2_3); + tmp_mlen = 0; + } + } + // Process all message double blocks except the last + SET_DOMAIN(tks, 0x2C); + while (tmp_mlen > 32) { + UPDATE_CTR(tks.tk1); + XOR_BLOCK(state, state, m_auth); + precompute_rtk2_3(tks.rtk2_3, m_auth + BLOCKBYTES, k); + precompute_rtk1(tks.rtk1, tks.tk1); + skinny128_384_plus(state, state, tks.rtk1, tks.rtk2_3); + UPDATE_CTR(tks.tk1); + m_auth += 2 * BLOCKBYTES; + tmp_mlen -= 2 * BLOCKBYTES; + } + // Process the last message double block + if (tmp_mlen == 2 * BLOCKBYTES) { // Last message double block is full + UPDATE_CTR(tks.tk1); + XOR_BLOCK(state, state, m_auth); + precompute_rtk2_3(tks.rtk2_3, m_auth + BLOCKBYTES, k); + precompute_rtk1(tks.rtk1, tks.tk1); + skinny128_384_plus(state, state, tks.rtk1, tks.rtk2_3); + } else if (tmp_mlen > BLOCKBYTES) { // Last message double block is partial + tmp_mlen -= BLOCKBYTES; + UPDATE_CTR(tks.tk1); + XOR_BLOCK(state, state, m_auth); + memcpy(pad, m_auth + BLOCKBYTES, tmp_mlen); + memset(pad + tmp_mlen, 0x00, BLOCKBYTES - tmp_mlen - 1); + pad[15] = (u8)tmp_mlen; // Padding + precompute_rtk2_3(tks.rtk2_3, pad, k); + precompute_rtk1(tks.rtk1, tks.tk1); + skinny128_384_plus(state, state, tks.rtk1, tks.rtk2_3); + } else if (tmp_mlen == BLOCKBYTES) { // Last message single block is full + XOR_BLOCK(state, state, m_auth); + } else if (tmp_mlen > 0) { // Last message single block is partial + for(int i =0; i < (int)tmp_mlen; i++) + state[i] ^= m_auth[i]; + state[15] ^= (u8)tmp_mlen; // Padding + } + // Process the last partial block + SET_DOMAIN(tks, final_domain); + UPDATE_CTR(tks.tk1); + precompute_rtk2_3(tks.rtk2_3, npub, k); + precompute_rtk1(tks.rtk1, tks.tk1); + skinny128_384_plus(state, state, tks.rtk1, tks.rtk2_3); + // ----------------- Process the associated data ----------------- + + + // ----------------- Generate the tag ----------------- + G(state,state); + memcpy(c + mlen, state, TAGBYTES); + // ----------------- Generate the tag ----------------- + + memset(tks.tk1, 0x00, KEYBYTES); + tks.tk1[0] = 0x01; // Init the 56-bit LFSR counter + if (mlen > 0) { + SET_DOMAIN(tks, 0x24); + while (mlen > BLOCKBYTES) { + precompute_rtk1(tks.rtk1, tks.tk1); + skinny128_384_plus(state, state, tks.rtk1, tks.rtk2_3); + RHO(state,c,m); + UPDATE_CTR(tks.tk1); + c += BLOCKBYTES; + m += BLOCKBYTES; + mlen -= BLOCKBYTES; + } + precompute_rtk1(tks.rtk1, tks.tk1); + skinny128_384_plus(state, state, tks.rtk1, tks.rtk2_3); + for(int i = 0; i < (int)mlen; i++) { + tmp = m[i]; // Use of tmp variable in case c = m + c[i] = m[i] ^ (state[i] >> 1) ^ (state[i] & 0x80) ^ (state[i] << 7); + state[i] ^= (u8)tmp; + } + state[15] ^= (u8)mlen; // Padding + } + + return 0; +} + +//Decryption and tag verification using Romulus-N1 +int crypto_aead_decrypt + (unsigned char *m, unsigned long long *mlen, + unsigned char *nsec, + const unsigned char *c, unsigned long long clen, + const unsigned char *ad, unsigned long long adlen, + const unsigned char *npub, + const unsigned char *k) { + + u32 tmp; + u64 tmp_mlen; + u8 final_domain = 0x30; + u8* m_auth = m; + const u8* c_tmp = c; + skinny_128_384_tks tks; + u8 state[BLOCKBYTES], pad[BLOCKBYTES]; + (void)nsec; + + if (clen < TAGBYTES) + return -1; + + // ----------------- Initialization ----------------- + *mlen = clen - TAGBYTES; + memset(tks.tk1, 0x00, KEYBYTES); + tks.tk1[0] = 0x01; // Init the 56-bit LFSR counter + // ----------------- Initialization ----------------- + + // ----------------- Process the ciphertext ----------------- + clen -= TAGBYTES; + memcpy(state, c + clen, TAGBYTES); + tmp_mlen = clen; + if (tmp_mlen > 0) { + SET_DOMAIN(tks, 0x24); + precompute_rtk2_3(tks.rtk2_3, npub, k); + while (tmp_mlen > BLOCKBYTES) { + precompute_rtk1(tks.rtk1, tks.tk1); + skinny128_384_plus(state, state, tks.rtk1, tks.rtk2_3); + RHO_INV(state, c, m); + UPDATE_CTR(tks.tk1); + c += BLOCKBYTES; + m += BLOCKBYTES; + tmp_mlen -= BLOCKBYTES; + } + precompute_rtk1(tks.rtk1, tks.tk1); + skinny128_384_plus(state, state, tks.rtk1, tks.rtk2_3); + for(int i = 0; i < (int)tmp_mlen; i++) { + m[i] = c[i] ^ (state[i] >> 1) ^ (state[i] & 0x80) ^ (state[i] << 7); + state[i] ^= m[i]; + } + state[15] ^= (u8)tmp_mlen; // Padding + } + // ----------------- Process the ciphertext ----------------- + + // ----------------- Process the associated data ----------------- + memset(tks.tk1, 0x00, KEYBYTES); + tks.tk1[0] = 0x01; // Init the 56-bit LFSR counter + memset(state, 0x00, BLOCKBYTES); + final_domain ^= final_ad_domain(adlen, clen); + SET_DOMAIN(tks, 0x28); + while (adlen > 2*BLOCKBYTES) { // Process double blocks but the last + UPDATE_CTR(tks.tk1); + XOR_BLOCK(state, state, ad); + precompute_rtk2_3(tks.rtk2_3, ad + BLOCKBYTES, k); + precompute_rtk1(tks.rtk1, tks.tk1); + skinny128_384_plus(state, state, tks.rtk1, tks.rtk2_3); + UPDATE_CTR(tks.tk1); + ad += 2*BLOCKBYTES; + adlen -= 2*BLOCKBYTES; + } + // Pad and process the left-over blocks + if (adlen == 2*BLOCKBYTES) { // Left-over complete double block + UPDATE_CTR(tks.tk1); + XOR_BLOCK(state, state, ad); + precompute_rtk2_3(tks.rtk2_3, ad + BLOCKBYTES, k); + precompute_rtk1(tks.rtk1, tks.tk1); + skinny128_384_plus(state, state, tks.rtk1, tks.rtk2_3); + UPDATE_CTR(tks.tk1); + } else if (adlen > BLOCKBYTES) { // Left-over partial double block + adlen -= BLOCKBYTES; + UPDATE_CTR(tks.tk1); + XOR_BLOCK(state, state, ad); + memcpy(pad, ad + BLOCKBYTES, adlen); + memset(pad + adlen, 0x00, 15 - adlen); + pad[15] = adlen; // Padding + precompute_rtk2_3(tks.rtk2_3, pad, k); + precompute_rtk1(tks.rtk1, tks.tk1); + skinny128_384_plus(state, state, tks.rtk1, tks.rtk2_3); + UPDATE_CTR(tks.tk1); + } else { + SET_DOMAIN(tks, 0x2C); + UPDATE_CTR(tks.tk1); + if (adlen == BLOCKBYTES) { // Left-over complete single block + XOR_BLOCK(state, state, ad); + } else { // Left-over partial single block + for(int i =0; i < (int)adlen; i++) + state[i] ^= ad[i]; + state[15] ^= adlen; // Padding + } + if (clen >= BLOCKBYTES) { + precompute_rtk2_3(tks.rtk2_3, m_auth, k); + precompute_rtk1(tks.rtk1, tks.tk1); + skinny128_384_plus(state, state, tks.rtk1, tks.rtk2_3); + if (clen > BLOCKBYTES) + UPDATE_CTR(tks.tk1); + m_auth += BLOCKBYTES; + clen -= BLOCKBYTES; + } else { + memcpy(pad, m_auth, clen); + memset(pad + clen, 0x00, BLOCKBYTES - clen - 1); + pad[15] = (u8)clen; // Padding + precompute_rtk2_3(tks.rtk2_3, pad, k); + precompute_rtk1(tks.rtk1, tks.tk1); + skinny128_384_plus(state, state, tks.rtk1, tks.rtk2_3); + clen = 0; + } + } + // Process all message double blocks except the last + SET_DOMAIN(tks, 0x2C); + while (clen > 32) { + UPDATE_CTR(tks.tk1); + XOR_BLOCK(state, state, m_auth); + precompute_rtk2_3(tks.rtk2_3, m_auth + BLOCKBYTES, k); + precompute_rtk1(tks.rtk1, tks.tk1); + skinny128_384_plus(state, state, tks.rtk1, tks.rtk2_3); + UPDATE_CTR(tks.tk1); + m_auth += 2 * BLOCKBYTES; + clen -= 2 * BLOCKBYTES; + } + // Process the last message double block + if (clen == 2 * BLOCKBYTES) { // Last message double block is full + UPDATE_CTR(tks.tk1); + XOR_BLOCK(state, state, m_auth); + precompute_rtk2_3(tks.rtk2_3, m_auth + BLOCKBYTES, k); + precompute_rtk1(tks.rtk1, tks.tk1); + skinny128_384_plus(state, state, tks.rtk1, tks.rtk2_3); + } else if (clen > BLOCKBYTES) { // Last message double block is partial + clen -= BLOCKBYTES; + UPDATE_CTR(tks.tk1); + XOR_BLOCK(state, state, m_auth); + memcpy(pad, m_auth + BLOCKBYTES, clen); + memset(pad + clen, 0x00, BLOCKBYTES - clen - 1); + pad[15] = (u8)clen; // Padding + precompute_rtk2_3(tks.rtk2_3, pad, k); + precompute_rtk1(tks.rtk1, tks.tk1); + skinny128_384_plus(state, state, tks.rtk1, tks.rtk2_3); + } else if (clen == BLOCKBYTES) { // Last message single block is full + XOR_BLOCK(state, state, m_auth); + } else if (clen > 0) { // Last message single block is partial + for(int i =0; i < (int)clen; i++) + state[i] ^= m[i]; + state[15] ^= (u8)clen; // Padding + } + // Process the last partial block + SET_DOMAIN(tks, final_domain); + UPDATE_CTR(tks.tk1); + precompute_rtk2_3(tks.rtk2_3, npub, k); + precompute_rtk1(tks.rtk1, tks.tk1); + skinny128_384_plus(state, state, tks.rtk1, tks.rtk2_3); + // ----------------- Process the associated data ----------------- + + // ----------------- Generate and check the tag ----------------- + G(state,state); + tmp = 0; + for(int i = 0; i < TAGBYTES; i++) + tmp |= state[i] ^ c_tmp[*mlen+i]; //constant-time tag comparison + // ----------------- Generate and check the tag ----------------- + + return tmp; +} \ No newline at end of file diff --git a/romulus/Implementations/crypto_aead/romulusm1+/opt32/romulus.h b/romulus/Implementations/crypto_aead/romulusm1+/opt32/romulus.h new file mode 100644 index 0000000..b254e2a --- /dev/null +++ b/romulus/Implementations/crypto_aead/romulusm1+/opt32/romulus.h @@ -0,0 +1,69 @@ +#ifndef ROMULUSN1_H_ +#define ROMULUSN1_H_ + +#include "skinny128.h" + +typedef unsigned char u8; +typedef unsigned int u32; +typedef unsigned int u64; +typedef struct { + u8 tk1[16]; //to manipulate tk1 byte-wise + u32 rtk1[4*16]; //to avoid tk schedule recomputations + u32 rtk2_3[4*SKINNY128_384_ROUNDS]; //all round tweakeys +} skinny_128_384_tks; + +#define TAGBYTES 16 +#define KEYBYTES 16 +#define BLOCKBYTES 16 + +#define SET_DOMAIN(tks, domain) ((tks).tk1[7] = (domain)) + +//G as defined in the Romulus specification in a 32-bit word-wise manner +#define G(x,y) ({ \ + tmp = ((u32*)(y))[0]; \ + ((u32*)(x))[0] = (tmp >> 1 & 0x7f7f7f7f) ^ ((tmp ^ (tmp << 7)) & 0x80808080); \ + tmp = ((u32*)(y))[1]; \ + ((u32*)(x))[1] = (tmp >> 1 & 0x7f7f7f7f) ^ ((tmp ^ (tmp << 7)) & 0x80808080); \ + tmp = ((u32*)(y))[2]; \ + ((u32*)(x))[2] = (tmp >> 1 & 0x7f7f7f7f) ^ ((tmp ^ (tmp << 7)) & 0x80808080); \ + tmp = ((u32*)(y))[3]; \ + ((u32*)(x))[3] = (tmp >> 1 & 0x7f7f7f7f) ^ ((tmp ^ (tmp << 7)) & 0x80808080); \ +}) + +//update the counter in tk1 in a 32-bit word-wise manner +#define UPDATE_CTR(tk1) ({ \ + tmp = ((u32*)(tk1))[1]; \ + ((u32*)(tk1))[1] = (tmp << 1) & 0x00ffffff; \ + ((u32*)(tk1))[1] |= (((u32*)(tk1))[0] >> 31); \ + ((u32*)(tk1))[1] |= tmp & 0xff000000; \ + ((u32*)(tk1))[0] <<= 1; \ + if ((tmp >> 23) & 0x01) \ + ((u32*)(tk1))[0] ^= 0x95; \ +}) + +//x <- y ^ z for 128-bit blocks +#define XOR_BLOCK(x,y,z) ({ \ + ((u32*)(x))[0] = ((u32*)(y))[0] ^ ((u32*)(z))[0]; \ + ((u32*)(x))[1] = ((u32*)(y))[1] ^ ((u32*)(z))[1]; \ + ((u32*)(x))[2] = ((u32*)(y))[2] ^ ((u32*)(z))[2]; \ + ((u32*)(x))[3] = ((u32*)(y))[3] ^ ((u32*)(z))[3]; \ +}) + + +//Rho as defined in the Romulus specification +//use pad as a tmp variable in case y = z +#define RHO(x,y,z) ({ \ + G(pad,x); \ + XOR_BLOCK(y, pad, z); \ + XOR_BLOCK(x, x, z); \ +}) + +//Rho inverse as defined in the Romulus specification +//use pad as a tmp variable in case y = z +#define RHO_INV(x, y, z) ({ \ + G(pad, x); \ + XOR_BLOCK(z, pad, y); \ + XOR_BLOCK(x, x, z); \ +}) + +#endif // ROMULUSN1_H_ \ No newline at end of file diff --git a/romulus/Implementations/crypto_aead/romulusm1+/opt32/skinny128.c b/romulus/Implementations/crypto_aead/romulusm1+/opt32/skinny128.c new file mode 100644 index 0000000..a1061d5 --- /dev/null +++ b/romulus/Implementations/crypto_aead/romulusm1+/opt32/skinny128.c @@ -0,0 +1,107 @@ +/****************************************************************************** +* Constant-time implementation of the SKINNY tweakable block ciphers. +* +* This implementation doesn't compute the ShiftRows operation. Some masks and +* shifts are applied during the MixColumns operation so that the proper bits +* are XORed together. Moreover, the row permutation within the MixColumns +* is omitted, as well as the bit permutation at the end of the Sbox. The rows +* are synchronized with the classical after only 4 rounds. Therefore, this +* implementation relies on a "QUADRUPLE_ROUND" routine. +* +* The Sbox computation takes advantage of some symmetry in the 8-bit Sbox to +* turn it into a 4-bit S-box computation. Although the last bit permutation +* within the Sbox is not computed, the bit ordering is synchronized with the +* classical representation after 2 calls. +* +* @author Alexandre Adomnicai, Nanyang Technological University, +* alexandre.adomnicai@ntu.edu.sg +* +* @date May 2020 +******************************************************************************/ +#include +#include +#include "skinny128.h" +#include "tk_schedule.h" + +/****************************************************************************** +* The MixColumns computation for rounds i such that (i % 4) == 0 +******************************************************************************/ +void mixcolumns_0(u32* state) { + u32 tmp; + for(int i = 0; i < 4; i++) { + tmp = ROR(state[i],24) & 0x0c0c0c0c; + state[i] ^= ROR(tmp,30); + tmp = ROR(state[i],16) & 0xc0c0c0c0; + state[i] ^= ROR(tmp,4); + tmp = ROR(state[i],8) & 0x0c0c0c0c; + state[i] ^= ROR(tmp,2); + } +} + +/****************************************************************************** +* The MixColumns computation for rounds i such that (i % 4) == 1 +******************************************************************************/ +void mixcolumns_1(u32* state) { + u32 tmp; + for(int i = 0; i < 4; i++) { + tmp = ROR(state[i],16) & 0x30303030; + state[i] ^= ROR(tmp,30); + tmp = state[i] & 0x03030303; + state[i] ^= ROR(tmp,28); + tmp = ROR(state[i],16) & 0x30303030; + state[i] ^= ROR(tmp,2); + } +} + +/****************************************************************************** +* The MixColumns computation for rounds i such that (i % 4) == 2 +******************************************************************************/ +void mixcolumns_2(u32* state) { + u32 tmp; + for(int i = 0; i < 4; i++) { + tmp = ROR(state[i],8) & 0xc0c0c0c0; + state[i] ^= ROR(tmp,6); + tmp = ROR(state[i],16) & 0x0c0c0c0c; + state[i] ^= ROR(tmp,28); + tmp = ROR(state[i],24) & 0xc0c0c0c0; + state[i] ^= ROR(tmp,2); + } +} + +/****************************************************************************** +* The MixColumns computation for rounds i such that (i % 4) == 3 +******************************************************************************/ +void mixcolumns_3(u32* state) { + u32 tmp; + for(int i = 0; i < 4; i++) { + tmp = state[i] & 0x03030303; + state[i] ^= ROR(tmp,30); + tmp = state[i] & 0x30303030; + state[i] ^= ROR(tmp,4); + tmp = state[i] & 0x03030303; + state[i] ^= ROR(tmp,26); + } +} + +/****************************************************************************** +* Encryption of a single block without any operation mode using SKINNY-128-384. +* RTK1 and RTK2_3 are given separately to take advantage of the fact that +* TK2 and TK3 remains the same through the entire data encryption/decryption. +******************************************************************************/ +void skinny128_384_plus(u8* ctext, const u8* ptext, const u32* rtk1, + const u32* rtk2_3) { + u32 tmp; // used in SWAPMOVE macro + u32 state[4]; // 128-bit state + packing(state, ptext); // from byte to bitsliced representation + QUADRUPLE_ROUND(state, rtk1, rtk2_3); + QUADRUPLE_ROUND(state, rtk1+16, rtk2_3+16); + QUADRUPLE_ROUND(state, rtk1+32, rtk2_3+32); + QUADRUPLE_ROUND(state, rtk1+48, rtk2_3+48); + QUADRUPLE_ROUND(state, rtk1, rtk2_3+64); + QUADRUPLE_ROUND(state, rtk1+16, rtk2_3+80); + QUADRUPLE_ROUND(state, rtk1+32, rtk2_3+96); + QUADRUPLE_ROUND(state, rtk1+48, rtk2_3+112); + QUADRUPLE_ROUND(state, rtk1, rtk2_3+128); + QUADRUPLE_ROUND(state, rtk1+16, rtk2_3+144); + unpacking(ctext, state); // from bitsliced to byte representation +} \ No newline at end of file diff --git a/romulus/Implementations/crypto_aead/romulusm1+/opt32/skinny128.h b/romulus/Implementations/crypto_aead/romulusm1+/opt32/skinny128.h new file mode 100644 index 0000000..bda1e9b --- /dev/null +++ b/romulus/Implementations/crypto_aead/romulusm1+/opt32/skinny128.h @@ -0,0 +1,95 @@ +#ifndef SKINNY128_H_ +#define SKINNY128_H_ + +typedef unsigned char u8; +typedef unsigned int u32; + +void skinny128_384_plus(u8* ctext, const u8* ptext, const u32* rtk1, const u32* rtk2_3); + +#define SKINNY128_384_ROUNDS 40 + +#define QUADRUPLE_ROUND(state, rtk1, rtk2_3) ({ \ + state[3] ^= ~(state[0] | state[1]); \ + SWAPMOVE(state[2], state[1], 0x55555555, 1); \ + SWAPMOVE(state[3], state[2], 0x55555555, 1); \ + state[1] ^= ~(state[2] | state[3]); \ + SWAPMOVE(state[1], state[0], 0x55555555, 1); \ + SWAPMOVE(state[0], state[3], 0x55555555, 1); \ + state[3] ^= ~(state[0] | state[1]); \ + SWAPMOVE(state[2], state[1], 0x55555555, 1); \ + SWAPMOVE(state[3], state[2], 0x55555555, 1); \ + state[1] ^= (state[2] | state[3]); \ + SWAPMOVE(state[3], state[0], 0x55555555, 0); \ + state[0] ^= (rtk1)[0]; \ + state[1] ^= (rtk1)[1]; \ + state[2] ^= (rtk1)[2]; \ + state[3] ^= (rtk1)[3]; \ + state[0] ^= (rtk2_3)[0]; \ + state[1] ^= (rtk2_3)[1]; \ + state[2] ^= (rtk2_3)[2]; \ + state[3] ^= (rtk2_3)[3]; \ + mixcolumns_0(state); \ + state[1] ^= ~(state[2] | state[3]); \ + SWAPMOVE(state[1], state[0], 0x55555555, 1); \ + SWAPMOVE(state[0], state[3], 0x55555555, 1); \ + state[3] ^= ~(state[0] | state[1]); \ + SWAPMOVE(state[2], state[1], 0x55555555, 1); \ + SWAPMOVE(state[3], state[2], 0x55555555, 1); \ + state[1] ^= ~(state[2] | state[3]); \ + SWAPMOVE(state[1], state[0], 0x55555555, 1); \ + SWAPMOVE(state[0], state[3], 0x55555555, 1); \ + state[3] ^= (state[0] | state[1]); \ + SWAPMOVE(state[1], state[2], 0x55555555, 0); \ + state[0] ^= (rtk1)[4]; \ + state[1] ^= (rtk1)[5]; \ + state[2] ^= (rtk1)[6]; \ + state[3] ^= (rtk1)[7]; \ + state[0] ^= (rtk2_3)[4]; \ + state[1] ^= (rtk2_3)[5]; \ + state[2] ^= (rtk2_3)[6]; \ + state[3] ^= (rtk2_3)[7]; \ + mixcolumns_1(state); \ + state[3] ^= ~(state[0] | state[1]); \ + SWAPMOVE(state[2], state[1], 0x55555555, 1); \ + SWAPMOVE(state[3], state[2], 0x55555555, 1); \ + state[1] ^= ~(state[2] | state[3]); \ + SWAPMOVE(state[1], state[0], 0x55555555, 1); \ + SWAPMOVE(state[0], state[3], 0x55555555, 1); \ + state[3] ^= ~(state[0] | state[1]); \ + SWAPMOVE(state[2], state[1], 0x55555555, 1); \ + SWAPMOVE(state[3], state[2], 0x55555555, 1); \ + state[1] ^= (state[2] | state[3]); \ + SWAPMOVE(state[3], state[0], 0x55555555, 0); \ + state[0] ^= (rtk1)[8]; \ + state[1] ^= (rtk1)[9]; \ + state[2] ^= (rtk1)[10]; \ + state[3] ^= (rtk1)[11]; \ + state[0] ^= (rtk2_3)[8]; \ + state[1] ^= (rtk2_3)[9]; \ + state[2] ^= (rtk2_3)[10]; \ + state[3] ^= (rtk2_3)[11]; \ + mixcolumns_2(state); \ + state[1] ^= ~(state[2] | state[3]); \ + SWAPMOVE(state[1], state[0], 0x55555555, 1); \ + SWAPMOVE(state[0], state[3], 0x55555555, 1); \ + state[3] ^= ~(state[0] | state[1]); \ + SWAPMOVE(state[2], state[1], 0x55555555, 1); \ + SWAPMOVE(state[3], state[2], 0x55555555, 1); \ + state[1] ^= ~(state[2] | state[3]); \ + SWAPMOVE(state[1], state[0], 0x55555555, 1); \ + SWAPMOVE(state[0], state[3], 0x55555555, 1); \ + state[3] ^= (state[0] | state[1]); \ + SWAPMOVE(state[1], state[2], 0x55555555, 0); \ + state[0] ^= (rtk1)[12]; \ + state[1] ^= (rtk1)[13]; \ + state[2] ^= (rtk1)[14]; \ + state[3] ^= (rtk1)[15]; \ + state[0] ^= (rtk2_3)[12]; \ + state[1] ^= (rtk2_3)[13]; \ + state[2] ^= (rtk2_3)[14]; \ + state[3] ^= (rtk2_3)[15]; \ + mixcolumns_3(state); \ +}) + + +#endif // SKINNY128_H_ \ No newline at end of file diff --git a/romulus/Implementations/crypto_aead/romulusm1+/opt32/tk_schedule.c b/romulus/Implementations/crypto_aead/romulusm1+/opt32/tk_schedule.c new file mode 100644 index 0000000..1da4277 --- /dev/null +++ b/romulus/Implementations/crypto_aead/romulusm1+/opt32/tk_schedule.c @@ -0,0 +1,368 @@ +/****************************************************************************** +* Implementation of the SKINNY tweakey schedule to match fixslicing. +* +* @author Alexandre Adomnicai, Nanyang Technological University, +* alexandre.adomnicai@ntu.edu.sg +* +* @date May 2020 +******************************************************************************/ +#include +#include //for memcmp +#include "tk_schedule.h" +#include "skinny128.h" + +typedef unsigned char u8; +typedef unsigned int u32; + +/****************************************************************************** +* The round constants according to the new representation. +******************************************************************************/ +u32 rconst_32_bs[160] = { + 0x00000004, 0xffffffbf, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x10000100, 0xfffffeff, 0x44000000, 0xfbffffff, 0x00000000, 0x04000000, + 0x00100000, 0x00100000, 0x00100001, 0xffefffff, 0x00440000, 0xffafffff, + 0x00400000, 0x00400000, 0x01000000, 0x01000000, 0x01401000, 0xffbfffff, + 0x01004000, 0xfefffbff, 0x00000400, 0x00000400, 0x00000010, 0x00000000, + 0x00010410, 0xfffffbef, 0x00000054, 0xffffffaf, 0x00000000, 0x00000040, + 0x00000100, 0x00000100, 0x10000140, 0xfffffeff, 0x44000000, 0xfffffeff, + 0x04000000, 0x04000000, 0x00100000, 0x00100000, 0x04000001, 0xfbffffff, + 0x00140000, 0xffafffff, 0x00400000, 0x00000000, 0x00000000, 0x00000000, + 0x01401000, 0xfebfffff, 0x01004400, 0xfffffbff, 0x00000000, 0x00000400, + 0x00000010, 0x00000010, 0x00010010, 0xffffffff, 0x00000004, 0xffffffaf, + 0x00000040, 0x00000040, 0x00000100, 0x00000000, 0x10000140, 0xffffffbf, + 0x40000100, 0xfbfffeff, 0x00000000, 0x04000000, 0x00100000, 0x00000000, + 0x04100001, 0xffefffff, 0x00440000, 0xffefffff, 0x00000000, 0x00400000, + 0x01000000, 0x01000000, 0x00401000, 0xffffffff, 0x00004000, 0xfeffffff, + 0x00000400, 0x00000000, 0x00000000, 0x00000000, 0x00010400, 0xfffffbff, + 0x00000014, 0xffffffbf, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x10000100, 0xffffffff, 0x40000000, 0xfbffffff, 0x00000000, 0x04000000, + 0x00100000, 0x00000000, 0x00100001, 0xffefffff, 0x00440000, 0xffafffff, + 0x00000000, 0x00400000, 0x01000000, 0x01000000, 0x01401000, 0xffffffff, + 0x00004000, 0xfeffffff, 0x00000400, 0x00000400, 0x00000010, 0x00000000, + 0x00010400, 0xfffffbff, 0x00000014, 0xffffffaf, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x10000140, 0xfffffeff, 0x44000000, 0xffffffff, + 0x00000000, 0x04000000, 0x00100000, 0x00100000, 0x00000001, 0xffefffff, + 0x00440000, 0xffafffff, 0x00400000, 0x00000000, 0x00000000, 0x01000000, + 0x01401000, 0xffbfffff, 0x01004000, 0xfffffbff, 0x00000400, 0x00000400, + 0x00000010, 0x00000000, 0x00010010, 0xfffffbff +}; + +/****************************************************************************** +* Pack the input into the bitsliced representation +* 24 28 56 60 88 92 120 124 | ... | 0 4 32 36 64 68 96 100 +* 25 29 57 61 89 93 121 125 | ... | 1 5 33 37 65 69 97 101 +* 26 30 58 62 90 94 122 126 | ... | 2 6 34 38 66 70 98 102 +* 27 31 59 63 91 95 123 127 | ... | 3 7 35 39 67 71 99 103 +******************************************************************************/ +void packing(u32* out, const u8* in) { + u32 tmp; + LE_LOAD(out, in); + LE_LOAD(out + 1, in + 8); + LE_LOAD(out + 2, in + 4); + LE_LOAD(out + 3, in + 12); + SWAPMOVE(out[0], out[0], 0x0a0a0a0a, 3); + SWAPMOVE(out[1], out[1], 0x0a0a0a0a, 3); + SWAPMOVE(out[2], out[2], 0x0a0a0a0a, 3); + SWAPMOVE(out[3], out[3], 0x0a0a0a0a, 3); + SWAPMOVE(out[2], out[0], 0x30303030, 2); + SWAPMOVE(out[1], out[0], 0x0c0c0c0c, 4); + SWAPMOVE(out[3], out[0], 0x03030303, 6); + SWAPMOVE(out[1], out[2], 0x0c0c0c0c, 2); + SWAPMOVE(out[3], out[2], 0x03030303, 4); + SWAPMOVE(out[3], out[1], 0x03030303, 2); +} + +/****************************************************************************** +* Unpack the input to a byte-wise representation +******************************************************************************/ +void unpacking(u8* out, u32 *in) { + u32 tmp; + SWAPMOVE(in[3], in[1], 0x03030303, 2); + SWAPMOVE(in[3], in[2], 0x03030303, 4); + SWAPMOVE(in[1], in[2], 0x0c0c0c0c, 2); + SWAPMOVE(in[3], in[0], 0x03030303, 6); + SWAPMOVE(in[1], in[0], 0x0c0c0c0c, 4); + SWAPMOVE(in[2], in[0], 0x30303030, 2); + SWAPMOVE(in[0], in[0], 0x0a0a0a0a, 3); + SWAPMOVE(in[1], in[1], 0x0a0a0a0a, 3); + SWAPMOVE(in[2], in[2], 0x0a0a0a0a, 3); + SWAPMOVE(in[3], in[3], 0x0a0a0a0a, 3); + LE_STORE(out, in[0]); + LE_STORE(out + 8, in[1]); + LE_STORE(out + 4, in[2]); + LE_STORE(out + 12, in[3]); +} + +/****************************************************************************** +* 0 4 1 5 +* 1 5 ---> 2 6 +* 2 6 3 7 +* 3 7 4 0 +******************************************************************************/ +void lfsr2_bs(u32* tk) { + u32 tmp; + tmp = tk[0] ^ (tk[2] & 0xaaaaaaaa); + tmp = ((tmp & 0xaaaaaaaa) >> 1) | ((tmp << 1) & 0xaaaaaaaa); + tk[0] = tk[1]; + tk[1] = tk[2]; + tk[2] = tk[3]; + tk[3] = tmp; +} + +/****************************************************************************** +* 0 4 7 3 +* 1 5 ---> 0 4 +* 2 6 1 5 +* 3 7 2 6 +******************************************************************************/ +void lfsr3_bs(u32* tk) { + u32 tmp; + tmp = tk[3] ^ ((tk[1] & 0xaaaaaaaa) >> 1); + tmp = ((tmp & 0xaaaaaaaa) >> 1) | ((tmp << 1) & 0xaaaaaaaa); + tk[3] = tk[2]; + tk[2] = tk[1]; + tk[1] = tk[0]; + tk[0] = tmp; +} + +/****************************************************************************** +* Apply the permutation in a bitsliced manner, twice +******************************************************************************/ +void permute_tk_2(u32* tk) { + u32 tmp; + for(int i =0; i < 4; i++) { + tmp = tk[i]; + tk[i] = ROR(tmp,14) & 0xcc00cc00; + tk[i] |= (tmp & 0x000000ff) << 16; + tk[i] |= (tmp & 0xcc000000)>> 2; + tk[i] |= (tmp & 0x0033cc00) >> 8; + tk[i] |= (tmp & 0x00cc0000) >>18; + } +} + +/****************************************************************************** +* Apply the permutation in a bitsliced manner, 4 times +******************************************************************************/ +void permute_tk_4(u32* tk) { + u32 tmp; + for(int i =0; i < 4; i++) { + tmp = tk[i]; + tk[i] = ROR(tmp,22) & 0xcc0000cc; + tk[i] |= ROR(tmp,16) & 0x3300cc00; + tk[i] |= ROR(tmp, 24) & 0x00cc3300; + tk[i] |= (tmp & 0x00cc00cc) >> 2; + } +} + +/****************************************************************************** +* Apply the permutation in a bitsliced manner, 6 times +******************************************************************************/ +void permute_tk_6(u32* tk) { + u32 tmp; + for(int i =0; i < 4; i++) { + tmp = tk[i]; + tk[i] = ROR(tmp,6) & 0xcccc0000; + tk[i] |= ROR(tmp,24) & 0x330000cc; + tk[i] |= ROR(tmp,10) & 0x3333; + tk[i] |= (tmp & 0xcc) << 14; + tk[i] |= (tmp & 0x3300) << 2; + } +} + +/****************************************************************************** +* Apply the permutation in a bitsliced manner, 8 times +******************************************************************************/ +void permute_tk_8(u32* tk) { + u32 tmp; + for(int i =0; i < 4; i++) { + tmp = tk[i]; + tk[i] = ROR(tmp,24) & 0xcc000033; + tk[i] |= ROR(tmp,8) & 0x33cc0000; + tk[i] |= ROR(tmp,26) & 0x00333300; + tk[i] |= (tmp & 0x00333300) >> 6; + } +} + +/****************************************************************************** +* Apply the permutation in a bitsliced manner, 10 times +******************************************************************************/ +void permute_tk_10(u32* tk) { + u32 tmp; + for(int i =0; i < 4; i++) { + tmp = tk[i]; + tk[i] = ROR(tmp,8) & 0xcc330000; + tk[i] |= ROR(tmp,26) & 0x33000033; + tk[i] |= ROR(tmp,22) & 0x00cccc00; + tk[i] |= (tmp & 0x00330000) >> 14; + tk[i] |= (tmp & 0xcc00) >> 2; + } +} + +/****************************************************************************** +* Apply the permutation in a bitsliced manner, 12 times +******************************************************************************/ +void permute_tk_12(u32* tk) { + u32 tmp; + for(int i =0; i < 4; i++) { + tmp = tk[i]; + tk[i] = ROR(tmp,8) & 0xcc33; + tk[i] |= ROR(tmp,30) & 0x00cc00cc; + tk[i] |= ROR(tmp,10) & 0x33330000; + tk[i] |= ROR(tmp,16) & 0xcc003300; + } +} + +/****************************************************************************** +* Apply the permutation in a bitsliced manner, 14 times +******************************************************************************/ +void permute_tk_14(u32* tk) { + u32 tmp; + for(int i =0; i < 4; i++) { + tmp = tk[i]; + tk[i] = ROR(tmp,24) & 0x0033cc00; + tk[i] |= ROR(tmp,14) & 0x00cc0000; + tk[i] |= ROR(tmp,30) & 0xcc000000; + tk[i] |= ROR(tmp,16) & 0x000000ff; + tk[i] |= ROR(tmp,18) & 0x33003300; + } +} + +/****************************************************************************** +* Precompute all LFSRs on TK2 +******************************************************************************/ +void precompute_lfsr_tk2(u32* tk, const u8* key, const int rounds) { + u32 tk2[4]; + packing(tk2, key); + memcpy(tk, tk2, 16); + for(int i = 0 ; i < rounds; i+=2) { + lfsr2_bs(tk2); + memcpy(tk+i*4+4, tk2, 16); + } +} + +/****************************************************************************** +* Precompute all LFSRs on TK3 +******************************************************************************/ +void precompute_lfsr_tk3(u32* tk, const u8* key, const int rounds) { + u32 tk3[4]; + packing(tk3, key); + tk[0] ^= tk3[0]; + tk[1] ^= tk3[1]; + tk[2] ^= tk3[2]; + tk[3] ^= tk3[3]; + for(int i = 0 ; i < rounds; i+=2) { + lfsr3_bs(tk3); + tk[i*4+4] ^= tk3[0]; + tk[i*4+5] ^= tk3[1]; + tk[i*4+6] ^= tk3[2]; + tk[i*4+7] ^= tk3[3]; + } +} + +/****************************************************************************** +* XOR TK with TK1 before applying the permutations. +* The key is then rearranged to match the barrel shiftrows representation. +******************************************************************************/ +void permute_tk(u32* tk, const u8* key, const int rounds) { + u32 test; + u32 tk1[4], tmp[4]; + packing(tk1, key); + memcpy(tmp, tk, 16); + tmp[0] ^= tk1[0]; + tmp[1] ^= tk1[1]; + tmp[2] ^= tk1[2]; + tmp[3] ^= tk1[3]; + for(int i = 0 ; i < rounds; i += 8) { + test = (i % 16 < 8) ? 1 : 0; //to apply the right power of P + tk[i*4] = tmp[2] & 0xf0f0f0f0; + tk[i*4+1] = tmp[3] & 0xf0f0f0f0; + tk[i*4+2] = tmp[0] & 0xf0f0f0f0; + tk[i*4+3] = tmp[1] & 0xf0f0f0f0; + memcpy(tmp, tk+i*4+4, 16); + XOR_BLOCKS(tmp, tk1); + if (test) + permute_tk_2(tmp); // applies P^2 + else + permute_tk_10(tmp); // applies P^10 + tk[i*4+4] = ROR(tmp[0],26) & 0xc3c3c3c3; + tk[i*4+5] = ROR(tmp[1],26) & 0xc3c3c3c3; + tk[i*4+6] = ROR(tmp[2],26) & 0xc3c3c3c3; + tk[i*4+7] = ROR(tmp[3],26) & 0xc3c3c3c3; + tk[i*4+8] = ROR(tmp[2],28) & 0x03030303; + tk[i*4+8] |= ROR(tmp[2],12) & 0x0c0c0c0c; + tk[i*4+9] = ROR(tmp[3],28) & 0x03030303; + tk[i*4+9] |= ROR(tmp[3],12) & 0x0c0c0c0c; + tk[i*4+10] = ROR(tmp[0],28) & 0x03030303; + tk[i*4+10] |= ROR(tmp[0],12) & 0x0c0c0c0c; + tk[i*4+11] = ROR(tmp[1],28) & 0x03030303; + tk[i*4+11] |= ROR(tmp[1],12) & 0x0c0c0c0c; + memcpy(tmp, tk+i*4+12, 16); + XOR_BLOCKS(tmp, tk1); + if (test) + permute_tk_4(tmp); // applies P^4 + else + permute_tk_12(tmp); // applies P^12 + for(int j = 0; j < 4; j++) { + tk[i*4+12+j] = ROR(tmp[j],14) & 0x30303030; + tk[i*4+12+j] |= ROR(tmp[j],6) & 0x0c0c0c0c; + } + tk[i*4+16] = ROR(tmp[2], 16) & 0xf0f0f0f0; + tk[i*4+17] = ROR(tmp[3], 16) & 0xf0f0f0f0; + tk[i*4+18] = ROR(tmp[0], 16) & 0xf0f0f0f0; + tk[i*4+19] = ROR(tmp[1], 16) & 0xf0f0f0f0; + memcpy(tmp, tk+i*4+20, 16); + XOR_BLOCKS(tmp, tk1); + if (test) + permute_tk_6(tmp); // applies P^6 + else + permute_tk_14(tmp); // applies P^14 + tk[i*4+20] = ROR(tmp[0], 10) & 0xc3c3c3c3; + tk[i*4+21] = ROR(tmp[1], 10) & 0xc3c3c3c3; + tk[i*4+22] = ROR(tmp[2], 10) & 0xc3c3c3c3; + tk[i*4+23] = ROR(tmp[3], 10) & 0xc3c3c3c3; + tk[i*4+24] = ROR(tmp[2],12) & 0x03030303; + tk[i*4+24] |= ROR(tmp[2],28) & 0x0c0c0c0c; + tk[i*4+25] = ROR(tmp[3],12) & 0x03030303; + tk[i*4+25] |= ROR(tmp[3],28) & 0x0c0c0c0c; + tk[i*4+26] = ROR(tmp[0],12) & 0x03030303; + tk[i*4+26] |= ROR(tmp[0],28) & 0x0c0c0c0c; + tk[i*4+27] = ROR(tmp[1],12) & 0x03030303; + tk[i*4+27] |= ROR(tmp[1],28) & 0x0c0c0c0c; + memcpy(tmp, tk+i*4+28, 16); + XOR_BLOCKS(tmp, tk1); + if (test) + permute_tk_8(tmp); // applies P^8 + for(int j = 0; j < 4; j++) { + tk[i*4+28+j] = ROR(tmp[j],30) & 0x30303030; + tk[i*4+28+j] |= ROR(tmp[j],22) & 0x0c0c0c0c; + } + if (test && (i+8 < rounds)) { //only if next loop iteration + tk[i*4+32] = tmp[2] & 0xf0f0f0f0; + tk[i*4+33] = tmp[3] & 0xf0f0f0f0; + tk[i*4+34] = tmp[0] & 0xf0f0f0f0; + tk[i*4+35] = tmp[1] & 0xf0f0f0f0; + } + } +} + +/****************************************************************************** +* Precompute LFSR2(TK2) ^ LFSR3(TK3) ^ rconst. +******************************************************************************/ +void precompute_rtk2_3(u32* rtk, const u8* tk2, const u8 * tk3) { + memset(rtk, 0x00, 16*SKINNY128_384_ROUNDS); + precompute_lfsr_tk2(rtk, tk2, SKINNY128_384_ROUNDS); + precompute_lfsr_tk3(rtk, tk3, SKINNY128_384_ROUNDS); + permute_tk(rtk, (u8*)(rtk+8), SKINNY128_384_ROUNDS); // rtk+8 is NULL + for(int i = 0; i < SKINNY128_384_ROUNDS; i++) { // add rconsts + for(int j = 0; j < 4; j++) + rtk[i*4+j] ^= rconst_32_bs[i*4+j]; + } +} + +/****************************************************************************** +* Precompute RTK1. +******************************************************************************/ +void precompute_rtk1(u32* rtk1, const u8* tk1) { + memset(rtk1, 0x00, 16*16); + permute_tk(rtk1, tk1, 16); +} \ No newline at end of file diff --git a/romulus/Implementations/crypto_aead/romulusm1+/opt32/tk_schedule.h b/romulus/Implementations/crypto_aead/romulusm1+/opt32/tk_schedule.h new file mode 100644 index 0000000..5615cbd --- /dev/null +++ b/romulus/Implementations/crypto_aead/romulusm1+/opt32/tk_schedule.h @@ -0,0 +1,39 @@ +#ifndef TK_SCHEDULE_H_ +#define TK_SCHEDULE_H_ + +typedef unsigned char u8; +typedef unsigned int u32; + +void packing(u32* out, const u8* in); +void unpacking(u8* out, u32 *in); +void precompute_rtk2_3(u32* rtk, const u8* tk2, const u8* tk3); +void precompute_rtk1(u32* rtk1, const u8* tk1); + +#define ROR(x,y) (((x) >> (y)) | ((x) << (32 - (y)))) + +#define XOR_BLOCKS(x,y) ({ \ + (x)[0] ^= (y)[0]; \ + (x)[1] ^= (y)[1]; \ + (x)[2] ^= (y)[2]; \ + (x)[3] ^= (y)[3]; \ +}) + +#define SWAPMOVE(a, b, mask, n) ({ \ + tmp = (b ^ (a >> n)) & mask; \ + b ^= tmp; \ + a ^= (tmp << n); \ +}) + +#define LE_LOAD(x, y) \ + *(x) = (((u32)(y)[3] << 24) | \ + ((u32)(y)[2] << 16) | \ + ((u32)(y)[1] << 8) | \ + (y)[0]); + +#define LE_STORE(x, y) \ + (x)[0] = (y) & 0xff; \ + (x)[1] = ((y) >> 8) & 0xff; \ + (x)[2] = ((y) >> 16) & 0xff; \ + (x)[3] = (y) >> 24; + +#endif // TK_SCHEDULE_H_ \ No newline at end of file diff --git a/romulus/Implementations/crypto_aead/romulusm1+v13/LWC_AEAD_KAT_128_128.txt b/romulus/Implementations/crypto_aead/romulusm1+v13/LWC_AEAD_KAT_128_128.txt deleted file mode 100644 index 24ecfd7..0000000 --- a/romulus/Implementations/crypto_aead/romulusm1+v13/LWC_AEAD_KAT_128_128.txt +++ /dev/null @@ -1,7623 +0,0 @@ -Count = 1 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = -AD = -CT = 1866911F9E436083F788BBF27C62180A - -Count = 2 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = -AD = 00 -CT = 111C6F780802BB6A6E8686408FF08D6A - -Count = 3 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = -AD = 0001 -CT = E2D3227EB942543A4988C59C16B696DD - -Count = 4 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = -AD = 000102 -CT = 08FECA98C7581ACFC042AA3CC5CD5408 - -Count = 5 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = -AD = 00010203 -CT = 60E45A18AA85AC51E74AF13DB36308F5 - -Count = 6 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = -AD = 0001020304 -CT = 74A33F25C1AE488B07190F868E3421EB - -Count = 7 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = -AD = 000102030405 -CT = 86D53E9861FE1DB8277CF50801100EBA - -Count = 8 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = -AD = 00010203040506 -CT = 3518A21D26C30E8CBADED094B5ACA042 - -Count = 9 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = -AD = 0001020304050607 -CT = 2135BA52B0149CDF777D08B5F04BEF0A - -Count = 10 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = -AD = 000102030405060708 -CT = 93C4A4AF1910FAA1F5342C14551D2FC2 - -Count = 11 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = -AD = 00010203040506070809 -CT = 744ACC075CECF6A1A1E1B2DABDA34987 - -Count = 12 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = -AD = 000102030405060708090A -CT = 65166EBBF08569C2A1C996AE79034419 - -Count = 13 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = -AD = 000102030405060708090A0B -CT = 109D49FFFC203DE880126A9B1473EDFC - -Count = 14 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = -AD = 000102030405060708090A0B0C -CT = 27337EB7055C8657599BFAC630D35C6E - -Count = 15 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = -AD = 000102030405060708090A0B0C0D -CT = 6BA056F320349BAC9594761A9C0C0A75 - -Count = 16 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = -AD = 000102030405060708090A0B0C0D0E -CT = 80B644B84609B497FF568AE3C098AA94 - -Count = 17 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = -AD = 000102030405060708090A0B0C0D0E0F -CT = 57E3E2A18ED55AD98985FA605F0E0FCB - -Count = 18 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 2C3AD5CF835E9F421941BF4B091F4D34 - -Count = 19 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 08B703395B691DA9C8BC97EA4A6291DA - -Count = 20 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = B254818D0F5BC9D4BEAB28205168B495 - -Count = 21 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 4A9759BD7CD841FF07B1EE49EEC0538C - -Count = 22 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = 4A2D5D6E78CA57A018A3E764694D5528 - -Count = 23 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = 5C561DA38DE44FD650E49E87FD9E7AB1 - -Count = 24 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 507AC27E02F1E7205D39D0AD05353BAE - -Count = 25 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = 61DEBA7A6AAC4A8169D4F96834373969 - -Count = 26 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = D51A0C104B90A6A0C3BE54692FBD2265 - -Count = 27 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = 2C5CAEA5D2942CEC970FFBE0B939B558 - -Count = 28 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = C0CEC1425764810F09E6CB9452DE3C10 - -Count = 29 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = C57C2765B00216FBF5F0B4020095F054 - -Count = 30 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = DAFC784AF1090DD7E7295D32304250DB - -Count = 31 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 9CCD6981AFEA2118FD62C0EFA090483B - -Count = 32 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = 5F588E7A5925ABBF3C715D1E6143323C - -Count = 33 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 54060E93F5733CBE709EA1F12E203BE6 - -Count = 34 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00 -AD = -CT = BE8291743705C8BDE2D0BD5725D31FF045 - -Count = 35 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00 -AD = 00 -CT = DE7F7EBE417335CB5A33413834769E8C13 - -Count = 36 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00 -AD = 0001 -CT = 5AB470885A182486B85CD7B8D7FFDD005C - -Count = 37 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00 -AD = 000102 -CT = B76B85778627FB371A9F2CCFBFEF6FFE1C - -Count = 38 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00 -AD = 00010203 -CT = 5F36B380E3B43CF0C03AE079E7DC41FDA3 - -Count = 39 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00 -AD = 0001020304 -CT = 80AA1348466930003C89C22A6DA94763DB - -Count = 40 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00 -AD = 000102030405 -CT = 3D2E15FFAE9B18948BB130E43EB6F73DB7 - -Count = 41 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00 -AD = 00010203040506 -CT = 0E4948B96A314B623A6BB43DC2011027CB - -Count = 42 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00 -AD = 0001020304050607 -CT = 665986EC404C2AE1B8E14F0F005B02BC22 - -Count = 43 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00 -AD = 000102030405060708 -CT = 23A55991578C354221D816C8EFE92F1E99 - -Count = 44 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00 -AD = 00010203040506070809 -CT = E691EC26BBCC5577FD8B63FD12DF87D63E - -Count = 45 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00 -AD = 000102030405060708090A -CT = E26A46BBBDF45898D6381C867BD4F2638A - -Count = 46 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00 -AD = 000102030405060708090A0B -CT = 57D4DFAE7876EA0CF0B9AE0C09DC67643D - -Count = 47 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00 -AD = 000102030405060708090A0B0C -CT = 64444F7536FB24788C9B4B4A6F62A43571 - -Count = 48 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00 -AD = 000102030405060708090A0B0C0D -CT = 728BE459D195830EB45B0DD4BF0C4EF0ED - -Count = 49 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00 -AD = 000102030405060708090A0B0C0D0E -CT = 1E3B87A4B0EB36BBBB02B3E43D278B6511 - -Count = 50 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00 -AD = 000102030405060708090A0B0C0D0E0F -CT = 2C738F2F926BC61AF03510269B4BB4FEBD - -Count = 51 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = B24DDCB567783BB641AECDA7D5A0D0F88C - -Count = 52 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = A7AAF5AAA0419EA54AAC1F6C839AFFAB18 - -Count = 53 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = 790ECA0E742B0DF8AAAFA3CCA05B743696 - -Count = 54 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = C661EB47B8FF0D361F7C06DA2DAC347448 - -Count = 55 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = DC9C74F367971E1D5E365B3691779719EA - -Count = 56 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = 514F4354EE83B5580F44CFD7ED7096C815 - -Count = 57 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 4B442169B930AD35E09C9A8039CA19D4AD - -Count = 58 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = C2E1BC1A2B115CD68C9A4164B00B29F139 - -Count = 59 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = A84FB3DE1AFA66C4C0456606E72E2EBD2F - -Count = 60 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = 8B0554D00C4E7C34ADBA3FDFA1D4E78465 - -Count = 61 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 6BAF7085DC27B1F26C8B02066C4BC2D8F3 - -Count = 62 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 3782782251FF07FAC7C014713E217B1F33 - -Count = 63 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = 77FD8D8B7748FFEAF2D870AAC859B43C8D - -Count = 64 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = B5C0A52FD541B67C4A3B5CB6E0110C0C79 - -Count = 65 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = 4D445A9FB60A2A8BA51191FEBC7304DE64 - -Count = 66 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 510F1974FF3E635493C5DDEFCC4FFCFA58 - -Count = 67 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001 -AD = -CT = 9145C38D138AE14EF990D9764F21DADCF9E1 - -Count = 68 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001 -AD = 00 -CT = A08D2A742EEA81932BCCB7BFFFA1E5973448 - -Count = 69 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001 -AD = 0001 -CT = D2E9C4C1D8086447746ED12C7C67431343AA - -Count = 70 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001 -AD = 000102 -CT = 4E61124FED01E2B532D24D4565F152CB13D3 - -Count = 71 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001 -AD = 00010203 -CT = 105D090DA529ABC8E05CDB562CE8D6E30A50 - -Count = 72 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001 -AD = 0001020304 -CT = AA63CFCC46215F2FC5B7DAD4C86CBCFD816A - -Count = 73 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001 -AD = 000102030405 -CT = DE3BDCD09480939D1C0D41841C6AD718BE7B - -Count = 74 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001 -AD = 00010203040506 -CT = 87E0CB7729C4E5785882B7A10C5CBDD5093F - -Count = 75 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001 -AD = 0001020304050607 -CT = 9DF41431805E053AD2BBDAA9461B403A3BC5 - -Count = 76 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001 -AD = 000102030405060708 -CT = 1EAD6425C8B8DBB6DF0F945A3CDA39003F35 - -Count = 77 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001 -AD = 00010203040506070809 -CT = 04B69D6A746BDB459B3A988FD06D0EAC833C - -Count = 78 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001 -AD = 000102030405060708090A -CT = 849F663D6768A4E12AD1F0CC245AFCC3C9FF - -Count = 79 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001 -AD = 000102030405060708090A0B -CT = 5DD42CCEA55A3C02487FDD52CEF4AC34BC54 - -Count = 80 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001 -AD = 000102030405060708090A0B0C -CT = FB5BE429DF3540365A4C9F0B41EAD3E8B83C - -Count = 81 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001 -AD = 000102030405060708090A0B0C0D -CT = 8589780FE636BF46AD9EFBD07CCEACD44492 - -Count = 82 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001 -AD = 000102030405060708090A0B0C0D0E -CT = 30C09C4708A6146BB8E5021C53E16702D706 - -Count = 83 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001 -AD = 000102030405060708090A0B0C0D0E0F -CT = 4F4E73BDEE492E821C0C3764909D5A4F8E33 - -Count = 84 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = C83106933C1BE63DAF1F53FA3C2D14DDDE72 - -Count = 85 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 13F32B1E085CEA7B61F89FA7F6D93872D5C5 - -Count = 86 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = 5EF95AB5580C0EDE339B69F817F743FC11EB - -Count = 87 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 14BBFAC7B55EF98BDC3EB99A77C6BC787FD8 - -Count = 88 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = EC649998DA26A01903EA309D3A6ED31ED34D - -Count = 89 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = F34A897960EED48EFAD7F65EB203E204FB64 - -Count = 90 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 0D2497730BD17DD2F94C0B250BB7245EBEF0 - -Count = 91 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = 54998778D0CF45036A5B7067802681A17A81 - -Count = 92 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 449AF852D84E15F42B57C9BB633FFBA81051 - -Count = 93 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = FD6B33BE4B9838779A9832BD6476DAB34FF4 - -Count = 94 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 910AA2387C8A3C9F2EA16D823D76F2236ECA - -Count = 95 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 5CC4B9B394D5917BF8EE902172B2E8965BCA - -Count = 96 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = 4A7E4078E9C50B5C876EBE5760C8BBC40EFE - -Count = 97 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 912ECB572B81B51D5BB9E1EEE18FDD663E30 - -Count = 98 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = 8499D56D8229870F105531F5B09F23AFC56B - -Count = 99 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 0049FAC9401CC458CAE9F2963DB475C733C3 - -Count = 100 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102 -AD = -CT = 1F9CC58CA6ADA5640D42ADC3BEA0C8A02C3770 - -Count = 101 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102 -AD = 00 -CT = CED387058D20377F9E3E4B52CCDC3646EC8FFB - -Count = 102 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102 -AD = 0001 -CT = A7190537E398103EB9BD2A2E5A631028914DA5 - -Count = 103 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102 -AD = 000102 -CT = A5AE33040B2F8A92A80104F63AD270C322C445 - -Count = 104 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102 -AD = 00010203 -CT = 349ADB83A847F2CD9C6DC8945679B2EB8559C8 - -Count = 105 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102 -AD = 0001020304 -CT = E9F6362578F03054AA8A4B0797BE3634E39BF8 - -Count = 106 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102 -AD = 000102030405 -CT = E59E0E5624695996B61CEDB3B72A28B3F22674 - -Count = 107 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102 -AD = 00010203040506 -CT = 40FB811547A168CC2F259349638C24531BAE42 - -Count = 108 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102 -AD = 0001020304050607 -CT = 01603729FAD23B7C3F20892AE36181E0B83B21 - -Count = 109 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102 -AD = 000102030405060708 -CT = 889344A705B5D3D8A875E038CBB9B325B79B4E - -Count = 110 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102 -AD = 00010203040506070809 -CT = 62E2B16006FC76BC528E67BC9EC703CFD31D86 - -Count = 111 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102 -AD = 000102030405060708090A -CT = B2D7F8C11A12002DFAB9F76797AE2398313884 - -Count = 112 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102 -AD = 000102030405060708090A0B -CT = 2E083EA4726C3CC002364E698676FD90393A8A - -Count = 113 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102 -AD = 000102030405060708090A0B0C -CT = CDCCFC09FB902F2203C49F617F3615D317C087 - -Count = 114 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102 -AD = 000102030405060708090A0B0C0D -CT = 78265933C8F04C935B8B4F8CB31E62BF54185E - -Count = 115 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102 -AD = 000102030405060708090A0B0C0D0E -CT = D6ACD80CF8A77A3B425FD6B818A43F8B481A55 - -Count = 116 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102 -AD = 000102030405060708090A0B0C0D0E0F -CT = 7362F95E2CFD58B37E7C973A62AE2817B86A58 - -Count = 117 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 0DAD3DE636CFBAAD428366D5CCE437658D87CD - -Count = 118 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 0B8AEA03CEB2EC21BB8A361A70119DE18E759E - -Count = 119 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = F77AD020F72D4CDCAE3EB4187F318556557844 - -Count = 120 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 22EAB85725FE7DBB4ACE5BAA4A5DD161B9D1ED - -Count = 121 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = 6876FAA5798052969D2A3575C435849CBCDAA1 - -Count = 122 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = 4E723B024D913E886B0B2D966BA790DE10ED3C - -Count = 123 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 5CEB2D35F4694708C46BA39E5E25777D18F2D0 - -Count = 124 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = E3A37D66523AA7128C48C5F5A3F2A09E380649 - -Count = 125 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 18A1A8ADFE1F8A3D1133B1D2B60E2515E12CC4 - -Count = 126 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = 5453A60186713304E5360212E415DF759C4864 - -Count = 127 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = AB0F4BD15A7D32A1943A7F6C21CA396F988CC0 - -Count = 128 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 7B68957B2358E17F79D02A2340F2F0D0287052 - -Count = 129 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = A286A5452A74AC9B176DBB0AAEF20D707BB809 - -Count = 130 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 48164B35EE4D16BECB4C435E0C70439B172F1E - -Count = 131 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = 9EE4690D356E15188E16DAA6A46B9340BC5FCC - -Count = 132 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 86C8328858D597DF070FEB18BACE174BD8BD8B - -Count = 133 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203 -AD = -CT = 52F8B8B389D7EA60E553BD3815C0BCB02678F75D - -Count = 134 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203 -AD = 00 -CT = 7792D2B8BF9D4842F7361C5692C2C81A08D01F61 - -Count = 135 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203 -AD = 0001 -CT = A950D1B265AC89779916BB39A4DFFC447F458A2F - -Count = 136 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203 -AD = 000102 -CT = 8E9AC9091ABD41C246A435776E42607AFB72D2C8 - -Count = 137 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203 -AD = 00010203 -CT = 30B51FDAEF4F976076299BD1E876323A58E2CC89 - -Count = 138 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203 -AD = 0001020304 -CT = A848C61C995A81EA34359C6E1AC0988DB4C02828 - -Count = 139 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203 -AD = 000102030405 -CT = 582C0A1622ECD65DFCE4AD5246CB9AABC05F1927 - -Count = 140 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203 -AD = 00010203040506 -CT = 3E8C31FF15E979822B7AD2EEB0C0B42F4C892035 - -Count = 141 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203 -AD = 0001020304050607 -CT = 29C56C408E5EB79E281147233754DD9ECA3281C2 - -Count = 142 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203 -AD = 000102030405060708 -CT = 30050F7623EBB8AE7B1D8AA8D4B2EE54C2D482F5 - -Count = 143 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203 -AD = 00010203040506070809 -CT = 4297B6C49D71E4455B8AD4D6A516EC02E0D562E2 - -Count = 144 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203 -AD = 000102030405060708090A -CT = E1D2D846A23FDAC10172B1E5506C7D0F2B5B7AAD - -Count = 145 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203 -AD = 000102030405060708090A0B -CT = E3CBF370C48C4550A07CA5007172A9FB3CCB700A - -Count = 146 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203 -AD = 000102030405060708090A0B0C -CT = 6AD38CEDD18A8A7BF3E08FFE4286A5D376C63211 - -Count = 147 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203 -AD = 000102030405060708090A0B0C0D -CT = 08FA27B58394D5C7C0C859FCAF19F9C6453AA0E7 - -Count = 148 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203 -AD = 000102030405060708090A0B0C0D0E -CT = 57969EF1F480906DE807A4A8081A5535FC3EB4C6 - -Count = 149 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203 -AD = 000102030405060708090A0B0C0D0E0F -CT = CD6C770125FF572E8974885C8D20E41C60E720C6 - -Count = 150 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = FDD39CBE20BFAD461973C137573E7866B5B1F31B - -Count = 151 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = F234ABD0C0DB6F17A54F007E752FB7C46A00EAB7 - -Count = 152 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = B0B7B1ABB1952BD5C53EF23A868EE02DC51F00C2 - -Count = 153 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 4E7A4C2587E214FA918C967CDDFD45F81AE24A20 - -Count = 154 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = C3EC1A08266CBCFE3757D64D828CCDD771277374 - -Count = 155 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = E66BF84F0415EFD391DDD47F70DB9F9D2D736B1B - -Count = 156 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 6D676EFDC9CBFC49F5D43172A340B267721892E9 - -Count = 157 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = 5C9647B5333FE0C97114D7033EA125BBBB732CAA - -Count = 158 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 4AC6B18AF1D24341583B2A17112376657987344F - -Count = 159 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = 130D9D8B0447B6B0B8659DFF6C31B8C223E75707 - -Count = 160 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 82D2F091558E3DBADEA5987C9CC68A76AAEABB1D - -Count = 161 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 082455375C773436D6AA28A7220198E0805C6854 - -Count = 162 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = C10516FEB4C47005CA6A411E121F61C1ED7F2CD2 - -Count = 163 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = B490384378915B2DC3B261B29A5D155EB81F8CA0 - -Count = 164 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = 464635F56E2C6C120069883AF236EB07F0551BDB - -Count = 165 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = FC61E5D3226627035C91E7C4B327208C07ADEEF6 - -Count = 166 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304 -AD = -CT = 668683BB1C3BA41F8349E43C58AB7BFE2D0524590B - -Count = 167 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304 -AD = 00 -CT = A0E8B15DFC3F0DB2815424A51391D59A92FF7606D1 - -Count = 168 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304 -AD = 0001 -CT = 72B323F0214CE115F219514C09F632A5423F22B889 - -Count = 169 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304 -AD = 000102 -CT = 723E0DDD99C88B0B7212E0ADE60C74DFC2D9CFCA0C - -Count = 170 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304 -AD = 00010203 -CT = 7CE2DBC1AF73BEDB29D49A11338922F8D3617D5B0A - -Count = 171 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304 -AD = 0001020304 -CT = B349A0E768838B0C588C3E9C36603BF4E6218D0E91 - -Count = 172 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304 -AD = 000102030405 -CT = C37DECC657708111DDA30E39E95FF2CAD438F2162F - -Count = 173 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304 -AD = 00010203040506 -CT = 315C388D3761D32F3710B9F363A357CDC4CBEEE79B - -Count = 174 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304 -AD = 0001020304050607 -CT = 28EBC6F6E802676E53BB8923A0DD4C8F34762F0D73 - -Count = 175 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304 -AD = 000102030405060708 -CT = 0BBB1F77B64E4A1CE3CC912BF080B1CD3DD0B9D150 - -Count = 176 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304 -AD = 00010203040506070809 -CT = 3634CC549D379CC61F2B9F6FA233BFB9988B541D76 - -Count = 177 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304 -AD = 000102030405060708090A -CT = DACD4B7B4E8920C2B5A81C445089465F882FC0A60C - -Count = 178 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304 -AD = 000102030405060708090A0B -CT = A6D65328BEF4A8F4F0B0639A3BF538AEE512C8A9FB - -Count = 179 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304 -AD = 000102030405060708090A0B0C -CT = 66840C7FA1026DAE7D30F04624BD0939371F048713 - -Count = 180 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304 -AD = 000102030405060708090A0B0C0D -CT = 92213F364C69746BBA2B49789BCE74C831E0771B76 - -Count = 181 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304 -AD = 000102030405060708090A0B0C0D0E -CT = 9063CD25D2730D6BF13C1F8BB9892BDAEE78C27820 - -Count = 182 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304 -AD = 000102030405060708090A0B0C0D0E0F -CT = FC7EE5F876EA35178A7E9CD53ED37EC205AEBCD8E5 - -Count = 183 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = D0918CD46793FC5BA18EE5134CD46D10F43B88B851 - -Count = 184 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = B5D9F315DFF7CA27D95975F2418A60877A375A0B8F - -Count = 185 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = 2E16C86E5EA365E0FCFB6474DF73179739EBC45229 - -Count = 186 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 1198EB0732468AC2F26C25D0DE704AE992F8804F8C - -Count = 187 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = 7B7135A83C3A853A7DE67F41B2AA1D97519673479E - -Count = 188 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = A294A6543F683929561B403CE56E41A4BA7239DBAC - -Count = 189 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 2654399A67AD4217B6EC9D5C6FD426C467317A2944 - -Count = 190 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = 9B3F560FD44AD82060A1F351D2BDD2E00BCCA673EA - -Count = 191 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 442DBFA7B4B9BBFE9DAD9364114B9240476674FF43 - -Count = 192 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = B6BBF55DB33B277C39F6450073AE60D62FE139D2D8 - -Count = 193 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = C5710D63CFBBA0EEE6783BD205771A8B6181CB3E14 - -Count = 194 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = C35451F637A2F8BB7359B4F8E0ECA036537C8CD709 - -Count = 195 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = D14CFE8CE8D02366E0E4A34BC7B0B450C9AB77C093 - -Count = 196 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 44B4327D69BD27ED907C659228F1B0648A98713CF3 - -Count = 197 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = FE5B58DDEE1F0D2C4839076860E12ED48528E8C759 - -Count = 198 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 45C5573B47720A3D07091F192C9E75E7FD0E9DC8CF - -Count = 199 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405 -AD = -CT = B601801AB242B97DE6F81CAF00E5415C7D790C95E1BA - -Count = 200 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405 -AD = 00 -CT = 9AC5FBD1C98A09D3AFB6E52BAB48678D408CE54C85F8 - -Count = 201 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405 -AD = 0001 -CT = 57CE537331ECB95A13128DBCEAE808D753EBCE3E1C32 - -Count = 202 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405 -AD = 000102 -CT = BDD19CCDBD35839CF47245722C6C3A7D4F74368C981D - -Count = 203 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405 -AD = 00010203 -CT = 6527B2B1E055FFCC2129049A715F3C28997E2CB0BDD0 - -Count = 204 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405 -AD = 0001020304 -CT = 7AB42CBAAA7985A70DD4E0140A7C6138D294CE441635 - -Count = 205 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405 -AD = 000102030405 -CT = 87B180CD60FF68638EBCC7366482B7D909CC793C3B47 - -Count = 206 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405 -AD = 00010203040506 -CT = 8186A2FE01278442C3498085B38ABAA28F7EFD481DDD - -Count = 207 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405 -AD = 0001020304050607 -CT = 11D04FD0BFE2152DE585872109059B23C9CE5E69E6DB - -Count = 208 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405 -AD = 000102030405060708 -CT = 45B1D346226B655632AA2738E69D24E4C30A866B3B30 - -Count = 209 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405 -AD = 00010203040506070809 -CT = EC4B8EB711E689B277C2012D14C939C83CE25FEE7DCE - -Count = 210 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405 -AD = 000102030405060708090A -CT = 7EF628C8D41A5A2E8224B83A40AF02231E3503B85A11 - -Count = 211 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405 -AD = 000102030405060708090A0B -CT = CE4B380C6E8DD15EC797562A3A0A3A823FFF9BF5841C - -Count = 212 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405 -AD = 000102030405060708090A0B0C -CT = 3F4DE7CC1C3B0B4C7C23671AD513D3E91F9E279BA206 - -Count = 213 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405 -AD = 000102030405060708090A0B0C0D -CT = B3D8CE3BC3C29D18FDED15A5C6DFC84FADFF77008D69 - -Count = 214 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405 -AD = 000102030405060708090A0B0C0D0E -CT = D5C18093F54F0269D05318E5F0C6F780FE234DC7BCD0 - -Count = 215 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405 -AD = 000102030405060708090A0B0C0D0E0F -CT = AAB087EF4412209E47AF4D051EEB40CCED8E368C601F - -Count = 216 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = EBF9E2F644C60BF34E3BCECD4A2BD49BFDE857B1A307 - -Count = 217 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = B3E47389B37E4A72754756DE3C1C57A8B9B9A7D85AC8 - -Count = 218 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = 69D874E0AEADA8964045B377B493B3602C62D03A62FE - -Count = 219 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 5F37BB2856D017512CCDC5C9BF779B37FD558393F68A - -Count = 220 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = 655CB01A3970499157C4113D7CC50478366CF605C654 - -Count = 221 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = 8F90E093417BF26101560F0B20ACFE394460A9303E9D - -Count = 222 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = DFD1193E5C2CC19B7D2564244158BCD111B4CF831446 - -Count = 223 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = 7A6AC6649D7330F4BAE0C3C7633045BD6A180AF523E5 - -Count = 224 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = D0AA0E752389BAAEA6FE88A4AE63DF8A376DDBB10A40 - -Count = 225 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = 99991751D8FE6C9F312C3E8DA0A9896F6EB671150899 - -Count = 226 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 2DDD2CB715E5CE8B6747ED8B344A0FECCD8DFB0178B4 - -Count = 227 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = CD23CDDF6EAC59D5CD2EA2C370DF8655E536B936AA0A - -Count = 228 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = 1E30686EEA1CCE448E297901FAA7DDD3A71ABD79930B - -Count = 229 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 53EC287FF428603831A066715AEF0F7A4AD9BFF039EC - -Count = 230 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = F6D8DFEA6CC2A0B23900C4AE5FC4D9E32E53C94F0B37 - -Count = 231 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = F9AF95B65D16B69CE27FCE727B7EC237D69576113058 - -Count = 232 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506 -AD = -CT = 80B77A443964F70CAB4E19C3C95B570E6FB7C566F2A8FE - -Count = 233 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506 -AD = 00 -CT = 2D94005D91611D7AB6D96EAC7A7A3220625A049D8C91EA - -Count = 234 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506 -AD = 0001 -CT = FAA0BCFB5E305087F4B6313153EFB5CFCBC4EB68B99D96 - -Count = 235 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506 -AD = 000102 -CT = 208293D2A9BA26179C0D601247D12B57464BAD31347688 - -Count = 236 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506 -AD = 00010203 -CT = DBE6D14215FC0F3C87DBFFC6930C237DE46241DABE153D - -Count = 237 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506 -AD = 0001020304 -CT = B434FC4F60DE7898AB4ABB8BF927F75B69FAC15CA507A0 - -Count = 238 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506 -AD = 000102030405 -CT = F274176FB6C70909D600D8B35F1F821E91570F284E8D90 - -Count = 239 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506 -AD = 00010203040506 -CT = 85C5F80D67E07EAA56BE9354907297B7523F4E9CB9E878 - -Count = 240 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506 -AD = 0001020304050607 -CT = 75DE105677161C67068D7B0E5E08EFEF2C0B99CE0D7085 - -Count = 241 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506 -AD = 000102030405060708 -CT = E080D952A102342A3CF8674C37BA5F58EB3D16BFE2871A - -Count = 242 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506 -AD = 00010203040506070809 -CT = F85897CFE56E388702428A05960DBDA9705BFE2A7DCAA4 - -Count = 243 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506 -AD = 000102030405060708090A -CT = 5B21E22E1BFD9349F8CDBF2DCD3CCDF8EBB99004BB2E91 - -Count = 244 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506 -AD = 000102030405060708090A0B -CT = 44EAF432478DEE05DF061164C6AF6A0DE633F5B94BDDEF - -Count = 245 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506 -AD = 000102030405060708090A0B0C -CT = FC99C2F09FBBD294BB3BD84EFC0D373294463C3B4F78D9 - -Count = 246 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506 -AD = 000102030405060708090A0B0C0D -CT = DF88C757C73AB3DF013EFD19C02DD6A48A76C535D42D2D - -Count = 247 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506 -AD = 000102030405060708090A0B0C0D0E -CT = 471FD774E2DAF55E73AA3B425944CEDFABA77B443E0194 - -Count = 248 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506 -AD = 000102030405060708090A0B0C0D0E0F -CT = 6689ABDE126B660C20EF6C3BAF8B0F9C1E855811353820 - -Count = 249 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 4EA6A82E266428BE4A835CED94343EAFCB6775BDBC27F6 - -Count = 250 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = AE26127556DB4580B11E24CABA083C0AE48BD0E7AF881D - -Count = 251 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = F772EBB2AF94F4F43860679202E287E8A02850DF8EEAEB - -Count = 252 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 426D27EF11CFECCB49FCF63CB67B297E48EBC2E02D5AE1 - -Count = 253 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = EAEA48561C45F2D3BA92E3E715CF9AE814F9C735802CEC - -Count = 254 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = 58DCC72E1EDB100F7DAEAADFD6A8A9E09555F6B14D6E1E - -Count = 255 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 22BD7B6396B41E0E600997E22722165E55C7969BC0DF41 - -Count = 256 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = D14254DBB959C95EAC5A489CB64AFEABB0681BFB51F912 - -Count = 257 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 76735A1B28F97E2566463803DDF6E38B06838DC40F822D - -Count = 258 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = 05C75C49522C09765DB5BD7CB2CAD5399ED633F1A282DA - -Count = 259 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = CB84E1D35E404717C7D21DC6DC444296C79F67F9F16907 - -Count = 260 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = F1952BF75C2A8BAFDF09A8346CE68F9C2B14272734BDAC - -Count = 261 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = 19BA8AA196331CDD954987C25B354E0D646C12D6AF0D8D - -Count = 262 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 6ED1DF1380E32F24A01842B1E94CBCC4F796A14F3D3736 - -Count = 263 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = 3AE914041DDF011B1CA0EF66DF6CEE9E529211A507EB57 - -Count = 264 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 6B6664889477990133AB3C052EC44C8E06B8D22D817AC7 - -Count = 265 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304050607 -AD = -CT = EE55F50DFAAD7EB04E1037F108C966AC463136174A840B0A - -Count = 266 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304050607 -AD = 00 -CT = 6A4BB5E586D8C83657ACCD14A90BCFA855C43330A49DFD97 - -Count = 267 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304050607 -AD = 0001 -CT = 29BE233A4F6CC964AAA1794F5186C1B4DD1DB86924CD3D11 - -Count = 268 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304050607 -AD = 000102 -CT = 1CEE79926AE087F4A5F11B78E49DAF64B28A02DB0F5AC6A5 - -Count = 269 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304050607 -AD = 00010203 -CT = BC1CAC6CFAB3B4F14AF8A9EEF115F7239508A6FBA474174C - -Count = 270 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304050607 -AD = 0001020304 -CT = 323FBAB5FB96A9F1C22E0BC2E30E88D35DE06DF190E5168F - -Count = 271 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304050607 -AD = 000102030405 -CT = 649BC51F8399B1DE0BE9DB3608F53BA849BA7B5CEFC86213 - -Count = 272 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304050607 -AD = 00010203040506 -CT = 2C6338B66C2319C1A01B0203A803FFF1EC6F915586266AE6 - -Count = 273 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304050607 -AD = 0001020304050607 -CT = B53F0A5FDF4258046EC677F00282955B0551E621DE957B2C - -Count = 274 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304050607 -AD = 000102030405060708 -CT = D5DCF61CD7BE7644153AF1B0F6E9366E43F2FFFFB2763C6E - -Count = 275 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304050607 -AD = 00010203040506070809 -CT = 030481E435D0957CFEAF1249C3502CEAA94A7C80002DF893 - -Count = 276 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304050607 -AD = 000102030405060708090A -CT = FD6102CA26CDA445B3FB25F4241D7E09881E084C07A72449 - -Count = 277 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304050607 -AD = 000102030405060708090A0B -CT = 3138D1640651C5E3E339235F9163DC48AFE03367A56FA43B - -Count = 278 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304050607 -AD = 000102030405060708090A0B0C -CT = 17DBF78E0B3964C0C2B0DC580F53038E452FF895EEDAD827 - -Count = 279 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304050607 -AD = 000102030405060708090A0B0C0D -CT = EFF49B796890B5B65BAF95E70CFFE4397811971BAAAFA7BE - -Count = 280 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304050607 -AD = 000102030405060708090A0B0C0D0E -CT = BD23BDE6C3CA82CE4A4ADC63DF766A26952E1BC3D47B7664 - -Count = 281 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304050607 -AD = 000102030405060708090A0B0C0D0E0F -CT = B904C08FB78E0F5127765D113B79B16F3C99C9E9194F9672 - -Count = 282 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304050607 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = FAA7AD47DA0F14DBB11F25E82F7EB62A6EEFE396D210BB68 - -Count = 283 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304050607 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 7614791082ED8A1125AD0B7BD77D36A64F15EB06F7136641 - -Count = 284 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304050607 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = B6B7EEB1F82882CB31FB3066CC2C55C29F315CF4C66FFCF5 - -Count = 285 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304050607 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 582EF95BF4A5F5C727DFC758AE2A6B4242B133247C37923C - -Count = 286 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304050607 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = 3D43AD6F0D9EC4CE65F201C0DDF1371B522101F12211E8B1 - -Count = 287 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304050607 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = E54D09C265137201DF3A48674832296AB4CCAE3051D8CCF3 - -Count = 288 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304050607 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 3F43F4C7422F2EE9386AF6322CE56455547A9C290DB3C9BF - -Count = 289 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304050607 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = F299909625031D1BA42D71ECC8D8ED842B0142BE48B7D858 - -Count = 290 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304050607 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = F0217F2510639DBCE85E9DA90276BEDC3C0E7CC89D97E148 - -Count = 291 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304050607 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = 3F58D34D3E260E328643F80EA58EB6A7426DE034AC1C8145 - -Count = 292 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304050607 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = B35FB53B1F1DD719CF95D2F79506BA45061125F908F44752 - -Count = 293 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304050607 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 53B8CC542D5141129C2899F2981B098C0AC3C98D78222FBE - -Count = 294 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304050607 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = 399E3E9A4336B2603638DD47B1A1E5C64E2A5E9C085C7358 - -Count = 295 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304050607 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = F88C52F66DF7F7A2D6352B76DA12B9237350AADD57B4B60A - -Count = 296 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304050607 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = 928B4B6EEFAB400DF474614A88678135FE0ED2296A0D70DA - -Count = 297 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304050607 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = CF1ED60D0F19CAD796344513786DBF029AE9A060E46A0E03 - -Count = 298 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708 -AD = -CT = 19C02A457CE30C6EFEB42AA3995982EE812147DC3E8B17EA38 - -Count = 299 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708 -AD = 00 -CT = 80A4574A9240E521A0CA008D7BB2A2786D0196C9C88EC4AC25 - -Count = 300 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708 -AD = 0001 -CT = 080358DB59F9BF0CAACDEDCC3C1A01B137B90C099A9C2E43A1 - -Count = 301 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708 -AD = 000102 -CT = B93F5C630F463D94F49790695E10A6B0888CCCD190AFCF2F53 - -Count = 302 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708 -AD = 00010203 -CT = D7A797F2FA7CAEFFDEE002D032B54DFCC22EE687B721388CCA - -Count = 303 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708 -AD = 0001020304 -CT = BE24A8449E471BDE3AB49E7783ED2EDE0A81D14C3A8C024547 - -Count = 304 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708 -AD = 000102030405 -CT = 6AFE6C20C769621B61EBC350A8774A2C84069238169B3BDD3A - -Count = 305 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708 -AD = 00010203040506 -CT = 9FFDB7A8FA0B31AE0F7F2387A801A9DEDE78EB075B7C1B224B - -Count = 306 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708 -AD = 0001020304050607 -CT = 697E26DB031FF1F0819B11959566060F874B4FAA70B0D1C6D5 - -Count = 307 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708 -AD = 000102030405060708 -CT = 636A54D781421661ADEA7986A5DDFDF1DCF6D5FD359D226FE0 - -Count = 308 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708 -AD = 00010203040506070809 -CT = AE04E6677C9D082280A5D9333277DC809E6CEB6FA04F7B5D3D - -Count = 309 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708 -AD = 000102030405060708090A -CT = 7ACE5C33B96D05EEFA6336EE42AF0F5A6E8F24A91BBAC847A6 - -Count = 310 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708 -AD = 000102030405060708090A0B -CT = 76403E9A4B2A2A73DAE6368D13E6C93F05B2766532780B2C56 - -Count = 311 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708 -AD = 000102030405060708090A0B0C -CT = 7E8528048189CEC7389B15457CE71BE0D13C9A50CDC80AE7CA - -Count = 312 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708 -AD = 000102030405060708090A0B0C0D -CT = DC6A0BD7D4C76B80EC9850498393F35AC029C717B53D5F03B4 - -Count = 313 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708 -AD = 000102030405060708090A0B0C0D0E -CT = AED4F16BA1A52D70C07BD191CF0E3A36591E40D117F5B72E54 - -Count = 314 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708 -AD = 000102030405060708090A0B0C0D0E0F -CT = 8F87EA472F18EECBDF61664B377BDCC2B054ECA41F18BB54AF - -Count = 315 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 629E64255BAD63CF3D46848C6FDAE6ADD6ED47DD7774CE3807 - -Count = 316 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 91022B6AE49767C59CEDD5CA40F47E5E8F541BAC95EDE35482 - -Count = 317 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = 4C653119E82C372E38905C1048371A9A5A2B38F10F4BFE7BCF - -Count = 318 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 9EC09EC5CB85CFB807BA0716BDDDA8753F5F07668AD1909157 - -Count = 319 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = A7406B37DB78B64BF3E96E2DE69CA4EE388AD4D73EAB56A2CD - -Count = 320 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = 03C0F98A6A94DAC8A55F2EB7F25335AE6CDD895AA8FE49626D - -Count = 321 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 9B230F55504AB3DC0C15797429DBA602B0AFBE67D5A352970C - -Count = 322 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = 8C48BD9DD82A7D097C0B4744318B2550715601AADE95B26D55 - -Count = 323 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 7F8ED5ACBC6246698E2AB9F943FCDD2C45901399B95AED94A2 - -Count = 324 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = FD1F1E12B2761C7E6F0FFEC29E478BD58803322C1F55D710DD - -Count = 325 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = F47CCFCB9904479F36224E3A03AB93574448AB9D3A19EFCD0B - -Count = 326 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = C6027CE52151812B908860A622C12FF03C5D1DDA2FD966407D - -Count = 327 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = F6A83DFAC3CEB517E9C30BD59CE9FDFA433F774FAE66D37853 - -Count = 328 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 61B440018BB84FC376EE8828DC3E8B7F1C79C67E1E235D7E24 - -Count = 329 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = 1431626654D5EC84FB35ED83353921AFE40140F6A06AF5CCA2 - -Count = 330 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 102738C754BECBF2D456969B434BD8CD46221ADDAAA59C0950 - -Count = 331 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506070809 -AD = -CT = 0ADB9BC4BE268A5FA1E06081CAED8BFB320B53DE6BC3FDC52E2E - -Count = 332 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506070809 -AD = 00 -CT = 7840F13174B746AE025760C050A4A1C21158748FA133E8989B34 - -Count = 333 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506070809 -AD = 0001 -CT = 02C7FDFFE0F2B82167160C25CC9BA8C71908C66FC054E44DD27D - -Count = 334 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506070809 -AD = 000102 -CT = A980698548FF9E365AF628C5E802D5C30696401E5FA1D4C39B60 - -Count = 335 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506070809 -AD = 00010203 -CT = 49446DBF7D6CCEB0456AA61E138D9C89A548AC34D13F23331FB9 - -Count = 336 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506070809 -AD = 0001020304 -CT = C0C0D00B5A48475A4412ADEAA142461F010655D9033D6167F27C - -Count = 337 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506070809 -AD = 000102030405 -CT = 8F505DA4EF2670B32E4C7FD1A3B994CBABA345483BEFBF6A7E29 - -Count = 338 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506070809 -AD = 00010203040506 -CT = 8052132F05705F6169007CF079F990B585235EF0CC9300488881 - -Count = 339 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506070809 -AD = 0001020304050607 -CT = C3331C1B84151BE47436DCAF209868A940476CA632CC850C20EE - -Count = 340 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506070809 -AD = 000102030405060708 -CT = DA8DF765AA9936BA4EC7AC4415CF17555FAADA214F161A78D515 - -Count = 341 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506070809 -AD = 00010203040506070809 -CT = 4B6345F582B5F23FEA255A319722399E98F61FA9BFE9F871F794 - -Count = 342 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506070809 -AD = 000102030405060708090A -CT = F98047FA416E88A0135524F716D35A5DA88828F68E89E84E2B69 - -Count = 343 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506070809 -AD = 000102030405060708090A0B -CT = 3DEF7707AE02F3DFBD9A619081FF4036D5FBB1EF01115D142DBD - -Count = 344 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C -CT = 4B472983691C8945FC594417D6E04571C0DEDF57502CD3B0A28E - -Count = 345 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C0D -CT = 16303690B8185745D5D9E24C0355608B9D1DA1C6D47DF9D62AD6 - -Count = 346 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C0D0E -CT = 1C31A767C094C010F095FA654E3A0ED96A60B8FBC94C5A13EBDF - -Count = 347 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C0D0E0F -CT = A76F64207C72E1D1593EFAC6A66F82BE0610350736A57F6B39D3 - -Count = 348 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 4B65F49C4FA01526E96F6A55263A9B2D1B5F9D41B4620FA234A6 - -Count = 349 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 7E8E2EFF4C292C15E1B4C874A971977031970E8E0BCA3CAD2B24 - -Count = 350 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = 5D33068CF741CB3842DE4E2B44B3ED2D3B0C75677C1DC5AD7962 - -Count = 351 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = F74A7FA2F38990EBA26E7457AA4BEC1EC31307F15E056BA8D8FF - -Count = 352 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = 30724D84EA86EEF3090F69B72ED273AB1E92F41494F889CC393F - -Count = 353 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = 7FE80A53969E2EE729735D57632476AB8894E25EC57A76CEF833 - -Count = 354 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 4FCB65B89C96FD74421DAA7B1EAEC11FCE92A8CE55E07F654E9C - -Count = 355 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = 638B724486A33A715FE2F9285FC0D41A543529A491DA6EB78D88 - -Count = 356 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = C4F7EE4F47601B77072B828B0595052ADBFA73E22282EC548212 - -Count = 357 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = 3CFE4172BA0E0117E88374CE93C16A18A227A83DE21EB27695F4 - -Count = 358 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 2551C1B84CA0A2956E2D31738680A841710296ADBE2EB648107E - -Count = 359 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 2204CE867F0DB4365EA828B1A1744E8FDCC6BDBB137B73AF104C - -Count = 360 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = 54BA6153B467E4695E619656E0D18965512EC8F685637CB60329 - -Count = 361 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 72B84D1D14FBCAF037EBFF68D3F8EC03AF6EDEBFACE16AFFF5AE - -Count = 362 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = F7F1B2333546F2485549B89D9E17545541C60C393ACC55C9CADF - -Count = 363 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 4656447CD3973FF12FEEDA227ADC4C9A0BAB014CC7E39FCD3022 - -Count = 364 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A -AD = -CT = ED9C82E3487E47022DAD8CD51C7E45C9DFADA5521125A36990E5BC - -Count = 365 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A -AD = 00 -CT = 42FA63A0EC2C7566718E7AC665FE82C62381ED1B72628C44F0BA52 - -Count = 366 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A -AD = 0001 -CT = A066422CEE26018A590832FF12B8AD7390D60302C7B47F6A011A08 - -Count = 367 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A -AD = 000102 -CT = C7AFC18D41B6167981E827D97D2B834FF213B460D1DC8A8E9EF92A - -Count = 368 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A -AD = 00010203 -CT = 1F6CF5308C32CB7AB63C340D47909391B2FE5BE966A3F36A9CE7AB - -Count = 369 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A -AD = 0001020304 -CT = 8EA2858FA51CC2CFD6B8C5AD02F7B8704AA3502A998028509E698C - -Count = 370 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A -AD = 000102030405 -CT = FA120AC9DFB57468D86C710C6A51A8738C8161CFA146FCAEAC6CF6 - -Count = 371 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A -AD = 00010203040506 -CT = B6823033B526472CC56693E1A68F4848531B0895D23C9C7399BC43 - -Count = 372 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A -AD = 0001020304050607 -CT = 7B54C966E4027902954E8A857A08C3D45B1CFC1C29C0C5957E87BB - -Count = 373 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A -AD = 000102030405060708 -CT = A052A31926CC95045B4EE319108A8617CBCF5AE2965E4292C7BD97 - -Count = 374 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A -AD = 00010203040506070809 -CT = 883303B7CF4376E57F949D476382D0B1FC91674E45E93FAEAA8D3E - -Count = 375 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A -AD = 000102030405060708090A -CT = 1309BBCE222B2046A83C20F56DEDC85B9CBA7AD29109DFFA35F380 - -Count = 376 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A -AD = 000102030405060708090A0B -CT = B1FC1FF58CA6DD3BCD33FB330AEDEA2ED60A56B1C6EE0CBEF7D1D7 - -Count = 377 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C -CT = EA587A7D3559E3B9D1431241516AE2D8FBE96147B97CA0B1F48C4D - -Count = 378 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C0D -CT = 8B4DD67A9F72004C26E2B573EF14F0398AC243F70668EE93CF7EF7 - -Count = 379 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C0D0E -CT = A3B9736A04CBFACEE12BF2BD6746FA48FF6603895AAC3E592C4ADD - -Count = 380 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C0D0E0F -CT = DD3F1651914C97BDF0D7CC7350645D9ECC8C9396BDAA2052C51952 - -Count = 381 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C0D0E0F10 -CT = BD73EE0A454D06F1B4716734B74A8749BF0D5B1407499E75C9CD16 - -Count = 382 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 2ABB7D1EC52EB7F5F90B6AFC6AA899ED3A1F26A273E29164C90BE3 - -Count = 383 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = E44F7764A37622B8173D20BDF2E629C75849BEC3A9CD845B17159A - -Count = 384 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = D5439DC2771B6EE42E7B12A8A2ABAE7A270E007918DA2914E55D72 - -Count = 385 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = 9704D6AA5D4E8CE956BBFBE7E7B22A1DB610593FC05538A48A053D - -Count = 386 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = 6F181AC89A5C4312E20C583A87020056F7BF941B3265DD5EFD91B6 - -Count = 387 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 42383E59CC38D5820FE1D3D7C437BC1518D36D2A8D901DEF574E7F - -Count = 388 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = A1A16F24A100C7A20FD0B3FE309BC20E191A13A9695BDBA1967896 - -Count = 389 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 8585D83508A5868001256E32D295587A301CD0470DD29909255CF8 - -Count = 390 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = C353DEC418F80E4BF6B166D98E128F272530BF478F7A9842C72AC1 - -Count = 391 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 0D9E81FE27D9A785E2E6A4437D09B94844C5E2B38A5FD4329427A6 - -Count = 392 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 4E3A1C08743AAE44ADFDFBFB648F4FDC48818440F79A5C044CD801 - -Count = 393 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = ED3BC411110E280437D6C7EF3E65BAB23CB1B864D29F5C62A902E0 - -Count = 394 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 914D3382D241E82886A36920E79F093F71D5EBC4E13B32D7EBB06E - -Count = 395 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = 8AACAD3693DB4940BBA07787A0A1F9B30459CDACF39AE20E1E1D62 - -Count = 396 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 179662F4A56A73301EF04FDFB88936D011AB3865A726631D34E16B - -Count = 397 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B -AD = -CT = 94E74750B3B4FAD25A8588810FC14AF7C562A65F1B05D6B3F948BC2C - -Count = 398 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B -AD = 00 -CT = FD62CC21242D778BB04228BB159EE386FB154FA96648CF8B950B9A6C - -Count = 399 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B -AD = 0001 -CT = 8CC22DFCD992BCEC5FC5A8CA0F0E6A638626C04C590C632AACC306CA - -Count = 400 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B -AD = 000102 -CT = 89A0E6A175A661BAA2D99ACA27693B2EBF1A650B72B2AB1A10783C88 - -Count = 401 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B -AD = 00010203 -CT = B5BA71F99D719B9B8EB39CBF367BD2FE57FB1F929EABCF2C2629D2AA - -Count = 402 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B -AD = 0001020304 -CT = 0EC5A738408DD5DF050D87940E098C6D86965269A7F340D607414D4F - -Count = 403 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B -AD = 000102030405 -CT = 268C439CF402396C2C68B6C8931C237D2FA4BA6AEAE9990853CF3BF4 - -Count = 404 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B -AD = 00010203040506 -CT = 5E497A951A144674BD8B025CFFBF771004C6D4020B8C0103D8D58E73 - -Count = 405 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B -AD = 0001020304050607 -CT = FA00CCF57AD9824665CD0BBECABF3C909FBAB7FCC77C558974310F05 - -Count = 406 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B -AD = 000102030405060708 -CT = 32F413324E9E403713C343CA39FC0A779669639C18AB55D24AE76FEB - -Count = 407 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B -AD = 00010203040506070809 -CT = 8019CDD284CA3FC097383927A2FB2AFF8A20EFAFD8E9328D1B6807A5 - -Count = 408 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B -AD = 000102030405060708090A -CT = 6B96B92BF6D15110857FEA9C93F650235B2B02F12AC65112B2EB8454 - -Count = 409 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B -CT = 75FC41C36EFB607A180BE7AE361995171C61D13C29C4637715788967 - -Count = 410 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C -CT = 8BE186943661FBF4C58CFBF685D6C179AECF566A2D3A18556D9738A0 - -Count = 411 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C0D -CT = B1BA3B0B35546C573BE38EB59471B2E05EA0CCDA4C8930B02F2182B9 - -Count = 412 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C0D0E -CT = 860F661AB5AB59E82A0C578103A562323E23B5E2EA32BAE9E155FEE5 - -Count = 413 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C0D0E0F -CT = 3425DE14322CD19799F564C0383D05DEB85745465B33F0A79D8F6B5D - -Count = 414 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C0D0E0F10 -CT = C8890081006AFF79D2AE03462CEF12DC7363EF5A9CD8EFBECBC10C35 - -Count = 415 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 36A574A8F69303C389FE8DC27BAA668656499BAB7CE82AC9D1DD3D3D - -Count = 416 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = F414CC6CDBF647CA8397A79FD5414739F080A164648B802CE5B70545 - -Count = 417 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 12DA8BBAFCF5048C5257C065333CFDFF0EEE3058800D8B9B9F67E9C7 - -Count = 418 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = E7A9C157E310BABB7048ACF95864D79CF1D189F1C13C05816CBD2847 - -Count = 419 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = 94C961C204702E977F9258EF6FBF37135D4566A21F491FC981FAA6F1 - -Count = 420 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 749A9EC3DF8F4BB1C9F54A4CD3777D6DDA4D22FDCDB056009B3EA2B3 - -Count = 421 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = D8D0C931291F9CCD5F0F80B72275AA05696CBD8907984FE4924C874D - -Count = 422 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 602086A7670354AD01D199EAE1DFDBF731BEA0BE0756BE344AE4C42A - -Count = 423 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = FA874E3D2D48184F2A5D60AF46A436C91ECDA9FC717C37A1574AB229 - -Count = 424 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 7584DEEA1A1F8F4EF869B39D97E3D9A352D7411F97F0303549FCE8AC - -Count = 425 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 67658BDA4B3C2389F4922D2DE79DCD878629C7A11CCF790C46ABD533 - -Count = 426 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = C314C1F091F5461C7DF28F1921FB811FF6633ED0CEA364DCB5A82551 - -Count = 427 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = DCA056E3E6EAA245EE94E374F2C82F34839D870AA8892C1BA123D2C7 - -Count = 428 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = 7D65C76C864697E6228FE5F69FDF0A136DC08F9647E3FFCFD83A2889 - -Count = 429 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 603ABC44A3350BA9A2ABD6B33C9235F97A1AFB0EB5267FA47E212510 - -Count = 430 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C -AD = -CT = 2E34D9583CB3936C955D590786273C207B67B2BC9FECBA21B3E9FE89D0 - -Count = 431 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C -AD = 00 -CT = FC61C14BF14488B79AD0AC2939BD0FEB5E3E7E705A029F5E77A4026528 - -Count = 432 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C -AD = 0001 -CT = 3C44FDB8617BD6E8B10364A6E91BC0F49D54202F2E3D09D4F1A1ED92E6 - -Count = 433 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C -AD = 000102 -CT = 5FBD044FA73DB912FE63782072B499CC598C62CD9BFF80DCEA6E7FC655 - -Count = 434 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C -AD = 00010203 -CT = BC1AE6E0F40F2F2FEA3661C60E2B2DC87BA5F1C767B81D7F3095500293 - -Count = 435 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C -AD = 0001020304 -CT = F60E6D729D18BEBD21A86396472BD7263AA5C3017C8480C45A2F321D7B - -Count = 436 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C -AD = 000102030405 -CT = 49A3758C3EE1E26A02938E0E0DFE357B2FE69FFC6B4BE926F565FBD4DA - -Count = 437 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C -AD = 00010203040506 -CT = 1473F62BED50C732373C47B8A45D12985CAA5E15DC661198B830EFC788 - -Count = 438 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C -AD = 0001020304050607 -CT = D7FEB6C9DD78B0C35249F95714EF2B96E4F0B0FE1B949B2C299E6D00EB - -Count = 439 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C -AD = 000102030405060708 -CT = 7E0DAC5D783CC0801222FB457813007AC10CFD0D85A42C7FE081181C96 - -Count = 440 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C -AD = 00010203040506070809 -CT = A8E5954953D6E4D3C844BE3839700865C75A9FBA0AD3199D13FCFCABDC - -Count = 441 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A -CT = 2DB2C0F9818EB070D3D35B9A43B9C491179645DDC6F28DC1F0A35B8A2D - -Count = 442 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B -CT = 99A813F103C59695BDDB007A6352DC6B3747B24B5541FF36BB6C6B0016 - -Count = 443 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C -CT = A5D502FE9DE9D7CABEC9028BDB7D2048917CB693F2331B48303E7F2133 - -Count = 444 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C0D -CT = 75B7AD1A1F5E1D84317E24A6314701DB0635C084F0B668715463F6561C - -Count = 445 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C0D0E -CT = 04BCC9C103D1531703582D24F22D44E7A27E800C64017FE05EA371519E - -Count = 446 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C0D0E0F -CT = 5D82E6D669F034B70678DD29BC0631ACE3A96F1B9CADD43879CB24926D - -Count = 447 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C0D0E0F10 -CT = B5694B8589976888A9937EE6A914C0E9369F662DF67A8D7B00C6009E97 - -Count = 448 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = D3B4F37DAC2654EED7F6920EAB38D308F5C84722F8268F2AB2734CBB15 - -Count = 449 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = 7FEAA58BFB956ED28CB45D6D5B579B0E58E99B51A423952C25ACE2AECA - -Count = 450 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = F9E8B0428E2C880840C8CF132E40BBB35E9347118B12A5BA6649770C17 - -Count = 451 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = 6A78F1E711B5C869FF147242336941F2C806E419D843474FEBE9EAC6C5 - -Count = 452 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = BE8F15DD80480214DA4CA31F9E4BBC8B46CA4A6F237FF4F2578AA3B509 - -Count = 453 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 3D83424D57BAC7340F990E0AF45D7B1E0731B47D72DC2948E15A644A4F - -Count = 454 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = 2A39E2246321085387F5290A6079F5632C1F15A113BB004711849847C8 - -Count = 455 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 4A4116C4ECB6D42C1520427FB7EDAA4ABB5ECDFCD0F66B8A0E33358AE4 - -Count = 456 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = 8693B2C60FC77EA928536FAD8825C7519509E4B0B70235ECE403022031 - -Count = 457 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 9F2951F0F2797CA1C5E6FA7B9F0541BE0D03C0A4AC688D03313D773E33 - -Count = 458 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 1AE8870A1443C44BF23DA102C52BA99113255735372F5C42975F73610B - -Count = 459 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = 40A89A9B02EBD9D64C5C83BA21A7F6E56D311B8F71763C0A67D9222F12 - -Count = 460 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 9A7D44F8BCE47DA7AE975D01626CF9DA41241DCB40F57B627DB2C041F6 - -Count = 461 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = 1827BAA6407BF7176678067497F12FB8E4D4308AD145C9BDF08DA376B0 - -Count = 462 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 7C2292C443885042726CC2DAAF2A74362F5357120ADC440B77E07D01A2 - -Count = 463 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D -AD = -CT = 6A0037DDE95185558855A2BE11C2E42134D49274BBAC71EA7C30622D9C0F - -Count = 464 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D -AD = 00 -CT = FCFBEEDC8C1EA9663D31B0B1099DB83FCB756CA68D56835CCA4C27E4C2F8 - -Count = 465 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D -AD = 0001 -CT = 0E2E8F30F0C391A4034208D1C996F7928650DCD1510FF7E1E4836A3E3BB4 - -Count = 466 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D -AD = 000102 -CT = 575E8B0D5124FE1FB2ADD8B3B4ACEE7B0D72A712B72BF2AB847A0D50C4AD - -Count = 467 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D -AD = 00010203 -CT = B7B87F03895D737DE58D81735C66C55BD69CB4DAC86F358ABFBE8CD9F411 - -Count = 468 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D -AD = 0001020304 -CT = 883200C322B6A50C78D11D4B9EE2A15269CC350CC46C2E840DD153F25B26 - -Count = 469 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D -AD = 000102030405 -CT = B32B255C42EB056FA673CF76DF3E2C950586963F04F3626E3338978AE354 - -Count = 470 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D -AD = 00010203040506 -CT = E070F7A721BF3DAFBAC0F9407055ED095E29A818C2332D2590A5DA82E0ED - -Count = 471 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D -AD = 0001020304050607 -CT = 9858EB2547202F0F4F2CB92E94D5AD5D03DCD0A917D6AB58B2C5A10BCA7D - -Count = 472 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708 -CT = 051C362CF017180E46C5E7140C63641978D3FF2F11D0A226209E614F64D5 - -Count = 473 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D -AD = 00010203040506070809 -CT = 7C89FABF7AC9D748F5D4F1F23EB00DEE5CF46A670F40EC13124EAD00CFDD - -Count = 474 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A -CT = E9E7805A5AD6973E1776BE51A919F819C1D36773522D6C0E8057AF9D9498 - -Count = 475 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B -CT = 437A96250084F91F2CDDD619CAE7FC2DA1F2ECEEDDACB0B3D3FC817952B8 - -Count = 476 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C -CT = F7EDEC7A5925AB5BE45C3D001E87FAAEED66E71ADD075F06799FF10E3E7F - -Count = 477 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C0D -CT = 981E132FCB6E05D97B4BFC27712A86A0AEDC542D7F1A425E76C97FCFE26E - -Count = 478 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C0D0E -CT = D75FB460D0DDD09649B6127CB23B47831ADC0EA6C28C8E6D28E6B562039B - -Count = 479 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C0D0E0F -CT = 3BA03A55E0A533C45551F57E137BE70FECC03CFBF1B26FFF107DD1B6E581 - -Count = 480 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C0D0E0F10 -CT = D49379CDD92AF2E7106391ECEEC1D3E96814ABDDD54F675BA59621E74D5B - -Count = 481 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 0ED61625352A4F3F04366B0DBAC6CD03533936C2E96E3952D34BC7CBA735 - -Count = 482 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = CF7438ADB25D0B7A0AD38BD1FE95035B75446C132A9D193C36D3A34CE0D2 - -Count = 483 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 4E6167E1A9C5A69913248D548C08F3F5EAA6A90A86332789CD129E49534A - -Count = 484 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = DC1C20DA81C6507FF04F37898873FD1191DA26D0BBE0BE8DBA5543847041 - -Count = 485 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = E18C3DAEF7D94AB73C608ACD567F74967817C7DFF42982C6C22B4BFC7136 - -Count = 486 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = C7E0D5D310EA6EE24CBC8CF735DECE37D6910853A97161AB52C030A804A6 - -Count = 487 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = F870F5A0D5BDF885E3098BE5E6FDFD7F19398FD64387C8AC5AE158AC56BF - -Count = 488 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 8C8365A66AE21C1F85DBE288E2212B62B08DB2A5822ABFF5BB6A68657F09 - -Count = 489 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = 56B1986DB3CC994B16A8DD77D3166143D0849C31E5623222C2EADDE8635F - -Count = 490 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 6816CC0E29DC9CF5EE3356AA2DC5DA952FFC3582252E036C86457AC9AB36 - -Count = 491 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = DA881562170087570755526093925C093D871298D29927435FDDEF6ED02C - -Count = 492 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = 9585D0E243369D6747A3529DADD3A59921E80C091F165E1649C9F15D485B - -Count = 493 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = FCD6D40EEB4170F2166A02211A3207577F59730E28C6E5AF2A8FFDFE9689 - -Count = 494 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = 747DED74E776EED785233E35A0A6B8D51FE450CA83A8DD0ED8E216953F54 - -Count = 495 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 94CE60ED5B8FEC3AB32C0C50C989ECCA82D53C1974BBAD94C66AE239642F - -Count = 496 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E -AD = -CT = C9D434E029AB94CCCD50CD556B536FDB928B58140D0CC974758C3C87B13E73 - -Count = 497 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E -AD = 00 -CT = ABF2737CB216E48C905368983AC7E21BB33F05B3E6047B8D5C52B5D6BC8435 - -Count = 498 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E -AD = 0001 -CT = CD4152069F0CAB5811EB059D2750D436687D249CD1DCC738A043E7C8D7F4E9 - -Count = 499 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E -AD = 000102 -CT = 068115A1A61EEE822161225498BBED2DDB1864F5BC9B56D1C016D6D566138B - -Count = 500 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E -AD = 00010203 -CT = 072704C1B2318F950FC1BD241CEC7577F6408E60D1D0CDBF82701183843989 - -Count = 501 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E -AD = 0001020304 -CT = 2C77B946EC63D560E4AC86BF5B21F699F0EE7CA50920B31C55AC3D5F55B86D - -Count = 502 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405 -CT = D947444DFD94E9196DA53538BF2380A52540A8250E97834AD6BE51FD83D42E - -Count = 503 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E -AD = 00010203040506 -CT = 8DEF202572092D738D2EB08BBF16ABAA7D4A3E0B20A0653786B65CF4753506 - -Count = 504 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E -AD = 0001020304050607 -CT = 8597E78352A4453F3A4E9A4E84C93603AB4AA42F3C109D58254CBCEBCE1BDB - -Count = 505 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708 -CT = C4C26879C7A42F1593C0FF36CD91E457605F16DDFBF6F30D3DED1498CB5B40 - -Count = 506 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E -AD = 00010203040506070809 -CT = CE14DA59ABD94EEBE3FBEBA9B1A51AE928B3B2D5F5B5D65CE669B52915E152 - -Count = 507 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A -CT = D335FAD7BFF7E7D171649417BDBF26049C86FD9197608D9BED741D21C78D9D - -Count = 508 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B -CT = A2DF8B426BED93B81D1ED02EB991DB8E00E42A80A171EA34604C8DF214A483 - -Count = 509 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C -CT = 80246D0F6225876A55DF221741F134586751B16F91154E39E5471D9633927E - -Count = 510 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C0D -CT = E83BBA40059B837AE6FCCFE5D189B5F10ACEB872B343C71E61B3BCA5077CBC - -Count = 511 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C0D0E -CT = 727A95D518B1397C612E5F58E5A67536D5456C3E532C52E02306DF9EE39F97 - -Count = 512 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C0D0E0F -CT = 87C05EBB2AFF3CBFB6B69784F5E3207B179D606BEEE40F884AFD955E322C00 - -Count = 513 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 3C7B6ABC78A1043B18A7F85807131EEEA5DFE4B4B3F2F689E7C3F71B748002 - -Count = 514 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 58F3F3033E1FE80689DAC957E20D6AA226D2165C419BF2736B73FDDC7035BA - -Count = 515 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = C0CD09D5755F679B9C40AF41C6C6ADE10E3ACF28A208489F1429D73F3667D7 - -Count = 516 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = AE125CFF191639364FDBC61474C5AF7DC1B0ADDBBC3DE46A9C5CB312F0F7A3 - -Count = 517 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = 789A88EE9FB4442845E98B5FF1D7D3037056CFC4EBECD07CA44439ADC8D743 - -Count = 518 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = A0A368E9E620C757ED0B371C7732DF943D590DC8B2E14AAA6156A3AB1ECEE1 - -Count = 519 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = C3ADC17FA1554DF785EEC93A1DF194FEA8FE01C3DA09AC2F2517C5B732D0AA - -Count = 520 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = 9A1CDEC82D7C835390FBF2ABEEE7924DA5B44A7EBE3D9A5E28ADBB9D60F327 - -Count = 521 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = BFC2F4DB5814B34FD864B31A3E35D1523617EC2DF109FDEECCE7B1140B775F - -Count = 522 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = E393AD98AC53AAEA678E824C50B43E66091064079CFFFF5B6689F947DF4156 - -Count = 523 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 38F66465936D56E765BABD2601AE66D1674537046C27910D96DAE4EAE5D7EC - -Count = 524 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = E4FFAB81BFB7C03FC981E78F0B85928F81950091B048161C1958C5C2C8A546 - -Count = 525 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = 3B5271BD6E294939F33555E2828CF33302BF23BD4A6AF174B8DC318E940593 - -Count = 526 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = AA57ACCEA4325C5C91DA1EB41AF8BEF49C2D464F51344CA54BB25F40A71EC8 - -Count = 527 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = 1A1F3D43B701B5291A91141BC2BC001199BEC48736F54A737CE18E8BE88834 - -Count = 528 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 5B7188EC3CF7D9936934C796F3849EEAD622CC438F3C9228FA223EB9CDFF2B - -Count = 529 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F -AD = -CT = EF0C294594429B657EA6CDD1476737EC4EA2F510FF840BE0862B266BD14864F9 - -Count = 530 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F -AD = 00 -CT = A4B170FA2C2FCF597D4A84CDE1E4CEEB7791137B8A211BE3D91D252F2F599804 - -Count = 531 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F -AD = 0001 -CT = 97D7BFBEEE1842E9E042B52F5E01E7EE0D992D25B8B9BAB4E6413D38DB265BDD - -Count = 532 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102 -CT = 4F506F57FAE9E1DCA3B83F301C7D794C00AAC7970791400157F809902800F9EA - -Count = 533 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F -AD = 00010203 -CT = 30C64146F376E577AD040B20861564B45C00CD6BBEF057E4548212C923E9E8B1 - -Count = 534 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F -AD = 0001020304 -CT = 2C06C3F9E54AB6F0DAE9B99C2C31C8FDA91C12FA81262B56C106906CA9C65D4E - -Count = 535 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405 -CT = 9D22ACBA0486F7C808FF9DFB4593829FB3371357304B1C0615CE384625C203DE - -Count = 536 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F -AD = 00010203040506 -CT = B838773C0770DA6ADB610B95A8E4A3E5C0A4A79C84C7413EF8AA7E6834F1607D - -Count = 537 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F -AD = 0001020304050607 -CT = 4022B9A8622D623C58E58D821FBAC95DD93EEEC934811DB96D008634719BC748 - -Count = 538 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708 -CT = 573FA80904B97B47FFCA75B8B5EC2BBB2E1236B19E48DD7E5F14A93C14A3947D - -Count = 539 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F -AD = 00010203040506070809 -CT = 4CE3937187EBB73CF5B931A9B8B75CD05ADCABA1563DF3EB5BB03C3221ED8856 - -Count = 540 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A -CT = 6CB7321CEA1A021733BE841260DD6F593454376E9A24609510944903DE04C064 - -Count = 541 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B -CT = 6B63FC5EEA5D8150B6C4AF6DF1B1D66B42B82B134CC69D39620529656C5D5F8B - -Count = 542 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C -CT = 353FFD32013981E870D7B23A2FAB8DBE58F4CD6BCB9707BCE028FCCEBB078DF4 - -Count = 543 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C0D -CT = 61FA36866B10E0308C7BECEC6087CF213BE2E0809048CD6A29F196CE291AD799 - -Count = 544 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C0D0E -CT = 32EF3303B5803D24843E0ABC2206C585D9C32BFC66A28D110508F96272E04C82 - -Count = 545 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C0D0E0F -CT = 82965C77931E6C1632B0B78BEA9FFAC1E59B8CE9DD15C6F8653CF2EA459E519F - -Count = 546 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C0D0E0F10 -CT = E1CB1ADAF7D5FB76A063EDC3B859530EF1D686E27A93EC2E05D50DD88D128935 - -Count = 547 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = FB4F1218C4AFA05D8B0C4509EF0AE1F5D1A7DEAAB36773244BFCD15BCA42D93F - -Count = 548 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = CBD59602AECECF8B98A9FBFE526383DC8FC7ACA5D63DF15AC72546923D5A5BAD - -Count = 549 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 67156AD4AE9841801C6B855D3FD58D334065112FA6304A194D51A22B2541BC30 - -Count = 550 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = 4D31121A065EA817E54EA65E1A393859342785A85482844BDB1B6FFF9F616976 - -Count = 551 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = 9CFDADC09DCE46B60CCE6D0B8A3A608FD267696C4F41AEE7B6DD7F041DC39B3B - -Count = 552 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = C58CAC9C556A202257D005519B6D2BDE0F6C74E84B1AF3A1E60BEF4E31B03B77 - -Count = 553 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = B9428714002B91756889E5C5B5E0B55C3B45CFC9375D7F735D808DBA9519C58B - -Count = 554 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 10911DDEBD95BF54501C37A978C243045E3EA6A0F5D3B8136849CBB1CC447976 - -Count = 555 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = A85A4E15F8A98AAA14937083964AF7F871D0C4D5B4190B34197B406EAA0FCEFC - -Count = 556 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = BA29DDE0961BD8DAD7302526578D877523B7CC50048770F4ED5B5E8768EC50FF - -Count = 557 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 00CA00DA0080C914DDADE7F18347730A9A8B2EBDDAA8377A067898C950D479F7 - -Count = 558 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = E83A37FC819FE21252F1AC62538E63CB280FEF3DD53131B215209D2D880467EF - -Count = 559 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 4FDF901264652C05941033033AB37CC881A6B5FE32F608513BC50575C1C37A8C - -Count = 560 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = 75CB85AE5F177F5FA32B125C73152018140D1B09C891236104D983B16FD02B80 - -Count = 561 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 5A376FE4E47C89D5DC8F43557F4FA0C7AED2FA1013642DB01A3612C54FAB0359 - -Count = 562 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10 -AD = -CT = 88D982936E20E0CB1395A297ACCD1F814341BC5A7A3B3BDFF5A209562F5A6F1971 - -Count = 563 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 00 -CT = 77044E500A97FC0E11D52704D436CEA22551CC887DC856EA5BF880D8063AE1A114 - -Count = 564 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 0001 -CT = 24BC2C0B966061F296F49E84C74F87591A244523E2398E24121C0360C9D30242C9 - -Count = 565 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102 -CT = 0504DBB1336C348B36F9D636614DDF998490A829305F40FCE7EF44C8D252FD8E4A - -Count = 566 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 00010203 -CT = 20A8095E96EF31D877DB85EC661D1D800FDCE6A4BBFBBE5935A38044CE44026916 - -Count = 567 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 0001020304 -CT = 080E36DC84BA1A24BC7718B08A56C3FADE7B13C12D3E68354E9C014C28E7C19D29 - -Count = 568 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405 -CT = 01F3BFB8553C24AFE63CB18179D28AF0CC2872905A699C342EBA94A4DA3C0B1E95 - -Count = 569 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 00010203040506 -CT = 7CCC05A01AC92BC130CB3D93EE83283C29F7BD1A3BC7B7D1390DB09158787764E7 - -Count = 570 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 0001020304050607 -CT = CCBED0C207AD7BB6366013E38C4526CC5F2DE663579EB22E94B05D5B715EAB392F - -Count = 571 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708 -CT = 0C46CFEC57BB5461EC2C0511D226BCDF27A6F05CA6C89060413C2B24B5D5C8BAD7 - -Count = 572 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 00010203040506070809 -CT = 9F7DD7DB2E8F38C785F98FE547077C3AE05AAC5A2DDD3AF695CF44D08770EC8267 - -Count = 573 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A -CT = 2D4DE26EBBBAD0B80468AF94D3534DDDAA170F383E160EF4F9F1577E8F7A3D66C9 - -Count = 574 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B -CT = D22772AFDAEEC256E7CE46BDA73730F1D772751A555A7A85EAA306949FC0EEE714 - -Count = 575 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C -CT = 67F08FDEF881EFA34F8AD07E59ADBC210BE604B0E29665C462DC30C83459ECE321 - -Count = 576 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C0D -CT = E0617ADCF34A078765B2F23C4C168D82E17747EFB7635773B627417C6BADDAE2E9 - -Count = 577 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C0D0E -CT = 3AB04445E4BB764257E08AD83E55507409B58A5F9ED3D45C9A9E6CEF6C5D0CEADB - -Count = 578 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C0D0E0F -CT = E28C41F9AE0BABB296F2615CB50359EA9EE68F964EAB944C8611302134400F8B35 - -Count = 579 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 823DDF46B296F6D828090843BBDF8F63422025A86F4DED6C9664BC4B0154AFD5D9 - -Count = 580 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = FAAD68F5D151A09320348D5955F66D377F0226EC1AC8E8169C8FC44DC663683D1E - -Count = 581 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = 8AF21480F9C48E8F99AF2EDA11F167D0C939E059B857503EA6313DB71EA904FF57 - -Count = 582 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 6EAF94B0B3AC2CE720957F90255CEF4AD94D2EB78E90CE1DCB440CFF1034116518 - -Count = 583 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = 2D826B20205624ED5B0A31F06E9D26701D4D5653DE8A41150064D4487A9A648C34 - -Count = 584 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = 05EBF9A8F632B6FA84B27F4DD0D0C5C3543BBCBE940201460CA7BFE8E25AD25608 - -Count = 585 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 8058BF6B432FE70FB1C1B9DDF242E3828141A86E4DB2767163F6C80630A3A638AD - -Count = 586 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = 40030879A60CB9F951A78188F0C10733B787A26A5595AC0051E25F33692DD96C22 - -Count = 587 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = F160BD208E76FC5FF65403F75E6ABBEE3ECEAE2A4B5C471A90C0DE2B316EFCD5C4 - -Count = 588 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = C81D194816E26A85CE0BA3DCF2EFFE4D01878C6907EA85FD1DC9231A213EA0182D - -Count = 589 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 776CB287899526D1A024CA3D764C1D97FA5DC402E38956110202C82683DA75FEB4 - -Count = 590 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 47071FB03735958D7D77D6F1AF5229CE4E2EFFBB56B6EF7CEE83644D3673765DE4 - -Count = 591 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = 04BBD029C6F15FB17E94F379D0CEC45DE41A1365E8E07466FFB20082313D6FF117 - -Count = 592 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 8CD0818681C761DBDFFA64E7E81D1201B6BBA00E0B216BADA595929CA2A456078D - -Count = 593 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = 95DEB6242BB0997805DEED2F3631914700F675DEB2899948A312DCA5AB8DF6A855 - -Count = 594 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 1B40AED7A8A928E94EEF54622A24C7BA4642C69B9BBE816E286AD4671E78EB0644 - -Count = 595 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = -CT = 41557C1A57DEBF7E3F0006AA85840BACDB5DEAAFF2278A66ACAF008D035E1102E6C0 - -Count = 596 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 00 -CT = 1B48B1137612DD2FD753A24820F4EE6B4490A291C3298870A212CC4AB5C27CF0788C - -Count = 597 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 0001 -CT = 99DD62B7F4FD82C888A68697194D34F014D86C5C8F4682D058E8E92729E9E533EA64 - -Count = 598 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102 -CT = EF1D5A78F6EE79D321FA0F28763B08007FA3208F95C5BC3363D71471E42F6F9AFC33 - -Count = 599 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 00010203 -CT = 16468A7835CFE6FDD0F2F72C608103176556B7EE6E221CA2FC51AC79BB184F646F7E - -Count = 600 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 0001020304 -CT = 283C9F6B14728410E9430611AD78EC7BDD8B450F5F8B5B3C6AE826DCFE5150A688F8 - -Count = 601 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405 -CT = 87FB9AC6130621DF0DBD6EFAB68DA1D301990F860006C73749E0D57166469C990ADF - -Count = 602 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 00010203040506 -CT = 0545C8D9873F4A9678C428AD21BFDE0DA8E465C2C3C919B2B81169C369FCDC9C512D - -Count = 603 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 0001020304050607 -CT = F772E6B83E1946D6430566FE7AA27C1D191CAE6CAC8DB4FAAF1F2C5DC05AE7E99308 - -Count = 604 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708 -CT = D1B9E2312608BD2B54BE125BB287EB04272A50CF3B7A92E7851F0932FBA1100DE081 - -Count = 605 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 00010203040506070809 -CT = 5F437486D08F236F1CB1028099F4D1E9A520CD57E91026C0628D9572D3E5E2F3ADB2 - -Count = 606 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A -CT = 6902AB55A82C9E1009A007F0D8EB93B92329EBDF1476C4D47D979100D5E28E9F15E7 - -Count = 607 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B -CT = DF78A10470C9F632E84076B1F50ECD78D0A6833CDA1D8B671078716032D0770761B9 - -Count = 608 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C -CT = 5693A1C52597D29D6F0BEC9709162EE53B092D28C52B235E4C1DA83951C2DC00E852 - -Count = 609 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C0D -CT = E6E881E7558BC9E28DAE9720403C88A56ED6DEF065E2AAE69D918E394377648A08DD - -Count = 610 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C0D0E -CT = 509C4896651D3820483268BA04619733C0A8CA9AD0413B320460A5A9568267862A42 - -Count = 611 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C0D0E0F -CT = 54E448C71819AE7F99E9A631C2E2269DB06E65B3A00696FEF8744DA5A5A02DBFC115 - -Count = 612 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = D98DAA4A1753FEFF7480BD4D1E3B8F0DA6D3DA83FAA02DD95F2478A869A1EF9494D0 - -Count = 613 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 9FF0AC96A387A518A3EA863CF1B3D7CBFFF5E623D1CEB32D1F7EA0625D6654D3669F - -Count = 614 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = 389318AA18AAE97C4EB5A50D2A822E9745175D42003C95F182435D7C2A1E9E272B51 - -Count = 615 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 058B677CC520153EE68F59127406AD9E1B9BB5CC4B5E4808B83383D8845A6E640113 - -Count = 616 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = 068C5C1749C631760EDACF4F678F8DF2E0C6DD27B87F4635B5A0275EBA620B6BC9D6 - -Count = 617 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = 4E4E1A0B632E73D3CB118B8D559CEA4C5A072C686464922F7417E862912E006A1F82 - -Count = 618 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 088024DC216EA695B327F4A10ACC80C11D7BC04D4BC8C0AE0DA0D019BC35D10B125C - -Count = 619 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = 1FDB21AECD0DE8C02D55B0674FBD15374C51951C704F5874F9FC4643AFC45244D4CC - -Count = 620 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = CC1A671769C4B79A6635FD5D5074051CD8C721B313042155027FD0EC30F0E4A4BC7A - -Count = 621 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = 2385353A0E2E0FD6835200249081F5A472E6030F47B9E7A129111036679D87C18DCA - -Count = 622 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = EE6B0DDB538CA224A95AB38804A3243F95A98761813A116339F50E94DFA903E991C6 - -Count = 623 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 68182DE7567BD23CDD33EB2C20377E6DC72D77D7031AB13DDC4122BDE4C03936CD7E - -Count = 624 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = 3AB3EA01579D1C2FBD63FA64EFF5DAC34677D6771EB45CDBD4D1C5C88C3D41F3A631 - -Count = 625 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 6F11FE06FAE20FB5B507CD30287C2FC3352B019D582B076F7FD724A78AC83BD3E0F2 - -Count = 626 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = D4B90DEE960A59EA789923E310516F67DD9C98152B7F17C6B23655A97F68F91E94AA - -Count = 627 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = DF9753D8A877963EAC53D043F03D769A20C317A52673DB25D21331075D6CFAF45072 - -Count = 628 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = -CT = CE05264AEC47DC78F4EF2BEB7E31EAA1BF76D1EE7C76D98308F7E84ECAC6DF82CE1C20 - -Count = 629 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 00 -CT = 48BF5C358A68D93917ADEBFE8502A28BF0BE71FA176DCC9F036CD406B1F938836AC569 - -Count = 630 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 0001 -CT = 5E19A0433CD43034D88CDAA20FC5520DCB121896E2FA2EE8E3ED1D559EAE61ECB80C58 - -Count = 631 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102 -CT = 087B87FD8D943BE86C90678DBBBFDEE94B50F609E9B6F12CCFC06794991815AF829931 - -Count = 632 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 00010203 -CT = D2046B38F77D9E313473C1E7038B3474648562AD862BBF37936CD89C5D9C8841825E46 - -Count = 633 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 0001020304 -CT = 7079694DCAE40F16CD56A3D26199FE71342A9FD985C7757C66FCFEC8F3A22E00E4DD7D - -Count = 634 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405 -CT = 4BFF2AEE7E5E91B0C87C3C37C405FCB21EBA70E66345F3AC94E9EE93A5BD167FFF3590 - -Count = 635 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 00010203040506 -CT = 1BD41EFD231D8966B038D0FBEC6462ADDE0FEAAAC7F15F2B4B59A2F8D57393F0292770 - -Count = 636 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 0001020304050607 -CT = 4C87F09ED1F010B6ACD71C04E4AB40F4A8C06DAB5B5244F63B4DC76DB31A5CB9322DED - -Count = 637 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708 -CT = AB1F7ECD1AA5AE36A60DCF590EA06F6273EB7427B5E319CBBDCD938308F5A842F1E832 - -Count = 638 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 00010203040506070809 -CT = 3F1C24737C44EA6214D70528A08D9E2E1E5A1937294EF60197E1794468168EB25E667C - -Count = 639 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A -CT = DD5EE071DE7C7D9631164ECAD095038FA6B1A7CB2EABE7BD192964337F54A4C9E132A8 - -Count = 640 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B -CT = 73A04C3645F4D52DDC5224574CC321E7ADAF98124505660A138AC1FEAB11E87AD6B11C - -Count = 641 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C -CT = FB1E2271B7B8D705FF9553B2B4B44B5E8FF60E0A0E5CA79061927FD4EA89B6B46C4CB5 - -Count = 642 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C0D -CT = 5CDBB5C8FC9677A96E203FD1526525A96C283325194EF02B32E1633D38D4CBEFE0484F - -Count = 643 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C0D0E -CT = ABA1A4AFFE2287BEFAAC434E1550574DDBED7D9701403845B9F50EB18A6EFADF815F5D - -Count = 644 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C0D0E0F -CT = 8B1A7787133F40FAE18F564509DE6A0F65827EACEB7600E44196BFD30E68AC1C84A176 - -Count = 645 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 71C9C149560ADF1AD807072128BCA26C767F5F6ECBFA2F27B5FDB92FE713FF57A22771 - -Count = 646 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = AB0B3BC1AE26FCC70C279AF1BA9DEC7A6085D4A152280E9DC00E2D22DBFEC4B6D12282 - -Count = 647 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = F7546036EB94FFEAFA4F5EDF5BB37E21D64AB90C90AB1ED085A568E9F8C0F3EA13CD9E - -Count = 648 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 925674AEAA2107C33E78122622694FB0ECCE99A832823A54A217B488784339722C4DEA - -Count = 649 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = 96674182CFCFDAADB0B98EE4A9FE9E23F2B9B276113747776BB77DFBBE18F8AD2A9408 - -Count = 650 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = 08E43598469E933939A98AF2B0D5F3C5E45AB4FA40C8CBAC5409D35AE79489FE11C18E - -Count = 651 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = EB0E4202F4C050590709E4A8C66E2A8D2C0393C5252FDC06E8782951D9C2DE253213AD - -Count = 652 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = 772C644B2FEA773442AEF412EDFD89B4E0765BE221913D5B610DFA03CC841FA9996A57 - -Count = 653 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = D9BA6750E1ADEEFB093C8EE5319CC48F0593A82570322BE63179A745CDB57E8E9C58AA - -Count = 654 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = 83F2FCC9FC19D2918A930DA5D25E0A78271D05A6FC7C6A4CF247943778746391D9BB65 - -Count = 655 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = BDC7911CF4F575E096F5AC7B9CD8EDA13D23AF37FFD10E9D14AA448C6B467C47ED2D6C - -Count = 656 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 94F8699B09E9F9BE5C2255D4C12F1C6EBE69C35ABF4FB373649E2D8EEC01BBAFF2812F - -Count = 657 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = F6262B69F29843DD169B793F63BC11E70419F988EC4C1B4EA89BD7CA17B9D2C6089589 - -Count = 658 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 3CB59D747A84D5C68B6C76D367EEC2669A347E11AD4447DE4E8DFC033BCF469777672D - -Count = 659 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = 0E4B288606238654BED0EC71EA4360593C64C8E5DDDF5E37F9520E44B03A564685F8CC - -Count = 660 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = DC06E8047545C3737C9EC3D65C68AFCE495FD9A4F32F82800DBBE5C325C4437F0EF85C - -Count = 661 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = -CT = 490A4E7E2886734863DF229603AD71852BEB0367258891B6F4302BFE84FE55C1C10281CB - -Count = 662 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 00 -CT = 956021668B0360DB7793A62CDBA9611F6D92EC697F67A566411DA49C3AEED1954D77D665 - -Count = 663 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 0001 -CT = B3C806AEFDCB85578E4FD4FDD67FE3F87E9E7B4CB9376C71939A47871F58F5D1221DA140 - -Count = 664 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102 -CT = 335B195E259CF3D53763F05C2FDBD0CCBF7B1B28022FA81048556789784F011D8A758FB8 - -Count = 665 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 00010203 -CT = D97B6785EF5E402E0413FD5666DEB70F9CB4722E65882BFFF60F5CEF1F53A175D20C02DF - -Count = 666 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 0001020304 -CT = C2BE5677887AA43E57016756FAE2B3FDDBE6AC849A6C885B583981DAFFBCC7D52D10BF2A - -Count = 667 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405 -CT = 52712DA11B4FA6DBF1DB41034480AC99F8CF6827B1E71124E80861C2AB906F76B990B4F2 - -Count = 668 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 00010203040506 -CT = 817D27F98E2212FC1D2A6BE85C3442905BDF19F5CB11103E2826DAB124102C338E857DEB - -Count = 669 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 0001020304050607 -CT = A446D84307C0565F0C64EA9641AA576E14E2D91838A1F038392D286247D77A4CF7BB80E8 - -Count = 670 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708 -CT = 80316166310E8D960258CAC86BD54D9F2EC4D0C6807527A0396B641CE86E0AFC78D5713A - -Count = 671 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 00010203040506070809 -CT = 980103AC4F2CF2B54C76D563774BF892BC0A149AAB0BF680079D416E987F2C521B3357C3 - -Count = 672 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A -CT = E5A0104787442B9BEC7A33B3C84BBB082F58A6C786D49927929778527A54E64983766D78 - -Count = 673 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B -CT = 2B51ABBFC4CF35CA824CDCBA83064183EF97B0A0D105D2ED16AED057AB3B482EB61CB51C - -Count = 674 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C -CT = 954EFDF6335CD7FB0E61E4C7EB375E415694D6543B71AB3B1FB3040FEAF1CBA65EE7E6D6 - -Count = 675 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C0D -CT = 5434F35A44576A2EFC10A752E43670DDE6F05C1D9AC75A2C3D78DAACD42BAD9BF1F62677 - -Count = 676 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C0D0E -CT = 4E861C486A30ECCD6D60F21C2413751C6532DAEC473A1313C3A686FF7DD5DA6BE9FD98C3 - -Count = 677 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C0D0E0F -CT = EA02A7DAB49BA00696B6FBC17782DF8EAFAD88A03BD9092900E9E9EAED641730F3593F35 - -Count = 678 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 79E1AC9D1BC556884696AC4B6D62B8C467C6BD18711C58C566182B8D66DD4E359A604E9B - -Count = 679 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 223A87D48DA7216BD16DAFC5DA810D18FF78E4307558636815466333BF11A0D06B421742 - -Count = 680 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = 47EF322B4185B5B45EB0872B8064AAA7159E19BB7207A9DAC579BD4C4BD2EAD415544CF1 - -Count = 681 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 6781F9BBFB08259267F7B5409B5075FDDEA4536C1254CE3B2B7C9E23E9C42225F2495B92 - -Count = 682 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = DAF1C8E354CEE62DF2FA599CE15C4DB5EFFACE2D779B724B108A0E064022CDB85CB108DB - -Count = 683 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = 2B0E8DC409732CF38D86B3B038FD73854943CAE49D3124CE546E25696F050FD99FCD8650 - -Count = 684 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 88DE829B6C16D859EED8381CA0C90D69CAD039CE92F0F1EDDAD303FD176F50CAD430A491 - -Count = 685 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = AD9A221D48CF48EC5E4296B9818A18BDFF5D1AFFF1B774FB4F8EE48A6E8571B56B0371F4 - -Count = 686 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 69F63B718F1FC21D8CB98F307800680F7AD0FC9C256CAB536CE01A17E048F685B995E4DE - -Count = 687 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = DAE6A863AEE9A4655122AA218DA1F7B441F248F0AA7160E4BEB79734BEF1B4DBB6A9F184 - -Count = 688 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 56845422C4C39ADBDB4E6B49817AB15E87910270E6203DC218D495E849CD1AD60D4DFD71 - -Count = 689 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = EBEC5FD5D2850F6BCDAD1DF4140E15444F02650DC6A7FA91FD87F40FB25A5B522587DDBC - -Count = 690 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = 2AFCD4637DA9139CABE4FEE7FA27D4000956BB26C4B37068233B315D101307CA3469AC4E - -Count = 691 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 08E7D60B9DE2E26566589FAAD4A5FBEB5D54BC0551B80F091E1E0CEF4D204FE45E882032 - -Count = 692 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = 8166C48F3DF8DC41FC7EEBF45BDC9FBB07026516D3A714C980AC1F2C40852A5F7045CE7A - -Count = 693 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 56818624A6992013CA810A9F2846C741483478DFAFBF587BED1BF11F2A8BC447F3A4055F - -Count = 694 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = -CT = 6E42182BC0B5754F0782EC4EB03C42AF3549F1BF9F3A1540348A709CD8C6FA491164FD0567 - -Count = 695 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 00 -CT = 447B5900DD8A1F1FC97B8E1D02BDE4C0081C2C32AA930AC870E54A21721AB01CB1532550E5 - -Count = 696 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 0001 -CT = F1AF3A25F300744B6529938B83EB72A5BF9232B7CB17A4BB2CCB7B306302754F5776BEBD02 - -Count = 697 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102 -CT = 03E13E320DF5C71CA04F4577DD1C0CAF16F67AA1EE6A028FB6F1BF2084EADE1A4C63574CE8 - -Count = 698 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 00010203 -CT = BF87938AEE33EC2CB2E2ECC31520177146ABC4329F8D7827DC5F74DEBBDF4D2FD93E273320 - -Count = 699 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 0001020304 -CT = E0AD1EAF97A05A26AE6E2F929049CE326352C3F2E6D842C5A224EEB720622B727F1293AD49 - -Count = 700 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405 -CT = 47EE76BA3D98ABF9F6BFA2342888DC340DB97ED5C516E7D7C8A26087899182BF9317549229 - -Count = 701 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 00010203040506 -CT = 9ADD3BBCC05A820D9B6EFE204A85F6BC2AA21F34FCCDD3405984D9A223D4768DFC224309FD - -Count = 702 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 0001020304050607 -CT = DF06F1E791A648BB59C9902821AC399D93153040DAFFC145EA6B2E5B83A97ACB83F002EC5C - -Count = 703 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708 -CT = 1844EF8F0B322B2340392A6FB34F3C608038949C8482A42CCAF7002FCFB4FA238B5F4E972F - -Count = 704 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 00010203040506070809 -CT = D3F8EB37375E26B4D6F5D9CD41D8B2B20D34747E5C4F4E8B67DCB8436134F89E34869588B0 - -Count = 705 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A -CT = A1046D2563D762A0B536B90ABA205F1DA56A7233D878C61DFEE6686837E016B992AADE361C - -Count = 706 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B -CT = 036CC075D32F39D3E7AADC3BEB933D95B0C3E988A06B490FEECF8E08B581BAA08AAF1366FD - -Count = 707 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C -CT = 88DB65BB097DB7C7851E828F5179A32F55387569A0C6593C9592CE4A904F78248E922707C4 - -Count = 708 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C0D -CT = 14212A7C9A858C6924CE80B6BC364922C081F8C19D551F9EE8DA5FA7A8B9EB95EB5CA78C7D - -Count = 709 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C0D0E -CT = 5DF919C6C480633B4C6E1951F505BD32CD34F91B6840208E8B17D899575328B5AAD9C8E4CB - -Count = 710 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C0D0E0F -CT = 0DE47D8B15E29392580CDB622C7E996BB070909BB06DB059A81FCA15BC0031BFD38735E1EC - -Count = 711 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 75AD8248B3026FE87DB3221ECA5C46F6AB812E8A759C5066F476CA8262D3CC0B1AA1CDAE79 - -Count = 712 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 80E4199B18A9A6E947CEE980303556AF1DD86F1D989AB7185CC8D0AABF37651A6FC874B784 - -Count = 713 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = E94F4B82E14B78B17CCB56982C3AA3DDBE1541DC4F425429D496F50CF56508707030F7332F - -Count = 714 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 22298C97DF5F814D1F0F1D3D0356D8AA5029EC194AEA908A2E7104EDFE14F27A0BCE34B212 - -Count = 715 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = C133E00D95788CA3BE0C57825EF02421157A2036B6399B363654803000241DE93569B2855A - -Count = 716 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = 5E063F06D6C5949E5A71CFC0A0D491D567F90C6E2D8F539BA1775475C3DAF47CBD1AA6C3C3 - -Count = 717 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 7C9E9E12EF9586A2089B0D0BA2B9180E60982D498894C36F927F854E889BD06AE16659B7FE - -Count = 718 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = 711250CBF13451750B0CB51F1579D0E6FDFFDF65C19167CB84091EE8AFE1B410BE24D60F48 - -Count = 719 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = DA482AADE11333A3A784124B63DFCFA84B65189C802DE1BE48983CD6308203E0ECC122D97B - -Count = 720 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = 3CA3EE3AAACF2D70461829E3673F90174EBE5A4B3BA4B7724A7774A92364747B3178A613B3 - -Count = 721 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 1AA6D1A58471F7B2409101C2F4F2824A39040F56E96FBD2BC0481906D71A9C5BBFAC0C99A6 - -Count = 722 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = E29C055D186D684F7080A8EC33381DAC6902B653E881BA92962159D414AEF992C03BD69BAC - -Count = 723 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = 287A386916BCBC61478FB49F7708CC306BC17DBB4B99E2993B9D12BFA0EF80B06C64C41781 - -Count = 724 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 9D50D834CFC921EA885E9228ADDC38E0DA20ED4F9F67F91E7B858D1F98E8E86A4FD6BF9E69 - -Count = 725 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = 052AA063DB8A8F865B4228E40A9456901BFD0509F9147D2A2F681222E6D625E8A2C9C9A6E6 - -Count = 726 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = BF72CC915D3309D49CD00BF0C538FAE343839E82745D4280D4CF605E65519C43FA35B7A9EC - -Count = 727 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = -CT = 2EEBF5D2B590EBAC4AFA6343C6EB50A04F8C25E7719DE1A3DAE8AC075BA3EA0A3C6B9C8AB6FF - -Count = 728 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 00 -CT = 094011114CC6619F4996B8263DCA6184A147B68FA32A4C3017171E9F6A3845350F3D45C4983A - -Count = 729 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 0001 -CT = 8913D6BC6205EFCA20F5D6C2DA99A844EA224F3D5F2C8D7A36DBCB6C327AB6CD86FAE1650060 - -Count = 730 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102 -CT = CB812D246E8C312101D9716D62ED6DEB20A154E77047659B6A271773C62B6BF3D8CF49B67B95 - -Count = 731 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 00010203 -CT = 6C4D7BA3CBEFEC1C47849356B58038ECE8C257C5C3802F1B6DA38BB600FDB45B326F9118B43D - -Count = 732 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 0001020304 -CT = 367CBCD15C2EDA5C5AF1EAFA882D23BEF635B1BEF8F3D309BBD684DB9698517A7E19A9628B6E - -Count = 733 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405 -CT = 8A5DC05353397158FC2F11323AC55C09B3CE45E4CBFA221ADF54EC468A78A0F2B817B5DCAE0D - -Count = 734 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 00010203040506 -CT = D64890AA62D3F7431AEF164F745B637A4DBB33F2544BCFE7D854085ECB721EC422E56B1CF81A - -Count = 735 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 0001020304050607 -CT = 3B358F8ED90E72B1FA67891C069A7E944F7EA245D1AF6A2DDDE4F0184F25ADCE0E440243E5E1 - -Count = 736 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708 -CT = 2E5F156AE85F6CC3900ACDF6199383A5CE88FFEA72B1C377B5FE3EAD767BF57FEE78677416E1 - -Count = 737 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 00010203040506070809 -CT = 1092388469017807194389706CAA961C69F4DFA8138BAC2CA248491D8C140341CB271D82D5A0 - -Count = 738 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A -CT = 86DDC9C8F3D6D66915F5A0DB905E6BDB3B4F6F7A7FAF4FB773648DE1FA6B9FE4ADD6A6C6F25B - -Count = 739 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B -CT = 43E07D84B9BFDD918D16797A004CC0E1C69EABBA434A997DEA5C59D2B1E5651915BEC8D1527F - -Count = 740 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C -CT = 4C118B7C6AF5B9780233498EC00C11A50F0ED8D12CEA655B01D7D3D36DA85E52861E2185D298 - -Count = 741 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C0D -CT = 1129FB46229983009569BE51D0A47C3F90C38E9D0EC2A425A5C585C62ECC84C2330406FA497A - -Count = 742 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C0D0E -CT = 1DF32BBF88E42D5758982979B414788316BF4F74B79C55DC89DE290C8B1E458842C6EA7425DE - -Count = 743 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C0D0E0F -CT = D8F523E8E3D5D052FBFE737B507423604B28D34CCB21AFDE4ED010594C7F0493C38480001861 - -Count = 744 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = B8EF2648409DF3170E7DD883571CF599A41985E1702413731B197A46C13C4B911E6CCECC6CA0 - -Count = 745 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 6EBBCB0AC350D23C313958452F6DBE21C50B2DFB1996D08BD24AE70BACADA70917354C033B6C - -Count = 746 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = 8C591987F3ADA292A5202AAC3D228624F4ED45D9F324F635B2D04BDF5C283B1318F526514A7C - -Count = 747 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 6B122135EAD8295462AE73198FFE410519A5EA0138848E49B6EB6075EC96C19E812434A2C5F5 - -Count = 748 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = EA5CDEB4EA23F2E987ADE3B2C37CB71B5AD3822D09EEFFBF39453D2EF633DA718AF595478E79 - -Count = 749 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = 490AC1BA199C9D12F9EA069F0D62B3A8F71A5D01D9F2B35898B6770EBA233CCAC533B055EFE7 - -Count = 750 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = A6B9C649F3DF0B2B0A80515189C545DB13F19D8A78B1FC3C8966857F169DE68130916BD44448 - -Count = 751 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = 8ED0AA3BC2AE2524F0916E5BF2A9C869FF6D29A202CAB3F73C1551E2EA10AD726FC1E047479B - -Count = 752 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = B10ADAAFC47DB344BEC8163CB26F43425A53D330CAF9C58E1E3D36160FA641DE99E36052E673 - -Count = 753 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = A516030137972F0B3CB18E9004E216FEEA6EBF81970279C7A08E72207273AB8483B70464D12E - -Count = 754 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 8197B7F71A1088CE3DE9FC3D4C23D5E522D808BD0B0BD4485586FED9346B790FA087D985E7BA - -Count = 755 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 42E94B2ED011FF5E030CA672968EF1244A7EDBC180ACFCF512C36425CD0B2FF049098B423708 - -Count = 756 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = EDE668393407A9640C5511DC14A9CAB88AECE27BE7D1EB51D7A5C0BA410725AB826804C8722C - -Count = 757 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = A1FD495DB04555CA2DE857C3C5811B4D223D82328332170FA7C9ED1F9B42170714F585CB0884 - -Count = 758 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = C8D13C94075526DAC76E7CB1346B0612668AA906FC033078A49AD9C5A39EB38F2EF61AD10466 - -Count = 759 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = B0DDF37AF7457D58F3D3F5ADC666D6C11DF0237668414BCD76B762F80B9D412CDDE27D122919 - -Count = 760 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = -CT = A4A9C5EE94E98A8B13D6EA5C1C2ED0407FBAD8FA52FFA2A3BCC620AAB685447453A60BBEBC14A1 - -Count = 761 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 00 -CT = 2EFC5DD9329E33FBE1C7C7165EBB6725632A07E51AAE3C021AFDED4821007A7A5A024FCAAD53B8 - -Count = 762 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 0001 -CT = 3E11E140DD3B2C96E08332B34EA4450301D1E7A63C7611168C537540DDF4E2D332A21AE3CC0081 - -Count = 763 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102 -CT = 1EFFFE66004739445A2DF9E5F3F777A229222CF15A2E50575C616414D49BD1AB8E1241704CDBC2 - -Count = 764 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 00010203 -CT = CE4281EA3844A66566AE1FD7B85910BAE650964B3B0684107A33D972E3501AE9310C1260620371 - -Count = 765 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 0001020304 -CT = 1F4580A2482AF4BF411337DD16B9A917A1E2C6E1B456CD0995F252F36EBD6E091A2AA25259BCAF - -Count = 766 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405 -CT = C4DADEA234E4668A00D1D8DFF1E99E86D121CF26A9560D3B657434E3FC6F90A8CB23A04895CB7B - -Count = 767 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 00010203040506 -CT = 398467E91BA83110105BE189D4CED49C383A2E3891B5FD4879C6EF22CFE15DD9CD4A163346CEBE - -Count = 768 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 0001020304050607 -CT = 6A2CFA9151DA72318D610F3E9640A6405DDC62619509B8F96E08B28B3E54FD5BF4BEE78C53C6F4 - -Count = 769 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708 -CT = 9322CE5051C388DB9B513082B5C24236CE7887A05FBA7DBBE0431D6CA3A1B5680F78151E517C78 - -Count = 770 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 00010203040506070809 -CT = 7E256F78989FCD7B00D912E4A81BA58BA12883CC3F9AF20E4074EB066F424F5541AFBC88848601 - -Count = 771 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A -CT = C21701C35E0E5FB450C66BD785B5E8A35426198531AD9BF1B30BB9ACC229A49C7C247BD28887DC - -Count = 772 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B -CT = 89D7DFC17B98897E84B11F0159DBD6445E671DBE2F5323522C2BA8AF02E074B7AFCC5487CE71FD - -Count = 773 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C -CT = 97B594C65278FDFF5DC5DE78872F7BB256B9A8A40A1D88AE5319A2C5CC6BDFF43ABA2B4E9A0231 - -Count = 774 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C0D -CT = F245BA07E7313C4D6DF2A7AD249934F9D623ADA17805B2AF60E486132BFD356075A9B8A8BDAB0C - -Count = 775 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C0D0E -CT = AF25B22EF43E3C43233801860542510677C09405A112E08BBC49711C226BCFDFFA024C1423DB5B - -Count = 776 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C0D0E0F -CT = 6350A0EF716237E8C673C80CAAECFD1CCA33EFD8620A0C47563D500B3F245273C122B3CFEFC6B1 - -Count = 777 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 4C7E93A2E700534E094C38FC1E15EFD0B38371076DEA78C0989346825A3A72243145AF9A0E3C5B - -Count = 778 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = B2E1F92143DE07005E38A3B4CB53405C956C98862723A2A1686E5AF192D56D062F53E57317DB04 - -Count = 779 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = FE83C5247C1F5555F5A72E735B064A78E165781169AF07D2F78FD54B294C403A90B1F4E65B2644 - -Count = 780 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = BF65111B5D2002CBB859FE63D53E7C3CE7643316B7C43F767ADDD554AFC2EC90140469C306434E - -Count = 781 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = EED3146322BB83F0B7D895480E4AEF71C8D6531DC7498271AA8F39110C1E3D7A7CB12BA47A9682 - -Count = 782 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = FB585EBA78EE2CA4B5A113B74FBDF72671FBA412CDB00BDD52644168248FE9932155EC718DE545 - -Count = 783 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 205FB1023DFD4162A2D9754908BE4292C1A0E2591CAF368B6D861FC137FDAC7EA9B7151D77DBA3 - -Count = 784 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = 9B32D954A56EB24A2C1A830C71F47220BC36196EB6266DF038290F09D8AC8031582D675E24A7A6 - -Count = 785 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 1436612371EB40E2A9C6538A0398C0748CD58D0CDCD34F4F9AC3C0B0379146FC8D0A8565DD33B9 - -Count = 786 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = 40974A76C99D02EDB4AE33B7BC43B1E4429C3746CCEDD2BAA7FFDC2F02F4F9A778B3BA0567EAE8 - -Count = 787 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 05056E1CCCD5B8E116154DD41834CA86B9FAA64D0EA73FB22516CFBD24C9308D1A4161994D6B8B - -Count = 788 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 216AED297F8EB030731AC7EEF3AF4245B58EB8F3793729C5D8FFD93D1317A8F0E379B4591A177C - -Count = 789 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = EA2EB6514225E107CBBDBEB9C18AF30A8BEC8DAAC73D3B32A37EA22C50BE11B49A626604C14464 - -Count = 790 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 29E880DAEAA07EF8893CAC648B5094FEDFE58CFB3AA7D0779E96987201A31B45C148CAE6BF09D6 - -Count = 791 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = F41088E8A014AEB8D5D64D7469C2FEBF859104321AC5431CFFB2A72FD65C63391573B409D1DF63 - -Count = 792 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 0668AC9999E590ADBD245FE6CBFF85CE11AB7A148EB006B759FEA17D6877B9AC6113630C987418 - -Count = 793 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = -CT = C000827D8D01B9B5CB952F7DC7B57B8182FA83A90D27B20C6E81CE63AAF16C1BB99DE1EC4944ABC6 - -Count = 794 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 00 -CT = 0CA91C09E967E2BBA0ADE530602B05E88ACC43913B7C19E54BB93FB8A609C037C9A2B27679C16147 - -Count = 795 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 0001 -CT = A969B567D8890E29A74B7F26719303D2480269FC4EDC67C56BFCFC490D841975D91988D1FC91D442 - -Count = 796 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102 -CT = B6DFAB41870974CC35044253107AF44E6B9F6D03159FA3D1B71DDD6702C7E5A77075AD1663E4AD8E - -Count = 797 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 00010203 -CT = C7F36BD6B93D58FA3EC0F813DC24F69B250996FE50929179D51D181236DE2AE6B1FCCB290E089FEE - -Count = 798 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 0001020304 -CT = ECE85A3C013F461931560D39EAB0A7E90F87EF4EE317FA92A54A372C95AF001F1108A4AF72D09D0A - -Count = 799 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405 -CT = B0F1708D4378E80E35A96D144C6FDDC849C3D0835FB349DEB70CAD18E11ABD770B56C83796706340 - -Count = 800 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 00010203040506 -CT = 42D77D8C4611818BFA937AEB8F6CBE6E47A856849810D4CBD23AE820003CDC55B8AF5B8B3F58544D - -Count = 801 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 0001020304050607 -CT = 887D6CE43B5E0E82A9680DFDFCE69EE0248B085B27E7FA2ACC636F0B6119DC0D20E1AA85A53BA263 - -Count = 802 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708 -CT = 845216AA26F8BB4A891A66AD2F1B99113BA527F79BF46B2953BE0DB8D8C71FB987E37F0361BDFAE9 - -Count = 803 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 00010203040506070809 -CT = 31057115C2F90BA169D2A4DDE2A857E4D94EE538159E886B117AC2C39DDD1BA637BB46078BC2BE54 - -Count = 804 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A -CT = 8BC592237EAA62FCB2DE12E813D88E685C8B8287F622DB18596C360524AD0E169EDE1FF79CD182B9 - -Count = 805 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B -CT = D24BE21ACA8351A249B3754E1150FEE6A2EEBCAD57D6AA1EAB294402BAF07466D32A411077F2ACB0 - -Count = 806 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C -CT = 6DDC1799B115C95F6D253FB5D311530C5B666F4C810F0E7FC2A42284BFC809EA54F9FF439E0B2045 - -Count = 807 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C0D -CT = 3625A6E8C166D102812703136F595969AE5406D034A532312E7F21EB18A1A63016012552EC6FFAC5 - -Count = 808 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C0D0E -CT = EC0AF560E68430C451AFE03E78162F737FD5F37F00309B7FB8FEF6C652940A90A8E6C12CA14047A1 - -Count = 809 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C0D0E0F -CT = 241B611643449CEDCABC0253D571A59BE92D678A8FCF31E4AC5464CF55C0A940D66CF20687699753 - -Count = 810 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = AE4E53BC1A28901D145237AE8AFCD15307EAFE52B66BA2FCAF8FAC873DA8472DA5A18A729FF2B3B4 - -Count = 811 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 926C98DC8106C4D6C383D777952E37D33E7F05D4DEBB8F48DA856F1ECE703B820F026B0FB84A0941 - -Count = 812 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = B9937D4AF0E88F8917E9F6AA9CF2D00F73A472C20FEAA29CB2497424C33A83F31844C6DD65E98A12 - -Count = 813 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 5961E61763DC4B55E9D04E3AB6625CC9DE674F1734F295ECCCF4B881A7F295201A85A3D79929E9B2 - -Count = 814 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = CE56FCE198EB2AF128BB01B57F3A22D8AACD993CEA4516F16B6E3F51BEA97919119A143F576F0B31 - -Count = 815 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = 05A604FC68C16ECAEDC654BC0196CE65292CD43BEEA9B1E9BE9745924F6177A9D74EA6E19C2A1F6A - -Count = 816 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 6628258D3B248FCA51B301B3AAA2D75C35BE3089858CB1CDCA435A1ECBFD774B94F9FD53F9F28818 - -Count = 817 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = 1F945CFE5099E97FE6961491A478DA682D5F96F538E7CF44CD08B7FB59F87DCCE3205A96C41CB364 - -Count = 818 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 08004F723EF18C9C782B583CA487365766B9729C48C91EDEC884A7821AD0ADBEDF5C3E8B5A566826 - -Count = 819 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = 9C1211CDE325FF71286314242F5F6D16946F1669FBC142CEA0122AB9C7B9AE1102C5EAA9EC9DA33D - -Count = 820 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 77095DC22FD400471FFC7F3991036AE525F9A99F8E3ADB69D79EC1990E0AF56BFD23501D8BA1A832 - -Count = 821 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 4A98722B7CEA0BC6C86A17D7491EC2A38BC241E18F67C975D1F70AE58522950DF41E1B22F9FCEE23 - -Count = 822 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = EA2CF08FC028D934CAF48D973D6B6444D2F162CB14E5EC7BB4326213DE95EE2E8F13CCE3EC27C4BC - -Count = 823 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 032C015B0B314DFBD38A5455A7642E0D633554D3A29B0132F3E74C8FCA9454FA8608632FFFB9A37B - -Count = 824 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = 8B8BF86B7481569287473A68FF15461D84B16F631AD5953B4317FF5DD27794C9087424BCA78F68F1 - -Count = 825 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 04FCBB9CC28981BC668125BFD22F8F54AE1911448C44FD40E3F596F087F7417F62040F20421C1763 - -Count = 826 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = -CT = C9170C2E811B227FCD6093B696772476529CF855C18066D9BF63A8580728075D65110E24685EE2EE0D - -Count = 827 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 00 -CT = 1A6158B87336FF4646D44C8FCEC32A719E7343E14C4512D3204B71B3C7F0A47345E973F40A22C5045B - -Count = 828 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 0001 -CT = 95EFA1BB28CF6DBD16A39CB9A759882A6566C07BEAC190DDC59867FCA54331B38D877989C039B35102 - -Count = 829 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102 -CT = FD664F2BF2F326047E13083CC385FF001D67454320F4DE69B070CF341E4BA416132602C60EDB99CABA - -Count = 830 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 00010203 -CT = 5F41C128A483AC43BF43F5E8745E781ED94010E1C8614E222C0B85A38F3DB4474A55BEE506C0D3AF14 - -Count = 831 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 0001020304 -CT = 853907274FB783663AB025E062AEF2403A13D6430F2A64A203B1FC453E239B9079178C4DAC0EDB424D - -Count = 832 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405 -CT = 3A321DF65897F34C699D3B4DF239FF44517D4DA03B0C27567D89758F992B031147CA6E79707ECEA704 - -Count = 833 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 00010203040506 -CT = 413BD8B3E855CC5E039B352EEC28B4D49C7E1D272C78675BE7CB931FB475BCA67FAF1792C66A0EF147 - -Count = 834 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 0001020304050607 -CT = 3AED02B733B3F1AE8E1292BE87B7EE9A2F94D078463F5BF0E39ED90435F04B198388C0C3FE0D8F949C - -Count = 835 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708 -CT = 8FA954F8C28DFDD369D15E48B2ADB475A16BF4D268808CF74713D682440E822CC33D24188C9CBA663E - -Count = 836 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 00010203040506070809 -CT = 738D3DABF87953534F89AA0232C3731DB5808A5855B0073E913EE5C385219C52F4F816C2B504AD3C14 - -Count = 837 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A -CT = 6E2DADFF6322E89DC12003F6D4DB8BD2A641B6F5FBAB545DDC64C93A66B60F911803F1697061F65AEB - -Count = 838 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B -CT = C6505EDE6EDD40F7F7B44579F59102A3EF96341EF64148CFD344B06EAD996906858E48D36580B58BB6 - -Count = 839 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C -CT = A57085ADD164FAC2D7F5CCBEDCAFEB19A1B64227A6EF0BBBF197D71D1A919F27390C796A15B658AF94 - -Count = 840 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C0D -CT = 1355A5DC8DBCE7741582B7AD08CB84C9390527781863DEE2F6AAB6A74489FEB2E8A45E4A1C9DBC3AE7 - -Count = 841 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C0D0E -CT = FC0150146EBB88814ECA874CA64F6C97692226C337FF5BA8271AFBD7FA3DC075D99E7945E69F5899E7 - -Count = 842 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C0D0E0F -CT = F62FF55B93241141AF10B2EE32E56544B31B3D47937817D6EBDD20E8898F6F4EAE2E8E5F9D055F5151 - -Count = 843 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = E12FAA314954AE0FCFEAC615CD836F5845885C6AE3EA874BAB53DDC81BD8CDE368283EA17AA8AF3673 - -Count = 844 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = CF04AB29FB84BD52C4CEFDDBD5EA3D13946C552CF99E4EA28C452E858904D74712859D748D1E632724 - -Count = 845 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = 6F1D7E2A516F10A88AF3119CAFD876A118ACB3ECB15FBC13CE9D077D91FF0BED6751D3BC795BC49C15 - -Count = 846 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 334D531BFF5182B6F333DE077566D8D9D3632ABCC350A78EB6787540BC1DB21FB941290B769537A2BF - -Count = 847 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = 153D88758D542B5C2611F882AA6E5ACBCE7FD31ACA3BF964A853F7E52E03367C9F6FD7C73F50B9B24C - -Count = 848 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = 079C2F46C630E65A21F442EC8E6F839B98C334BE3AECB266272503B163B8256BA06DD33B8C12BDC03F - -Count = 849 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 8C9B88D0ED43D65EE82415738B81EAA5D0322191380EBBE80F303F520B1BBA3C8F4C5FAAF073ED4962 - -Count = 850 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = 5C3738344DB426A22B22D7AF3A265276FEC4AEE8359D3BAB3E9E03F400A19594A3BBA661FA796925E2 - -Count = 851 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 37F373E3A77A0900F8F3C8AD27FF24812F4759F6ED2F54B12B26C2C8D989846BEBFCD63D7528525ACC - -Count = 852 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = 02966CDC3666415CEB1F74683DA6A957F113B710BD281F6D962CDBF2EF661A4C4329527E534F58F243 - -Count = 853 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = A90B952DB395DE1901B3854BFF722127722A116F7C1F3D5CAA60CBD4524BD7743A2E8D4F375C4C7BC7 - -Count = 854 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 8144BAA7CBB58B7CBA55EA5C1CD273FE72472C5D9521F2E512BA92CD4C4C0124411BC90C1E883D1F68 - -Count = 855 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = 1BFD03AD6763BBA807B3C16E0566F9D465B3764639ADAA17FD47C0870570E093B759EF0C233AE033B2 - -Count = 856 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 20BCEA542DFB8899A3EE1EFCA08A1E7A978DF163B0619630ACD82A60C8386AC6F30895E5A9D3189358 - -Count = 857 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = FE75FCA4BE34EE220177EF51603647CACEDAD888396527B5B9D70C11DE33C9DDD33653A358C2E7AF3F - -Count = 858 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 5B158DE40EF52648B3FEB44F73291DFFF5F3E3DB5FF224183ABA576846F08086F6052704CE39358565 - -Count = 859 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = -CT = 419A816D395121A9482755987BFBAB9E275F17126AF4651C8835116F660AAA0012B605C91BFBE1F4D5D7 - -Count = 860 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 00 -CT = 20F5472F60355295AA31EE25CB256B2EAD273E91A55BA3FFE96F578FA1528132BA0A738043A701C31487 - -Count = 861 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 0001 -CT = 1730702CD7218BD416D1ADE3F44924B06849659611DA6866B88CABBD2ADB366021BBF7271E2858446D3C - -Count = 862 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102 -CT = 9AA77143D9E7F100470CBCA1743D65238665760683BC82CEC1DB2A2BCD9D579BF8F9A5099114C32FD4E9 - -Count = 863 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 00010203 -CT = 58F90AD5D9A0905E362A89384071D5ABA81E0660575E419DEE23364A7662D7EF4FED8E1854A33BAC68E3 - -Count = 864 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 0001020304 -CT = 67F2D0A4B463C49AFC3D044D6AD18262E43F2EFA279886122731A7ACD6E579332544AA0585C1B2036CF0 - -Count = 865 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405 -CT = 9F4D35491C5D59552BB65F58022A759CA6BE2F89CEE2B4ECFDAC53E0F3ABD9A9AE54F726BF3B93501B18 - -Count = 866 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 00010203040506 -CT = 215F6F14CFCBEDC210BA79AA04C040294F66603BC57AC12196261056DFBD318DBDCDC6227962D6050E0A - -Count = 867 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 0001020304050607 -CT = ED920833489FF813FE43D786D8FEDC286540F61BD05A840813B1977C6D2FB3CD2927A0F19B635D8E550B - -Count = 868 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708 -CT = 2953F41BB669963509A5A179DB2F8ECFF157D2EFA71E4AC7F14CF7723DC2C9196C9C4ADC7FAF71A7C466 - -Count = 869 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 00010203040506070809 -CT = 40C7D68B830F80FEAFBE426680402C84E5E6032F7D850B4D0A4C85C7D512AAE61467632E95FB2510E2E3 - -Count = 870 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A -CT = B9D5E2C01D9373287530B262BE1929857BF0B3FD0C70EF20391D4620FF7159635C5D8E5DBBA4019462AF - -Count = 871 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B -CT = 80773800F9D9FD812B90B29A952F923B371ACF311E2A6256263E953CC612E4C337C06961F447666E3C76 - -Count = 872 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C -CT = 4B545651763C2125F6D70A82EC1F1B8CEC40B4774610A27AEF21FA64653B05DDA347DCD9175E70EC774B - -Count = 873 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C0D -CT = 9A46E7D0ED9467E13609C9DC6B57FD2C073105ADF9E013C4FA9979FC3DB6BF954E66F09BE83E6DD7E483 - -Count = 874 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C0D0E -CT = DC0A3D64F0101A354C5E09B9E88FD869FA04B419288D8E0B8952770BD132C8D1761AC6DF757FAF205DF6 - -Count = 875 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C0D0E0F -CT = 7E07DC89779C365A87B73A3A32E4D6AA0885524CC23B8266DDE48A31C1806EF9320090FBBF4AEC257D49 - -Count = 876 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = D89692073EC99EE6BAB2E4E5953C8AAEBB02DB0EBDF0048835013AD3781A7A3B00781574E48845F40372 - -Count = 877 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 4ACB2196062983C474184A500F221525EDE764F35E725CD2DCBB6DBA2781CA23A3A939F141A890B830E7 - -Count = 878 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = 7608B3540DEE7EEB0D07E68ACCDD5BF8D94C6BD4C4141C049F6C576C6B9AF6BD3E22711C37E8D45C51C9 - -Count = 879 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = CC3FA47F7667B09C40AA0D1C168D3C180A3ADB9A9BEE3A00620563BB63E299AB4D32F47EA65C61662397 - -Count = 880 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = 48198078D1A4C96CC87732659FA12795EB1369680567C74661C23B4B5512B28597FF427E7BC412BAEFF0 - -Count = 881 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = F421DF62F8B729EDCA7D3FCFEF7EBD6218160CB08AA5455ECD410C117FCD6AADE20A98B99B33F3BD1606 - -Count = 882 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 817DEA984D5DEEC575D5C34111734D1FDDC531465E82F487ED0D44A09A9797E7F186368340DAB30EF216 - -Count = 883 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = 54B488DEA696AB95944D1CA6CBB493B09DFFC77591FD4F76A2E3984CA8D4BE63CBD101D5C98545621E47 - -Count = 884 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 61F38F2EA0D5B188F007FCCCCC5A0BE47A6BD38498A08EAB42F4383E333B4BE111CC7F973C7E81CD8EE5 - -Count = 885 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = FD20037A1BDBCE3B5CA3F19D081D8F53727D31F0EFD156AB2D7CC92803A6E8BF6E6E0DC365CF88BC614A - -Count = 886 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 6B233034B356D13D4AA190D349FE71C7BAC975B870BA5C2307E8654E8B61EF2143E88D4CC0395FC90E0D - -Count = 887 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 36E4E1C14D057C36DFF3AEC43A0038087E9B5B6CB7A90876D0622EFF442AB536E7DCC841E9A31BC43D29 - -Count = 888 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = 8FF0C9F01EB2474B92C6D9C080595CB38BC2B796E767C6BB5C7CB40FBAE44303C26DEFBD605EB8D4B56E - -Count = 889 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = B9F40B184D6A9F8F687777AE14EA0653F7DFCF479564A20EE7B6C52B2C9293A3AAFA84C0C114284764D9 - -Count = 890 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = 4D0D8A0675DA4E6C2945AD2D5A3A60DCB2C46EC5BB08DA1EDC210968F2950F317E490A34FDD5FF5C1C86 - -Count = 891 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 51B00DE55EF93FA3D636E19DBCEC81D9D79EFDB37FA99CE6ED2CC88BA65068DB6A0C25409B2838ACD6BC - -Count = 892 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = -CT = F2E21C8F7FCA30DFC73A8EF3089568A405C1CD2D1E0659ABD5DF5F28228E4F12631D50C429A62A5A186103 - -Count = 893 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 00 -CT = D193DB059A883B840F0C10D24286BED3CC3AE43D456DA94F85C5C40BB93882CADE3F83B31D1D6312280DE6 - -Count = 894 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 0001 -CT = 0600545F11F2A96019159E3F37F262ACAD959E97BEFE57C3945AE38A4A5CEC4EF82A45ED9CBFB4FD46DADC - -Count = 895 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102 -CT = 71D12E18CACF651E3EEB3553222E36E8944F8F6F55F7915C3C2CAB5C1BEC6A99AC5AFE32768AEEC74CE9BA - -Count = 896 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 00010203 -CT = 723D5B69C542D808EEABEB34771977AB9E07CBDEBC367E2076248BD0D8B0340C1CE3F2876512D510692ACF - -Count = 897 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 0001020304 -CT = 2F42B21BD65E18A7B67EDF2DEEDFFF9F153C8D9CDF785243DBF4046067E0BD3C98B6A220BBFF8BF11750A0 - -Count = 898 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405 -CT = 4D2B120D2CF0C9CCAB90A0A8380F66E2D5103AAB66CA02C03B6EC1B47A3C28ED2B1A2932DC22D742F3CC0B - -Count = 899 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 00010203040506 -CT = D9CD13E58093FB45EA1C0B1B3ECBDF631E06B543718E9EF70E9D528FBFB610F31B3CE48D1C124AD597BC59 - -Count = 900 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 0001020304050607 -CT = FD642CBE3CD82141394C87D6874729E9AFE5AF623206F738E045D41523698469150FF6ED595EF3CD0D5338 - -Count = 901 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708 -CT = C617BCC3DE1FA3524B9019FFFE05CD9C4B243830B2231E2B01330FF152FB37C002B85CDCCC2BB707778E68 - -Count = 902 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 00010203040506070809 -CT = A76A99F5C213B1FB4B02B6FFA408A47F2CA840C95B9D37DC04686B11085808BA64AD2CEF2893E8E784C520 - -Count = 903 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A -CT = C7C892C0ED0CFE339F40A67330899D19EE5CDDC4562A251040B3C79F855FA7916794B89E9C052A8EF0A491 - -Count = 904 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B -CT = 0E49FDFDFDBF3C9A39960B13E0AD74BCC08B68B13B3B34B106CEE7913CE9D586E9677632DB387EDE306F09 - -Count = 905 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C -CT = DB9F186CC4FA64549078A7348460807E751122F19F643F86DE2ABF03F6CB35157AD3FD856F52F30B308D3B - -Count = 906 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C0D -CT = 47B1AB9D977E7F389C73166A2FEBD053CA96FDC7ABA12E0612B84E2E3500BD766D9D4E7424CE85D0E51634 - -Count = 907 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C0D0E -CT = 101074C03F9CB3B42C8DD7F572A49A093B1E2A5C017993A3F726B60D936B538D253CE84A8D29E1E85B40EB - -Count = 908 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C0D0E0F -CT = 155C7AD1876C3DA5678132730422E48C3B73942F1051F782DB84B5F1C70DE1122D4E1BBB4CB227EEFA6955 - -Count = 909 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 6C3B27FEC386CF119988F2D17F4AC4CFF73AEADA18F5E4CAB4BCAE79DD67F473A2A7643A608BD45364456F - -Count = 910 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = CE3CE9F1F1C09ED6319E557ADD4BB0E505FFC4F21862FC983CF4FB76B7651280C712C08514CFDD39381674 - -Count = 911 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = F815F8CABF46B20027886E5E1D843C63CB59D575EB4A70A581C855CA76C9FA2064A7EFD7D26C0C64B03165 - -Count = 912 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 969DD4AB3363AD45593CDB09F5E897064CA8E694D4333689684013112139B6EFCC419F5B2695EC173F2AC4 - -Count = 913 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = 5642072157E26636092F8B30CFD109ACF18A1E8167DFB0DA5EC26E63B089CBF3F07E07C3EC7A51C142D2F3 - -Count = 914 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = 0F15F6DA00C966B57FC572EB42DA8181852307D89EB3CDCF975C9362F1BE79B2900167471849078111DEE4 - -Count = 915 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 9F90061E714F9FC973166EFD46025C8321DD06EDDBA649C9F2059789A189C07E32B77D1EA23E89C1A63214 - -Count = 916 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = CE886499D31DC40CFF0E9797AB3F894FD0DB32F7A3EB049BA9519514FEB2DB3FB3D6CF7993F3AE42170A20 - -Count = 917 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = FC183C633855953E29AC3BF745A1BDB55015522A86DC0AE734B6BB620A044C33EC922976346D94D37ED9FC - -Count = 918 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = 01F1F4D719B18B3A40C930D4B613BD6BC2F950FEA9962200CA3EF73CBE0003E46411437C063DE31B13FEDD - -Count = 919 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = F7D4BA9A3B57DA489E154D97405861F10F8CF4B00F6C477487E1B318F2E111D176A323C760122B17D40E8A - -Count = 920 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = EE36D428BAD6E3901FFC7E4120D767C160E638A1A2590EA336164648112BAA0CEBEB655285A46DD96E99A7 - -Count = 921 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = CF96D84E70A1C5ECF18D96397216B6612F7E12EF26F7DE79E538D4043370C37A99A33FE952261B242FFF2D - -Count = 922 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = E1707B9CEB74857EC13A0EB3190C05C90F6D797673D4818B009FE8F1FEDD3F7B1C6B18E0AE0E22AF386F5F - -Count = 923 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = BF5AECC86F81A7B24B3856B335E4107E86D99F2BE4C3B56352D82953EB5F9F25A473B02935597F46A7B93F - -Count = 924 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 4581AB92CDFD5A97745915AF2D8C604599B836C7265B534C294D315FF9A4F27219103F5E189F7BEFDFC3E0 - -Count = 925 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = -CT = 89DCD6C69995B8269D08E4A958B0DF061001B88CA48DA3C7212D6D0A8C24111BF44D9BE6279708C990F8D5FB - -Count = 926 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 00 -CT = AE5F84185561E0DB43EB3FE10E2FB008148D2D99DCABC1FA80F424B13E8838804D9AF5A0CCBDF561D704B0B8 - -Count = 927 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 0001 -CT = 58CA96439F3DB11518C22EE7A0F541E77E762B6A2C73559A76771FB1D7BA18225AC37DD0CD53EBB6120C596E - -Count = 928 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102 -CT = 665703649040E56059B60368BDFA0CB2DF652790A0149994885035F12827ED1EEB4CC502C6CE94A287FFCD7C - -Count = 929 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 00010203 -CT = D2A088F6A0D0D6A6AB4F31915A123CEE93AE8CC0DFE7094BF51D62F45B5E3522B8BF4704B8B60915DBF11BA3 - -Count = 930 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 0001020304 -CT = A4433A764D6BE41F1968EF46B98AC675669B2E983A3B48B44CF578C5BFCE510C16FB3193ED3629AB246C2C88 - -Count = 931 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405 -CT = E5C649AB224A7BBF5E18265E312ACA291992BCA73D95E3C4AD11C3B817455112FE02107028E31CEDAB0FE1D0 - -Count = 932 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 00010203040506 -CT = 7EE2B53675EE57515C36DB3A6CCD567BD3ED5687BB0457EF4AF23865BE7154803969E39EFA08400B5C7D77D2 - -Count = 933 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 0001020304050607 -CT = B59BE789C1E2EC4A535D4C5123F353C79E5B927488622AA07D0F0D8C49E54B90DD6FAE2744B587C5ABBE9853 - -Count = 934 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708 -CT = C3DD58FF0913A7395A6D43AA254C8DD93A3E9407D803FDFA0F412FF12E9F9461E1C9A7CB0ABA7ABC804EAC3F - -Count = 935 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 00010203040506070809 -CT = 5212A4C796E6E3CD2A71798D82FE62CE5D098391DC5D69B136648B1FC0E9438BF085BF8015ED3679E32C69EB - -Count = 936 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A -CT = FD2FF2C2EC29F1DE683D31EF7FA5813A156FF3748C6EC86CD1AAB941F576F2274B5CB53B9DF592CC306C5DA6 - -Count = 937 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B -CT = 6271A11D4624EECD2CE39AE1243F03B004E81AD809200A09196B907FFD785AA89D21B16574329AAC91C3C1EF - -Count = 938 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C -CT = B361733657C17FACC8BC674E2145063F181FC0A272CDA24B689E69921D88D6083F355DB8FE6CD069B7168302 - -Count = 939 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C0D -CT = 1D544D1067B9E42FB6317B9DA8DD7C9891F531144D459B85DE83BA941A9D20B2F8F4B76BBD7C6831A60F69F9 - -Count = 940 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C0D0E -CT = AEEA0F96149FB2368333A831164FDD91AE90C54F29D7B0140816A0C6F8AE944FBC6E5BC9790A0B3B452739F2 - -Count = 941 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C0D0E0F -CT = 36F11412AA07FE0BD0FE930CCEF1EF4CB7DE5F168274D4C60B48496D663636ADC3A7A885194084E209820649 - -Count = 942 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C0D0E0F10 -CT = CE5EEA17D07A107634C7AEB06969FBDE926A58314B9089F323692D985613172B4B76C3214D8128ADCB15F2F1 - -Count = 943 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = E16D0167C21A223FDCBFBCCE44624708F80EA4DEBA18217AAC790EBEC5A27C493DF18CF11542B8AB18FD5CE2 - -Count = 944 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = CCC7E5B42427A0B697E4FAD60619A6DF95DB0695EE456A1995CDF56E9394330E02F48E6815B7DCB7EAEF3990 - -Count = 945 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = D9448B255E8A84EA4DB91A1BCFB0FB306585F6A392B50FA42EA53BC56649EB93C80CC6C5EE658D01977B5234 - -Count = 946 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = 597E8BDFEB15536D7C79F9ECD0311724B10439BA94823E709871F206BBE449D7E9A5C032A06422C101C88188 - -Count = 947 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = F96ABD9CC3AA699D8E5EF1BCE6EF9589D9C1B158343F540C97162C645432D8F89BAE08A94EAADFA41135ACBE - -Count = 948 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 95DEB425618EE095DA36DBC4ABF304DDDB2897B4766C5725AD6FB6C544EAD4C84590023F3DBA0BAD95359848 - -Count = 949 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = 7E884D82165A741294B49CB7805CA7333E28DFCAF36F897D91D1D278710D77A472C637CD2B78FF4506A70493 - -Count = 950 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = A268197F83A85A3A5969C724A1FD154A143EB3E56B81EB4BB0FEE9B3CE01369976EB98A9D732D164CD09386B - -Count = 951 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = A3CBC69F29FCE5E2FF1F289C446D041CABFB7D290AB6BA39F6E04935E36537B22E241D620A62799125001B62 - -Count = 952 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = B555961F952D7F2606C1D4358B6E287A7D3EB016DC0607EE06D4674F2E3BA0C2F454A2C48A8474CFE54D125B - -Count = 953 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 5DC536822D8B2B935CB56E2A2BBC088312E65186ECB8ABC1750EDF6B9BDD48C9823B4AD42BA44E292BA078B7 - -Count = 954 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = F70B5102CB608E74DF3B04E2069D17D4E2EE9DBA1C46C95CBA703DBE53FD2B222871432DD9E4066875811040 - -Count = 955 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = BDBF2A734F116257CA6779060F59A1013733C9328E7D83D732ABD902399023F4768947472BCE6D35F75B5B9E - -Count = 956 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = 0ED340023E426B2DA909C5FDD6FC0D28387D495B1B59B441D67078375F9446A539FF8F0EBB8A05F3E5CEA70B - -Count = 957 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 4FC88AC68DC354CC75BC980927EAC6BC6845B73040E46036D0C911CAC2B1230B3AF6EC03103047F45F5211FC - -Count = 958 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = -CT = 5BECB8F1C73A85B3B3F4E27BBA3267E73C49507B96AB415FF03CE369FB19AC5EF9178D34B69875A8E64AABA695 - -Count = 959 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 00 -CT = DC20D4969955BFDF400A3E3C65D53F17126786ABDD42621D43193D2A952E4CDE49728903D1FE7FD259722C3C6D - -Count = 960 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 0001 -CT = 89801DF7D0C8511EA4D33FCC9F41D352335240EE9E7344D23992BEA729316492011BAB6F1A584BA8E5B23EE24B - -Count = 961 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102 -CT = A535779595181AA7D271DB96EC0167976DFDC783EFBF3E6197E7A219E80007A1D6D6777C91FF991810C9FE83C5 - -Count = 962 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 00010203 -CT = 34416EE41ECC9D585BF0BF0131357FAAE399AED0C6AA6B744D68F5694C0209E9EB74971723AE554C1A9A114EAB - -Count = 963 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 0001020304 -CT = AC205AFF748D9EDEDF908044A496B2CEBCA4C0EC032ED9151250B7A6E989FB4B13249B3A0BBC47618DFD8875F7 - -Count = 964 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405 -CT = A11D3F46C0C00DA1B1B39178D7170E48FD5398F4F50C59A87209B3A783E849A14FF242AC024290B6C68B8C9B33 - -Count = 965 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 00010203040506 -CT = 933449C60326706449F9DDBA5ECF3B97BFD3D41F9A7F08B1ADB96FE34265583D8C7A3027163705218251D989FF - -Count = 966 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 0001020304050607 -CT = 8F0C040AF77EC955C8D386607895FD548F1D5FF6C8F2F50101BCBEAB4FCFF4A7345A43E5AA3415B250808475D4 - -Count = 967 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708 -CT = 8F63EE79DAC276FA245B11BDCF103DCE431AD99893218DF023F38367335D3B9F60678888053A028A385021553A - -Count = 968 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 00010203040506070809 -CT = AB608713FBE23EFB7D8B5D0FCD7F93F4286344340FF51B245FA06B44193C28548491C6FA4FD1B48D883EFE19C7 - -Count = 969 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A -CT = EB8E6075CFD228B29B8B0EBCD0670FA17D971D8B29CBCC9CA4A923654E56EFC0D389EC5B5D4CBD89A757B83A8A - -Count = 970 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B -CT = C7C5974345FFC8158E7A86390E7ADA67E32EA8DBFF7FCCD04DDAC2D5D7C762CF4C8C43DCD4E047C2E382EC6EEC - -Count = 971 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C -CT = A67916E06996BE652ABB9D463CD406E149E166FDD5930A8C8463FE87B527CDD97689DF6C5A0D74374B64EBED19 - -Count = 972 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C0D -CT = D02719BDE52A6E0BE03AEEB020C5E94AFB5BC175CC5D8A90D16397BBA1DDF8290331344037C503A5D754F8B263 - -Count = 973 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C0D0E -CT = 04E4DB7FB0CD5E82DC510EA1C018D807FFF7A5E05B47CDF1B9BCAA54AB7DD6B24DA74BA5A4ED41D57665C1C0D1 - -Count = 974 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C0D0E0F -CT = 4E54BA0EC07B188A1510BA1FB47D58B05A2A28746EDD40F141C65C53646D77CA15662EA0B47045A06DA6B439B0 - -Count = 975 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C0D0E0F10 -CT = C2D9703A91A09CBDF03FA8D5E1D3491D12EFEFB78952B8F99BD13E0CEFC7A2381A79ED49951A1BF02772221785 - -Count = 976 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = D583D8F6B7283BE885DA6AA7FD035AE3F4DCF9F77935B1D17DE8D5C7C3D1EAF729BE90D2E1713319375A6D75D8 - -Count = 977 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = 61FDAA3BFB1F53A142ABF43A0AD887F41D62B8DBACE075BCE17C92DAF7F7AB22AA58D2A32F154B14BA0CAD97A3 - -Count = 978 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 13614E426D15B41022825840BD6293F6D1C53786EDEB307B93A24A6BFF92465895CF60A51B3848531E455A5ED7 - -Count = 979 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = 35E62D092ABF45438909C842BEC93E0C5A7477EFCDA8CEAA007A0B2839F81DAFD0E58F74DF305FC4433238853D - -Count = 980 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = 1F5433AE3413FF0AFB39CBC3530F4C7A9206EB40506F4D2A1A0074FF31530A01A7CF8B89851E29A9FDC02E3076 - -Count = 981 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = E330230E92AD51FBC4BC065A51F972E83E6C21952F243C5042B9D72D89E3DE4729A8EBFE846BCA81EC7F36A0A9 - -Count = 982 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = E053C3CCD93606672243446746B136CB1EA9D727E34A85D1311C1F300BCF1D3FBF5717DC284595171A18851361 - -Count = 983 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 7614FFF72AFF37A06AAD7614A9C86557A2C06E15FAF8B1FBAA13D735B981A0F61C56A04B5C7727B6DC6E2BF521 - -Count = 984 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = A9A35CC93AA2EA16BE0B4764B2778BDF5486A480F54B3D7DCD22C26A14EE4892384F8E6BE7727F7061FDA779A0 - -Count = 985 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 070E4AE6E7A50C554F4EB193A8CF343D8996679E79E594F305D4C968CB83D433978A047F4B407F004C74C249C7 - -Count = 986 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = D91335D6B8C0FC089A0ACC1F6C3B826BABB4B0F52037A482B13D8D315C009D40832A7111C834D0B5ED00453F73 - -Count = 987 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = 16072473B039F9D516B857F7435B6D0DC286862BA7D929285C9D4084B7E1CC1B0DF879B7C05A63385C59B75D79 - -Count = 988 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = A5F8D9E8F762AA0E90750C6CA7183E669AB7046E27DA7033B2A2A2511A702FD8462DF15199E26D81D3BB8E6EC7 - -Count = 989 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = D3AEA0D48F11EC1DFDFAD2D4E93B2D7406B788B5B8211B454D007A8E142E65A03C043A1AC914A596FA5EF61EFF - -Count = 990 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 8FB96D82A57BD284F00D36BD47F0A1B17AC10ABA8FFE2A5BBA8861A67AB10414DF9DF848658C9911CD4F8179BA - -Count = 991 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = -CT = 2370658D0C95EB0D1A5D8775900A8BDDF0062505CE2E63BBE9B89423492DF8EB52410E29EF641F126D67691E05FC - -Count = 992 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 00 -CT = 8206456FBEA6CFF4A9C31B9452CDCBE46347C09DB83D461C26CEB16733AC613D31F4591997BA5B514EE24A4F9845 - -Count = 993 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 0001 -CT = 433BAF8509EA4E4F24E310C97872E8452CE6E3F6799FB7E0F332E84954558088DF04946DF6521584AE4AB7512D94 - -Count = 994 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102 -CT = A25E179FE7702845DACADA152BC52699FAE1C592AEAD30C2E5598D036DD2954AB6EDE22D32A8B48E9BBF6876E586 - -Count = 995 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 00010203 -CT = 435C9C3A51A23A7B74108A1D0151A40C6F6553FD05BB171BC284D8B53D524612CAB0B5A642236218FA04E5746120 - -Count = 996 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 0001020304 -CT = 986E25CC3D38DFF8F672AD26E1B8ECE6F291755C654DAA3B4082E38FE459523E374E95E54346B739C52D927D178A - -Count = 997 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405 -CT = F21161DD1E41023A2D2B9DA4F81F1574EFAE2F620828DF02B0AAB78633B41EAA496FA9B277295FE038C94197E172 - -Count = 998 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 00010203040506 -CT = CF63CA01DA92C8FD16B684ADEC2926FC60115924DF04A8BBFA5D249A709271630627676175C4FF3C1EAB933DDFDD - -Count = 999 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 0001020304050607 -CT = 5A4038541B99E0A2E2E0018146FCE081B087F60CC9C7FEB87A372A3B71F43BF0CEDFA4FFE13CC2D4E1B74BDBFDBC - -Count = 1000 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708 -CT = 87A910C11201684B6CD7EE14AE85DDFFDD1E58185D8F0FA5853DCAA6E742F91D88104F0115792871626D0ADBD851 - -Count = 1001 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 00010203040506070809 -CT = 53EF5B5F921D084AF23873F0D03F1220700E5E73A7289D86392E030279C4625718F3A9FC2929204F4804AA4B988A - -Count = 1002 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A -CT = 32B1289769BEB0756CE996B2E9E637B10E5B97DBD080B5B21B3DF1E998D6A2A5C153FA01B5CA5B3798DDBC892BF4 - -Count = 1003 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B -CT = 333E89843F69B1188CAF741DD08B3BD452194D4625C8099696DF87502F3512C771E0A9884914869A0C4B39FB70E5 - -Count = 1004 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C -CT = FB179E5964ABBFF3D671AF5008F2148891ABF5BB5CD83B1889C2E144FA525972EB6AB9BBE948B06A726B11D50BD7 - -Count = 1005 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C0D -CT = CFC7D53931CB0F11E79C5ECA4BD13F50ACB7099B260F22AC7E6D28D27B05EB376246388A169B36CDDE369C0106C2 - -Count = 1006 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C0D0E -CT = 247855303B112571885102345CC45E3C2D227D6C5B12100A9930775FCEDAAEA1A300FE98FCEAE7803186206D69FA - -Count = 1007 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C0D0E0F -CT = 65E31C7A893BF7D505FFE1F61BAD96B7C0376466B6DEE44D8744FD7C53E77352A335EA70E499AECA0853C734BC8F - -Count = 1008 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C0D0E0F10 -CT = CBB31E9C67A9E2550CA3460425446C3B26A735CFA25B7FD2EB641527E6343CC8D67326C2FE98BA106B819988F14D - -Count = 1009 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 69D2BC1C40E9BA13A05A95972E152FFDAF9D660F99D0B57ACC2649C5A6E3AA570B4DA9E0C531D9E3ED01F4B299A0 - -Count = 1010 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = 3F23E6A2757545AE2558B2F6776420B489E1AEFBB65AD9B872F7ED5E96740E8363AE01C173FB45A5450BD0A09121 - -Count = 1011 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 4E0A6E3AEB356944E94DCF0ED42CAB56FC284C6B69E1E15173839FEA52C5D665BA1E90725712BF011FCD11B936BF - -Count = 1012 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = AFA973D22E7D7EF3C717F33C941DAD4ABF01899A522027BCC3E18D990FB4D2E2B556ABCD0A732A9F45B35917185F - -Count = 1013 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = DEF758DC420B46CB389B56F69E0A9BEE0245C19A632355F90DFE7140C8495E9CCC30269305700CE2EC9F5133E111 - -Count = 1014 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 466C7C9D09CB300C6F24B1AF814A0B6A96EBDAB8A4D8C882C47DDCD29A0EE6DFA381EF52CC5B338DE5AE4222FA2F - -Count = 1015 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = 847CDC8CDAC1624BD209CC99FE3A3D378B0082F3EDAA018D39658B29E705F31EC86FCA03BE0D6378A56B1CDF7078 - -Count = 1016 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 452A05DDFA0239DC6850C38DFB3BFB60044C96EBC45716257053B7740489EE673B42F55053122371B9071F3D88B4 - -Count = 1017 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = FE638EFF673E9B19424507DEE2B95966F499CA2472E9E60D45B5F28475681F119ABE44B3F4B0444C653EB3C77DB5 - -Count = 1018 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 3034696BEC1DCFBD83F7E431EB999CBCC615FA4F214C455E400013165056384018D6EF6A49909323FADB1E1E878D - -Count = 1019 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 00A1F250619ECE02A1588F7B9F545E9CFA53CE90B3833ED85B0942D4D314948706B4E2F42188E54323E96D193528 - -Count = 1020 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = 725224341C6E30657A7CA51FBF9A63FA85667FB64FD80056F68AEB101B4F74D9507A0D908700D5728AFDDA90B275 - -Count = 1021 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 7FE5D3AFD2D314A2CC1B6F8FB39752EAB85B924FA66010E3CB3A01AC3B403DC0E547B7B9E5B4507D36EB5E97E8AE - -Count = 1022 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = 302239E8F9AE8FF616F6E914EAE077D841E7FDC8A9D536295655E8C89A227924AA17B06E786175C2E5AE63A1E272 - -Count = 1023 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 1CA222752CB92A1BE8AD1D25751E884B2C39B8B8E37E0E9AEB8AB79113EB3994FF9EA22FFEE053E1101EBE48F34C - -Count = 1024 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = -CT = 1939803835F71AF5F76A26ABFE5B4ED950AF5FF5CC06BF3D68992C1AA14C0BC0DD187C2EED9B7AAD51F7E139122303 - -Count = 1025 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 00 -CT = 53EFA83F4F1E582CD951D13AE7CF8DAD819AA7F99C49EF6C08EC01D305A03EDBE927E92DFD222D545C6D35C0E79ECC - -Count = 1026 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 0001 -CT = 7F0A097597C2A620A4F374EE495F3376158883C881C80961DCF04610B5B415AAEC63AA53E6ABFEFD1447A42D15CF14 - -Count = 1027 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102 -CT = BE2F0EB9EEAF732D5BEE9174063A3944DF2626E667028DA2ABD1E17D22BEC836BCBD1017BC7859F4689435A86FE4FC - -Count = 1028 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 00010203 -CT = DC8EA97E2D99363B8413BBC26558570AC3BC01075C7ACA010E734CD22250157AC2CC0BDFD1DEF951B5B8412316FCD6 - -Count = 1029 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 0001020304 -CT = E8022E170269D19802C006700AB6F51AA6ADB76C0D0C7101F4CC228FE7A8E557FF167F5C4E69A80A419EE91BC346B3 - -Count = 1030 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405 -CT = 612194DDBBC85EA3115F1D2026CF3CFB98B1517EA6AE59202D2BAF55320B9C978D795D50D4474A97D19E925C6BAA86 - -Count = 1031 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 00010203040506 -CT = 65157E2B120EC6FE8A8A61BE932AB88104DBABDFD1F9A134A130A713D8D93EEDE6997A5505C63730B0AEB75DEB7DAC - -Count = 1032 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 0001020304050607 -CT = 32E15DA07CE98F7F8A3B99A015B55F614A6D99F5F267611E2C14E2A5FB4403F771F42C822A939A4CB264AE484799DC - -Count = 1033 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708 -CT = 2E5371FEED954F526DB7CE729C6FF44C5652B03B5E696B05C2E141C6448955520FD957D7BE5F19860C10301C568DE0 - -Count = 1034 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 00010203040506070809 -CT = DBAD2359B40ABFF16F1DB33B29B2106055E4ED013365F96693676D5A2C07DB7B1E853D8083C2CDBF340D037A9CF347 - -Count = 1035 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A -CT = E02C8A1DF26EC5687CA56974909CD997AF0D5C44606C9DBD513C84A250CA58C247AB50F877AB93358869BA79D316A3 - -Count = 1036 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B -CT = E36E4A8FA2305C1B2FD7FE363E09E57A1CECDB389BACD8C8E119C89048E6D6B6BFD21113F5D8A1C22AC0DD43CDCDFD - -Count = 1037 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C -CT = FC506BB221FA62F90A27A33FD4E654DAFFAD145A002B9DCE1C1A8D815007E2975324F3AC1845D80AE137334DF123CC - -Count = 1038 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C0D -CT = E772C5DCBF8291B194F236E866BC643DB0E13D981EBEFAC29055B932BBD095A4A0A2D424228FBFE1BED08AD6E6F85F - -Count = 1039 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C0D0E -CT = B4A919DC5F838BDA077D4DB5776BCD952C795ED4BD3604F8598F4571EDBAD6C3CC9B6F3E3C55456D9DD5C894B356A1 - -Count = 1040 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C0D0E0F -CT = 70B2A8ED2593B3B6315A15914E148BAAE58B6303341F0BA95CC5A16E9C5DAA4BD0CFE41C196B57994D816629894FA2 - -Count = 1041 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C0D0E0F10 -CT = D122CEFD796992D02A737272AA00E9E3B778E3F151F1E651A010E047325AC37A1CD7E41DA1017763CC6213BA1081BC - -Count = 1042 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 8C0A25D9B41AAEA7F27EB1B16F48AF7AD8E8A17AB7578325596D6E733EECFB4E37296832A1E019DF399921BC54A600 - -Count = 1043 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = 2B1EFAE9C6165951C0EA91ADB4F7268ECD612BC84E375C40D396679AC27BF630C090E1BD0DAE062EA9BA59FF279AD3 - -Count = 1044 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 5ED6DF1B25E5820A8432DCF91EFBF4570BC6EF5E2404F9C0E228BD497CBB71F6F8FE3CB5688CEE5F4FCAE8BCBFC128 - -Count = 1045 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = A879D7A0A1C97A5E6BD5578D96B1ACA0A2A0C7F64D9CAF2F721D30C4CE651DAFDEF1E95914FAA7DCBF86EF17483F58 - -Count = 1046 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = C5C4B461D0BF049006B2E3B22B7AFD85E84967EA97DA45C0C2C39D5C634DFB3E8783E8CA0B0F3A49D71A1EF4AB61EC - -Count = 1047 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = B47397120FEE8341A297582A0EF8ED0AEF0D7B7BBC973535CE4D26C8DDD52ECE1E51C43E20B946774B1E9F2D6C7C01 - -Count = 1048 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = AF80FD34D7CDE8D535E60C2B215144D2A422AF88AE08AE9AB5F237D8BC80DE61E58D80D8B8E6E6C8DA096E574309DA - -Count = 1049 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 8EDC54382B037B3F4EDBD439DF514A32E7EC6849871089B1934594FCDE2D390F5EAA2BC60B1A54D590FFDC47E4A80C - -Count = 1050 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = 9008E8E6CF4D68D387F3FD79869981C6EDE8E3FB5AD232CAF7B39098696C2F5404386C81B29304F98838C852981CF6 - -Count = 1051 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 9EC1EA974935503E608D67E669E672C5F2D013E43DD14768FE0A47FD2E835FB62247964E75C1E9C0661E6C33F4F1E0 - -Count = 1052 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = EDCD94F4D44169F04FF807C1DCDDECCDA63B34158B6C68BFF1AE842184279A6D729BE79F0F26F4147D5841E8C0939D - -Count = 1053 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = 5FA0A4E138DBC93D9B23E3AA8F3DBE6382A9B467AEDE53BD81350527B88EAF8B392DA0893B5B9D02412CF0F7D50350 - -Count = 1054 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 1040BBF069791D0C5C80E535604879651EA5ECF6CCF64E8F7F6D060832A260A8A0275443939E08DB233F0B1314CE85 - -Count = 1055 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = F8E14234D6E1F3CDC8FC2EB2D735B14B49758990E2703BD44061659C0AEBA1AB5C94F00B216C8FCCEFDF265BE661C7 - -Count = 1056 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = DAC32E172659EA149589F2593EC44124E951DF9FE2373DB651D3AEAE74F1CEBB53C2E33CB423FDCEFA44EA20A52C7F - -Count = 1057 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = -CT = 42494509C7406E43F61FBF06F885CDF4F2C2D87430736130FFF7907E71C7CA384E16C54C859F0E17CFF78E92FAB564C5 - -Count = 1058 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 00 -CT = CB5A29175C2CF4B0EF917C3C56D65BF46677F5E0BE2AC00A098E69B5BD0B2A9E1C0B5FC3F18F79415CEF03C670D34B11 - -Count = 1059 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 0001 -CT = 6AFEA5365BA595A03F75EE28CF127AF76A42D5C5A2347C3A355481445A9B842BA769FE62FAC06C0EF3540624C5A76936 - -Count = 1060 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102 -CT = E27AF5BEB783F21124A2EF6DD75BA94B602A333ECCEA3EB043C04C9EF99926307231CBBE492B767A0CF2AAE19F4A0548 - -Count = 1061 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 00010203 -CT = C2733CCE8416CEFB175501253408F6767C412536649751D63D758EC809AEEE72933CC4F62962A37C3EDA915C7CB0B10D - -Count = 1062 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 0001020304 -CT = 09D5A115BC8E30DCE572250709B93F11412939F2738BD7B3A51109EDB0D1CE92D961F58697735D2CAF1791AAEF88AA15 - -Count = 1063 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405 -CT = D76C5F8FA6CDF860F36A0BD80C1A010EC5493A1697C91DA17D47C7293EDB85793435CB82E02217E236A4268A90E3ACD4 - -Count = 1064 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 00010203040506 -CT = 1DC180F09D7001563379865F014987917BE39DE70C2A8A714750C86ED3A1967F03B4C4E7674617B8E274B169F4BFADB5 - -Count = 1065 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 0001020304050607 -CT = FE93F5A11132479F2FC8082FFE87917379AA6291752B62C6EA12CC6AB8A67FCC45645BE7EBB8AA9B7A3177D72760B597 - -Count = 1066 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708 -CT = ED2C0C3418B6033DB5F70C4CC587E69BEF0FAAF72DDC4CA87180A1C8DD238107C63F336C39BB2D0002506382B35ED53B - -Count = 1067 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 00010203040506070809 -CT = 63ED601B27EF5C4D5262CE556D4D9E06B0473FB6C19A7BA27100AB25F776731AD3CC461EDF2DB5BB5A00B8E72E4791F8 - -Count = 1068 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A -CT = 3241FA626E6DB0BFE9C0B2BB77C84E6B5D89D065C7F875E7DD53F5E9FD584396DB24AB26764C015AB49B634DE6820904 - -Count = 1069 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B -CT = C20C08CF78FFD6E6E98B62DE938C328B8D7800ED7D83EED5F667A95B55E00E17DAE827F1F8A0B319F6B87E14C1AC3CF8 - -Count = 1070 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C -CT = 69A3E5A023459BBB606552E822FD273BD82B66E74E7F4F58871B777ABF266313D44ABD1808B13566ED442D0DE0377530 - -Count = 1071 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C0D -CT = 524741D704105F3BEE700B5AEE3E2D25473486EFA3FC1FF0E8FAB427F971A818C529714322399778C1F5573F011C6D0A - -Count = 1072 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C0D0E -CT = 3B750FDF94272134EDA14AA019E0F720DB3ECBC57C3564CFB3BB786436D0D895165353EF53B8F707A723EFC42F8CF711 - -Count = 1073 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C0D0E0F -CT = 68B710D7B16974580DE1B71602947CAEF8897A5D0A0719DDF614D1853B314183B9491762858F2820C11A4CF6EC023D70 - -Count = 1074 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C0D0E0F10 -CT = A1F56278B46E18D4F3EBD7981824798CAF8056C20E8C70394320361C50BBF812ECB9E07A81E26741DAA8FAEB7DDBFE00 - -Count = 1075 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = DB9BDEA0A80CC6DFDC9FD20C6EAE4D5229C5673748265B358A09FE50A63B8DC4C204AF80B3927FCC2D511952C22DEDE5 - -Count = 1076 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = 92001B02F3E79F07D50D7CF8220A78FD1D31AC28F315431D53BF854108FC37709A42A64A2592C99A62B54E36C52A57BD - -Count = 1077 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 34FB1217BCE173AE129F86BE52C95E6D04F5923057016187C0A363CDF6BB30D4A4C4E96B651E88FE5377DF8112E5C281 - -Count = 1078 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = 60B8203504EB09A7AAC923B3100448F11B1ABAF0D428B74C94185455284ADE98A669F7EB8C63ECB721D05C017349066C - -Count = 1079 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = BF9A6EAB965AC9FCC02138B17AFE018CA53D611B2FB3BD46B8415B6511489886EDA6D3B86D70CEC5D0EB6B3839E39FFB - -Count = 1080 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 77620F5B16AF222DF6B8C063AEA5F0ACA7C36E0CC7DD0E8382EA793013888D663D1682F1C3EE6422216A5A5369B1B0B7 - -Count = 1081 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = 8EED905B044634CC334414EDCE46214BA2B54BA3CD9F384DD6B652E788794122A697CCDCC63218388CA5547E14267254 - -Count = 1082 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = DAAA1AE219D1DFE3DCB6D42E4A2FB387383DD777EB0A4CA3F9FEFCC4BA4876E82CD3FEB14A55871F964747A1867E8194 - -Count = 1083 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = 0565216CEE83173206D99D9ABA5E8CA3D80081D5341D38C9DB7034323504B6CAFEADFA6EF511578B3FD0DA3EB46856BD - -Count = 1084 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 80DBD4D7E64447F037AD4F13047B39436126F3B82238AEB0978B743FFD6D9852D82444D31A63EB0E923469A4EA486F1E - -Count = 1085 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = FE6E62858A6F55983254B2F72DF074BCD888639A5FEC4AF6E952BB1D6D9B062846673F450F819C3B7FA505F01880F6BC - -Count = 1086 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = B1322523B52BFCD33BCC4C19E01463E4C03D881EEA62DD6BB82C82C48F106F672A0682A040055991A9D52F3CEDFB5517 - -Count = 1087 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = E85EAF4D6FECF969A44CF24358191A59A8B8D2BCA0AE2A4F3B168674DAFB3C31E9B6533486A76E1AA7F2D1141783A8C0 - -Count = 1088 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = 57D14CA7AD8AD04A4221317D915D61619327E3F409050B6D827C1392B88D5CEA665B74F7685330185666E7F4CE26CBC9 - -Count = 1089 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = A617E429C7DD351098375900EA5EC8CA23DF17B8DEEA71EA0E8C49A46E01FFEB7C7EA84D0540657671018B9248EA9BD7 - diff --git a/romulus/Implementations/crypto_aead/romulusm1+v13/armcortexm/api.h b/romulus/Implementations/crypto_aead/romulusm1+v13/armcortexm/api.h deleted file mode 100644 index a4aa567..0000000 --- a/romulus/Implementations/crypto_aead/romulusm1+v13/armcortexm/api.h +++ /dev/null @@ -1,5 +0,0 @@ -#define CRYPTO_KEYBYTES 16 -#define CRYPTO_NSECBYTES 0 -#define CRYPTO_NPUBBYTES 16 -#define CRYPTO_ABYTES 16 -#define CRYPTO_NOOVERLAP 1 diff --git a/romulus/Implementations/crypto_aead/romulusm1+v13/armcortexm/crypto_aead.h b/romulus/Implementations/crypto_aead/romulusm1+v13/armcortexm/crypto_aead.h deleted file mode 100644 index 6f4ee42..0000000 --- a/romulus/Implementations/crypto_aead/romulusm1+v13/armcortexm/crypto_aead.h +++ /dev/null @@ -1,13 +0,0 @@ -//API required by the NIST for the LWC competition -int crypto_aead_encrypt(unsigned char *c, unsigned long long *clen, - const unsigned char *m, unsigned long long mlen, - const unsigned char *ad, unsigned long long adlen, - const unsigned char *nsec, const unsigned char *npub, - const unsigned char *k); - -//API required by the NIST for the LWC competition -int crypto_aead_decrypt(unsigned char *m, unsigned long long *outputmlen, - unsigned char *nsec, - const unsigned char *c, unsigned long long clen, - const unsigned char *ad, unsigned long long adlen, - const unsigned char *npub, const unsigned char *k); diff --git a/romulus/Implementations/crypto_aead/romulusm1+v13/armcortexm/encrypt.c b/romulus/Implementations/crypto_aead/romulusm1+v13/armcortexm/encrypt.c deleted file mode 100644 index ade5211..0000000 --- a/romulus/Implementations/crypto_aead/romulusm1+v13/armcortexm/encrypt.c +++ /dev/null @@ -1,383 +0,0 @@ -#include "skinny128.h" -#include "romulus.h" -#include - -u8 final_ad_domain (unsigned long long adlen, unsigned long long mlen) { - u8 domain = 0; - u32 leftover; - //Determine which domain bits we need based on the length of the ad - if (adlen == 0) { - domain ^= 0x02; // No message, so only 1 block with padding - } else { - leftover = (u32)(adlen % (2 * BLOCKBYTES)); - if (leftover == 0) { // Even or odd ad length? - domain ^= 0x08; // Even with a full double block at the end - } else if (leftover < BLOCKBYTES) { - domain ^= 0x02; // Odd with a partial single block at the end - } else if (leftover > BLOCKBYTES) { - domain ^= 0x0A; // Even with a partial double block at the end - } - } - //Determine which domain bits we need based on the length of the message - if (mlen == 0) { - domain ^= 0x01; // No message, so only 1 block with padding - } else { - leftover = (u32)(mlen % (2 * BLOCKBYTES)); - if (leftover == 0) { // Even or odd message length? - domain ^= 0x04; // Even with a full double block at the end - } else if (leftover < BLOCKBYTES) { - domain ^= 0x01; // Odd with a partial single block at the end - } else if (leftover > BLOCKBYTES) { - domain ^= 0x05; // Even with a partial double block at the end - } - } - return domain; -} - -//Encryption and authentication using Romulus-N1 -int crypto_aead_encrypt - (unsigned char *c, unsigned long long *clen, - const unsigned char *m, unsigned long long mlen, - const unsigned char *ad, unsigned long long adlen, - const unsigned char *nsec, - const unsigned char *npub, - const unsigned char *k) { - - u64 tmp_mlen = mlen; - u32 tmp; - const u8* m_auth = m; - u8 final_domain = 0x30; - skinny_128_384_tks tks; - u8 state[BLOCKBYTES], pad[BLOCKBYTES]; - (void)nsec; - - // ----------------- Initialization ----------------- - *clen = mlen + TAGBYTES; - memset(tks.tk1, 0x00, KEYBYTES); - memset(state, 0x00, BLOCKBYTES); - tks.tk1[0] = 0x01; // Init the 56-bit LFSR counter - // ----------------- Initialization ----------------- - - // ----------------- Process the associated data ----------------- - final_domain ^= final_ad_domain(adlen, mlen); - SET_DOMAIN(tks, 0x28); - while (adlen > 2*BLOCKBYTES) { // Process double blocks but the last - UPDATE_CTR(tks.tk1); - XOR_BLOCK(state, state, ad); - tkschedule_lfsr(tks.rtk, ad + BLOCKBYTES, k, SKINNY128_384_ROUNDS); - tkschedule_perm(tks.rtk); - tkschedule_perm_tk1(tks.rtk1, tks.tk1); - skinny128_384(state, tks.rtk, state, tks.rtk1); - UPDATE_CTR(tks.tk1); - ad += 2*BLOCKBYTES; - adlen -= 2*BLOCKBYTES; - } - // Pad and process the left-over blocks - if (adlen == 2*BLOCKBYTES) { // Left-over complete double block - UPDATE_CTR(tks.tk1); - XOR_BLOCK(state, state, ad); - tkschedule_lfsr(tks.rtk, ad + BLOCKBYTES, k, SKINNY128_384_ROUNDS); - tkschedule_perm(tks.rtk); - tkschedule_perm_tk1(tks.rtk1, tks.tk1); - skinny128_384(state, tks.rtk, state, tks.rtk1); - UPDATE_CTR(tks.tk1); - } else if (adlen > BLOCKBYTES) { // Left-over partial double block - adlen -= BLOCKBYTES; - UPDATE_CTR(tks.tk1); - XOR_BLOCK(state, state, ad); - memcpy(pad, ad + BLOCKBYTES, adlen); - memset(pad + adlen, 0x00, 15 - adlen); - pad[15] = adlen; // Padding - tkschedule_lfsr(tks.rtk, pad, k, SKINNY128_384_ROUNDS); - tkschedule_perm(tks.rtk); - tkschedule_perm_tk1(tks.rtk1, tks.tk1); - skinny128_384(state, tks.rtk, state, tks.rtk1); - UPDATE_CTR(tks.tk1); - } else { - SET_DOMAIN(tks, 0x2C); - UPDATE_CTR(tks.tk1); - if (adlen == BLOCKBYTES) { // Left-over complete single block - XOR_BLOCK(state, state, ad); - } else { // Left-over partial single block - for(int i =0; i < adlen; i++) - state[i] ^= ad[i]; - state[15] ^= adlen; // Padding - } - if (tmp_mlen >= BLOCKBYTES) { - tkschedule_lfsr(tks.rtk, m_auth, k, SKINNY128_384_ROUNDS); - tkschedule_perm(tks.rtk); - tkschedule_perm_tk1(tks.rtk1, tks.tk1); - skinny128_384(state, tks.rtk, state, tks.rtk1); - if (tmp_mlen > BLOCKBYTES) - UPDATE_CTR(tks.tk1); - m_auth += BLOCKBYTES; - tmp_mlen -= BLOCKBYTES; - } else { - memcpy(pad, m_auth, tmp_mlen); - memset(pad + tmp_mlen, 0x00, BLOCKBYTES - tmp_mlen - 1); - pad[15] = (u8)tmp_mlen; // Padding - tkschedule_lfsr(tks.rtk, pad, k, SKINNY128_384_ROUNDS); - tkschedule_perm(tks.rtk); - tkschedule_perm_tk1(tks.rtk1, tks.tk1); - skinny128_384(state, tks.rtk, state, tks.rtk1); - tmp_mlen = 0; - } - } - // Process all message double blocks except the last - SET_DOMAIN(tks, 0x2C); - while (tmp_mlen > 32) { - UPDATE_CTR(tks.tk1); - XOR_BLOCK(state, state, m_auth); - tkschedule_lfsr(tks.rtk, m_auth + BLOCKBYTES, k, SKINNY128_384_ROUNDS); - tkschedule_perm(tks.rtk); - tkschedule_perm_tk1(tks.rtk1, tks.tk1); - skinny128_384(state, tks.rtk, state, tks.rtk1); - UPDATE_CTR(tks.tk1); - m_auth += 2 * BLOCKBYTES; - tmp_mlen -= 2 * BLOCKBYTES; - } - // Process the last message double block - if (tmp_mlen == 2 * BLOCKBYTES) { // Last message double block is full - UPDATE_CTR(tks.tk1); - XOR_BLOCK(state, state, m_auth); - tkschedule_lfsr(tks.rtk, m_auth + BLOCKBYTES, k, SKINNY128_384_ROUNDS); - tkschedule_perm(tks.rtk); - tkschedule_perm_tk1(tks.rtk1, tks.tk1); - skinny128_384(state, tks.rtk, state, tks.rtk1); - } else if (tmp_mlen > BLOCKBYTES) { // Last message double block is partial - tmp_mlen -= BLOCKBYTES; - UPDATE_CTR(tks.tk1); - XOR_BLOCK(state, state, m_auth); - memcpy(pad, m_auth + BLOCKBYTES, tmp_mlen); - memset(pad + tmp_mlen, 0x00, BLOCKBYTES - tmp_mlen - 1); - pad[15] = (u8)tmp_mlen; // Padding - tkschedule_lfsr(tks.rtk, pad, k, SKINNY128_384_ROUNDS); - tkschedule_perm(tks.rtk); - tkschedule_perm_tk1(tks.rtk1, tks.tk1); - skinny128_384(state, tks.rtk, state, tks.rtk1); - } else if (tmp_mlen == BLOCKBYTES) { // Last message single block is full - XOR_BLOCK(state, state, m_auth); - } else if (tmp_mlen > 0) { // Last message single block is partial - for(int i =0; i < (int)tmp_mlen; i++) - state[i] ^= m_auth[i]; - state[15] ^= (u8)tmp_mlen; // Padding - } - // Process the last partial block - SET_DOMAIN(tks, final_domain); - UPDATE_CTR(tks.tk1); - tkschedule_lfsr(tks.rtk, npub, k, SKINNY128_384_ROUNDS); - tkschedule_perm(tks.rtk); - tkschedule_perm_tk1(tks.rtk1, tks.tk1); - skinny128_384(state, tks.rtk, state, tks.rtk1); - // ----------------- Process the associated data ----------------- - - - // ----------------- Generate the tag ----------------- - G(state,state); - memcpy(c + mlen, state, TAGBYTES); - // ----------------- Generate the tag ----------------- - - memset(tks.tk1, 0x00, KEYBYTES); - tks.tk1[0] = 0x01; // Init the 56-bit LFSR counter - if (mlen > 0) { - SET_DOMAIN(tks, 0x24); - while (mlen > BLOCKBYTES) { - tkschedule_perm_tk1(tks.rtk1, tks.tk1); - skinny128_384(state, tks.rtk, state, tks.rtk1); - RHO(state,c,m); - UPDATE_CTR(tks.tk1); - c += BLOCKBYTES; - m += BLOCKBYTES; - mlen -= BLOCKBYTES; - } - tkschedule_perm_tk1(tks.rtk1, tks.tk1); - skinny128_384(state, tks.rtk, state, tks.rtk1); - for(int i = 0; i < (int)mlen; i++) { - tmp = m[i]; // Use of tmp variable in case c = m - c[i] = m[i] ^ (state[i] >> 1) ^ (state[i] & 0x80) ^ (state[i] << 7); - state[i] ^= (u8)tmp; - } - state[15] ^= (u8)mlen; // Padding - } - - return 0; -} - -//Decryption and tag verification using Romulus-N1 -int crypto_aead_decrypt - (unsigned char *m, unsigned long long *mlen, - unsigned char *nsec, - const unsigned char *c, unsigned long long clen, - const unsigned char *ad, unsigned long long adlen, - const unsigned char *npub, - const unsigned char *k) { - - u32 tmp, tmp_mlen; - u8 final_domain = 0x30; - u8* m_auth = m; - const u8* c_tmp = c; - skinny_128_384_tks tks; - u8 state[BLOCKBYTES], pad[BLOCKBYTES]; - (void)nsec; - - if (clen < TAGBYTES) - return -1; - - // ----------------- Initialization ----------------- - *mlen = clen - TAGBYTES; - memset(tks.tk1, 0x00, KEYBYTES); - tks.tk1[0] = 0x01; // Init the 56-bit LFSR counter - // ----------------- Initialization ----------------- - - // ----------------- Process the ciphertext ----------------- - clen -= TAGBYTES; - memcpy(state, c + clen, TAGBYTES); - tmp_mlen = clen; - if (tmp_mlen > 0) { - tkschedule_lfsr(tks.rtk, npub, k, SKINNY128_384_ROUNDS); - tkschedule_perm(tks.rtk); - SET_DOMAIN(tks, 0x24); - while (tmp_mlen > BLOCKBYTES) { - tkschedule_perm_tk1(tks.rtk1, tks.tk1); - skinny128_384(state, tks.rtk, state, tks.rtk1); - RHO_INV(state, c, m); - UPDATE_CTR(tks.tk1); - c += BLOCKBYTES; - m += BLOCKBYTES; - tmp_mlen -= BLOCKBYTES; - } - tkschedule_perm_tk1(tks.rtk1, tks.tk1); - skinny128_384(state, tks.rtk, state, tks.rtk1); - for(int i = 0; i < (int)tmp_mlen; i++) { - m[i] = c[i] ^ (state[i] >> 1) ^ (state[i] & 0x80) ^ (state[i] << 7); - state[i] ^= m[i]; - } - state[15] ^= (u8)tmp_mlen; // Padding - } - // ----------------- Process the ciphertext ----------------- - - // ----------------- Process the associated data ----------------- - memset(tks.tk1, 0x00, KEYBYTES); - tks.tk1[0] = 0x01; // Init the 56-bit LFSR counter - memset(state, 0x00, BLOCKBYTES); - final_domain ^= final_ad_domain(adlen, clen); - SET_DOMAIN(tks, 0x28); - while (adlen > 2*BLOCKBYTES) { // Process double blocks but the last - UPDATE_CTR(tks.tk1); - XOR_BLOCK(state, state, ad); - tkschedule_lfsr(tks.rtk, ad + BLOCKBYTES, k, SKINNY128_384_ROUNDS); - tkschedule_perm(tks.rtk); - tkschedule_perm_tk1(tks.rtk1, tks.tk1); - skinny128_384(state, tks.rtk, state, tks.rtk1); - UPDATE_CTR(tks.tk1); - ad += 2*BLOCKBYTES; - adlen -= 2*BLOCKBYTES; - } - // Pad and process the left-over blocks - if (adlen == 2*BLOCKBYTES) { // Left-over complete double block - UPDATE_CTR(tks.tk1); - XOR_BLOCK(state, state, ad); - tkschedule_lfsr(tks.rtk, ad + BLOCKBYTES, k, SKINNY128_384_ROUNDS); - tkschedule_perm(tks.rtk); - tkschedule_perm_tk1(tks.rtk1, tks.tk1); - skinny128_384(state, tks.rtk, state, tks.rtk1); - UPDATE_CTR(tks.tk1); - } else if (adlen > BLOCKBYTES) { // Left-over partial double block - adlen -= BLOCKBYTES; - UPDATE_CTR(tks.tk1); - XOR_BLOCK(state, state, ad); - memcpy(pad, ad + BLOCKBYTES, adlen); - memset(pad + adlen, 0x00, 15 - adlen); - pad[15] = adlen; // Padding - tkschedule_lfsr(tks.rtk, pad, k, SKINNY128_384_ROUNDS); - tkschedule_perm(tks.rtk); - tkschedule_perm_tk1(tks.rtk1, tks.tk1); - skinny128_384(state, tks.rtk, state, tks.rtk1); - UPDATE_CTR(tks.tk1); - } else { - SET_DOMAIN(tks, 0x2C); - UPDATE_CTR(tks.tk1); - if (adlen == BLOCKBYTES) { // Left-over complete single block - XOR_BLOCK(state, state, ad); - } else { // Left-over partial single block - for(int i =0; i < (int)adlen; i++) - state[i] ^= ad[i]; - state[15] ^= adlen; // Padding - } - if (clen >= BLOCKBYTES) { - tkschedule_lfsr(tks.rtk, m_auth, k, SKINNY128_384_ROUNDS); - tkschedule_perm(tks.rtk); - tkschedule_perm_tk1(tks.rtk1, tks.tk1); - skinny128_384(state, tks.rtk, state, tks.rtk1); - if (clen > BLOCKBYTES) - UPDATE_CTR(tks.tk1); - m_auth += BLOCKBYTES; - clen -= BLOCKBYTES; - } else { - memcpy(pad, m_auth, clen); - memset(pad + clen, 0x00, BLOCKBYTES - clen - 1); - pad[15] = (u8)clen; // Padding - tkschedule_lfsr(tks.rtk, pad, k, SKINNY128_384_ROUNDS); - tkschedule_perm(tks.rtk); - tkschedule_perm_tk1(tks.rtk1, tks.tk1); - skinny128_384(state, tks.rtk, state, tks.rtk1); - clen = 0; - } - } - // Process all message double blocks except the last - SET_DOMAIN(tks, 0x2C); - while (clen > 32) { - UPDATE_CTR(tks.tk1); - XOR_BLOCK(state, state, m_auth); - tkschedule_lfsr(tks.rtk, m_auth + BLOCKBYTES, k, SKINNY128_384_ROUNDS); - tkschedule_perm(tks.rtk); - tkschedule_perm_tk1(tks.rtk1, tks.tk1); - skinny128_384(state, tks.rtk, state, tks.rtk1); - UPDATE_CTR(tks.tk1); - m_auth += 2 * BLOCKBYTES; - clen -= 2 * BLOCKBYTES; - } - // Process the last message double block - if (clen == 2 * BLOCKBYTES) { // Last message double block is full - UPDATE_CTR(tks.tk1); - XOR_BLOCK(state, state, m_auth); - tkschedule_lfsr(tks.rtk, m_auth + BLOCKBYTES, k, SKINNY128_384_ROUNDS); - tkschedule_perm(tks.rtk); - tkschedule_perm_tk1(tks.rtk1, tks.tk1); - skinny128_384(state, tks.rtk, state, tks.rtk1); - } else if (clen > BLOCKBYTES) { // Last message double block is partial - clen -= BLOCKBYTES; - UPDATE_CTR(tks.tk1); - XOR_BLOCK(state, state, m_auth); - memcpy(pad, m_auth + BLOCKBYTES, clen); - memset(pad + clen, 0x00, BLOCKBYTES - clen - 1); - pad[15] = (u8)clen; // Padding - tkschedule_lfsr(tks.rtk, pad, k, SKINNY128_384_ROUNDS); - tkschedule_perm(tks.rtk); - tkschedule_perm_tk1(tks.rtk1, tks.tk1); - skinny128_384(state, tks.rtk, state, tks.rtk1); - } else if (clen == BLOCKBYTES) { // Last message single block is full - XOR_BLOCK(state, state, m_auth); - } else if (clen > 0) { // Last message single block is partial - for(int i =0; i < (int)clen; i++) - state[i] ^= m[i]; - state[15] ^= (u8)clen; // Padding - } - // Process the last partial block - SET_DOMAIN(tks, final_domain); - UPDATE_CTR(tks.tk1); - tkschedule_lfsr(tks.rtk, npub, k, SKINNY128_384_ROUNDS); - tkschedule_perm(tks.rtk); - tkschedule_perm_tk1(tks.rtk1, tks.tk1); - skinny128_384(state, tks.rtk, state, tks.rtk1); - // ----------------- Process the associated data ----------------- - - // ----------------- Generate and check the tag ----------------- - G(state,state); - tmp = 0; - for(int i = 0; i < TAGBYTES; i++) - tmp |= state[i] ^ c_tmp[*mlen+i]; //constant-time tag comparison - // ----------------- Generate and check the tag ----------------- - - return tmp; -} \ No newline at end of file diff --git a/romulus/Implementations/crypto_aead/romulusm1+v13/armcortexm/romulus.h b/romulus/Implementations/crypto_aead/romulusm1+v13/armcortexm/romulus.h deleted file mode 100644 index 626a767..0000000 --- a/romulus/Implementations/crypto_aead/romulusm1+v13/armcortexm/romulus.h +++ /dev/null @@ -1,69 +0,0 @@ -#ifndef ROMULUSN1_H_ -#define ROMULUSN1_H_ - -#include "skinny128.h" - -typedef unsigned char u8; -typedef unsigned int u32; -typedef unsigned int u64; -typedef struct { - u8 tk1[16]; //to manipulate tk1 byte-wise - u32 rtk1[4*16]; //to avoid tk schedule recomputations - u32 rtk[4*SKINNY128_384_ROUNDS]; //all round tweakeys -} skinny_128_384_tks; - -#define TAGBYTES 16 -#define KEYBYTES 16 -#define BLOCKBYTES 16 - -#define SET_DOMAIN(tks, domain) ((tks).tk1[7] = (domain)) - -//G as defined in the Romulus specification in a 32-bit word-wise manner -#define G(x,y) ({ \ - tmp = ((u32*)(y))[0]; \ - ((u32*)(x))[0] = (tmp >> 1 & 0x7f7f7f7f) ^ ((tmp ^ (tmp << 7)) & 0x80808080); \ - tmp = ((u32*)(y))[1]; \ - ((u32*)(x))[1] = (tmp >> 1 & 0x7f7f7f7f) ^ ((tmp ^ (tmp << 7)) & 0x80808080); \ - tmp = ((u32*)(y))[2]; \ - ((u32*)(x))[2] = (tmp >> 1 & 0x7f7f7f7f) ^ ((tmp ^ (tmp << 7)) & 0x80808080); \ - tmp = ((u32*)(y))[3]; \ - ((u32*)(x))[3] = (tmp >> 1 & 0x7f7f7f7f) ^ ((tmp ^ (tmp << 7)) & 0x80808080); \ -}) - -//update the counter in tk1 in a 32-bit word-wise manner -#define UPDATE_CTR(tk1) ({ \ - tmp = ((u32*)(tk1))[1]; \ - ((u32*)(tk1))[1] = (tmp << 1) & 0x00ffffff; \ - ((u32*)(tk1))[1] |= (((u32*)(tk1))[0] >> 31); \ - ((u32*)(tk1))[1] |= tmp & 0xff000000; \ - ((u32*)(tk1))[0] <<= 1; \ - if ((tmp >> 23) & 0x01) \ - ((u32*)(tk1))[0] ^= 0x95; \ -}) - -//x <- y ^ z for 128-bit blocks -#define XOR_BLOCK(x,y,z) ({ \ - ((u32*)(x))[0] = ((u32*)(y))[0] ^ ((u32*)(z))[0]; \ - ((u32*)(x))[1] = ((u32*)(y))[1] ^ ((u32*)(z))[1]; \ - ((u32*)(x))[2] = ((u32*)(y))[2] ^ ((u32*)(z))[2]; \ - ((u32*)(x))[3] = ((u32*)(y))[3] ^ ((u32*)(z))[3]; \ -}) - - -//Rho as defined in the Romulus specification -//use pad as a tmp variable in case y = z -#define RHO(x,y,z) ({ \ - G(pad,x); \ - XOR_BLOCK(y, pad, z); \ - XOR_BLOCK(x, x, z); \ -}) - -//Rho inverse as defined in the Romulus specification -//use pad as a tmp variable in case y = z -#define RHO_INV(x, y, z) ({ \ - G(pad, x); \ - XOR_BLOCK(z, pad, y); \ - XOR_BLOCK(x, x, z); \ -}) - -#endif // ROMULUSN1_H_ \ No newline at end of file diff --git a/romulus/Implementations/crypto_aead/romulusm1+v13/armcortexm/skinny128.h b/romulus/Implementations/crypto_aead/romulusm1+v13/armcortexm/skinny128.h deleted file mode 100644 index 7f53b7d..0000000 --- a/romulus/Implementations/crypto_aead/romulusm1+v13/armcortexm/skinny128.h +++ /dev/null @@ -1,15 +0,0 @@ -#ifndef SKINNY128_H_ -#define SKINNY128_H_ - -typedef unsigned char u8; -typedef unsigned int u32; - -#define SKINNY128_384_ROUNDS 40 - -extern void skinny128_384(u8* ctext, const u32* tk, const u8* ptext, const u32* rtk1); -extern void tkschedule_lfsr(u32* rtk, const u8* tk2, const u8* tk3, const int rounds); -extern void tkschedule_perm(u32* rtk); -extern void tkschedule_perm_tk1(u32* rtk1, const u8* tk1); - - -#endif // SKINNY128_H_ \ No newline at end of file diff --git a/romulus/Implementations/crypto_aead/romulusm1+v13/armcortexm/skinny128.s b/romulus/Implementations/crypto_aead/romulusm1+v13/armcortexm/skinny128.s deleted file mode 100644 index 2f938a0..0000000 --- a/romulus/Implementations/crypto_aead/romulusm1+v13/armcortexm/skinny128.s +++ /dev/null @@ -1,1706 +0,0 @@ -/******************************************************************************* -* ARM assembly implementation of fixsliced SKINNY-128-384. -* -* For more details, see the paper at: https:// -* -* @author Alexandre Adomnicai, Nanyang Technological University, -* alexandre.adomnicai@ntu.edu.sg -* -* @date May 2020 -*******************************************************************************/ - -.syntax unified -.thumb - -/******************************************************************************* -* applies P^2 on the tweakey state in a bitsliced manner -*******************************************************************************/ -.align 2 -p2: - movw r1, #0xcc00 - movt r1, #0xcc00 //r1 <- 0xcc00cc00 - movw r10, #0xcc00 - movt r10, #0x0033 //r10<- 0xcc000033 - and r11, r1, r6, ror #14 - bfi r11, r6, #16, #8 - and r12, r6, #0xcc000000 - orr r11, r11, r12, lsr #2 - and r12, r10, r6 - orr r11, r11, r12, lsr #8 - and r12, r6, #0x00cc0000 - orr r6, r11, r12, lsr #18 - and r11, r1, r7, ror #14 - bfi r11, r7, #16, #8 - and r12, r7, #0xcc000000 - orr r11, r11, r12, lsr #2 - and r12, r10, r7 - orr r11, r11, r12, lsr #8 - and r12, r7, #0x00cc0000 - orr r7, r11, r12, lsr #18 - and r11, r1, r8, ror #14 - bfi r11, r8, #16, #8 - and r12, r8, #0xcc000000 - orr r11, r11, r12, lsr #2 - and r12, r10, r8 - orr r11, r11, r12, lsr #8 - and r12, r8, #0x00cc0000 - orr r8, r11, r12, lsr #18 - and r11, r1, r9, ror #14 - bfi r11, r9, #16, #8 - and r12, r9, #0xcc000000 - orr r11, r11, r12, lsr #2 - and r12, r10, r9 - orr r11, r11, r12, lsr #8 - and r12, r9, #0x00cc0000 - orr r9, r11, r12, lsr #18 - bx lr - -/******************************************************************************* -* applies P^4 on the tweakey state in a bitsliced manner -*******************************************************************************/ -.align 2 -p4: - str.w r14, [sp] //store r14 on the stack - movw r14, #0x00cc - movt r14, #0xcc00 //r14<- 0xcc0000cc - movw r12, #0xcc00 - movt r12, #0x3300 //r12<- 0x3300cc00 - movw r11, #0x00cc - movt r11, #0x00cc //r11<- 0x00cc00cc - and r10, r14, r6, ror #22 - and r1, r12, r6, ror #16 - orr r10, r10, r1 - and r1, r6, r11 - orr r10, r10, r1, lsr #2 - movw r1, #0xcc33 //r1 <- 0x0000cc33 - and r6, r6, r1 - orr r6, r10, r6, ror #24 - and r10, r14, r7, ror #22 - and r1, r12, r7, ror #16 - orr r10, r10, r1 - and r1, r7, r11 - orr r10, r10, r1, lsr #2 - movw r1, #0xcc33 //r1 <- 0x0000cc33 - and r7, r7, r1 - orr r7, r10, r7, ror #24 - and r10, r14, r8, ror #22 - and r1, r12, r8, ror #16 - orr r10, r10, r1 - and r1, r8, r11 - orr r10, r10, r1, lsr #2 - movw r1, #0xcc33 //r1 <- 0x0000cc33 - and r8, r8, r1 - orr r8, r10, r8, ror #24 - and r10, r14, r9, ror #22 - ldr.w r14, [sp] //restore r14 - and r12, r12, r9, ror #16 - orr r10, r10, r12 - and r12, r9, r11 - orr r10, r10, r12, lsr #2 - movw r12, #0xcc33 //r1 <- 0x0000cc33 - and r9, r9, r12 - orr r9, r10, r9, ror #24 - bx lr - -/******************************************************************************* -* applies P^6 on the tweakey state in a bitsliced manner -*******************************************************************************/ -.align 2 -p6: - movw r1, #0x3333 //r1 <- 0x00003333 - movw r12, #0x00cc - movt r12, #0x3300 //r12<- 0x330000cc - and r10, r6, r1, ror #8 // --- permute r6 6 times - and r11, r12, r6, ror #24 - orr r11, r11, r10, ror #6 - and r10, r1, r6, ror #10 - orr r11, r11, r10 - and r10, r6, #0x000000cc - orr r11, r11, r10, lsl #14 - and r10, r6, #0x00003300 - orr r6, r11, r10, lsl #2 // permute r6 6 times --- - and r10, r7, r1, ror #8 // --- permute r7 6 times - and r11, r12, r7, ror #24 - orr r11, r11, r10, ror #6 - and r10, r1, r7, ror #10 - orr r11, r11, r10 - and r10, r7, #0x000000cc - orr r11, r11, r10, lsl #14 - and r10, r7, #0x00003300 - orr r7, r11, r10, lsl #2 // permute r7 6 times --- - and r10, r8, r1, ror #8 // --- permute r8 6 times - and r11, r12, r8, ror #24 - orr r11, r11, r10, ror #6 - and r10, r1, r8, ror #10 - orr r11, r11, r10 - and r10, r8, #0x000000cc - orr r11, r11, r10, lsl #14 - and r10, r8, #0x00003300 - orr r8, r11, r10, lsl #2 // permute r8 6 times --- - and r10, r9, r1, ror #8 // --- permute r9 6 times - and r11, r12, r9, ror #24 - orr r11, r11, r10, ror #6 - and r10, r1, r9, ror #10 - orr r11, r11, r10 - and r10, r9, #0x000000cc - orr r11, r11, r10, lsl #14 - and r10, r9, #0x00003300 // permute r9 6 times --- - orr r9, r11, r10, lsl #2 - bx lr - -/******************************************************************************* -* applies P^8 on the tweakey state in a bitsliced manner -*******************************************************************************/ -.align 2 -p8: - movw r12, #0x3333 //r12<- 0x00003333 - movw r1, #0x0000 - movt r1, #0x33cc //r1 <- 0x33cc0000 - and r10, r6, r1 // --- permute r6 8 times - and r11, r1, r6, ror #8 - orr r11, r11, r10, ror #24 - and r10, r6, r12, lsl #2 - orr r11, r11, r10, ror #26 - and r10, r6, r12, lsl #8 - orr r6, r11, r10, lsr #6 // permute r6 8 times --- - and r10, r7, r1 // --- permute r7 8 times - and r11, r1, r7, ror #8 - orr r11, r11, r10, ror #24 - and r10, r7, r12, lsl #2 - orr r11, r11, r10, ror #26 - and r10, r7, r12, lsl #8 - orr r7, r11, r10, lsr #6 // permute r7 8 times --- - and r10, r8, r1 // --- permute r8 8 times - and r11, r1, r8, ror #8 - orr r11, r11, r10, ror #24 - and r10, r8, r12, lsl #2 - orr r11, r11, r10, ror #26 - and r10, r8, r12, lsl #8 - orr r8, r11, r10, lsr #6 // permute r8 8 times --- - and r10, r9, r1 // --- permute r9 8 times - and r11, r1, r9, ror #8 - orr r11, r11, r10, ror #24 - and r10, r9, r12, lsl #2 - orr r11, r11, r10, ror #26 - and r10, r9, r12, lsl #8 - orr r9, r11, r10, lsr #6 // permute r9 8 times --- - bx lr - -/******************************************************************************* -* applies P^10 on the tweakey state in a bitsliced manner -*******************************************************************************/ -.align 2 -p10: - movw r12, #0x0033 - movt r12, #0x3300 //r12<- 0x33000033 - movw r1, #0xcc33 //r1 <- 0x0000cc33 - and r10, r6, r1, ror #8 // --- permute r6 10 times - and r11, r12, r6, ror #26 - orr r11, r11, r10, ror #8 - and r10, r6, r12, ror #24 - orr r11, r11, r10, ror #22 - and r10, r6, #0x00330000 - orr r11, r11, r10, lsr #14 - and r10, r6, #0x0000cc00 - orr r6, r11, r10, lsr #2 // permute r6 10 times --- - and r10, r7, r1, ror #8 // --- permute r6 10 times - and r11, r12, r7, ror #26 - orr r11, r11, r10, ror #8 - and r10, r7, r12, ror #24 - orr r11, r11, r10, ror #22 - and r10, r7, #0x00330000 - orr r11, r11, r10, lsr #14 - and r10, r7, #0x0000cc00 - orr r7, r11, r10, lsr #2 // permute r6 10 times --- - and r10, r8, r1, ror #8 // --- permute r6 10 times - and r11, r12, r8, ror #26 - orr r11, r11, r10, ror #8 - and r10, r8, r12, ror #24 - orr r11, r11, r10, ror #22 - and r10, r8, #0x00330000 - orr r11, r11, r10, lsr #14 - and r10, r8, #0x0000cc00 - orr r8, r11, r10, lsr #2 // permute r6 10 times --- - and r10, r9, r1, ror #8 // --- permute r6 10 times - and r11, r12, r9, ror #26 - orr r11, r11, r10, ror #8 - and r10, r9, r12, ror #24 - orr r11, r11, r10, ror #22 - and r10, r9, #0x00330000 - orr r11, r11, r10, lsr #14 - and r10, r9, #0x0000cc00 - orr r9, r11, r10, lsr #2 // permute r6 10 times --- - bx lr - -/******************************************************************************* -* applies P^12 on the tweakey state in a bitsliced manner -*******************************************************************************/ -.align 2 -p12: - str.w r14, [sp] //store r14 on the stack - movw r14, #0xcc33 //r14<- 0x0000cc33 - movw r12, #0x00cc - movt r12, #0x00cc //r12<- 0x00cc00cc - movw r1, #0x3300 - movt r1, #0xcc00 //r1 <- 0xcc003300 - and r10, r14, r6, ror #8 // --- permute r6 12 times - and r11, r12, r6, ror #30 - orr r11, r11, r10 - and r10, r1, r6, ror #16 - orr r11, r11, r10 - movw r10, #0xcccc //r10<- 0x0000cccc - and r10, r6, r10, ror #8 - orr r6, r11, r10, ror #10 // permute r6 12 times --- - and r10, r14, r7, ror #8 // --- permute r7 12 times - and r11, r12, r7, ror #30 - orr r11, r11, r10 - and r10, r1, r7, ror #16 - orr r11, r11, r10 - movw r10, #0xcccc //r10<- 0x0000cccc - and r10, r7, r10, ror #8 - orr r7, r11, r10, ror #10 // permute r7 12 times --- - and r10, r14, r8, ror #8 // --- permute r8 12 times - and r11, r12, r8, ror #30 - orr r11, r11, r10 - and r10, r1, r8, ror #16 - orr r11, r11, r10 - movw r10, #0xcccc //r10<- 0x0000cccc - and r10, r8, r10, ror #8 - orr r8, r11, r10, ror #10 // permute r8 12 times --- - and r10, r14, r9, ror #8 // --- permute r9 12 times - and r11, r12, r9, ror #30 - orr r11, r11, r10 - and r10, r1, r9, ror #16 - ldr.w r14, [sp] - orr r11, r11, r10 - movw r10, #0xcccc //r10<- 0x0000cccc - and r10, r9, r10, ror #8 - orr r9, r11, r10, ror #10 // permute r9 12 times --- - bx lr - -/******************************************************************************* -* applies P^14 on the tweakey state in a bitsliced manner -*******************************************************************************/ -.align 2 -p14: - movw r1, #0xcc00 - movt r1, #0x0033 //r1 <- 0x0033cc00 - movw r12, #0xcc00 - movt r12, #0xcc00 //r12<- 0x33003300 - and r10, r1, r6, ror #24 // --- permute r6 14 times - and r11, r6, #0x00000033 - orr r11, r10, r11, ror #14 - and r10, r6, #0x33000000 - orr r11, r11, r10, ror #30 - and r10, r6, #0x00ff0000 - orr r11, r11, r10, ror #16 - and r10, r6, r12 - orr r6, r11, r10, ror #18 // permute r6 14 times --- - and r10, r1, r7, ror #24 // --- permute r7 14 times - and r11, r7, #0x00000033 - orr r11, r10, r11, ror #14 - and r10, r7, #0x33000000 - orr r11, r11, r10, ror #30 - and r10, r7, #0x00ff0000 - orr r11, r11, r10, ror #16 - and r10, r7, r12 - orr r7, r11, r10, ror #18 // permute r7 14 times --- - and r10, r1, r8, ror #24 // --- permute r8 14 times - and r11, r8, #0x00000033 - orr r11, r10, r11, ror #14 - and r10, r8, #0x33000000 - orr r11, r11, r10, ror #30 - and r10, r8, #0x00ff0000 - orr r11, r11, r10, ror #16 - and r10, r8, r12 - orr r8, r11, r10, ror #18 // permute r8 14 times --- - and r10, r1, r9, ror #24 // --- permute r9 14 times - and r11, r9, #0x00000033 - orr r11, r10, r11, ror #14 - and r10, r9, #0x33000000 - orr r11, r11, r10, ror #30 - and r10, r9, #0x00ff0000 - orr r11, r11, r10, ror #16 - and r10, r9, r12 - orr r9, r11, r10, ror #18 // permute r9 14 times --- - bx lr - -.align 2 -packing: - eor r12, r2, r2, lsr #3 - and r12, r12, r10 - eor r2, r2, r12 - eor r2, r2, r12, lsl #3 //SWAPMOVE(r2, r2, 0x0a0a0a0a, 3) - eor r12, r3, r3, lsr #3 - and r12, r12, r10 - eor r3, r3, r12 - eor r3, r3, r12, lsl #3 //SWAPMOVE(r3, r3, 0x0a0a0a0a, 3) - eor r12, r4, r4, lsr #3 - and r12, r12, r10 - eor r4, r4, r12 - eor r4, r4, r12, lsl #3 //SWAPMOVE(r4, r4, 0x0a0a0a0a, 3) - eor r12, r5, r5, lsr #3 - and r12, r12, r10 - eor r5, r5, r12 - eor r5, r5, r12, lsl #3 //SWAPMOVE(r5, r5, 0x0a0a0a0a, 3) - eor r12, r2, r4, lsr #2 - and r12, r12, r11 - eor r2, r2, r12 - eor r4, r4, r12, lsl #2 //SWAPMOVE(r4, r2, 0x30303030, 2) - eor r12, r2, r3, lsr #4 - and r12, r12, r11, lsr #2 - eor r2, r2, r12 - eor r3, r3, r12, lsl #4 //SWAPMOVE(r3, r2, 0x0c0c0c0c, 4) - eor r12, r2, r5, lsr #6 - and r12, r12, r11, lsr #4 - eor r2, r2, r12 - eor r5, r5, r12, lsl #6 //SWAPMOVE(r5, r2, 0x03030303, 6) - eor r12, r4, r3, lsr #2 - and r12, r12, r11, lsr #2 - eor r4, r4, r12 - eor r3, r3, r12, lsl #2 //SWAPMOVE(r3, r4, 0x0c0c0c0c, 2) - eor r12, r4, r5, lsr #4 - and r12, r12, r11, lsr #4 - eor r4, r4, r12 - eor r5, r5, r12, lsl #4 //SWAPMOVE(r5, r4, 0x03030303, 4) - eor r12, r3, r5, lsr #2 - and r12, r12, r11, lsr #4 - eor r3, r3, r12 - eor r5, r5, r12, lsl #2 //SWAPMOVE(r5, r3, 0x03030303, 2) - bx lr - -/****************************************************************************** -* Compute LFSR2(TK2) ^ LFSR3(TK3) for all rounds. -* Performing both at the same time allows to save some memory accesses. -******************************************************************************/ -@ void tkschedule_lfsr(u32* tk, const u8* tk2, const u8* tk3, const int rounds) -.global tkschedule_lfsr -.type tkschedule_lfsr,%function -.align 2 -tkschedule_lfsr: - push {r0-r12, r14} - ldr.w r3, [r1, #8] //load tk2 (3rd word) - ldr.w r4, [r1, #4] //load tk2 (2nd word) - ldr.w r5, [r1, #12] //load tk2 (4th word) - ldr.w r12, [r1] //load tk2 (1st word) - mov r1, r2 //move tk3 address in r1 - mov r2, r12 //move 1st tk2 word in r2 - movw r10, #0x0a0a - movt r10, #0x0a0a //r10 <- 0x0a0a0a0a - movw r11, #0x3030 - movt r11, #0x3030 //r7 <- 0x30303030 - bl packing //pack tk2 - mov r6, r2 //move tk2 from r2-r5 to r6-r9 - mov r7, r3 //move tk2 from r2-r5 to r6-r9 - mov r8, r4 //move tk2 from r2-r5 to r6-r9 - mov r9, r5 //move tk2 from r2-r5 to r6-r9 - ldr.w r3, [r1, #8] //load tk3 (3rd word) - ldr.w r4, [r1, #4] //load tk3 (2nd word) - ldr.w r5, [r1, #12] //load tk3 (4th) word) - ldr.w r2, [r1] //load tk3 (1st) word) - bl packing //pack tk3 - eor r10, r10, r10, lsl #4 //r10<- 0xaaaaaaaa - ldr.w r1, [sp, #12] //load loop counter in r1 - eor r11, r2, r6 //tk2 ^ tk3 (1st word) - eor r12, r3, r7 //tk2 ^ tk3 (2nd word) - strd r11, r12, [r0], #8 //store in tk - eor r11, r4, r8 //tk2 ^ tk3 (3rd word) - eor r12, r5, r9 //tk2 ^ tk3 (4th word) - strd r11, r12, [r0], #8 //store in tk - loop: - and r12, r8, r10 // --- apply LFSR2 to tk2 - eor r12, r12, r6 - and r14, r10, r12, lsl #1 - and r12, r12, r10 - orr r6, r14, r12, lsr #1 // apply LFSR2 to tk2 --- - and r12, r3, r10 // --- apply LFSR3 to tk3 - eor r12, r5, r12, lsr #1 - and r14, r10, r12, lsl #1 - and r12, r12, r10 - orr r5, r14, r12, lsr #1 // apply LFSR3 to tk3 --- - eor r11, r5, r7 //tk2 ^ tk3 (1st word) - eor r12, r2, r8 //tk2 ^ tk3 (2nd word) - strd r11, r12, [r0], #8 //store in tk - eor r11, r3, r9 //tk2 ^ tk3 (3rd word) - eor r12, r4, r6 //tk2 ^ tk3 (4th word) - strd r11, r12, [r0], #24 //store in tk - and r12, r9, r10 // --- apply LFSR2 to tk2 - eor r12, r12, r7 - and r14, r10, r12, lsl #1 - and r12, r12, r10 - orr r7, r14, r12, lsr #1 // apply LFSR2 to tk2 --- - and r12, r2, r10 // --- apply LFSR3 to tk3 - eor r12, r4, r12, lsr #1 - and r14, r10, r12, lsl #1 - and r12, r12, r10 - orr r4, r14, r12, lsr #1 // apply LFSR3 to tk3 --- - eor r11, r4, r8 //tk2 ^ tk3 (1st word) - eor r12, r5, r9 //tk2 ^ tk3 (2nd word) - strd r11, r12, [r0], #8 //store in tk - eor r11, r2, r6 //tk2 ^ tk3 (3rd word) - eor r12, r3, r7 //tk2 ^ tk3 (4th word) - strd r11, r12, [r0], #24 //store in tk - and r12, r6, r10 // --- apply LFSR2 to tk2 - eor r12, r12, r8 - and r14, r10, r12, lsl #1 - and r12, r12, r10 - orr r8, r14, r12, lsr #1 // apply LFSR2 to tk2 --- - and r12, r5, r10 // --- apply LFSR3 to tk3 - eor r12, r3, r12, lsr #1 - and r14, r10, r12, lsl #1 - and r12, r12, r10 - orr r3, r14, r12, lsr #1 // apply LFSR3 to tk3 --- - eor r11, r3, r9 //tk2 ^ tk3 (1st word) - eor r12, r4, r6 //tk2 ^ tk3 (2nd word) - strd r11, r12, [r0], #8 //store in tk - eor r11, r5, r7 //tk2 ^ tk3 (3rd word) - eor r12, r2, r8 //tk2 ^ tk3 (4th word) - strd r11, r12, [r0], #24 //store in tk - and r12, r7, r10 // --- apply LFSR2 to tk2 - eor r12, r12, r9 - and r14, r10, r12, lsl #1 - and r12, r12, r10 - orr r9, r14, r12, lsr #1 // apply LFSR2 to tk2 --- - and r12, r4, r10 // --- apply LFSR3 to tk3 - eor r12, r2, r12, lsr #1 - and r14, r10, r12, lsl #1 - and r12, r12, r10 - orr r2, r14, r12, lsr #1 // apply LFSR3 to tk3 --- - eor r11, r2, r6 //tk2 ^ tk3 (1st word) - eor r12, r3, r7 //tk2 ^ tk3 (2nd word) - strd r11, r12, [r0], #8 //store in tk - eor r11, r4, r8 //tk2 ^ tk3 (3rd word) - eor r12, r5, r9 //tk2 ^ tk3 (4th word) - strd r11, r12, [r0], #24 //store in tk - subs.w r1, r1, #8 //decrease loop counter by 8 - bne loop - pop {r0-r12, r14} - bx lr - -@ void tkschedule_perm(u32* tk) -.global tkschedule_perm -.type tkschedule_perm,%function -.align 2 -tkschedule_perm: - push {r0-r12, lr} - sub.w sp, #4 //to store r14 in subroutines - ldm r0, {r6-r9} //load tk - movw r10, #0xf0f0 - movt r10, #0xf0f0 //r10<- 0xf0f0f0f0 - and r6, r6, r10 //tk &= 0xf0f0f0f0 (1st word) - and r7, r7, r10 //tk &= 0xf0f0f0f0 (2nd word) - and r8, r8, r10 //tk &= 0xf0f0f0f0 (3rd word) - and r9, r9, r10 //tk &= 0xf0f0f0f0 (4th word) - eor r8, r8, #0x00000004 //add rconst - eor r9, r9, #0x00000040 //add rconst - mvn r9, r9 //to remove a NOT in sbox calculations - strd r8, r9, [r0], #8 //store 1st half tk for 1st round - strd r6, r7, [r0], #8 //store 2nd half tk for 1st round - ldm r0, {r6-r9} //load tk - bl p2 //apply the permutation twice - movw r10, #0xc3c3 - movt r10, #0xc3c3 //r10<- 0xc3c3c3c3 - and r11, r10, r6, ror #26 //ror and mask to match fixslicing - and r12, r10, r7, ror #26 //ror and mask to match fixslicing - strd r11, r12, [r0], #8 //store 1st half tk for 2nd round - and r11, r10, r8, ror #26 //ror and mask to match fixslicing - and r12, r10, r9, ror #26 //ror and mask to match fixslicing - eor r11, r11, #0x10000000 //add rconst - eor r11, r11, #0x00000100 //add rconst - eor r12, r12, #0x00000100 //add rconst - mvn r12, r12 //to save a NOT in sbox calculations - strd r11, r12, [r0], #8 //store 2nd half tk for 2nd round - and r10, r10, r10, lsr #6 //r10<- 0x03030303 - and r11, r10, r6, ror #28 //--- ror and masks to match fixslicing - and r6, r6, r10, lsl #6 - orr r6, r11, r6, ror #12 - and r11, r10, r7, ror #28 - and r7, r7, r10, lsl #6 - orr r7, r11, r7, ror #12 - and r11, r10, r8, ror #28 - and r8, r8, r10, lsl #6 - orr r8, r11, r8, ror #12 - and r11, r10, r9, ror #28 - and r9, r9, r10, lsl #6 - orr r9, r11, r9, ror #12 //ror and masks to match fixslicing --- - eor r7, r7, #0x04000000 //add rconst - eor r8, r8, #0x44000000 //add rconst - eor r9, r9, #0x04000000 //add rconst - mvn r9, r9 //to save a NOT in sbox calculations - strd r8, r9, [r0], #8 //store 1st half tk for 3rd round - strd r6, r7, [r0], #8 //store 2nd half tk for 3rd round - ldm r0, {r6-r9} //load tk - bl p4 //apply the permutation 4 times - movw r10, #0xf0f0 - movt r10, #0xf0f0 //r10<- 0xf0f0f0f0 - and r11, r10, r6, ror #16 //ror and mask to match fixslicing - and r12, r10, r7, ror #16 //ror and mask to match fixslicing - eor r11, r11, #0x00400000 //add rconst - eor r12, r12, #0x00400000 //add rconst - strd r11, r12, [r0, #24] //store 2nd half tk for 5th round - and r11, r10, r8, ror #16 //ror and mask to match fixslicing - and r12, r10, r9, ror #16 //ror and mask to match fixslicing - eor r11, r11, #0x00440000 //add rconst - eor r12, r12, #0x00500000 //add rconst - mvn r12, r12 //to save a NOT in sbox calculations - strd r11, r12, [r0, #16] //store 1st half tk for 5th round - and r10, r10, r10, lsr #2 //r10<- 0x30303030 - and r11, r10, r6, ror #14 //--- ror and masks to match fixslicing - and r6, r6, r10, ror #4 - orr r6, r11, r6, ror #6 - and r11, r10, r7, ror #14 - and r7, r7, r10, ror #4 - orr r7, r11, r7, ror #6 - and r11, r10, r8, ror #14 - and r8, r8, r10, ror #4 - orr r8, r11, r8, ror #6 - and r11, r10, r9, ror #14 - and r9, r9, r10, ror #4 - orr r9, r11, r9, ror #6 //ror and masks to match fixslicing --- - eor r6, r6, #0x00100000 //add rconst - eor r7, r7, #0x00100000 //add rconst - eor r8, r8, #0x00100000 //add rconst - eor r8, r8, #0x00000001 //add rconst - eor r9, r9, #0x00100000 //add rconst - mvn r9, r9 //to save a NOT in sbox calculations - strd r6, r7, [r0], #8 //store 1st half tk for 4th round - strd r8, r9, [r0], #24 //store 2nd half tk for 4th round - ldm r0, {r6-r9} //load tk - bl p6 //apply the permutation 6 times - movw r10, #0xc3c3 - movt r10, #0xc3c3 //r10<- 0xc3c3c3c3 - and r11, r10, r6, ror #10 //ror and mask to match fixslicing - and r12, r10, r7, ror #10 //ror and mask to match fixslicing - eor r11, r11, #0x01000000 //add rconst - eor r12, r12, #0x01000000 //add rconst - strd r11, r12, [r0], #8 //store 1st half tk for 6th round - and r11, r10, r8, ror #10 //ror and mask to match fixslicing - and r12, r10, r9, ror #10 //ror and mask to match fixslicing - eor r11, r11, #0x01400000 //add rconst - eor r11, r11, #0x00001000 //add rconst - eor r12, r12, #0x00400000 //add rconst - mvn r12, r12 //to save a NOT in sbox calculations - strd r11, r12, [r0], #8 //store 2nd half tk for 6th round - and r10, r10, r10, lsr #6 //r10<- 0x03030303 - and r11, r10, r6, ror #12 //--- ror and masks to match fixslicing - and r6, r6, r10, lsl #6 - orr r6, r11, r6, ror #28 - and r11, r10, r7, ror #12 - and r7, r7, r10, lsl #6 - orr r7, r11, r7, ror #28 - and r11, r10, r8, ror #12 - and r8, r8, r10, lsl #6 - orr r8, r11, r8, ror #28 - and r11, r10, r9, ror #12 - and r9, r9, r10, lsl #6 - orr r9, r11, r9, ror #28 //ror and masks to match fixslicing --- - eor r6, r6, #0x00000400 //add rconst - eor r7, r7, #0x00000400 //add rconst - eor r8, r8, #0x01000000 //add rconst - eor r8, r8, #0x00004000 //add rconst - eor r9, r9, #0x01000000 //add rconst - eor r9, r9, #0x00000400 //add rconst - mvn r9, r9 //to save a NOT in sbox calculations - strd r8, r9, [r0], #8 //store 1st half tk for 7th round - strd r6, r7, [r0], #8 //store 2nd half tk for 7th round - ldm r0, {r6-r9} //load tk - bl p8 //apply the permutation 8 times - movw r10, #0xf0f0 - movt r10, #0xf0f0 //r10<- 0xf0f0f0f0 - and r11, r10, r6 //ror and mask to match fixslicing - and r12, r10, r7 //ror and mask to match fixslicing - eor r12, r12, #0x00000040 //add rconst - strd r11, r12, [r0, #24] //store 2nd half tk for 9th round - and r11, r10, r8 //ror and mask to match fixslicing - and r12, r10, r9 //ror and mask to match fixslicing - eor r11, r11, #0x00000054 //add rconst - eor r12, r12, #0x00000050 //add rconst - mvn r12, r12 //to save a NOT in sbox calculations - strd r11, r12, [r0, #16] //store 1st half tk for 9th round - and r10, r10, r10, lsr #2 //r10<- 0x30303030 - and r11, r10, r6, ror #30 //--- ror and masks to match fixslicing - and r6, r6, r10, ror #4 - orr r6, r11, r6, ror #22 - and r11, r10, r7, ror #30 - and r7, r7, r10, ror #4 - orr r7, r11, r7, ror #22 - and r11, r10, r8, ror #30 - and r8, r8, r10, ror #4 - orr r8, r11, r8, ror #22 - and r11, r10, r9, ror #30 - and r9, r9, r10, ror #4 - orr r9, r11, r9, ror #22 //ror and masks to match fixslicing --- - eor r6 ,r6, #0x00000010 - eor r8, r8, #0x00010000 - eor r8, r8, #0x00000410 - eor r9, r9, #0x00000410 - mvn r9, r9 //to save a NOT in sbox calculations - strd r6, r7, [r0], #8 //store 1st half tk for 8th round - strd r8, r9, [r0], #24 //store 2nd half tk for 8th round - ldm r0, {r6-r9} //load tk - bl p10 //apply the permutation 10 times - movw r10, #0xc3c3 - movt r10, #0xc3c3 //r10<- 0xc3c3c3c3 - and r11, r10, r6, ror #26 //ror and mask to match fixslicing - and r12, r10, r7, ror #26 //ror and mask to match fixslicing - eor r11, r11, #0x00000100 //add rconst - eor r12, r12, #0x00000100 //add rconst - strd r11, r12, [r0], #8 //store 1st half tk for 10th round - and r11, r10, r8, ror #26 //ror and mask to match fixslicing - and r12, r10, r9, ror #26 //ror and mask to match fixslicing - eor r11, r11, #0x10000000 //add rconst - eor r11, r11, #0x00000140 //add rconst - eor r12, r12, #0x00000100 //add rconst - mvn r12, r12 //to save a NOT in sbox calculations - strd r11, r12, [r0], #8 //store 2nd half tk for 10th round - and r10, r10, r10, lsr #6 //r10<- 0x03030303 - and r11, r10, r6, ror #28 //--- ror and masks to match fixslicing - and r6, r6, r10, lsl #6 - orr r6, r11, r6, ror #12 - and r11, r10, r7, ror #28 - and r7, r7, r10, lsl #6 - orr r7, r11, r7, ror #12 - and r11, r10, r8, ror #28 - and r8, r8, r10, lsl #6 - orr r8, r11, r8, ror #12 - and r11, r10, r9, ror #28 - and r9, r9, r10, lsl #6 - orr r9, r11, r9, ror #12 //ror and masks to match fixslicing --- - eor r6, r6, #0x04000000 //add rconst - eor r7, r7, #0x04000000 //add rconst - eor r8, r8, #0x44000000 //add rconst - eor r9, r9, #0x00000100 //add rconst - mvn r9, r9 //to save a NOT in sbox calculations - strd r8, r9, [r0], #8 //store 1st half tk for 11th round - strd r6, r7, [r0], #8 //store 2nd half tk for 11th round - ldm r0, {r6-r9} //load tk - bl p12 //apply the permutation 4 times - movw r10, #0xf0f0 - movt r10, #0xf0f0 //r10<- 0xf0f0f0f0 - and r11, r10, r6, ror #16 //ror and mask to match fixslicing - and r12, r10, r7, ror #16 //ror and mask to match fixslicing - eor r11, r11, #0x00400000 //add rconst - strd r11, r12, [r0, #24] //store 2nd half tk for 13th round - and r11, r10, r8, ror #16 //ror and mask to match fixslicing - and r12, r10, r9, ror #16 //ror and mask to match fixslicing - eor r11, r11, #0x00140000 //add rconst - eor r12, r12, #0x00500000 //add rconst - mvn r12, r12 //to save a NOT in sbox calculations - strd r11, r12, [r0, #16] //store 1st half tk for 13th round - and r10, r10, r10, lsr #2 //r10<- 0x30303030 - and r11, r10, r6, ror #14 //--- ror and masks to match fixslicing - and r6, r6, r10, ror #4 - orr r6, r11, r6, ror #6 - and r11, r10, r7, ror #14 - and r7, r7, r10, ror #4 - orr r7, r11, r7, ror #6 - and r11, r10, r8, ror #14 - and r8, r8, r10, ror #4 - orr r8, r11, r8, ror #6 - and r11, r10, r9, ror #14 - and r9, r9, r10, ror #4 - orr r9, r11, r9, ror #6 //ror and masks to match fixslicing --- - eor r6, r6, #0x00100000 //add rconst - eor r7, r7, #0x00100000 //add rconst - eor r8, r8, #0x04000000 //add rconst - eor r8, r8, #0x00000001 //add rconst - eor r9, r9, #0x04000000 //add rconst - mvn r9, r9 //to save a NOT in sbox calculations - strd r6, r7, [r0], #8 //store 1st half tk for 12th round - strd r8, r9, [r0], #24 //store 2nd half tk for 12th round - ldm r0, {r6-r9} //load tk - bl p14 //apply the permutation 6 times - movw r10, #0xc3c3 - movt r10, #0xc3c3 //r10<- 0xc3c3c3c3 - and r11, r10, r6, ror #10 //ror and mask to match fixslicing - and r12, r10, r7, ror #10 //ror and mask to match fixslicing - strd r11, r12, [r0], #8 //store 1st half tk for 14th round - and r11, r10, r8, ror #10 //ror and mask to match fixslicing - and r12, r10, r9, ror #10 //ror and mask to match fixslicing - eor r11, r11, #0x01400000 //add rconst - eor r11, r11, #0x00001000 //add rconst - eor r12, r12, #0x01400000 //add rconst - mvn r12, r12 //to save a NOT in sbox calculations - strd r11, r12, [r0], #8 //store 2nd half tk for 14th round - and r10, r10, r10, lsr #6 //r10<- 0x03030303 - and r11, r10, r6, ror #12 //--- ror and masks to match fixslicing - and r6, r6, r10, lsl #6 - orr r6, r11, r6, ror #28 - and r11, r10, r7, ror #12 - and r7, r7, r10, lsl #6 - orr r7, r11, r7, ror #28 - and r11, r10, r8, ror #12 - and r8, r8, r10, lsl #6 - orr r8, r11, r8, ror #28 - and r11, r10, r9, ror #12 - and r9, r9, r10, lsl #6 - orr r9, r11, r9, ror #28 //ror and masks to match fixslicing --- - eor r7, r7, #0x00000400 //add rconst - eor r8, r8, #0x01000000 //add rconst - eor r8, r8, #0x00004400 //add rconst - eor r9, r9, #0x00000400 //add const - mvn r9, r9 //to save a NOT in sbox calculations - strd r8, r9, [r0], #8 //store 1st half tk for 15th round - strd r6, r7, [r0], #8 //store 2nd half tk for 15th round - ldm r0, {r6-r9} //load tk - movw r10, #0xf0f0 - movt r10, #0xf0f0 //r10<- 0xf0f0f0f0 - and r11, r10, r6 //ror and mask to match fixslicing - and r12, r10, r7 //ror and mask to match fixslicing - eor r11, r11, #0x00000040 //add rconst - eor r12, r12, #0x00000040 //add rconst - strd r11, r12, [r0, #24] //store 2nd half tk for 17th round - and r11, r10, r8 //ror and mask to match fixslicing - and r12, r10, r9 //ror and mask to match fixslicing - eor r11, r11, #0x00000004 //add rconst - eor r12, r12, #0x00000050 //add rconst - mvn r12, r12 //to save a NOT in sbox calculations - strd r11, r12, [r0, #16] //store 1st half tk for 17th round - and r10, r10, r10, lsr #2 //r10<- 0x30303030 - and r11, r10, r6, ror #30 //--- ror and masks to match fixslicing - and r6, r6, r10, ror #4 - orr r6, r11, r6, ror #22 - and r11, r10, r7, ror #30 - and r7, r7, r10, ror #4 - orr r7, r11, r7, ror #22 - and r11, r10, r8, ror #30 - and r8, r8, r10, ror #4 - orr r8, r11, r8, ror #22 - and r11, r10, r9, ror #30 - and r9, r9, r10, ror #4 - orr r9, r11, r9, ror #22 //ror and masks to match fixslicing --- - eor r6 ,r6, #0x00000010 - eor r7 ,r7, #0x00000010 - eor r8, r8, #0x00000010 - eor r8, r8, #0x00010000 - mvn r9, r9 //to save a NOT in sbox calculations - strd r6, r7, [r0], #8 //store 1st half tk for 16th round - strd r8, r9, [r0], #24 //store 2nd half tk for 16th round - ldm r0, {r6-r9} //load tk - bl p2 //apply the permutation twice - movw r10, #0xc3c3 - movt r10, #0xc3c3 //r10<- 0xc3c3c3c3 - and r11, r10, r6, ror #26 //ror and mask to match fixslicing - and r12, r10, r7, ror #26 //ror and mask to match fixslicing - eor r11, r11, #0x00000100 //add rconst - strd r11, r12, [r0], #8 //store 1st half tk for 18th round - and r11, r10, r8, ror #26 //ror and mask to match fixslicing - and r12, r10, r9, ror #26 //ror and mask to match fixslicing - eor r11, r11, #0x10000000 //add rconst - eor r11, r11, #0x00000140 //add rconst - eor r12, r12, #0x00000040 //add rconst - mvn r12, r12 //to save a NOT in sbox calculations - strd r11, r12, [r0], #8 //store 2nd half tk for 18th round - and r10, r10, r10, lsr #6 //r10<- 0x03030303 - and r11, r10, r6, ror #28 //--- ror and masks to match fixslicing - and r6, r6, r10, lsl #6 - orr r6, r11, r6, ror #12 - and r11, r10, r7, ror #28 - and r7, r7, r10, lsl #6 - orr r7, r11, r7, ror #12 - and r11, r10, r8, ror #28 - and r8, r8, r10, lsl #6 - orr r8, r11, r8, ror #12 - and r11, r10, r9, ror #28 - and r9, r9, r10, lsl #6 - orr r9, r11, r9, ror #12 //ror and masks to match fixslicing --- - eor r7, r7, #0x04000000 //add rconst - eor r8, r8, #0x40000000 //add rconst - eor r8, r8, #0x00000100 //add rconst - eor r9, r9, #0x04000000 //add rconst - eor r9, r9, #0x00000100 //add rconst - mvn r9, r9 //to save a NOT in sbox calculations - strd r8, r9, [r0], #8 //store 1st half tk for 19th round - strd r6, r7, [r0], #8 //store 2nd half tk for 19th round - ldm r0, {r6-r9} //load tk - bl p4 //apply the permutation 4 times - movw r10, #0xf0f0 - movt r10, #0xf0f0 //r10<- 0xf0f0f0f0 - and r11, r10, r6, ror #16 //ror and mask to match fixslicing - and r12, r10, r7, ror #16 //ror and mask to match fixslicing - eor r12, r12, #0x00400000 //add rconst - strd r11, r12, [r0, #24] //store 2nd half tk for 21th round - and r11, r10, r8, ror #16 //ror and mask to match fixslicing - and r12, r10, r9, ror #16 //ror and mask to match fixslicing - eor r11, r11, #0x00440000 //add rconst - eor r12, r12, #0x00100000 //add rconst - mvn r12, r12 //to save a NOT in sbox calculations - strd r11, r12, [r0, #16] //store 1st half tk for 21th round - and r10, r10, r10, lsr #2 //r10<- 0x30303030 - and r11, r10, r6, ror #14 //--- ror and masks to match fixslicing - and r6, r6, r10, ror #4 - orr r6, r11, r6, ror #6 - and r11, r10, r7, ror #14 - and r7, r7, r10, ror #4 - orr r7, r11, r7, ror #6 - and r11, r10, r8, ror #14 - and r8, r8, r10, ror #4 - orr r8, r11, r8, ror #6 - and r11, r10, r9, ror #14 - and r9, r9, r10, ror #4 - orr r9, r11, r9, ror #6 //ror and masks to match fixslicing --- - eor r6, r6, #0x00100000 //add rconst - eor r8, r8, #0x04100000 //add rconst - eor r8, r8, #0x00000001 //add rconst - eor r9, r9, #0x00100000 //add rconst - mvn r9, r9 //to save a NOT in sbox calculations - strd r6, r7, [r0], #8 //store 1st half tk for 20th round - strd r8, r9, [r0], #24 //store 2nd half tk for 20th round - ldm r0, {r6-r9} //load tk - bl p6 //apply the permutation 6 times - movw r10, #0xc3c3 - movt r10, #0xc3c3 //r10<- 0xc3c3c3c3 - and r11, r10, r6, ror #10 //ror and mask to match fixslicing - and r12, r10, r7, ror #10 //ror and mask to match fixslicing - eor r11, r11, #0x01000000 //add rconst - eor r12, r12, #0x01000000 //add rconst - strd r11, r12, [r0], #8 //store 1st half tk for 22th round - and r11, r10, r8, ror #10 //ror and mask to match fixslicing - and r12, r10, r9, ror #10 //ror and mask to match fixslicing - eor r11, r11, #0x00400000 //add rconst - eor r11, r11, #0x00001000 //add rconst - mvn r12, r12 //to save a NOT in sbox calculations - strd r11, r12, [r0], #8 //store 2nd half tk for 22th round - and r10, r10, r10, lsr #6 //r10<- 0x03030303 - and r11, r10, r6, ror #12 //--- ror and masks to match fixslicing - and r6, r6, r10, lsl #6 - orr r6, r11, r6, ror #28 - and r11, r10, r7, ror #12 - and r7, r7, r10, lsl #6 - orr r7, r11, r7, ror #28 - and r11, r10, r8, ror #12 - and r8, r8, r10, lsl #6 - orr r8, r11, r8, ror #28 - and r11, r10, r9, ror #12 - and r9, r9, r10, lsl #6 - orr r9, r11, r9, ror #28 //ror and masks to match fixslicing --- - eor r6, r6, #0x00000400 //add rconst - eor r8, r8, #0x00004000 //add rconst - eor r9, r9, #0x01000000 //add rconst - mvn r9, r9 //to save a NOT in sbox calculations - strd r8, r9, [r0], #8 //store 1st half tk for 23th round - strd r6, r7, [r0], #8 //store 2nd half tk for 23th round - ldm r0, {r6-r9} //load tk - bl p8 //apply the permutation 8 times - movw r10, #0xf0f0 - movt r10, #0xf0f0 //r10<- 0xf0f0f0f0 - and r11, r10, r6 //ror and mask to match fixslicing - and r12, r10, r7 //ror and mask to match fixslicing - strd r11, r12, [r0, #24] //store 2nd half tk for 25th round - and r11, r10, r8 //ror and mask to match fixslicing - and r12, r10, r9 //ror and mask to match fixslicing - eor r11, r11, #0x00000014 //add rconst - eor r12, r12, #0x00000040 //add rconst - mvn r12, r12 //to save a NOT in sbox calculations - strd r11, r12, [r0, #16] //store 1st half tk for 25th round - and r10, r10, r10, lsr #2 //r10<- 0x30303030 - and r11, r10, r6, ror #30 //--- ror and masks to match fixslicing - and r6, r6, r10, ror #4 - orr r6, r11, r6, ror #22 - and r11, r10, r7, ror #30 - and r7, r7, r10, ror #4 - orr r7, r11, r7, ror #22 - and r11, r10, r8, ror #30 - and r8, r8, r10, ror #4 - orr r8, r11, r8, ror #22 - and r11, r10, r9, ror #30 - and r9, r9, r10, ror #4 - orr r9, r11, r9, ror #22 //ror and masks to match fixslicing --- - eor r8, r8, #0x00010400 - eor r9, r9, #0x00000400 - mvn r9, r9 //to save a NOT in sbox calculations - strd r6, r7, [r0], #8 //store 1st half tk for 24th round - strd r8, r9, [r0], #24 //store 2nd half tk for 24th round - ldm r0, {r6-r9} //load tk - bl p10 //apply the permutation 10 times - movw r10, #0xc3c3 - movt r10, #0xc3c3 //r10<- 0xc3c3c3c3 - and r11, r10, r6, ror #26 //ror and mask to match fixslicing - and r12, r10, r7, ror #26 //ror and mask to match fixslicing - strd r11, r12, [r0], #8 //store 1st half tk for 26th round - and r11, r10, r8, ror #26 //ror and mask to match fixslicing - and r12, r10, r9, ror #26 //ror and mask to match fixslicing - eor r11, r11, #0x10000000 //add rconst - eor r11, r11, #0x00000100 //add rconst - mvn r12, r12 //to save a NOT in sbox calculations - strd r11, r12, [r0], #8 //store 2nd half tk for 26th round - and r10, r10, r10, lsr #6 //r10<- 0x03030303 - and r11, r10, r6, ror #28 //--- ror and masks to match fixslicing - and r6, r6, r10, lsl #6 - orr r6, r11, r6, ror #12 - and r11, r10, r7, ror #28 - and r7, r7, r10, lsl #6 - orr r7, r11, r7, ror #12 - and r11, r10, r8, ror #28 - and r8, r8, r10, lsl #6 - orr r8, r11, r8, ror #12 - and r11, r10, r9, ror #28 - and r9, r9, r10, lsl #6 - orr r9, r11, r9, ror #12 //ror and masks to match fixslicing --- - eor r7, r7, #0x04000000 //add rconst - eor r8, r8, #0x40000000 //add rconst - eor r9, r9, #0x04000000 //add rconst - mvn r9, r9 //to save a NOT in sbox calculations - strd r8, r9, [r0], #8 //store 1st half tk for 27th round - strd r6, r7, [r0], #8 //store 2nd half tk for 27th round - ldm r0, {r6-r9} //load tk - bl p12 //apply the permutation 4 times - movw r10, #0xf0f0 - movt r10, #0xf0f0 //r10<- 0xf0f0f0f0 - and r11, r10, r6, ror #16 //ror and mask to match fixslicing - and r12, r10, r7, ror #16 //ror and mask to match fixslicing - eor r12, r12, #0x00400000 //add rconst - strd r11, r12, [r0, #24] //store 2nd half tk for 29th round - and r11, r10, r8, ror #16 //ror and mask to match fixslicing - and r12, r10, r9, ror #16 //ror and mask to match fixslicing - eor r11, r11, #0x00440000 //add rconst - eor r12, r12, #0x00500000 //add rconst - mvn r12, r12 //to save a NOT in sbox calculations - strd r11, r12, [r0, #16] //store 1st half tk for 29th round - and r10, r10, r10, lsr #2 //r10<- 0x30303030 - and r11, r10, r6, ror #14 //--- ror and masks to match fixslicing - and r6, r6, r10, ror #4 - orr r6, r11, r6, ror #6 - and r11, r10, r7, ror #14 - and r7, r7, r10, ror #4 - orr r7, r11, r7, ror #6 - and r11, r10, r8, ror #14 - and r8, r8, r10, ror #4 - orr r8, r11, r8, ror #6 - and r11, r10, r9, ror #14 - and r9, r9, r10, ror #4 - orr r9, r11, r9, ror #6 //ror and masks to match fixslicing --- - eor r6, r6, #0x00100000 //add rconst - eor r8, r8, #0x00100000 //add rconst - eor r8, r8, #0x00000001 //add rconst - eor r9, r9, #0x00100000 //add rconst - mvn r9, r9 //to save a NOT in sbox calculations - strd r6, r7, [r0], #8 //store 1st half tk for 28th round - strd r8, r9, [r0], #24 //store 2nd half tk for 28th round - ldm r0, {r6-r9} //load tk - bl p14 //apply the permutation 6 times - movw r10, #0xc3c3 - movt r10, #0xc3c3 //r10<- 0xc3c3c3c3 - and r11, r10, r6, ror #10 //ror and mask to match fixslicing - and r12, r10, r7, ror #10 //ror and mask to match fixslicing - eor r11, r11, #0x01000000 //add rconst - eor r12, r12, #0x01000000 //add rconst - strd r11, r12, [r0], #8 //store 1st half tk for 30th round - and r11, r10, r8, ror #10 //ror and mask to match fixslicing - and r12, r10, r9, ror #10 //ror and mask to match fixslicing - eor r11, r11, #0x01400000 //add rconst - eor r11, r11, #0x00001000 //add rconst - mvn r12, r12 //to save a NOT in sbox calculations - strd r11, r12, [r0], #8 //store 2nd half tk for 30th round - and r10, r10, r10, lsr #6 //r10<- 0x03030303 - and r11, r10, r6, ror #12 //--- ror and masks to match fixslicing - and r6, r6, r10, lsl #6 - orr r6, r11, r6, ror #28 - and r11, r10, r7, ror #12 - and r7, r7, r10, lsl #6 - orr r7, r11, r7, ror #28 - and r11, r10, r8, ror #12 - and r8, r8, r10, lsl #6 - orr r8, r11, r8, ror #28 - and r11, r10, r9, ror #12 - and r9, r9, r10, lsl #6 - orr r9, r11, r9, ror #28 //ror and masks to match fixslicing --- - eor r6, r6, #0x00000400 //add rconst - eor r7, r7, #0x00000400 //add rconst - eor r8, r8, #0x00004000 //add rconst - eor r9, r9, #0x01000000 //add rconst - mvn r9, r9 //to save a NOT in sbox calculations - strd r8, r9, [r0], #8 //store 1st half tk for 31th round - strd r6, r7, [r0], #8 //store 2nd half tk for 31th round - ldm r0, {r6-r9} //load tk - movw r10, #0xf0f0 - movt r10, #0xf0f0 //r10<- 0xf0f0f0f0 - and r11, r10, r6 //ror and mask to match fixslicing - and r12, r10, r7 //ror and mask to match fixslicing - strd r11, r12, [r0, #24] //store 2nd half tk for 33th round - and r11, r10, r8 //ror and mask to match fixslicing - and r12, r10, r9 //ror and mask to match fixslicing - eor r11, r11, #0x00000014 //add rconst - eor r12, r12, #0x00000050 //add rconst - mvn r12, r12 //to save a NOT in sbox calculations - strd r11, r12, [r0, #16] //store 1st half tk for 33th round - and r10, r10, r10, lsr #2 //r10<- 0x30303030 - and r11, r10, r6, ror #30 //--- ror and masks to match fixslicing - and r6, r6, r10, ror #4 - orr r6, r11, r6, ror #22 - and r11, r10, r7, ror #30 - and r7, r7, r10, ror #4 - orr r7, r11, r7, ror #22 - and r11, r10, r8, ror #30 - and r8, r8, r10, ror #4 - orr r8, r11, r8, ror #22 - and r11, r10, r9, ror #30 - and r9, r9, r10, ror #4 - orr r9, r11, r9, ror #22 //ror and masks to match fixslicing --- - eor r6 ,r6, #0x00000010 - eor r8, r8, #0x00010400 - eor r9, r9, #0x00000400 - mvn r9, r9 //to save a NOT in sbox calculations - strd r6, r7, [r0], #8 //store 1st half tk for 32th round - strd r8, r9, [r0], #24 //store 2nd half tk for 32th round - ldm r0, {r6-r9} //load tk - bl p2 //apply the permutation twice - movw r10, #0xc3c3 - movt r10, #0xc3c3 //r10<- 0xc3c3c3c3 - and r11, r10, r6, ror #26 //ror and mask to match fixslicing - and r12, r10, r7, ror #26 //ror and mask to match fixslicing - strd r11, r12, [r0], #8 //store 1st half tk for 34th round - and r11, r10, r8, ror #26 //ror and mask to match fixslicing - and r12, r10, r9, ror #26 //ror and mask to match fixslicing - eor r11, r11, #0x10000000 //add rconst - eor r11, r11, #0x00000140 //add rconst - eor r12, r12, #0x00000100 //add rconst - mvn r12, r12 //to save a NOT in sbox calculations - strd r11, r12, [r0], #8 //store 2nd half tk for 34th round - and r10, r10, r10, lsr #6 //r10<- 0x03030303 - and r11, r10, r6, ror #28 //--- ror and masks to match fixslicing - and r6, r6, r10, lsl #6 - orr r6, r11, r6, ror #12 - and r11, r10, r7, ror #28 - and r7, r7, r10, lsl #6 - orr r7, r11, r7, ror #12 - and r11, r10, r8, ror #28 - and r8, r8, r10, lsl #6 - orr r8, r11, r8, ror #12 - and r11, r10, r9, ror #28 - and r9, r9, r10, lsl #6 - orr r9, r11, r9, ror #12 //ror and masks to match fixslicing --- - eor r7, r7, #0x04000000 //add rconst - eor r8, r8, #0x44000000 //add rconst - mvn r9, r9 //to save a NOT in sbox calculations - strd r8, r9, [r0], #8 //store 1st half tk for 35th round - strd r6, r7, [r0], #8 //store 2nd half tk for 35th round - ldm r0, {r6-r9} //load tk - bl p4 //apply the permutation 4 times - movw r10, #0xf0f0 - movt r10, #0xf0f0 //r10<- 0xf0f0f0f0 - and r11, r10, r6, ror #16 //ror and mask to match fixslicing - and r12, r10, r7, ror #16 //ror and mask to match fixslicing - eor r11, r11, #0x00400000 //add rconst - strd r11, r12, [r0, #24] //store 2nd half tk for 37th round - and r11, r10, r8, ror #16 //ror and mask to match fixslicing - and r12, r10, r9, ror #16 //ror and mask to match fixslicing - eor r11, r11, #0x00440000 //add rconst - eor r12, r12, #0x00500000 //add rconst - mvn r12, r12 //to save a NOT in sbox calculations - strd r11, r12, [r0, #16] //store 1st half tk for 37th round - and r10, r10, r10, lsr #2 //r10<- 0x30303030 - and r11, r10, r6, ror #14 //--- ror and masks to match fixslicing - and r6, r6, r10, ror #4 - orr r6, r11, r6, ror #6 - and r11, r10, r7, ror #14 - and r7, r7, r10, ror #4 - orr r7, r11, r7, ror #6 - and r11, r10, r8, ror #14 - and r8, r8, r10, ror #4 - orr r8, r11, r8, ror #6 - and r11, r10, r9, ror #14 - and r9, r9, r10, ror #4 - orr r9, r11, r9, ror #6 //ror and masks to match fixslicing --- - eor r6, r6, #0x00100000 //add rconst - eor r7, r7, #0x00100000 //add rconst - eor r8, r8, #0x00000001 //add rconst - eor r9, r9, #0x00100000 //add rconst - mvn r9, r9 //to save a NOT in sbox calculations - strd r6, r7, [r0], #8 //store 1st half tk for 36th round - strd r8, r9, [r0], #24 //store 2nd half tk for 36th round - ldm r0, {r6-r9} //load tk - bl p6 //apply the permutation 6 times - movw r10, #0xc3c3 - movt r10, #0xc3c3 //r10<- 0xc3c3c3c3 - and r11, r10, r6, ror #10 //ror and mask to match fixslicing - and r12, r10, r7, ror #10 //ror and mask to match fixslicing - eor r12, r12, #0x01000000 //add rconst - strd r11, r12, [r0], #8 //store 1st half tk for 38th round - and r11, r10, r8, ror #10 //ror and mask to match fixslicing - and r12, r10, r9, ror #10 //ror and mask to match fixslicing - eor r11, r11, #0x01400000 //add rconst - eor r11, r11, #0x00001000 //add rconst - eor r12, r12, #0x00400000 //add rconst - mvn r12, r12 //to save a NOT in sbox calculations - strd r11, r12, [r0], #8 //store 2nd half tk for 38th round - and r10, r10, r10, lsr #6 //r10<- 0x03030303 - and r11, r10, r6, ror #12 //--- ror and masks to match fixslicing - and r6, r6, r10, lsl #6 - orr r6, r11, r6, ror #28 - and r11, r10, r7, ror #12 - and r7, r7, r10, lsl #6 - orr r7, r11, r7, ror #28 - and r11, r10, r8, ror #12 - and r8, r8, r10, lsl #6 - orr r8, r11, r8, ror #28 - and r11, r10, r9, ror #12 - and r9, r9, r10, lsl #6 - orr r9, r11, r9, ror #28 //ror and masks to match fixslicing --- - eor r6, r6, #0x00000400 //add rconst - eor r7, r7, #0x00000400 //add rconst - eor r8, r8, #0x01000000 - eor r8, r8, #0x00004000 //add rconst - eor r9, r9, #0x00000400 //add rconst - mvn r9, r9 //to save a NOT in sbox calculations - strd r8, r9, [r0], #8 //store 1st half tk for 39th round - strd r6, r7, [r0], #8 //store 2nd half tk for 39th round - ldm r0, {r6-r9} //load tk - bl p8 //apply the permutation 8 times - movw r10, #0x3030 - movt r10, #0x3030 //r10<- 0x30303030 - and r11, r10, r6, ror #30 //--- ror and masks to match fixslicing - and r6, r6, r10, ror #4 - orr r6, r11, r6, ror #22 - and r11, r10, r7, ror #30 - and r7, r7, r10, ror #4 - orr r7, r11, r7, ror #22 - and r11, r10, r8, ror #30 - and r8, r8, r10, ror #4 - orr r8, r11, r8, ror #22 - and r11, r10, r9, ror #30 - and r9, r9, r10, ror #4 - orr r9, r11, r9, ror #22 //ror and masks to match fixslicing --- - eor r6, r6, #0x00000010 - eor r8, r8, #0x00010000 - eor r8, r8, #0x00000010 - eor r9, r9, #0x00000400 - mvn r9, r9 //to save a NOT in sbox calculations - strd r6, r7, [r0], #8 //store 1st half tk for 40th round - strd r8, r9, [r0] //store 2nd half tk for 40th round - add.w sp, #4 - pop {r0-r12, lr} - bx lr - -/****************************************************************************** -* Applies the permutations P^2, ..., P^14 for rounds 0 to 16. Since P^16=Id, we -* don't need more calculations as no LFSR is applied to TK1. -******************************************************************************/ -@ void tkschedule_perm_tk1(u32* tk, const u8* key) -.global tkschedule_perm_tk1 -.type tkschedule_perm_tk1,%function -.align 2 -tkschedule_perm_tk1: - push {r0-r12, lr} - ldr.w r3, [r1, #8] //load tk1 (3rd word) - ldr.w r4, [r1, #4] //load tk1 (2nd word) - ldr.w r5, [r1, #12] //load tk1 (4th word) - ldr.w r2, [r1] //load tk1 (1st word) - movw r10, #0x0a0a - movt r10, #0x0a0a //r6 <- 0x0a0a0a0a - movw r11, #0x3030 - movt r11, #0x3030 //r7 <- 0x30303030 - bl packing //pack tk1 - mov r6, r2 //move tk1 from r2-r5 to r6-r9 - mov r7, r3 //move tk1 from r2-r5 to r6-r9 - mov r8, r4 //move tk1 from r2-r5 to r6-r9 - mov r9, r5 //move tk1 from r2-r5 to r6-r9 - movw r2, #0xf0f0 - movt r2, #0xf0f0 //r2<- 0xf0f0f0f0 - and r11, r8, r2 //tk &= 0xf0f0f0f0 (3rd word) - and r12, r9, r2 //tk &= 0xf0f0f0f0 (4th word) - strd r11, r12, [r0], #8 //store 1st half tk for 1st round - and r11, r6, r2 //tk &= 0xf0f0f0f0 (1st word) - and r12, r7, r2 //tk &= 0xf0f0f0f0 (2nd word) - strd r11, r12, [r0], #8 //store 2nd half tk for 1st round - - bl p2 //apply the permutation twice - movw r3, #0x0303 - movt r3, #0x0303 //r3<- 0x03030303 - and r11, r3, r6, ror #28 //--- ror and masks to match fixslicing - and r12, r6, r3, lsl #6 - orr r12, r11, r12, ror #12 - str.w r12, [r0, #8] - and r11, r3, r7, ror #28 - and r12, r7, r3, lsl #6 - orr r12, r11, r12, ror #12 - str.w r12, [r0, #12] - and r11, r3, r9, ror #28 - and r12, r9, r3, lsl #6 - orr r12, r11, r12, ror #12 - str.w r12, [r0, #4] - and r11, r3, r8, ror #28 - and r12, r8, r3, lsl #6 - orr r12, r11, r12, ror #12 - str.w r12, [r0], #16 //ror and masks to match fixslicing --- - bl p2 //apply the permutation 4 times - and r11, r2, r6, ror #16 //ror and mask to match fixslicing - and r12, r2, r7, ror #16 //ror and mask to match fixslicing - strd r11, r12, [r0, #8] //store 2nd half tk for 5th round - and r11, r2, r8, ror #16 //ror and mask to match fixslicing - and r12, r2, r9, ror #16 //ror and mask to match fixslicing - strd r11, r12, [r0], #16 //store 1st half tk for 5th round - bl p2 //apply the permutation 6 times - and r11, r3, r6, ror #12 //--- ror and masks to match fixslicing - and r12, r6, r3, lsl #6 - orr r12, r11, r12, ror #28 - str.w r12, [r0, #8] - and r11, r3, r7, ror #12 - and r12, r7, r3, lsl #6 - orr r12, r11, r12, ror #28 - str.w r12, [r0, #12] - and r11, r3, r9, ror #12 - and r12, r9, r3, lsl #6 - orr r12, r11, r12, ror #28 - str.w r12, [r0, #4] - and r11, r3, r8, ror #12 - and r12, r8, r3, lsl #6 - orr r12, r11, r12, ror #28 - str.w r12, [r0], #16 //ror and masks to match fixslicing --- - bl p2 //apply the permutation 8 times - and r11, r2, r6 //ror and mask to match fixslicing - and r12, r2, r7 //ror and mask to match fixslicing - strd r11, r12, [r0, #8] //store 2nd half tk for 9th round - and r11, r2, r8 //ror and mask to match fixslicing - and r12, r2, r9 //ror and mask to match fixslicing - strd r11, r12, [r0], #16 //store 1st half tk for 9th round - bl p2 //apply the permutation 10 - and r11, r3, r6, ror #28 //--- ror and masks to match fixslicing - and r12, r6, r3, lsl #6 - orr r12, r11, r12, ror #12 - str.w r12, [r0, #8] - and r11, r3, r7, ror #28 - and r12, r7, r3, lsl #6 - orr r12, r11, r12, ror #12 - str.w r12, [r0, #12] - and r11, r3, r9, ror #28 - and r12, r9, r3, lsl #6 - orr r12, r11, r12, ror #12 - str.w r12, [r0, #4] - and r11, r3, r8, ror #28 - and r12, r8, r3, lsl #6 - orr r12, r11, r12, ror #12 - str.w r12, [r0], #16 //ror and masks to match fixslicing --- - bl p2 //apply the permutation 12 times - and r11, r2, r6, ror #16 //ror and mask to match fixslicing - and r12, r2, r7, ror #16 //ror and mask to match fixslicing - strd r11, r12, [r0, #8] //store 2nd half tk for 5th round - and r11, r2, r8, ror #16 //ror and mask to match fixslicing - and r12, r2, r9, ror #16 //ror and mask to match fixslicing - strd r11, r12, [r0], #16 //store 1st half tk for 5th round - bl p2 //apply the permutation 14 times - and r11, r3, r6, ror #12 //--- ror and masks to match fixslicing - and r12, r6, r3, lsl #6 - orr r12, r11, r12, ror #28 - str.w r12, [r0, #8] - and r11, r3, r7, ror #12 - and r12, r7, r3, lsl #6 - orr r12, r11, r12, ror #28 - str.w r12, [r0, #12] - and r11, r3, r9, ror #12 - and r12, r9, r3, lsl #6 - orr r12, r11, r12, ror #28 - str.w r12, [r0, #4] - and r11, r3, r8, ror #12 - and r12, r8, r3, lsl #6 - orr r12, r11, r12, ror #28 - str.w r12, [r0] //ror and masks to match fixslicing --- - pop {r0-r12, lr} - bx lr - -.align 2 -quadruple_round: - orr r8, r2, r3 - eor r5, r5, r8 - mvn r5, r5 - eor r8, r3, r4, lsr #1 - and r8, r8, r6 - eor r3, r3, r8 - eor r4, r4, r8, lsl #1 //SWAPMOVE(r4, r3, 0x55555555, 1); - eor r8, r4, r5, lsr #1 - and r8, r8, r6 - eor r4, r4, r8 - eor r5, r5, r8, lsl #1 //SWAPMOVE(r5, r4, 0x55555555, 1); - orr r8, r4, r5 - eor r3, r3, r8 - mvn r3, r3 - eor r8, r2, r3, lsr #1 - and r8, r8, r6 - eor r2, r2, r8 - eor r3, r3, r8, lsl #1 //SWAPMOVE(r3, r2, 0x55555555, 1); - eor r8, r5, r2, lsr #1 - and r8, r8, r6 - eor r5, r5, r8 - eor r2, r2, r8, lsl #1 //SWAPMOVE(r2, r5, 0x55555555, 1); - orr r8, r2, r3 - eor r5, r5, r8 - mvn r5, r5 - eor r8, r3, r4, lsr #1 - and r8, r8, r6 - eor r3, r3, r8 - eor r4, r4, r8, lsl #1 //SWAPMOVE(r4, r3, 0x55555555, 1); - eor r8, r4, r5, lsr #1 - and r8, r8, r6 - eor r4, r4, r8 - eor r5, r5, r8, lsl #1 //SWAPMOVE(r5, r4, 0x55555555, 1); - orr r8, r4, r5 - eor r3, r3, r8 - eor r8, r2, r5 - and r8, r8, r6 - eor r2, r2, r8 - eor r5, r5, r8 //SWAPMOVE(r5, r2, 0x55555555, 0); - ldmia.w r1!, {r8-r11} //load rkeys in r8,...,r11 - eor r2, r2, r8 //add rtk_2_3 + rconst - eor r3, r3, r9 //add rtk_2_3 + rconst - eor r4, r4, r10 //add rtk_2_3 + rconst - eor r5, r5, r11 //add rtk_2_3 + rconst - ldmia.w r0!,{r8-r11} - eor r2, r2, r8 //add rtk_1 - eor r3, r3, r9 //add rtk_1 - eor r4, r4, r10 //add rtk_1 - eor r5, r5, r11 //add rtk_1 - and r8, r7, r2, ror #30 // --- mixcolumns 0 --- - eor r2, r2, r8, ror #24 - and r8, r7, r2, ror #18 - eor r2, r2, r8, ror #2 - and r8, r7, r2, ror #6 - eor r2, r2, r8, ror #4 - and r8, r7, r3, ror #30 - eor r3, r3, r8, ror #24 - and r8, r7, r3, ror #18 - eor r3, r3, r8, ror #2 - and r8, r7, r3, ror #6 - eor r3, r3, r8, ror #4 - and r8, r7, r4, ror #30 - eor r4, r4, r8, ror #24 - and r8, r7, r4, ror #18 - eor r4, r4, r8, ror #2 - and r8, r7, r4, ror #6 - eor r4, r4, r8, ror #4 - and r8, r7, r5, ror #30 - eor r5, r5, r8, ror #24 - and r8, r7, r5, ror #18 - eor r5, r5, r8, ror #2 - and r8, r7, r5, ror #6 - eor r5, r5, r8, ror #4 - orr r8, r4, r5 - eor r3, r3, r8 - mvn r3, r3 - eor r8, r2, r3, lsr #1 - and r8, r8, r6 - eor r2, r2, r8 - eor r3, r3, r8, lsl #1 //SWAPMOVE(r3, r2, 0x55555555, 1); - eor r8, r5, r2, lsr #1 - and r8, r8, r6 - eor r5, r5, r8 - eor r2, r2, r8, lsl #1 //SWAPMOVE(r2, r5, 0x55555555, 1); - orr r8, r2, r3 - eor r5, r5, r8 - mvn r5, r5 - eor r8, r3, r4, lsr #1 - and r8, r8, r6 - eor r3, r3, r8 - eor r4, r4, r8, lsl #1 //SWAPMOVE(r4, r3, 0x55555555, 1); - eor r8, r4, r5, lsr #1 - and r8, r8, r6 - eor r4, r4, r8 - eor r5, r5, r8, lsl #1 //SWAPMOVE(r5, r4, 0x55555555, 1); - orr r8, r4, r5 - eor r3, r3, r8 - mvn r3, r3 - eor r8, r2, r3, lsr #1 - and r8, r8, r6 - eor r2, r2, r8 - eor r3, r3, r8, lsl #1 //SWAPMOVE(r3, r2, 0x55555555, 1); - eor r8, r5, r2, lsr #1 - and r8, r8, r6 - eor r5, r5, r8 - eor r2, r2, r8, lsl #1 //SWAPMOVE(r2, r5, 0x55555555, 1); - orr r8, r2, r3 - eor r5, r5, r8 - eor r8, r3, r4 - and r8, r8, r6 - eor r3, r3, r8 - eor r4, r4, r8 //SWAPMOVE(r4, r3, 0x55555555, 0); - ldmia.w r1!, {r8-r11} //load rkeys in r8,...,r11 - eor r2, r2, r8 //add rkey + rconst - eor r3, r3, r9 //add rkey + rconst - eor r4, r4, r10 //add rkey + rconst - eor r5, r5, r11 //add rkey + rconst - and r8, r7, r2, ror #16 // --- mixcolumns 1 --- - eor r2, r2, r8, ror #30 - and r8, r7, r2, ror #28 - eor r2, r2, r8 - and r8, r7, r2, ror #16 - eor r2, r2, r8, ror #2 - and r8, r7, r3, ror #16 - eor r3, r3, r8, ror #30 - and r8, r7, r3, ror #28 - eor r3, r3, r8 - and r8, r7, r3, ror #16 - eor r3, r3, r8, ror #2 - and r8, r7, r4, ror #16 - eor r4, r4, r8, ror #30 - and r8, r7, r4, ror #28 - eor r4, r4, r8 - and r8, r7, r4, ror #16 - eor r4, r4, r8, ror #2 - and r8, r7, r5, ror #16 - eor r5, r5, r8, ror #30 - and r8, r7, r5, ror #28 - eor r5, r5, r8 - and r8, r7, r5, ror #16 - eor r5, r5, r8, ror #2 - orr r8, r2, r3 - eor r5, r5, r8 - mvn r5, r5 - eor r8, r3, r4, lsr #1 - and r8, r8, r6 - eor r3, r3, r8 - eor r4, r4, r8, lsl #1 //SWAPMOVE(r4, r3, 0x55555555, 1); - eor r8, r4, r5, lsr #1 - and r8, r8, r6 - eor r4, r4, r8 - eor r5, r5, r8, lsl #1 //SWAPMOVE(r5, r4, 0x55555555, 1); - orr r8, r4, r5 - eor r3, r3, r8 - mvn r3, r3 - eor r8, r2, r3, lsr #1 - and r8, r8, r6 - eor r2, r2, r8 - eor r3, r3, r8, lsl #1 //SWAPMOVE(r3, r2, 0x55555555, 1); - eor r8, r5, r2, lsr #1 - and r8, r8, r6 - eor r5, r5, r8 - eor r2, r2, r8, lsl #1 //SWAPMOVE(r2, r5, 0x55555555, 1); - orr r8, r2, r3 - eor r5, r5, r8 - mvn r5, r5 - eor r8, r3, r4, lsr #1 - and r8, r8, r6 - eor r3, r3, r8 - eor r4, r4, r8, lsl #1 //SWAPMOVE(r4, r3, 0x55555555, 1); - eor r8, r4, r5, lsr #1 - and r8, r8, r6 - eor r4, r4, r8 - eor r5, r5, r8, lsl #1 //SWAPMOVE(r5, r4, 0x55555555, 1); - orr r8, r4, r5 - eor r3, r3, r8 - eor r8, r2, r5 - and r8, r8, r6 - eor r2, r2, r8 - eor r5, r5, r8 //SWAPMOVE(r5, r2, 0x55555555, 0); - ldmia.w r1!, {r8-r11} //load rkeys in r8,...,r11 - eor r2, r2, r8 //add rtk_2_3 + rconst - eor r3, r3, r9 //add rtk_2_3 + rconst - eor r4, r4, r10 //add rtk_2_3 + rconst - eor r5, r5, r11 //add rtk_2_3 + rconst - ldmia.w r0!,{r8-r11} - eor r2, r2, r8 //add rtk_1 - eor r3, r3, r9 //add rtk_1 - eor r4, r4, r10 //add rtk_1 - eor r5, r5, r11 //add rtk_1 - and r8, r7, r2, ror #10 // --- mixcolumns 2 --- - eor r2, r2, r8, ror #4 - and r8, r7, r2, ror #6 - eor r2, r2, r8, ror #6 - and r8, r7, r2, ror #26 - eor r2, r2, r8 - and r8, r7, r3, ror #10 - eor r3, r3, r8, ror #4 - and r8, r7, r3, ror #6 - eor r3, r3, r8, ror #6 - and r8, r7, r3, ror #26 - eor r3, r3, r8 - and r8, r7, r4, ror #10 - eor r4, r4, r8, ror #4 - and r8, r7, r4, ror #6 - eor r4, r4, r8, ror #6 - and r8, r7, r4, ror #26 - eor r4, r4, r8 - and r8, r7, r5, ror #10 - eor r5, r5, r8, ror #4 - and r8, r7, r5, ror #6 - eor r5, r5, r8, ror #6 - and r8, r7, r5, ror #26 - eor r5, r5, r8 - orr r8, r4, r5 - eor r3, r3, r8 - mvn r3, r3 - eor r8, r2, r3, lsr #1 - and r8, r8, r6 - eor r2, r2, r8 - eor r3, r3, r8, lsl #1 //SWAPMOVE(r3, r2, 0x55555555, 1); - eor r8, r5, r2, lsr #1 - and r8, r8, r6 - eor r5, r5, r8 - eor r2, r2, r8, lsl #1 //SWAPMOVE(r2, r5, 0x55555555, 1); - orr r8, r2, r3 - eor r5, r5, r8 - mvn r5, r5 - eor r8, r3, r4, lsr #1 - and r8, r8, r6 - eor r3, r3, r8 - eor r4, r4, r8, lsl #1 //SWAPMOVE(r4, r3, 0x55555555, 1); - eor r8, r4, r5, lsr #1 - and r8, r8, r6 - eor r4, r4, r8 - eor r5, r5, r8, lsl #1 //SWAPMOVE(r5, r4, 0x55555555, 1); - orr r8, r4, r5 - eor r3, r3, r8 - mvn r3, r3 - eor r8, r2, r3, lsr #1 - and r8, r8, r6 - eor r2, r2, r8 - eor r3, r3, r8, lsl #1 //SWAPMOVE(r3, r2, 0x55555555, 1); - eor r8, r5, r2, lsr #1 - and r8, r8, r6 - eor r5, r5, r8 - eor r2, r2, r8, lsl #1 //SWAPMOVE(r2, r5, 0x55555555, 1); - orr r8, r2, r3 - eor r5, r5, r8 - eor r8, r3, r4 - and r8, r8, r6 - eor r3, r3, r8 - eor r4, r4, r8 //SWAPMOVE(r4, r3, 0x55555555, 0); - ldmia r1!, {r8-r11} //load rkeys in r8,...,r11 - eor r2, r2, r8 //add rkey + rconst - eor r3, r3, r9 //add rkey + rconst - eor r4, r4, r10 //add rkey + rconst - eor r5, r5, r11 //add rkey + rconst - and r8, r7, r2, ror #4 // --- mixcolumns 3 --- - eor r2, r2, r8, ror #26 - and r8, r7, r2 - eor r2, r2, r8, ror #4 - and r8, r7, r2, ror #4 - eor r2, r2, r8, ror #22 - and r8, r7, r3, ror #4 - eor r3, r3, r8, ror #26 - and r8, r7, r3 - eor r3, r3, r8, ror #4 - and r8, r7, r3, ror #4 - eor r3, r3, r8, ror #22 - and r8, r7, r4, ror #4 - eor r4, r4, r8, ror #26 - and r8, r7, r4 - eor r4, r4, r8, ror #4 - and r8, r7, r4, ror #4 - eor r4, r4, r8, ror #22 - and r8, r7, r5, ror #4 - eor r5, r5, r8, ror #26 - and r8, r7, r5 - eor r5, r5, r8, ror #4 - and r8, r7, r5, ror #4 - eor r5, r5, r8, ror #22 - bx lr - -/****************************************************************************** -* Encrypt a single block using fixsliced SKINNY-128-128. -******************************************************************************/ -@ void skinny128_384(u8* ctext, const u32* tk, const u8* ptext) -.global skinny128_384 -.type skinny128_384,%function -.align 2 -skinny128_384: - push {r0-r12, r14} - mov.w r0, r3 - ldr.w r3, [r2, #8] - ldr.w r4, [r2, #4] - ldr.w r5, [r2, #12] - ldr.w r2, [r2] - movw r6, #0x0a0a - movt r6, #0x0a0a //r6 <- 0x0a0a0a0a - movw r7, #0x3030 - movt r7, #0x3030 //r7 <- 0x30303030 - eor r12, r2, r2, lsr #3 - and r12, r12, r6 - eor r2, r2, r12 - eor r2, r2, r12, lsl #3 //SWAPMOVE(r2, r2, 0x0a0a0a0a, 3) - eor r12, r3, r3, lsr #3 - and r12, r12, r6 - eor r3, r3, r12 - eor r3, r3, r12, lsl #3 //SWAPMOVE(r3, r3, 0x0a0a0a0a, 3) - eor r12, r4, r4, lsr #3 - and r12, r12, r6 - eor r4, r4, r12 - eor r4, r4, r12, lsl #3 //SWAPMOVE(r4, r4, 0x0a0a0a0a, 3) - eor r12, r5, r5, lsr #3 - and r12, r12, r6 - eor r5, r5, r12 - eor r5, r5, r12, lsl #3 //SWAPMOVE(r5, r5, 0x0a0a0a0a, 3) - eor r12, r2, r4, lsr #2 - and r12, r12, r7 - eor r2, r2, r12 - eor r4, r4, r12, lsl #2 //SWAPMOVE(r4, r2, 0x30303030, 2) - eor r12, r2, r3, lsr #4 - and r12, r12, r7, lsr #2 - eor r2, r2, r12 - eor r3, r3, r12, lsl #4 //SWAPMOVE(r3, r2, 0x0c0c0c0c, 4) - eor r12, r2, r5, lsr #6 - and r12, r12, r7, lsr #4 - eor r2, r2, r12 - eor r5, r5, r12, lsl #6 //SWAPMOVE(r5, r2, 0x03030303, 6) - eor r12, r4, r3, lsr #2 - and r12, r12, r7, lsr #2 - eor r4, r4, r12 - eor r3, r3, r12, lsl #2 //SWAPMOVE(r3, r4, 0x0c0c0c0c, 2) - eor r12, r4, r5, lsr #4 - and r12, r12, r7, lsr #4 - eor r4, r4, r12 - eor r5, r5, r12, lsl #4 //SWAPMOVE(r5, r4, 0x03030303, 4) - eor r12, r3, r5, lsr #2 - and r12, r12, r7, lsr #4 - eor r3, r3, r12 - eor r5, r5, r12, lsl #2 //SWAPMOVE(r5, r3, 0x03030303, 2) - movw r6, #0x5555 - movt r6, #0x5555 //r6 <- 0x55555555 - bl quadruple_round - bl quadruple_round - bl quadruple_round - bl quadruple_round - sub.w r0, #128 // rtk1 repeats every 16 rounds - bl quadruple_round - bl quadruple_round - bl quadruple_round - bl quadruple_round - sub.w r0, #128 // rtk1 repeats every 16 rounds - bl quadruple_round - bl quadruple_round - movw r6, #0x0a0a - movt r6, #0x0a0a //r6 <- 0x0a0a0a0a - eor r10, r3, r5, lsr #2 - and r10, r10, r7, lsr #4 - eor r3, r3, r10 - eor r5, r5, r10, lsl #2 //SWAPMOVE(r5, r3, 0x03030303, 2) - eor r10, r4, r5, lsr #4 - and r10, r10, r7, lsr #4 - eor r4, r4, r10 - eor r5, r5, r10, lsl #4 //SWAPMOVE(r5, r4, 0x03030303, 4) - eor r10, r4, r3, lsr #2 - and r10, r10, r7, lsr #2 - eor r4, r4, r10 - eor r3, r3, r10, lsl #2 //SWAPMOVE(r3, r4, 0x0c0c0c0c, 2) - eor r10, r2, r5, lsr #6 - and r10, r10, r7, lsr #4 - eor r2, r2, r10 - eor r5, r5, r10, lsl #6 //SWAPMOVE(r5, r2, 0x03030303, 6) - eor r10, r2, r3, lsr #4 - and r10, r10, r7, lsr #2 - eor r2, r2, r10 - eor r3, r3, r10, lsl #4 //SWAPMOVE(r3, r2, 0x0c0c0c0c, 4) - eor r10, r2, r4, lsr #2 - and r10, r10, r7 - eor r2, r2, r10 - eor r4, r4, r10, lsl #2 //SWAPMOVE(r4, r2, 0x30303030, 2) - eor r10, r5, r5, lsr #3 - and r10, r10, r6 - eor r5, r5, r10 - eor r5, r5, r10, lsl #3 //SWAPMOVE(r5, r5, 0x0a0a0a0a, 3) - eor r10, r4, r4, lsr #3 - and r10, r10, r6 - eor r4, r4, r10 - eor r4, r4, r10, lsl #3 //SWAPMOVE(r4, r4, 0x0a0a0a0a, 3) - eor r10, r3, r3, lsr #3 - and r10, r10, r6 - eor r3, r3, r10 - eor r3, r3, r10, lsl #3 //SWAPMOVE(r3, r3, 0x0a0a0a0a, 3) - eor r10, r2, r2, lsr #3 - and r10, r10, r6 - eor r2, r2, r10 - eor r2, r2, r10, lsl #3 //SWAPMOVE(r2, r2, 0x0a0a0a0a, 3) - ldr.w r0, [sp], #4 - strd r2, r4, [r0] - strd r3, r5, [r0, #8] - pop {r1-r12,r14} - bx lr - \ No newline at end of file diff --git a/romulus/Implementations/crypto_aead/romulusm1+v13/armsrc_NEC/api.h b/romulus/Implementations/crypto_aead/romulusm1+v13/armsrc_NEC/api.h deleted file mode 100644 index a4aa567..0000000 --- a/romulus/Implementations/crypto_aead/romulusm1+v13/armsrc_NEC/api.h +++ /dev/null @@ -1,5 +0,0 @@ -#define CRYPTO_KEYBYTES 16 -#define CRYPTO_NSECBYTES 0 -#define CRYPTO_NPUBBYTES 16 -#define CRYPTO_ABYTES 16 -#define CRYPTO_NOOVERLAP 1 diff --git a/romulus/Implementations/crypto_aead/romulusm1+v13/armsrc_NEC/crypto_aead.h b/romulus/Implementations/crypto_aead/romulusm1+v13/armsrc_NEC/crypto_aead.h deleted file mode 100644 index cfc09d6..0000000 --- a/romulus/Implementations/crypto_aead/romulusm1+v13/armsrc_NEC/crypto_aead.h +++ /dev/null @@ -1,11 +0,0 @@ -int crypto_aead_encrypt(unsigned char *c, unsigned long long *clen, - const unsigned char *m, unsigned long long mlen, - const unsigned char *ad, unsigned long long adlen, - const unsigned char *nsec, const unsigned char *npub, - const unsigned char *k); - -int crypto_aead_decrypt(unsigned char *m, unsigned long long *outputmlen, - unsigned char *nsec, - const unsigned char *c, unsigned long long clen, - const unsigned char *ad, unsigned long long adlen, - const unsigned char *npub, const unsigned char *k); diff --git a/romulus/Implementations/crypto_aead/romulusm1+v13/armsrc_NEC/encrypt.c b/romulus/Implementations/crypto_aead/romulusm1+v13/armsrc_NEC/encrypt.c deleted file mode 100644 index 91d0e6e..0000000 --- a/romulus/Implementations/crypto_aead/romulusm1+v13/armsrc_NEC/encrypt.c +++ /dev/null @@ -1,738 +0,0 @@ -/* - * Date: 29 November 2018 - * Contact: Thomas Peyrin - thomas.peyrin@gmail.com - * Mustafa Khairallah - mustafam001@e.ntu.edu.sg - */ - -#include "crypto_aead.h" -#include "api.h" -#include "skinny.h" -#include -#include - -void pad (const unsigned char* m, unsigned char* mp, int l, int len8) { - int i; - - for (i = 0; i < l; i++) { - if (i < len8) { - mp[i] = m[i]; - } - else if (i == l - 1) { - mp[i] = (len8 & 0x0f); - } - else { - mp[i] = 0x00; - } - } - -} - -void g8A (unsigned char* s, unsigned char* c) { - unsigned int tmps[4]; - unsigned int tmpc[4]; - - tmps[0] = *((unsigned int *)&s[0]); - tmps[1] = *((unsigned int *)&s[4]); - tmps[2] = *((unsigned int *)&s[8]); - tmps[3] = *((unsigned int *)&s[12]); - - // c[i] = (s[i] >> 1) ^ (s[i] & 0x80) ^ ((s[i] & 0x01) << 7); - // - // (s[i] >> 1) -> ((s[i]>>1)&0x7f) - // (s[i] & 0x80) -> (s[i])&0x80) not changed - // ((s[i] & 0x01) << 7) -> ((s[i]<<7)&0x80) - - // use word access because of speeding up - tmpc[0] = ((tmps[0]>>1) & 0x7f7f7f7f) ^ (tmps[0] & 0x80808080) ^ ((tmps[0]<<7) & 0x80808080); - tmpc[1] = ((tmps[1]>>1) & 0x7f7f7f7f) ^ (tmps[1] & 0x80808080) ^ ((tmps[1]<<7) & 0x80808080); - tmpc[2] = ((tmps[2]>>1) & 0x7f7f7f7f) ^ (tmps[2] & 0x80808080) ^ ((tmps[2]<<7) & 0x80808080); - tmpc[3] = ((tmps[3]>>1) & 0x7f7f7f7f) ^ (tmps[3] & 0x80808080) ^ ((tmps[3]<<7) & 0x80808080); - - *((unsigned int *)&c[0]) = tmpc[0]; - *((unsigned int *)&c[4]) = tmpc[1]; - *((unsigned int *)&c[8]) = tmpc[2]; - *((unsigned int *)&c[12]) = tmpc[3]; -} - -void g8A_for_Tag_Generation (unsigned char* s, unsigned char* c) { - unsigned int tmps[4]; - unsigned int tmpc[4]; - - tmps[0] = *((unsigned int *)&s[0]); - tmps[1] = *((unsigned int *)&s[4]); - tmps[2] = *((unsigned int *)&s[8]); - tmps[3] = *((unsigned int *)&s[12]); - - // c[i] = (s[i] >> 1) ^ (s[i] & 0x80) ^ ((s[i] & 0x01) << 7); - // - // (s[i] >> 1) -> ((s[i]>>1)&0x7f) - // (s[i] & 0x80) -> (s[i])&0x80) not changed - // ((s[i] & 0x01) << 7) -> ((s[i]<<7)&0x80) - - // use word access because of speeding up - tmpc[0] = ((tmps[0]>>1) & 0x7f7f7f7f) ^ (tmps[0] & 0x80808080) ^ ((tmps[0]<<7) & 0x80808080); - tmpc[1] = ((tmps[1]>>1) & 0x7f7f7f7f) ^ (tmps[1] & 0x80808080) ^ ((tmps[1]<<7) & 0x80808080); - tmpc[2] = ((tmps[2]>>1) & 0x7f7f7f7f) ^ (tmps[2] & 0x80808080) ^ ((tmps[2]<<7) & 0x80808080); - tmpc[3] = ((tmps[3]>>1) & 0x7f7f7f7f) ^ (tmps[3] & 0x80808080) ^ ((tmps[3]<<7) & 0x80808080); - - // use byte access because of memory alignment. - // c is not always in word(4 byte) alignment. - c[0] = tmpc[0] &0xFF; - c[1] = (tmpc[0]>>8) &0xFF; - c[2] = (tmpc[0]>>16)&0xFF; - c[3] = (tmpc[0]>>24)&0xFF; - c[4] = tmpc[1] &0xFF; - c[5] = (tmpc[1]>>8) &0xFF; - c[6] = (tmpc[1]>>16)&0xFF; - c[7] = (tmpc[1]>>24)&0xFF; - c[8] = tmpc[2] &0xFF; - c[9] = (tmpc[2]>>8) &0xFF; - c[10] = (tmpc[2]>>16)&0xFF; - c[11] = (tmpc[2]>>24)&0xFF; - c[12] = tmpc[3] &0xFF; - c[13] = (tmpc[3]>>8) &0xFF; - c[14] = (tmpc[3]>>16)&0xFF; - c[15] = (tmpc[3]>>24)&0xFF; -} - -void rho_ad_eqov16 (const unsigned char* m, - unsigned char* s) { - *((unsigned int *)&s[0]) ^= *((unsigned int *)&m[0]); - *((unsigned int *)&s[4]) ^= *((unsigned int *)&m[4]); - *((unsigned int *)&s[8]) ^= *((unsigned int *)&m[8]); - *((unsigned int *)&s[12]) ^= *((unsigned int *)&m[12]); -} - -void rho_ad_ud16 (const unsigned char* m, - unsigned char* s, - int len8) { - unsigned char mp [16]; - - pad(m,mp,16,len8); - *((unsigned int *)&s[0]) ^= *((unsigned int *)&mp[0]); - *((unsigned int *)&s[4]) ^= *((unsigned int *)&mp[4]); - *((unsigned int *)&s[8]) ^= *((unsigned int *)&mp[8]); - *((unsigned int *)&s[12]) ^= *((unsigned int *)&mp[12]); -} - -void rho_eqov16 (const unsigned char* m, - unsigned char* c, - unsigned char* s) { - g8A(s,c); - - *((unsigned int *)&s[0]) ^= *((unsigned int *)&m[0]); - *((unsigned int *)&s[4]) ^= *((unsigned int *)&m[4]); - *((unsigned int *)&s[8]) ^= *((unsigned int *)&m[8]); - *((unsigned int *)&s[12]) ^= *((unsigned int *)&m[12]); - - *((unsigned int *)&c[0]) ^= *((unsigned int *)&m[0]); - *((unsigned int *)&c[4]) ^= *((unsigned int *)&m[4]); - *((unsigned int *)&c[8]) ^= *((unsigned int *)&m[8]); - *((unsigned int *)&c[12]) ^= *((unsigned int *)&m[12]); -} - -void rho_ud16 (const unsigned char* m, - unsigned char* c, - unsigned char* s, - int len8, - int ver) { - int i; - unsigned char mp [16]; - - pad(m,mp,ver,len8); - - g8A(s,c); - *((unsigned int *)&s[0]) ^= *((unsigned int *)&mp[0]); - *((unsigned int *)&s[4]) ^= *((unsigned int *)&mp[4]); - *((unsigned int *)&s[8]) ^= *((unsigned int *)&mp[8]); - *((unsigned int *)&s[12]) ^= *((unsigned int *)&mp[12]); - for (i = 0; i < ver; i++) { - if (i < len8) { - c[i] = c[i] ^ mp[i]; - } - else { - c[i] = 0; - } - } -} - -void irho (unsigned char* m, - const unsigned char* c, - unsigned char* s, - int len8, - int ver) { - int i; - unsigned char cp [16]; - - pad(c,cp,ver,len8); - - g8A(s,m); - for (i = 0; i < ver; i++) { - if (i < len8) { - s[i] = s[i] ^ cp[i] ^ m[i]; - } - else { - s[i] = s[i] ^ cp[i]; - } - if (i < len8) { - m[i] = m[i] ^ cp[i]; - } - else { - m[i] = 0; - } - } -} - -void reset_lfsr_gf56 (unsigned char* CNT) { - *((unsigned int *)&CNT[0]) = 0x00000001; - *((unsigned int *)&CNT[4]) = 0x00000000; -} - -void lfsr_gf56 (unsigned char* CNT) { - unsigned int tmpCNT[2]; - unsigned int fb0; - - tmpCNT[0] = *((unsigned int *)&CNT[0]); // CNT3 CNT2 CNT1 CNT0 - tmpCNT[1] = *((unsigned int *)&CNT[4]); // CNT7 CNT6 CNT5 CNT4 - - fb0 = 0; - if ((tmpCNT[1] >> 23)&0x01) { - fb0 = 0x95; - } - - tmpCNT[1] = tmpCNT[1] << 1 | tmpCNT[0] >> 31; - tmpCNT[0] = tmpCNT[0] << 1 ^ fb0; - - *((unsigned int *)&CNT[0]) = tmpCNT[0]; - *((unsigned int *)&CNT[4]) = tmpCNT[1]; -} - -void block_cipher(unsigned char* s, - const unsigned char* k, unsigned char* T, - unsigned char* CNT, - skinny_ctrl* p_skinny_ctrl) { - p_skinny_ctrl->func_skinny_128_384_enc (s,p_skinny_ctrl,CNT,T,k); -} - -void nonce_encryption (const unsigned char* N, - unsigned char* CNT, - unsigned char*s, const unsigned char* k, - unsigned char D, - skinny_ctrl* p_skinny_ctrl) { - unsigned char T [16]; - *((unsigned int *)&T[0]) = *((unsigned int *)&N[0]); - *((unsigned int *)&T[4]) = *((unsigned int *)&N[4]); - *((unsigned int *)&T[8]) = *((unsigned int *)&N[8]); - *((unsigned int *)&T[12]) = *((unsigned int *)&N[12]); - CNT[7] = D; - block_cipher(s,k,T,CNT,p_skinny_ctrl); - -} - -void generate_tag (unsigned char** c, unsigned char* s, - int n, unsigned long long* clen) { - - g8A_for_Tag_Generation(s, *c); - *c = *c + n; - *c = *c - *clen; - -} - -unsigned long long msg_encryption (const unsigned char** M, unsigned char** c, - const unsigned char* N, - unsigned char* CNT, - unsigned char*s, const unsigned char* k, - unsigned char D, - unsigned long long mlen, - skinny_ctrl* p_skinny_ctrl) { - int len8; - - if (mlen >= 16) { - len8 = 16; - mlen = mlen - 16; - rho_eqov16(*M, *c, s); - } - else { - len8 = mlen; - mlen = 0; - rho_ud16(*M, *c, s, len8, 16); - } - *c = *c + len8; - *M = *M + len8; - lfsr_gf56(CNT); - if (mlen != 0) { - nonce_encryption(N,CNT,s,k,D,p_skinny_ctrl); - } - return mlen; -} - - - -unsigned long long msg_decryption (unsigned char** M, const unsigned char** c, - const unsigned char* N, - unsigned char* CNT, - unsigned char*s, const unsigned char* k, - unsigned char D, - unsigned long long clen, - skinny_ctrl* p_skinny_ctrl) { - int len8; - - if (clen >= 16) { - len8 = 16; - clen = clen - 16; - } - else { - len8 = clen; - clen = 0; - } - irho(*M, *c, s, len8, 16); - *c = *c + len8; - *M = *M + len8; - lfsr_gf56(CNT); - nonce_encryption(N,CNT,s,k,D,p_skinny_ctrl); - return clen; -} - -unsigned long long ad2msg_encryption (const unsigned char** M, - unsigned char* CNT, - unsigned char*s, const unsigned char* k, - unsigned char D, - unsigned long long mlen, - skinny_ctrl* p_skinny_ctrl) { - unsigned char T [16]; - int len8; - - if (mlen <= 16) { - len8 = mlen; - mlen = 0; - - pad (*M,T,16,len8); - } - else { - len8 = 16; - mlen = mlen - 16; - - unsigned char *pM = (unsigned char *)(*M); - *((unsigned int *)&T[0]) = *((unsigned int *)&pM[0]); - *((unsigned int *)&T[4]) = *((unsigned int *)&pM[4]); - *((unsigned int *)&T[8]) = *((unsigned int *)&pM[8]); - *((unsigned int *)&T[12]) = *((unsigned int *)&pM[12]); - } - - CNT[7] = D; - block_cipher(s,k,T,CNT,p_skinny_ctrl); - lfsr_gf56(CNT); - *M = *M + len8; - - return mlen; - -} - - -unsigned long long ad_encryption (const unsigned char** A, unsigned char* s, - const unsigned char* k, unsigned long long adlen, - unsigned char* CNT, - unsigned char D, - skinny_ctrl* p_skinny_ctrl) { - - unsigned char T [16]; - int len8; - - if (adlen >= 16) { - len8 = 16; - adlen = adlen - 16; - rho_ad_eqov16(*A, s); - } - else { - len8 = adlen; - adlen = 0; - rho_ad_ud16(*A, s, len8); - } - *A = *A + len8; - lfsr_gf56(CNT); - if (adlen != 0) { - if (adlen >= 16) { - len8 = 16; - adlen = adlen - 16; - - unsigned char *pA = (unsigned char *)(*A); - *((unsigned int *)&T[0]) = *((unsigned int *)&pA[0]); - *((unsigned int *)&T[4]) = *((unsigned int *)&pA[4]); - *((unsigned int *)&T[8]) = *((unsigned int *)&pA[8]); - *((unsigned int *)&T[12]) = *((unsigned int *)&pA[12]); - } - else { - len8 = adlen; - adlen = 0; - - pad(*A, T, 16, len8); - } - *A = *A + len8; - CNT[7] = D; - block_cipher(s,k,T,CNT,p_skinny_ctrl); - lfsr_gf56(CNT); - } - - return adlen; -} - -int crypto_aead_encrypt ( - unsigned char* c, unsigned long long* clen, - const unsigned char* m, unsigned long long mlen, - const unsigned char* ad, unsigned long long adlen, - const unsigned char* nsec, - const unsigned char* npub, - const unsigned char* k - ) -{ - unsigned char s[16]; - unsigned char CNT[8]; // size 7 -> 8 for word access - unsigned char T[16]; - const unsigned char* N; - unsigned char w; - unsigned long long xlen; - - skinny_ctrl l_skinny_ctrl; - l_skinny_ctrl.func_skinny_128_384_enc = skinny_128_384_enc123_12; - - (void)nsec; - N = npub; - - xlen = mlen; - - *((unsigned int *)&s[0]) = 0x00000000; - *((unsigned int *)&s[4]) = 0x00000000; - *((unsigned int *)&s[8]) = 0x00000000; - *((unsigned int *)&s[12]) = 0x00000000; - reset_lfsr_gf56(CNT); - - w = 48; - - if (adlen == 0) { - w = w ^ 2; - if (xlen == 0) { - w =w ^ 1; - } - else if (xlen%(32) == 0) { - w = w ^ 4; - } - else if (xlen%(32) < 16) { - w = w ^ 1; - } - else if (xlen%(32) == 16) { - w = w ^ 0; - } - else { - w = w ^ 5; - } - } - else if (adlen%(32) == 0) { - w = w ^ 8; - if (xlen == 0) { - w =w ^ 1; - } - else if (xlen%(32) == 0) { - w = w ^ 4; - } - else if (xlen%(32) < 16) { - w = w ^ 1; - } - else if (xlen%(32) == 16) { - w = w ^ 0; - } - else { - w = w ^ 5; - } - } - else if (adlen%(32) < 16) { - w = w ^ 2; - if (xlen == 0) { - w =w ^ 1; - } - else if (xlen%(32) == 0) { - w = w ^ 4; - } - else if (xlen%(32) < 16) { - w = w ^ 1; - } - else if (xlen%(32) == 16) { - w = w ^ 0; - } - else { - w = w ^ 5; - } - } - else if (adlen%(32) == 16) { - w = w ^ 0; - if (xlen == 0) { - w =w ^ 1; - } - else if (xlen%(32) == 0) { - w = w ^ 4; - } - else if (xlen%(32) < 16) { - w = w ^ 1; - } - else if (xlen%(32) == 16) { - w = w ^ 0; - } - else { - w = w ^ 5; - } - } - else { - w = w ^ 10; - if (xlen == 0) { - w =w ^ 1; - } - else if (xlen%(32) == 0) { - w = w ^ 4; - } - else if (xlen%(32) < 16) { - w = w ^ 1; - } - else if (xlen%(32) == 16) { - w = w ^ 0; - } - else { - w = w ^ 5; - } - } - - if (adlen == 0) { // AD is an empty string - lfsr_gf56(CNT); - } - else while (adlen > 0) { - adlen = ad_encryption(&ad,s,k,adlen,CNT,40,&l_skinny_ctrl); - } - - if ((w & 8) == 0) { - xlen = ad2msg_encryption (&m,CNT,s,k,44,xlen,&l_skinny_ctrl); - } - else if (mlen == 0) { - lfsr_gf56(CNT); - } - while (xlen > 0) { - xlen = ad_encryption(&m,s,k,xlen,CNT,44,&l_skinny_ctrl); - } - nonce_encryption(N,CNT,s,k,w,&l_skinny_ctrl); - - // because, nonce_encryption is called at the last block of AD encryption - l_skinny_ctrl.func_skinny_128_384_enc = skinny_128_384_enc1_1; - - // Tag generation - g8A(s, T); - - m = m - mlen; - - reset_lfsr_gf56(CNT); - - *((unsigned int *)&s[0]) = *((unsigned int *)&T[0]); - *((unsigned int *)&s[4]) = *((unsigned int *)&T[4]); - *((unsigned int *)&s[8]) = *((unsigned int *)&T[8]); - *((unsigned int *)&s[12]) = *((unsigned int *)&T[12]); - - *clen = mlen + 16; - - if (mlen > 0) { - nonce_encryption(N,CNT,s,k,36,&l_skinny_ctrl); - while (mlen > 16) { - mlen = msg_encryption(&m,&c,N,CNT,s,k,36,mlen,&l_skinny_ctrl); - } - rho_ud16(m, c, s, mlen, 16); - c = c + mlen; - m = m + mlen; - } - - // Tag Concatenation - - // use byte access because of memory alignment. - // c is not always in word(4 byte) alignment. - - for (int i = 0; i < 16; i = i + 1) { - *(c + i) = T[i]; - } - - c = c - *clen; - - return 0; -} - -int crypto_aead_decrypt( -unsigned char *m,unsigned long long *mlen, -unsigned char *nsec, -const unsigned char *c,unsigned long long clen, -const unsigned char *ad,unsigned long long adlen, -const unsigned char *npub, -const unsigned char *k -) -{ - unsigned char s[16]; - unsigned char CNT[8]; // size 7 -> 8 for word access - unsigned char T[16]; - const unsigned char* N; - unsigned char w; - unsigned long long xlen; - const unsigned char* mauth; - - skinny_ctrl l_skinny_ctrl; - l_skinny_ctrl.func_skinny_128_384_enc = skinny_128_384_enc123_12; - - (void)nsec; - mauth = m; - - N = npub; - - xlen = clen-16; - - reset_lfsr_gf56(CNT); - - for (int i = 0; i < 16; i++) { - T[i] = *(c + clen - 16 + i); - } - - *((unsigned int *)&s[0]) = *((unsigned int *)&T[0]); - *((unsigned int *)&s[4]) = *((unsigned int *)&T[4]); - *((unsigned int *)&s[8]) = *((unsigned int *)&T[8]); - *((unsigned int *)&s[12]) = *((unsigned int *)&T[12]); - - clen = clen - 16; - *mlen = clen; - - if (clen > 0) { - nonce_encryption(N,CNT,s,k,36,&l_skinny_ctrl); - while (clen > 16) { - clen = msg_decryption(&m,&c,N,CNT,s,k,36,clen,&l_skinny_ctrl); - } - irho(m, c, s, clen, 16); - c = c + clen; - m = m + clen; - } - - *((unsigned int *)&s[0]) = 0x00000000; - *((unsigned int *)&s[4]) = 0x00000000; - *((unsigned int *)&s[8]) = 0x00000000; - *((unsigned int *)&s[12]) = 0x00000000; - reset_lfsr_gf56(CNT); - - w = 48; - - if (adlen == 0) { - w = w ^ 2; - if (xlen == 0) { - w =w ^ 1; - } - else if (xlen%(32) == 0) { - w = w ^ 4; - } - else if (xlen%(32) < 16) { - w = w ^ 1; - } - else if (xlen%(32) == 16) { - w = w ^ 0; - } - else { - w = w ^ 5; - } - } - else if (adlen%(32) == 0) { - w = w ^ 8; - if (xlen == 0) { - w =w ^ 1; - } - else if (xlen%(32) == 0) { - w = w ^ 4; - } - else if (xlen%(32) < 16) { - w = w ^ 1; - } - else if (xlen%(32) == 16) { - w = w ^ 0; - } - else { - w = w ^ 5; - } - } - else if (adlen%(32) < 16) { - w = w ^ 2; - if (xlen == 0) { - w =w ^ 1; - } - else if (xlen%(32) == 0) { - w = w ^ 4; - } - else if (xlen%(32) < 16) { - w = w ^ 1; - } - else if (xlen%(32) == 16) { - w = w ^ 0; - } - else { - w = w ^ 5; - } - } - else if (adlen%(32) == 16) { - w = w ^ 0; - if (xlen == 0) { - w =w ^ 1; - } - else if (xlen%(32) == 0) { - w = w ^ 4; - } - else if (xlen%(32) < 16) { - w = w ^ 1; - } - else if (xlen%(32) == 16) { - w = w ^ 0; - } - else { - w = w ^ 5; - } - } - else { - w = w ^ 10; - if (xlen == 0) { - w =w ^ 1; - } - else if (xlen%(32) == 0) { - w = w ^ 4; - } - else if (xlen%(32) < 16) { - w = w ^ 1; - } - else if (xlen%(32) == 16) { - w = w ^ 0; - } - else { - w = w ^ 5; - } - } - - if (adlen == 0) { // AD is an empty string - lfsr_gf56(CNT); - } - else while (adlen > 0) { - adlen = ad_encryption(&ad,s,k,adlen,CNT,40,&l_skinny_ctrl); - } - - if ((w & 8) == 0) { - xlen = ad2msg_encryption (&mauth,CNT,s,k,44,xlen,&l_skinny_ctrl); - } - else if (clen == 0) { - lfsr_gf56(CNT); - } - while (xlen > 0) { - xlen = ad_encryption(&mauth,s,k,xlen,CNT,44,&l_skinny_ctrl); - } - nonce_encryption(N,CNT,s,k,w,&l_skinny_ctrl); - - // Tag generation - g8A_for_Tag_Generation(s, T); - for (int i = 0; i < 16; i++) { - if (T[i] != (*(c+i))) { - return -1; - } - } - - return 0; -} diff --git a/romulus/Implementations/crypto_aead/romulusm1+v13/armsrc_NEC/skinny.h b/romulus/Implementations/crypto_aead/romulusm1+v13/armsrc_NEC/skinny.h deleted file mode 100644 index 2da62ae..0000000 --- a/romulus/Implementations/crypto_aead/romulusm1+v13/armsrc_NEC/skinny.h +++ /dev/null @@ -1,8 +0,0 @@ -typedef struct ___skinny_ctrl { - unsigned char roundKeys[704]; // number of round : 40 - void (*func_skinny_128_384_enc)(unsigned char*, struct ___skinny_ctrl*, unsigned char* CNT, unsigned char* T, const unsigned char* K); -} skinny_ctrl; - -extern void skinny_128_384_enc123_12 (unsigned char* input, skinny_ctrl* pskinny_ctrl, unsigned char* CNT, unsigned char* T, const unsigned char* K); -extern void skinny_128_384_enc12_12 (unsigned char* input, skinny_ctrl* pskinny_ctrl, unsigned char* CNT, unsigned char* T, const unsigned char* K); -extern void skinny_128_384_enc1_1 (unsigned char* input, skinny_ctrl* pskinny_ctrl, unsigned char* CNT, unsigned char* T, const unsigned char* K); diff --git a/romulus/Implementations/crypto_aead/romulusm1+v13/armsrc_NEC/skinny_key_schedule2.c b/romulus/Implementations/crypto_aead/romulusm1+v13/armsrc_NEC/skinny_key_schedule2.c deleted file mode 100644 index 1315e83..0000000 --- a/romulus/Implementations/crypto_aead/romulusm1+v13/armsrc_NEC/skinny_key_schedule2.c +++ /dev/null @@ -1,2163 +0,0 @@ -/****************************************************************************** - * Copyright (c) 2020, NEC Corporation. - * - * THIS CODE IS FURNISHED TO YOU "AS IS" WITHOUT WARRANTY OF ANY KIND. - * - *****************************************************************************/ - -/* - * SKINNY-128-384 - * - * load * AC(c0 c1) ^ TK3 - * calc AC(c0 c1) ^ TK2 -> store - * ART(TK2) - * - * number of rounds : 40 - */ - -__attribute__((aligned(4))) -void RunEncryptionKeyScheduleTK2(unsigned char *roundKeys) -{ - // r0 : points to roundKeys(& masterKey) - // r1-r4 : key state - // r5-r6 : temp use - // r7 : constant(0xfefefefe) - // r8 : constant(0x01010101) - // r9 : temp use - // r10 : temp use - asm volatile( - "stmdb sp!, {r4-r10} \n\t" - "ldr.w r1, [r0,#16] \n\t" // load master key - "ldr.w r2, [r0,#20] \n\t" // load master key - "ldr.w r3, [r0,#24] \n\t" // load master key - "ldr.w r4, [r0,#28] \n\t" // load master key - "mov.w r7, #0xfefefefe \n\t" - "mov.w r8, #0x01010101 \n\t" - - // round 1 - - "ldr.w r9, [r0,#384] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#388] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#64] \n\t" - "str.w r10, [r0,#68] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 2 - - "ldr.w r9, [r0,#392] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#396] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#72] \n\t" - "str.w r10, [r0,#76] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 3 - - "ldr.w r9, [r0,#400] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#404] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#80] \n\t" - "str.w r10, [r0,#84] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 4 - - "ldr.w r9, [r0,#408] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#412] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#88] \n\t" - "str.w r10, [r0,#92] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 5 - - "ldr.w r9, [r0,#416] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#420] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#96] \n\t" - "str.w r10, [r0,#100] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 6 - - "ldr.w r9, [r0,#424] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#428] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#104] \n\t" - "str.w r10, [r0,#108] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 7 - - "ldr.w r9, [r0,#432] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#436] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#112] \n\t" - "str.w r10, [r0,#116] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 8 - - "ldr.w r9, [r0,#440] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#444] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#120] \n\t" - "str.w r10, [r0,#124] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 9 - - "ldr.w r9, [r0,#448] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#452] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#128] \n\t" - "str.w r10, [r0,#132] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 10 - - "ldr.w r9, [r0,#456] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#460] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#136] \n\t" - "str.w r10, [r0,#140] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 11 - - "ldr.w r9, [r0,#464] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#468] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#144] \n\t" - "str.w r10, [r0,#148] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 12 - - "ldr.w r9, [r0,#472] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#476] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#152] \n\t" - "str.w r10, [r0,#156] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 13 - - "ldr.w r9, [r0,#480] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#484] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#160] \n\t" - "str.w r10, [r0,#164] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 14 - - "ldr.w r9, [r0,#488] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#492] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#168] \n\t" - "str.w r10, [r0,#172] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 15 - - "ldr.w r9, [r0,#496] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#500] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#176] \n\t" - "str.w r10, [r0,#180] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 16 - - "ldr.w r9, [r0,#504] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#508] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#184] \n\t" - "str.w r10, [r0,#188] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 17 - - "ldr.w r9, [r0,#512] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#516] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#192] \n\t" - "str.w r10, [r0,#196] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 18 - - "ldr.w r9, [r0,#520] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#524] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#200] \n\t" - "str.w r10, [r0,#204] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 19 - - "ldr.w r9, [r0,#528] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#532] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#208] \n\t" - "str.w r10, [r0,#212] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 20 - - "ldr.w r9, [r0,#536] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#540] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#216] \n\t" - "str.w r10, [r0,#220] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 21 - - "ldr.w r9, [r0,#544] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#548] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#224] \n\t" - "str.w r10, [r0,#228] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 22 - - "ldr.w r9, [r0,#552] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#556] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#232] \n\t" - "str.w r10, [r0,#236] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 23 - - "ldr.w r9, [r0,#560] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#564] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#240] \n\t" - "str.w r10, [r0,#244] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 24 - - "ldr.w r9, [r0,#568] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#572] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#248] \n\t" - "str.w r10, [r0,#252] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 25 - - "ldr.w r9, [r0,#576] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#580] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#256] \n\t" - "str.w r10, [r0,#260] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 26 - - "ldr.w r9, [r0,#584] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#588] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#264] \n\t" - "str.w r10, [r0,#268] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 27 - - "ldr.w r9, [r0,#592] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#596] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#272] \n\t" - "str.w r10, [r0,#276] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 28 - - "ldr.w r9, [r0,#600] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#604] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#280] \n\t" - "str.w r10, [r0,#284] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 29 - - "ldr.w r9, [r0,#608] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#612] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#288] \n\t" - "str.w r10, [r0,#292] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 30 - - "ldr.w r9, [r0,#616] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#620] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#296] \n\t" - "str.w r10, [r0,#300] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 31 - - "ldr.w r9, [r0,#624] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#628] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#304] \n\t" - "str.w r10, [r0,#308] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 32 - - "ldr.w r9, [r0,#632] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#636] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#312] \n\t" - "str.w r10, [r0,#316] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 33 - - "ldr.w r9, [r0,#640] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#644] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#320] \n\t" - "str.w r10, [r0,#324] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 34 - - "ldr.w r9, [r0,#648] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#652] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#328] \n\t" - "str.w r10, [r0,#332] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 35 - - "ldr.w r9, [r0,#656] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#660] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#336] \n\t" - "str.w r10, [r0,#340] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 36 - - "ldr.w r9, [r0,#664] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#668] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#344] \n\t" - "str.w r10, [r0,#348] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 37 - - "ldr.w r9, [r0,#672] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#676] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#352] \n\t" - "str.w r10, [r0,#356] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 38 - - "ldr.w r9, [r0,#680] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#684] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#360] \n\t" - "str.w r10, [r0,#364] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 39 - - "ldr.w r9, [r0,#688] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#692] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#368] \n\t" - "str.w r10, [r0,#372] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 40 - - "ldr.w r9, [r0,#696] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#700] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#376] \n\t" - "str.w r10, [r0,#380] \n\t" - - // permutation - - // not need to calculate (not used) - - "ldmia.w sp!, {r4-r10} \n\t" - : - : [roundKeys] "r" (roundKeys) - : "cc"); -} diff --git a/romulus/Implementations/crypto_aead/romulusm1+v13/armsrc_NEC/skinny_key_schedule3.c b/romulus/Implementations/crypto_aead/romulusm1+v13/armsrc_NEC/skinny_key_schedule3.c deleted file mode 100644 index 0b8f83b..0000000 --- a/romulus/Implementations/crypto_aead/romulusm1+v13/armsrc_NEC/skinny_key_schedule3.c +++ /dev/null @@ -1,2201 +0,0 @@ -/****************************************************************************** - * Copyright (c) 2020, NEC Corporation. - * - * THIS CODE IS FURNISHED TO YOU "AS IS" WITHOUT WARRANTY OF ANY KIND. - * - *****************************************************************************/ - -/* - * SKINNY-128-384 - * - * AC(c0 c1) ^ TK3 -> store - * ART(TK3) - * - * number of rounds : 40 - */ - -__attribute__((aligned(4))) -void RunEncryptionKeyScheduleTK3(unsigned char *roundKeys, unsigned char *pRC) -{ - // r0 : points to roundKeys(& masterKey) - // r1 : points to RC - // r2-r5 : key state - // r6-r7 : temp use - // r8 : constant(0x7f7f7f7f) - // r9 : constant(0x80808080) - asm volatile( - "stmdb sp!, {r4-r9} \n\t" - "ldr.w r2, [r0,#32] \n\t" // load master key - "ldr.w r3, [r0,#36] \n\t" // load master key - "ldr.w r4, [r0,#40] \n\t" // load master key - "ldr.w r5, [r0,#44] \n\t" // load master key - "mov.w r8, #0x7f7f7f7f \n\t" - "mov.w r9, #0x80808080 \n\t" - - // round 1 - - // AC(c0 c1) - "ldrb.w r6, [r1,#0] \n\t" // load RC - - "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc - "and.w r6, r6, #0xf \n\t" - "eor.w r6, r6, r2 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#384] \n\t" - "str.w r7, [r0,#388] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 2 - - // AC(c0 c1) - "ldrb.w r6, [r1,#1] \n\t" // load RC - - "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc - "and.w r6, r6, #0xf \n\t" - "eor.w r6, r6, r2 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#392] \n\t" - "str.w r7, [r0,#396] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 3 - - // AC(c0 c1) - "ldrb.w r6, [r1,#2] \n\t" // load RC - - "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc - "and.w r6, r6, #0xf \n\t" - "eor.w r6, r6, r2 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#400] \n\t" - "str.w r7, [r0,#404] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 4 - - // AC(c0 c1) - "ldrb.w r6, [r1,#3] \n\t" // load RC - - "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc - "and.w r6, r6, #0xf \n\t" - "eor.w r6, r6, r2 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#408] \n\t" - "str.w r7, [r0,#412] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 5 - - // AC(c0 c1) - "ldrb.w r6, [r1,#4] \n\t" // load RC - - "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc - "and.w r6, r6, #0xf \n\t" - "eor.w r6, r6, r2 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#416] \n\t" - "str.w r7, [r0,#420] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 6 - - // AC(c0 c1) - "ldrb.w r6, [r1,#5] \n\t" // load RC - - "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc - "and.w r6, r6, #0xf \n\t" - "eor.w r6, r6, r2 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#424] \n\t" - "str.w r7, [r0,#428] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 7 - - // AC(c0 c1) - "ldrb.w r6, [r1,#6] \n\t" // load RC - - "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc - "and.w r6, r6, #0xf \n\t" - "eor.w r6, r6, r2 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#432] \n\t" - "str.w r7, [r0,#436] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 8 - - // AC(c0 c1) - "ldrb.w r6, [r1,#7] \n\t" // load RC - - "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc - "and.w r6, r6, #0xf \n\t" - "eor.w r6, r6, r2 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#440] \n\t" - "str.w r7, [r0,#444] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 9 - - // AC(c0 c1) - "ldrb.w r6, [r1,#8] \n\t" // load RC - - "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc - "and.w r6, r6, #0xf \n\t" - "eor.w r6, r6, r2 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#448] \n\t" - "str.w r7, [r0,#452] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 10 - - // AC(c0 c1) - "ldrb.w r6, [r1,#9] \n\t" // load RC - - "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc - "and.w r6, r6, #0xf \n\t" - "eor.w r6, r6, r2 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#456] \n\t" - "str.w r7, [r0,#460] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 11 - - // AC(c0 c1) - "ldrb.w r6, [r1,#10] \n\t" // load RC - - "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc - "and.w r6, r6, #0xf \n\t" - "eor.w r6, r6, r2 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#464] \n\t" - "str.w r7, [r0,#468] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 12 - - // AC(c0 c1) - "ldrb.w r6, [r1,#11] \n\t" // load RC - - "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc - "and.w r6, r6, #0xf \n\t" - "eor.w r6, r6, r2 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#472] \n\t" - "str.w r7, [r0,#476] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 13 - - // AC(c0 c1) - "ldrb.w r6, [r1,#12] \n\t" // load RC - - "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc - "and.w r6, r6, #0xf \n\t" - "eor.w r6, r6, r2 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#480] \n\t" - "str.w r7, [r0,#484] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 14 - - // AC(c0 c1) - "ldrb.w r6, [r1,#13] \n\t" // load RC - - "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc - "and.w r6, r6, #0xf \n\t" - "eor.w r6, r6, r2 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#488] \n\t" - "str.w r7, [r0,#492] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 15 - - // AC(c0 c1) - "ldrb.w r6, [r1,#14] \n\t" // load RC - - "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc - "and.w r6, r6, #0xf \n\t" - "eor.w r6, r6, r2 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#496] \n\t" - "str.w r7, [r0,#500] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 16 - - // AC(c0 c1) - "ldrb.w r6, [r1,#15] \n\t" // load RC - - "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc - "and.w r6, r6, #0xf \n\t" - "eor.w r6, r6, r2 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#504] \n\t" - "str.w r7, [r0,#508] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 17 - - // AC(c0 c1) - "ldrb.w r6, [r1,#16] \n\t" // load RC - - "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc - "and.w r6, r6, #0xf \n\t" - "eor.w r6, r6, r2 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#512] \n\t" - "str.w r7, [r0,#516] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 18 - - // AC(c0 c1) - "ldrb.w r6, [r1,#17] \n\t" // load RC - - "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc - "and.w r6, r6, #0xf \n\t" - "eor.w r6, r6, r2 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#520] \n\t" - "str.w r7, [r0,#524] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 19 - - // AC(c0 c1) - "ldrb.w r6, [r1,#18] \n\t" // load RC - - "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc - "and.w r6, r6, #0xf \n\t" - "eor.w r6, r6, r2 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#528] \n\t" - "str.w r7, [r0,#532] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 20 - - // AC(c0 c1) - "ldrb.w r6, [r1,#19] \n\t" // load RC - - "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc - "and.w r6, r6, #0xf \n\t" - "eor.w r6, r6, r2 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#536] \n\t" - "str.w r7, [r0,#540] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 21 - - // AC(c0 c1) - "ldrb.w r6, [r1,#20] \n\t" // load RC - - "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc - "and.w r6, r6, #0xf \n\t" - "eor.w r6, r6, r2 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#544] \n\t" - "str.w r7, [r0,#548] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 22 - - // AC(c0 c1) - "ldrb.w r6, [r1,#21] \n\t" // load RC - - "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc - "and.w r6, r6, #0xf \n\t" - "eor.w r6, r6, r2 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#552] \n\t" - "str.w r7, [r0,#556] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 23 - - // AC(c0 c1) - "ldrb.w r6, [r1,#22] \n\t" // load RC - - "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc - "and.w r6, r6, #0xf \n\t" - "eor.w r6, r6, r2 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#560] \n\t" - "str.w r7, [r0,#564] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 24 - - // AC(c0 c1) - "ldrb.w r6, [r1,#23] \n\t" // load RC - - "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc - "and.w r6, r6, #0xf \n\t" - "eor.w r6, r6, r2 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#568] \n\t" - "str.w r7, [r0,#572] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 25 - - // AC(c0 c1) - "ldrb.w r6, [r1,#24] \n\t" // load RC - - "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc - "and.w r6, r6, #0xf \n\t" - "eor.w r6, r6, r2 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#576] \n\t" - "str.w r7, [r0,#580] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 26 - - // AC(c0 c1) - "ldrb.w r6, [r1,#25] \n\t" // load RC - - "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc - "and.w r6, r6, #0xf \n\t" - "eor.w r6, r6, r2 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#584] \n\t" - "str.w r7, [r0,#588] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 27 - - // AC(c0 c1) - "ldrb.w r6, [r1,#26] \n\t" // load RC - - "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc - "and.w r6, r6, #0xf \n\t" - "eor.w r6, r6, r2 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#592] \n\t" - "str.w r7, [r0,#596] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 28 - - // AC(c0 c1) - "ldrb.w r6, [r1,#27] \n\t" // load RC - - "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc - "and.w r6, r6, #0xf \n\t" - "eor.w r6, r6, r2 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#600] \n\t" - "str.w r7, [r0,#604] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 29 - - // AC(c0 c1) - "ldrb.w r6, [r1,#28] \n\t" // load RC - - "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc - "and.w r6, r6, #0xf \n\t" - "eor.w r6, r6, r2 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#608] \n\t" - "str.w r7, [r0,#612] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 30 - - // AC(c0 c1) - "ldrb.w r6, [r1,#29] \n\t" // load RC - - "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc - "and.w r6, r6, #0xf \n\t" - "eor.w r6, r6, r2 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#616] \n\t" - "str.w r7, [r0,#620] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 31 - - // AC(c0 c1) - "ldrb.w r6, [r1,#30] \n\t" // load RC - - "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc - "and.w r6, r6, #0xf \n\t" - "eor.w r6, r6, r2 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#624] \n\t" - "str.w r7, [r0,#628] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 32 - - // AC(c0 c1) - "ldrb.w r6, [r1,#31] \n\t" // load RC - - "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc - "and.w r6, r6, #0xf \n\t" - "eor.w r6, r6, r2 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#632] \n\t" - "str.w r7, [r0,#636] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 33 - - // AC(c0 c1) - "ldrb.w r6, [r1,#32] \n\t" // load RC - - "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc - "and.w r6, r6, #0xf \n\t" - "eor.w r6, r6, r2 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#640] \n\t" - "str.w r7, [r0,#644] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 34 - - // AC(c0 c1) - "ldrb.w r6, [r1,#33] \n\t" // load RC - - "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc - "and.w r6, r6, #0xf \n\t" - "eor.w r6, r6, r2 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#648] \n\t" - "str.w r7, [r0,#652] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 35 - - // AC(c0 c1) - "ldrb.w r6, [r1,#34] \n\t" // load RC - - "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc - "and.w r6, r6, #0xf \n\t" - "eor.w r6, r6, r2 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#656] \n\t" - "str.w r7, [r0,#660] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 36 - - // AC(c0 c1) - "ldrb.w r6, [r1,#35] \n\t" // load RC - - "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc - "and.w r6, r6, #0xf \n\t" - "eor.w r6, r6, r2 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#664] \n\t" - "str.w r7, [r0,#668] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 37 - - // AC(c0 c1) - "ldrb.w r6, [r1,#36] \n\t" // load RC - - "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc - "and.w r6, r6, #0xf \n\t" - "eor.w r6, r6, r2 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#672] \n\t" - "str.w r7, [r0,#676] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 38 - - // AC(c0 c1) - "ldrb.w r6, [r1,#37] \n\t" // load RC - - "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc - "and.w r6, r6, #0xf \n\t" - "eor.w r6, r6, r2 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#680] \n\t" - "str.w r7, [r0,#684] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 39 - - // AC(c0 c1) - "ldrb.w r6, [r1,#38] \n\t" // load RC - - "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc - "and.w r6, r6, #0xf \n\t" - "eor.w r6, r6, r2 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#688] \n\t" - "str.w r7, [r0,#692] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 40 - - // AC(c0 c1) - "ldrb.w r6, [r1,#39] \n\t" // load RC - - "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc - "and.w r6, r6, #0xf \n\t" - "eor.w r6, r6, r2 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#696] \n\t" - "str.w r7, [r0,#700] \n\t" - - // permutation - - // not need to calculate (not used) - - "ldmia.w sp!, {r4-r9} \n\t" - : - : [roundKeys] "r" (roundKeys), [pRC] "r" (pRC) - : "cc"); -} diff --git a/romulus/Implementations/crypto_aead/romulusm1+v13/armsrc_NEC/skinny_main.c b/romulus/Implementations/crypto_aead/romulusm1+v13/armsrc_NEC/skinny_main.c deleted file mode 100644 index e266958..0000000 --- a/romulus/Implementations/crypto_aead/romulusm1+v13/armsrc_NEC/skinny_main.c +++ /dev/null @@ -1,3462 +0,0 @@ -/****************************************************************************** - * Copyright (c) 2020, NEC Corporation. - * - * THIS CODE IS FURNISHED TO YOU "AS IS" WITHOUT WARRANTY OF ANY KIND. - * - *****************************************************************************/ - -/* - * SKINNY-128-384 - * - * ART(TK1) -> store - * load AC(c0 c1) ^ TK3 ^ TK2 - * load TK1 - * calc AC(c0 c1) ^ TK3 ^ TK2 ^ TK1 -> use at (AC->ART) - * SC->SR->(AC->ART)->MC - * - * number of rounds : 40 - */ - -#include "skinny.h" - -/* - * S-BOX - */ -unsigned char SBOX[512] -= { - // Original - 0x65, 0x4c, 0x6a, 0x42, 0x4b, 0x63, 0x43, 0x6b, 0x55, 0x75, 0x5a, 0x7a, 0x53, 0x73, 0x5b, 0x7b, - 0x35, 0x8c, 0x3a, 0x81, 0x89, 0x33, 0x80, 0x3b, 0x95, 0x25, 0x98, 0x2a, 0x90, 0x23, 0x99, 0x2b, - 0xe5, 0xcc, 0xe8, 0xc1, 0xc9, 0xe0, 0xc0, 0xe9, 0xd5, 0xf5, 0xd8, 0xf8, 0xd0, 0xf0, 0xd9, 0xf9, - 0xa5, 0x1c, 0xa8, 0x12, 0x1b, 0xa0, 0x13, 0xa9, 0x05, 0xb5, 0x0a, 0xb8, 0x03, 0xb0, 0x0b, 0xb9, - 0x32, 0x88, 0x3c, 0x85, 0x8d, 0x34, 0x84, 0x3d, 0x91, 0x22, 0x9c, 0x2c, 0x94, 0x24, 0x9d, 0x2d, - 0x62, 0x4a, 0x6c, 0x45, 0x4d, 0x64, 0x44, 0x6d, 0x52, 0x72, 0x5c, 0x7c, 0x54, 0x74, 0x5d, 0x7d, - 0xa1, 0x1a, 0xac, 0x15, 0x1d, 0xa4, 0x14, 0xad, 0x02, 0xb1, 0x0c, 0xbc, 0x04, 0xb4, 0x0d, 0xbd, - 0xe1, 0xc8, 0xec, 0xc5, 0xcd, 0xe4, 0xc4, 0xed, 0xd1, 0xf1, 0xdc, 0xfc, 0xd4, 0xf4, 0xdd, 0xfd, - 0x36, 0x8e, 0x38, 0x82, 0x8b, 0x30, 0x83, 0x39, 0x96, 0x26, 0x9a, 0x28, 0x93, 0x20, 0x9b, 0x29, - 0x66, 0x4e, 0x68, 0x41, 0x49, 0x60, 0x40, 0x69, 0x56, 0x76, 0x58, 0x78, 0x50, 0x70, 0x59, 0x79, - 0xa6, 0x1e, 0xaa, 0x11, 0x19, 0xa3, 0x10, 0xab, 0x06, 0xb6, 0x08, 0xba, 0x00, 0xb3, 0x09, 0xbb, - 0xe6, 0xce, 0xea, 0xc2, 0xcb, 0xe3, 0xc3, 0xeb, 0xd6, 0xf6, 0xda, 0xfa, 0xd3, 0xf3, 0xdb, 0xfb, - 0x31, 0x8a, 0x3e, 0x86, 0x8f, 0x37, 0x87, 0x3f, 0x92, 0x21, 0x9e, 0x2e, 0x97, 0x27, 0x9f, 0x2f, - 0x61, 0x48, 0x6e, 0x46, 0x4f, 0x67, 0x47, 0x6f, 0x51, 0x71, 0x5e, 0x7e, 0x57, 0x77, 0x5f, 0x7f, - 0xa2, 0x18, 0xae, 0x16, 0x1f, 0xa7, 0x17, 0xaf, 0x01, 0xb2, 0x0e, 0xbe, 0x07, 0xb7, 0x0f, 0xbf, - 0xe2, 0xca, 0xee, 0xc6, 0xcf, 0xe7, 0xc7, 0xef, 0xd2, 0xf2, 0xde, 0xfe, 0xd7, 0xf7, 0xdf, 0xff, - - // Original ^ c2(0x02) - 0x67, 0x4e, 0x68, 0x40, 0x49, 0x61, 0x41, 0x69, 0x57, 0x77, 0x58, 0x78, 0x51, 0x71, 0x59, 0x79, - 0x37, 0x8e, 0x38, 0x83, 0x8b, 0x31, 0x82, 0x39, 0x97, 0x27, 0x9a, 0x28, 0x92, 0x21, 0x9b, 0x29, - 0xe7, 0xce, 0xea, 0xc3, 0xcb, 0xe2, 0xc2, 0xeb, 0xd7, 0xf7, 0xda, 0xfa, 0xd2, 0xf2, 0xdb, 0xfb, - 0xa7, 0x1e, 0xaa, 0x10, 0x19, 0xa2, 0x11, 0xab, 0x07, 0xb7, 0x08, 0xba, 0x01, 0xb2, 0x09, 0xbb, - 0x30, 0x8a, 0x3e, 0x87, 0x8f, 0x36, 0x86, 0x3f, 0x93, 0x20, 0x9e, 0x2e, 0x96, 0x26, 0x9f, 0x2f, - 0x60, 0x48, 0x6e, 0x47, 0x4f, 0x66, 0x46, 0x6f, 0x50, 0x70, 0x5e, 0x7e, 0x56, 0x76, 0x5f, 0x7f, - 0xa3, 0x18, 0xae, 0x17, 0x1f, 0xa6, 0x16, 0xaf, 0x00, 0xb3, 0x0e, 0xbe, 0x06, 0xb6, 0x0f, 0xbf, - 0xe3, 0xca, 0xee, 0xc7, 0xcf, 0xe6, 0xc6, 0xef, 0xd3, 0xf3, 0xde, 0xfe, 0xd6, 0xf6, 0xdf, 0xff, - 0x34, 0x8c, 0x3a, 0x80, 0x89, 0x32, 0x81, 0x3b, 0x94, 0x24, 0x98, 0x2a, 0x91, 0x22, 0x99, 0x2b, - 0x64, 0x4c, 0x6a, 0x43, 0x4b, 0x62, 0x42, 0x6b, 0x54, 0x74, 0x5a, 0x7a, 0x52, 0x72, 0x5b, 0x7b, - 0xa4, 0x1c, 0xa8, 0x13, 0x1b, 0xa1, 0x12, 0xa9, 0x04, 0xb4, 0x0a, 0xb8, 0x02, 0xb1, 0x0b, 0xb9, - 0xe4, 0xcc, 0xe8, 0xc0, 0xc9, 0xe1, 0xc1, 0xe9, 0xd4, 0xf4, 0xd8, 0xf8, 0xd1, 0xf1, 0xd9, 0xf9, - 0x33, 0x88, 0x3c, 0x84, 0x8d, 0x35, 0x85, 0x3d, 0x90, 0x23, 0x9c, 0x2c, 0x95, 0x25, 0x9d, 0x2d, - 0x63, 0x4a, 0x6c, 0x44, 0x4d, 0x65, 0x45, 0x6d, 0x53, 0x73, 0x5c, 0x7c, 0x55, 0x75, 0x5d, 0x7d, - 0xa0, 0x1a, 0xac, 0x14, 0x1d, 0xa5, 0x15, 0xad, 0x03, 0xb0, 0x0c, 0xbc, 0x05, 0xb5, 0x0d, 0xbd, - 0xe0, 0xc8, 0xec, 0xc4, 0xcd, 0xe5, 0xc5, 0xed, 0xd0, 0xf0, 0xdc, 0xfc, 0xd5, 0xf5, 0xdd, 0xfd, -}; - -/* - * Round Constants - */ -unsigned char RC[56] -= { - 0x01, 0x03, 0x07, 0x0F, 0x1F, 0x3E, 0x3D, 0x3B, - 0x37, 0x2F, 0x1E, 0x3C, 0x39, 0x33, 0x27, 0x0E, - 0x1D, 0x3A, 0x35, 0x2B, 0x16, 0x2C, 0x18, 0x30, - 0x21, 0x02, 0x05, 0x0B, 0x17, 0x2E, 0x1C, 0x38, - 0x31, 0x23, 0x06, 0x0D, 0x1B, 0x36, 0x2D, 0x1A, - 0x34, 0x29, 0x12, 0x24, 0x08, 0x11, 0x22, 0x04, - 0x09, 0x13, 0x26, 0x0c, 0x19, 0x32, 0x25, 0x0a,}; - -extern void Encrypt(unsigned char *block, unsigned char *roundKeys, unsigned char *pSBOX) __attribute__((noinline)); -extern void RunEncryptionKeyScheduleTK2(unsigned char *roundKeys) __attribute__((noinline)); -extern void RunEncryptionKeyScheduleTK3(unsigned char *roundKeys, unsigned char *pRC) __attribute__((noinline)); - -void skinny_128_384_enc123_12 (unsigned char* input, skinny_ctrl* pskinny_ctrl, unsigned char* CNT, unsigned char* T, const unsigned char* K) -{ - *((unsigned int *)&pskinny_ctrl->roundKeys[0] ) = *((unsigned int *)&CNT[0]); - *((unsigned int *)&pskinny_ctrl->roundKeys[4] ) = *((unsigned int *)&CNT[4]); - *((unsigned int *)&pskinny_ctrl->roundKeys[16]) = *((unsigned int *)&T[0]); - *((unsigned int *)&pskinny_ctrl->roundKeys[20]) = *((unsigned int *)&T[4]); - *((unsigned int *)&pskinny_ctrl->roundKeys[24]) = *((unsigned int *)&T[8]); - *((unsigned int *)&pskinny_ctrl->roundKeys[28]) = *((unsigned int *)&T[12]); - *((unsigned int *)&pskinny_ctrl->roundKeys[32]) = *((unsigned int *)&K[0]); - *((unsigned int *)&pskinny_ctrl->roundKeys[36]) = *((unsigned int *)&K[4]); - *((unsigned int *)&pskinny_ctrl->roundKeys[40]) = *((unsigned int *)&K[8]); - *((unsigned int *)&pskinny_ctrl->roundKeys[44]) = *((unsigned int *)&K[12]); - - RunEncryptionKeyScheduleTK3(pskinny_ctrl->roundKeys, RC); - RunEncryptionKeyScheduleTK2(pskinny_ctrl->roundKeys); - Encrypt(input, pskinny_ctrl->roundKeys, SBOX); - - pskinny_ctrl->func_skinny_128_384_enc = skinny_128_384_enc12_12; -} - -void skinny_128_384_enc12_12 (unsigned char* input, skinny_ctrl* pskinny_ctrl, unsigned char* CNT, unsigned char* T, const unsigned char* K) -{ - (void)K; - - *((unsigned int *)&pskinny_ctrl->roundKeys[0] ) = *((unsigned int *)&CNT[0]); - *((unsigned int *)&pskinny_ctrl->roundKeys[4] ) = *((unsigned int *)&CNT[4]); - *((unsigned int *)&pskinny_ctrl->roundKeys[16]) = *((unsigned int *)&T[0]); - *((unsigned int *)&pskinny_ctrl->roundKeys[20]) = *((unsigned int *)&T[4]); - *((unsigned int *)&pskinny_ctrl->roundKeys[24]) = *((unsigned int *)&T[8]); - *((unsigned int *)&pskinny_ctrl->roundKeys[28]) = *((unsigned int *)&T[12]); - - RunEncryptionKeyScheduleTK2(pskinny_ctrl->roundKeys); - Encrypt(input, pskinny_ctrl->roundKeys, SBOX); -} - -extern void skinny_128_384_enc1_1 (unsigned char* input, skinny_ctrl* pskinny_ctrl, unsigned char* CNT, unsigned char* T, const unsigned char* K) -{ - (void)T; - (void)K; - - *((unsigned int *)&pskinny_ctrl->roundKeys[0] ) = *((unsigned int *)&CNT[0]); - *((unsigned int *)&pskinny_ctrl->roundKeys[4] ) = *((unsigned int *)&CNT[4]); - - Encrypt(input, pskinny_ctrl->roundKeys, SBOX); -} - -__attribute__((aligned(4))) -void Encrypt(unsigned char *block, unsigned char *roundKeys, unsigned char *pSBOX) -{ - // r0 : ponits to plaintext - // r1 : points to roundKeys(& masterKey) - // r2 : points to SBOX - // r3-r6 : cipher state - // r7-r12: temp use - // r14 : temp use - asm volatile( - "stmdb sp!, {r4-r12,r14} \n\t" - "stmdb.w sp!, {r0} \n\t" // push store pointer - -// ART(TK1) - - "ldm.w r1, {r3-r4} \n\t" // load master key - - // round 1-2 - -// // round key store(do not need) -// "str.w r3, [r1,#0] \n\t" -// "str.w r4, [r1,#4] \n\t" - - // premutation - - // r3 ( k3 k2 k1 k0) --- --- --- --- - // r4 ( k7 k6 k5 k4) --- --- --- --- - // r5 (--- --- --- ---) -----> k5 k0 k7 k1 - // r6 (--- --- --- ---) k3 k4 k6 k2 -#ifdef STM32F4 // for Cortex-M4 - "ror.w r5,r4, #16 \n\t" // r5( k5 k4 k7 k6) - "bfi.w r5,r3, #16,#8 \n\t" // r5( k5 k0 k7 k6) - "pkhtb.w r6,r3, r3, asr #16 \n\t" // r6( k3 k2 k3 k2) - "ror.w r3, #8 \n\t" // r3( k0 k3 k2 k1) - "bfi.w r5,r3, #0,#8 \n\t" // r5( k5 k4 k2 k6) - "bfi.w r6,r4, #16,#8 \n\t" // r6( k3 k4 k3 k2) - "ror.w r4,#16 \n\t" // r4( k5 k4 k7 k6) - "bfi.w r6,r4, #8,#8 \n\t" // r6( k3 k4 k6 k2) -#else // for Cortex-M3 - "rev.w r5, r4 \n\t" // r5( k4 k5 k6 k7) - "lsl.w r5, r5, #8 \n\t" // r5( k5 k6 k7 ---) - "bfi.w r5,r3, #16,#8 \n\t" // r5( k5 k0 k7 ---) - "lsr.w r3, r3, #8 \n\t" // r3(--- k3 k2 k1) - "bfi.w r5,r3, #0, #8 \n\t" // r5( k5 k0 k7 k1) - "rev16.w r6, r3 \n\t" // r6( k3 --- k1 k2) - "bfi.w r6,r4, #16,#8 \n\t" // r6( k3 k4 k1 k2) - "lsr.w r4, r4, #16 \n\t" // r4(-- --- k7 k6) - "bfi.w r6,r4, #8, #8 \n\t" // r6( k3 k4 k6 k2) -#endif - // round 3-4 - - // round key store - "str.w r5, [r1,#8] \n\t" - "str.w r6, [r1,#12] \n\t" - - // premutation - - // r3 (--- --- --- ---) k5 k0 k7 k1 - // r4 (--- --- --- ---) k3 k4 k6 k2 - // r5 ( k3 k2 k1 k0) -----> --- --- --- --- - // r6 ( k7 k6 k5 k4) --- --- --- --- -#ifdef STM32F4 // for Cortex-M4 - "ror.w r3,r6, #16 \n\t" // r3( k5 k4 k7 k6) - "bfi.w r3,r5, #16,#8 \n\t" // r3( k5 k0 k7 k6) - "pkhtb.w r4,r5, r5, asr #16 \n\t" // r4( k3 k2 k3 k2) - "ror.w r5, #8 \n\t" // r5( k0 k3 k2 k1) - "bfi.w r3,r5, #0,#8 \n\t" // r3( k5 k4 k2 k6) - "bfi.w r4,r6, #16,#8 \n\t" // r4( k3 k4 k3 k2) - "ror.w r6,#16 \n\t" // r6( k5 k4 k7 k6) - "bfi.w r4,r6, #8,#8 \n\t" // r4( k3 k4 k6 k2) -#else // for Cortex-M3 - "rev.w r3, r6 \n\t" // r3( k4 k5 k6 k7) - "lsl.w r3, r3, #8 \n\t" // r3( k5 k6 k7 ---) - "bfi.w r3,r5, #16,#8 \n\t" // r3( k5 k0 k7 ---) - "lsr.w r5, r5, #8 \n\t" // r5(--- k3 k2 k1) - "bfi.w r3,r5, #0, #8 \n\t" // r3( k5 k0 k7 k1) - "rev16.w r4, r5 \n\t" // r4( k3 --- k1 k2) - "bfi.w r4,r6, #16,#8 \n\t" // r4( k3 k4 k1 k2) - "lsr.w r6, r6, #16 \n\t" // r6(-- --- k7 k6) - "bfi.w r4,r6, #8, #8 \n\t" // r4( k3 k4 k6 k2) -#endif - - // round 5-6 - - // round key store - "str.w r3, [r1,#16] \n\t" - "str.w r4, [r1,#20] \n\t" - - // premutation - - // r3 ( k3 k2 k1 k0) --- --- --- --- - // r4 ( k7 k6 k5 k4) --- --- --- --- - // r5 (--- --- --- ---) -----> k5 k0 k7 k1 - // r6 (--- --- --- ---) k3 k4 k6 k2 -#ifdef STM32F4 // for Cortex-M4 - "ror.w r5,r4, #16 \n\t" // r5( k5 k4 k7 k6) - "bfi.w r5,r3, #16,#8 \n\t" // r5( k5 k0 k7 k6) - "pkhtb.w r6,r3, r3, asr #16 \n\t" // r6( k3 k2 k3 k2) - "ror.w r3, #8 \n\t" // r3( k0 k3 k2 k1) - "bfi.w r5,r3, #0,#8 \n\t" // r5( k5 k4 k2 k6) - "bfi.w r6,r4, #16,#8 \n\t" // r6( k3 k4 k3 k2) - "ror.w r4,#16 \n\t" // r4( k5 k4 k7 k6) - "bfi.w r6,r4, #8,#8 \n\t" // r6( k3 k4 k6 k2) -#else // for Cortex-M3 - "rev.w r5, r4 \n\t" // r5( k4 k5 k6 k7) - "lsl.w r5, r5, #8 \n\t" // r5( k5 k6 k7 ---) - "bfi.w r5,r3, #16,#8 \n\t" // r5( k5 k0 k7 ---) - "lsr.w r3, r3, #8 \n\t" // r3(--- k3 k2 k1) - "bfi.w r5,r3, #0, #8 \n\t" // r5( k5 k0 k7 k1) - "rev16.w r6, r3 \n\t" // r6( k3 --- k1 k2) - "bfi.w r6,r4, #16,#8 \n\t" // r6( k3 k4 k1 k2) - "lsr.w r4, r4, #16 \n\t" // r4(-- --- k7 k6) - "bfi.w r6,r4, #8, #8 \n\t" // r6( k3 k4 k6 k2) -#endif - // round 7-8 - - // round key store - "str.w r5, [r1,#24] \n\t" - "str.w r6, [r1,#28] \n\t" - - // premutation - - // r3 (--- --- --- ---) k5 k0 k7 k1 - // r4 (--- --- --- ---) k3 k4 k6 k2 - // r5 ( k3 k2 k1 k0) -----> --- --- --- --- - // r6 ( k7 k6 k5 k4) --- --- --- --- -#ifdef STM32F4 // for Cortex-M4 - "ror.w r3,r6, #16 \n\t" // r3( k5 k4 k7 k6) - "bfi.w r3,r5, #16,#8 \n\t" // r3( k5 k0 k7 k6) - "pkhtb.w r4,r5, r5, asr #16 \n\t" // r4( k3 k2 k3 k2) - "ror.w r5, #8 \n\t" // r5( k0 k3 k2 k1) - "bfi.w r3,r5, #0,#8 \n\t" // r3( k5 k4 k2 k6) - "bfi.w r4,r6, #16,#8 \n\t" // r4( k3 k4 k3 k2) - "ror.w r6,#16 \n\t" // r6( k5 k4 k7 k6) - "bfi.w r4,r6, #8,#8 \n\t" // r4( k3 k4 k6 k2) -#else // for Cortex-M3 - "rev.w r3, r6 \n\t" // r3( k4 k5 k6 k7) - "lsl.w r3, r3, #8 \n\t" // r3( k5 k6 k7 ---) - "bfi.w r3,r5, #16,#8 \n\t" // r3( k5 k0 k7 ---) - "lsr.w r5, r5, #8 \n\t" // r5(--- k3 k2 k1) - "bfi.w r3,r5, #0, #8 \n\t" // r3( k5 k0 k7 k1) - "rev16.w r4, r5 \n\t" // r4( k3 --- k1 k2) - "bfi.w r4,r6, #16,#8 \n\t" // r4( k3 k4 k1 k2) - "lsr.w r6, r6, #16 \n\t" // r6(-- --- k7 k6) - "bfi.w r4,r6, #8, #8 \n\t" // r4( k3 k4 k6 k2) -#endif - - // round 9-10 - - // round key store - "str.w r3, [r1,#32] \n\t" - "str.w r4, [r1,#36] \n\t" - - // premutation - - // r3 ( k3 k2 k1 k0) --- --- --- --- - // r4 ( k7 k6 k5 k4) --- --- --- --- - // r5 (--- --- --- ---) -----> k5 k0 k7 k1 - // r6 (--- --- --- ---) k3 k4 k6 k2 -#ifdef STM32F4 // for Cortex-M4 - "ror.w r5,r4, #16 \n\t" // r5( k5 k4 k7 k6) - "bfi.w r5,r3, #16,#8 \n\t" // r5( k5 k0 k7 k6) - "pkhtb.w r6,r3, r3, asr #16 \n\t" // r6( k3 k2 k3 k2) - "ror.w r3, #8 \n\t" // r3( k0 k3 k2 k1) - "bfi.w r5,r3, #0,#8 \n\t" // r5( k5 k4 k2 k6) - "bfi.w r6,r4, #16,#8 \n\t" // r6( k3 k4 k3 k2) - "ror.w r4,#16 \n\t" // r4( k5 k4 k7 k6) - "bfi.w r6,r4, #8,#8 \n\t" // r6( k3 k4 k6 k2) -#else // for Cortex-M3 - "rev.w r5, r4 \n\t" // r5( k4 k5 k6 k7) - "lsl.w r5, r5, #8 \n\t" // r5( k5 k6 k7 ---) - "bfi.w r5,r3, #16,#8 \n\t" // r5( k5 k0 k7 ---) - "lsr.w r3, r3, #8 \n\t" // r3(--- k3 k2 k1) - "bfi.w r5,r3, #0, #8 \n\t" // r5( k5 k0 k7 k1) - "rev16.w r6, r3 \n\t" // r6( k3 --- k1 k2) - "bfi.w r6,r4, #16,#8 \n\t" // r6( k3 k4 k1 k2) - "lsr.w r4, r4, #16 \n\t" // r4(-- --- k7 k6) - "bfi.w r6,r4, #8, #8 \n\t" // r6( k3 k4 k6 k2) -#endif - // round 11-12 - - // round key store - "str.w r5, [r1,#40] \n\t" - "str.w r6, [r1,#44] \n\t" - - // premutation - - // r3 (--- --- --- ---) k5 k0 k7 k1 - // r4 (--- --- --- ---) k3 k4 k6 k2 - // r5 ( k3 k2 k1 k0) -----> --- --- --- --- - // r6 ( k7 k6 k5 k4) --- --- --- --- -#ifdef STM32F4 // for Cortex-M4 - "ror.w r3,r6, #16 \n\t" // r3( k5 k4 k7 k6) - "bfi.w r3,r5, #16,#8 \n\t" // r3( k5 k0 k7 k6) - "pkhtb.w r4,r5, r5, asr #16 \n\t" // r4( k3 k2 k3 k2) - "ror.w r5, #8 \n\t" // r5( k0 k3 k2 k1) - "bfi.w r3,r5, #0,#8 \n\t" // r3( k5 k4 k2 k6) - "bfi.w r4,r6, #16,#8 \n\t" // r4( k3 k4 k3 k2) - "ror.w r6,#16 \n\t" // r6( k5 k4 k7 k6) - "bfi.w r4,r6, #8,#8 \n\t" // r4( k3 k4 k6 k2) -#else // for Cortex-M3 - "rev.w r3, r6 \n\t" // r3( k4 k5 k6 k7) - "lsl.w r3, r3, #8 \n\t" // r3( k5 k6 k7 ---) - "bfi.w r3,r5, #16,#8 \n\t" // r3( k5 k0 k7 ---) - "lsr.w r5, r5, #8 \n\t" // r5(--- k3 k2 k1) - "bfi.w r3,r5, #0, #8 \n\t" // r3( k5 k0 k7 k1) - "rev16.w r4, r5 \n\t" // r4( k3 --- k1 k2) - "bfi.w r4,r6, #16,#8 \n\t" // r4( k3 k4 k1 k2) - "lsr.w r6, r6, #16 \n\t" // r6(-- --- k7 k6) - "bfi.w r4,r6, #8, #8 \n\t" // r4( k3 k4 k6 k2) -#endif - - // round 13-14 - - // round key store - "str.w r3, [r1,#48] \n\t" - "str.w r4, [r1,#52] \n\t" - - // premutation - - // r3 ( k3 k2 k1 k0) --- --- --- --- - // r4 ( k7 k6 k5 k4) --- --- --- --- - // r5 (--- --- --- ---) -----> k5 k0 k7 k1 - // r6 (--- --- --- ---) k3 k4 k6 k2 -#ifdef STM32F4 // for Cortex-M4 - "ror.w r5,r4, #16 \n\t" // r5( k5 k4 k7 k6) - "bfi.w r5,r3, #16,#8 \n\t" // r5( k5 k0 k7 k6) - "pkhtb.w r6,r3, r3, asr #16 \n\t" // r6( k3 k2 k3 k2) - "ror.w r3, #8 \n\t" // r3( k0 k3 k2 k1) - "bfi.w r5,r3, #0,#8 \n\t" // r5( k5 k4 k2 k6) - "bfi.w r6,r4, #16,#8 \n\t" // r6( k3 k4 k3 k2) - "ror.w r4,#16 \n\t" // r4( k5 k4 k7 k6) - "bfi.w r6,r4, #8,#8 \n\t" // r6( k3 k4 k6 k2) -#else // for Cortex-M3 - "rev.w r5, r4 \n\t" // r5( k4 k5 k6 k7) - "lsl.w r5, r5, #8 \n\t" // r5( k5 k6 k7 ---) - "bfi.w r5,r3, #16,#8 \n\t" // r5( k5 k0 k7 ---) - "lsr.w r3, r3, #8 \n\t" // r3(--- k3 k2 k1) - "bfi.w r5,r3, #0, #8 \n\t" // r5( k5 k0 k7 k1) - "rev16.w r6, r3 \n\t" // r6( k3 --- k1 k2) - "bfi.w r6,r4, #16,#8 \n\t" // r6( k3 k4 k1 k2) - "lsr.w r4, r4, #16 \n\t" // r4(-- --- k7 k6) - "bfi.w r6,r4, #8, #8 \n\t" // r6( k3 k4 k6 k2) -#endif - // round 15-16 - - // round key store - "str.w r5, [r1,#56] \n\t" - "str.w r6, [r1,#60] \n\t" - - // premutation - - // not need to calculate (not used) - -// SC->(AC->ART)->SR->MC - - "add.w r14, r2, #256 \n\t" // point to SBOX ^ c2(0x02) - - "ldm.w r0, {r3-r6} \n\t" // load plaintext - // r0 now free to overwrite - - // round 1 - - // SubCell+ShiftRow+AC(c2) - // r3 (s3 s2 s1 s0) - // r4 (s7 s6 s5 s4) - // r5 (s11 s10 s9 s8) - // r6 (s15 s14 s13 s12) - - // 1st-2nd line - // r3(s3 s2 s1 s0) - "uxtb.w r9, r3, ror #24 \n\t" // s3 - "uxtb.w r8, r3, ror #16 \n\t" // s2 - "uxtb.w r7, r3, ror #8 \n\t" // s1 - "uxtb.w r3, r3 \n\t" // s0 - // r4(s6 s5 s4 s7) - "uxtb.w r12, r4, ror #16 \n\t" // s6 - "uxtb.w r11, r4, ror #8 \n\t" // s5 - "uxtb.w r10, r4 \n\t" // s4 - "uxtb.w r4, r4, ror #24 \n\t" // s7 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "eor.w r3, r3, r7, lsl #8 \n\t" - "eor.w r3, r3, r8, lsl #16 \n\t" - "eor.w r3, r3, r9, lsl #24 \n\t" - "eor.w r4, r4, r10, lsl #8 \n\t" - "eor.w r4, r4, r11, lsl #16 \n\t" - "eor.w r4, r4, r12, lsl #24 \n\t" - - // 3rd-4th line - // r5(s9 s8 s11 s10) - "uxtb.w r9, r5, ror #8 \n\t" // s9 - "uxtb.w r8, r5 \n\t" // s8 - "uxtb.w r7, r5, ror #24 \n\t" // s11 - "uxtb.w r5, r5, ror #16 \n\t" // s10 - // r6(s12 s15 s14 s13) - "uxtb.w r12, r6 \n\t" // s12 - "uxtb.w r11, r6, ror #24 \n\t" // s15 - "uxtb.w r10, r6, ror #16 \n\t" // s14 - "uxtb.w r6, r6, ror #8 \n\t" // s13 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "eor.w r5, r5, r7, lsl #8 \n\t" - "eor.w r5, r5, r8, lsl #16 \n\t" - "eor.w r5, r5, r9, lsl #24 \n\t" - "eor.w r6, r6, r10, lsl #8 \n\t" - "eor.w r6, r6, r11, lsl #16 \n\t" - "eor.w r6, r6, r12, lsl #24 \n\t" - - // AddRoundKey and AddRoundConst(from roundKeys) - "ldr.w r9, [r1,#0] \n\t" // load TK1 - "ldr.w r10, [r1,#4] \n\t" // load TK1 - "ldr.w r11, [r1,#64] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "ldr.w r12, [r1,#68] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - - "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) - "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) - // r8( s9 s8 s11 s10) - // r6(s12 s14 s14 s13) - - // MixColumn - "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 - "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 - "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 - // r8 ----------------> r8 - - // round 2 - - // SubCell+ShiftRow+AC(c2) - // r7 (s3 s2 s1 s0) - // r8 (s7 s6 s5 s4) - // r9 (s11 s10 s9 s8) - // r10(s15 s14 s13 s12) - - // 1st-2nd line - // r7(s3 s2 s1 s0) - "uxtb.w r5, r7, ror #24 \n\t" // s3 - "uxtb.w r4, r7, ror #16 \n\t" // s2 - "uxtb.w r3, r7, ror #8 \n\t" // s1 - "uxtb.w r7, r7 \n\t" // s0 - // r8(s6 s5 s4 s7) - "uxtb.w r12, r8, ror #16 \n\t" // s6 - "uxtb.w r11, r8, ror #8 \n\t" // s5 - "uxtb.w r6, r8 \n\t" // s4 - "uxtb.w r8, r8, ror #24 \n\t" // s7 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldr.w r0, [r1,#72] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r7, r7, r3, lsl #8 \n\t" - "eor.w r7, r7, r4, lsl #16 \n\t" - "eor.w r7, r7, r5, lsl #24 \n\t" - "eor.w r8, r8, r6, lsl #8 \n\t" - "eor.w r8, r8, r11, lsl #16 \n\t" - "eor.w r8, r8, r12, lsl #24 \n\t" - "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) - - // 3rd-4th line - // r9(s9 s8 s11 s10) - "uxtb.w r5, r9, ror #8 \n\t" // s9 - "uxtb.w r7, r9 \n\t" // s8 - "uxtb.w r3, r9, ror #24 \n\t" // s11 - "uxtb.w r9, r9, ror #16 \n\t" // s10 - // r10(s12 s15 s14 s13) - "uxtb.w r12, r10 \n\t" // s12 - "uxtb.w r11, r10, ror #24 \n\t" // s15 - "uxtb.w r6, r10, ror #16 \n\t" // s14 - "uxtb.w r10, r10, ror #8 \n\t" // s13 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldr.w r0, [r1,#76] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r9, r9, r3, lsl #8 \n\t" - "eor.w r9, r9, r7, lsl #16 \n\t" - "eor.w r9, r9, r5, lsl #24 \n\t" - "eor.w r10, r10, r6, lsl #8 \n\t" - "eor.w r10, r10, r11, lsl #16 \n\t" - "eor.w r10, r10, r12, lsl #24 \n\t" - "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) - - // AddRoundKey and AddRoundConst(from roundKeys) - - // r9( s9 s8 s11 s10) - // r10(s12 s14 s14 s13) - - // MixColumn - "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 - "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 - "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 - // r4 ----------------> r4 - // round 3 - - // SubCell+ShiftRow+AC(c2) - // r3 (s3 s2 s1 s0) - // r4 (s7 s6 s5 s4) - // r5 (s11 s10 s9 s8) - // r6 (s15 s14 s13 s12) - - // 1st-2nd line - // r3(s3 s2 s1 s0) - "uxtb.w r9, r3, ror #24 \n\t" // s3 - "uxtb.w r8, r3, ror #16 \n\t" // s2 - "uxtb.w r7, r3, ror #8 \n\t" // s1 - "uxtb.w r3, r3 \n\t" // s0 - // r4(s6 s5 s4 s7) - "uxtb.w r12, r4, ror #16 \n\t" // s6 - "uxtb.w r11, r4, ror #8 \n\t" // s5 - "uxtb.w r10, r4 \n\t" // s4 - "uxtb.w r4, r4, ror #24 \n\t" // s7 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "eor.w r3, r3, r7, lsl #8 \n\t" - "eor.w r3, r3, r8, lsl #16 \n\t" - "eor.w r3, r3, r9, lsl #24 \n\t" - "eor.w r4, r4, r10, lsl #8 \n\t" - "eor.w r4, r4, r11, lsl #16 \n\t" - "eor.w r4, r4, r12, lsl #24 \n\t" - - // 3rd-4th line - // r5(s9 s8 s11 s10) - "uxtb.w r9, r5, ror #8 \n\t" // s9 - "uxtb.w r8, r5 \n\t" // s8 - "uxtb.w r7, r5, ror #24 \n\t" // s11 - "uxtb.w r5, r5, ror #16 \n\t" // s10 - // r6(s12 s15 s14 s13) - "uxtb.w r12, r6 \n\t" // s12 - "uxtb.w r11, r6, ror #24 \n\t" // s15 - "uxtb.w r10, r6, ror #16 \n\t" // s14 - "uxtb.w r6, r6, ror #8 \n\t" // s13 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "eor.w r5, r5, r7, lsl #8 \n\t" - "eor.w r5, r5, r8, lsl #16 \n\t" - "eor.w r5, r5, r9, lsl #24 \n\t" - "eor.w r6, r6, r10, lsl #8 \n\t" - "eor.w r6, r6, r11, lsl #16 \n\t" - "eor.w r6, r6, r12, lsl #24 \n\t" - - // AddRoundKey and AddRoundConst(from roundKeys) - "ldr.w r9, [r1,#8] \n\t" // load TK1 - "ldr.w r10, [r1,#12] \n\t" // load TK1 - "ldr.w r11, [r1,#80] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "ldr.w r12, [r1,#84] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - - "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) - "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) - // r8( s9 s8 s11 s10) - // r6(s12 s14 s14 s13) - - // MixColumn - "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 - "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 - "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 - // r8 ----------------> r8 - - // round 4 - - // SubCell+ShiftRow+AC(c2) - // r7 (s3 s2 s1 s0) - // r8 (s7 s6 s5 s4) - // r9 (s11 s10 s9 s8) - // r10(s15 s14 s13 s12) - - // 1st-2nd line - // r7(s3 s2 s1 s0) - "uxtb.w r5, r7, ror #24 \n\t" // s3 - "uxtb.w r4, r7, ror #16 \n\t" // s2 - "uxtb.w r3, r7, ror #8 \n\t" // s1 - "uxtb.w r7, r7 \n\t" // s0 - // r8(s6 s5 s4 s7) - "uxtb.w r12, r8, ror #16 \n\t" // s6 - "uxtb.w r11, r8, ror #8 \n\t" // s5 - "uxtb.w r6, r8 \n\t" // s4 - "uxtb.w r8, r8, ror #24 \n\t" // s7 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldr.w r0, [r1,#88] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r7, r7, r3, lsl #8 \n\t" - "eor.w r7, r7, r4, lsl #16 \n\t" - "eor.w r7, r7, r5, lsl #24 \n\t" - "eor.w r8, r8, r6, lsl #8 \n\t" - "eor.w r8, r8, r11, lsl #16 \n\t" - "eor.w r8, r8, r12, lsl #24 \n\t" - "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) - - // 3rd-4th line - // r9(s9 s8 s11 s10) - "uxtb.w r5, r9, ror #8 \n\t" // s9 - "uxtb.w r7, r9 \n\t" // s8 - "uxtb.w r3, r9, ror #24 \n\t" // s11 - "uxtb.w r9, r9, ror #16 \n\t" // s10 - // r10(s12 s15 s14 s13) - "uxtb.w r12, r10 \n\t" // s12 - "uxtb.w r11, r10, ror #24 \n\t" // s15 - "uxtb.w r6, r10, ror #16 \n\t" // s14 - "uxtb.w r10, r10, ror #8 \n\t" // s13 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldr.w r0, [r1,#92] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r9, r9, r3, lsl #8 \n\t" - "eor.w r9, r9, r7, lsl #16 \n\t" - "eor.w r9, r9, r5, lsl #24 \n\t" - "eor.w r10, r10, r6, lsl #8 \n\t" - "eor.w r10, r10, r11, lsl #16 \n\t" - "eor.w r10, r10, r12, lsl #24 \n\t" - "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) - - // AddRoundKey and AddRoundConst(from roundKeys) - - // r9( s9 s8 s11 s10) - // r10(s12 s14 s14 s13) - - // MixColumn - "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 - "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 - "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 - // r4 ----------------> r4 - // round 5 - - // SubCell+ShiftRow+AC(c2) - // r3 (s3 s2 s1 s0) - // r4 (s7 s6 s5 s4) - // r5 (s11 s10 s9 s8) - // r6 (s15 s14 s13 s12) - - // 1st-2nd line - // r3(s3 s2 s1 s0) - "uxtb.w r9, r3, ror #24 \n\t" // s3 - "uxtb.w r8, r3, ror #16 \n\t" // s2 - "uxtb.w r7, r3, ror #8 \n\t" // s1 - "uxtb.w r3, r3 \n\t" // s0 - // r4(s6 s5 s4 s7) - "uxtb.w r12, r4, ror #16 \n\t" // s6 - "uxtb.w r11, r4, ror #8 \n\t" // s5 - "uxtb.w r10, r4 \n\t" // s4 - "uxtb.w r4, r4, ror #24 \n\t" // s7 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "eor.w r3, r3, r7, lsl #8 \n\t" - "eor.w r3, r3, r8, lsl #16 \n\t" - "eor.w r3, r3, r9, lsl #24 \n\t" - "eor.w r4, r4, r10, lsl #8 \n\t" - "eor.w r4, r4, r11, lsl #16 \n\t" - "eor.w r4, r4, r12, lsl #24 \n\t" - - // 3rd-4th line - // r5(s9 s8 s11 s10) - "uxtb.w r9, r5, ror #8 \n\t" // s9 - "uxtb.w r8, r5 \n\t" // s8 - "uxtb.w r7, r5, ror #24 \n\t" // s11 - "uxtb.w r5, r5, ror #16 \n\t" // s10 - // r6(s12 s15 s14 s13) - "uxtb.w r12, r6 \n\t" // s12 - "uxtb.w r11, r6, ror #24 \n\t" // s15 - "uxtb.w r10, r6, ror #16 \n\t" // s14 - "uxtb.w r6, r6, ror #8 \n\t" // s13 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "eor.w r5, r5, r7, lsl #8 \n\t" - "eor.w r5, r5, r8, lsl #16 \n\t" - "eor.w r5, r5, r9, lsl #24 \n\t" - "eor.w r6, r6, r10, lsl #8 \n\t" - "eor.w r6, r6, r11, lsl #16 \n\t" - "eor.w r6, r6, r12, lsl #24 \n\t" - - // AddRoundKey and AddRoundConst(from roundKeys) - "ldr.w r9, [r1,#16] \n\t" // load TK1 - "ldr.w r10, [r1,#20] \n\t" // load TK1 - "ldr.w r11, [r1,#96] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "ldr.w r12, [r1,#100] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - - "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) - "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) - // r8( s9 s8 s11 s10) - // r6(s12 s14 s14 s13) - - // MixColumn - "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 - "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 - "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 - // r8 ----------------> r8 - - // round 6 - - // SubCell+ShiftRow+AC(c2) - // r7 (s3 s2 s1 s0) - // r8 (s7 s6 s5 s4) - // r9 (s11 s10 s9 s8) - // r10(s15 s14 s13 s12) - - // 1st-2nd line - // r7(s3 s2 s1 s0) - "uxtb.w r5, r7, ror #24 \n\t" // s3 - "uxtb.w r4, r7, ror #16 \n\t" // s2 - "uxtb.w r3, r7, ror #8 \n\t" // s1 - "uxtb.w r7, r7 \n\t" // s0 - // r8(s6 s5 s4 s7) - "uxtb.w r12, r8, ror #16 \n\t" // s6 - "uxtb.w r11, r8, ror #8 \n\t" // s5 - "uxtb.w r6, r8 \n\t" // s4 - "uxtb.w r8, r8, ror #24 \n\t" // s7 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldr.w r0, [r1,#104] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r7, r7, r3, lsl #8 \n\t" - "eor.w r7, r7, r4, lsl #16 \n\t" - "eor.w r7, r7, r5, lsl #24 \n\t" - "eor.w r8, r8, r6, lsl #8 \n\t" - "eor.w r8, r8, r11, lsl #16 \n\t" - "eor.w r8, r8, r12, lsl #24 \n\t" - "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) - - // 3rd-4th line - // r9(s9 s8 s11 s10) - "uxtb.w r5, r9, ror #8 \n\t" // s9 - "uxtb.w r7, r9 \n\t" // s8 - "uxtb.w r3, r9, ror #24 \n\t" // s11 - "uxtb.w r9, r9, ror #16 \n\t" // s10 - // r10(s12 s15 s14 s13) - "uxtb.w r12, r10 \n\t" // s12 - "uxtb.w r11, r10, ror #24 \n\t" // s15 - "uxtb.w r6, r10, ror #16 \n\t" // s14 - "uxtb.w r10, r10, ror #8 \n\t" // s13 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldr.w r0, [r1,#108] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r9, r9, r3, lsl #8 \n\t" - "eor.w r9, r9, r7, lsl #16 \n\t" - "eor.w r9, r9, r5, lsl #24 \n\t" - "eor.w r10, r10, r6, lsl #8 \n\t" - "eor.w r10, r10, r11, lsl #16 \n\t" - "eor.w r10, r10, r12, lsl #24 \n\t" - "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) - - // AddRoundKey and AddRoundConst(from roundKeys) - - // r9( s9 s8 s11 s10) - // r10(s12 s14 s14 s13) - - // MixColumn - "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 - "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 - "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 - // r4 ----------------> r4 - // round 7 - - // SubCell+ShiftRow+AC(c2) - // r3 (s3 s2 s1 s0) - // r4 (s7 s6 s5 s4) - // r5 (s11 s10 s9 s8) - // r6 (s15 s14 s13 s12) - - // 1st-2nd line - // r3(s3 s2 s1 s0) - "uxtb.w r9, r3, ror #24 \n\t" // s3 - "uxtb.w r8, r3, ror #16 \n\t" // s2 - "uxtb.w r7, r3, ror #8 \n\t" // s1 - "uxtb.w r3, r3 \n\t" // s0 - // r4(s6 s5 s4 s7) - "uxtb.w r12, r4, ror #16 \n\t" // s6 - "uxtb.w r11, r4, ror #8 \n\t" // s5 - "uxtb.w r10, r4 \n\t" // s4 - "uxtb.w r4, r4, ror #24 \n\t" // s7 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "eor.w r3, r3, r7, lsl #8 \n\t" - "eor.w r3, r3, r8, lsl #16 \n\t" - "eor.w r3, r3, r9, lsl #24 \n\t" - "eor.w r4, r4, r10, lsl #8 \n\t" - "eor.w r4, r4, r11, lsl #16 \n\t" - "eor.w r4, r4, r12, lsl #24 \n\t" - - // 3rd-4th line - // r5(s9 s8 s11 s10) - "uxtb.w r9, r5, ror #8 \n\t" // s9 - "uxtb.w r8, r5 \n\t" // s8 - "uxtb.w r7, r5, ror #24 \n\t" // s11 - "uxtb.w r5, r5, ror #16 \n\t" // s10 - // r6(s12 s15 s14 s13) - "uxtb.w r12, r6 \n\t" // s12 - "uxtb.w r11, r6, ror #24 \n\t" // s15 - "uxtb.w r10, r6, ror #16 \n\t" // s14 - "uxtb.w r6, r6, ror #8 \n\t" // s13 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "eor.w r5, r5, r7, lsl #8 \n\t" - "eor.w r5, r5, r8, lsl #16 \n\t" - "eor.w r5, r5, r9, lsl #24 \n\t" - "eor.w r6, r6, r10, lsl #8 \n\t" - "eor.w r6, r6, r11, lsl #16 \n\t" - "eor.w r6, r6, r12, lsl #24 \n\t" - - // AddRoundKey and AddRoundConst(from roundKeys) - "ldr.w r9, [r1,#24] \n\t" // load TK1 - "ldr.w r10, [r1,#28] \n\t" // load TK1 - "ldr.w r11, [r1,#112] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "ldr.w r12, [r1,#116] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - - "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) - "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) - // r8( s9 s8 s11 s10) - // r6(s12 s14 s14 s13) - - // MixColumn - "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 - "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 - "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 - // r8 ----------------> r8 - - // round 8 - - // SubCell+ShiftRow+AC(c2) - // r7 (s3 s2 s1 s0) - // r8 (s7 s6 s5 s4) - // r9 (s11 s10 s9 s8) - // r10(s15 s14 s13 s12) - - // 1st-2nd line - // r7(s3 s2 s1 s0) - "uxtb.w r5, r7, ror #24 \n\t" // s3 - "uxtb.w r4, r7, ror #16 \n\t" // s2 - "uxtb.w r3, r7, ror #8 \n\t" // s1 - "uxtb.w r7, r7 \n\t" // s0 - // r8(s6 s5 s4 s7) - "uxtb.w r12, r8, ror #16 \n\t" // s6 - "uxtb.w r11, r8, ror #8 \n\t" // s5 - "uxtb.w r6, r8 \n\t" // s4 - "uxtb.w r8, r8, ror #24 \n\t" // s7 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldr.w r0, [r1,#120] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r7, r7, r3, lsl #8 \n\t" - "eor.w r7, r7, r4, lsl #16 \n\t" - "eor.w r7, r7, r5, lsl #24 \n\t" - "eor.w r8, r8, r6, lsl #8 \n\t" - "eor.w r8, r8, r11, lsl #16 \n\t" - "eor.w r8, r8, r12, lsl #24 \n\t" - "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) - - // 3rd-4th line - // r9(s9 s8 s11 s10) - "uxtb.w r5, r9, ror #8 \n\t" // s9 - "uxtb.w r7, r9 \n\t" // s8 - "uxtb.w r3, r9, ror #24 \n\t" // s11 - "uxtb.w r9, r9, ror #16 \n\t" // s10 - // r10(s12 s15 s14 s13) - "uxtb.w r12, r10 \n\t" // s12 - "uxtb.w r11, r10, ror #24 \n\t" // s15 - "uxtb.w r6, r10, ror #16 \n\t" // s14 - "uxtb.w r10, r10, ror #8 \n\t" // s13 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldr.w r0, [r1,#124] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r9, r9, r3, lsl #8 \n\t" - "eor.w r9, r9, r7, lsl #16 \n\t" - "eor.w r9, r9, r5, lsl #24 \n\t" - "eor.w r10, r10, r6, lsl #8 \n\t" - "eor.w r10, r10, r11, lsl #16 \n\t" - "eor.w r10, r10, r12, lsl #24 \n\t" - "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) - - // AddRoundKey and AddRoundConst(from roundKeys) - - // r9( s9 s8 s11 s10) - // r10(s12 s14 s14 s13) - - // MixColumn - "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 - "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 - "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 - // r4 ----------------> r4 - // round 9 - - // SubCell+ShiftRow+AC(c2) - // r3 (s3 s2 s1 s0) - // r4 (s7 s6 s5 s4) - // r5 (s11 s10 s9 s8) - // r6 (s15 s14 s13 s12) - - // 1st-2nd line - // r3(s3 s2 s1 s0) - "uxtb.w r9, r3, ror #24 \n\t" // s3 - "uxtb.w r8, r3, ror #16 \n\t" // s2 - "uxtb.w r7, r3, ror #8 \n\t" // s1 - "uxtb.w r3, r3 \n\t" // s0 - // r4(s6 s5 s4 s7) - "uxtb.w r12, r4, ror #16 \n\t" // s6 - "uxtb.w r11, r4, ror #8 \n\t" // s5 - "uxtb.w r10, r4 \n\t" // s4 - "uxtb.w r4, r4, ror #24 \n\t" // s7 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "eor.w r3, r3, r7, lsl #8 \n\t" - "eor.w r3, r3, r8, lsl #16 \n\t" - "eor.w r3, r3, r9, lsl #24 \n\t" - "eor.w r4, r4, r10, lsl #8 \n\t" - "eor.w r4, r4, r11, lsl #16 \n\t" - "eor.w r4, r4, r12, lsl #24 \n\t" - - // 3rd-4th line - // r5(s9 s8 s11 s10) - "uxtb.w r9, r5, ror #8 \n\t" // s9 - "uxtb.w r8, r5 \n\t" // s8 - "uxtb.w r7, r5, ror #24 \n\t" // s11 - "uxtb.w r5, r5, ror #16 \n\t" // s10 - // r6(s12 s15 s14 s13) - "uxtb.w r12, r6 \n\t" // s12 - "uxtb.w r11, r6, ror #24 \n\t" // s15 - "uxtb.w r10, r6, ror #16 \n\t" // s14 - "uxtb.w r6, r6, ror #8 \n\t" // s13 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "eor.w r5, r5, r7, lsl #8 \n\t" - "eor.w r5, r5, r8, lsl #16 \n\t" - "eor.w r5, r5, r9, lsl #24 \n\t" - "eor.w r6, r6, r10, lsl #8 \n\t" - "eor.w r6, r6, r11, lsl #16 \n\t" - "eor.w r6, r6, r12, lsl #24 \n\t" - - // AddRoundKey and AddRoundConst(from roundKeys) - "ldr.w r9, [r1,#32] \n\t" // load TK1 - "ldr.w r10, [r1,#36] \n\t" // load TK1 - "ldr.w r11, [r1,#128] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "ldr.w r12, [r1,#132] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - - "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) - "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) - // r8( s9 s8 s11 s10) - // r6(s12 s14 s14 s13) - - // MixColumn - "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 - "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 - "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 - // r8 ----------------> r8 - - // round 10 - - // SubCell+ShiftRow+AC(c2) - // r7 (s3 s2 s1 s0) - // r8 (s7 s6 s5 s4) - // r9 (s11 s10 s9 s8) - // r10(s15 s14 s13 s12) - - // 1st-2nd line - // r7(s3 s2 s1 s0) - "uxtb.w r5, r7, ror #24 \n\t" // s3 - "uxtb.w r4, r7, ror #16 \n\t" // s2 - "uxtb.w r3, r7, ror #8 \n\t" // s1 - "uxtb.w r7, r7 \n\t" // s0 - // r8(s6 s5 s4 s7) - "uxtb.w r12, r8, ror #16 \n\t" // s6 - "uxtb.w r11, r8, ror #8 \n\t" // s5 - "uxtb.w r6, r8 \n\t" // s4 - "uxtb.w r8, r8, ror #24 \n\t" // s7 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldr.w r0, [r1,#136] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r7, r7, r3, lsl #8 \n\t" - "eor.w r7, r7, r4, lsl #16 \n\t" - "eor.w r7, r7, r5, lsl #24 \n\t" - "eor.w r8, r8, r6, lsl #8 \n\t" - "eor.w r8, r8, r11, lsl #16 \n\t" - "eor.w r8, r8, r12, lsl #24 \n\t" - "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) - - // 3rd-4th line - // r9(s9 s8 s11 s10) - "uxtb.w r5, r9, ror #8 \n\t" // s9 - "uxtb.w r7, r9 \n\t" // s8 - "uxtb.w r3, r9, ror #24 \n\t" // s11 - "uxtb.w r9, r9, ror #16 \n\t" // s10 - // r10(s12 s15 s14 s13) - "uxtb.w r12, r10 \n\t" // s12 - "uxtb.w r11, r10, ror #24 \n\t" // s15 - "uxtb.w r6, r10, ror #16 \n\t" // s14 - "uxtb.w r10, r10, ror #8 \n\t" // s13 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldr.w r0, [r1,#140] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r9, r9, r3, lsl #8 \n\t" - "eor.w r9, r9, r7, lsl #16 \n\t" - "eor.w r9, r9, r5, lsl #24 \n\t" - "eor.w r10, r10, r6, lsl #8 \n\t" - "eor.w r10, r10, r11, lsl #16 \n\t" - "eor.w r10, r10, r12, lsl #24 \n\t" - "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) - - // AddRoundKey and AddRoundConst(from roundKeys) - - // r9( s9 s8 s11 s10) - // r10(s12 s14 s14 s13) - - // MixColumn - "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 - "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 - "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 - // r4 ----------------> r4 - // round 11 - - // SubCell+ShiftRow+AC(c2) - // r3 (s3 s2 s1 s0) - // r4 (s7 s6 s5 s4) - // r5 (s11 s10 s9 s8) - // r6 (s15 s14 s13 s12) - - // 1st-2nd line - // r3(s3 s2 s1 s0) - "uxtb.w r9, r3, ror #24 \n\t" // s3 - "uxtb.w r8, r3, ror #16 \n\t" // s2 - "uxtb.w r7, r3, ror #8 \n\t" // s1 - "uxtb.w r3, r3 \n\t" // s0 - // r4(s6 s5 s4 s7) - "uxtb.w r12, r4, ror #16 \n\t" // s6 - "uxtb.w r11, r4, ror #8 \n\t" // s5 - "uxtb.w r10, r4 \n\t" // s4 - "uxtb.w r4, r4, ror #24 \n\t" // s7 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "eor.w r3, r3, r7, lsl #8 \n\t" - "eor.w r3, r3, r8, lsl #16 \n\t" - "eor.w r3, r3, r9, lsl #24 \n\t" - "eor.w r4, r4, r10, lsl #8 \n\t" - "eor.w r4, r4, r11, lsl #16 \n\t" - "eor.w r4, r4, r12, lsl #24 \n\t" - - // 3rd-4th line - // r5(s9 s8 s11 s10) - "uxtb.w r9, r5, ror #8 \n\t" // s9 - "uxtb.w r8, r5 \n\t" // s8 - "uxtb.w r7, r5, ror #24 \n\t" // s11 - "uxtb.w r5, r5, ror #16 \n\t" // s10 - // r6(s12 s15 s14 s13) - "uxtb.w r12, r6 \n\t" // s12 - "uxtb.w r11, r6, ror #24 \n\t" // s15 - "uxtb.w r10, r6, ror #16 \n\t" // s14 - "uxtb.w r6, r6, ror #8 \n\t" // s13 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "eor.w r5, r5, r7, lsl #8 \n\t" - "eor.w r5, r5, r8, lsl #16 \n\t" - "eor.w r5, r5, r9, lsl #24 \n\t" - "eor.w r6, r6, r10, lsl #8 \n\t" - "eor.w r6, r6, r11, lsl #16 \n\t" - "eor.w r6, r6, r12, lsl #24 \n\t" - - // AddRoundKey and AddRoundConst(from roundKeys) - "ldr.w r9, [r1,#40] \n\t" // load TK1 - "ldr.w r10, [r1,#44] \n\t" // load TK1 - "ldr.w r11, [r1,#144] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "ldr.w r12, [r1,#148] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - - "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) - "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) - // r8( s9 s8 s11 s10) - // r6(s12 s14 s14 s13) - - // MixColumn - "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 - "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 - "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 - // r8 ----------------> r8 - - // round 12 - - // SubCell+ShiftRow+AC(c2) - // r7 (s3 s2 s1 s0) - // r8 (s7 s6 s5 s4) - // r9 (s11 s10 s9 s8) - // r10(s15 s14 s13 s12) - - // 1st-2nd line - // r7(s3 s2 s1 s0) - "uxtb.w r5, r7, ror #24 \n\t" // s3 - "uxtb.w r4, r7, ror #16 \n\t" // s2 - "uxtb.w r3, r7, ror #8 \n\t" // s1 - "uxtb.w r7, r7 \n\t" // s0 - // r8(s6 s5 s4 s7) - "uxtb.w r12, r8, ror #16 \n\t" // s6 - "uxtb.w r11, r8, ror #8 \n\t" // s5 - "uxtb.w r6, r8 \n\t" // s4 - "uxtb.w r8, r8, ror #24 \n\t" // s7 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldr.w r0, [r1,#152] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r7, r7, r3, lsl #8 \n\t" - "eor.w r7, r7, r4, lsl #16 \n\t" - "eor.w r7, r7, r5, lsl #24 \n\t" - "eor.w r8, r8, r6, lsl #8 \n\t" - "eor.w r8, r8, r11, lsl #16 \n\t" - "eor.w r8, r8, r12, lsl #24 \n\t" - "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) - - // 3rd-4th line - // r9(s9 s8 s11 s10) - "uxtb.w r5, r9, ror #8 \n\t" // s9 - "uxtb.w r7, r9 \n\t" // s8 - "uxtb.w r3, r9, ror #24 \n\t" // s11 - "uxtb.w r9, r9, ror #16 \n\t" // s10 - // r10(s12 s15 s14 s13) - "uxtb.w r12, r10 \n\t" // s12 - "uxtb.w r11, r10, ror #24 \n\t" // s15 - "uxtb.w r6, r10, ror #16 \n\t" // s14 - "uxtb.w r10, r10, ror #8 \n\t" // s13 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldr.w r0, [r1,#156] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r9, r9, r3, lsl #8 \n\t" - "eor.w r9, r9, r7, lsl #16 \n\t" - "eor.w r9, r9, r5, lsl #24 \n\t" - "eor.w r10, r10, r6, lsl #8 \n\t" - "eor.w r10, r10, r11, lsl #16 \n\t" - "eor.w r10, r10, r12, lsl #24 \n\t" - "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) - - // AddRoundKey and AddRoundConst(from roundKeys) - - // r9( s9 s8 s11 s10) - // r10(s12 s14 s14 s13) - - // MixColumn - "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 - "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 - "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 - // r4 ----------------> r4 - // round 13 - - // SubCell+ShiftRow+AC(c2) - // r3 (s3 s2 s1 s0) - // r4 (s7 s6 s5 s4) - // r5 (s11 s10 s9 s8) - // r6 (s15 s14 s13 s12) - - // 1st-2nd line - // r3(s3 s2 s1 s0) - "uxtb.w r9, r3, ror #24 \n\t" // s3 - "uxtb.w r8, r3, ror #16 \n\t" // s2 - "uxtb.w r7, r3, ror #8 \n\t" // s1 - "uxtb.w r3, r3 \n\t" // s0 - // r4(s6 s5 s4 s7) - "uxtb.w r12, r4, ror #16 \n\t" // s6 - "uxtb.w r11, r4, ror #8 \n\t" // s5 - "uxtb.w r10, r4 \n\t" // s4 - "uxtb.w r4, r4, ror #24 \n\t" // s7 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "eor.w r3, r3, r7, lsl #8 \n\t" - "eor.w r3, r3, r8, lsl #16 \n\t" - "eor.w r3, r3, r9, lsl #24 \n\t" - "eor.w r4, r4, r10, lsl #8 \n\t" - "eor.w r4, r4, r11, lsl #16 \n\t" - "eor.w r4, r4, r12, lsl #24 \n\t" - - // 3rd-4th line - // r5(s9 s8 s11 s10) - "uxtb.w r9, r5, ror #8 \n\t" // s9 - "uxtb.w r8, r5 \n\t" // s8 - "uxtb.w r7, r5, ror #24 \n\t" // s11 - "uxtb.w r5, r5, ror #16 \n\t" // s10 - // r6(s12 s15 s14 s13) - "uxtb.w r12, r6 \n\t" // s12 - "uxtb.w r11, r6, ror #24 \n\t" // s15 - "uxtb.w r10, r6, ror #16 \n\t" // s14 - "uxtb.w r6, r6, ror #8 \n\t" // s13 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "eor.w r5, r5, r7, lsl #8 \n\t" - "eor.w r5, r5, r8, lsl #16 \n\t" - "eor.w r5, r5, r9, lsl #24 \n\t" - "eor.w r6, r6, r10, lsl #8 \n\t" - "eor.w r6, r6, r11, lsl #16 \n\t" - "eor.w r6, r6, r12, lsl #24 \n\t" - - // AddRoundKey and AddRoundConst(from roundKeys) - "ldr.w r9, [r1,#48] \n\t" // load TK1 - "ldr.w r10, [r1,#52] \n\t" // load TK1 - "ldr.w r11, [r1,#160] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "ldr.w r12, [r1,#164] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - - "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) - "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) - // r8( s9 s8 s11 s10) - // r6(s12 s14 s14 s13) - - // MixColumn - "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 - "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 - "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 - // r8 ----------------> r8 - - // round 14 - - // SubCell+ShiftRow+AC(c2) - // r7 (s3 s2 s1 s0) - // r8 (s7 s6 s5 s4) - // r9 (s11 s10 s9 s8) - // r10(s15 s14 s13 s12) - - // 1st-2nd line - // r7(s3 s2 s1 s0) - "uxtb.w r5, r7, ror #24 \n\t" // s3 - "uxtb.w r4, r7, ror #16 \n\t" // s2 - "uxtb.w r3, r7, ror #8 \n\t" // s1 - "uxtb.w r7, r7 \n\t" // s0 - // r8(s6 s5 s4 s7) - "uxtb.w r12, r8, ror #16 \n\t" // s6 - "uxtb.w r11, r8, ror #8 \n\t" // s5 - "uxtb.w r6, r8 \n\t" // s4 - "uxtb.w r8, r8, ror #24 \n\t" // s7 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldr.w r0, [r1,#168] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r7, r7, r3, lsl #8 \n\t" - "eor.w r7, r7, r4, lsl #16 \n\t" - "eor.w r7, r7, r5, lsl #24 \n\t" - "eor.w r8, r8, r6, lsl #8 \n\t" - "eor.w r8, r8, r11, lsl #16 \n\t" - "eor.w r8, r8, r12, lsl #24 \n\t" - "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) - - // 3rd-4th line - // r9(s9 s8 s11 s10) - "uxtb.w r5, r9, ror #8 \n\t" // s9 - "uxtb.w r7, r9 \n\t" // s8 - "uxtb.w r3, r9, ror #24 \n\t" // s11 - "uxtb.w r9, r9, ror #16 \n\t" // s10 - // r10(s12 s15 s14 s13) - "uxtb.w r12, r10 \n\t" // s12 - "uxtb.w r11, r10, ror #24 \n\t" // s15 - "uxtb.w r6, r10, ror #16 \n\t" // s14 - "uxtb.w r10, r10, ror #8 \n\t" // s13 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldr.w r0, [r1,#172] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r9, r9, r3, lsl #8 \n\t" - "eor.w r9, r9, r7, lsl #16 \n\t" - "eor.w r9, r9, r5, lsl #24 \n\t" - "eor.w r10, r10, r6, lsl #8 \n\t" - "eor.w r10, r10, r11, lsl #16 \n\t" - "eor.w r10, r10, r12, lsl #24 \n\t" - "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) - - // AddRoundKey and AddRoundConst(from roundKeys) - - // r9( s9 s8 s11 s10) - // r10(s12 s14 s14 s13) - - // MixColumn - "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 - "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 - "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 - // r4 ----------------> r4 - // round 15 - - // SubCell+ShiftRow+AC(c2) - // r3 (s3 s2 s1 s0) - // r4 (s7 s6 s5 s4) - // r5 (s11 s10 s9 s8) - // r6 (s15 s14 s13 s12) - - // 1st-2nd line - // r3(s3 s2 s1 s0) - "uxtb.w r9, r3, ror #24 \n\t" // s3 - "uxtb.w r8, r3, ror #16 \n\t" // s2 - "uxtb.w r7, r3, ror #8 \n\t" // s1 - "uxtb.w r3, r3 \n\t" // s0 - // r4(s6 s5 s4 s7) - "uxtb.w r12, r4, ror #16 \n\t" // s6 - "uxtb.w r11, r4, ror #8 \n\t" // s5 - "uxtb.w r10, r4 \n\t" // s4 - "uxtb.w r4, r4, ror #24 \n\t" // s7 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "eor.w r3, r3, r7, lsl #8 \n\t" - "eor.w r3, r3, r8, lsl #16 \n\t" - "eor.w r3, r3, r9, lsl #24 \n\t" - "eor.w r4, r4, r10, lsl #8 \n\t" - "eor.w r4, r4, r11, lsl #16 \n\t" - "eor.w r4, r4, r12, lsl #24 \n\t" - - // 3rd-4th line - // r5(s9 s8 s11 s10) - "uxtb.w r9, r5, ror #8 \n\t" // s9 - "uxtb.w r8, r5 \n\t" // s8 - "uxtb.w r7, r5, ror #24 \n\t" // s11 - "uxtb.w r5, r5, ror #16 \n\t" // s10 - // r6(s12 s15 s14 s13) - "uxtb.w r12, r6 \n\t" // s12 - "uxtb.w r11, r6, ror #24 \n\t" // s15 - "uxtb.w r10, r6, ror #16 \n\t" // s14 - "uxtb.w r6, r6, ror #8 \n\t" // s13 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "eor.w r5, r5, r7, lsl #8 \n\t" - "eor.w r5, r5, r8, lsl #16 \n\t" - "eor.w r5, r5, r9, lsl #24 \n\t" - "eor.w r6, r6, r10, lsl #8 \n\t" - "eor.w r6, r6, r11, lsl #16 \n\t" - "eor.w r6, r6, r12, lsl #24 \n\t" - - // AddRoundKey and AddRoundConst(from roundKeys) - "ldr.w r9, [r1,#56] \n\t" // load TK1 - "ldr.w r10, [r1,#60] \n\t" // load TK1 - "ldr.w r11, [r1,#176] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "ldr.w r12, [r1,#180] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - - "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) - "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) - // r8( s9 s8 s11 s10) - // r6(s12 s14 s14 s13) - - // MixColumn - "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 - "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 - "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 - // r8 ----------------> r8 - - // round 16 - - // SubCell+ShiftRow+AC(c2) - // r7 (s3 s2 s1 s0) - // r8 (s7 s6 s5 s4) - // r9 (s11 s10 s9 s8) - // r10(s15 s14 s13 s12) - - // 1st-2nd line - // r7(s3 s2 s1 s0) - "uxtb.w r5, r7, ror #24 \n\t" // s3 - "uxtb.w r4, r7, ror #16 \n\t" // s2 - "uxtb.w r3, r7, ror #8 \n\t" // s1 - "uxtb.w r7, r7 \n\t" // s0 - // r8(s6 s5 s4 s7) - "uxtb.w r12, r8, ror #16 \n\t" // s6 - "uxtb.w r11, r8, ror #8 \n\t" // s5 - "uxtb.w r6, r8 \n\t" // s4 - "uxtb.w r8, r8, ror #24 \n\t" // s7 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldr.w r0, [r1,#184] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r7, r7, r3, lsl #8 \n\t" - "eor.w r7, r7, r4, lsl #16 \n\t" - "eor.w r7, r7, r5, lsl #24 \n\t" - "eor.w r8, r8, r6, lsl #8 \n\t" - "eor.w r8, r8, r11, lsl #16 \n\t" - "eor.w r8, r8, r12, lsl #24 \n\t" - "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) - - // 3rd-4th line - // r9(s9 s8 s11 s10) - "uxtb.w r5, r9, ror #8 \n\t" // s9 - "uxtb.w r7, r9 \n\t" // s8 - "uxtb.w r3, r9, ror #24 \n\t" // s11 - "uxtb.w r9, r9, ror #16 \n\t" // s10 - // r10(s12 s15 s14 s13) - "uxtb.w r12, r10 \n\t" // s12 - "uxtb.w r11, r10, ror #24 \n\t" // s15 - "uxtb.w r6, r10, ror #16 \n\t" // s14 - "uxtb.w r10, r10, ror #8 \n\t" // s13 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldr.w r0, [r1,#188] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r9, r9, r3, lsl #8 \n\t" - "eor.w r9, r9, r7, lsl #16 \n\t" - "eor.w r9, r9, r5, lsl #24 \n\t" - "eor.w r10, r10, r6, lsl #8 \n\t" - "eor.w r10, r10, r11, lsl #16 \n\t" - "eor.w r10, r10, r12, lsl #24 \n\t" - "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) - - // AddRoundKey and AddRoundConst(from roundKeys) - - // r9( s9 s8 s11 s10) - // r10(s12 s14 s14 s13) - - // MixColumn - "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 - "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 - "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 - // r4 ----------------> r4 - // round 17 - - // SubCell+ShiftRow+AC(c2) - // r3 (s3 s2 s1 s0) - // r4 (s7 s6 s5 s4) - // r5 (s11 s10 s9 s8) - // r6 (s15 s14 s13 s12) - - // 1st-2nd line - // r3(s3 s2 s1 s0) - "uxtb.w r9, r3, ror #24 \n\t" // s3 - "uxtb.w r8, r3, ror #16 \n\t" // s2 - "uxtb.w r7, r3, ror #8 \n\t" // s1 - "uxtb.w r3, r3 \n\t" // s0 - // r4(s6 s5 s4 s7) - "uxtb.w r12, r4, ror #16 \n\t" // s6 - "uxtb.w r11, r4, ror #8 \n\t" // s5 - "uxtb.w r10, r4 \n\t" // s4 - "uxtb.w r4, r4, ror #24 \n\t" // s7 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "eor.w r3, r3, r7, lsl #8 \n\t" - "eor.w r3, r3, r8, lsl #16 \n\t" - "eor.w r3, r3, r9, lsl #24 \n\t" - "eor.w r4, r4, r10, lsl #8 \n\t" - "eor.w r4, r4, r11, lsl #16 \n\t" - "eor.w r4, r4, r12, lsl #24 \n\t" - - // 3rd-4th line - // r5(s9 s8 s11 s10) - "uxtb.w r9, r5, ror #8 \n\t" // s9 - "uxtb.w r8, r5 \n\t" // s8 - "uxtb.w r7, r5, ror #24 \n\t" // s11 - "uxtb.w r5, r5, ror #16 \n\t" // s10 - // r6(s12 s15 s14 s13) - "uxtb.w r12, r6 \n\t" // s12 - "uxtb.w r11, r6, ror #24 \n\t" // s15 - "uxtb.w r10, r6, ror #16 \n\t" // s14 - "uxtb.w r6, r6, ror #8 \n\t" // s13 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "eor.w r5, r5, r7, lsl #8 \n\t" - "eor.w r5, r5, r8, lsl #16 \n\t" - "eor.w r5, r5, r9, lsl #24 \n\t" - "eor.w r6, r6, r10, lsl #8 \n\t" - "eor.w r6, r6, r11, lsl #16 \n\t" - "eor.w r6, r6, r12, lsl #24 \n\t" - - // AddRoundKey and AddRoundConst(from roundKeys) - "ldr.w r9, [r1,#0] \n\t" // load TK1 - "ldr.w r10, [r1,#4] \n\t" // load TK1 - "ldr.w r11, [r1,#192] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "ldr.w r12, [r1,#196] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - - "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) - "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) - // r8( s9 s8 s11 s10) - // r6(s12 s14 s14 s13) - - // MixColumn - "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 - "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 - "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 - // r8 ----------------> r8 - - // round 18 - - // SubCell+ShiftRow+AC(c2) - // r7 (s3 s2 s1 s0) - // r8 (s7 s6 s5 s4) - // r9 (s11 s10 s9 s8) - // r10(s15 s14 s13 s12) - - // 1st-2nd line - // r7(s3 s2 s1 s0) - "uxtb.w r5, r7, ror #24 \n\t" // s3 - "uxtb.w r4, r7, ror #16 \n\t" // s2 - "uxtb.w r3, r7, ror #8 \n\t" // s1 - "uxtb.w r7, r7 \n\t" // s0 - // r8(s6 s5 s4 s7) - "uxtb.w r12, r8, ror #16 \n\t" // s6 - "uxtb.w r11, r8, ror #8 \n\t" // s5 - "uxtb.w r6, r8 \n\t" // s4 - "uxtb.w r8, r8, ror #24 \n\t" // s7 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldr.w r0, [r1,#200] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r7, r7, r3, lsl #8 \n\t" - "eor.w r7, r7, r4, lsl #16 \n\t" - "eor.w r7, r7, r5, lsl #24 \n\t" - "eor.w r8, r8, r6, lsl #8 \n\t" - "eor.w r8, r8, r11, lsl #16 \n\t" - "eor.w r8, r8, r12, lsl #24 \n\t" - "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) - - // 3rd-4th line - // r9(s9 s8 s11 s10) - "uxtb.w r5, r9, ror #8 \n\t" // s9 - "uxtb.w r7, r9 \n\t" // s8 - "uxtb.w r3, r9, ror #24 \n\t" // s11 - "uxtb.w r9, r9, ror #16 \n\t" // s10 - // r10(s12 s15 s14 s13) - "uxtb.w r12, r10 \n\t" // s12 - "uxtb.w r11, r10, ror #24 \n\t" // s15 - "uxtb.w r6, r10, ror #16 \n\t" // s14 - "uxtb.w r10, r10, ror #8 \n\t" // s13 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldr.w r0, [r1,#204] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r9, r9, r3, lsl #8 \n\t" - "eor.w r9, r9, r7, lsl #16 \n\t" - "eor.w r9, r9, r5, lsl #24 \n\t" - "eor.w r10, r10, r6, lsl #8 \n\t" - "eor.w r10, r10, r11, lsl #16 \n\t" - "eor.w r10, r10, r12, lsl #24 \n\t" - "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) - - // AddRoundKey and AddRoundConst(from roundKeys) - - // r9( s9 s8 s11 s10) - // r10(s12 s14 s14 s13) - - // MixColumn - "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 - "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 - "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 - // r4 ----------------> r4 - // round 19 - - // SubCell+ShiftRow+AC(c2) - // r3 (s3 s2 s1 s0) - // r4 (s7 s6 s5 s4) - // r5 (s11 s10 s9 s8) - // r6 (s15 s14 s13 s12) - - // 1st-2nd line - // r3(s3 s2 s1 s0) - "uxtb.w r9, r3, ror #24 \n\t" // s3 - "uxtb.w r8, r3, ror #16 \n\t" // s2 - "uxtb.w r7, r3, ror #8 \n\t" // s1 - "uxtb.w r3, r3 \n\t" // s0 - // r4(s6 s5 s4 s7) - "uxtb.w r12, r4, ror #16 \n\t" // s6 - "uxtb.w r11, r4, ror #8 \n\t" // s5 - "uxtb.w r10, r4 \n\t" // s4 - "uxtb.w r4, r4, ror #24 \n\t" // s7 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "eor.w r3, r3, r7, lsl #8 \n\t" - "eor.w r3, r3, r8, lsl #16 \n\t" - "eor.w r3, r3, r9, lsl #24 \n\t" - "eor.w r4, r4, r10, lsl #8 \n\t" - "eor.w r4, r4, r11, lsl #16 \n\t" - "eor.w r4, r4, r12, lsl #24 \n\t" - - // 3rd-4th line - // r5(s9 s8 s11 s10) - "uxtb.w r9, r5, ror #8 \n\t" // s9 - "uxtb.w r8, r5 \n\t" // s8 - "uxtb.w r7, r5, ror #24 \n\t" // s11 - "uxtb.w r5, r5, ror #16 \n\t" // s10 - // r6(s12 s15 s14 s13) - "uxtb.w r12, r6 \n\t" // s12 - "uxtb.w r11, r6, ror #24 \n\t" // s15 - "uxtb.w r10, r6, ror #16 \n\t" // s14 - "uxtb.w r6, r6, ror #8 \n\t" // s13 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "eor.w r5, r5, r7, lsl #8 \n\t" - "eor.w r5, r5, r8, lsl #16 \n\t" - "eor.w r5, r5, r9, lsl #24 \n\t" - "eor.w r6, r6, r10, lsl #8 \n\t" - "eor.w r6, r6, r11, lsl #16 \n\t" - "eor.w r6, r6, r12, lsl #24 \n\t" - - // AddRoundKey and AddRoundConst(from roundKeys) - "ldr.w r9, [r1,#8] \n\t" // load TK1 - "ldr.w r10, [r1,#12] \n\t" // load TK1 - "ldr.w r11, [r1,#208] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "ldr.w r12, [r1,#212] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - - "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) - "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) - // r8( s9 s8 s11 s10) - // r6(s12 s14 s14 s13) - - // MixColumn - "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 - "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 - "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 - // r8 ----------------> r8 - - // round 20 - - // SubCell+ShiftRow+AC(c2) - // r7 (s3 s2 s1 s0) - // r8 (s7 s6 s5 s4) - // r9 (s11 s10 s9 s8) - // r10(s15 s14 s13 s12) - - // 1st-2nd line - // r7(s3 s2 s1 s0) - "uxtb.w r5, r7, ror #24 \n\t" // s3 - "uxtb.w r4, r7, ror #16 \n\t" // s2 - "uxtb.w r3, r7, ror #8 \n\t" // s1 - "uxtb.w r7, r7 \n\t" // s0 - // r8(s6 s5 s4 s7) - "uxtb.w r12, r8, ror #16 \n\t" // s6 - "uxtb.w r11, r8, ror #8 \n\t" // s5 - "uxtb.w r6, r8 \n\t" // s4 - "uxtb.w r8, r8, ror #24 \n\t" // s7 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldr.w r0, [r1,#216] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r7, r7, r3, lsl #8 \n\t" - "eor.w r7, r7, r4, lsl #16 \n\t" - "eor.w r7, r7, r5, lsl #24 \n\t" - "eor.w r8, r8, r6, lsl #8 \n\t" - "eor.w r8, r8, r11, lsl #16 \n\t" - "eor.w r8, r8, r12, lsl #24 \n\t" - "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) - - // 3rd-4th line - // r9(s9 s8 s11 s10) - "uxtb.w r5, r9, ror #8 \n\t" // s9 - "uxtb.w r7, r9 \n\t" // s8 - "uxtb.w r3, r9, ror #24 \n\t" // s11 - "uxtb.w r9, r9, ror #16 \n\t" // s10 - // r10(s12 s15 s14 s13) - "uxtb.w r12, r10 \n\t" // s12 - "uxtb.w r11, r10, ror #24 \n\t" // s15 - "uxtb.w r6, r10, ror #16 \n\t" // s14 - "uxtb.w r10, r10, ror #8 \n\t" // s13 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldr.w r0, [r1,#220] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r9, r9, r3, lsl #8 \n\t" - "eor.w r9, r9, r7, lsl #16 \n\t" - "eor.w r9, r9, r5, lsl #24 \n\t" - "eor.w r10, r10, r6, lsl #8 \n\t" - "eor.w r10, r10, r11, lsl #16 \n\t" - "eor.w r10, r10, r12, lsl #24 \n\t" - "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) - - // AddRoundKey and AddRoundConst(from roundKeys) - - // r9( s9 s8 s11 s10) - // r10(s12 s14 s14 s13) - - // MixColumn - "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 - "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 - "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 - // r4 ----------------> r4 - // round 21 - - // SubCell+ShiftRow+AC(c2) - // r3 (s3 s2 s1 s0) - // r4 (s7 s6 s5 s4) - // r5 (s11 s10 s9 s8) - // r6 (s15 s14 s13 s12) - - // 1st-2nd line - // r3(s3 s2 s1 s0) - "uxtb.w r9, r3, ror #24 \n\t" // s3 - "uxtb.w r8, r3, ror #16 \n\t" // s2 - "uxtb.w r7, r3, ror #8 \n\t" // s1 - "uxtb.w r3, r3 \n\t" // s0 - // r4(s6 s5 s4 s7) - "uxtb.w r12, r4, ror #16 \n\t" // s6 - "uxtb.w r11, r4, ror #8 \n\t" // s5 - "uxtb.w r10, r4 \n\t" // s4 - "uxtb.w r4, r4, ror #24 \n\t" // s7 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "eor.w r3, r3, r7, lsl #8 \n\t" - "eor.w r3, r3, r8, lsl #16 \n\t" - "eor.w r3, r3, r9, lsl #24 \n\t" - "eor.w r4, r4, r10, lsl #8 \n\t" - "eor.w r4, r4, r11, lsl #16 \n\t" - "eor.w r4, r4, r12, lsl #24 \n\t" - - // 3rd-4th line - // r5(s9 s8 s11 s10) - "uxtb.w r9, r5, ror #8 \n\t" // s9 - "uxtb.w r8, r5 \n\t" // s8 - "uxtb.w r7, r5, ror #24 \n\t" // s11 - "uxtb.w r5, r5, ror #16 \n\t" // s10 - // r6(s12 s15 s14 s13) - "uxtb.w r12, r6 \n\t" // s12 - "uxtb.w r11, r6, ror #24 \n\t" // s15 - "uxtb.w r10, r6, ror #16 \n\t" // s14 - "uxtb.w r6, r6, ror #8 \n\t" // s13 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "eor.w r5, r5, r7, lsl #8 \n\t" - "eor.w r5, r5, r8, lsl #16 \n\t" - "eor.w r5, r5, r9, lsl #24 \n\t" - "eor.w r6, r6, r10, lsl #8 \n\t" - "eor.w r6, r6, r11, lsl #16 \n\t" - "eor.w r6, r6, r12, lsl #24 \n\t" - - // AddRoundKey and AddRoundConst(from roundKeys) - "ldr.w r9, [r1,#16] \n\t" // load TK1 - "ldr.w r10, [r1,#20] \n\t" // load TK1 - "ldr.w r11, [r1,#224] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "ldr.w r12, [r1,#228] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - - "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) - "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) - // r8( s9 s8 s11 s10) - // r6(s12 s14 s14 s13) - - // MixColumn - "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 - "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 - "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 - // r8 ----------------> r8 - - // round 22 - - // SubCell+ShiftRow+AC(c2) - // r7 (s3 s2 s1 s0) - // r8 (s7 s6 s5 s4) - // r9 (s11 s10 s9 s8) - // r10(s15 s14 s13 s12) - - // 1st-2nd line - // r7(s3 s2 s1 s0) - "uxtb.w r5, r7, ror #24 \n\t" // s3 - "uxtb.w r4, r7, ror #16 \n\t" // s2 - "uxtb.w r3, r7, ror #8 \n\t" // s1 - "uxtb.w r7, r7 \n\t" // s0 - // r8(s6 s5 s4 s7) - "uxtb.w r12, r8, ror #16 \n\t" // s6 - "uxtb.w r11, r8, ror #8 \n\t" // s5 - "uxtb.w r6, r8 \n\t" // s4 - "uxtb.w r8, r8, ror #24 \n\t" // s7 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldr.w r0, [r1,#232] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r7, r7, r3, lsl #8 \n\t" - "eor.w r7, r7, r4, lsl #16 \n\t" - "eor.w r7, r7, r5, lsl #24 \n\t" - "eor.w r8, r8, r6, lsl #8 \n\t" - "eor.w r8, r8, r11, lsl #16 \n\t" - "eor.w r8, r8, r12, lsl #24 \n\t" - "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) - - // 3rd-4th line - // r9(s9 s8 s11 s10) - "uxtb.w r5, r9, ror #8 \n\t" // s9 - "uxtb.w r7, r9 \n\t" // s8 - "uxtb.w r3, r9, ror #24 \n\t" // s11 - "uxtb.w r9, r9, ror #16 \n\t" // s10 - // r10(s12 s15 s14 s13) - "uxtb.w r12, r10 \n\t" // s12 - "uxtb.w r11, r10, ror #24 \n\t" // s15 - "uxtb.w r6, r10, ror #16 \n\t" // s14 - "uxtb.w r10, r10, ror #8 \n\t" // s13 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldr.w r0, [r1,#236] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r9, r9, r3, lsl #8 \n\t" - "eor.w r9, r9, r7, lsl #16 \n\t" - "eor.w r9, r9, r5, lsl #24 \n\t" - "eor.w r10, r10, r6, lsl #8 \n\t" - "eor.w r10, r10, r11, lsl #16 \n\t" - "eor.w r10, r10, r12, lsl #24 \n\t" - "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) - - // AddRoundKey and AddRoundConst(from roundKeys) - - // r9( s9 s8 s11 s10) - // r10(s12 s14 s14 s13) - - // MixColumn - "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 - "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 - "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 - // r4 ----------------> r4 - // round 23 - - // SubCell+ShiftRow+AC(c2) - // r3 (s3 s2 s1 s0) - // r4 (s7 s6 s5 s4) - // r5 (s11 s10 s9 s8) - // r6 (s15 s14 s13 s12) - - // 1st-2nd line - // r3(s3 s2 s1 s0) - "uxtb.w r9, r3, ror #24 \n\t" // s3 - "uxtb.w r8, r3, ror #16 \n\t" // s2 - "uxtb.w r7, r3, ror #8 \n\t" // s1 - "uxtb.w r3, r3 \n\t" // s0 - // r4(s6 s5 s4 s7) - "uxtb.w r12, r4, ror #16 \n\t" // s6 - "uxtb.w r11, r4, ror #8 \n\t" // s5 - "uxtb.w r10, r4 \n\t" // s4 - "uxtb.w r4, r4, ror #24 \n\t" // s7 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "eor.w r3, r3, r7, lsl #8 \n\t" - "eor.w r3, r3, r8, lsl #16 \n\t" - "eor.w r3, r3, r9, lsl #24 \n\t" - "eor.w r4, r4, r10, lsl #8 \n\t" - "eor.w r4, r4, r11, lsl #16 \n\t" - "eor.w r4, r4, r12, lsl #24 \n\t" - - // 3rd-4th line - // r5(s9 s8 s11 s10) - "uxtb.w r9, r5, ror #8 \n\t" // s9 - "uxtb.w r8, r5 \n\t" // s8 - "uxtb.w r7, r5, ror #24 \n\t" // s11 - "uxtb.w r5, r5, ror #16 \n\t" // s10 - // r6(s12 s15 s14 s13) - "uxtb.w r12, r6 \n\t" // s12 - "uxtb.w r11, r6, ror #24 \n\t" // s15 - "uxtb.w r10, r6, ror #16 \n\t" // s14 - "uxtb.w r6, r6, ror #8 \n\t" // s13 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "eor.w r5, r5, r7, lsl #8 \n\t" - "eor.w r5, r5, r8, lsl #16 \n\t" - "eor.w r5, r5, r9, lsl #24 \n\t" - "eor.w r6, r6, r10, lsl #8 \n\t" - "eor.w r6, r6, r11, lsl #16 \n\t" - "eor.w r6, r6, r12, lsl #24 \n\t" - - // AddRoundKey and AddRoundConst(from roundKeys) - "ldr.w r9, [r1,#24] \n\t" // load TK1 - "ldr.w r10, [r1,#28] \n\t" // load TK1 - "ldr.w r11, [r1,#240] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "ldr.w r12, [r1,#244] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - - "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) - "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) - // r8( s9 s8 s11 s10) - // r6(s12 s14 s14 s13) - - // MixColumn - "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 - "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 - "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 - // r8 ----------------> r8 - - // round 24 - - // SubCell+ShiftRow+AC(c2) - // r7 (s3 s2 s1 s0) - // r8 (s7 s6 s5 s4) - // r9 (s11 s10 s9 s8) - // r10(s15 s14 s13 s12) - - // 1st-2nd line - // r7(s3 s2 s1 s0) - "uxtb.w r5, r7, ror #24 \n\t" // s3 - "uxtb.w r4, r7, ror #16 \n\t" // s2 - "uxtb.w r3, r7, ror #8 \n\t" // s1 - "uxtb.w r7, r7 \n\t" // s0 - // r8(s6 s5 s4 s7) - "uxtb.w r12, r8, ror #16 \n\t" // s6 - "uxtb.w r11, r8, ror #8 \n\t" // s5 - "uxtb.w r6, r8 \n\t" // s4 - "uxtb.w r8, r8, ror #24 \n\t" // s7 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldr.w r0, [r1,#248] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r7, r7, r3, lsl #8 \n\t" - "eor.w r7, r7, r4, lsl #16 \n\t" - "eor.w r7, r7, r5, lsl #24 \n\t" - "eor.w r8, r8, r6, lsl #8 \n\t" - "eor.w r8, r8, r11, lsl #16 \n\t" - "eor.w r8, r8, r12, lsl #24 \n\t" - "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) - - // 3rd-4th line - // r9(s9 s8 s11 s10) - "uxtb.w r5, r9, ror #8 \n\t" // s9 - "uxtb.w r7, r9 \n\t" // s8 - "uxtb.w r3, r9, ror #24 \n\t" // s11 - "uxtb.w r9, r9, ror #16 \n\t" // s10 - // r10(s12 s15 s14 s13) - "uxtb.w r12, r10 \n\t" // s12 - "uxtb.w r11, r10, ror #24 \n\t" // s15 - "uxtb.w r6, r10, ror #16 \n\t" // s14 - "uxtb.w r10, r10, ror #8 \n\t" // s13 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldr.w r0, [r1,#252] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r9, r9, r3, lsl #8 \n\t" - "eor.w r9, r9, r7, lsl #16 \n\t" - "eor.w r9, r9, r5, lsl #24 \n\t" - "eor.w r10, r10, r6, lsl #8 \n\t" - "eor.w r10, r10, r11, lsl #16 \n\t" - "eor.w r10, r10, r12, lsl #24 \n\t" - "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) - - // AddRoundKey and AddRoundConst(from roundKeys) - - // r9( s9 s8 s11 s10) - // r10(s12 s14 s14 s13) - - // MixColumn - "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 - "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 - "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 - // r4 ----------------> r4 - // round 25 - - // SubCell+ShiftRow+AC(c2) - // r3 (s3 s2 s1 s0) - // r4 (s7 s6 s5 s4) - // r5 (s11 s10 s9 s8) - // r6 (s15 s14 s13 s12) - - // 1st-2nd line - // r3(s3 s2 s1 s0) - "uxtb.w r9, r3, ror #24 \n\t" // s3 - "uxtb.w r8, r3, ror #16 \n\t" // s2 - "uxtb.w r7, r3, ror #8 \n\t" // s1 - "uxtb.w r3, r3 \n\t" // s0 - // r4(s6 s5 s4 s7) - "uxtb.w r12, r4, ror #16 \n\t" // s6 - "uxtb.w r11, r4, ror #8 \n\t" // s5 - "uxtb.w r10, r4 \n\t" // s4 - "uxtb.w r4, r4, ror #24 \n\t" // s7 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "eor.w r3, r3, r7, lsl #8 \n\t" - "eor.w r3, r3, r8, lsl #16 \n\t" - "eor.w r3, r3, r9, lsl #24 \n\t" - "eor.w r4, r4, r10, lsl #8 \n\t" - "eor.w r4, r4, r11, lsl #16 \n\t" - "eor.w r4, r4, r12, lsl #24 \n\t" - - // 3rd-4th line - // r5(s9 s8 s11 s10) - "uxtb.w r9, r5, ror #8 \n\t" // s9 - "uxtb.w r8, r5 \n\t" // s8 - "uxtb.w r7, r5, ror #24 \n\t" // s11 - "uxtb.w r5, r5, ror #16 \n\t" // s10 - // r6(s12 s15 s14 s13) - "uxtb.w r12, r6 \n\t" // s12 - "uxtb.w r11, r6, ror #24 \n\t" // s15 - "uxtb.w r10, r6, ror #16 \n\t" // s14 - "uxtb.w r6, r6, ror #8 \n\t" // s13 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "eor.w r5, r5, r7, lsl #8 \n\t" - "eor.w r5, r5, r8, lsl #16 \n\t" - "eor.w r5, r5, r9, lsl #24 \n\t" - "eor.w r6, r6, r10, lsl #8 \n\t" - "eor.w r6, r6, r11, lsl #16 \n\t" - "eor.w r6, r6, r12, lsl #24 \n\t" - - // AddRoundKey and AddRoundConst(from roundKeys) - "ldr.w r9, [r1,#32] \n\t" // load TK1 - "ldr.w r10, [r1,#36] \n\t" // load TK1 - "ldr.w r11, [r1,#256] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "ldr.w r12, [r1,#260] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - - "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) - "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) - // r8( s9 s8 s11 s10) - // r6(s12 s14 s14 s13) - - // MixColumn - "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 - "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 - "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 - // r8 ----------------> r8 - - // round 26 - - // SubCell+ShiftRow+AC(c2) - // r7 (s3 s2 s1 s0) - // r8 (s7 s6 s5 s4) - // r9 (s11 s10 s9 s8) - // r10(s15 s14 s13 s12) - - // 1st-2nd line - // r7(s3 s2 s1 s0) - "uxtb.w r5, r7, ror #24 \n\t" // s3 - "uxtb.w r4, r7, ror #16 \n\t" // s2 - "uxtb.w r3, r7, ror #8 \n\t" // s1 - "uxtb.w r7, r7 \n\t" // s0 - // r8(s6 s5 s4 s7) - "uxtb.w r12, r8, ror #16 \n\t" // s6 - "uxtb.w r11, r8, ror #8 \n\t" // s5 - "uxtb.w r6, r8 \n\t" // s4 - "uxtb.w r8, r8, ror #24 \n\t" // s7 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldr.w r0, [r1,#264] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r7, r7, r3, lsl #8 \n\t" - "eor.w r7, r7, r4, lsl #16 \n\t" - "eor.w r7, r7, r5, lsl #24 \n\t" - "eor.w r8, r8, r6, lsl #8 \n\t" - "eor.w r8, r8, r11, lsl #16 \n\t" - "eor.w r8, r8, r12, lsl #24 \n\t" - "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) - - // 3rd-4th line - // r9(s9 s8 s11 s10) - "uxtb.w r5, r9, ror #8 \n\t" // s9 - "uxtb.w r7, r9 \n\t" // s8 - "uxtb.w r3, r9, ror #24 \n\t" // s11 - "uxtb.w r9, r9, ror #16 \n\t" // s10 - // r10(s12 s15 s14 s13) - "uxtb.w r12, r10 \n\t" // s12 - "uxtb.w r11, r10, ror #24 \n\t" // s15 - "uxtb.w r6, r10, ror #16 \n\t" // s14 - "uxtb.w r10, r10, ror #8 \n\t" // s13 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldr.w r0, [r1,#268] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r9, r9, r3, lsl #8 \n\t" - "eor.w r9, r9, r7, lsl #16 \n\t" - "eor.w r9, r9, r5, lsl #24 \n\t" - "eor.w r10, r10, r6, lsl #8 \n\t" - "eor.w r10, r10, r11, lsl #16 \n\t" - "eor.w r10, r10, r12, lsl #24 \n\t" - "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) - - // AddRoundKey and AddRoundConst(from roundKeys) - - // r9( s9 s8 s11 s10) - // r10(s12 s14 s14 s13) - - // MixColumn - "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 - "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 - "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 - // r4 ----------------> r4 - // round 27 - - // SubCell+ShiftRow+AC(c2) - // r3 (s3 s2 s1 s0) - // r4 (s7 s6 s5 s4) - // r5 (s11 s10 s9 s8) - // r6 (s15 s14 s13 s12) - - // 1st-2nd line - // r3(s3 s2 s1 s0) - "uxtb.w r9, r3, ror #24 \n\t" // s3 - "uxtb.w r8, r3, ror #16 \n\t" // s2 - "uxtb.w r7, r3, ror #8 \n\t" // s1 - "uxtb.w r3, r3 \n\t" // s0 - // r4(s6 s5 s4 s7) - "uxtb.w r12, r4, ror #16 \n\t" // s6 - "uxtb.w r11, r4, ror #8 \n\t" // s5 - "uxtb.w r10, r4 \n\t" // s4 - "uxtb.w r4, r4, ror #24 \n\t" // s7 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "eor.w r3, r3, r7, lsl #8 \n\t" - "eor.w r3, r3, r8, lsl #16 \n\t" - "eor.w r3, r3, r9, lsl #24 \n\t" - "eor.w r4, r4, r10, lsl #8 \n\t" - "eor.w r4, r4, r11, lsl #16 \n\t" - "eor.w r4, r4, r12, lsl #24 \n\t" - - // 3rd-4th line - // r5(s9 s8 s11 s10) - "uxtb.w r9, r5, ror #8 \n\t" // s9 - "uxtb.w r8, r5 \n\t" // s8 - "uxtb.w r7, r5, ror #24 \n\t" // s11 - "uxtb.w r5, r5, ror #16 \n\t" // s10 - // r6(s12 s15 s14 s13) - "uxtb.w r12, r6 \n\t" // s12 - "uxtb.w r11, r6, ror #24 \n\t" // s15 - "uxtb.w r10, r6, ror #16 \n\t" // s14 - "uxtb.w r6, r6, ror #8 \n\t" // s13 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "eor.w r5, r5, r7, lsl #8 \n\t" - "eor.w r5, r5, r8, lsl #16 \n\t" - "eor.w r5, r5, r9, lsl #24 \n\t" - "eor.w r6, r6, r10, lsl #8 \n\t" - "eor.w r6, r6, r11, lsl #16 \n\t" - "eor.w r6, r6, r12, lsl #24 \n\t" - - // AddRoundKey and AddRoundConst(from roundKeys) - "ldr.w r9, [r1,#40] \n\t" // load TK1 - "ldr.w r10, [r1,#44] \n\t" // load TK1 - "ldr.w r11, [r1,#272] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "ldr.w r12, [r1,#276] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - - "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) - "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) - // r8( s9 s8 s11 s10) - // r6(s12 s14 s14 s13) - - // MixColumn - "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 - "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 - "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 - // r8 ----------------> r8 - - // round 28 - - // SubCell+ShiftRow+AC(c2) - // r7 (s3 s2 s1 s0) - // r8 (s7 s6 s5 s4) - // r9 (s11 s10 s9 s8) - // r10(s15 s14 s13 s12) - - // 1st-2nd line - // r7(s3 s2 s1 s0) - "uxtb.w r5, r7, ror #24 \n\t" // s3 - "uxtb.w r4, r7, ror #16 \n\t" // s2 - "uxtb.w r3, r7, ror #8 \n\t" // s1 - "uxtb.w r7, r7 \n\t" // s0 - // r8(s6 s5 s4 s7) - "uxtb.w r12, r8, ror #16 \n\t" // s6 - "uxtb.w r11, r8, ror #8 \n\t" // s5 - "uxtb.w r6, r8 \n\t" // s4 - "uxtb.w r8, r8, ror #24 \n\t" // s7 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldr.w r0, [r1,#280] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r7, r7, r3, lsl #8 \n\t" - "eor.w r7, r7, r4, lsl #16 \n\t" - "eor.w r7, r7, r5, lsl #24 \n\t" - "eor.w r8, r8, r6, lsl #8 \n\t" - "eor.w r8, r8, r11, lsl #16 \n\t" - "eor.w r8, r8, r12, lsl #24 \n\t" - "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) - - // 3rd-4th line - // r9(s9 s8 s11 s10) - "uxtb.w r5, r9, ror #8 \n\t" // s9 - "uxtb.w r7, r9 \n\t" // s8 - "uxtb.w r3, r9, ror #24 \n\t" // s11 - "uxtb.w r9, r9, ror #16 \n\t" // s10 - // r10(s12 s15 s14 s13) - "uxtb.w r12, r10 \n\t" // s12 - "uxtb.w r11, r10, ror #24 \n\t" // s15 - "uxtb.w r6, r10, ror #16 \n\t" // s14 - "uxtb.w r10, r10, ror #8 \n\t" // s13 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldr.w r0, [r1,#284] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r9, r9, r3, lsl #8 \n\t" - "eor.w r9, r9, r7, lsl #16 \n\t" - "eor.w r9, r9, r5, lsl #24 \n\t" - "eor.w r10, r10, r6, lsl #8 \n\t" - "eor.w r10, r10, r11, lsl #16 \n\t" - "eor.w r10, r10, r12, lsl #24 \n\t" - "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) - - // AddRoundKey and AddRoundConst(from roundKeys) - - // r9( s9 s8 s11 s10) - // r10(s12 s14 s14 s13) - - // MixColumn - "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 - "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 - "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 - // r4 ----------------> r4 - // round 29 - - // SubCell+ShiftRow+AC(c2) - // r3 (s3 s2 s1 s0) - // r4 (s7 s6 s5 s4) - // r5 (s11 s10 s9 s8) - // r6 (s15 s14 s13 s12) - - // 1st-2nd line - // r3(s3 s2 s1 s0) - "uxtb.w r9, r3, ror #24 \n\t" // s3 - "uxtb.w r8, r3, ror #16 \n\t" // s2 - "uxtb.w r7, r3, ror #8 \n\t" // s1 - "uxtb.w r3, r3 \n\t" // s0 - // r4(s6 s5 s4 s7) - "uxtb.w r12, r4, ror #16 \n\t" // s6 - "uxtb.w r11, r4, ror #8 \n\t" // s5 - "uxtb.w r10, r4 \n\t" // s4 - "uxtb.w r4, r4, ror #24 \n\t" // s7 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "eor.w r3, r3, r7, lsl #8 \n\t" - "eor.w r3, r3, r8, lsl #16 \n\t" - "eor.w r3, r3, r9, lsl #24 \n\t" - "eor.w r4, r4, r10, lsl #8 \n\t" - "eor.w r4, r4, r11, lsl #16 \n\t" - "eor.w r4, r4, r12, lsl #24 \n\t" - - // 3rd-4th line - // r5(s9 s8 s11 s10) - "uxtb.w r9, r5, ror #8 \n\t" // s9 - "uxtb.w r8, r5 \n\t" // s8 - "uxtb.w r7, r5, ror #24 \n\t" // s11 - "uxtb.w r5, r5, ror #16 \n\t" // s10 - // r6(s12 s15 s14 s13) - "uxtb.w r12, r6 \n\t" // s12 - "uxtb.w r11, r6, ror #24 \n\t" // s15 - "uxtb.w r10, r6, ror #16 \n\t" // s14 - "uxtb.w r6, r6, ror #8 \n\t" // s13 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "eor.w r5, r5, r7, lsl #8 \n\t" - "eor.w r5, r5, r8, lsl #16 \n\t" - "eor.w r5, r5, r9, lsl #24 \n\t" - "eor.w r6, r6, r10, lsl #8 \n\t" - "eor.w r6, r6, r11, lsl #16 \n\t" - "eor.w r6, r6, r12, lsl #24 \n\t" - - // AddRoundKey and AddRoundConst(from roundKeys) - "ldr.w r9, [r1,#48] \n\t" // load TK1 - "ldr.w r10, [r1,#52] \n\t" // load TK1 - "ldr.w r11, [r1,#288] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "ldr.w r12, [r1,#292] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - - "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) - "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) - // r8( s9 s8 s11 s10) - // r6(s12 s14 s14 s13) - - // MixColumn - "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 - "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 - "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 - // r8 ----------------> r8 - - // round 30 - - // SubCell+ShiftRow+AC(c2) - // r7 (s3 s2 s1 s0) - // r8 (s7 s6 s5 s4) - // r9 (s11 s10 s9 s8) - // r10(s15 s14 s13 s12) - - // 1st-2nd line - // r7(s3 s2 s1 s0) - "uxtb.w r5, r7, ror #24 \n\t" // s3 - "uxtb.w r4, r7, ror #16 \n\t" // s2 - "uxtb.w r3, r7, ror #8 \n\t" // s1 - "uxtb.w r7, r7 \n\t" // s0 - // r8(s6 s5 s4 s7) - "uxtb.w r12, r8, ror #16 \n\t" // s6 - "uxtb.w r11, r8, ror #8 \n\t" // s5 - "uxtb.w r6, r8 \n\t" // s4 - "uxtb.w r8, r8, ror #24 \n\t" // s7 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldr.w r0, [r1,#296] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r7, r7, r3, lsl #8 \n\t" - "eor.w r7, r7, r4, lsl #16 \n\t" - "eor.w r7, r7, r5, lsl #24 \n\t" - "eor.w r8, r8, r6, lsl #8 \n\t" - "eor.w r8, r8, r11, lsl #16 \n\t" - "eor.w r8, r8, r12, lsl #24 \n\t" - "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) - - // 3rd-4th line - // r9(s9 s8 s11 s10) - "uxtb.w r5, r9, ror #8 \n\t" // s9 - "uxtb.w r7, r9 \n\t" // s8 - "uxtb.w r3, r9, ror #24 \n\t" // s11 - "uxtb.w r9, r9, ror #16 \n\t" // s10 - // r10(s12 s15 s14 s13) - "uxtb.w r12, r10 \n\t" // s12 - "uxtb.w r11, r10, ror #24 \n\t" // s15 - "uxtb.w r6, r10, ror #16 \n\t" // s14 - "uxtb.w r10, r10, ror #8 \n\t" // s13 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldr.w r0, [r1,#300] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r9, r9, r3, lsl #8 \n\t" - "eor.w r9, r9, r7, lsl #16 \n\t" - "eor.w r9, r9, r5, lsl #24 \n\t" - "eor.w r10, r10, r6, lsl #8 \n\t" - "eor.w r10, r10, r11, lsl #16 \n\t" - "eor.w r10, r10, r12, lsl #24 \n\t" - "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) - - // AddRoundKey and AddRoundConst(from roundKeys) - - // r9( s9 s8 s11 s10) - // r10(s12 s14 s14 s13) - - // MixColumn - "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 - "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 - "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 - // r4 ----------------> r4 - // round 31 - - // SubCell+ShiftRow+AC(c2) - // r3 (s3 s2 s1 s0) - // r4 (s7 s6 s5 s4) - // r5 (s11 s10 s9 s8) - // r6 (s15 s14 s13 s12) - - // 1st-2nd line - // r3(s3 s2 s1 s0) - "uxtb.w r9, r3, ror #24 \n\t" // s3 - "uxtb.w r8, r3, ror #16 \n\t" // s2 - "uxtb.w r7, r3, ror #8 \n\t" // s1 - "uxtb.w r3, r3 \n\t" // s0 - // r4(s6 s5 s4 s7) - "uxtb.w r12, r4, ror #16 \n\t" // s6 - "uxtb.w r11, r4, ror #8 \n\t" // s5 - "uxtb.w r10, r4 \n\t" // s4 - "uxtb.w r4, r4, ror #24 \n\t" // s7 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "eor.w r3, r3, r7, lsl #8 \n\t" - "eor.w r3, r3, r8, lsl #16 \n\t" - "eor.w r3, r3, r9, lsl #24 \n\t" - "eor.w r4, r4, r10, lsl #8 \n\t" - "eor.w r4, r4, r11, lsl #16 \n\t" - "eor.w r4, r4, r12, lsl #24 \n\t" - - // 3rd-4th line - // r5(s9 s8 s11 s10) - "uxtb.w r9, r5, ror #8 \n\t" // s9 - "uxtb.w r8, r5 \n\t" // s8 - "uxtb.w r7, r5, ror #24 \n\t" // s11 - "uxtb.w r5, r5, ror #16 \n\t" // s10 - // r6(s12 s15 s14 s13) - "uxtb.w r12, r6 \n\t" // s12 - "uxtb.w r11, r6, ror #24 \n\t" // s15 - "uxtb.w r10, r6, ror #16 \n\t" // s14 - "uxtb.w r6, r6, ror #8 \n\t" // s13 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "eor.w r5, r5, r7, lsl #8 \n\t" - "eor.w r5, r5, r8, lsl #16 \n\t" - "eor.w r5, r5, r9, lsl #24 \n\t" - "eor.w r6, r6, r10, lsl #8 \n\t" - "eor.w r6, r6, r11, lsl #16 \n\t" - "eor.w r6, r6, r12, lsl #24 \n\t" - - // AddRoundKey and AddRoundConst(from roundKeys) - "ldr.w r9, [r1,#56] \n\t" // load TK1 - "ldr.w r10, [r1,#60] \n\t" // load TK1 - "ldr.w r11, [r1,#304] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "ldr.w r12, [r1,#308] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - - "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) - "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) - // r8( s9 s8 s11 s10) - // r6(s12 s14 s14 s13) - - // MixColumn - "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 - "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 - "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 - // r8 ----------------> r8 - - // round 32 - - // SubCell+ShiftRow+AC(c2) - // r7 (s3 s2 s1 s0) - // r8 (s7 s6 s5 s4) - // r9 (s11 s10 s9 s8) - // r10(s15 s14 s13 s12) - - // 1st-2nd line - // r7(s3 s2 s1 s0) - "uxtb.w r5, r7, ror #24 \n\t" // s3 - "uxtb.w r4, r7, ror #16 \n\t" // s2 - "uxtb.w r3, r7, ror #8 \n\t" // s1 - "uxtb.w r7, r7 \n\t" // s0 - // r8(s6 s5 s4 s7) - "uxtb.w r12, r8, ror #16 \n\t" // s6 - "uxtb.w r11, r8, ror #8 \n\t" // s5 - "uxtb.w r6, r8 \n\t" // s4 - "uxtb.w r8, r8, ror #24 \n\t" // s7 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldr.w r0, [r1,#312] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r7, r7, r3, lsl #8 \n\t" - "eor.w r7, r7, r4, lsl #16 \n\t" - "eor.w r7, r7, r5, lsl #24 \n\t" - "eor.w r8, r8, r6, lsl #8 \n\t" - "eor.w r8, r8, r11, lsl #16 \n\t" - "eor.w r8, r8, r12, lsl #24 \n\t" - "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) - - // 3rd-4th line - // r9(s9 s8 s11 s10) - "uxtb.w r5, r9, ror #8 \n\t" // s9 - "uxtb.w r7, r9 \n\t" // s8 - "uxtb.w r3, r9, ror #24 \n\t" // s11 - "uxtb.w r9, r9, ror #16 \n\t" // s10 - // r10(s12 s15 s14 s13) - "uxtb.w r12, r10 \n\t" // s12 - "uxtb.w r11, r10, ror #24 \n\t" // s15 - "uxtb.w r6, r10, ror #16 \n\t" // s14 - "uxtb.w r10, r10, ror #8 \n\t" // s13 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldr.w r0, [r1,#316] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r9, r9, r3, lsl #8 \n\t" - "eor.w r9, r9, r7, lsl #16 \n\t" - "eor.w r9, r9, r5, lsl #24 \n\t" - "eor.w r10, r10, r6, lsl #8 \n\t" - "eor.w r10, r10, r11, lsl #16 \n\t" - "eor.w r10, r10, r12, lsl #24 \n\t" - "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) - - // AddRoundKey and AddRoundConst(from roundKeys) - - // r9( s9 s8 s11 s10) - // r10(s12 s14 s14 s13) - - // MixColumn - "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 - "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 - "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 - // r4 ----------------> r4 - // round 33 - - // SubCell+ShiftRow+AC(c2) - // r3 (s3 s2 s1 s0) - // r4 (s7 s6 s5 s4) - // r5 (s11 s10 s9 s8) - // r6 (s15 s14 s13 s12) - - // 1st-2nd line - // r3(s3 s2 s1 s0) - "uxtb.w r9, r3, ror #24 \n\t" // s3 - "uxtb.w r8, r3, ror #16 \n\t" // s2 - "uxtb.w r7, r3, ror #8 \n\t" // s1 - "uxtb.w r3, r3 \n\t" // s0 - // r4(s6 s5 s4 s7) - "uxtb.w r12, r4, ror #16 \n\t" // s6 - "uxtb.w r11, r4, ror #8 \n\t" // s5 - "uxtb.w r10, r4 \n\t" // s4 - "uxtb.w r4, r4, ror #24 \n\t" // s7 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "eor.w r3, r3, r7, lsl #8 \n\t" - "eor.w r3, r3, r8, lsl #16 \n\t" - "eor.w r3, r3, r9, lsl #24 \n\t" - "eor.w r4, r4, r10, lsl #8 \n\t" - "eor.w r4, r4, r11, lsl #16 \n\t" - "eor.w r4, r4, r12, lsl #24 \n\t" - - // 3rd-4th line - // r5(s9 s8 s11 s10) - "uxtb.w r9, r5, ror #8 \n\t" // s9 - "uxtb.w r8, r5 \n\t" // s8 - "uxtb.w r7, r5, ror #24 \n\t" // s11 - "uxtb.w r5, r5, ror #16 \n\t" // s10 - // r6(s12 s15 s14 s13) - "uxtb.w r12, r6 \n\t" // s12 - "uxtb.w r11, r6, ror #24 \n\t" // s15 - "uxtb.w r10, r6, ror #16 \n\t" // s14 - "uxtb.w r6, r6, ror #8 \n\t" // s13 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "eor.w r5, r5, r7, lsl #8 \n\t" - "eor.w r5, r5, r8, lsl #16 \n\t" - "eor.w r5, r5, r9, lsl #24 \n\t" - "eor.w r6, r6, r10, lsl #8 \n\t" - "eor.w r6, r6, r11, lsl #16 \n\t" - "eor.w r6, r6, r12, lsl #24 \n\t" - - // AddRoundKey and AddRoundConst(from roundKeys) - "ldr.w r9, [r1,#0] \n\t" // load TK1 - "ldr.w r10, [r1,#4] \n\t" // load TK1 - "ldr.w r11, [r1,#320] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "ldr.w r12, [r1,#324] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - - "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) - "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) - // r8( s9 s8 s11 s10) - // r6(s12 s14 s14 s13) - - // MixColumn - "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 - "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 - "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 - // r8 ----------------> r8 - - // round 34 - - // SubCell+ShiftRow+AC(c2) - // r7 (s3 s2 s1 s0) - // r8 (s7 s6 s5 s4) - // r9 (s11 s10 s9 s8) - // r10(s15 s14 s13 s12) - - // 1st-2nd line - // r7(s3 s2 s1 s0) - "uxtb.w r5, r7, ror #24 \n\t" // s3 - "uxtb.w r4, r7, ror #16 \n\t" // s2 - "uxtb.w r3, r7, ror #8 \n\t" // s1 - "uxtb.w r7, r7 \n\t" // s0 - // r8(s6 s5 s4 s7) - "uxtb.w r12, r8, ror #16 \n\t" // s6 - "uxtb.w r11, r8, ror #8 \n\t" // s5 - "uxtb.w r6, r8 \n\t" // s4 - "uxtb.w r8, r8, ror #24 \n\t" // s7 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldr.w r0, [r1,#328] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r7, r7, r3, lsl #8 \n\t" - "eor.w r7, r7, r4, lsl #16 \n\t" - "eor.w r7, r7, r5, lsl #24 \n\t" - "eor.w r8, r8, r6, lsl #8 \n\t" - "eor.w r8, r8, r11, lsl #16 \n\t" - "eor.w r8, r8, r12, lsl #24 \n\t" - "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) - - // 3rd-4th line - // r9(s9 s8 s11 s10) - "uxtb.w r5, r9, ror #8 \n\t" // s9 - "uxtb.w r7, r9 \n\t" // s8 - "uxtb.w r3, r9, ror #24 \n\t" // s11 - "uxtb.w r9, r9, ror #16 \n\t" // s10 - // r10(s12 s15 s14 s13) - "uxtb.w r12, r10 \n\t" // s12 - "uxtb.w r11, r10, ror #24 \n\t" // s15 - "uxtb.w r6, r10, ror #16 \n\t" // s14 - "uxtb.w r10, r10, ror #8 \n\t" // s13 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldr.w r0, [r1,#332] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r9, r9, r3, lsl #8 \n\t" - "eor.w r9, r9, r7, lsl #16 \n\t" - "eor.w r9, r9, r5, lsl #24 \n\t" - "eor.w r10, r10, r6, lsl #8 \n\t" - "eor.w r10, r10, r11, lsl #16 \n\t" - "eor.w r10, r10, r12, lsl #24 \n\t" - "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) - - // AddRoundKey and AddRoundConst(from roundKeys) - - // r9( s9 s8 s11 s10) - // r10(s12 s14 s14 s13) - - // MixColumn - "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 - "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 - "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 - // r4 ----------------> r4 - // round 35 - - // SubCell+ShiftRow+AC(c2) - // r3 (s3 s2 s1 s0) - // r4 (s7 s6 s5 s4) - // r5 (s11 s10 s9 s8) - // r6 (s15 s14 s13 s12) - - // 1st-2nd line - // r3(s3 s2 s1 s0) - "uxtb.w r9, r3, ror #24 \n\t" // s3 - "uxtb.w r8, r3, ror #16 \n\t" // s2 - "uxtb.w r7, r3, ror #8 \n\t" // s1 - "uxtb.w r3, r3 \n\t" // s0 - // r4(s6 s5 s4 s7) - "uxtb.w r12, r4, ror #16 \n\t" // s6 - "uxtb.w r11, r4, ror #8 \n\t" // s5 - "uxtb.w r10, r4 \n\t" // s4 - "uxtb.w r4, r4, ror #24 \n\t" // s7 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "eor.w r3, r3, r7, lsl #8 \n\t" - "eor.w r3, r3, r8, lsl #16 \n\t" - "eor.w r3, r3, r9, lsl #24 \n\t" - "eor.w r4, r4, r10, lsl #8 \n\t" - "eor.w r4, r4, r11, lsl #16 \n\t" - "eor.w r4, r4, r12, lsl #24 \n\t" - - // 3rd-4th line - // r5(s9 s8 s11 s10) - "uxtb.w r9, r5, ror #8 \n\t" // s9 - "uxtb.w r8, r5 \n\t" // s8 - "uxtb.w r7, r5, ror #24 \n\t" // s11 - "uxtb.w r5, r5, ror #16 \n\t" // s10 - // r6(s12 s15 s14 s13) - "uxtb.w r12, r6 \n\t" // s12 - "uxtb.w r11, r6, ror #24 \n\t" // s15 - "uxtb.w r10, r6, ror #16 \n\t" // s14 - "uxtb.w r6, r6, ror #8 \n\t" // s13 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "eor.w r5, r5, r7, lsl #8 \n\t" - "eor.w r5, r5, r8, lsl #16 \n\t" - "eor.w r5, r5, r9, lsl #24 \n\t" - "eor.w r6, r6, r10, lsl #8 \n\t" - "eor.w r6, r6, r11, lsl #16 \n\t" - "eor.w r6, r6, r12, lsl #24 \n\t" - - // AddRoundKey and AddRoundConst(from roundKeys) - "ldr.w r9, [r1,#8] \n\t" // load TK1 - "ldr.w r10, [r1,#12] \n\t" // load TK1 - "ldr.w r11, [r1,#336] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "ldr.w r12, [r1,#340] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - - "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) - "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) - // r8( s9 s8 s11 s10) - // r6(s12 s14 s14 s13) - - // MixColumn - "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 - "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 - "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 - // r8 ----------------> r8 - - // round 36 - - // SubCell+ShiftRow+AC(c2) - // r7 (s3 s2 s1 s0) - // r8 (s7 s6 s5 s4) - // r9 (s11 s10 s9 s8) - // r10(s15 s14 s13 s12) - - // 1st-2nd line - // r7(s3 s2 s1 s0) - "uxtb.w r5, r7, ror #24 \n\t" // s3 - "uxtb.w r4, r7, ror #16 \n\t" // s2 - "uxtb.w r3, r7, ror #8 \n\t" // s1 - "uxtb.w r7, r7 \n\t" // s0 - // r8(s6 s5 s4 s7) - "uxtb.w r12, r8, ror #16 \n\t" // s6 - "uxtb.w r11, r8, ror #8 \n\t" // s5 - "uxtb.w r6, r8 \n\t" // s4 - "uxtb.w r8, r8, ror #24 \n\t" // s7 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldr.w r0, [r1,#344] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r7, r7, r3, lsl #8 \n\t" - "eor.w r7, r7, r4, lsl #16 \n\t" - "eor.w r7, r7, r5, lsl #24 \n\t" - "eor.w r8, r8, r6, lsl #8 \n\t" - "eor.w r8, r8, r11, lsl #16 \n\t" - "eor.w r8, r8, r12, lsl #24 \n\t" - "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) - - // 3rd-4th line - // r9(s9 s8 s11 s10) - "uxtb.w r5, r9, ror #8 \n\t" // s9 - "uxtb.w r7, r9 \n\t" // s8 - "uxtb.w r3, r9, ror #24 \n\t" // s11 - "uxtb.w r9, r9, ror #16 \n\t" // s10 - // r10(s12 s15 s14 s13) - "uxtb.w r12, r10 \n\t" // s12 - "uxtb.w r11, r10, ror #24 \n\t" // s15 - "uxtb.w r6, r10, ror #16 \n\t" // s14 - "uxtb.w r10, r10, ror #8 \n\t" // s13 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldr.w r0, [r1,#348] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r9, r9, r3, lsl #8 \n\t" - "eor.w r9, r9, r7, lsl #16 \n\t" - "eor.w r9, r9, r5, lsl #24 \n\t" - "eor.w r10, r10, r6, lsl #8 \n\t" - "eor.w r10, r10, r11, lsl #16 \n\t" - "eor.w r10, r10, r12, lsl #24 \n\t" - "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) - - // AddRoundKey and AddRoundConst(from roundKeys) - - // r9( s9 s8 s11 s10) - // r10(s12 s14 s14 s13) - - // MixColumn - "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 - "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 - "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 - // r4 ----------------> r4 - // round 37 - - // SubCell+ShiftRow+AC(c2) - // r3 (s3 s2 s1 s0) - // r4 (s7 s6 s5 s4) - // r5 (s11 s10 s9 s8) - // r6 (s15 s14 s13 s12) - - // 1st-2nd line - // r3(s3 s2 s1 s0) - "uxtb.w r9, r3, ror #24 \n\t" // s3 - "uxtb.w r8, r3, ror #16 \n\t" // s2 - "uxtb.w r7, r3, ror #8 \n\t" // s1 - "uxtb.w r3, r3 \n\t" // s0 - // r4(s6 s5 s4 s7) - "uxtb.w r12, r4, ror #16 \n\t" // s6 - "uxtb.w r11, r4, ror #8 \n\t" // s5 - "uxtb.w r10, r4 \n\t" // s4 - "uxtb.w r4, r4, ror #24 \n\t" // s7 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "eor.w r3, r3, r7, lsl #8 \n\t" - "eor.w r3, r3, r8, lsl #16 \n\t" - "eor.w r3, r3, r9, lsl #24 \n\t" - "eor.w r4, r4, r10, lsl #8 \n\t" - "eor.w r4, r4, r11, lsl #16 \n\t" - "eor.w r4, r4, r12, lsl #24 \n\t" - - // 3rd-4th line - // r5(s9 s8 s11 s10) - "uxtb.w r9, r5, ror #8 \n\t" // s9 - "uxtb.w r8, r5 \n\t" // s8 - "uxtb.w r7, r5, ror #24 \n\t" // s11 - "uxtb.w r5, r5, ror #16 \n\t" // s10 - // r6(s12 s15 s14 s13) - "uxtb.w r12, r6 \n\t" // s12 - "uxtb.w r11, r6, ror #24 \n\t" // s15 - "uxtb.w r10, r6, ror #16 \n\t" // s14 - "uxtb.w r6, r6, ror #8 \n\t" // s13 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "eor.w r5, r5, r7, lsl #8 \n\t" - "eor.w r5, r5, r8, lsl #16 \n\t" - "eor.w r5, r5, r9, lsl #24 \n\t" - "eor.w r6, r6, r10, lsl #8 \n\t" - "eor.w r6, r6, r11, lsl #16 \n\t" - "eor.w r6, r6, r12, lsl #24 \n\t" - - // AddRoundKey and AddRoundConst(from roundKeys) - "ldr.w r9, [r1,#16] \n\t" // load TK1 - "ldr.w r10, [r1,#20] \n\t" // load TK1 - "ldr.w r11, [r1,#352] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "ldr.w r12, [r1,#356] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - - "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) - "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) - // r8( s9 s8 s11 s10) - // r6(s12 s14 s14 s13) - - // MixColumn - "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 - "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 - "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 - // r8 ----------------> r8 - - // round 38 - - // SubCell+ShiftRow+AC(c2) - // r7 (s3 s2 s1 s0) - // r8 (s7 s6 s5 s4) - // r9 (s11 s10 s9 s8) - // r10(s15 s14 s13 s12) - - // 1st-2nd line - // r7(s3 s2 s1 s0) - "uxtb.w r5, r7, ror #24 \n\t" // s3 - "uxtb.w r4, r7, ror #16 \n\t" // s2 - "uxtb.w r3, r7, ror #8 \n\t" // s1 - "uxtb.w r7, r7 \n\t" // s0 - // r8(s6 s5 s4 s7) - "uxtb.w r12, r8, ror #16 \n\t" // s6 - "uxtb.w r11, r8, ror #8 \n\t" // s5 - "uxtb.w r6, r8 \n\t" // s4 - "uxtb.w r8, r8, ror #24 \n\t" // s7 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldr.w r0, [r1,#360] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r7, r7, r3, lsl #8 \n\t" - "eor.w r7, r7, r4, lsl #16 \n\t" - "eor.w r7, r7, r5, lsl #24 \n\t" - "eor.w r8, r8, r6, lsl #8 \n\t" - "eor.w r8, r8, r11, lsl #16 \n\t" - "eor.w r8, r8, r12, lsl #24 \n\t" - "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) - - // 3rd-4th line - // r9(s9 s8 s11 s10) - "uxtb.w r5, r9, ror #8 \n\t" // s9 - "uxtb.w r7, r9 \n\t" // s8 - "uxtb.w r3, r9, ror #24 \n\t" // s11 - "uxtb.w r9, r9, ror #16 \n\t" // s10 - // r10(s12 s15 s14 s13) - "uxtb.w r12, r10 \n\t" // s12 - "uxtb.w r11, r10, ror #24 \n\t" // s15 - "uxtb.w r6, r10, ror #16 \n\t" // s14 - "uxtb.w r10, r10, ror #8 \n\t" // s13 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldr.w r0, [r1,#364] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r9, r9, r3, lsl #8 \n\t" - "eor.w r9, r9, r7, lsl #16 \n\t" - "eor.w r9, r9, r5, lsl #24 \n\t" - "eor.w r10, r10, r6, lsl #8 \n\t" - "eor.w r10, r10, r11, lsl #16 \n\t" - "eor.w r10, r10, r12, lsl #24 \n\t" - "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) - - // AddRoundKey and AddRoundConst(from roundKeys) - - // r9( s9 s8 s11 s10) - // r10(s12 s14 s14 s13) - - // MixColumn - "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 - "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 - "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 - // r4 ----------------> r4 - // round 39 - - // SubCell+ShiftRow+AC(c2) - // r3 (s3 s2 s1 s0) - // r4 (s7 s6 s5 s4) - // r5 (s11 s10 s9 s8) - // r6 (s15 s14 s13 s12) - - // 1st-2nd line - // r3(s3 s2 s1 s0) - "uxtb.w r9, r3, ror #24 \n\t" // s3 - "uxtb.w r8, r3, ror #16 \n\t" // s2 - "uxtb.w r7, r3, ror #8 \n\t" // s1 - "uxtb.w r3, r3 \n\t" // s0 - // r4(s6 s5 s4 s7) - "uxtb.w r12, r4, ror #16 \n\t" // s6 - "uxtb.w r11, r4, ror #8 \n\t" // s5 - "uxtb.w r10, r4 \n\t" // s4 - "uxtb.w r4, r4, ror #24 \n\t" // s7 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "eor.w r3, r3, r7, lsl #8 \n\t" - "eor.w r3, r3, r8, lsl #16 \n\t" - "eor.w r3, r3, r9, lsl #24 \n\t" - "eor.w r4, r4, r10, lsl #8 \n\t" - "eor.w r4, r4, r11, lsl #16 \n\t" - "eor.w r4, r4, r12, lsl #24 \n\t" - - // 3rd-4th line - // r5(s9 s8 s11 s10) - "uxtb.w r9, r5, ror #8 \n\t" // s9 - "uxtb.w r8, r5 \n\t" // s8 - "uxtb.w r7, r5, ror #24 \n\t" // s11 - "uxtb.w r5, r5, ror #16 \n\t" // s10 - // r6(s12 s15 s14 s13) - "uxtb.w r12, r6 \n\t" // s12 - "uxtb.w r11, r6, ror #24 \n\t" // s15 - "uxtb.w r10, r6, ror #16 \n\t" // s14 - "uxtb.w r6, r6, ror #8 \n\t" // s13 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "eor.w r5, r5, r7, lsl #8 \n\t" - "eor.w r5, r5, r8, lsl #16 \n\t" - "eor.w r5, r5, r9, lsl #24 \n\t" - "eor.w r6, r6, r10, lsl #8 \n\t" - "eor.w r6, r6, r11, lsl #16 \n\t" - "eor.w r6, r6, r12, lsl #24 \n\t" - - // AddRoundKey and AddRoundConst(from roundKeys) - "ldr.w r9, [r1,#24] \n\t" // load TK1 - "ldr.w r10, [r1,#28] \n\t" // load TK1 - "ldr.w r11, [r1,#368] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "ldr.w r12, [r1,#372] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - - "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) - "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) - // r8( s9 s8 s11 s10) - // r6(s12 s14 s14 s13) - - // MixColumn - "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 - "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 - "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 - // r8 ----------------> r8 - - // round 40 - - // SubCell+ShiftRow+AC(c2) - // r7 (s3 s2 s1 s0) - // r8 (s7 s6 s5 s4) - // r9 (s11 s10 s9 s8) - // r10(s15 s14 s13 s12) - - // 1st-2nd line - // r7(s3 s2 s1 s0) - "uxtb.w r5, r7, ror #24 \n\t" // s3 - "uxtb.w r4, r7, ror #16 \n\t" // s2 - "uxtb.w r3, r7, ror #8 \n\t" // s1 - "uxtb.w r7, r7 \n\t" // s0 - // r8(s6 s5 s4 s7) - "uxtb.w r12, r8, ror #16 \n\t" // s6 - "uxtb.w r11, r8, ror #8 \n\t" // s5 - "uxtb.w r6, r8 \n\t" // s4 - "uxtb.w r8, r8, ror #24 \n\t" // s7 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldr.w r0, [r1,#376] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r7, r7, r3, lsl #8 \n\t" - "eor.w r7, r7, r4, lsl #16 \n\t" - "eor.w r7, r7, r5, lsl #24 \n\t" - "eor.w r8, r8, r6, lsl #8 \n\t" - "eor.w r8, r8, r11, lsl #16 \n\t" - "eor.w r8, r8, r12, lsl #24 \n\t" - "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) - - // 3rd-4th line - // r9(s9 s8 s11 s10) - "uxtb.w r5, r9, ror #8 \n\t" // s9 - "uxtb.w r7, r9 \n\t" // s8 - "uxtb.w r3, r9, ror #24 \n\t" // s11 - "uxtb.w r9, r9, ror #16 \n\t" // s10 - // r10(s12 s15 s14 s13) - "uxtb.w r12, r10 \n\t" // s12 - "uxtb.w r11, r10, ror #24 \n\t" // s15 - "uxtb.w r6, r10, ror #16 \n\t" // s14 - "uxtb.w r10, r10, ror #8 \n\t" // s13 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldr.w r0, [r1,#380] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r9, r9, r3, lsl #8 \n\t" - "eor.w r9, r9, r7, lsl #16 \n\t" - "eor.w r9, r9, r5, lsl #24 \n\t" - "eor.w r10, r10, r6, lsl #8 \n\t" - "eor.w r10, r10, r11, lsl #16 \n\t" - "eor.w r10, r10, r12, lsl #24 \n\t" - "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) - - // AddRoundKey and AddRoundConst(from roundKeys) - - // r9( s9 s8 s11 s10) - // r10(s12 s14 s14 s13) - - // MixColumn - "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 - "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 - "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 - // r4 ----------------> r4 - - "ldmia.w sp!, {r0} \n\t" // pop store pointer - // r0 reload - - "str.w r3, [r0,#0] \n\t" // store ciphertext - "str.w r4, [r0,#4] \n\t" // store ciphertext - "str.w r5, [r0,#8] \n\t" // store ciphertext - "str.w r6, [r0,#12] \n\t" // store ciphertext - - "ldmia.w sp!, {r4-r12,r14} \n\t" - : - : [block] "r" (block), [roundKeys] "r" (roundKeys), [pSBOX] "" (pSBOX) - : "cc"); -} - diff --git a/romulus/Implementations/crypto_aead/romulusm1+v13/opt32/api.h b/romulus/Implementations/crypto_aead/romulusm1+v13/opt32/api.h deleted file mode 100644 index a4aa567..0000000 --- a/romulus/Implementations/crypto_aead/romulusm1+v13/opt32/api.h +++ /dev/null @@ -1,5 +0,0 @@ -#define CRYPTO_KEYBYTES 16 -#define CRYPTO_NSECBYTES 0 -#define CRYPTO_NPUBBYTES 16 -#define CRYPTO_ABYTES 16 -#define CRYPTO_NOOVERLAP 1 diff --git a/romulus/Implementations/crypto_aead/romulusm1+v13/opt32/crypto_aead.h b/romulus/Implementations/crypto_aead/romulusm1+v13/opt32/crypto_aead.h deleted file mode 100644 index e2ca9b0..0000000 --- a/romulus/Implementations/crypto_aead/romulusm1+v13/opt32/crypto_aead.h +++ /dev/null @@ -1,18 +0,0 @@ - -int crypto_aead_encrypt( - unsigned char *c, unsigned long long *clen, - const unsigned char *m, unsigned long long mlen, - const unsigned char *ad, unsigned long long adlen, - const unsigned char *nsec, - const unsigned char *npub, - const unsigned char *k -); - -int crypto_aead_decrypt( - unsigned char *m, unsigned long long *mlen, - unsigned char *nsec, - const unsigned char *c, unsigned long long clen, - const unsigned char *ad, unsigned long long adlen, - const unsigned char *npub, - const unsigned char *k -); \ No newline at end of file diff --git a/romulus/Implementations/crypto_aead/romulusm1+v13/opt32/encrypt.c b/romulus/Implementations/crypto_aead/romulusm1+v13/opt32/encrypt.c deleted file mode 100644 index ba9f51d..0000000 --- a/romulus/Implementations/crypto_aead/romulusm1+v13/opt32/encrypt.c +++ /dev/null @@ -1,367 +0,0 @@ -#include "skinny128.h" -#include "tk_schedule.h" -#include "romulus.h" -#include -#include - -static u8 final_ad_domain (unsigned long long adlen, unsigned long long mlen) { - u8 domain = 0; - u32 leftover; - //Determine which domain bits we need based on the length of the ad - if (adlen == 0) { - domain ^= 0x02; // No message, so only 1 block with padding - } else { - leftover = (u32)(adlen % (2 * BLOCKBYTES)); - if (leftover == 0) { // Even or odd ad length? - domain ^= 0x08; // Even with a full double block at the end - } else if (leftover < BLOCKBYTES) { - domain ^= 0x02; // Odd with a partial single block at the end - } else if (leftover > BLOCKBYTES) { - domain ^= 0x0A; // Even with a partial double block at the end - } - } - //Determine which domain bits we need based on the length of the message - if (mlen == 0) { - domain ^= 0x01; // No message, so only 1 block with padding - } else { - leftover = (unsigned)(mlen % (2 * BLOCKBYTES)); - if (leftover == 0) { // Even or odd message length? - domain ^= 0x04; // Even with a full double block at the end - } else if (leftover < BLOCKBYTES) { - domain ^= 0x01; // Odd with a partial single block at the end - } else if (leftover > BLOCKBYTES) { - domain ^= 0x05; // Even with a partial double block at the end - } - } - return domain; -} - -//Encryption and authentication using Romulus-N1 -int crypto_aead_encrypt - (unsigned char *c, unsigned long long *clen, - const unsigned char *m, unsigned long long mlen, - const unsigned char *ad, unsigned long long adlen, - const unsigned char *nsec, - const unsigned char *npub, - const unsigned char *k) { - - u32 tmp; - u64 tmp_mlen = mlen; - const u8* m_auth = m; - u8 final_domain = 0x30; - skinny_128_384_tks tks; - u8 state[BLOCKBYTES], pad[BLOCKBYTES]; - (void)nsec; - - // ----------------- Initialization ----------------- - *clen = mlen + TAGBYTES; - memset(tks.tk1, 0x00, KEYBYTES); - memset(state, 0x00, BLOCKBYTES); - tks.tk1[0] = 0x01; // Init the 56-bit LFSR counter - // ----------------- Initialization ----------------- - - // ----------------- Process the associated data ----------------- - final_domain ^= final_ad_domain(adlen, mlen); - SET_DOMAIN(tks, 0x28); - while (adlen > 2*BLOCKBYTES) { // Process double blocks but the last - UPDATE_CTR(tks.tk1); - XOR_BLOCK(state, state, ad); - precompute_rtk2_3(tks.rtk2_3, npub, k); - precompute_rtk1(tks.rtk1, tks.tk1); - skinny128_384_plus(state, state, tks.rtk1, tks.rtk2_3); - UPDATE_CTR(tks.tk1); - ad += 2*BLOCKBYTES; - adlen -= 2*BLOCKBYTES; - } - // Pad and process the left-over blocks - if (adlen == 2*BLOCKBYTES) { // Left-over complete double block - UPDATE_CTR(tks.tk1); - XOR_BLOCK(state, state, ad); - precompute_rtk2_3(tks.rtk2_3, ad + BLOCKBYTES, k); - precompute_rtk1(tks.rtk1, tks.tk1); - skinny128_384_plus(state, state, tks.rtk1, tks.rtk2_3); - UPDATE_CTR(tks.tk1); - } else if (adlen > BLOCKBYTES) { // Left-over partial double block - adlen -= BLOCKBYTES; - UPDATE_CTR(tks.tk1); - XOR_BLOCK(state, state, ad); - memcpy(pad, ad + BLOCKBYTES, adlen); - memset(pad + adlen, 0x00, 15 - adlen); - pad[15] = adlen; // Padding - precompute_rtk2_3(tks.rtk2_3, pad, k); - precompute_rtk1(tks.rtk1, tks.tk1); - skinny128_384_plus(state, state, tks.rtk1, tks.rtk2_3); - UPDATE_CTR(tks.tk1); - } else { - SET_DOMAIN(tks, 0x2C); - UPDATE_CTR(tks.tk1); - if (adlen == BLOCKBYTES) { // Left-over complete single block - XOR_BLOCK(state, state, ad); - } else { // Left-over partial single block - for(int i =0; i < (int)adlen; i++) - state[i] ^= ad[i]; - state[15] ^= adlen; // Padding - } - if (tmp_mlen >= BLOCKBYTES) { - precompute_rtk2_3(tks.rtk2_3, m_auth, k); - precompute_rtk1(tks.rtk1, tks.tk1); - skinny128_384_plus(state, state, tks.rtk1, tks.rtk2_3); - if (tmp_mlen > BLOCKBYTES) - UPDATE_CTR(tks.tk1); - tmp_mlen -= BLOCKBYTES; - m_auth += BLOCKBYTES; - } else { - memcpy(pad, m_auth, tmp_mlen); - memset(pad + tmp_mlen, 0x00, BLOCKBYTES - tmp_mlen - 1); - pad[15] = (u8)tmp_mlen; // Padding - precompute_rtk2_3(tks.rtk2_3, pad, k); - precompute_rtk1(tks.rtk1, tks.tk1); - skinny128_384_plus(state, state, tks.rtk1, tks.rtk2_3); - tmp_mlen = 0; - } - } - // Process all message double blocks except the last - SET_DOMAIN(tks, 0x2C); - while (tmp_mlen > 32) { - UPDATE_CTR(tks.tk1); - XOR_BLOCK(state, state, m_auth); - precompute_rtk2_3(tks.rtk2_3, m_auth + BLOCKBYTES, k); - precompute_rtk1(tks.rtk1, tks.tk1); - skinny128_384_plus(state, state, tks.rtk1, tks.rtk2_3); - UPDATE_CTR(tks.tk1); - m_auth += 2 * BLOCKBYTES; - tmp_mlen -= 2 * BLOCKBYTES; - } - // Process the last message double block - if (tmp_mlen == 2 * BLOCKBYTES) { // Last message double block is full - UPDATE_CTR(tks.tk1); - XOR_BLOCK(state, state, m_auth); - precompute_rtk2_3(tks.rtk2_3, m_auth + BLOCKBYTES, k); - precompute_rtk1(tks.rtk1, tks.tk1); - skinny128_384_plus(state, state, tks.rtk1, tks.rtk2_3); - } else if (tmp_mlen > BLOCKBYTES) { // Last message double block is partial - tmp_mlen -= BLOCKBYTES; - UPDATE_CTR(tks.tk1); - XOR_BLOCK(state, state, m_auth); - memcpy(pad, m_auth + BLOCKBYTES, tmp_mlen); - memset(pad + tmp_mlen, 0x00, BLOCKBYTES - tmp_mlen - 1); - pad[15] = (u8)tmp_mlen; // Padding - precompute_rtk2_3(tks.rtk2_3, pad, k); - precompute_rtk1(tks.rtk1, tks.tk1); - skinny128_384_plus(state, state, tks.rtk1, tks.rtk2_3); - } else if (tmp_mlen == BLOCKBYTES) { // Last message single block is full - XOR_BLOCK(state, state, m_auth); - } else if (tmp_mlen > 0) { // Last message single block is partial - for(int i =0; i < (int)tmp_mlen; i++) - state[i] ^= m_auth[i]; - state[15] ^= (u8)tmp_mlen; // Padding - } - // Process the last partial block - SET_DOMAIN(tks, final_domain); - UPDATE_CTR(tks.tk1); - precompute_rtk2_3(tks.rtk2_3, npub, k); - precompute_rtk1(tks.rtk1, tks.tk1); - skinny128_384_plus(state, state, tks.rtk1, tks.rtk2_3); - // ----------------- Process the associated data ----------------- - - - // ----------------- Generate the tag ----------------- - G(state,state); - memcpy(c + mlen, state, TAGBYTES); - // ----------------- Generate the tag ----------------- - - memset(tks.tk1, 0x00, KEYBYTES); - tks.tk1[0] = 0x01; // Init the 56-bit LFSR counter - if (mlen > 0) { - SET_DOMAIN(tks, 0x24); - while (mlen > BLOCKBYTES) { - precompute_rtk1(tks.rtk1, tks.tk1); - skinny128_384_plus(state, state, tks.rtk1, tks.rtk2_3); - RHO(state,c,m); - UPDATE_CTR(tks.tk1); - c += BLOCKBYTES; - m += BLOCKBYTES; - mlen -= BLOCKBYTES; - } - precompute_rtk1(tks.rtk1, tks.tk1); - skinny128_384_plus(state, state, tks.rtk1, tks.rtk2_3); - for(int i = 0; i < (int)mlen; i++) { - tmp = m[i]; // Use of tmp variable in case c = m - c[i] = m[i] ^ (state[i] >> 1) ^ (state[i] & 0x80) ^ (state[i] << 7); - state[i] ^= (u8)tmp; - } - state[15] ^= (u8)mlen; // Padding - } - - return 0; -} - -//Decryption and tag verification using Romulus-N1 -int crypto_aead_decrypt - (unsigned char *m, unsigned long long *mlen, - unsigned char *nsec, - const unsigned char *c, unsigned long long clen, - const unsigned char *ad, unsigned long long adlen, - const unsigned char *npub, - const unsigned char *k) { - - u32 tmp; - u64 tmp_mlen; - u8 final_domain = 0x30; - u8* m_auth = m; - const u8* c_tmp = c; - skinny_128_384_tks tks; - u8 state[BLOCKBYTES], pad[BLOCKBYTES]; - (void)nsec; - - if (clen < TAGBYTES) - return -1; - - // ----------------- Initialization ----------------- - *mlen = clen - TAGBYTES; - memset(tks.tk1, 0x00, KEYBYTES); - tks.tk1[0] = 0x01; // Init the 56-bit LFSR counter - // ----------------- Initialization ----------------- - - // ----------------- Process the ciphertext ----------------- - clen -= TAGBYTES; - memcpy(state, c + clen, TAGBYTES); - tmp_mlen = clen; - if (tmp_mlen > 0) { - SET_DOMAIN(tks, 0x24); - precompute_rtk2_3(tks.rtk2_3, npub, k); - while (tmp_mlen > BLOCKBYTES) { - precompute_rtk1(tks.rtk1, tks.tk1); - skinny128_384_plus(state, state, tks.rtk1, tks.rtk2_3); - RHO_INV(state, c, m); - UPDATE_CTR(tks.tk1); - c += BLOCKBYTES; - m += BLOCKBYTES; - tmp_mlen -= BLOCKBYTES; - } - precompute_rtk1(tks.rtk1, tks.tk1); - skinny128_384_plus(state, state, tks.rtk1, tks.rtk2_3); - for(int i = 0; i < (int)tmp_mlen; i++) { - m[i] = c[i] ^ (state[i] >> 1) ^ (state[i] & 0x80) ^ (state[i] << 7); - state[i] ^= m[i]; - } - state[15] ^= (u8)tmp_mlen; // Padding - } - // ----------------- Process the ciphertext ----------------- - - // ----------------- Process the associated data ----------------- - memset(tks.tk1, 0x00, KEYBYTES); - tks.tk1[0] = 0x01; // Init the 56-bit LFSR counter - memset(state, 0x00, BLOCKBYTES); - final_domain ^= final_ad_domain(adlen, clen); - SET_DOMAIN(tks, 0x28); - while (adlen > 2*BLOCKBYTES) { // Process double blocks but the last - UPDATE_CTR(tks.tk1); - XOR_BLOCK(state, state, ad); - precompute_rtk2_3(tks.rtk2_3, ad + BLOCKBYTES, k); - precompute_rtk1(tks.rtk1, tks.tk1); - skinny128_384_plus(state, state, tks.rtk1, tks.rtk2_3); - UPDATE_CTR(tks.tk1); - ad += 2*BLOCKBYTES; - adlen -= 2*BLOCKBYTES; - } - // Pad and process the left-over blocks - if (adlen == 2*BLOCKBYTES) { // Left-over complete double block - UPDATE_CTR(tks.tk1); - XOR_BLOCK(state, state, ad); - precompute_rtk2_3(tks.rtk2_3, ad + BLOCKBYTES, k); - precompute_rtk1(tks.rtk1, tks.tk1); - skinny128_384_plus(state, state, tks.rtk1, tks.rtk2_3); - UPDATE_CTR(tks.tk1); - } else if (adlen > BLOCKBYTES) { // Left-over partial double block - adlen -= BLOCKBYTES; - UPDATE_CTR(tks.tk1); - XOR_BLOCK(state, state, ad); - memcpy(pad, ad + BLOCKBYTES, adlen); - memset(pad + adlen, 0x00, 15 - adlen); - pad[15] = adlen; // Padding - precompute_rtk2_3(tks.rtk2_3, pad, k); - precompute_rtk1(tks.rtk1, tks.tk1); - skinny128_384_plus(state, state, tks.rtk1, tks.rtk2_3); - UPDATE_CTR(tks.tk1); - } else { - SET_DOMAIN(tks, 0x2C); - UPDATE_CTR(tks.tk1); - if (adlen == BLOCKBYTES) { // Left-over complete single block - XOR_BLOCK(state, state, ad); - } else { // Left-over partial single block - for(int i =0; i < (int)adlen; i++) - state[i] ^= ad[i]; - state[15] ^= adlen; // Padding - } - if (clen >= BLOCKBYTES) { - precompute_rtk2_3(tks.rtk2_3, m_auth, k); - precompute_rtk1(tks.rtk1, tks.tk1); - skinny128_384_plus(state, state, tks.rtk1, tks.rtk2_3); - if (clen > BLOCKBYTES) - UPDATE_CTR(tks.tk1); - m_auth += BLOCKBYTES; - clen -= BLOCKBYTES; - } else { - memcpy(pad, m_auth, clen); - memset(pad + clen, 0x00, BLOCKBYTES - clen - 1); - pad[15] = (u8)clen; // Padding - precompute_rtk2_3(tks.rtk2_3, pad, k); - precompute_rtk1(tks.rtk1, tks.tk1); - skinny128_384_plus(state, state, tks.rtk1, tks.rtk2_3); - clen = 0; - } - } - // Process all message double blocks except the last - SET_DOMAIN(tks, 0x2C); - while (clen > 32) { - UPDATE_CTR(tks.tk1); - XOR_BLOCK(state, state, m_auth); - precompute_rtk2_3(tks.rtk2_3, m_auth + BLOCKBYTES, k); - precompute_rtk1(tks.rtk1, tks.tk1); - skinny128_384_plus(state, state, tks.rtk1, tks.rtk2_3); - UPDATE_CTR(tks.tk1); - m_auth += 2 * BLOCKBYTES; - clen -= 2 * BLOCKBYTES; - } - // Process the last message double block - if (clen == 2 * BLOCKBYTES) { // Last message double block is full - UPDATE_CTR(tks.tk1); - XOR_BLOCK(state, state, m_auth); - precompute_rtk2_3(tks.rtk2_3, m_auth + BLOCKBYTES, k); - precompute_rtk1(tks.rtk1, tks.tk1); - skinny128_384_plus(state, state, tks.rtk1, tks.rtk2_3); - } else if (clen > BLOCKBYTES) { // Last message double block is partial - clen -= BLOCKBYTES; - UPDATE_CTR(tks.tk1); - XOR_BLOCK(state, state, m_auth); - memcpy(pad, m_auth + BLOCKBYTES, clen); - memset(pad + clen, 0x00, BLOCKBYTES - clen - 1); - pad[15] = (u8)clen; // Padding - precompute_rtk2_3(tks.rtk2_3, pad, k); - precompute_rtk1(tks.rtk1, tks.tk1); - skinny128_384_plus(state, state, tks.rtk1, tks.rtk2_3); - } else if (clen == BLOCKBYTES) { // Last message single block is full - XOR_BLOCK(state, state, m_auth); - } else if (clen > 0) { // Last message single block is partial - for(int i =0; i < (int)clen; i++) - state[i] ^= m[i]; - state[15] ^= (u8)clen; // Padding - } - // Process the last partial block - SET_DOMAIN(tks, final_domain); - UPDATE_CTR(tks.tk1); - precompute_rtk2_3(tks.rtk2_3, npub, k); - precompute_rtk1(tks.rtk1, tks.tk1); - skinny128_384_plus(state, state, tks.rtk1, tks.rtk2_3); - // ----------------- Process the associated data ----------------- - - // ----------------- Generate and check the tag ----------------- - G(state,state); - tmp = 0; - for(int i = 0; i < TAGBYTES; i++) - tmp |= state[i] ^ c_tmp[*mlen+i]; //constant-time tag comparison - // ----------------- Generate and check the tag ----------------- - - return tmp; -} \ No newline at end of file diff --git a/romulus/Implementations/crypto_aead/romulusm1+v13/opt32/romulus.h b/romulus/Implementations/crypto_aead/romulusm1+v13/opt32/romulus.h deleted file mode 100644 index b254e2a..0000000 --- a/romulus/Implementations/crypto_aead/romulusm1+v13/opt32/romulus.h +++ /dev/null @@ -1,69 +0,0 @@ -#ifndef ROMULUSN1_H_ -#define ROMULUSN1_H_ - -#include "skinny128.h" - -typedef unsigned char u8; -typedef unsigned int u32; -typedef unsigned int u64; -typedef struct { - u8 tk1[16]; //to manipulate tk1 byte-wise - u32 rtk1[4*16]; //to avoid tk schedule recomputations - u32 rtk2_3[4*SKINNY128_384_ROUNDS]; //all round tweakeys -} skinny_128_384_tks; - -#define TAGBYTES 16 -#define KEYBYTES 16 -#define BLOCKBYTES 16 - -#define SET_DOMAIN(tks, domain) ((tks).tk1[7] = (domain)) - -//G as defined in the Romulus specification in a 32-bit word-wise manner -#define G(x,y) ({ \ - tmp = ((u32*)(y))[0]; \ - ((u32*)(x))[0] = (tmp >> 1 & 0x7f7f7f7f) ^ ((tmp ^ (tmp << 7)) & 0x80808080); \ - tmp = ((u32*)(y))[1]; \ - ((u32*)(x))[1] = (tmp >> 1 & 0x7f7f7f7f) ^ ((tmp ^ (tmp << 7)) & 0x80808080); \ - tmp = ((u32*)(y))[2]; \ - ((u32*)(x))[2] = (tmp >> 1 & 0x7f7f7f7f) ^ ((tmp ^ (tmp << 7)) & 0x80808080); \ - tmp = ((u32*)(y))[3]; \ - ((u32*)(x))[3] = (tmp >> 1 & 0x7f7f7f7f) ^ ((tmp ^ (tmp << 7)) & 0x80808080); \ -}) - -//update the counter in tk1 in a 32-bit word-wise manner -#define UPDATE_CTR(tk1) ({ \ - tmp = ((u32*)(tk1))[1]; \ - ((u32*)(tk1))[1] = (tmp << 1) & 0x00ffffff; \ - ((u32*)(tk1))[1] |= (((u32*)(tk1))[0] >> 31); \ - ((u32*)(tk1))[1] |= tmp & 0xff000000; \ - ((u32*)(tk1))[0] <<= 1; \ - if ((tmp >> 23) & 0x01) \ - ((u32*)(tk1))[0] ^= 0x95; \ -}) - -//x <- y ^ z for 128-bit blocks -#define XOR_BLOCK(x,y,z) ({ \ - ((u32*)(x))[0] = ((u32*)(y))[0] ^ ((u32*)(z))[0]; \ - ((u32*)(x))[1] = ((u32*)(y))[1] ^ ((u32*)(z))[1]; \ - ((u32*)(x))[2] = ((u32*)(y))[2] ^ ((u32*)(z))[2]; \ - ((u32*)(x))[3] = ((u32*)(y))[3] ^ ((u32*)(z))[3]; \ -}) - - -//Rho as defined in the Romulus specification -//use pad as a tmp variable in case y = z -#define RHO(x,y,z) ({ \ - G(pad,x); \ - XOR_BLOCK(y, pad, z); \ - XOR_BLOCK(x, x, z); \ -}) - -//Rho inverse as defined in the Romulus specification -//use pad as a tmp variable in case y = z -#define RHO_INV(x, y, z) ({ \ - G(pad, x); \ - XOR_BLOCK(z, pad, y); \ - XOR_BLOCK(x, x, z); \ -}) - -#endif // ROMULUSN1_H_ \ No newline at end of file diff --git a/romulus/Implementations/crypto_aead/romulusm1+v13/opt32/skinny128.c b/romulus/Implementations/crypto_aead/romulusm1+v13/opt32/skinny128.c deleted file mode 100644 index a1061d5..0000000 --- a/romulus/Implementations/crypto_aead/romulusm1+v13/opt32/skinny128.c +++ /dev/null @@ -1,107 +0,0 @@ -/****************************************************************************** -* Constant-time implementation of the SKINNY tweakable block ciphers. -* -* This implementation doesn't compute the ShiftRows operation. Some masks and -* shifts are applied during the MixColumns operation so that the proper bits -* are XORed together. Moreover, the row permutation within the MixColumns -* is omitted, as well as the bit permutation at the end of the Sbox. The rows -* are synchronized with the classical after only 4 rounds. Therefore, this -* implementation relies on a "QUADRUPLE_ROUND" routine. -* -* The Sbox computation takes advantage of some symmetry in the 8-bit Sbox to -* turn it into a 4-bit S-box computation. Although the last bit permutation -* within the Sbox is not computed, the bit ordering is synchronized with the -* classical representation after 2 calls. -* -* @author Alexandre Adomnicai, Nanyang Technological University, -* alexandre.adomnicai@ntu.edu.sg -* -* @date May 2020 -******************************************************************************/ -#include -#include -#include "skinny128.h" -#include "tk_schedule.h" - -/****************************************************************************** -* The MixColumns computation for rounds i such that (i % 4) == 0 -******************************************************************************/ -void mixcolumns_0(u32* state) { - u32 tmp; - for(int i = 0; i < 4; i++) { - tmp = ROR(state[i],24) & 0x0c0c0c0c; - state[i] ^= ROR(tmp,30); - tmp = ROR(state[i],16) & 0xc0c0c0c0; - state[i] ^= ROR(tmp,4); - tmp = ROR(state[i],8) & 0x0c0c0c0c; - state[i] ^= ROR(tmp,2); - } -} - -/****************************************************************************** -* The MixColumns computation for rounds i such that (i % 4) == 1 -******************************************************************************/ -void mixcolumns_1(u32* state) { - u32 tmp; - for(int i = 0; i < 4; i++) { - tmp = ROR(state[i],16) & 0x30303030; - state[i] ^= ROR(tmp,30); - tmp = state[i] & 0x03030303; - state[i] ^= ROR(tmp,28); - tmp = ROR(state[i],16) & 0x30303030; - state[i] ^= ROR(tmp,2); - } -} - -/****************************************************************************** -* The MixColumns computation for rounds i such that (i % 4) == 2 -******************************************************************************/ -void mixcolumns_2(u32* state) { - u32 tmp; - for(int i = 0; i < 4; i++) { - tmp = ROR(state[i],8) & 0xc0c0c0c0; - state[i] ^= ROR(tmp,6); - tmp = ROR(state[i],16) & 0x0c0c0c0c; - state[i] ^= ROR(tmp,28); - tmp = ROR(state[i],24) & 0xc0c0c0c0; - state[i] ^= ROR(tmp,2); - } -} - -/****************************************************************************** -* The MixColumns computation for rounds i such that (i % 4) == 3 -******************************************************************************/ -void mixcolumns_3(u32* state) { - u32 tmp; - for(int i = 0; i < 4; i++) { - tmp = state[i] & 0x03030303; - state[i] ^= ROR(tmp,30); - tmp = state[i] & 0x30303030; - state[i] ^= ROR(tmp,4); - tmp = state[i] & 0x03030303; - state[i] ^= ROR(tmp,26); - } -} - -/****************************************************************************** -* Encryption of a single block without any operation mode using SKINNY-128-384. -* RTK1 and RTK2_3 are given separately to take advantage of the fact that -* TK2 and TK3 remains the same through the entire data encryption/decryption. -******************************************************************************/ -void skinny128_384_plus(u8* ctext, const u8* ptext, const u32* rtk1, - const u32* rtk2_3) { - u32 tmp; // used in SWAPMOVE macro - u32 state[4]; // 128-bit state - packing(state, ptext); // from byte to bitsliced representation - QUADRUPLE_ROUND(state, rtk1, rtk2_3); - QUADRUPLE_ROUND(state, rtk1+16, rtk2_3+16); - QUADRUPLE_ROUND(state, rtk1+32, rtk2_3+32); - QUADRUPLE_ROUND(state, rtk1+48, rtk2_3+48); - QUADRUPLE_ROUND(state, rtk1, rtk2_3+64); - QUADRUPLE_ROUND(state, rtk1+16, rtk2_3+80); - QUADRUPLE_ROUND(state, rtk1+32, rtk2_3+96); - QUADRUPLE_ROUND(state, rtk1+48, rtk2_3+112); - QUADRUPLE_ROUND(state, rtk1, rtk2_3+128); - QUADRUPLE_ROUND(state, rtk1+16, rtk2_3+144); - unpacking(ctext, state); // from bitsliced to byte representation -} \ No newline at end of file diff --git a/romulus/Implementations/crypto_aead/romulusm1+v13/opt32/skinny128.h b/romulus/Implementations/crypto_aead/romulusm1+v13/opt32/skinny128.h deleted file mode 100644 index bda1e9b..0000000 --- a/romulus/Implementations/crypto_aead/romulusm1+v13/opt32/skinny128.h +++ /dev/null @@ -1,95 +0,0 @@ -#ifndef SKINNY128_H_ -#define SKINNY128_H_ - -typedef unsigned char u8; -typedef unsigned int u32; - -void skinny128_384_plus(u8* ctext, const u8* ptext, const u32* rtk1, const u32* rtk2_3); - -#define SKINNY128_384_ROUNDS 40 - -#define QUADRUPLE_ROUND(state, rtk1, rtk2_3) ({ \ - state[3] ^= ~(state[0] | state[1]); \ - SWAPMOVE(state[2], state[1], 0x55555555, 1); \ - SWAPMOVE(state[3], state[2], 0x55555555, 1); \ - state[1] ^= ~(state[2] | state[3]); \ - SWAPMOVE(state[1], state[0], 0x55555555, 1); \ - SWAPMOVE(state[0], state[3], 0x55555555, 1); \ - state[3] ^= ~(state[0] | state[1]); \ - SWAPMOVE(state[2], state[1], 0x55555555, 1); \ - SWAPMOVE(state[3], state[2], 0x55555555, 1); \ - state[1] ^= (state[2] | state[3]); \ - SWAPMOVE(state[3], state[0], 0x55555555, 0); \ - state[0] ^= (rtk1)[0]; \ - state[1] ^= (rtk1)[1]; \ - state[2] ^= (rtk1)[2]; \ - state[3] ^= (rtk1)[3]; \ - state[0] ^= (rtk2_3)[0]; \ - state[1] ^= (rtk2_3)[1]; \ - state[2] ^= (rtk2_3)[2]; \ - state[3] ^= (rtk2_3)[3]; \ - mixcolumns_0(state); \ - state[1] ^= ~(state[2] | state[3]); \ - SWAPMOVE(state[1], state[0], 0x55555555, 1); \ - SWAPMOVE(state[0], state[3], 0x55555555, 1); \ - state[3] ^= ~(state[0] | state[1]); \ - SWAPMOVE(state[2], state[1], 0x55555555, 1); \ - SWAPMOVE(state[3], state[2], 0x55555555, 1); \ - state[1] ^= ~(state[2] | state[3]); \ - SWAPMOVE(state[1], state[0], 0x55555555, 1); \ - SWAPMOVE(state[0], state[3], 0x55555555, 1); \ - state[3] ^= (state[0] | state[1]); \ - SWAPMOVE(state[1], state[2], 0x55555555, 0); \ - state[0] ^= (rtk1)[4]; \ - state[1] ^= (rtk1)[5]; \ - state[2] ^= (rtk1)[6]; \ - state[3] ^= (rtk1)[7]; \ - state[0] ^= (rtk2_3)[4]; \ - state[1] ^= (rtk2_3)[5]; \ - state[2] ^= (rtk2_3)[6]; \ - state[3] ^= (rtk2_3)[7]; \ - mixcolumns_1(state); \ - state[3] ^= ~(state[0] | state[1]); \ - SWAPMOVE(state[2], state[1], 0x55555555, 1); \ - SWAPMOVE(state[3], state[2], 0x55555555, 1); \ - state[1] ^= ~(state[2] | state[3]); \ - SWAPMOVE(state[1], state[0], 0x55555555, 1); \ - SWAPMOVE(state[0], state[3], 0x55555555, 1); \ - state[3] ^= ~(state[0] | state[1]); \ - SWAPMOVE(state[2], state[1], 0x55555555, 1); \ - SWAPMOVE(state[3], state[2], 0x55555555, 1); \ - state[1] ^= (state[2] | state[3]); \ - SWAPMOVE(state[3], state[0], 0x55555555, 0); \ - state[0] ^= (rtk1)[8]; \ - state[1] ^= (rtk1)[9]; \ - state[2] ^= (rtk1)[10]; \ - state[3] ^= (rtk1)[11]; \ - state[0] ^= (rtk2_3)[8]; \ - state[1] ^= (rtk2_3)[9]; \ - state[2] ^= (rtk2_3)[10]; \ - state[3] ^= (rtk2_3)[11]; \ - mixcolumns_2(state); \ - state[1] ^= ~(state[2] | state[3]); \ - SWAPMOVE(state[1], state[0], 0x55555555, 1); \ - SWAPMOVE(state[0], state[3], 0x55555555, 1); \ - state[3] ^= ~(state[0] | state[1]); \ - SWAPMOVE(state[2], state[1], 0x55555555, 1); \ - SWAPMOVE(state[3], state[2], 0x55555555, 1); \ - state[1] ^= ~(state[2] | state[3]); \ - SWAPMOVE(state[1], state[0], 0x55555555, 1); \ - SWAPMOVE(state[0], state[3], 0x55555555, 1); \ - state[3] ^= (state[0] | state[1]); \ - SWAPMOVE(state[1], state[2], 0x55555555, 0); \ - state[0] ^= (rtk1)[12]; \ - state[1] ^= (rtk1)[13]; \ - state[2] ^= (rtk1)[14]; \ - state[3] ^= (rtk1)[15]; \ - state[0] ^= (rtk2_3)[12]; \ - state[1] ^= (rtk2_3)[13]; \ - state[2] ^= (rtk2_3)[14]; \ - state[3] ^= (rtk2_3)[15]; \ - mixcolumns_3(state); \ -}) - - -#endif // SKINNY128_H_ \ No newline at end of file diff --git a/romulus/Implementations/crypto_aead/romulusm1+v13/opt32/tk_schedule.c b/romulus/Implementations/crypto_aead/romulusm1+v13/opt32/tk_schedule.c deleted file mode 100644 index 1da4277..0000000 --- a/romulus/Implementations/crypto_aead/romulusm1+v13/opt32/tk_schedule.c +++ /dev/null @@ -1,368 +0,0 @@ -/****************************************************************************** -* Implementation of the SKINNY tweakey schedule to match fixslicing. -* -* @author Alexandre Adomnicai, Nanyang Technological University, -* alexandre.adomnicai@ntu.edu.sg -* -* @date May 2020 -******************************************************************************/ -#include -#include //for memcmp -#include "tk_schedule.h" -#include "skinny128.h" - -typedef unsigned char u8; -typedef unsigned int u32; - -/****************************************************************************** -* The round constants according to the new representation. -******************************************************************************/ -u32 rconst_32_bs[160] = { - 0x00000004, 0xffffffbf, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x10000100, 0xfffffeff, 0x44000000, 0xfbffffff, 0x00000000, 0x04000000, - 0x00100000, 0x00100000, 0x00100001, 0xffefffff, 0x00440000, 0xffafffff, - 0x00400000, 0x00400000, 0x01000000, 0x01000000, 0x01401000, 0xffbfffff, - 0x01004000, 0xfefffbff, 0x00000400, 0x00000400, 0x00000010, 0x00000000, - 0x00010410, 0xfffffbef, 0x00000054, 0xffffffaf, 0x00000000, 0x00000040, - 0x00000100, 0x00000100, 0x10000140, 0xfffffeff, 0x44000000, 0xfffffeff, - 0x04000000, 0x04000000, 0x00100000, 0x00100000, 0x04000001, 0xfbffffff, - 0x00140000, 0xffafffff, 0x00400000, 0x00000000, 0x00000000, 0x00000000, - 0x01401000, 0xfebfffff, 0x01004400, 0xfffffbff, 0x00000000, 0x00000400, - 0x00000010, 0x00000010, 0x00010010, 0xffffffff, 0x00000004, 0xffffffaf, - 0x00000040, 0x00000040, 0x00000100, 0x00000000, 0x10000140, 0xffffffbf, - 0x40000100, 0xfbfffeff, 0x00000000, 0x04000000, 0x00100000, 0x00000000, - 0x04100001, 0xffefffff, 0x00440000, 0xffefffff, 0x00000000, 0x00400000, - 0x01000000, 0x01000000, 0x00401000, 0xffffffff, 0x00004000, 0xfeffffff, - 0x00000400, 0x00000000, 0x00000000, 0x00000000, 0x00010400, 0xfffffbff, - 0x00000014, 0xffffffbf, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x10000100, 0xffffffff, 0x40000000, 0xfbffffff, 0x00000000, 0x04000000, - 0x00100000, 0x00000000, 0x00100001, 0xffefffff, 0x00440000, 0xffafffff, - 0x00000000, 0x00400000, 0x01000000, 0x01000000, 0x01401000, 0xffffffff, - 0x00004000, 0xfeffffff, 0x00000400, 0x00000400, 0x00000010, 0x00000000, - 0x00010400, 0xfffffbff, 0x00000014, 0xffffffaf, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x10000140, 0xfffffeff, 0x44000000, 0xffffffff, - 0x00000000, 0x04000000, 0x00100000, 0x00100000, 0x00000001, 0xffefffff, - 0x00440000, 0xffafffff, 0x00400000, 0x00000000, 0x00000000, 0x01000000, - 0x01401000, 0xffbfffff, 0x01004000, 0xfffffbff, 0x00000400, 0x00000400, - 0x00000010, 0x00000000, 0x00010010, 0xfffffbff -}; - -/****************************************************************************** -* Pack the input into the bitsliced representation -* 24 28 56 60 88 92 120 124 | ... | 0 4 32 36 64 68 96 100 -* 25 29 57 61 89 93 121 125 | ... | 1 5 33 37 65 69 97 101 -* 26 30 58 62 90 94 122 126 | ... | 2 6 34 38 66 70 98 102 -* 27 31 59 63 91 95 123 127 | ... | 3 7 35 39 67 71 99 103 -******************************************************************************/ -void packing(u32* out, const u8* in) { - u32 tmp; - LE_LOAD(out, in); - LE_LOAD(out + 1, in + 8); - LE_LOAD(out + 2, in + 4); - LE_LOAD(out + 3, in + 12); - SWAPMOVE(out[0], out[0], 0x0a0a0a0a, 3); - SWAPMOVE(out[1], out[1], 0x0a0a0a0a, 3); - SWAPMOVE(out[2], out[2], 0x0a0a0a0a, 3); - SWAPMOVE(out[3], out[3], 0x0a0a0a0a, 3); - SWAPMOVE(out[2], out[0], 0x30303030, 2); - SWAPMOVE(out[1], out[0], 0x0c0c0c0c, 4); - SWAPMOVE(out[3], out[0], 0x03030303, 6); - SWAPMOVE(out[1], out[2], 0x0c0c0c0c, 2); - SWAPMOVE(out[3], out[2], 0x03030303, 4); - SWAPMOVE(out[3], out[1], 0x03030303, 2); -} - -/****************************************************************************** -* Unpack the input to a byte-wise representation -******************************************************************************/ -void unpacking(u8* out, u32 *in) { - u32 tmp; - SWAPMOVE(in[3], in[1], 0x03030303, 2); - SWAPMOVE(in[3], in[2], 0x03030303, 4); - SWAPMOVE(in[1], in[2], 0x0c0c0c0c, 2); - SWAPMOVE(in[3], in[0], 0x03030303, 6); - SWAPMOVE(in[1], in[0], 0x0c0c0c0c, 4); - SWAPMOVE(in[2], in[0], 0x30303030, 2); - SWAPMOVE(in[0], in[0], 0x0a0a0a0a, 3); - SWAPMOVE(in[1], in[1], 0x0a0a0a0a, 3); - SWAPMOVE(in[2], in[2], 0x0a0a0a0a, 3); - SWAPMOVE(in[3], in[3], 0x0a0a0a0a, 3); - LE_STORE(out, in[0]); - LE_STORE(out + 8, in[1]); - LE_STORE(out + 4, in[2]); - LE_STORE(out + 12, in[3]); -} - -/****************************************************************************** -* 0 4 1 5 -* 1 5 ---> 2 6 -* 2 6 3 7 -* 3 7 4 0 -******************************************************************************/ -void lfsr2_bs(u32* tk) { - u32 tmp; - tmp = tk[0] ^ (tk[2] & 0xaaaaaaaa); - tmp = ((tmp & 0xaaaaaaaa) >> 1) | ((tmp << 1) & 0xaaaaaaaa); - tk[0] = tk[1]; - tk[1] = tk[2]; - tk[2] = tk[3]; - tk[3] = tmp; -} - -/****************************************************************************** -* 0 4 7 3 -* 1 5 ---> 0 4 -* 2 6 1 5 -* 3 7 2 6 -******************************************************************************/ -void lfsr3_bs(u32* tk) { - u32 tmp; - tmp = tk[3] ^ ((tk[1] & 0xaaaaaaaa) >> 1); - tmp = ((tmp & 0xaaaaaaaa) >> 1) | ((tmp << 1) & 0xaaaaaaaa); - tk[3] = tk[2]; - tk[2] = tk[1]; - tk[1] = tk[0]; - tk[0] = tmp; -} - -/****************************************************************************** -* Apply the permutation in a bitsliced manner, twice -******************************************************************************/ -void permute_tk_2(u32* tk) { - u32 tmp; - for(int i =0; i < 4; i++) { - tmp = tk[i]; - tk[i] = ROR(tmp,14) & 0xcc00cc00; - tk[i] |= (tmp & 0x000000ff) << 16; - tk[i] |= (tmp & 0xcc000000)>> 2; - tk[i] |= (tmp & 0x0033cc00) >> 8; - tk[i] |= (tmp & 0x00cc0000) >>18; - } -} - -/****************************************************************************** -* Apply the permutation in a bitsliced manner, 4 times -******************************************************************************/ -void permute_tk_4(u32* tk) { - u32 tmp; - for(int i =0; i < 4; i++) { - tmp = tk[i]; - tk[i] = ROR(tmp,22) & 0xcc0000cc; - tk[i] |= ROR(tmp,16) & 0x3300cc00; - tk[i] |= ROR(tmp, 24) & 0x00cc3300; - tk[i] |= (tmp & 0x00cc00cc) >> 2; - } -} - -/****************************************************************************** -* Apply the permutation in a bitsliced manner, 6 times -******************************************************************************/ -void permute_tk_6(u32* tk) { - u32 tmp; - for(int i =0; i < 4; i++) { - tmp = tk[i]; - tk[i] = ROR(tmp,6) & 0xcccc0000; - tk[i] |= ROR(tmp,24) & 0x330000cc; - tk[i] |= ROR(tmp,10) & 0x3333; - tk[i] |= (tmp & 0xcc) << 14; - tk[i] |= (tmp & 0x3300) << 2; - } -} - -/****************************************************************************** -* Apply the permutation in a bitsliced manner, 8 times -******************************************************************************/ -void permute_tk_8(u32* tk) { - u32 tmp; - for(int i =0; i < 4; i++) { - tmp = tk[i]; - tk[i] = ROR(tmp,24) & 0xcc000033; - tk[i] |= ROR(tmp,8) & 0x33cc0000; - tk[i] |= ROR(tmp,26) & 0x00333300; - tk[i] |= (tmp & 0x00333300) >> 6; - } -} - -/****************************************************************************** -* Apply the permutation in a bitsliced manner, 10 times -******************************************************************************/ -void permute_tk_10(u32* tk) { - u32 tmp; - for(int i =0; i < 4; i++) { - tmp = tk[i]; - tk[i] = ROR(tmp,8) & 0xcc330000; - tk[i] |= ROR(tmp,26) & 0x33000033; - tk[i] |= ROR(tmp,22) & 0x00cccc00; - tk[i] |= (tmp & 0x00330000) >> 14; - tk[i] |= (tmp & 0xcc00) >> 2; - } -} - -/****************************************************************************** -* Apply the permutation in a bitsliced manner, 12 times -******************************************************************************/ -void permute_tk_12(u32* tk) { - u32 tmp; - for(int i =0; i < 4; i++) { - tmp = tk[i]; - tk[i] = ROR(tmp,8) & 0xcc33; - tk[i] |= ROR(tmp,30) & 0x00cc00cc; - tk[i] |= ROR(tmp,10) & 0x33330000; - tk[i] |= ROR(tmp,16) & 0xcc003300; - } -} - -/****************************************************************************** -* Apply the permutation in a bitsliced manner, 14 times -******************************************************************************/ -void permute_tk_14(u32* tk) { - u32 tmp; - for(int i =0; i < 4; i++) { - tmp = tk[i]; - tk[i] = ROR(tmp,24) & 0x0033cc00; - tk[i] |= ROR(tmp,14) & 0x00cc0000; - tk[i] |= ROR(tmp,30) & 0xcc000000; - tk[i] |= ROR(tmp,16) & 0x000000ff; - tk[i] |= ROR(tmp,18) & 0x33003300; - } -} - -/****************************************************************************** -* Precompute all LFSRs on TK2 -******************************************************************************/ -void precompute_lfsr_tk2(u32* tk, const u8* key, const int rounds) { - u32 tk2[4]; - packing(tk2, key); - memcpy(tk, tk2, 16); - for(int i = 0 ; i < rounds; i+=2) { - lfsr2_bs(tk2); - memcpy(tk+i*4+4, tk2, 16); - } -} - -/****************************************************************************** -* Precompute all LFSRs on TK3 -******************************************************************************/ -void precompute_lfsr_tk3(u32* tk, const u8* key, const int rounds) { - u32 tk3[4]; - packing(tk3, key); - tk[0] ^= tk3[0]; - tk[1] ^= tk3[1]; - tk[2] ^= tk3[2]; - tk[3] ^= tk3[3]; - for(int i = 0 ; i < rounds; i+=2) { - lfsr3_bs(tk3); - tk[i*4+4] ^= tk3[0]; - tk[i*4+5] ^= tk3[1]; - tk[i*4+6] ^= tk3[2]; - tk[i*4+7] ^= tk3[3]; - } -} - -/****************************************************************************** -* XOR TK with TK1 before applying the permutations. -* The key is then rearranged to match the barrel shiftrows representation. -******************************************************************************/ -void permute_tk(u32* tk, const u8* key, const int rounds) { - u32 test; - u32 tk1[4], tmp[4]; - packing(tk1, key); - memcpy(tmp, tk, 16); - tmp[0] ^= tk1[0]; - tmp[1] ^= tk1[1]; - tmp[2] ^= tk1[2]; - tmp[3] ^= tk1[3]; - for(int i = 0 ; i < rounds; i += 8) { - test = (i % 16 < 8) ? 1 : 0; //to apply the right power of P - tk[i*4] = tmp[2] & 0xf0f0f0f0; - tk[i*4+1] = tmp[3] & 0xf0f0f0f0; - tk[i*4+2] = tmp[0] & 0xf0f0f0f0; - tk[i*4+3] = tmp[1] & 0xf0f0f0f0; - memcpy(tmp, tk+i*4+4, 16); - XOR_BLOCKS(tmp, tk1); - if (test) - permute_tk_2(tmp); // applies P^2 - else - permute_tk_10(tmp); // applies P^10 - tk[i*4+4] = ROR(tmp[0],26) & 0xc3c3c3c3; - tk[i*4+5] = ROR(tmp[1],26) & 0xc3c3c3c3; - tk[i*4+6] = ROR(tmp[2],26) & 0xc3c3c3c3; - tk[i*4+7] = ROR(tmp[3],26) & 0xc3c3c3c3; - tk[i*4+8] = ROR(tmp[2],28) & 0x03030303; - tk[i*4+8] |= ROR(tmp[2],12) & 0x0c0c0c0c; - tk[i*4+9] = ROR(tmp[3],28) & 0x03030303; - tk[i*4+9] |= ROR(tmp[3],12) & 0x0c0c0c0c; - tk[i*4+10] = ROR(tmp[0],28) & 0x03030303; - tk[i*4+10] |= ROR(tmp[0],12) & 0x0c0c0c0c; - tk[i*4+11] = ROR(tmp[1],28) & 0x03030303; - tk[i*4+11] |= ROR(tmp[1],12) & 0x0c0c0c0c; - memcpy(tmp, tk+i*4+12, 16); - XOR_BLOCKS(tmp, tk1); - if (test) - permute_tk_4(tmp); // applies P^4 - else - permute_tk_12(tmp); // applies P^12 - for(int j = 0; j < 4; j++) { - tk[i*4+12+j] = ROR(tmp[j],14) & 0x30303030; - tk[i*4+12+j] |= ROR(tmp[j],6) & 0x0c0c0c0c; - } - tk[i*4+16] = ROR(tmp[2], 16) & 0xf0f0f0f0; - tk[i*4+17] = ROR(tmp[3], 16) & 0xf0f0f0f0; - tk[i*4+18] = ROR(tmp[0], 16) & 0xf0f0f0f0; - tk[i*4+19] = ROR(tmp[1], 16) & 0xf0f0f0f0; - memcpy(tmp, tk+i*4+20, 16); - XOR_BLOCKS(tmp, tk1); - if (test) - permute_tk_6(tmp); // applies P^6 - else - permute_tk_14(tmp); // applies P^14 - tk[i*4+20] = ROR(tmp[0], 10) & 0xc3c3c3c3; - tk[i*4+21] = ROR(tmp[1], 10) & 0xc3c3c3c3; - tk[i*4+22] = ROR(tmp[2], 10) & 0xc3c3c3c3; - tk[i*4+23] = ROR(tmp[3], 10) & 0xc3c3c3c3; - tk[i*4+24] = ROR(tmp[2],12) & 0x03030303; - tk[i*4+24] |= ROR(tmp[2],28) & 0x0c0c0c0c; - tk[i*4+25] = ROR(tmp[3],12) & 0x03030303; - tk[i*4+25] |= ROR(tmp[3],28) & 0x0c0c0c0c; - tk[i*4+26] = ROR(tmp[0],12) & 0x03030303; - tk[i*4+26] |= ROR(tmp[0],28) & 0x0c0c0c0c; - tk[i*4+27] = ROR(tmp[1],12) & 0x03030303; - tk[i*4+27] |= ROR(tmp[1],28) & 0x0c0c0c0c; - memcpy(tmp, tk+i*4+28, 16); - XOR_BLOCKS(tmp, tk1); - if (test) - permute_tk_8(tmp); // applies P^8 - for(int j = 0; j < 4; j++) { - tk[i*4+28+j] = ROR(tmp[j],30) & 0x30303030; - tk[i*4+28+j] |= ROR(tmp[j],22) & 0x0c0c0c0c; - } - if (test && (i+8 < rounds)) { //only if next loop iteration - tk[i*4+32] = tmp[2] & 0xf0f0f0f0; - tk[i*4+33] = tmp[3] & 0xf0f0f0f0; - tk[i*4+34] = tmp[0] & 0xf0f0f0f0; - tk[i*4+35] = tmp[1] & 0xf0f0f0f0; - } - } -} - -/****************************************************************************** -* Precompute LFSR2(TK2) ^ LFSR3(TK3) ^ rconst. -******************************************************************************/ -void precompute_rtk2_3(u32* rtk, const u8* tk2, const u8 * tk3) { - memset(rtk, 0x00, 16*SKINNY128_384_ROUNDS); - precompute_lfsr_tk2(rtk, tk2, SKINNY128_384_ROUNDS); - precompute_lfsr_tk3(rtk, tk3, SKINNY128_384_ROUNDS); - permute_tk(rtk, (u8*)(rtk+8), SKINNY128_384_ROUNDS); // rtk+8 is NULL - for(int i = 0; i < SKINNY128_384_ROUNDS; i++) { // add rconsts - for(int j = 0; j < 4; j++) - rtk[i*4+j] ^= rconst_32_bs[i*4+j]; - } -} - -/****************************************************************************** -* Precompute RTK1. -******************************************************************************/ -void precompute_rtk1(u32* rtk1, const u8* tk1) { - memset(rtk1, 0x00, 16*16); - permute_tk(rtk1, tk1, 16); -} \ No newline at end of file diff --git a/romulus/Implementations/crypto_aead/romulusm1+v13/opt32/tk_schedule.h b/romulus/Implementations/crypto_aead/romulusm1+v13/opt32/tk_schedule.h deleted file mode 100644 index 5615cbd..0000000 --- a/romulus/Implementations/crypto_aead/romulusm1+v13/opt32/tk_schedule.h +++ /dev/null @@ -1,39 +0,0 @@ -#ifndef TK_SCHEDULE_H_ -#define TK_SCHEDULE_H_ - -typedef unsigned char u8; -typedef unsigned int u32; - -void packing(u32* out, const u8* in); -void unpacking(u8* out, u32 *in); -void precompute_rtk2_3(u32* rtk, const u8* tk2, const u8* tk3); -void precompute_rtk1(u32* rtk1, const u8* tk1); - -#define ROR(x,y) (((x) >> (y)) | ((x) << (32 - (y)))) - -#define XOR_BLOCKS(x,y) ({ \ - (x)[0] ^= (y)[0]; \ - (x)[1] ^= (y)[1]; \ - (x)[2] ^= (y)[2]; \ - (x)[3] ^= (y)[3]; \ -}) - -#define SWAPMOVE(a, b, mask, n) ({ \ - tmp = (b ^ (a >> n)) & mask; \ - b ^= tmp; \ - a ^= (tmp << n); \ -}) - -#define LE_LOAD(x, y) \ - *(x) = (((u32)(y)[3] << 24) | \ - ((u32)(y)[2] << 16) | \ - ((u32)(y)[1] << 8) | \ - (y)[0]); - -#define LE_STORE(x, y) \ - (x)[0] = (y) & 0xff; \ - (x)[1] = ((y) >> 8) & 0xff; \ - (x)[2] = ((y) >> 16) & 0xff; \ - (x)[3] = (y) >> 24; - -#endif // TK_SCHEDULE_H_ \ No newline at end of file diff --git a/romulus/Implementations/crypto_aead/romulusm1/LWC_AEAD_KAT_128_128.txt b/romulus/Implementations/crypto_aead/romulusm1/LWC_AEAD_KAT_128_128.txt new file mode 100644 index 0000000..dc9755c --- /dev/null +++ b/romulus/Implementations/crypto_aead/romulusm1/LWC_AEAD_KAT_128_128.txt @@ -0,0 +1,7623 @@ +Count = 1 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = +AD = +CT = C96F00B90B047ABC5EB6EC0F15BC43CF + +Count = 2 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = +AD = 00 +CT = 9A4B3E4DB525820A3E8FB2DECB430A17 + +Count = 3 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = +AD = 0001 +CT = FDE62DF05BAC7F8B8F0DF728A8362FB0 + +Count = 4 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = +AD = 000102 +CT = 616BC725C3CD253A8D13C28A803256CC + +Count = 5 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = +AD = 00010203 +CT = 63D305F723F44956409BB12477FCC0F4 + +Count = 6 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = +AD = 0001020304 +CT = 8ABA74E3D2984495FC5E117B19368951 + +Count = 7 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = +AD = 000102030405 +CT = DCEE5F849E99298AF5A8B958D2958346 + +Count = 8 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = +AD = 00010203040506 +CT = 33BE7EE65428D5EAFB583112D1D9A8B0 + +Count = 9 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = +AD = 0001020304050607 +CT = C26FA7855B1308EA58ED8D8AC7F8DD81 + +Count = 10 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = +AD = 000102030405060708 +CT = DF30EE37151E9424D054F3C3A1B2F2BE + +Count = 11 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = +AD = 00010203040506070809 +CT = 6C1EA04E5A5F5311CAF55E0382D5F943 + +Count = 12 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = +AD = 000102030405060708090A +CT = D1DACB46342AA1C4324D97026EBF50E2 + +Count = 13 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = +AD = 000102030405060708090A0B +CT = D6621ABD2D11908BB2A78216135C1310 + +Count = 14 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = +AD = 000102030405060708090A0B0C +CT = 3C2E3B663B7971C46880158A01A719EF + +Count = 15 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = +AD = 000102030405060708090A0B0C0D +CT = 336286D2347DBA5947BD76DBB9401244 + +Count = 16 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = +AD = 000102030405060708090A0B0C0D0E +CT = 0FBD389ABF97B7AA8BB16EB84F51830D + +Count = 17 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = +AD = 000102030405060708090A0B0C0D0E0F +CT = 9D239BAC04A370CA5196D94B2F9DE8F6 + +Count = 18 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = +AD = 000102030405060708090A0B0C0D0E0F10 +CT = A66383F2C8447D288611B24D610F796E + +Count = 19 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = DB7882042686BBF608C625327809E1D1 + +Count = 20 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = C8A2FDF9C808E609370C080726DCFBFC + +Count = 21 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 014383A8876B66990D5406AC5E853A4C + +Count = 22 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = 2541B2F43B9362D0519D5631208CFC96 + +Count = 23 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = 3F46CE6449F7C2DE697215FA443620DD + +Count = 24 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = B338A31B1D5CF458B211C20375550B59 + +Count = 25 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = 8F1DB8B8BCC291FA105B6BF3859F0793 + +Count = 26 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 9ADBE9A75294B1F1B93775EE089F17BB + +Count = 27 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = 94338B82DCD560E0BE516AD2FF583295 + +Count = 28 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 99ADD0B128B25C0BD2455D8B01976055 + +Count = 29 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = E43FEEE48C4121FD0FFD0FDAD5350708 + +Count = 30 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = D41256AEE7EEF93AE28A062302E02F8B + +Count = 31 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = DF1CBB784F32BFA1787F004B0D837BEE + +Count = 32 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = F4115577312B06F60A8816DE47FBEBDB + +Count = 33 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = E95EE3E14DBF3C684433EE1ED971FF07 + +Count = 34 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00 +AD = +CT = 691D79158D739AD24A74EF427B9C771D2A + +Count = 35 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00 +AD = 00 +CT = 57DE8B2CBF781D9189A621A6C6B93390B8 + +Count = 36 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00 +AD = 0001 +CT = B5D44DCEB08896613F7B3EC8F70C930C1B + +Count = 37 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00 +AD = 000102 +CT = 13A8A9E9D79FF477540A8C082D7A296CAE + +Count = 38 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00 +AD = 00010203 +CT = 08B9C7A4DDF8FB7A6F1F92BDD97BA9010C + +Count = 39 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00 +AD = 0001020304 +CT = 4CD7237641242D0EF2885E1823101451C8 + +Count = 40 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00 +AD = 000102030405 +CT = 6F43046732289A84C27B26B698DBC68C34 + +Count = 41 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00 +AD = 00010203040506 +CT = 9F4CB7B8624C3C847C57C3BE4799C8D1B0 + +Count = 42 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00 +AD = 0001020304050607 +CT = D6DE596AFE8EE94E5FF58F8E414C208D2B + +Count = 43 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00 +AD = 000102030405060708 +CT = FC6648E76C747134CC735572787833E2A7 + +Count = 44 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00 +AD = 00010203040506070809 +CT = F99E65A1C010553B85CF9CAE016411F33C + +Count = 45 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00 +AD = 000102030405060708090A +CT = D0E7684679FC94CA4A85C06DF89F98C179 + +Count = 46 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00 +AD = 000102030405060708090A0B +CT = AA80F62D99B9518DF0253A078322A3C823 + +Count = 47 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00 +AD = 000102030405060708090A0B0C +CT = 8BB3A24084641F9AE744B13EE1E35F2241 + +Count = 48 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00 +AD = 000102030405060708090A0B0C0D +CT = D195133399C40009F23FFAFAEC88638D27 + +Count = 49 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00 +AD = 000102030405060708090A0B0C0D0E +CT = D85935B082494416AEA7D58F81ADEFF6D9 + +Count = 50 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00 +AD = 000102030405060708090A0B0C0D0E0F +CT = 0AFC5AB987F6916D255ACFDE26D0BB1FBD + +Count = 51 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 5C4C6FC39FC96868FD02D364E18C38F671 + +Count = 52 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = F3003ED2B425E99E59E58F89A00FC4E91B + +Count = 53 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = 6AE2FD15A20A9C7061E92B0E3E47A4705F + +Count = 54 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 4A7804CD959848297BEE90E11F7C4DDB2F + +Count = 55 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = 39F252498080336AE083BE7B81471317D7 + +Count = 56 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = 6B98FD77C2A7CA6B864A04DD0E73E2A1B1 + +Count = 57 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 04C00CB28C6B5595293767D9D73B9C38EE + +Count = 58 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = 9E1A5C1991537E37C94271DB40A88271A4 + +Count = 59 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 737F3B8AF7C14B51A44BCF59256B6D167E + +Count = 60 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = 4A35081F6241A5FEC6BF16C49C0D5711DB + +Count = 61 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 3507CCCFF975437173D69080CF454E2012 + +Count = 62 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = CB2C35BED467C0A47B2B79F4FE86D7DDAA + +Count = 63 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = C30287FF6C70678534918DA08D4B2644C1 + +Count = 64 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = D570256A610C264767D8688EDAC0E07752 + +Count = 65 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = 3AAF3AE6FFEA74374942BD0C74E65E65E9 + +Count = 66 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 2D69E79E1F555B393724A8C631DA257AEF + +Count = 67 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001 +AD = +CT = 6BF154A33F708E421529C751871B216B2825 + +Count = 68 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001 +AD = 00 +CT = 696DAA45B4E9953178F9C03FAEA541904137 + +Count = 69 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001 +AD = 0001 +CT = F32D7ADC8DF811AE19BE70C33484A705571C + +Count = 70 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001 +AD = 000102 +CT = 22E19904FC36821F98B4189AAE751713DDD5 + +Count = 71 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001 +AD = 00010203 +CT = E9EA346FCC4F5A57045BBE9B342C6092DACC + +Count = 72 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001 +AD = 0001020304 +CT = AB2BC72DAC71B50DB35D82AEA3BC370A7EE9 + +Count = 73 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001 +AD = 000102030405 +CT = F8966632C3872043F5A50E93616D87204EC5 + +Count = 74 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001 +AD = 00010203040506 +CT = 6084248DBFC957396591F4E4967EE6554246 + +Count = 75 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001 +AD = 0001020304050607 +CT = 78582279EA098B68DBA4F435D751923F8142 + +Count = 76 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001 +AD = 000102030405060708 +CT = 389BDF17160A00035A21A9018E279E4CE3A0 + +Count = 77 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001 +AD = 00010203040506070809 +CT = FA86439E8EC48171B5553C043B7404C202C6 + +Count = 78 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001 +AD = 000102030405060708090A +CT = 5362C9C38D4AFA39B1C460EC604BEDE6D6B4 + +Count = 79 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001 +AD = 000102030405060708090A0B +CT = B21FDECF6B7CBF09267B6CB251C83C60878D + +Count = 80 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001 +AD = 000102030405060708090A0B0C +CT = A2C5C635681D42F0ECCB84D75807FEAA5E03 + +Count = 81 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001 +AD = 000102030405060708090A0B0C0D +CT = 87BD7581A5F9C3538EA8CA974F9C71ED1CC5 + +Count = 82 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001 +AD = 000102030405060708090A0B0C0D0E +CT = 22DCF2E0EDC38B4583CFB7CE193E50D9D82B + +Count = 83 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001 +AD = 000102030405060708090A0B0C0D0E0F +CT = E313F5E4A257A0613B73CB30384799186914 + +Count = 84 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 168BD3424DA7C7607E21CAD3AFA5EE601A72 + +Count = 85 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 7C0ED55E620FE41431E53D5F123A63772CDE + +Count = 86 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = EBB65F57EB175248A1A358DFACF6C72866D5 + +Count = 87 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = AE59C5FFF2804A9D771D5F3A1971C96D08CC + +Count = 88 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = 75CB7390C1BEAB8E14A9E2078656763D8315 + +Count = 89 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = 4BA9A32074E87426C3A1E8778033FB7D98D6 + +Count = 90 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = ABD74D0B1CEC1BAC3D8F68C820B6BFD5FAC3 + +Count = 91 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = 3922B7D028D127210B515BA4526A15EEF7AE + +Count = 92 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = B3229E10230ED19E3115D8AAB2C2FF26C874 + +Count = 93 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = 01D5714473278DEF57D15935DFB3B3FE7876 + +Count = 94 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = A337944BA5A7CAA09FEF5E179BA3E2061E45 + +Count = 95 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 15E12F8205E6BD1CFC7A032D507DE132F889 + +Count = 96 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = 0F040999CF16A02720BB75F1526A5CC419E6 + +Count = 97 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 536E270591A2B18516795B517F56EC713697 + +Count = 98 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = 90E8833F25912DB60CAF3E9764715AAAE4C9 + +Count = 99 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 879FBF60C185BBFE90853C81325F21182B60 + +Count = 100 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102 +AD = +CT = DDB582B57A3577A876B2766C97590136C83BAB + +Count = 101 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102 +AD = 00 +CT = 825D560C794684C2E255A8EDF03AC13D604E6B + +Count = 102 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102 +AD = 0001 +CT = 43FC5E05814BFA2CF5F1F03DCFD170BBB6E592 + +Count = 103 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102 +AD = 000102 +CT = F7D5C0A3BC05FE176F4CE055F23065822976FE + +Count = 104 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102 +AD = 00010203 +CT = FC33EB148FCEE7678DBB172FD358692310EBA6 + +Count = 105 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102 +AD = 0001020304 +CT = 88B692D8E729F302F336DC454B7C3C9D8718E0 + +Count = 106 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102 +AD = 000102030405 +CT = CA7B86C98164E9DD0D728D8237080A36B856A9 + +Count = 107 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102 +AD = 00010203040506 +CT = 352EE404EE69AEBDBC2521BFCC9603AC064F62 + +Count = 108 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102 +AD = 0001020304050607 +CT = 2CC186B34A99170CC4C1AC132481979706A542 + +Count = 109 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102 +AD = 000102030405060708 +CT = 7549A468F7C000D3B99BDD89281CFAF52FE38E + +Count = 110 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102 +AD = 00010203040506070809 +CT = 6C02C03116E1F0DEE0FC5640122A4E8FB2C12C + +Count = 111 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102 +AD = 000102030405060708090A +CT = 7955239C25D6238FA1BB98C5D4C7E92C36896D + +Count = 112 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102 +AD = 000102030405060708090A0B +CT = A76AB94EC0202CCD49E60750C253924A2F3B88 + +Count = 113 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102 +AD = 000102030405060708090A0B0C +CT = 60EA7E28735A380499BF96F222E2B1CB3862A9 + +Count = 114 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102 +AD = 000102030405060708090A0B0C0D +CT = E8659015B8FD0B27A230F3A9D3E5D0845CF661 + +Count = 115 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102 +AD = 000102030405060708090A0B0C0D0E +CT = C41E8FEA5072744AE28BEF2DF69DA618236D24 + +Count = 116 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102 +AD = 000102030405060708090A0B0C0D0E0F +CT = 7473993FF6374FDEA46455E86C7E4445BB1224 + +Count = 117 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 01807D575B1FB8F37E06164B797D403B502E3A + +Count = 118 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 7A05166EFECDB16EB9F29A29D5E94699772EAF + +Count = 119 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = 31DE9E74F6C94837674A78F99187A1C491AA8C + +Count = 120 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 71D513C818BCB7DD05F8A4DF5A1C04EF4C8A96 + +Count = 121 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = F38604BE39C4E90FDCD64A591DCDBFBCA2B0CD + +Count = 122 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = 4FD79040A1DAFBDB7DC37B448E054F49DB0CE4 + +Count = 123 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 8782867EF352B07C3666A36C3E85BB76ED7F73 + +Count = 124 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = F3770FB618A261E198F1575BAFE22D708B178B + +Count = 125 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 7103019CD4CA7F098BD6A481DDF28CDDCF3B7B + +Count = 126 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = 7789A9A4A01C494EC4742B3775F4D63094C6BA + +Count = 127 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 112D0D190317BA7B3F21F4CEE24B1DCF32E0E0 + +Count = 128 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = C4A4B648393B3851217B84D3402A549C00C1ED + +Count = 129 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = 21841E79F59D58F97EE17F9241EA846EC2BF02 + +Count = 130 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 612D39456C0A8E44CE5390D17D0C8D10E0754F + +Count = 131 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = 04809FCEFE4235BE63D882F877A71AB27514A2 + +Count = 132 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = D9F98134BC3027D432B3A10BC925CEA785F3D4 + +Count = 133 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203 +AD = +CT = 4052A44120FD66ED59DACF9F2D5A492FC395A5D9 + +Count = 134 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203 +AD = 00 +CT = B6B62EADA547AD8F3785EA25368FA0ECA0E6DA95 + +Count = 135 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203 +AD = 0001 +CT = 65F2AD866FA9DD06EEE6A062FA4C4F65B736592D + +Count = 136 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203 +AD = 000102 +CT = E0B6AEB7D6F6CD47835F7BA0F4732045B43997D0 + +Count = 137 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203 +AD = 00010203 +CT = 70821BED5D7B290F081101AC8C73BADAB308F8E9 + +Count = 138 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203 +AD = 0001020304 +CT = 1CFAB8C559556AC42C1CCA285DFAA12D2FA9B17D + +Count = 139 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203 +AD = 000102030405 +CT = 3B34BD0F883DE083FAFD88C92890E93E84B30F65 + +Count = 140 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203 +AD = 00010203040506 +CT = 71BB4971A148769B5AF2EB077660F906B922399E + +Count = 141 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203 +AD = 0001020304050607 +CT = 35BA3E8ABAA0952F17357E5FEDCA907C24754BC5 + +Count = 142 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203 +AD = 000102030405060708 +CT = 6FE59A9742DC88E51060F0DB16FF999A5CA14F50 + +Count = 143 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203 +AD = 00010203040506070809 +CT = 0CB0AD34DEDAF63935EAAEDD882B0404CEC3A22C + +Count = 144 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203 +AD = 000102030405060708090A +CT = 8D45DCBDD737B6038C7E5CDAF5F9F794409E892E + +Count = 145 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203 +AD = 000102030405060708090A0B +CT = C0408E2CFE57A31B56EE940CED5D8F0EC83F4BDD + +Count = 146 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203 +AD = 000102030405060708090A0B0C +CT = F301063BA24577184E70EB5AF96B2DE0CF8FF998 + +Count = 147 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203 +AD = 000102030405060708090A0B0C0D +CT = AD939252BB86009E82CD37828DDFCEF5229BAE53 + +Count = 148 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203 +AD = 000102030405060708090A0B0C0D0E +CT = 95EE1A61B7F17432F694DEAEC784322D9EEE0A8D + +Count = 149 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203 +AD = 000102030405060708090A0B0C0D0E0F +CT = 41D85E6894F4E3D4910D717A291EF51DB70FB3A9 + +Count = 150 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 36674386D450FAE8F04172B5C03E6680754B828E + +Count = 151 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 6748AA8ECAA5D1A4115BBCB4FFA440605CC44467 + +Count = 152 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = C3991E5AD6862BC947B006A17EBE7717C14B6035 + +Count = 153 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = DE24B009AE8F32BD51C841A2D648323A1FA932B1 + +Count = 154 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = 3C342A457E9F75B09CF99C00F41A9270E30DF9C2 + +Count = 155 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = 67AE248FDEE52D38599690ABB139F1D6A64A89D5 + +Count = 156 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 8C5DF684E423EF78C81085CDEF74B33270E87179 + +Count = 157 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = C989BDB9533AEE746CEA375A5C4A29E9878E745C + +Count = 158 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 05ECAA004CF00169A52375BD37F90886EB2E52E0 + +Count = 159 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = 590A4026B6F0BA2960E93DBD5DB48986185BEEB3 + +Count = 160 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 9184D3983998DD7EB1B448E79714916B2962C304 + +Count = 161 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 8B5A00549B71D0A479CCD28C645EA08D833E430C + +Count = 162 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = 6016BD3A67707C7649A0A51BAE93509B3C6C8CB5 + +Count = 163 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 82351297F955EBAB844C0C8D762B0BDAB5EC27D9 + +Count = 164 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = 295A1EC209A99A77F9624A226E56BC205F856FFF + +Count = 165 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = E5180447FD41C0A2144E85177427AAC04B9677A6 + +Count = 166 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304 +AD = +CT = 6573E8C8F2123AA1C1043B6598AAC22119AB9EC040 + +Count = 167 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304 +AD = 00 +CT = 7D4430EB1F5EDB1F98F549B637B76A70B604F55B8F + +Count = 168 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304 +AD = 0001 +CT = 1EA7FC180F1FAC552A5C9BA72D8D4FFDBE7F264224 + +Count = 169 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304 +AD = 000102 +CT = 4A4FB4EC4481B720D651C8F40C67D925FEEFCC610F + +Count = 170 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304 +AD = 00010203 +CT = 073F3ABA591F3E14B35412B09A93C5E26B4945A11E + +Count = 171 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304 +AD = 0001020304 +CT = EB13C6B388A1E6BC9E907B2EF9F00B8EDCA4671ED9 + +Count = 172 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304 +AD = 000102030405 +CT = E62E0D6431BD1BE57D2DD2031DF36071FF7F4C1CAE + +Count = 173 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304 +AD = 00010203040506 +CT = AA4099E5D480BC26021E7D416AB99F59E80173A276 + +Count = 174 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304 +AD = 0001020304050607 +CT = 897B8E5DF1E3DF41BD15B79935B50A2678B02FBE42 + +Count = 175 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304 +AD = 000102030405060708 +CT = CB205C481C4B5AC27F3F3032C1A899136EA85FAE09 + +Count = 176 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304 +AD = 00010203040506070809 +CT = BEF4C88D8EF3BE19DA8AF050BA2C581E6D17DB4D47 + +Count = 177 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304 +AD = 000102030405060708090A +CT = 42AC22694CD242CF4B3D8775E99B66F6C138132091 + +Count = 178 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304 +AD = 000102030405060708090A0B +CT = 58BDFD0D1854D54CEDF2A9651255C396E8144804A2 + +Count = 179 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304 +AD = 000102030405060708090A0B0C +CT = DDA81596C3E86E11ADEE7FF1159B00FD32B5605D47 + +Count = 180 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304 +AD = 000102030405060708090A0B0C0D +CT = CB1570C431E22931183E88479B807EE1C8B8EF4343 + +Count = 181 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304 +AD = 000102030405060708090A0B0C0D0E +CT = 19DEF9EDF98381AFEA2FD50323D46A5CFF4A736EDA + +Count = 182 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304 +AD = 000102030405060708090A0B0C0D0E0F +CT = 679DF3C5E24CFA00CF895730985656E21E824A20CC + +Count = 183 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 499F9FA020A318C4ED3E18A6A4CFBA86F1E7BEA901 + +Count = 184 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 4F9094A8E5038AC19E124949F74503880BE0997C59 + +Count = 185 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = EF5F2375F045B01E7EC8FA9DB686B798AD54864BB8 + +Count = 186 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = D67CB7DDBA75A70806516179C7DF17D491624F970A + +Count = 187 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = 6D32B5A195E8E5424C22A1D0F74E97FBA8073D43FD + +Count = 188 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = F9DB7F8C4E60C9E3CB3A3179CE934E18BFDD1B16BF + +Count = 189 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 003BF3BAFC4D01F025E72DA0BB4AA1661C486D10F2 + +Count = 190 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = 5BC5A852D62FA1B1EEE33CE436943F163B8FE23DB2 + +Count = 191 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 3C7F3B77C64E8FE370F00103DF0291E9FEA7C9BBF7 + +Count = 192 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = A3AB300242A0CFDD791EC02431EE9E48AF8F78BEE9 + +Count = 193 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = E0F218DFB892FDF4FBD3860EABEF9605B7B128EA67 + +Count = 194 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 9997153DB72D3A0D5C9231911CE88B42C02C56B2A7 + +Count = 195 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = 2EBEA22D72D37388BBF16AB004AC4B9CA360A8E588 + +Count = 196 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 63B0482149FD9F159978006E2A969185BB1D9A3050 + +Count = 197 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = C0F3F430764504BD9ECF217543DDFB5F6862711C76 + +Count = 198 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = E292F15870CFFC52540BC4575ECA18EF7841DA0F23 + +Count = 199 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405 +AD = +CT = F8E71AB69663E6116FFEDA203C828BD2C8F2C0D5556A + +Count = 200 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405 +AD = 00 +CT = 5C3E6EFB651FF0B563B1117E57C53BEDAF11B927D332 + +Count = 201 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405 +AD = 0001 +CT = BF21452266B607E5BD5F636639809C9D263BF287600D + +Count = 202 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405 +AD = 000102 +CT = CEECF74E21F815A2C0E8451DC07F37155BC35F76E070 + +Count = 203 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405 +AD = 00010203 +CT = 92479B2EC749662B79B5DDFD483E2EEC7DED47B97C0A + +Count = 204 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405 +AD = 0001020304 +CT = B670025F3A4141F4E0C1C8DFE6AF59A87743CC9CD9F1 + +Count = 205 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405 +AD = 000102030405 +CT = CE8B0A2DDD877BAE24BA32A65D5284DB068E63FCB5BC + +Count = 206 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405 +AD = 00010203040506 +CT = 216FA57FD2E7A22E70598DF2FADE3E754565C16E0453 + +Count = 207 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405 +AD = 0001020304050607 +CT = DB80FA1B6FF03BE008CB1C33634C3DE0C5648B9F13E6 + +Count = 208 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405 +AD = 000102030405060708 +CT = 603625EFAC3A9FE3167556BE02F6A7DF7B83B217BB9C + +Count = 209 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405 +AD = 00010203040506070809 +CT = 0923D8FCAC83A4A9AF737515F10ED933354BDAD7EBEE + +Count = 210 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405 +AD = 000102030405060708090A +CT = BBC5F169ED2C0E30E0AAF0E74CA76DED82112ABCA88E + +Count = 211 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405 +AD = 000102030405060708090A0B +CT = 9C34095E8AEEAA2756895B63B49BE6FE80107C38F419 + +Count = 212 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405 +AD = 000102030405060708090A0B0C +CT = 8DEF11599C96C6FFB7AC41791E47AAEA80246FE7F261 + +Count = 213 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405 +AD = 000102030405060708090A0B0C0D +CT = 39A8FE9E1EAF0FEE8A518807D459510E46BC52804AA3 + +Count = 214 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405 +AD = 000102030405060708090A0B0C0D0E +CT = 40523AE8605CDC2232042258246FF10D8A96B3980D3D + +Count = 215 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405 +AD = 000102030405060708090A0B0C0D0E0F +CT = 710E298B5FC8C213D4E500ABA83AEE9A82B332DF72E9 + +Count = 216 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 09D88FCC7F9AC46A6295928CFA20D52C30FEBD5BB734 + +Count = 217 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 411AB45F4744B53415606EA152429D6A718A9A4C2149 + +Count = 218 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = 2C70F6520B78DE60D936D242CC5C295332676979FCBD + +Count = 219 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 2601F00F8B8D0E4AFB6EA1D62DBE670F76D0339E6706 + +Count = 220 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = DDBE54CADED50782F2B265670198A70813A75FCB33BE + +Count = 221 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = D59B1CF2A0AE142F7EF5E7760ED579E3B2FE6FC8F2F8 + +Count = 222 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 46972C28C355E0FC7DECBCE24B85BD11688858340B64 + +Count = 223 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = 829780C2999011919FDE507025D2EC9AA5E4BF314687 + +Count = 224 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 289F4823F891DD2C97E2B552281E61DFB259A991B8D0 + +Count = 225 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = 7AA067BDF3AD01F4010C2ED0241B0AA5E5B6AE4345CB + +Count = 226 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 29A25C2A80D5D74730F79886A8633D38421D0B757E21 + +Count = 227 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 422878202F778ACD92F485F5EE409EAC13F1FB4F88A8 + +Count = 228 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = D32023E7EA2C043C8EE1B6F8840A400BFB1604F19F19 + +Count = 229 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 79AB38828F0AD587EDE208EF5173F7815F5DD1582351 + +Count = 230 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = AB6BF440A8B4AB3F089A965984F61336F2513ECBFE14 + +Count = 231 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 9033F4E57D48A1B7D8F810115A4EBE82316BE0E97DA9 + +Count = 232 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506 +AD = +CT = 729B3B9E743BD0A795CB45DF73658FC21994161C684B1D + +Count = 233 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506 +AD = 00 +CT = 7522FEC3873A4DF846A9DA5AC1D28461B1962EBDD4FEB5 + +Count = 234 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506 +AD = 0001 +CT = 148809D7C17A90CC7D1D6B36A7795DC1DD0C83C8FA0148 + +Count = 235 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506 +AD = 000102 +CT = FB2D25C02E313F60BE3C7B30F6BE52DB1918215C791B9E + +Count = 236 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506 +AD = 00010203 +CT = DCB34AF67E7CDCD537502986F0C78CF5CBA999009BDA3D + +Count = 237 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506 +AD = 0001020304 +CT = 0ACA1BABF7C46B8225A96150B203CC9F2F8FEFA273B5C2 + +Count = 238 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506 +AD = 000102030405 +CT = 1583434E2C3B5E8853BA85070C736CDFFDB87650D50BC1 + +Count = 239 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506 +AD = 00010203040506 +CT = 78B1DDDE9511DA763BE6DAF18570A86D726BD831FC0E45 + +Count = 240 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506 +AD = 0001020304050607 +CT = 49C5999EE09D063642922754B02C3D81FA4D392A546436 + +Count = 241 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506 +AD = 000102030405060708 +CT = 7E15D24B95FAF3C4F966DECD29244B1018D6DA6B6DE56C + +Count = 242 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506 +AD = 00010203040506070809 +CT = 4EA954580DE70C65287795A6135A26EDF883FFA65DD419 + +Count = 243 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506 +AD = 000102030405060708090A +CT = 525276D22131280C79640ED5D3DD9E7ADDFBE14F5CF99F + +Count = 244 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506 +AD = 000102030405060708090A0B +CT = CA5EE0A9049E41DC61242F099B80376F6F8C055DF87E15 + +Count = 245 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506 +AD = 000102030405060708090A0B0C +CT = 697B3B9A775E07B2A6DB5ED9EF05F76A36B67778DA98BF + +Count = 246 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506 +AD = 000102030405060708090A0B0C0D +CT = 45A7E95D365C93AF25CD8F9611853C71D633BB86AE20D9 + +Count = 247 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506 +AD = 000102030405060708090A0B0C0D0E +CT = A8016C57D5593C6BEB167888789B497BCE857DAD38C2D2 + +Count = 248 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506 +AD = 000102030405060708090A0B0C0D0E0F +CT = 04A2D4BAA7D8E30FC6882E535A1BBBD5BDB440795ABBC0 + +Count = 249 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = AB0C054CAAB850E30DCCC28885347588933ED42DC17877 + +Count = 250 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = B6C018728EE5A37EF5D460AE7C4D029A674F013ACF121E + +Count = 251 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = 12F4AEFFD622EB161025CF18FF2E94C4232DE230A4DD82 + +Count = 252 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 401CECF463BBF2660499F2734B263CCE54DDD299860A63 + +Count = 253 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = B53FA9967E6A0B8FED9B93C597F728C6C1DFB43C03570C + +Count = 254 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = 157329404270B83E29BBA5CF6425F16CF8A8F0F68F15D4 + +Count = 255 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = EFE46E8E24604697228F992A2FF6AF6C1AB8CFC33CA911 + +Count = 256 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = 2CA77460B4E85E180F862B37A7048F9368EBE4486BEAC0 + +Count = 257 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = C683123DC8D5B8B86567DDA538289BF6A93E4C21DF5027 + +Count = 258 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = BD5DB9DB7FF6DBC2925D8B0357083AA7CE19531C1DF238 + +Count = 259 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 2EA62B67060EF62B9673BFC0E52BA339485DD11F3F7313 + +Count = 260 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 51ED1E5B59790C48ADA9D4382F3BA1B043ED65233F413F + +Count = 261 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = E2295DC6AA24FE9C2DFDBD0EB67AA8EA5C9D6F030D6868 + +Count = 262 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = C9A7D87C459B17275D10AE0786C6365D4C65B1273A3348 + +Count = 263 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = C6AA6F194BA28BF0A8362375B8899343767BE3425F08E9 + +Count = 264 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 4ECFBD8AA81A16C0A6394A785BE12ED48FE1E89CCAF3D3 + +Count = 265 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304050607 +AD = +CT = 00562D725FA4B26F2F57CD7629A380DC70FC469DB2A526EC + +Count = 266 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304050607 +AD = 00 +CT = 94ABC9FABECE2FF5FAEEBEEC4E59B56AEE414A15CA8049C2 + +Count = 267 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304050607 +AD = 0001 +CT = CB9B58B024B35218503A8DAF802443DAAEB417F79E73DCAF + +Count = 268 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304050607 +AD = 000102 +CT = 46B2893181A56B67B6959E6AD6A20113FDECF6053BECC35E + +Count = 269 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304050607 +AD = 00010203 +CT = C3286C49D09D6C854C9DAF13A6A0F1660C4698D92EF7AE5B + +Count = 270 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304050607 +AD = 0001020304 +CT = 3904423E1E27FDD32E1EE0AEC68C5C310240A1F2A731F830 + +Count = 271 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304050607 +AD = 000102030405 +CT = D920638A65999BA0AFB4F4F85C4B3B00A888BEF0FCEEECDD + +Count = 272 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304050607 +AD = 00010203040506 +CT = CF8322A1E1F163484A1C06E748494E41D23EB1CF0E8DF83F + +Count = 273 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304050607 +AD = 0001020304050607 +CT = 92B8C353F3189764D9049A2CE4285A23F6BE7C80AC1D2EAE + +Count = 274 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304050607 +AD = 000102030405060708 +CT = 95E5BAF8BAA44586DD6F9872E925486B5F4D6A62DE267ACC + +Count = 275 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304050607 +AD = 00010203040506070809 +CT = 86EC3C9EE7D47DB58BAE5080B13E096C2E27391DA5677F74 + +Count = 276 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304050607 +AD = 000102030405060708090A +CT = FD0AC22FCBD4FA7F24CCF48E722E6408AA9E747DA802DF20 + +Count = 277 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304050607 +AD = 000102030405060708090A0B +CT = 878B2DED3A349DA4E57E71F9D46A20897B052CEA9874B05A + +Count = 278 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304050607 +AD = 000102030405060708090A0B0C +CT = 229BB1090827F3F337B92D7585CACED0D2CBE41FF9649242 + +Count = 279 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304050607 +AD = 000102030405060708090A0B0C0D +CT = DE7B93C97A8B5AC7BD79BC730945A9230FC79C44613D4B24 + +Count = 280 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304050607 +AD = 000102030405060708090A0B0C0D0E +CT = 1B64F01EEF7D5D2F5F251B4DCA972300134D856939ECE695 + +Count = 281 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304050607 +AD = 000102030405060708090A0B0C0D0E0F +CT = B76A78C1675B168CEAFFF46B0EF34D795E16F4C196DFF63F + +Count = 282 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304050607 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 5458054D20B787BFD56C45C0AC9390CDFC4E163ED455238B + +Count = 283 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304050607 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 7A229D00F96D1A30DD858D2544C02C8E3A31AE06B123EF84 + +Count = 284 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304050607 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = B2ACDCFA044CA7A7503965496637C774037C00533B38CEC0 + +Count = 285 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304050607 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 3FA02BEBE3A1B27D10902FF144651F61D09DB77C475B4E77 + +Count = 286 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304050607 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = D2982A5492C8B8AFDDED31B310740B21EBF22D689FA2C4DC + +Count = 287 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304050607 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = D694571BE4AA851E58B0419DF4058A834714B4247F5E8561 + +Count = 288 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304050607 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = D5A14020CA29C703A9DAF5CF89A85B517DB084F11CFCE847 + +Count = 289 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304050607 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = E7BA73D72A32F3485AAE1673453C9F411BDEF5A6B5323777 + +Count = 290 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304050607 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 262E4331D1A386D6C9CF48C945ACE8CDC4BC6146BA5FE658 + +Count = 291 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304050607 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = 54F6886E9F0A72B69FAD73A605D3B2DDD1491F3D834204F6 + +Count = 292 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304050607 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 662100ECB5B654F53333A9F3800F0BBC172F40AF3C04EE9C + +Count = 293 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304050607 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = BA8CCAA866577D3A768DD3C6689A8F5DAF8C3AD8E1A6A578 + +Count = 294 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304050607 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = 58AC6C0F2506B7835E3C82446B0E73EC7D25778EDCDE9B8C + +Count = 295 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304050607 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 71279532624206781754D09BBC0087B5DDAD3D1B7977C4E9 + +Count = 296 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304050607 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = 70E6C7839E425F7D9FAD061F15C91066893822D23BF29FD5 + +Count = 297 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304050607 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 9DA8562B60DBC7030DBD56D56B7C3F2D1FFC6351E3A7A7F7 + +Count = 298 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708 +AD = +CT = 65B2390EE71A1E3C1CE35F517811BE8B66FAC4D0BBB948C767 + +Count = 299 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708 +AD = 00 +CT = 99B39F0E4B0F5B20FE246F85CA025F2BA225CBAA04B902C808 + +Count = 300 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708 +AD = 0001 +CT = 3229F7AD8A34539D7C20B2EE3CE909247E8EF79FCE2C158C6C + +Count = 301 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708 +AD = 000102 +CT = 9C9184A04EB5D8721B7D2E436C1EF0E53F5158733BCCEADABB + +Count = 302 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708 +AD = 00010203 +CT = A554CCFFCE67F990294801543EC0485EA1E5C061AE86E42073 + +Count = 303 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708 +AD = 0001020304 +CT = D214F5F59783BF8A3225D68D9121619E771858337CA2796CF2 + +Count = 304 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708 +AD = 000102030405 +CT = 9965C70A78FCA39B60103E4AB9FB5F5773DF2492B8B835ED2C + +Count = 305 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708 +AD = 00010203040506 +CT = 20992403696CD109A8C5B7AAA6116893285C2BC26AF9DA9C7F + +Count = 306 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708 +AD = 0001020304050607 +CT = 0277198CD629C0F724C93B8180BD1868ACDEE8C4E3CED839B8 + +Count = 307 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708 +AD = 000102030405060708 +CT = 9CB7DD376A998459F513A5F8811D9D16220E7665B4A12E2C15 + +Count = 308 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708 +AD = 00010203040506070809 +CT = EABFB38396B0F34D25557252430F61433E4C98ECA219457EE0 + +Count = 309 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708 +AD = 000102030405060708090A +CT = 05FD6871E4D4BC67C42F6E30F67C142F2846CE267E1E7DE969 + +Count = 310 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708 +AD = 000102030405060708090A0B +CT = D920D14508F84DC135217F976E57D2FC1A964A23EA1855FB42 + +Count = 311 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708 +AD = 000102030405060708090A0B0C +CT = E85AFC8033CE90A7DFD5B0852770ABEAB76542B457516B34EC + +Count = 312 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708 +AD = 000102030405060708090A0B0C0D +CT = 0B1CFCBACE3F9ACF07E62FD23A9B3F02C3EFE5FDC421494007 + +Count = 313 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708 +AD = 000102030405060708090A0B0C0D0E +CT = B70CEF38E5881DE4A3205B8F8FC6638E617EA0BE0DEDA569C2 + +Count = 314 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708 +AD = 000102030405060708090A0B0C0D0E0F +CT = 29FD01625B6CA9E684876007B46AA3CC24220EE553E892EDC4 + +Count = 315 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = CBF301F2FCAEEC30E8EF8E9A165D6CD621F31A95DC9E409919 + +Count = 316 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 21287B919454EED8E462BD951CCF55C5E42B621266A07333EF + +Count = 317 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = 1DE5FF722853B946C80A51AF99CBE7022AC99AA2BB9BE65594 + +Count = 318 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 1B1F17D8BBB4B4F6C8BE18B6EC48B252A6AB2353844A6BEA29 + +Count = 319 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = 05B8597CA52FEBA2F9FFCDB12C48BF3AA5007D6C83D5E873A5 + +Count = 320 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = D3B30988A82E57FB8E31CE8438442B8895E29E9605AA471984 + +Count = 321 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 2EDAD0440F6AE32D2DE683FBBA28882EF3DD7D6BA53A3A32F3 + +Count = 322 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = C901B2AB60422EEEFA901FB8A3472226CC86FD50A3143B48A3 + +Count = 323 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 3E20D2A2E564889E83CFCF98E45DF4781896864A758FACFB80 + +Count = 324 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = 70A46CB3E723BD4929AE27AD5D328423CE03B2DE1AFF9A22C1 + +Count = 325 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = A9B8B96FD872BBC86EDB750F0D8459D323BC82FDC34A005009 + +Count = 326 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 4F55746331A469BCFB8D81D212F4FEB436D642EF333BB2A3FE + +Count = 327 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = 518075931BCD087C6A09EBDDE10767C6251BE5A4FCC533DCFE + +Count = 328 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = B3131A8F163DACCC1B42AE79CA4326D65E9A972C69C98DE2CD + +Count = 329 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = 9E2386A05B967C112668D767930D2CA4E455FA4AD87D6048F6 + +Count = 330 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = A7D8A2A48210D8D4C171BC2E3B6191E9BD43072F6A60282B63 + +Count = 331 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506070809 +AD = +CT = 55AC6D75FCF952E1A8D2E0573F2AB3E15EFE2AE59F6B5A6C93B9 + +Count = 332 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506070809 +AD = 00 +CT = EA0C8CB86896C8370027F55E12A0C70BD9FBA989DBA70660E1A3 + +Count = 333 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506070809 +AD = 0001 +CT = 7BB888FE2837F6AF1D01C5A69A50B51157B493CC634A86C8EC9D + +Count = 334 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506070809 +AD = 000102 +CT = 035E952E827052A82BC1BAB33BC783D5D997CF141DE52F47FE00 + +Count = 335 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506070809 +AD = 00010203 +CT = 76F2245E2E17AF56F1C4E205A7DD05E11DD76B567AE256B13AE1 + +Count = 336 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506070809 +AD = 0001020304 +CT = 20714EAE061E5784A1392EB38C362EA36665E84E86BB3C817984 + +Count = 337 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506070809 +AD = 000102030405 +CT = D63BE61E6132D4C1DCFDA86AFCFE2B191214E5664AB341138184 + +Count = 338 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506070809 +AD = 00010203040506 +CT = A8571A698DC096C4901A84A7E173D48F50CEA54519D905DBB4F7 + +Count = 339 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506070809 +AD = 0001020304050607 +CT = 298209B0BD66A46DB19BA239FE23D43D17542595141DFAB34000 + +Count = 340 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506070809 +AD = 000102030405060708 +CT = E9604647885130C019D94A78472C003E947C5FE5723F08EAB3FB + +Count = 341 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506070809 +AD = 00010203040506070809 +CT = C18ABA4C5B647F7851BF3096B7C2AA7E050843C8CE037B4FEB32 + +Count = 342 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506070809 +AD = 000102030405060708090A +CT = FAF9245C9FCA5E2AFFB16B1C539EEF01804100F77DD02E6FCF1A + +Count = 343 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506070809 +AD = 000102030405060708090A0B +CT = D47ABAFEDCFB564A85536FC18A5E17F7E3CB2EFD6C6483D9A5B7 + +Count = 344 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C +CT = 72A4CE1F171851D17EADC87CCF9501B848BCD9431F47093E3510 + +Count = 345 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C0D +CT = C533936AD66B07229684EFA77386C412C61F33E1FF9D8878B4D1 + +Count = 346 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C0D0E +CT = 3DA31AE9A01CD24EA12C51AD1A01635C34855475400756BD5D2A + +Count = 347 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C0D0E0F +CT = B4CFFC51704741A1C71F87915EEFAA500603B96A735381740D6A + +Count = 348 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 198BDFABB6EFAF1112717F5A6BA846C1E2FA2AFA806F3439D4CA + +Count = 349 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 31D9CC1468AB2B18115D6DCC28DC31520D62A02201F79FBE1C9E + +Count = 350 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = 2A961BCA6E35232479AB2748EF331FDD104ACB5CACBBF1AB0AF0 + +Count = 351 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 81488B816042DF5F9A740664E7D80EE70D0F3C1A0A5425A9850E + +Count = 352 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = 90A752DE05C4ECC5E2800F074CAA9CA2BC7F2E1F6275256CF75E + +Count = 353 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = C771C9BAD21D39C819BD872ADE03D0CA6FC9E52A2895DE90090E + +Count = 354 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 09A64B3A859EB9F12E9F8E8B74C285027C5DC4B812E421F78A75 + +Count = 355 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = 23244C67BA6AC531131A0783C987622BA81032541036BEE1930C + +Count = 356 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = D3BC6760FDA39F93315F903D0C7ED300D45DEACCFA2380C92DC4 + +Count = 357 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = ED4B1EEB5C62B4C8089F91543F311D5585585D1E09D8787B5310 + +Count = 358 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 451AC0415863ED89630AF10F0AB54CDC28D0984AA90779554843 + +Count = 359 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 750BBF97654B40272F3A8AC540606BC9AEE53E0587E28CFEEC06 + +Count = 360 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = 0190D274B28FC5B1A60C3D609DA579A220FA14391B2F170200A3 + +Count = 361 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 3BDB857029C19E522BEB581B13FBF2841367858CDF2E26AEF0DB + +Count = 362 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = 023C89745D7ED2583BDC8B4041990CD2A514E1794360A3E9BDEB + +Count = 363 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = A4E97023B540D18641F5282F69363E7217714DC565B1429894AA + +Count = 364 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A +AD = +CT = 6738391299EF5C28BF8D5EB85E94DA2F9935DA680087318A42010F + +Count = 365 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A +AD = 00 +CT = 3482427DFDBF48333B215AC462C8F2A78FA8C8CC458A7BCC2DB420 + +Count = 366 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A +AD = 0001 +CT = 770312D13507B00AC52090649927D9BC259274199351982A8CFCC3 + +Count = 367 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A +AD = 000102 +CT = 358320132F901278740D5F16699063A0E630D4AF5CBAEE8A5D64C3 + +Count = 368 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A +AD = 00010203 +CT = 1F7B714EDE73A34E33CAFC7849D795C71C471F46531EE7C3A05343 + +Count = 369 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A +AD = 0001020304 +CT = E1137B620ED6CA77B102C3A806883EE82A4983F9AA1B426FDAD577 + +Count = 370 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A +AD = 000102030405 +CT = 51FBAF29FF5E4BC869C02FBC8AD4211D73272EC69A53334D09D453 + +Count = 371 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A +AD = 00010203040506 +CT = 1AE1D2C6F22D09FBC6C579D951E37085D6E594364970177003CC82 + +Count = 372 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A +AD = 0001020304050607 +CT = 93F548775C19EC74E3C20319B523CB9D6CCD73461D04D1AF118184 + +Count = 373 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A +AD = 000102030405060708 +CT = F11EC242F9516E52E51AB3727BAD561171C405489DD6829DEB5A3C + +Count = 374 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A +AD = 00010203040506070809 +CT = 0A10649BDFA0F8B6F1D8EE4CBD3BDA0AB60DB3043FEE6C1322A9DD + +Count = 375 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A +AD = 000102030405060708090A +CT = BFE2C9F86D8E90506616E2FF76F766906401D70AC165DB788D8C89 + +Count = 376 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A +AD = 000102030405060708090A0B +CT = 8B2093D96788227913947181996351AF80EAF87BB21B6F254627CD + +Count = 377 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C +CT = 8AADF340535E7F5706CB6563617844454F259B5EA34FDAF94AC03B + +Count = 378 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C0D +CT = B420C802624CB775A53AAC9A7AAE681729707EDDC96D468797D048 + +Count = 379 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C0D0E +CT = C3AB27CE94E7B6F6B7C79B16304770BE4FE1DA3679A26C5036C023 + +Count = 380 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C0D0E0F +CT = 733FC012331A2F66DE835036FA643A32D15CDBF86D3865315D6109 + +Count = 381 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C0D0E0F10 +CT = C80A72DC1374C6B25DD50FBF60571AF5ADDB266C97498BB19AE566 + +Count = 382 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 39FF0036DDAF3F9D3788E8B2DD900435207ED6BD4475C00E174A4E + +Count = 383 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = 3E4EE9C89FAD1924A34C5C4FA8D335089AA99BCF1A34B1348D0750 + +Count = 384 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 84BA4D4A46DC34B694496D5E21476E78040B25B636DC5154FF155C + +Count = 385 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = 3F4DF7A9A040756F3FD21C17C525E35DDF3F55FBAABD78F4767592 + +Count = 386 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = C2536EE152FFE0E9505E70EBE5B43DAF8B9EDFE8F6D7E0E1D44461 + +Count = 387 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = C524C74913991975404C78B32CB30470AF4728C28E18ADB4EC5822 + +Count = 388 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = E8EC62BAF466BC8C1503DD6D0F2F78C5A392B1BE78E88441B9C327 + +Count = 389 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = EC2DD0F1D2821770A65E6DD7A1FFED34442C9E318471AEA8E9393C + +Count = 390 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = 75CDC4C16C461A281899FCA31A5CB8D56CDAE406AA68F1969C7DE3 + +Count = 391 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = ABE6F9F78316E4C21B279DE608CA82FA9F92240B355BFBEF4164CD + +Count = 392 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 2AFCCE636A3FCF885E5C847D05B143C078F7B2EFF812AA16CF38EE + +Count = 393 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = 7999C7FF89FCAA300C455635433D282E63E2AEAD3DD236C5EF5C35 + +Count = 394 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = BF54E2F790E9F84D57556B0F38C4CE5064990D57965CA09449ECBD + +Count = 395 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = B67317962F3320F49DEA0732A7BB3733BE424D87FFC8DBF2A26C17 + +Count = 396 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 510966A0639BCD7F31421CFADF2597BEF82C48C68274BFBA740A9D + +Count = 397 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B +AD = +CT = 42AC0A598AEA03A366ACD7CBDAC5B4DE3BCAA28F55D8860B3BBFE103 + +Count = 398 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B +AD = 00 +CT = D7AB515BC1475DE44FE9A3DC88A01971486D03B270A1B827E53777F5 + +Count = 399 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B +AD = 0001 +CT = 81E4ED5ED4E8A05F47C6108BA917D944E1F886B9D0C4BA5B18F4CE78 + +Count = 400 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B +AD = 000102 +CT = 4C33175295338F13BFE879368FF60A64DE2B5F26F7C7883F9E72194D + +Count = 401 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B +AD = 00010203 +CT = C0C7EDABE392225212F1109B0EA071A355EF5A4B790B19F6A1D8B270 + +Count = 402 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B +AD = 0001020304 +CT = 9730D37D05C75A4621805BF6F74DDD277B44747EF66F9085B6525994 + +Count = 403 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B +AD = 000102030405 +CT = 83DA491A3704454403D721201E7EFE0410364DC114ECFBB8DE398F89 + +Count = 404 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B +AD = 00010203040506 +CT = 91094E14652D08834A1B1704865FE1AEF1DB0884DA2EC3C3F23D893E + +Count = 405 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B +AD = 0001020304050607 +CT = 49BA3FCB0818C6749AC3DC01B7F44A7C8A1FDB0D86A1122A556A1191 + +Count = 406 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B +AD = 000102030405060708 +CT = 4E8B38C2F44395E7F2CB3269EC3D6FE121ADC55E0907B47E3E9915BC + +Count = 407 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B +AD = 00010203040506070809 +CT = B7881A638A7E5FDCAE6DD3B88F6FC2160B2FD13032E5608BA2AE975B + +Count = 408 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B +AD = 000102030405060708090A +CT = 379FBD8D899F3A6463C308126867B062B0D60ABD5B93E17FCA9BD811 + +Count = 409 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B +CT = 79D42F39D25879F7B397E628CF30A16E552A393B220CCE18DBD86635 + +Count = 410 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C +CT = C344990B0D4DECAA95C7CF4826CACCCF470E6C7B37D01FF2A9E0349D + +Count = 411 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C0D +CT = 9141454D8867855A2CE7F6F1147DE65B262CF85A03F555782B3D1A29 + +Count = 412 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C0D0E +CT = A11670B033A07DB051D38C831879F446199482369B1DDD75D648044A + +Count = 413 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C0D0E0F +CT = 08207DD86929B508A61394BE41B7DAE1028C119A7577E50401875F4D + +Count = 414 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 881D1F8BEDA92D530C3AAFDE462C865FAA912493C9B72CC54A43E05B + +Count = 415 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 5435F5352EBCE41DD7751CF1A9BB9042BCFC2FF88E5555F037B44879 + +Count = 416 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = 5FFEEC63452BB29AD34A85CB08F0396FC841CFF947CFE8D127C5CE27 + +Count = 417 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 37FFA1CFF6E9A678F1BC877F56852A4752A52499CF80029C125FD94D + +Count = 418 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = 20E8A729B7F9D3F99E92F4A72D349AFBEB48B436AE5C9147AD73A996 + +Count = 419 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = 25178CA0D43A684EADFD7A64E4331E0F7094FE2487F97561CA82958F + +Count = 420 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 43BD07448CFA892BD8AFD42F53F6B84901D0F13198535B82CB7F8E36 + +Count = 421 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = 34D790A2F8B2E0F1A2552E16268AD7F8E4022772A7840988A0D3C422 + +Count = 422 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 65FCFD40A826EE0F6A9B85DA01B6A3CC86B41AC8AF93932E744ABDA4 + +Count = 423 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = 4224BF38BD80796605ACFA8B4E20FD85F4786072E815EF224BD2511D + +Count = 424 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 3E52FA947137D432C87CC141584AC48B5BF760A3239D2CDCFFC84DB7 + +Count = 425 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = DC2A63D9DE04C2F03B88008FB953BE7A1BD65C78E2B9796CBEC35616 + +Count = 426 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = 96F2579950EE97DA4A0FB9B37819A07880D6A7F3990087CE585D3B18 + +Count = 427 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = FB77C8A797F942451242C3E0B8AB125C080DB752D284558C5382A5EF + +Count = 428 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = 56F36726E38BB5C905C3652EB5C83D918330DB990CEC089A6138BA9E + +Count = 429 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = F8E214574F803E42718D8A43A2F222793DA7A8E01FA94C27CDBA13FD + +Count = 430 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C +AD = +CT = 6E7781AF6B13C3A69CE33D655D94ACAC2FA55175EC462BB5665A785464 + +Count = 431 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C +AD = 00 +CT = 66B2DAA3755382F97FAC5A98BD314676BC8648B6606858E80A7515B565 + +Count = 432 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C +AD = 0001 +CT = 96E1941C1A631E07F55402E977AE92B6CA7BA117E084BD0E459976DF4B + +Count = 433 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C +AD = 000102 +CT = F7201D4E43C92DE96C4184F6F0630EBB1DF6D2A555F691D5006793C802 + +Count = 434 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C +AD = 00010203 +CT = 754F5A55D4C83609CA22BCF3E303718AF3B55CCDFB0FD9DC1A2D5BDB73 + +Count = 435 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C +AD = 0001020304 +CT = 11B023EFF00CF1AC783CB6E79197B911D5A40DD165CA464D3D10A924B7 + +Count = 436 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C +AD = 000102030405 +CT = A8FEA54286FD95E437034C475A10388417C0B241C7AB481435DD56E3DC + +Count = 437 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C +AD = 00010203040506 +CT = 6EEDE78EE96418CE076EB945A0657BE2024BA27FF0E19E82DA0A9B8F22 + +Count = 438 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C +AD = 0001020304050607 +CT = F7BA6A081154C0E2319F4BF31B469FF4B30F953A54C8B57DF941C69109 + +Count = 439 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C +AD = 000102030405060708 +CT = 836E04742B93963E00319F6D1D6FDAEDBA17B5262FA7A1511D81050FF2 + +Count = 440 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C +AD = 00010203040506070809 +CT = 735EF70ED0F0FA6CA192976720BCAA8CDC96E654015C7CEEBC40B2C1A0 + +Count = 441 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A +CT = 28BE3CF48EF2A16E5EA128492DEEF2753868F879DB66A70728215E9ABF + +Count = 442 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B +CT = E64ECF630E37528F7EFEA099E5A7C4B78F6C126C969558062FFD42AA5F + +Count = 443 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C +CT = 9A3DB97DFAE3B7006568E40B420D18D6C06389BAB3550257A88355DDB9 + +Count = 444 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C0D +CT = A71B2523C05F7A2D68BFDFD8422C0D24CA67DA103513568C487A815396 + +Count = 445 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C0D0E +CT = C3AAAF130ABCA18B64723917760F614E2D64897F5A21C1FC99048024CD + +Count = 446 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C0D0E0F +CT = FF4B615D9DE037C24E6B4F178811BBBCFE43F55D676321EA9A30D42B6C + +Count = 447 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C0D0E0F10 +CT = C33171C69354870966887C3DB16B8CF1A9B23A5621C072267BD4F929DF + +Count = 448 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 0A3EF91D95CD396CE3AD1A3D01D6A8190C9C708AEC8D8B6C8307B05356 + +Count = 449 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = 89BC5450C801BBBB7F7033476A9E1CB6B880C93645F88879AF5D4416BB + +Count = 450 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = D77B58685DFC78ABBAF5AFCB46FBDE1B35A85049D4A0F56218C9DD8427 + +Count = 451 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = 5B2487AF428CB7BF8382E88E68828A4E1975B2956B6E371ED96AECC0EF + +Count = 452 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = 93CF9BB715C72CD11DB60D3440C5175E6959C8CCA3B60483089ACC612E + +Count = 453 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 16316CEBFD7B5B22185DD5B73CFF03F6DAE47417B7A4390EDFD5BB5366 + +Count = 454 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = 16D9648D18CB4C0EEBCA35A8F6AFD930FA6E2459BCF3FC2241DF57065D + +Count = 455 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 559AA4F21FC0E5D1DCEB83E8E066DFCC7D07A348F4915CAAD0B3312EE3 + +Count = 456 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = FFF7D239F32F76A07E4D8466AE5533DE16D15C90187E235BD3A0B86012 + +Count = 457 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 1E878D9B360192262FEFE57111E9B175CD08A301281BEFD387C9F92CC4 + +Count = 458 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = F6051CF672CBE89625042385A334D43D2008CCE5987FA06F5657A2B9AA + +Count = 459 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = FCC230C717A2724C0573946017DDF08DC57F29678B6C99D6046C582FE0 + +Count = 460 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 6DEA420EAF936A435C277C4282D00A417751F5DADAEBEA2D093B02724C + +Count = 461 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = 21D8226E60262DA1B690C47C966049C4A764180C9AAD8C987F631DC09B + +Count = 462 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 2E0B320C6C06252EF56E20CD5A5BCA538C13884AFE41BED4BCAA849C3A + +Count = 463 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D +AD = +CT = D32A025F741AC81E00F890A28EB084F87F763FAD3BFC89EB556125B20926 + +Count = 464 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D +AD = 00 +CT = CC174A631094E77EEFDCFDF113508FBEB66408FA89770BB1CF0C27C9A637 + +Count = 465 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D +AD = 0001 +CT = 47CC77F7911ED4EE926CACEE736CD0A050085243F5658338D3F825092637 + +Count = 466 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D +AD = 000102 +CT = 77F544737DCC2680439106C3163F9F5B0818B1E8F9A95529B794E65051E6 + +Count = 467 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D +AD = 00010203 +CT = F8C259812491ED24DE0C7AE83C408CB07902146C89DC6B2A35120B80C01C + +Count = 468 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D +AD = 0001020304 +CT = 242DFF307446032E7CC3736652808EC6990052A51755C2DD0C770B009C7E + +Count = 469 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D +AD = 000102030405 +CT = 99ABB101967E054D0C7C685DD92478513B20A50108AC702F206E0FD56678 + +Count = 470 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D +AD = 00010203040506 +CT = 0FAA2D999D771133651686FDC297F094CDDC0DAB565B53EFFA23F352E52C + +Count = 471 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D +AD = 0001020304050607 +CT = D28FCCEF2AA6BC48B9A7B37BC209ABDD11CA8E0B7E059AEE4D58AFC89691 + +Count = 472 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708 +CT = 2296F3F65905753A5E351B2A23B8712B9780050208DC0C46A4A2BBAB1FE0 + +Count = 473 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D +AD = 00010203040506070809 +CT = 09CBBCEE57E46A60DE27E2D019D8AEF806926402474BDC4738838EF8F42B + +Count = 474 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A +CT = 46CDA743178C65167DFF40995678DD66545DC91039961C0ED94E08066F85 + +Count = 475 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B +CT = EABA780D29C494216B0343F00B37565AFBF5F284ADBA1D5F22AB4D00986E + +Count = 476 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C +CT = B5FF25F148023F14A17A203B8AB7D98726C526F88836DB57D196BFB784AC + +Count = 477 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C0D +CT = D13CA054039357AD1E3625DB3D95B65437C04796AAF5D9068B387784E285 + +Count = 478 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C0D0E +CT = A577EF706793B6BBE0CFA9A9171E31128184FF1BEB5F9BBB29384A8C42ED + +Count = 479 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C0D0E0F +CT = E238B189791A2EB31182CE729979CB6436C75B6F597D0F8705738331C655 + +Count = 480 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 2AC8DB728E97BFC26D23EDA2E2FD50CFF171AC291D323264DAAA96C75CF2 + +Count = 481 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 19CA0366E91B6CBF367E041B6BDE770FB13827954CB9F324051E9F11255D + +Count = 482 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = 099CA88092B9401EA4B9FBE28EC25C534A122DC79F391476F8163FA5E23E + +Count = 483 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 30FA9AA5ACA1529CA2D4CB136FB5ECA5066F69711238908DD636EAEA28A4 + +Count = 484 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = BD8750FE4B1F835CDDF43FBA887F573F791490FAF0A4E476A1EF03D6EFC1 + +Count = 485 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = 3DDDA46134633EA29006205F90F8C5C38A77621D41D7231C76BB94E855BF + +Count = 486 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = FA7FABEC9A64E61110F70831E6A6FE861FC3F10A70F28377DBCAA9DCFFFD + +Count = 487 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = EF5A3511EDE91CBB11FA4105394A5115AD2C883753DAF2D0594F8C70EB50 + +Count = 488 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 160459779EEFCD5786E335CC1AC6F770E1F99D5401BE97D56A3EAC519C68 + +Count = 489 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = 8B8020CE1FA6FDA4A3CEB6722774869433A6C3BC9D03EE77330EE71DF708 + +Count = 490 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = D4AD2F7F3713FF57186449ADD701A233293A4389131309DFDBDD302EDFED + +Count = 491 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = D089187469A89C420A79718FC1F7526D79E0C5280BCC6DAB1B8B1695512C + +Count = 492 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = 3D2FC321394D14043A8AC796D53632798E4F905CB977A914314B1B57F2C7 + +Count = 493 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 75C68FA70E37BF95407FC09B8E6255AC2FA7B0C52D430627E79A6DD93AF3 + +Count = 494 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = 2BD934D70E842794B54E11151A0A1B914C92E9DA26CF2E160F046121CAC3 + +Count = 495 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = A04010C88123EC3BAC2EC1E8EDB8D2FA203695D0FBCDBE60549C22D3C4B4 + +Count = 496 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E +AD = +CT = 81753B47EF73FED880FB7E26D9B199B17762B14A2B943BC5E3EFDDC307F52F + +Count = 497 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E +AD = 00 +CT = 173A461A7DC07DE4D9C2813F8C94190F2115E3CE592E68C045CD71C55F3B6C + +Count = 498 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E +AD = 0001 +CT = B08E491A9BF89C1D1B6DE2E5B229271CF2DFBFAB607B5BF9304AC91E26BDF9 + +Count = 499 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E +AD = 000102 +CT = F5E9F38F137B11EEC401AE0D974138C65F2CE13B1783E99D976193318FB5C7 + +Count = 500 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E +AD = 00010203 +CT = C7D5F25EA5F8FCDE29080A838A5EE72891506A5EBBD8D6851A75DB7CE51081 + +Count = 501 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E +AD = 0001020304 +CT = D41D3A8E9C9C23FCCC25DA1F8B8C3B0A75FDA409F734AC8560567E6A71A611 + +Count = 502 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405 +CT = 7E056D8C28B53F9FD645F27A1029298C47022B5B110F20BE3C8C6CAB156EB6 + +Count = 503 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E +AD = 00010203040506 +CT = 40264F74638FA16F8A80CBBCD3A6DB00F44C9F6D37842B2691E1F9F30A5C63 + +Count = 504 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E +AD = 0001020304050607 +CT = 12F0EACB3703155FC699674925D9E9158536352D893974DCF7EE48EA80906A + +Count = 505 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708 +CT = 2113276A7BC1A8FFD1F4807322BA262B80160CBC0A493AD63AA1E14949B397 + +Count = 506 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E +AD = 00010203040506070809 +CT = 4AB030B52F71262D9ABC4DA089777580C5311A64E99D9916FF06193737E799 + +Count = 507 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A +CT = 48A782D28EA81749FD9C1EFAD8B9862AF0FD760604A3FED3FCDF8868B1EE5B + +Count = 508 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B +CT = 049F743FBCE3F48F383A3BBB90086B582FD68077D9D80019554BC4C3003253 + +Count = 509 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C +CT = 41E090907C703F0985809E8D0EB5840DC5B1CCCFFC96B8B7EE7F4E9DFF6E87 + +Count = 510 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C0D +CT = 830BFDB0FDA1C0503B59FD13B8AE92B63D3C407060218E58A413824D91CE12 + +Count = 511 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C0D0E +CT = 59A5DAE9305CBAAFF1B8C4BCEBDCC8C05D5C1C1879CAA3E38D9F67D3099C0C + +Count = 512 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C0D0E0F +CT = AC704FD8CAB008FE6986885ABE8BD6D9FE66AF992A3A0D17D4AD8F6D87AC95 + +Count = 513 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 7F633B5BD328989DF509E75D04E951B8C9AD1B3182CA33A8D1A03D65363660 + +Count = 514 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = E8ABF967817E981102D4DEC0AE1304A539A9747DB8362817A2A9B72E516B8A + +Count = 515 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = C75BCE9AAD48E9A5977A17EEC4DCF8A92413A84CA9961E65B73CC317EC597F + +Count = 516 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 9B51D640035C1F2D58C36F1E4AF0E98FDC84C42A20A2F4F8FA68349354A95C + +Count = 517 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = 239CE34ED29D1C289175AF088F2ADD5EFBFDEB11D6B695451E984BC5176E77 + +Count = 518 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = 934CBD026C0A594EBEB646726900E59AA17C21ECF2B27A65FCFE899C2326A4 + +Count = 519 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = D7F34596F307A034AC58910DDDB16EAA5682BEF4D7EF1E8661DC46510D47FF + +Count = 520 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = AA89478EB3C61D8BA75B48E3B49C927A348B9CA4FC30AF99869A9927D8AF6E + +Count = 521 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = B4EA8AC58C39E7D2AC50187D219528DD753EBDDA73CD8838D122558419BB11 + +Count = 522 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = C95E19CE1934D2005BF7F81FE42D78C8871CA271FD2E43A47D8BC03F822D0D + +Count = 523 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = D998F9D2EBDD3D6646EB8FC0B165F89D64AC4B028C2B6E7F217F683EF98745 + +Count = 524 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 62B3B90B6684C01A95DB2BD854E21E08BB3813632E9E4E0F37B98C08813900 + +Count = 525 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = 1A9C168BB119D27CC1C8048093EFCE50D4EC17D5C9013D65AC676301C73C8A + +Count = 526 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 9C4E8320FB7D3F1FCFA0254314EB74AEE3CD38A146B3DC1DBC9A8C8DBEF501 + +Count = 527 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = 6376561612EEBD6F15B78AD9E5428E7DED42B6693D99414DF5FD7D5F28D803 + +Count = 528 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = CFB6F55D3867B326428032C67FA2E3B54D8F04B9F61D317E3074ACE4560FD9 + +Count = 529 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F +AD = +CT = D19A9D1BE23CC54F810339EDD4E15C7039841C4802A94CBE2E16E8581E776CD4 + +Count = 530 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F +AD = 00 +CT = B229F2A40D4A0275B4D930690927F1F5DF24F10AD9EA0F5C15B074EDE29DE172 + +Count = 531 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F +AD = 0001 +CT = 21C4FF899502B969AD591D23641831AAFDB9F29B4A0976D854E6412F4FCE1387 + +Count = 532 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102 +CT = DCE5D6B6187E194CFBAC0F15FFC7371AA213FBA58FFA4B8C8205D7E0E80F2864 + +Count = 533 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F +AD = 00010203 +CT = 5E0CBFD0386F1F093C433891D7DB2F2206BA8089B790DB52857F9D20FE25D9ED + +Count = 534 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F +AD = 0001020304 +CT = AFD1FACF637BCE39848C2F86206C8B83BF00D7525E22724AD2C5F9313BF23B27 + +Count = 535 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405 +CT = 5D58F54F7864A3B2B3C35B82FC41C094D9A9AC699FE915D684BD03AF125F9DE7 + +Count = 536 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F +AD = 00010203040506 +CT = E6B27AB3868E9654140889E9CC78AD5FB482A0C3ECAD9D67557E1E52E966BFF1 + +Count = 537 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F +AD = 0001020304050607 +CT = 75EE1416329095B6975C556E46277F6B5A390203D0F94D98A9416D6080BB3DC7 + +Count = 538 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708 +CT = 0437554C5E7FC89F1EA2DBA4F4CE5956710DE120963E2AF99C15EF03FF0BF0DA + +Count = 539 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F +AD = 00010203040506070809 +CT = 4D1D544AE3EB10C29944A675F43D52517C6BE1BA964C884A906068CC6B6D2E58 + +Count = 540 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A +CT = A95AED7E615329B231B78D76778D76D9C5A82AB4B6BC9320B6B5A0D2CE5BE002 + +Count = 541 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B +CT = 1C8C37D8D2447718DA85C0B3732D5912647A3D1F26F41EDE72032CF6087846F5 + +Count = 542 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C +CT = A9BBCA855D5446D570543C3F07209C69165340A90C4EA99EC82D5644AF2AE4CA + +Count = 543 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C0D +CT = 7A4245969A6DE10189C4B83D62F04059CB0D6C61EE25996A0FAAA5391FD4FBD4 + +Count = 544 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C0D0E +CT = BFA06890B546744B74DE7CE7598F9A362B063C07A91D1B805F0290E65F0D89AA + +Count = 545 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C0D0E0F +CT = 2E0420E78E5D9124A4B11EAE2BF98BCDB46B94515F170AD559DD79EFFF808516 + +Count = 546 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C0D0E0F10 +CT = A96D0059BEE960418847817B9BCC7E768BE00ED3B5C5B7615141FE711095A627 + +Count = 547 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = F766E9CF8D4F0744C5EF061317179AF96B2A4B31902DC589DAAD3848743AEEBD + +Count = 548 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = EC55A0785A1509DAB3B1B26E2079CA225FAE46E7E2F86E8A31BCCBB8E463592D + +Count = 549 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 82847D7A430A645EEC8DD7C62761654AD484F7A68FB53801445E71A0BAB5AC8E + +Count = 550 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = D30BC3E62EA955953ADDA58AD69E821A5338714BCE55B36B6F4672600B4F6D61 + +Count = 551 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = 69B57622ECEE58AF0886818D56DEAD5552F03BA8BB5BFE103F966E67691B20B0 + +Count = 552 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 7C0D224B9BB027886FB78CFA195B88C73D5D1BC97B9855CBFBEAE87A6423EBCE + +Count = 553 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = D31062F289C9F682C43294F1117A854EC62DDEF67A65E35DF668EF8D6B2BE1B4 + +Count = 554 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = EB455781FF38E80B4698B5BF6ABF8B80331A7DDDEBB591FEAAF53AD26887CE29 + +Count = 555 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = 78B94D94758B3C63C6BAAB66E2AFB71977F967D0C56F0596ED9E165BEEE71FB0 + +Count = 556 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 58A62A65CB0708624D71C3CEA1966F03963E3529B112F24EABAD00C9B2D016E1 + +Count = 557 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 7CB60F2616CFE4C4B133130FC46F60C0649FB7D17B3B308592C42DB0B2544CCF + +Count = 558 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = 8C4B38841A2F74E663470A49453CE8F9B6FCC20514A32944ADD108E763699CB1 + +Count = 559 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 1FAD316BFBCA523D9ACF25A574F1629C031BBDE92271A8CB21F4C5076DC6F449 + +Count = 560 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = 2BF10401D161A15C5D2A528BC293B6FA0EB3CC0FEBA63CAE112FDB575A8E9876 + +Count = 561 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = CFB37931F8F32367B5215E7FB506E02CA219C12568EBFE91DFFD86751F7651BA + +Count = 562 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10 +AD = +CT = B384E6C5CF48A30778C972190B570320908307D9ECB4E078BCB1EF224EEF8966B6 + +Count = 563 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 00 +CT = 69B63E35490C2E68D66351332ECF134D36912787EE97E0A994C6F0DB98BA7446E0 + +Count = 564 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 0001 +CT = 19907ED5D526E966C886330E271D2AD36EDBA0F0269407E5A2AB0D908C6F6B0C35 + +Count = 565 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102 +CT = 1F2F65DD509EDA19B302C4D26EA9554F0E46F7F4C44C5223B9828D3C9E1BED0A0E + +Count = 566 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 00010203 +CT = E5DF7AD6A6E44605D2EDC1705BB206F9F2BB121DE64C1A6C7CD0128817EFE60AFD + +Count = 567 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 0001020304 +CT = A091CA4AEB121A3AAF5724DFDDBF08D13CB7A057A9725FCB35EE93B94E51F2C35D + +Count = 568 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405 +CT = 90206A6C657C0CC982AFB76EE3F1A343F4B5201783350384FFAFF3C8ADA7885AB3 + +Count = 569 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 00010203040506 +CT = A2489ADB4140C5A92E0295F0D997FBB560B2A06D3BBAADFE992492251AC5D5B788 + +Count = 570 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 0001020304050607 +CT = 1B98C2D9ED238C341183BF1D2A884C8D2264D4BC8950EEBC6C5B98B24A4E837480 + +Count = 571 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708 +CT = 87384C27F8170C36A87A65180D2342EC2CA66291AA38F0DF09943D455E5FAF4C30 + +Count = 572 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 00010203040506070809 +CT = 24D8A0E5C29724C62757F4FBFC566B92093CAAE327A457426171ACFCAC7DC68A67 + +Count = 573 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A +CT = AC389C7F205306B70D49DE2AB3C6D60BBF8A6BF5A610447E3EF02BE1FCB07E37BF + +Count = 574 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B +CT = 6C6FF07CA1A43E4B77E9F6D4C4BF1DDBA5B4C1738485D7FCE19DD9877D982F591D + +Count = 575 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C +CT = 50FDB6C1B64C267315AED54DF92197D4ED8DACD7D554D43D850017610DAB58C4C6 + +Count = 576 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C0D +CT = 433FB3CD0F6D484CE20B2E65C8A9E6E3C75340E81E1B0A57F36BCDD8F6EEE1D523 + +Count = 577 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C0D0E +CT = 9FF11D398F11129629456C8170C7E85AFB3688FA220ADDF48A5C78248A5A4D7237 + +Count = 578 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C0D0E0F +CT = EDF2F56C37629A219E8B361B723A313B379E58642846ADC96E8FFF9B0AFF8D7CDE + +Count = 579 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 83E795E8254A4199F9F17C2D5BDDD83DF2D538F029595FF72239031D31B171031D + +Count = 580 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 635889A6571DBF62F7760E314B010AD274AAEDC0E75F026A396EC355ADE289FE04 + +Count = 581 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = DC238BF560AB5D48B95F4C160B7D9BE7E184327DCCA9C9E0D1E17DD90519E7F1D6 + +Count = 582 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = E37CA2BCDFE734679EAE4F09FC6A189709B6AF1D5DB10C01FE3AA84A27C8974506 + +Count = 583 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = 3029C79B7BD156E9582569CB8A6084E8C176649AD6A878F0E2FB84E702DA15775B + +Count = 584 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = 9E6522D974C18D957D702C59076C81BFE64245978F8768AEA8C58C0F857B8B53D5 + +Count = 585 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = DE7AD120F30E33C51BA47F33C43390E228AAA0420559DB5E55A77406E01DFA0AD4 + +Count = 586 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = 376149ABA8317D30BD5D481A48CC5DCC0AC2AABFCFED1F6BA02FD3E81082BEC7BA + +Count = 587 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 7D5DAD4392DD1BEA1C2E2C85DC9959681B7423457C33ACF0E5ABBF0050B87261A7 + +Count = 588 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = CCEF81CCCCE43BDBC4CC82F6D59F55C7C43E392146F3B98137D797F13F42C68EBF + +Count = 589 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 96FFF869411C71A4EDD20DFD41B738E77858AA7CD4075748AF1EDA5C07018A3083 + +Count = 590 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = F54FD8252A6161938100BCFB1AC1B1C73DE4A8662706E4EE16721DD39F495CD488 + +Count = 591 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = FEEA9E2262C6C0A9D2A44F400FE57361024C5ACB0FACCD7CF20E4EF35705CE0A85 + +Count = 592 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = A35D64B33B06741AB5D3B746488818B37C4478D0F02B462426B4DF48A8DCCBECC6 + +Count = 593 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = 82A09DC07FE703A4D3679405451576116F79DF54478248FC6FE495DF41A05E56AB + +Count = 594 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = D0AD12024EF99DB762AC3A113A9CA0A49EE03B40F5C2373B87E88FF846180F2D37 + +Count = 595 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = +CT = AB74F27C928E11DDC6D2FD952C5417F24AFBA212ABB9007C4631F7E5EA65126DDA7F + +Count = 596 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 00 +CT = 9D67771D17B6F4AB35AF90E06341009C9828E7F9942FEC484BDD0C5EE9EB6D07D9AB + +Count = 597 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 0001 +CT = CD35E6549AF0F0DEC14B1220C7FB2818C4ECDF53AF87ED3E3DAFDDFB487D2C025539 + +Count = 598 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102 +CT = 86AB4B72DA9D6E2418435CCD8FEE0805F7FA00CDBE389BC86C4A577521A6C376EC9E + +Count = 599 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 00010203 +CT = 4BC78B0F330B5A8A08A78A4E3275486C4AAE0CA4E28388787C054AC7AE0BF71498A6 + +Count = 600 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 0001020304 +CT = CE10CBA14C7DD632C9481951C5B7BBDCB5237AB0ADF319CB8A054A7027D794D26F03 + +Count = 601 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405 +CT = 11C4093F4C1DCBD2F9C5534BE962178AA6F28EB7636C99E10C5CF4CB7AEDDD80807B + +Count = 602 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 00010203040506 +CT = 0BBC84622DE862CB25CEA9210D681C6E414BCB24216674AFDD5583983E8DF32E44AF + +Count = 603 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 0001020304050607 +CT = 07A072CDAA4D48B2F7A5BB5EF8D3C37F5CF81F0F0FB4C67FD93511360C4D52A73E6B + +Count = 604 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708 +CT = B8DB93A90FAAF9429E478D54B780B988B0B1C5B49EDE56993661E53E6AC244B1B92A + +Count = 605 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 00010203040506070809 +CT = 1BAA98E8FA882FE54EFB00F30BAB4A419E04FF59F9F8B77A74FF662F0D432D0461BE + +Count = 606 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A +CT = 09076ACFD8816269888CF1195BFFED1357D3FB7F41435B393A3957E9E094EA4AA635 + +Count = 607 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B +CT = 0FBD35EA6633C319A1AC859E28D9F340C7C9D3BA94974B78FCE105C9A11ADEA31A3C + +Count = 608 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C +CT = 0FB3CEB378EDC586A2653623361214716D42C5DB11B23F3B91ABF142F487D281D889 + +Count = 609 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C0D +CT = 8017E8118F4D32DD84DF2D8426C276068050760ADACCD83A88DC1DEA31A83AEA3CCE + +Count = 610 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C0D0E +CT = 763D2333331E6023D7758AD3C1905FBD2E45AE879791D3D0F38D841FC6686AF43498 + +Count = 611 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C0D0E0F +CT = 779DC12001DE7CC2191AB8E56819CFDE1B77968A5A77C7091354DF20C1CF3BBD592E + +Count = 612 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 72A533564A849FAC06CA2694C9BCF3220D9004C3B1ECF6B49866681AA1E73C39CBE0 + +Count = 613 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 468D7ED2B82BDF80CDF85A5C9EF421F18174C49922F9DA71135F1B3D9BCCB76EDCC5 + +Count = 614 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = D668A7A9772993F5872F6C99F2C4555DB68403A78C443FA1C2142E7A2CBEDE8987C3 + +Count = 615 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = D6798361F3A51129A9D8593B1848A6141147EB499EFF3C38C6D1D7F8C62DBBCB46D1 + +Count = 616 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = EE596EFB6E10AAF382FB0D63FDDCCAC58BD283C03C979349EA237B8EA2F4A3AA7A21 + +Count = 617 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = B831B2108BFEBD71B207FFC53EDD8F5FF901A6549356E0D48B2098BB5039232CA062 + +Count = 618 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = A4ABBE30DDF18990770E6E14C89374E3956E66261D7D3AF060CC05BD31D126C98A39 + +Count = 619 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = 9FE1245879787CCF66ACA7E50BC5E9707FC752E9D86BC0B4D51FF077DB794B3A05D7 + +Count = 620 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 52C0B13CDBBEDA5EF56FD822EFD8901AFD5F604A361D6CCDF0B037F829066733D3F4 + +Count = 621 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = 32E74898112C5FF60D3D6B2C5E170C7C2B146000ADE2F11EB927B7F1682F1C8F07F2 + +Count = 622 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 954447EE518A6883F3B040C834912680132FF938A6E7069DBEC3466303670C8DF407 + +Count = 623 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 199A3E02951C446C563D17CD4806400ABAC1099E62C01FCEFC7A9E6795B8BD06EC27 + +Count = 624 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = 1049DBB40D1AEFBD0540EEAD5D8D0BDA06C034A50E718F772D984C5ED5A3DFDCD9CE + +Count = 625 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 8A35BAA4DFDF5028FD943FE407729E6A5D24823D52D646D01A623A4898B43C6CADED + +Count = 626 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = F3530A6D139FCAAC3B52BD9A8C87F1004FEBEA2C1DF043E86F4BDC7DCBFD847CD1C4 + +Count = 627 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = ACB21FA7B1CFC381BA02B59A0A52ABF28DC4FCDFAA64B6CA7A8E1BC55714C53E3379 + +Count = 628 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = +CT = A28E0E9E47E97C2D8C32626722C90F11CD29CF04AAAEEFE8A4E124A13DA74F178E5DD2 + +Count = 629 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 00 +CT = 4D9E985AA7CCF2ED7715B4639770238042F4F41BD8E50A3E9D975121F43C517E930D6C + +Count = 630 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 0001 +CT = DA7530439A044FA6BF2404FE030EEF24E7CE499C026749F7A7F8A6B9CA2001C06CBD01 + +Count = 631 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102 +CT = D56608747A4B5E894872745C88DB0393041BE9453BE2BCCD2A058CEA1F76A7FFBC79FC + +Count = 632 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 00010203 +CT = C154F60CAF10054932F73397BB770D229F700774A922C075810FA0B6C9D347BB8C1008 + +Count = 633 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 0001020304 +CT = 99E2C70096790E2A7CF3FCD6D0B4CF9A15954F03A0CF49C1705BA822B2E28A4143AE06 + +Count = 634 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405 +CT = 1D234DA86B21195E8F4DE1E6E6B454389B05463F38BE610B8391DEAAD5D9F59CBC7EBC + +Count = 635 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 00010203040506 +CT = E007E5D564C90958349DE4A7A26DE9D04E36AC06ABC81E68347793CA0348FF05B885D9 + +Count = 636 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 0001020304050607 +CT = 9614540CC63EB1798507FBEAE6B141593C36C86752DE51ED13917F73DD13E1827085E1 + +Count = 637 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708 +CT = BCB058F77C0F851D856765E134D4B568368EC8FB2F53494AE6D313EECF0269B83C89C8 + +Count = 638 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 00010203040506070809 +CT = 500FF2DEA7AE7CBD85EB4ED5F96D7BE2E93604C3BC249797A7E29E3256EE8D9A8E0227 + +Count = 639 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A +CT = 46AD42F73072DD0B81F805AE4FFEAF77CD37B881F6C72DDFA64B735FC88BC296C44A3C + +Count = 640 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B +CT = B6FE9BCA44336472DFE3BE5D1589F4E7C02A132DC27AC153B418126E89464D4F0179F7 + +Count = 641 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C +CT = 5E9AFC21AA1F1CC066035308EDB876B51B9CA6D12474035890B08D85FC6D04D7EAA89E + +Count = 642 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C0D +CT = 355E87358CF9042FA10A1AA488FA0B8EEA3BBE89DF11A2C9BA14B93D08526DFB97AF66 + +Count = 643 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C0D0E +CT = 7899E693096B6F092ECF4813C47695181D2BFE03049D4AD49696F589CF3494DA19B70D + +Count = 644 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C0D0E0F +CT = 2908AEBF7274164CED90AD437C2984A4CD3ABB6BA13FFF66661D25891A48A27C0D2119 + +Count = 645 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 5CB458FB7A5F0F6A95AD49886C8E6165F60C472AE0E469D92C2E3CD021A6D7328FBF01 + +Count = 646 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 5F14CECD60CEF9D4C90B4CC849C32B2EE5DD8C93343EBFB9E1C1CF0D323FA19B5BDCBF + +Count = 647 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = 1B4384B74C4B486723F0D40BD4ABEC2A9369AC8CAAFC663A16EAA102B94530916558D3 + +Count = 648 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = D3722F23959277537B560A186749642ECE4984923298DB89D8E994605F2DF76F10F040 + +Count = 649 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = 0A2CE31C03DE5A30489987905D4445CBCD7B10E3EC6EEC6E7F1E8C81D2B44884DE71B4 + +Count = 650 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = A41D381D94AE0284C33C9A1D9178A36F01E715CDA2CED545F4A61D8FBD418820ED7786 + +Count = 651 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = BB14F6A5E3E07FE9B01899DDDFFFD234B165AD329F8A0898173F1F13557954171626C2 + +Count = 652 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = 837DFFBA250914F90AF7C2C1C33B618A2B2239214E4774657EE29CF09998F54D8220EA + +Count = 653 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 8D189B917264B2BD5AAA1B5DF542C5749B4B8E581D6B28E5A05FDA07EF935EBDB74904 + +Count = 654 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = 46D38B8848527102C33D5520A2B3F94F032BB1A1B473C54D6FBB016DC9428A4EAF6CE7 + +Count = 655 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = DBFEE90696093FFEC849782EFA4B8DF3A7DCE4BF6A3BF08CBEE3EA253AB438E8BD7422 + +Count = 656 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 6983EC3627A1A5144957F92AD3EF9EBD37E7940CA777424C65B56CB6C87F9A2612EE60 + +Count = 657 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = AB552C5D31FDBC92413C58FB6930CA4BD1AB5E7B2B0B8E33E3DC08D5C5289953E4CEA0 + +Count = 658 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 8CAD6A087E62124E474BEB93B10BA2351B9502B1B5B6401C2A622FF8952C513DA30AF2 + +Count = 659 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = 626715171D5C2D2335E59591BFB032A3F01A7F67D58852E84DCAD1F078FBF29B465A1C + +Count = 660 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = F726BE319E031EB8F785734111F7B2E4F2AE83960EA043A16A113F65069574F6D1C465 + +Count = 661 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = +CT = 44AB77ABD38C35AB98E5177DE3FF97F031C91BD37C73307A3611D14F6C0100F44FD8A85B + +Count = 662 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 00 +CT = 44013388DE35170E8D291879D2341FC08EC54C100FD6D1904983838E999EC4848B196869 + +Count = 663 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 0001 +CT = 843C352DF0EFBBADAEB8ECA4A895BE081781C4F3B0E2E4A58F45BEC087D22F9C3241E1DB + +Count = 664 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102 +CT = 29200065B0B32D06FD8CC55558EB694E8196E9AD9023C05843981B22E86B962F7D16272B + +Count = 665 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 00010203 +CT = CD066CE45F9B76FB44567659A748FF4C8B54865F3017BD7C2FE05597ED97C934CABA7408 + +Count = 666 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 0001020304 +CT = ABE52920F478A98F068A00E11A41B2C7467304820B2722ADC9B553A499C8F953439AF703 + +Count = 667 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405 +CT = D67BC5B8D03654CF05C27BA8A201B19B29C3F97DDA4F3EFECEFE2DA4B2908B3869DFC5D0 + +Count = 668 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 00010203040506 +CT = 68F24E76070DE0A6FED4AB230ABAA8329E3B90AB0FB99BD5368E06D6EEEA1DB701084731 + +Count = 669 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 0001020304050607 +CT = A18E47E2BE0557F602055756DF66BA6EB38AB396395E831675F9E086891399B4E6F20DF1 + +Count = 670 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708 +CT = 4752BEF596ADF41112C34736E00217E3EA5768678129CA56D0545B900CD927C0A8BCA433 + +Count = 671 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 00010203040506070809 +CT = B919DFA285A5A882BCD002EDEA7787D3751B0EB13D06E12AD3482099A091EDABF361E471 + +Count = 672 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A +CT = DDEEB9D55D41105B423C222E903C814E6D1A7592A354DE6714B84E75852C17EC3B76C439 + +Count = 673 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B +CT = 1F87AC13A609A1EE908D4DDA69E711DB123E63421357C2A645BD4DBE0D42780795B90DA3 + +Count = 674 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C +CT = 1E951B7BF2EF1202112DDC7BC2E15565DE92723153DACF85D6CFDC76B319EA4B4FB37FE5 + +Count = 675 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C0D +CT = CCFBEDF3B9501122C73C18DF370D59349716FA5E32A58721C85D51E0D3DB1B0C059430D3 + +Count = 676 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C0D0E +CT = 9F270C7196612E5C42E808DCA14890E355BB03D6BC23045FB4048562873F7F79B2C3C8A0 + +Count = 677 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C0D0E0F +CT = B4EBFEAAF33CAFCD2A7017F5D4D0638D8E41A8E9D8CC133F853A89C3560CC6E58FB0AA00 + +Count = 678 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 7ED4A4ACB07F5A11711E57CA77DF2B709C65A010E1C47EA830D471B35C875630A2D5FEA1 + +Count = 679 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 22C903463C5778B9B886B6EB95DD7A97EBA35BAEEF3FDC4F14509B6AA4F287A8EADB9A27 + +Count = 680 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = 043B62AF2F5F671F0A4464A18803CA15E6F488C5F2E3BD94D7CDE874C4FA08CC410CA53C + +Count = 681 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = C9CC114E946508AED4D9CDC95ADE1F88912E71F2537F04F1AF143D80FA86E3A4A866EFF4 + +Count = 682 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = 8D6668FBD31BAE1D869002A5F062AC744E0F384861811F5A366485C5CF42082ED3AA8C7F + +Count = 683 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = 575F7D33C817BCDC00D6083ABA5091461E6F7A58041A9987D5DB172E3D27BA10F675FE27 + +Count = 684 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = A96580FA8049757E6520757B5336334A1249DD80296C47F6F48835BF619A823D69116C7B + +Count = 685 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = C1293B1AC0DD751FBA52A85953F2D62C76744D834118CC2B00F6CA8F605F815CD47A9980 + +Count = 686 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 65F79A2B465E7F117C0244D3B51F545ACD653BD190A8A6D065EC9C42D75BE0BFF7C56550 + +Count = 687 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = 61823094B10FE08D7F51014255F9F4E331CDF1C1E51B45AB0E0D9A93A72061721CA0D316 + +Count = 688 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 2E7FE00EADF808D5425C71D4625F8076E447D1B342E3266092FC49D56769BD2E822BB3D9 + +Count = 689 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 3109850DCE8C33B5B4D3F9C24845A8804E0ACADFB54C42D5958B5631BA645D17EE32EE94 + +Count = 690 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = 5D419636B126307EE6DF150A74E4AD9776886AAFC7282599FD1AA3C5E413F2ECDF60ECCF + +Count = 691 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 2E709F53ABD724AE49D841EFA1131AAD706C57E4AC0CF7300F73B388FC9377DF154D2EB0 + +Count = 692 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = A37D03B9372081756D88C72B7BDC9312D2D37250E3EFD67784C906E9538A0BB3CF774CE0 + +Count = 693 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = FF3FD27D6AAE9632001881EE2F9493BDC0E64FF0D7DE7CFA482C309E0AD90E08515AEB79 + +Count = 694 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = +CT = 0C88355679DE6B44408B463EC690CC509D9BC6E166A88AB1177A829B8F93F2ECCA4AFDF822 + +Count = 695 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 00 +CT = F7FC713E8EACDA4011D564848CC7445CFE5755A78C800FCEBE3ABCC200378E15098B218D65 + +Count = 696 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 0001 +CT = C3EFC21880C6959305CB13ED806A96280FE22451F9E58BA72758B75C6560479F73B33D653F + +Count = 697 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102 +CT = C79A998054D6CE1844218CF9BAB1DFE410CB80F9A17925BDB34A7504758B2B04C59B733402 + +Count = 698 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 00010203 +CT = 64E7C2DD086B1D3DE95F1FCFFF4FC80704EF820A9613ECF57B5341576A530F9475AAA36E7F + +Count = 699 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 0001020304 +CT = 7BE72ED32265DFD1FA0F656CC19A1C53428694B71A444103B2F6813099EB765F8C1799B34A + +Count = 700 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405 +CT = 14AC7AC4CE525E7703C566C5C4CB5E733F557C68EAD66A8632A793BA8259B1CF7FC6FADD13 + +Count = 701 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 00010203040506 +CT = 758268000F7DFCB2313611713F8D715418938CF0D021455627DDE5F8F1978D2D216C95567F + +Count = 702 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 0001020304050607 +CT = 3C880A1145CE2E7B039E06D005CD5ADBF24380A5C543B54048B5091CB8BD113B443B520A00 + +Count = 703 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708 +CT = 8D0DC81DB2374669822C09B594535A570BC077474F614B42A947E928D1F9A8D9C40AA00302 + +Count = 704 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 00010203040506070809 +CT = 9A7C0F2CED63F5D11EA5EE6D3667AC3E7E757F93D9BBDF28F166723C1BE0212261BCE0B994 + +Count = 705 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A +CT = 0A49AD1A03E9CD47534A5E01B4C08C1BAE0E0390E3EB64C1ABA1B1C9C7727F9FE15714B24A + +Count = 706 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B +CT = C6793C10BC500654A53914B9AAF419A85CB3379A8E1B43E9B7DB9227B674B27A4B5D8191E5 + +Count = 707 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C +CT = 580F16DEC536D1C7923FC8ECBBB0419D267B5C6D06C884B77EC0329BC3239CC60876FBBDB4 + +Count = 708 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C0D +CT = DC817B27EF84E188A2B68462860F2E8C7C4E8EC7DC73CA462E457DFF1BEC5AEA64DA38F02F + +Count = 709 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C0D0E +CT = 535249D36968CE3318094537A3BB91545ABE05B7297E7744185A184A4C621ECB68320CAE6A + +Count = 710 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C0D0E0F +CT = 45E6C2E708B73CE902A93EEFD94304E641EEABF7F3BE394614D490505DD3085B674EE0ADC4 + +Count = 711 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 9301219E88626E553CCCC3FEAA3BF27CEDC6D3877D04680DC4531AD49369816EDE12A77B18 + +Count = 712 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 8FF6117A19626BFBA74ED189C7EA5751DDFB6A83CC4BCA99AFA0D40459D97A27302719A216 + +Count = 713 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = 4495DA67008D019E1E7C998D1F2EA9B87A33E4FBA2C427A6C5736729A4520AC3876BA59D39 + +Count = 714 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 83F573AA2A42F8F903B7D5B67C5E10D89BCEA5076647E5E53CC0DF43C3AC44A43146568AED + +Count = 715 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = 687B324B08D504C07FED48CA4CB33B962ABE9BEC1B1BF89B0D73D3070E64F4A732C0DA7803 + +Count = 716 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = ECA16AA73476E8957AC868AFB93D9463BEB7627997364D270952E7F6D743EC727C6B1FE700 + +Count = 717 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 7339F04816D9723FB6280CEB7E6C3CC32A861CFCE30B75B07D92DBD2F001A5F3ECAF9CB267 + +Count = 718 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = 3A14AA9F8E3513B03AF5B708916315D0B706D1B308D2B6214ABE51C33E9798EE078939C0FC + +Count = 719 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 3F20680604B2F50239D1839B227627AA0D4B8834D6F64702CC81E1983A66B790551134F927 + +Count = 720 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = AA23287E37C99C444D186C70F31282E1F59A3020F749358489847404D36AC2CF33D9DDB67F + +Count = 721 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 98535C31A74C8DFE2538A6742F43633CF3DBB20393187087296AB8982F443AC22F8F718204 + +Count = 722 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 1EEF0B0CB941D427B0CD42964884A3487E43C19734C72935186521FCEFDD889C8F0396AEC4 + +Count = 723 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = 6690D5758D0B948B3039A945A60EA95B0CEE6F58120B8BAA3B0B95A99D570B25DBF033ADCD + +Count = 724 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = F603618016D39C3CFE67892B5FB57596A2D93E9D51E0EB5273034D51D1D0B42843AEFFB89F + +Count = 725 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = DF4990BAF4F2E8976B3A7CB504C8EFBB5ED2C0B0FB3E7DE3E6DC1B2B856D4F8FC960BF0149 + +Count = 726 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = A8562A8F1339C1F8D6155C8579814D6D9D70BE9C7EA0539938EAAC39728E5CDCCC85646AE6 + +Count = 727 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = +CT = CAAAC3A199E5CF7B9E836C2E4E37CB2937244ED5769559BCE19979381D56EA6389DB423283E9 + +Count = 728 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 00 +CT = 4A52C49CFCFDD4627585D583667F78707550C2498DB3530DD1BC8FFCEEB287D4FB0FB6ECC5F1 + +Count = 729 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 0001 +CT = B1F993DB9371577D17DEC96FF27E72F1502073853F317966B6674E7938B50BA36DB69F315781 + +Count = 730 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102 +CT = FFF43DA707D0A764844B5F040F958447EBD582E4B8B0620CAB60D3E8921C4B6DD85E8F52EA4A + +Count = 731 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 00010203 +CT = 42436DF07A38739274ECC5D0C7BD9841778D4A87E65B46CCBC16F38EB1E267109389025E732A + +Count = 732 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 0001020304 +CT = A418653B3F6B8C0122A1DF277C14BCCA90294DC8887F85D91F6F597A86E8E0A9EBB40E86C37A + +Count = 733 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405 +CT = 0B473C7D75F3269BB29726E5013D9E9B1DEAE89E8BBBBBF63AE8D1224E1AFFC6BE4CC14E0822 + +Count = 734 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 00010203040506 +CT = 1CB009C8CE6CB1B02AF24DDCABA738748A8798667F9098A32A4E5F54B0F5197A01CA2037E761 + +Count = 735 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 0001020304050607 +CT = B8E486334FDB67D1318C06A365388331BF6064AD0127F2B07C30C4390BAEAFE8FE5220F77364 + +Count = 736 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708 +CT = 324CFCEE10FD1D5E5DB74D41C2C4C0A2B426A8971E5DAE9E6857D111F090551D8421E544D2C4 + +Count = 737 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 00010203040506070809 +CT = 4EF5A50560888E7165FC20E5F8216DDE3AF3124A696696BEB613926DD867044887A3DE82E84A + +Count = 738 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A +CT = C330CC9995A04E51F5E80FA81A6FD760A8AB069877337C8E6C29519D390C218A37454D692491 + +Count = 739 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B +CT = D8AD99AE058B96BF3F976957734D107520F07E546EFBFA326E0EB5778820B0FD888B16266823 + +Count = 740 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C +CT = 0459314DD16DD0F3F93017A67273BF62D02221BB22919EDBDE92F45005CF0D4B356AA0CDB30E + +Count = 741 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C0D +CT = 2F8EBFC8D7219789AA2D46AA7774CE0FCC214EFE3A0B540D7FA2E9E6F0C29FA56295AC67E8EB + +Count = 742 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C0D0E +CT = 1E546A7A3C9BEC3115A1C57B83434187DA39ECB8AF1EAB216CC21DE60D537CAAF879BC606FA1 + +Count = 743 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C0D0E0F +CT = 3F3026ACA27DE67286191147E3B31E543623F54E7C114E84D6B6A0A811B64644E3653388E50D + +Count = 744 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 81F61D5CF120623AA7A6080F7C382F87DB86D27F64EEB677B3FFC81689D1A551D32E129C6189 + +Count = 745 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = A5A8A9A2C8E0E064E29C91D67044D53A1B3A450ACC292CFB014DC620DC00BC340C2C3A595396 + +Count = 746 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = AA0A4CE54D2F7C216A1AFE16EBC682F67B636FBB83201DFEFBCF6530CDFA946E0AE10E267BD8 + +Count = 747 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 959D372BFB863FF1E940B190234ECB4CD964F3A0A841BA5C51D99B785BEC95967CF8650E5F95 + +Count = 748 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = 41C9F94B5A7BA17CA479C88175E2E85F8D29707FCDF4515583D4E783B4F3F3511C26F4D30382 + +Count = 749 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = D1BC71E61E870D9A2073326D162789F282F43B4ACCDE67118DE40868220DFBC09DC964FE164D + +Count = 750 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 0CD8D2AED8A20185CA8E81E1BAC1A097752A430C4809A534967335CC6597D86F34552B0F2F94 + +Count = 751 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = 4FBF939459AD906A1E9E70AF706013D5E607B62573619EEEBA0CC9D441FA0E74A5DD75E31CC4 + +Count = 752 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = C2CF6FBE8A78411CCDFE8CA6865E9D767DAB2CB1625AC844AA88540340B38C4EFDE5D9B494C2 + +Count = 753 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = 3334AAD3DB494976FF61B72EC1431B5063D458BE1DAC5A7CA8C5FAB1E9B2B87336B41A9F8A70 + +Count = 754 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = C4F6C4101EF1D1E58290E04127962D6C3C9D909C46F78BDA1752717891C42DA6CDDF8D8E67B7 + +Count = 755 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = A0CE2089082A59DA267FDC447C1D4ED1FE26313D4C6339CEFB3A824F3D7283EA9471F336F953 + +Count = 756 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = 0DEB99D4005FB661D8FA78116832FAC3B827E7C37BA2DEB266FEBC4C8AF58827475DF8077FE1 + +Count = 757 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 8DB0FEC8B4EA74961344EA5362681DAEC484C0A1D63D5B46B84B86F2BD998342D1F2C0045D48 + +Count = 758 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = B1EF6205887BC032D66C68EC597A22D340346485C9ED443CE6A193E2D6BF11425E471D403965 + +Count = 759 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 8C9D26D292D8C3510B3CC4ED49AEAEABFEF2D579DD0FC360246F34301EBC5BE3CB0CC9766CC7 + +Count = 760 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = +CT = 4342B6375CAEAFC042FDAD93B39F7AFDE1C78BB740EE4AA6CD635CBFB14110AF7267C26D2B13C0 + +Count = 761 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 00 +CT = A1B26FF68BE6CB69B88E75D6A346437DCA9936DABEAD8A0834AD1E193776C4DC19B82657D2D917 + +Count = 762 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 0001 +CT = 53CF2CF3C82A3B48D45F02E87A71763275F03C09052788D87C89CB9A864DB05E2505546E934D5B + +Count = 763 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102 +CT = E582974E0E029F0734AAA09DD05C1DA581E3D6E4914DEBCE67E57BC98F4D3CA94F2D61038A8A9B + +Count = 764 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 00010203 +CT = E4FE97658894428577EDED6B303366695522331097B5DF32FC4345E7DF6FD4733503C53FAE7B53 + +Count = 765 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 0001020304 +CT = FA7A4BF12C69B36F10FA8D358F8A4563222EE2587ACD979BAFBC3649502B050D52D1853D81D40A + +Count = 766 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405 +CT = 43E514F197282220CE4A54A37CCEC23C10691DBAC0FE2A4BFF55D9C87412A6330D075C1F28C5CD + +Count = 767 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 00010203040506 +CT = C7602A0AEF045F69FE42EA10B938C20E11E013A2D1DE573CD1B2089D8FA73572117095AE8B7F1D + +Count = 768 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 0001020304050607 +CT = 520AD11BD8DC2065F3FEECB4A123FFEC193951459121F8A101D7277EAC4722416BFBE82E09E422 + +Count = 769 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708 +CT = F444D35DEBF61E46EE9E1B2F6F67E36BD5D50717C74D81B0EC6876079B7FDA322F28504687123D + +Count = 770 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 00010203040506070809 +CT = 853B6F3CCEEB806BB7B9B54111EA9BDCB4A3B898D0953BBCD1B2ABFA0DE761D9E7111C31A6D845 + +Count = 771 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A +CT = 74B6744CA954E5BC680C9FADDEF33284222073FC806201891AEE33F83AFD49FB2411D613F7F20C + +Count = 772 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B +CT = 6E0E5015F169870EFC60062671187979E17B469CD02BCC90931954ABFF6138F54960543E41DF66 + +Count = 773 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C +CT = A99E0E4C88245066033AE8CF5FE22B1620ED25D8EC784FC89A04F1CB3709395EC2EA23B77DF7AF + +Count = 774 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C0D +CT = 80DE0A46DAFF779DB30525A4DD4B3E332C601AC3CC9B1D4BC172F1F1C1BBC92DEE5DBFBDBECDCA + +Count = 775 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C0D0E +CT = 2F5887BF2DC4C16030ED4D8156E8B0A586ADE223508FE24D11649C8542535B218454AE8C81BA1D + +Count = 776 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C0D0E0F +CT = 7242C157D5882934037CB11B21A4A4E66CE05D81FB5F274A78CCABC0DE7B9006C1781E37551643 + +Count = 777 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = F95DEC0A19B14E5ED0067A356F7B2A5FECF4DD69F3ACB5DD4348DDE32CF7D758F10061F612C748 + +Count = 778 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 3A3F1ED70D95D39323FBB34997234F28886179CDCBF870ADD09816F4124740418986654CF13B3F + +Count = 779 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = 3C08BE5EBB6FE3A9A1D37D3C5F55E904A0D1BDD4E1060ACD31E60F05372CB64CCDF3F383173CEF + +Count = 780 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 6899999441829004DC2DD3EAFB15BD6922D6280411FE956E8BB850D385A9BE25BCBF2BB32AEFD9 + +Count = 781 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = F0EED9C82B41735C7DA911484A5609AA88897FDF0EA74A5B5812EE5AC724B75B469572E597B126 + +Count = 782 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = CA95AB16423EA71AA4623D8CA880069E3742797CC3B549887518DEF1F2E0C1BDDC733B57A56A3F + +Count = 783 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 91C75C183FCAD10F57BCAB7AFE8EECA2EEF689593D9B8265536FDFBF47004E047A212EB02C51CF + +Count = 784 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = DE218B0190F1F432F361D395DE5F4ADAD5DFDAC217D35A63AA24557F976BF57EC53075C1FCF075 + +Count = 785 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = C95F875B7420920EC84B26404052097B27E2B740837DF3545533354DBE8903247A52B9A1F26DED + +Count = 786 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = ED4D76FE1AD326DD35D85D01BACBC756A73E09034AA353BB60CE13994AC7D0DF574EF937BFD478 + +Count = 787 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 07C53914DFD789739B99A61804935834454AA25E3F4C318F84D8973CEB36FF0824AB79F54854F2 + +Count = 788 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = B6FD97406DA3C9C2EEE032242CAC09C7B0F60764F810F2566D7BE58ACA30638D3C31BBEA193D1C + +Count = 789 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = 74E60A17AF502D85639D43EBF8EBE06472FBB2C8853DF2346380F609D753CD03059438CA282674 + +Count = 790 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 30F81E5BA360786675CFCC48E11F71A45055A6F91E5A2132D17FEC7B6D335926C3AFF6FFA1EEA7 + +Count = 791 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = E3885223FC36AE2C78B2346B58DE18FCDA28629575E312087D756B58D5FEE6D24F618A4FB85A13 + +Count = 792 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 681BB9999815EDEADF2C96E0817D2866B91321AC7818399D38DF5069DA7A9216B8FB1F1C957536 + +Count = 793 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = +CT = 0615B8133562E3312FCEE922057835C5EC588E8AA5253834FAFA480D2A5BE99BE5B7753730D4E3DD + +Count = 794 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 00 +CT = 86AFE5F3BD2944B08A0CF676BC3C54F75204DA02A6BF6AE2ADD461D7AD0A7AE6A8B70255A524DD89 + +Count = 795 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 0001 +CT = 14A02D8A82D6BD040DD3A04DC9AF2999D73BF95F625789A76996FDA2043F6EE4F9563203AC72A338 + +Count = 796 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102 +CT = 0BE26FB463D6069D1BD73D557AEE9B9E773853997998D1EE26F4270E9F7693DA76CBF7F4E675BE31 + +Count = 797 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 00010203 +CT = 9A6971EB40F743AE38DFB4B914658888A5BFFBE5B2416DCC20B601FDC113D317978F5B5C1838338E + +Count = 798 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 0001020304 +CT = 9671F33E3C157CC1E8296D40004A2DFAE2C9365369453302D710C73D902D46242F1504EBDEF8C89D + +Count = 799 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405 +CT = 06EDE6F7E7247C19B896EDE5FFE3A4525030BDABA071573BEB6BBECB409C58C5DDC7352F21CB2183 + +Count = 800 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 00010203040506 +CT = ED3067EF5982B36687F2AD61BD13C07BDF02FC869E24A22C488808AAD5A2B31A614F7A0919C3C180 + +Count = 801 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 0001020304050607 +CT = 4CECE31B3110D2102A19E3109195C289B6CA96B199CE1682466D7F3501DC9D1E9723B54F8117C858 + +Count = 802 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708 +CT = 97F496613A1A124B820621C1200F4C724170DFB26D61393334BE0E2AC62816AA22DA2FFB9BEB486E + +Count = 803 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 00010203040506070809 +CT = 8C60CF1F667208E116D55975A6BED8D96CF69964803EC4C6B0EDE9A37FEF559A7FDE8FDCE8C9BAC7 + +Count = 804 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A +CT = D7282C6F91C23FD67BE76EA23AC9EFFF509DE21474A0B618453BB6F5CF603003DF0D22B4816A68E3 + +Count = 805 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B +CT = FD8D1E8E2DBD73AB9FE6F10862D82B422C9FE1AF01444F4223BFBFC688E54292EC3DAACF42D903F8 + +Count = 806 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C +CT = 2EFC91520A3FC409D13EA36DAD72482034A0586BDC46E90DE51DCB35FB87719453B8199EA6F72498 + +Count = 807 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C0D +CT = 67F5200105C417F2BCDF6CDE54AE7C0E7DF4174633A93D865BDBBBA206D4AE73AA17DED5FB2ACCDC + +Count = 808 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C0D0E +CT = 2A8C1771A1E6C10FE86F1084BE206F756229613D7495792046170EEA7DD7E7B0D98BDCB8026EBD35 + +Count = 809 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C0D0E0F +CT = A663DD61BA1B75A74C8B80D5C757C2CD0F960BB49316805356F9308B06B7C5BACAB721EE3ADF8685 + +Count = 810 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 30F9FED27BBBFAD6FE7FB567673AAA552933A5880298A521675B0CCAF1675DB10CA012A31788B670 + +Count = 811 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 30D63F34648C29E4902FCC13B32B8925EE1093B66AB6C0BC252E6FB9694079BA48FAF206EB7614D7 + +Count = 812 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = A929BFEC0D472DFA55D8F0BDAE0700BE65177EA765F4A1683AD3388B7754202AF7F5FAE6A76B8C92 + +Count = 813 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 6A6CE5AAC8A04D8252680FC7640DEFCF251BF6DEA697EF8E26C09A7BA731AFD2B9B705CE47DD12CA + +Count = 814 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = 5732435ACDE3C04C217E9C45DCCA2E3ABDEDE740AFD4A75E73515769A7E89B4874286C8BE56CB85E + +Count = 815 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = 6CDA43C11AA9D5B01ACD7E83E335A95573B0AAEA96BABBBAC47FFF33BCF778753BA12EC07BA945A6 + +Count = 816 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 9D3851B4A1A41E608E3A50C8778FF7790B0F9A4D3E978887B4913E2C40B92B8FAAC7B5E082064A0E + +Count = 817 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = 61646F0407DE9F82F9B5C26C70CF9DAD8B96950CA5C0037F0D4BF54FCC8AFC6306587608A1104953 + +Count = 818 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = E90FCB520687191E71F9EDA5B1162DA6EC283DE659236683D123451DD179E4F11E9BE7ACD2F8CE39 + +Count = 819 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = D318AB27B078C6093A0C8789E5761104BCD647BC4E30B9423A84081C314E1D56075C29B42F455203 + +Count = 820 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 5A908B98706DE765F9C9EAB5D12D1F04ABF282F0AED78D7A5BF085CB9BF41D46B38673C3850CB54F + +Count = 821 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 8EF7484A2F414D4EAD3A0D07B2881DD89CAF8AB06AAB2CCDC041698842469A4592E8D2BD0840BA31 + +Count = 822 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = A370A47CC98F8C4EC91688C6447656845FECB9BC2832AD22F08B0371EF16A169CB22D4A73D82FF86 + +Count = 823 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = BC088329D60587A92B0CBC9D3AD730E1717C82929A4770552B77BD92813596A3DBB55516B1CA3EA9 + +Count = 824 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = 82F3C972603F474B80727BA5DACEC5ACE3ACE6E2608D51168D9D6E6C56E12E10BB363F23E59A45F1 + +Count = 825 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = FE26015666D51AE788688555CADE413FD64221F018E458961712AEB056386D824A1BF77B8DD12F26 + +Count = 826 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = +CT = 183D3D2D5FEBE8963DABC9DAE4F18D45099C7D88F43F2BB40CE537081CDDDFE1E5502805AA180F438A + +Count = 827 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 00 +CT = 5590318D7ADAD24B320567E46902B70ACE16D3035F7F8BFE02EEFD049C9118D340D1573608DAEDBC4D + +Count = 828 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 0001 +CT = B6836E78F9FADFFC76B770FB21283FD361260DD738507DFAD24B4B6D8B84D6FCC1444D923E3A2AA720 + +Count = 829 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102 +CT = CF6B9C3F706E3CD51E8396D625C78C4BAA0A7BCEAFFEEFA7205AFCF367D8827122603049E3B0568FA8 + +Count = 830 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 00010203 +CT = 9F4AB089CEA61CA3D95C58C1B189151E6B043BF7830FA58135FB6371CD8F06FE52BD21CC4EF2AFBAD0 + +Count = 831 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 0001020304 +CT = F306EEF72ECC7F380A54245D174FA5C29F71A342F5804E577B844DF4FB69526032490E83677B7E6597 + +Count = 832 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405 +CT = 8493958A6E129068A0FA9C1F8EA2D8B572896D07D4AFCA411DC38CA6E750457DC0DC2050DB8B78070C + +Count = 833 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 00010203040506 +CT = 0931D92CD32042FDB1CBFCF2A33241A8347E7812C9BEF7948FFE7CF942D06CAF2957C02CB4965A46F7 + +Count = 834 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 0001020304050607 +CT = 4A8158E15CA96C068332F7F31AE23DD90C722BDC29F73A31B829B730CAADD693CCED5D33EA3C98444B + +Count = 835 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708 +CT = 28B6C3BBB074A3AB5DD4FE18BCD9B1117AC5D2BEAC14B2BC39AB03EEA52041055DDBBE487CE74071B6 + +Count = 836 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 00010203040506070809 +CT = FBD9E3C1021FB6694D89F8199739E6067262A50F45D01C6E53FB6833EC035680A00644A53E1758845E + +Count = 837 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A +CT = 274E05A71CC879B8C2EDC484086D2700D88BCDEBD31087245C268A5151C8AE373948CB31DFB12A17B5 + +Count = 838 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B +CT = C1FC767D4DC1D57ADBF5650AB1B6ACF7A1AC61C801501C6D5DFB551E3568A261752B4FED2792F18B72 + +Count = 839 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C +CT = 2AFCD6D129FCB819A8EFE95D332D0F06950C8C12F4A398450B6E45F84AD86E698806B24313F9A0449C + +Count = 840 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C0D +CT = BB322631D99825F110143B161D87B6CBC2B7B558E5D3C78ADDA4819C6736E024D563AA50A2EDC144EF + +Count = 841 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C0D0E +CT = 06DC95589039D5C2A129E823569C15540B270054B6D3AD6105D139EEAC3715083387DD308A9C26E64C + +Count = 842 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C0D0E0F +CT = A94AC0DDF29C6D039B49586EEDABA16081948A03511F44E15ECC5FDBD557342D6308842A24683C587D + +Count = 843 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 57333273F7B80FBE88F0443891AF01EF3783BD952A19659AC13856A9E7124C95951DCFA4D4E71A6EC6 + +Count = 844 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = F3A2FDB8E5DB8BD85CE64B9351C603690DA7D26483A8E9E1F131ACB383665F74BE2630365C84BE65FB + +Count = 845 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = 5CBE12751CD85B9A7F78D3A196DC5E6F222BCE147DC07F68EB8ADB6C58E2B889C54C1D23E0A1157CCD + +Count = 846 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = E931D33F1597AEE5EE6402101581B3CE7C657AC199E123EE34A3524B96DB8715E6C053889A54F64920 + +Count = 847 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = 5AF822944B7A7FB2A58E4914C31A413B1EFE3126EAF82760CC34032BCBCBE0A6818E53D34491A99B40 + +Count = 848 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = D5CFD5BDDADD21500EDC0CB3CB8A861B531822F796ED14743793A98B3D164B4443ADEADE271309FABF + +Count = 849 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 2201CDFF44E52CB4CF67E057AA299FC31310FA8F22DE91685FE5F53D2FCDCEF2FC708796B1649B6BDE + +Count = 850 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = 4BFCB5FE133B0627CEB280F3E83919706A6F1D58DEBBE5AF3938048EAC780C9304B49B8D4A1C1190E9 + +Count = 851 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 3742C930228518219205F6E9F1AAFC88DC00D75836987A9FDCBD9B2D00AA4580E8DF0F0383C8D0A39F + +Count = 852 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = E7FC68EB0AF9842F940564DE6DED4BD955A1182927E274200AFD0CCA591F683B12E416D0F11BE2B66E + +Count = 853 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 9CE38D5BB8F6B098FE54C7BF1C273F7E17198CEBF99BDD2F742CE8A4089B79E6373C9FED5B6BE01B70 + +Count = 854 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 93D7149F4D6649F381B82A590ED1EBA6D7D9088884666562A8AC47E5DC654FB94E52C0773AAFE24A21 + +Count = 855 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = 0C7905B42A6A73C5A060B89D00706C5E241CEAEA0BCD8D168318817BC55E7B0A773B4A628F9E7F52D2 + +Count = 856 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 329BE51A1ED7BD56446D519C0131ABDCE2A3CFCD7C31D37CAED0D51D17A3C63C551EBE824BCE893904 + +Count = 857 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = A231DF8543E1BBA1A7291699A124D2CE6E6182602AF4831C81E3123235F16ED757238D69BE278C9CE6 + +Count = 858 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = DCE182FED93D60A0689EDBA9B493E0CFC76D70F3B275F9324F490C2C4C1EB90488544DF1E54D61680C + +Count = 859 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = +CT = 1F86AE25209C374046EB8ADAE47E0F15CE2BDEF98CF93B9B97EAA0D5D689126A9FE3C5972C9878AF1639 + +Count = 860 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 00 +CT = 8CDE4D55C4EBB3FF076C33539EBA0958B444378346F45916DCCC2253FC56B024FB8AE9501A0C21A8AA3F + +Count = 861 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 0001 +CT = CF1B8731F28C7DBD0A1AD66292DB360145BF25108E4CED95E22861AFD0A2D4D9F34D499E286D324E887A + +Count = 862 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102 +CT = EB6F677A4E3597290CAF6B77F4D0F12C91820B8E77832B8B2D0DF9D8C526B44351D514F2A6932FEA1E6A + +Count = 863 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 00010203 +CT = E0EA33F5AC6B34AA2EC10ABD4A73C497F4E08335F1B0F922B7672D29254B666BAFF5F72510A47016F34C + +Count = 864 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 0001020304 +CT = 62841CE65BB2EF9D2DBA11E54B1E17A8A629B4DED9EDCA82096BFAE660243D0D345E6427F30706B98E4D + +Count = 865 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405 +CT = CF3A8BA31A1084DA83F076F05059AAD7CE73CEA88C4F125E361E99B6A5AEF2E8EF384818F3AD5D26118D + +Count = 866 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 00010203040506 +CT = CBEE0F405DD0E7D059F76D1DE15EAFE1CF8CA25670E59F7F0FC6101E08DBF9E7162FE8466A02ABB14115 + +Count = 867 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 0001020304050607 +CT = 5403A1F61DBCAD6B2BEC374CD949B666F475C505A1D814A4CBF272262AD59EB4D6CFDC6C9825AD1D2245 + +Count = 868 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708 +CT = 686FF250F41AB6A3A88166DAFA53E0EDFDCE601B54A03C50D318D1DF4BA84190698E20334CEB20019642 + +Count = 869 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 00010203040506070809 +CT = 60EA776D6DE85422D84D5B617138F94FAF4086BC7AAF7700D8B0D5DDB94750CEBE41B524A2515BCE1AA3 + +Count = 870 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A +CT = 5326A35B427A77E0BAF0F4A8BF0F4C86861632AC00D9357F7FBDF2692CA610E80FF6C93282621F6A79C3 + +Count = 871 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B +CT = 412C6020B11A88012DF8517B5F57CBB2F0C052246CFE9021979DD8AB70C42A8FA2893B4D2A7CA1A4D297 + +Count = 872 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C +CT = 5FD9F2C4E55F3677795B7A41B5EED7FD10C6E0A5D4CF258313B36FA24494D24C7045BD58B433CC42DB61 + +Count = 873 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C0D +CT = B81593962144CBBFD0FB64A99D7112773FED1F68DB415600A8C7CD19EDA71113D377BF4E5DB1044FF34E + +Count = 874 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C0D0E +CT = 9B69AA217EA468A58D12409020E8DDAF636BDBEF58DD50CAEC71E3B9982763089EF0DB8061581AC7F488 + +Count = 875 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C0D0E0F +CT = C9DEF1A104C5067B7DEDAB341C980110FF98EBBBFCDB446F43E91ED2B39702B87BBE5ABB73DC4EE0302D + +Count = 876 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 42CE3EF0C7A5ADB37A36A614067CA65AA88B77AE4CC8063661D7779B937491265674609E922439792F2B + +Count = 877 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 93764F17CA4213CDDA76CE2255C29F136D02F2EBC70AADFE403E9C266326CEB49366DE337E9DF1447BAD + +Count = 878 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = 20CEC09A70C7F0E2B3B495340DA95F0D93BF70273806697123F2BD09F97001E3548CF4B753CCCDEAD3D4 + +Count = 879 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = E6C7A6DE3644D4FF8C08447B54D4B6B8FBF624041D7873E5ECDEF9058669BE39D85486056BDE8EBF6A14 + +Count = 880 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = 45DBF4E5EF54D694FA1707E9D9B884F39300DCC9039424C761730C74CBBAD2562FDCE11774755A585D2B + +Count = 881 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = 9C5649081A83D73AEB4022984573535CE28252C664C598B4E14F1FD4CA908D000558C6C3584DF9DB613E + +Count = 882 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 99EBAC00545DE97FEE5EBEA869C516B51220D72FAC2FE04F56C381A5C35D300A7364337A1B769DF0F159 + +Count = 883 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = D92A99988B977A26C79EA4F9263923A41C8BD37DD340C4F5CDECD75CA5C757DFD48E4F9FF0D43FDD5D6D + +Count = 884 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = D9599A0C88BF5E0D56299499DD00966F0DE4F7BFA31673A96FBC4BA67AEC816FD334D23972DCB57AB720 + +Count = 885 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = 0F4CCA2B0B8BED7BCC25BD20B10DC2DC299D80F057648F37AF8710136CB8274561DD312E00A1CFC9127F + +Count = 886 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = CC498D7E7F76AAAE7E8AB10E8755BF096CF7F2A87F9B62C562981E5B34542C2204E5265D3C39ABB29091 + +Count = 887 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 2A51C7F797612C15C1D1F119772F69AE88C13FFD95BCB04C2493A7527D300B08A022B9EBC6EA81C82020 + +Count = 888 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = BC6D2AAD04D9DB369DF09A1C6FCA0978DF0C4B68525470A894B21C5DC591BD02499B2FE0B17282DC0F01 + +Count = 889 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 66CFCCFC8F5A52E1C5B633AF2331B4FCD6FF177C4F516D596C4BE6002D7CCF433B65DE2114E059BF31DC + +Count = 890 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = 27A7E0B57F45D1C0977A530F724F52C76C7A5CA9001D0FAF51C075733C0AF2EF8AD6AAEA39579EDBD908 + +Count = 891 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 6853A80F352653E990098520006AA85F1D80FE831104D72330715FC78B3418375638561B8C55E5F56DFE + +Count = 892 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = +CT = 08A2740DC2C3FA64FEBA456EACFE70B9985922F57CB728B471E5CD2AF41904B234C272F6F76F8A9297F629 + +Count = 893 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 00 +CT = 62A05503437F4F4D6DD2517FBD06FE5E4FB4DE12917D421542102AD7A380F99151ADBD3C9FD9D1F8E56D8F + +Count = 894 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 0001 +CT = 9E52F49A2133B58F372CD456237829D6E3F03CD71C01132057C1874268E256ABCDA06FC1F3189674A43CD0 + +Count = 895 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102 +CT = CEDD44353C1CE8EDE2E2057E225A74EA80EA2DAD4BD2E17F6BF468A49E73930D15B51A8AE07EEEE17C0AA0 + +Count = 896 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 00010203 +CT = A1D08348644E5C05234E5134947F6C182CAEA78B51FB314705F97024ED0DCB1B84F1B1F72D4374A0D153F1 + +Count = 897 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 0001020304 +CT = 94CB24AC4957D9D8C28740E94D56F6BF40264111EC3EA9696BA83D567D1F182AF37E5AAF62E9E662C50A9E + +Count = 898 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405 +CT = 451BCB21949FC82BBCE0B7AE16B7D92B37A3C3E6EA597E0894160B12222C91F6732C8331C3ABE30B2BEA15 + +Count = 899 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 00010203040506 +CT = 5BF58730AEF9345AC66EB1801B5F4CEBBD59A1A66CC8F91A017FD0838888F56EFD820F392A285B6F53214E + +Count = 900 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 0001020304050607 +CT = 7DAA5B21CE98E96865EC37EA1BAB1322A41F31A18B201D41C6E4A16CA40746B619ACBB05E2803BAE76072B + +Count = 901 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708 +CT = 86C67F5D4604AB566D169CF658BA02355DA4F8FCD13A7551832E4968E62D061F1436FEF86D1AB8AC5560B3 + +Count = 902 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 00010203040506070809 +CT = D2A4C6BA8D3CBAE6371EAA2DF1689EDDAB8082B034A10B38C4DA8AE9172E6F1AFAA8E42DD6FEA8F0B33972 + +Count = 903 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A +CT = D9AF0EEBE2BDFF7895DE64063325E78FB357470A8D9F13666E77B0C7E20BEF4BB02AA56915C73D99F7E2DE + +Count = 904 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B +CT = 4C685321763EDEF2774D3EBFD05E2C26C1528B5C2DCFE179C22B773438F494E0A6D16AF01049271FEF9DA6 + +Count = 905 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C +CT = AAD3D4BC3E216590A979D559ADD142F5992ECD507040A861B95F81203D1934F554C8673EB7C865AD8AF669 + +Count = 906 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C0D +CT = E93ACD639E18067D60F459ADAFC2870E3DB1560A93B59EF9F8F7AFDC342512871B14EB852841FF97007FC4 + +Count = 907 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C0D0E +CT = F1F6FABBC34DAFACC6BAA943CFB782571F702C02B0CD76FBBA21461C0F844CAEF279F4B9D43C896EC5828E + +Count = 908 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C0D0E0F +CT = F7BC3F3440A14513CC0EE348FD5DE42948D3CA937F63C9EF4FA9ECB3BB40A5A35A067684BD0FF2E84F43A6 + +Count = 909 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C0D0E0F10 +CT = D4537583278AC690D196ECCEC8E93486F18FCEF496EA1FA5CF88F627F021D35D702F58E11D45084B03A6B4 + +Count = 910 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = E8CEA54DAC2E004E5819A3BBA0FB6242B81D4B8F7ADB149F3F3EC1C92C886B66F748A89187A665F1BE2E6C + +Count = 911 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = 0CA009A750296F87606DC314623BFA4E59155EE107D8E5AB6A563AE74E381A2171A154F7390D678667E0FC + +Count = 912 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = A115DD60D399184A85F975688C601D684FF5461B1A468F8EA47980EA6B58DD7AC846F4B8B190A4BCCE8EEB + +Count = 913 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = C490380F1DF1D24B1AE173F202AA1FD1805DB4F2AC19C76EE542FCBF40CE171EBD709EFE7A8AEBE090D58C + +Count = 914 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = C1E4F89A07325EF0543909F0F588CCA76981856D42209680A6A8E327B4D2D669122FAE7E4BBD908946FBDE + +Count = 915 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 4289BFD9FF4A098E91F79F8F1BF1A47A6D1E5AE4835E4EB0D951268A4DF7862CF432DEAF25FD33204D3274 + +Count = 916 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = 0B7211E464895F80C05FC18F90CAB23B2AA9B3E0B50353A8254A0F6A2B6CA1111141FDC5EEAFA6B71D770E + +Count = 917 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 3666B8B63169F8E180F1716AA71C651FC7620654C16935ED7B08FD429A28A9C0B99985DD384488374C1997 + +Count = 918 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = 0E40D3ADAC4523C93CC1E8CEB412F61A07E17089E9017AECDA289B3CA8084B77F3BA6412FD3BDF4E50FF2B + +Count = 919 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 31CE196F6F8E9F4522BC274C2AFC2BBCDDEC1A3DAFB962D5394A6A093F923C2B9D7A73D4E67E40D12C6FDD + +Count = 920 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = E38F5CB7F9DED5496506F87AA770D2C0FD79A982ED3A7E4AD92E14617F6C0E00A0B0D15FB3BA1FB2F7AA46 + +Count = 921 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = B85EA81EEE42E1D84646CC798F00ABE79604BFC84966333962566309940478CEF80CD33A62027FF0DF2C68 + +Count = 922 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 5B21F7448156546AF0D2222357C7A2F6371EF15E31BA2CA0AD5071783304665DF3257C7F25D98976D0131A + +Count = 923 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = 51FF5FE133617233FEA42101E732FC6DEC2CEB983C0E624B500E3CE5E94EBCC9B6F7AED1D8B943650398F7 + +Count = 924 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 101FADA14391AB8D0FC56B47014C1D08E80295FA30FF6701A241E8C09881C4D2CF0C840F81F86885A3B450 + +Count = 925 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = +CT = FE36809403CB90A1E8C1D534E0C434501DAA6C2521F234033E6AF84C548230B7B6B613FECBB8E448FA679278 + +Count = 926 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 00 +CT = C5A90DE55872AED1219A29D35BD740682282CF0EFAD9A91FAF29268129A9B42C183125E826D93FD199AE6C9A + +Count = 927 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 0001 +CT = 37EB2BC246F3098687CAE585D3D68EF0847D26827D2EFBCBBA192C2EAB26A1E4329FA6B16D5B83D41B78A8B6 + +Count = 928 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102 +CT = B5D24A5CF64AA7C4C9502AC7889176FC96FE9479CBAD69996B7E97F4D8E5AC70F778EE8BECF733A782FF64E1 + +Count = 929 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 00010203 +CT = 382268E402A3722A1C219DF4F0A87830943FDFC16562B4895CBC41606443F52712F7D7028243177296B3A53E + +Count = 930 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 0001020304 +CT = 2EF37C693C122EDA7F9DB400A195AC1F3DEF56A414EB0706591937303AB62B17F86FDC6035B2229E786E645C + +Count = 931 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405 +CT = 605307DED3DA28457A6D021D45AA3B5BD5A1BA70C333E0169541C4202E3517217D4DFEF277E8285AE0671942 + +Count = 932 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 00010203040506 +CT = 5BF982E1928B732E738A20C4BCAA17521F2A9753D58DD37D49E0BE9FAB3CBC81B63AA34B2879725C7B9AAB83 + +Count = 933 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 0001020304050607 +CT = D03D24539621E6519C79E8E1AABE13B06F1964B937CD8DA4432E87226BE89CC2537FCE600DEA04C811F7FD95 + +Count = 934 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708 +CT = 4A935E79BFD6919DA3C18D57B7C3AD30E9B5182780BE6D0F0E490E530B9518F1A789EFB1AF7C6E2CA4B1B0C8 + +Count = 935 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 00010203040506070809 +CT = 8BE2B8FD387673539A22B0777BD69AB2309C9FBF3B4FB50C770001371E4F45F08D6ACECDD058CBA7235B556E + +Count = 936 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A +CT = 7C32F2899723D3D25C42E06E75456F2C83EAD952B262178B49300089BE1F81910508AF865F2B07A27D856E57 + +Count = 937 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B +CT = 564E50F3CB3958DCD2757D1398540C8B41160B44C0554706E37CC28EC0C15409F3E4FB090FC7A467144D4CAA + +Count = 938 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C +CT = B39424B99426DAE367EBF413D5D60C832FADA6608D9C3182EAB8084BAA33496FAF4612C3D8B705A0774EA89D + +Count = 939 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C0D +CT = BE52103EDCE3A0E4CF228900071F9C6E88AE5E36C7344CC47954FCD2CAC0F32B4F6FB0D82298687E190478CD + +Count = 940 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C0D0E +CT = 5997D6AB52B3833002F1EEC129B2C8FA7AC1C5B81FE97F3241114C8D2A481E15A2F53FABA70BECDC5ED6365A + +Count = 941 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C0D0E0F +CT = DF608952FC0C41163CD8156C64CDE91D8C160048AC6A777FA052BB5D4991A4540A6829E33A6402D2464AF48B + +Count = 942 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 779A4C48AAF3D6D2A5C93AD506D761663ADD642694FFA135ECDEAD9A426682C7A1AB9CD2518B037C038260A7 + +Count = 943 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 92CF3A3D352971FD50642D438AF24C7EAD92EDEBC12E412B38B744DAC6F0BFB4C6E54C0F8451A83AFD79D790 + +Count = 944 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = B8D64C45B003F8B8C029CE5D454B59426E5C1E4122E2BE12A092B139284DAE4942F2F6629A15858A4F5801CB + +Count = 945 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = B2BB3AEB31CA0EB7ADB64168DFFFDBF52DA2929F443298A0AF380C0059725A27B52268C337EE8767605DE207 + +Count = 946 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = 04177B3270F941A0601BA55A95A0351281CDA34081A3391A9386EB90FAD153F8168C05C8FD43EC5C3C5F5C99 + +Count = 947 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = 890038E457E846F1C4715952D83C64E4784BE62852954DF1EE0885CB71664CEF944FC58302121E21AFBC604C + +Count = 948 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 508DBBD891FF56FA0D697D37AE25D452885F2C20DDFA9DCCAADD4CFB8ACC862E027A38CB47AA307CC8DE52D6 + +Count = 949 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = ECBD0EFD9AE886E37CED7338138E2CCC8372C2DC057F7C926CB60B60AA38D17C8CCA76CB87A799F054B4A343 + +Count = 950 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = A31FAF507C27DAD0865F79D8F0BEA714CB10E530152E81C78E9BAA69170090ADB17DE76B048D2AAE4563473F + +Count = 951 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = 31BDEF4AE4E6BFE2334F0543B4C22AE68264C575BD5E2906CFA1A157D5EAEEB7474A5427B843313303BA80F5 + +Count = 952 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = DA7EE32E0C65E8EC37AD5E84DFEB038E1E92E1F962F3D5F7748D925169F04F41B77FE6BFC4EF312F989FA506 + +Count = 953 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = D89F19991EACFEC917BA0A2279356114BEFE1755EC1B088BA64066AF3B20DD0F25A76C90B78CCBEC50F9B0FF + +Count = 954 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = 3C016F4921C3C154F4164C2531AB29AA12CCDF9EB3E2A066CEE0F221AF65F426E947AF2A26A0359B6743AB5E + +Count = 955 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = D3244004F6ECC317F6CF602BD61904B15CF1FCC09C200936C50065788706D8EFAF8F12ED26ED1D212141833C + +Count = 956 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = 5308273B7EDD1DC6A54C1B72B19EEEA30980B9BAE61ED1069AA5869B27F2E2B5E571EEF09CACC0F6A3BD128C + +Count = 957 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 8648080FE5BB17EEBC10F04CE8F425A6BE652610E2C0CA5B7B3DE3FBDD29835DC5A60D0D130FDA04B3B1829D + +Count = 958 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = +CT = D459C826D2CDCAB8F5BD685F81038EC2B477F3C8EBA6070D6BDDD7780062387D7404C638D5446FA94DC437539A + +Count = 959 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 00 +CT = 61A5E27D24F3DF68CA63C311B1211AAA43E6B29972ABBECF069BAD20709BBE6C06A1CC843DD053DF744AE121B7 + +Count = 960 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 0001 +CT = 9048B2000C50B278ACE21B3F06A5D88901B09EE955833F37BFAC594CEFA01986603E7344039655768A0CEE581D + +Count = 961 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102 +CT = 7CC61F11599339FD4439D5F13C28906AEA089C020BD16DA82AA5BD3E62B28DDD41456AE566B1CBE64971F8EE22 + +Count = 962 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 00010203 +CT = B07AD2B9CF30AC4D5FE4B8B3A0FCA59C960B75A81DFA96AE0FC07733190A424E15FCFFCB97C839BDCD7777879C + +Count = 963 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 0001020304 +CT = 1B59F8A68F192413E6BB5CD7612856E11A2D5980311A140D33F82AE71909DE7B79FFA66CC7FDADF8B7D20D9D67 + +Count = 964 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405 +CT = 33CA2AFCF941DD9C43C01E1686DC31127D95231A36011D81F21AC460BCF7992C218B92983B3C0D8F4F498546A6 + +Count = 965 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 00010203040506 +CT = 31E2AFB69583E88B8DC067916FA1B79CF22D7646D701CAFFC7AF91552A50550B110939A5DC443BA3B549B3D133 + +Count = 966 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 0001020304050607 +CT = 00DE09FDC9E828968FFA1A0D959008D26513A447A3EE5ECB13EFDE7EBE61FDD45B58CCDE954EBDA9DEB903404F + +Count = 967 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708 +CT = E099C23E462C176FC47FF291C6EE8297E1C9643F071B7A092D78C031FA0AB9F52799AF3E6FFDE7DAC068E476CF + +Count = 968 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 00010203040506070809 +CT = 729D93616969A5547CA61D6584339449DF4603BC6C1E297A10C159F0A51065E635535D01A732D5C1AFBC8D37F5 + +Count = 969 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A +CT = 8302AC34B179D9D7CE42EFBE26AB1F5086FE7695E5592B2A287F264F6BAF219A5494C191358A40CA1E5BAE13F8 + +Count = 970 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B +CT = 08A42703AFA618C06AAEF9ABDF45805549CDA63CC471BCD2257C1E7E2BF1B6B991D6EC09C1332F1C5FBCEBF6B2 + +Count = 971 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C +CT = 0BC847CDFFE7C464FE403DAB6BEA3F9FC5746108DF8FA4A6E7D2BCC84FCE3992A0F637699271299036962C65C9 + +Count = 972 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C0D +CT = 9BDEFE4C13117D686A02A470F715FDE2141B773BA5BB07492D29DDA6161F13530204A67D29921A3D2594E6CE2F + +Count = 973 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C0D0E +CT = 22A304E8D2649A0623FF90DC01D4180D7A43CE5F390EF576A778EC8EFEA82DAFA1C8E902D004A5CD86E2212F58 + +Count = 974 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C0D0E0F +CT = 9FE5A173199F1768613CBA6D55471BEA3B3F58E10620017FD1C1D973BEE2A2A0DD9E4EA403EE3F817BF852BB6A + +Count = 975 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C0D0E0F10 +CT = D1ACF937D3C9BBBC80ECF45E18397019195A8D3058D5B9F33A3062A79C7F986C5042F30192180C8F979ECE7105 + +Count = 976 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = ACC9FB613E8866F05F27E3C04BA12C3C7C763735C55A1D67AB35FBF33C24DF60CB534B5C1FA0585C17D3F9C957 + +Count = 977 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = 6C8EF1F20FEEF0490DD0F6CCB91B2C36EE180A398345F68EBB7B2E47A1A36128F67F3BFBB94F3661F1B6965110 + +Count = 978 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 2175FCAB2F43068EBC60A78241AC223AEFE89B604A400949F14D6BDD946390AD40E6030094ECBB1D7C1FC2C8D5 + +Count = 979 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = 906C721296F0C62C5AA21D025A9C10264C13876B3AFBA6FBD4A11E255971E013D68B25D9E200273892E8163327 + +Count = 980 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = F2F6E9B1A1E0617DAA2A806456131CDC9D7C86E5E967EE421F4F3362864C38C7A4EC9E592AE4C69C36E95BE6C7 + +Count = 981 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 4380A3F24E3346A2E497F37CCBA59719BD817DAB160EC977888ED7DE608B26AA4F9D0CE3301ADD55C9EBB9000A + +Count = 982 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = 91E9041DE3391C811936FF943869273334C2E39CA3070DECAF65F608417B2955B8B4A87A6B580EAF5E8D3E3141 + +Count = 983 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = ECF9D5B8CCBCC73B3688CFB9C4092C9D726B8DF8E9C5751190C85D942B0FA800762A06377F37A61BFBB497E3E7 + +Count = 984 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = 348F4EDA755893A25E3C9930647C83E0B371FE594DF789A2170C122DA441F3D2E822F4B516EA6A584FFA5EBAE4 + +Count = 985 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = DB011C264A58A3D3F6253923D26FA23F202E4A6742127F72E3A1FEEAB27A441A718B8945DE402350EFAD2B9600 + +Count = 986 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 87494CDD167876EBB2F6774AA57DA98A3B0EAC20A0299902F248FE6B559C0BB800CD6230632C2BB17492FD6BDC + +Count = 987 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = C19434AF56858861B1C29E0102AA7A26E77F460E725301809534357F27EE3683B484E882FA295550A67A626A65 + +Count = 988 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 1DE88F2D3A8E2305B80D396228B219CADADA1F65CBDEE50441664FC9186B7EB10FA4A3E136B4E1C2002DDEE086 + +Count = 989 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = E2664F8CD02FE6EAFA937A5104DE863C80E8ACD1B75E18B61196403D8E4C989B7A047A4CDCB56D8B3C1CD05147 + +Count = 990 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 447A73D6F93605738E1C167426E512649F16429D1F78459436A84173C5F2F745B4926C7E6E9872EA6306BB69B5 + +Count = 991 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = +CT = 8E994A9EB08E976429759873943E6B9BE852C33F9471E1E2C253CCD91876476E9FC52057170C71F784DF1E3F03E0 + +Count = 992 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 00 +CT = 38A80BD1841D2C460F393847AABBF010F57704CED1E6D9964940EB31BA7433663CECBC504B917DA4DC884166C283 + +Count = 993 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 0001 +CT = DC0414811711091D0973244600FB31291AEF3858F2DD12DDA866830AD1BAD06EE67855D41F91A022A58E57CEAE95 + +Count = 994 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102 +CT = 41BB49EF05A8A05525D2B1A01BA40E52AF93EF3BBFC819FC60DA086C8CC8D05E9DCA6B32F4C1823A3809968C9A65 + +Count = 995 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 00010203 +CT = 1472A1A7C9D64D38E2C7E82B49250B18500374C7A9D7AFD704369ADBEA95819324C92EE7853B885793CFE50E246F + +Count = 996 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 0001020304 +CT = 6C59B55E615096E4A9652B22C6629EE70C4869F0C0D85B5EA3ADFA1A0BCB99B5E7E92B479ACA93035FC89BCEE566 + +Count = 997 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405 +CT = 1D91D35A52782B590658B81F27C50FAAEB28840479B150C312C526C9EEF96525F191148669CCC8752EBFDD99425B + +Count = 998 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 00010203040506 +CT = 36E20C9206F142B2A8B2F0CB8C688683B2683D1B8AE5F85457EAF2E8A7A3DAF7DA7C34CBAEF3C2E5754AB3A4E1DC + +Count = 999 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 0001020304050607 +CT = 5DD0B71B40E19C5B99D7F414308C0C5833C926043592084E9060DC8FCD476743507E66328CD08A13303AC17192C4 + +Count = 1000 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708 +CT = C6C00123E72A60AE1098BF6933582CB0312B0F9D9E126DC964E5277745F7434E21F36ECA6147BD3EF6E7FBBCCA94 + +Count = 1001 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 00010203040506070809 +CT = B179B98E2636FC31124386D2D46E54018CE59E5B6B1466F25CF2173B8BF67948EFECAAFB0901BA282D162F5C5405 + +Count = 1002 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A +CT = 367D8BE55E8C0780F95577DFAE2437828240F0B344A22241DE2636E45D959E7EDB19A2AEF5439D5C45002A837A66 + +Count = 1003 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B +CT = 3FE4D221F9C37978AC8764AB1115C3044E557E75C63106203D98187C96479911959332E6EEECD14D2F559FCA1607 + +Count = 1004 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C +CT = D94CED8619D3EF5B649BCD84A4298B400130185A71D26C94F5BA9C75664722E230C9430C73EB458FCCA1EA66866F + +Count = 1005 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C0D +CT = 524AC9D4560658DD606AF20C9B5D80B4C35E150D0BC8FB86F9CAD82408A83CE32550531901F51A05C6A6DB99C7A2 + +Count = 1006 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C0D0E +CT = E073C45FE1C182394C06851EED8F73FB7471E7A1744118B57E9D22A03E5FE608D60BF87BB23437501E33F1819B38 + +Count = 1007 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C0D0E0F +CT = EF106C2E1A99C684E7B787E5ABE5150C9845D8C6BC7B2B8C7DBFB8844DB2AF7E5C193CAF5DD7AC7BFD432332FD0D + +Count = 1008 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 3A58CC4D78B5C8F52E0D070D6E6E205FE2834521983BEF90DA89F0EA80B338CA4A6313F762F0554CACF7A9786794 + +Count = 1009 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = B584B41D2164971979E6ED2230BC4434A2C0FDF7233D2D401FBE015478B7AA931DFCC46DB17919C1CC8257E42A8E + +Count = 1010 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = E527E836D1D10DBFDA0E725775B7874CD71BC850BE1DE7F25DCDD12B349B13563A463D28D4EA2E90C9818DB9F2B9 + +Count = 1011 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 81251D3AF80CCFABD024527840099C05B053048C46B1CE485B3AF8EC2F40B8B82DC20742D53E28D80D524C8E3018 + +Count = 1012 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = 5B9642D89E7BE5A52A6D130F91968C01F4BC16FCCDAD5734978F68795A12BC7D7C84E365D471F581BFF2957D69A7 + +Count = 1013 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = 7492CCDC4397299991DABD6A3F15731883BCBA473971295D11BDAFA07D135B96107D922A4E71DC14A2E796BE67F1 + +Count = 1014 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = F93C29056AA5B1F4D5B2A1E32CCCAB9D83C67B9823595E2861066B0203B204651B7E951ACB2D2BABE8DD97E55B47 + +Count = 1015 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = 893061B9611F71FA9DF0E9BC893635F6987952D9538E196B6200249290D0988736DB4C24C999F733468098D33E42 + +Count = 1016 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 1817887374B611ECAF30BE20E6B0CAA48EEE11CE07BA5E5DE806F65FFC63D15D6AD561E72A7ECF56030E9CB582DC + +Count = 1017 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = A621C52D3735AD5BEA497B9A7D8563EB9A032D96FCD851E770C93B035E0129756D2F02403661997BD9F48380467A + +Count = 1018 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 3D544DBF7F5D767102D2063E187B57F5092D4BADB61D04B8515CE748EE5409EB79D45818B12D542DC800286D376C + +Count = 1019 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 378CB93BE70D77161066CC0472EF7318BFA35F85D6AB86AB19AA9718A465D161AE57BD73178245E755F28EE33F11 + +Count = 1020 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = D2B058212E1BFD6543FDA7A75720F173A2B64B7FFDB9EDE3AA9DF31241C797A703B873DDBB0018D482681FB887F8 + +Count = 1021 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 835D2B7D717027AFC224669196FE7C8B812217017A64415EF617372FDE6F037E34DC96C5A722D44B06369B738EEC + +Count = 1022 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = DE1BEC74E1CB7EBCE87F717A9D255B111D44F83F33C2D0E7EE1CE1F4CBC5E293DD68FF47D8C5110D58CC90212386 + +Count = 1023 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 8B427E508FB8673159F7575D130B2B82C573F4DA761DE2F1C8562D1E78E099D5FEB64F1435FDCB300526E88179C6 + +Count = 1024 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = +CT = 65CCA173C045AB2535A41C50647B466583AE342BB8364D6C99CDBE4B4B747CF50D9240454E426A6E67A868E33FE614 + +Count = 1025 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 00 +CT = 3220BC1EE520A6C475D8C62495DC03123F79A806428BD107AC865755D13F151D1F94BB5CCFBEFDCD54C23F5F63C23A + +Count = 1026 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 0001 +CT = 99928D89012B30256A6087FCEE7F2177D0CB36455ADB3185F459BAB8F4758CF90CC4BEBEE20BD1C7F18214C99DCC10 + +Count = 1027 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102 +CT = 2388E8F93DA6372227077C73955E6FDF184F65B721480463CD0D91BCED9A63ABE1F5E88F09890C352E6236BED655A9 + +Count = 1028 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 00010203 +CT = E21DC0F95E94E001A24932FDC93E89CFBD1E67247F0DA43E5CF831822B3E34BAB60C2463B2AEF2E284DCDE563AD4BD + +Count = 1029 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 0001020304 +CT = D2910E5A2F35011FCA31EE6A615C658C78E6C66377ED8FBFF735DF778BFDEE91AE485F883175CC0E8B9245D97B065A + +Count = 1030 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405 +CT = C7BECC1A07ED276B2E87320D4942EC9B9F582C839DE23844D94B71C1B54050154C3E035485A5930CD854F83E4F2DFE + +Count = 1031 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 00010203040506 +CT = C35F6C2ADF7268DE666CFFBA99262A047E051A12714CA8683FEE77AAD1C6DE2F9A8BCF132F362BDEBDE2550A7FA59A + +Count = 1032 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 0001020304050607 +CT = 0F249F500DE2E406FD53752CE7CBD3A5DFCC676ED9A5BD532BE20AA66744B4A9A495DAB814882BC9EA00F5E056FFC7 + +Count = 1033 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708 +CT = 811D5D4029A9F4EE818AC51FBFE014EF70C136B78153A08B380448A4B296B26B954F498CE47E618DD0E6653F8C7BDF + +Count = 1034 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 00010203040506070809 +CT = B6CB7FD726E7A03268F9160E4FAF2254D0E187D3CB244776A2F7CE9DA52771BDB0BE8A3B67E4A5CF1CE6AA187A6BD1 + +Count = 1035 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A +CT = 3BF05999E87D72414FDF6D3912D5BF5AA1AEE1D5BA9DE3E8E19A171B8E4CCB8776FE6C263288B9D8A56460E44FC2CC + +Count = 1036 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B +CT = 009EA1BC50220120087A6C1CD3F8EA200CDB6B15561E43F39DD117FF313C20E877CF521A66D7A1EACE8944CFB90BCD + +Count = 1037 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C +CT = BA08CF6CBC1F30FD53CCDAC3320DA3327BB791B743A72F14E20A806BCA5A407EF86D755954BE0378A164234AFF26E1 + +Count = 1038 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C0D +CT = 6D58A28231AAF14E5FBAD9DFD37B60059F2F95A2C98E873B6429E29C3228E20CFE77558609982091E4F1CB69208880 + +Count = 1039 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C0D0E +CT = 4AAF25E0F2691A95C09DB32A832B2F33F07A2DBD740BF9AE2E921CF9D9D500A63E490FB04F63DC8BF64CFB2620DC8C + +Count = 1040 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C0D0E0F +CT = A2C73D79F5398D7069279D5C9886A65284AC160458FDF6AAB574F084DD39607E2305D80AA57FE301960F4AB573F750 + +Count = 1041 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C0D0E0F10 +CT = DDBEAE5FAF8E10CA5ACDCA36226EDE8C0BD096149C427AB107644F13D30C5AD6F4463B2F13394FE9E7F2812D139321 + +Count = 1042 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = FFC9D501881484346DDACF00B6163C2F7B505C54BA731F7F62EA6B80076DE5C0A82B646508ADE52CED708172C4409D + +Count = 1043 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = 45743E0AB03647A35B36D57881422F5B21185A4E357714F8349CF2539107BA2C7EB264A3B11FBAE866FEC4A728EE37 + +Count = 1044 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = F4E563EC13A6E7ADC5574D2021949D5A81876FA54FA206A841883742EDEEA994E7F03DD43A3FE5EA191C34D8A0CB09 + +Count = 1045 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = 3CE1EABD4FD3DA419407BBA542BF482E3C5B5E0779857ADDA056A6685A2EBEE9A008EA5F530B304C7EA67B6F7AED97 + +Count = 1046 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = 1DA494A6FA6D2D9FDFA4ADEEFE25DCAEF055C66D6414F0E29CA05E8F900EC2CC453669FDE897154AFD2B8A7AD4537A + +Count = 1047 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 14D99D277CCB54B8C05083325FA10E6F83CE185A24F725395DD912C60E70FF811325E8C616F88B9155D0FF33822DC9 + +Count = 1048 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = 0E32CE151B1400D4739E024C9214547CC7E4FE565ED3497A0B22DFC9CAE5A3F927845DE66729A818A50DCC385532EE + +Count = 1049 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 0CD7B685E00F5AADC75B47B82FDBFF0274012BBD24CC1DB394F578A18C0211F5A8A9DEDA7D3451233EACCBFC020875 + +Count = 1050 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = 756FBB9255CF78B9BEDE42B2F1EA0A6681AA96DDDCC0B9E0CF92A51BA74087EED0411E8820272CD66580E8869A07DF + +Count = 1051 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = CF4E96CE179E9BDC2A127D0667D67430E9B6E9B9B5469D837ED4751BBD623BBEF6633C98C218F988A4EF172A0EE39F + +Count = 1052 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 844AB703158FC1C928AE4D4AD75AFE754C7AA1933B3A40D5DA21ADE93EB77D9A40EA116C8F7FD8284FD01585769832 + +Count = 1053 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = 33C91E336BF8724F274B50F6AE48ECD8590594C4051E6A3F0DBA3A2DB99C94597181CE89C29CCF21227267D25B5C3A + +Count = 1054 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = BD4A1E9740A1A40D8862462920F80E8BA0B2D90099684A4B11AC99C1BA889DD4A1E0FA97602495371C0FFF625DE06C + +Count = 1055 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = E4922055952816D825BA9E5DA85F5AE28E72F36CE9090ECE2A7DC0E7BE62CD36A53D64B0A6375A7FB05D174EF4053C + +Count = 1056 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = CDEC5DBED829C1526002B9FAFD07CD38EA109CA552ED759FDDD4B2926890190646CFDDF71F4DDB44DE748D1A930739 + +Count = 1057 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = +CT = BD14F783056788BF8EE192F2A1A3ABC055F33792C0A581455CF9BDEE7D8324BC1C58387E91F15AFE31C506FB6FFFE25E + +Count = 1058 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 00 +CT = 80019A7582B0CD4F739DAEE7D2CF797F0E671FACF30E87B2A92E1916E8F60D43F0C722B22F1D39DF831FF941AB650E8E + +Count = 1059 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 0001 +CT = 26468F73B9E6C1888C6FC5799BEAC0F82AAA3E69EC4FFAC3FF5AD9E884D5AF5BC32B45BEE76AE1BB8A5ACEB67DB56551 + +Count = 1060 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102 +CT = 1C1F5BF152910EC036015F12C386718CEBE221C0935F594281E410E6417C0D4C2DF930E9D95758722664666791402033 + +Count = 1061 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 00010203 +CT = 4CDF2E8D07C9934746474BAE5140FCFC507281D238826A2BAFA0907A69C8B3696E6D664296562254834D93D822826B1A + +Count = 1062 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 0001020304 +CT = 59C341B359F76A83EE3AE52E4F40C0AC7DC5B389CB24E06BDB79F42AB84793FB84F299E7206703C0C1C2A7B2713F0F30 + +Count = 1063 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405 +CT = 0B71ADF8419F29A80AA585FE6968E0936FBDE9E46AFAD64921CA4BE95DB1306E600EC02497EDCADFD6E77D133FC20C66 + +Count = 1064 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 00010203040506 +CT = 9D913ED6324CB9AF2FDBF73ED020903809C4D16F5B4A237AEF5EE33531F37B40C440103E350BC7DBA51AA377A164359F + +Count = 1065 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 0001020304050607 +CT = 63E019E2BC65A730645DDB65086A6C6DD29DE0C6909BDCD5C49BBE6014C939A3FB720C784BEACE8ECD78A3E0FB65A298 + +Count = 1066 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708 +CT = 5927FDB0A1759F28F0CE1D3EE4BAE0E14B8A86A97D9F2D4B6C2792614507E1E26ED4274F561852562563EA0137238F78 + +Count = 1067 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 00010203040506070809 +CT = 38DBBD5BD9821CA9454F28C375D88798D4AE0267B2823D9EBE817454B08A43AFC64E92BA29319D5D648137199A8FB723 + +Count = 1068 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A +CT = D0ACEB19995C4A9AA98AACE39A773EDCEFC213F847C92323AFEB9903FD937DEB9E7D97FB98076D4C746EC6052061B885 + +Count = 1069 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B +CT = 3AE5DAD426FC419B99E198E8AA6590176353908C68A3D20E4BCE7079A34B7E36C4B602EBD1711E8824C2F672ABA96015 + +Count = 1070 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C +CT = FECF987B1DAD9A693234F346EC2695CA3E279A41CE2287751583C2A02CF10145729A0E4C5DFBFBAD7C321B206082C25A + +Count = 1071 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C0D +CT = B958392575871E0E5227BE112843835500C06FAB30F59298B45F376FCE72C6501F0C06C66D79F763DB027651E5568D52 + +Count = 1072 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C0D0E +CT = E7B4596612906D4EAD667AEA1D15EB27B0C2EAA79197256D1DD674E305C83271FE387F5BB47CB2730CFA9ECBF33B2196 + +Count = 1073 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C0D0E0F +CT = DA963AEE2A51656B08EDEAF54F58E7300891FA9B9866B0A45E37D30F1DA40E7F44D0D8333F32629620BC3006A4272C28 + +Count = 1074 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 8C70C9884FB915E1DA6AD8CA1A5876F8E2E71FFAEFB54043DFCEF43E001BC50A3D7FB78637A90A297D57DC720FD09C67 + +Count = 1075 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = F181D3D0725F6A125D0D00471EF2431371F010E4C5184B493D51336B784B1FFA66A186A64E45A0F84ABF42433FB22F7D + +Count = 1076 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = DB44720526D9D37F55922EE2BE385717B1E891EDA60F742249B63B6E35D29D8777E6F9D119200F1598FFED58CA119720 + +Count = 1077 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 9224ADE9C4AB82CC63840D14589BDC2D01BCB33FD1304F70FD1D3ED23987CCEC771C0F1AF26A384A6992E8DC9EC6AD1A + +Count = 1078 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = 3AB8C3E00953A352226F9501F1AAB74D22F8612B5D3019F61D9779F60AC343CAF2A9C64F1B6268FE301C0436987FBCEF + +Count = 1079 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = D9176344EBAAD298B88F9296E9C9966681C44224ABCE57A50A3AA081A9D8DE23239C20EFE55B35A8452E46CC24611D06 + +Count = 1080 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = D5B9566076DF4A4EAEFF46FF2B5D12CCD4DDE2E2B30CB8C3EB4E667207101A4B02C63D5E9E35A04140F75AD42BC5493E + +Count = 1081 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = C2A88C46E190CA4E746279ECA58E57E6822FA82D737FFF9763A5D3369B076E61C86E90B15E0E0C9904FEC1D0184A80A9 + +Count = 1082 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 8ED630E48204F2779F658090D08C050ECD2470EA3B99EA4F190E93A1DD6DE1547027611BC6E8D7E7CE1858F82B9C716F + +Count = 1083 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = 935A04EDB480C16B758907E5164FB038D6C58AC1A0F38E6631F2BDC861C8F912932E9FC9800FCCB5453FF5E24EA45AA5 + +Count = 1084 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = F76BCA9BEF86D34132C12B481CC4BB21D0607EF11AA5062DECC555341F77AAA35A756CBFF2E234E111B4384F3634D12D + +Count = 1085 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 4144F934DE79326409CA117E94E759A2310BDAFB06C23F88A08105EA98C834A55F3BAA8BA9D4B4A7BC41B10369470907 + +Count = 1086 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = 11CB6DE4F97F4973865B3FB7AC31A9D0FC8293AB368298C3A04A6CA9D9052A1240F73A426FD04638FD300BBF2DB0EAF6 + +Count = 1087 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 5DF040290D2CE9AE2D10FF377D317C04A1FCA5B51214A124AFABFEC4AB703B429B00607AB70F7B766813CFEA8E29A9ED + +Count = 1088 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = 7891A6A79BA6B68169E8969FEE7F857E8645582D22600F372B2F649FAF46126ABF0118D60B7A2A2C362C5B317A51EEE7 + +Count = 1089 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 033BD399095BAE09294C88AA8FDE508229A3AF401B95F8A27039DC03378BA740615D1AF2F4393868385E7CB175B2E665 + diff --git a/romulus/Implementations/crypto_aead/romulusm1/armcortexm/api.h b/romulus/Implementations/crypto_aead/romulusm1/armcortexm/api.h new file mode 100644 index 0000000..a4aa567 --- /dev/null +++ b/romulus/Implementations/crypto_aead/romulusm1/armcortexm/api.h @@ -0,0 +1,5 @@ +#define CRYPTO_KEYBYTES 16 +#define CRYPTO_NSECBYTES 0 +#define CRYPTO_NPUBBYTES 16 +#define CRYPTO_ABYTES 16 +#define CRYPTO_NOOVERLAP 1 diff --git a/romulus/Implementations/crypto_aead/romulusm1/armcortexm/crypto_aead.h b/romulus/Implementations/crypto_aead/romulusm1/armcortexm/crypto_aead.h new file mode 100644 index 0000000..6f4ee42 --- /dev/null +++ b/romulus/Implementations/crypto_aead/romulusm1/armcortexm/crypto_aead.h @@ -0,0 +1,13 @@ +//API required by the NIST for the LWC competition +int crypto_aead_encrypt(unsigned char *c, unsigned long long *clen, + const unsigned char *m, unsigned long long mlen, + const unsigned char *ad, unsigned long long adlen, + const unsigned char *nsec, const unsigned char *npub, + const unsigned char *k); + +//API required by the NIST for the LWC competition +int crypto_aead_decrypt(unsigned char *m, unsigned long long *outputmlen, + unsigned char *nsec, + const unsigned char *c, unsigned long long clen, + const unsigned char *ad, unsigned long long adlen, + const unsigned char *npub, const unsigned char *k); diff --git a/romulus/Implementations/crypto_aead/romulusm1/armcortexm/encrypt.c b/romulus/Implementations/crypto_aead/romulusm1/armcortexm/encrypt.c new file mode 100644 index 0000000..ade5211 --- /dev/null +++ b/romulus/Implementations/crypto_aead/romulusm1/armcortexm/encrypt.c @@ -0,0 +1,383 @@ +#include "skinny128.h" +#include "romulus.h" +#include + +u8 final_ad_domain (unsigned long long adlen, unsigned long long mlen) { + u8 domain = 0; + u32 leftover; + //Determine which domain bits we need based on the length of the ad + if (adlen == 0) { + domain ^= 0x02; // No message, so only 1 block with padding + } else { + leftover = (u32)(adlen % (2 * BLOCKBYTES)); + if (leftover == 0) { // Even or odd ad length? + domain ^= 0x08; // Even with a full double block at the end + } else if (leftover < BLOCKBYTES) { + domain ^= 0x02; // Odd with a partial single block at the end + } else if (leftover > BLOCKBYTES) { + domain ^= 0x0A; // Even with a partial double block at the end + } + } + //Determine which domain bits we need based on the length of the message + if (mlen == 0) { + domain ^= 0x01; // No message, so only 1 block with padding + } else { + leftover = (u32)(mlen % (2 * BLOCKBYTES)); + if (leftover == 0) { // Even or odd message length? + domain ^= 0x04; // Even with a full double block at the end + } else if (leftover < BLOCKBYTES) { + domain ^= 0x01; // Odd with a partial single block at the end + } else if (leftover > BLOCKBYTES) { + domain ^= 0x05; // Even with a partial double block at the end + } + } + return domain; +} + +//Encryption and authentication using Romulus-N1 +int crypto_aead_encrypt + (unsigned char *c, unsigned long long *clen, + const unsigned char *m, unsigned long long mlen, + const unsigned char *ad, unsigned long long adlen, + const unsigned char *nsec, + const unsigned char *npub, + const unsigned char *k) { + + u64 tmp_mlen = mlen; + u32 tmp; + const u8* m_auth = m; + u8 final_domain = 0x30; + skinny_128_384_tks tks; + u8 state[BLOCKBYTES], pad[BLOCKBYTES]; + (void)nsec; + + // ----------------- Initialization ----------------- + *clen = mlen + TAGBYTES; + memset(tks.tk1, 0x00, KEYBYTES); + memset(state, 0x00, BLOCKBYTES); + tks.tk1[0] = 0x01; // Init the 56-bit LFSR counter + // ----------------- Initialization ----------------- + + // ----------------- Process the associated data ----------------- + final_domain ^= final_ad_domain(adlen, mlen); + SET_DOMAIN(tks, 0x28); + while (adlen > 2*BLOCKBYTES) { // Process double blocks but the last + UPDATE_CTR(tks.tk1); + XOR_BLOCK(state, state, ad); + tkschedule_lfsr(tks.rtk, ad + BLOCKBYTES, k, SKINNY128_384_ROUNDS); + tkschedule_perm(tks.rtk); + tkschedule_perm_tk1(tks.rtk1, tks.tk1); + skinny128_384(state, tks.rtk, state, tks.rtk1); + UPDATE_CTR(tks.tk1); + ad += 2*BLOCKBYTES; + adlen -= 2*BLOCKBYTES; + } + // Pad and process the left-over blocks + if (adlen == 2*BLOCKBYTES) { // Left-over complete double block + UPDATE_CTR(tks.tk1); + XOR_BLOCK(state, state, ad); + tkschedule_lfsr(tks.rtk, ad + BLOCKBYTES, k, SKINNY128_384_ROUNDS); + tkschedule_perm(tks.rtk); + tkschedule_perm_tk1(tks.rtk1, tks.tk1); + skinny128_384(state, tks.rtk, state, tks.rtk1); + UPDATE_CTR(tks.tk1); + } else if (adlen > BLOCKBYTES) { // Left-over partial double block + adlen -= BLOCKBYTES; + UPDATE_CTR(tks.tk1); + XOR_BLOCK(state, state, ad); + memcpy(pad, ad + BLOCKBYTES, adlen); + memset(pad + adlen, 0x00, 15 - adlen); + pad[15] = adlen; // Padding + tkschedule_lfsr(tks.rtk, pad, k, SKINNY128_384_ROUNDS); + tkschedule_perm(tks.rtk); + tkschedule_perm_tk1(tks.rtk1, tks.tk1); + skinny128_384(state, tks.rtk, state, tks.rtk1); + UPDATE_CTR(tks.tk1); + } else { + SET_DOMAIN(tks, 0x2C); + UPDATE_CTR(tks.tk1); + if (adlen == BLOCKBYTES) { // Left-over complete single block + XOR_BLOCK(state, state, ad); + } else { // Left-over partial single block + for(int i =0; i < adlen; i++) + state[i] ^= ad[i]; + state[15] ^= adlen; // Padding + } + if (tmp_mlen >= BLOCKBYTES) { + tkschedule_lfsr(tks.rtk, m_auth, k, SKINNY128_384_ROUNDS); + tkschedule_perm(tks.rtk); + tkschedule_perm_tk1(tks.rtk1, tks.tk1); + skinny128_384(state, tks.rtk, state, tks.rtk1); + if (tmp_mlen > BLOCKBYTES) + UPDATE_CTR(tks.tk1); + m_auth += BLOCKBYTES; + tmp_mlen -= BLOCKBYTES; + } else { + memcpy(pad, m_auth, tmp_mlen); + memset(pad + tmp_mlen, 0x00, BLOCKBYTES - tmp_mlen - 1); + pad[15] = (u8)tmp_mlen; // Padding + tkschedule_lfsr(tks.rtk, pad, k, SKINNY128_384_ROUNDS); + tkschedule_perm(tks.rtk); + tkschedule_perm_tk1(tks.rtk1, tks.tk1); + skinny128_384(state, tks.rtk, state, tks.rtk1); + tmp_mlen = 0; + } + } + // Process all message double blocks except the last + SET_DOMAIN(tks, 0x2C); + while (tmp_mlen > 32) { + UPDATE_CTR(tks.tk1); + XOR_BLOCK(state, state, m_auth); + tkschedule_lfsr(tks.rtk, m_auth + BLOCKBYTES, k, SKINNY128_384_ROUNDS); + tkschedule_perm(tks.rtk); + tkschedule_perm_tk1(tks.rtk1, tks.tk1); + skinny128_384(state, tks.rtk, state, tks.rtk1); + UPDATE_CTR(tks.tk1); + m_auth += 2 * BLOCKBYTES; + tmp_mlen -= 2 * BLOCKBYTES; + } + // Process the last message double block + if (tmp_mlen == 2 * BLOCKBYTES) { // Last message double block is full + UPDATE_CTR(tks.tk1); + XOR_BLOCK(state, state, m_auth); + tkschedule_lfsr(tks.rtk, m_auth + BLOCKBYTES, k, SKINNY128_384_ROUNDS); + tkschedule_perm(tks.rtk); + tkschedule_perm_tk1(tks.rtk1, tks.tk1); + skinny128_384(state, tks.rtk, state, tks.rtk1); + } else if (tmp_mlen > BLOCKBYTES) { // Last message double block is partial + tmp_mlen -= BLOCKBYTES; + UPDATE_CTR(tks.tk1); + XOR_BLOCK(state, state, m_auth); + memcpy(pad, m_auth + BLOCKBYTES, tmp_mlen); + memset(pad + tmp_mlen, 0x00, BLOCKBYTES - tmp_mlen - 1); + pad[15] = (u8)tmp_mlen; // Padding + tkschedule_lfsr(tks.rtk, pad, k, SKINNY128_384_ROUNDS); + tkschedule_perm(tks.rtk); + tkschedule_perm_tk1(tks.rtk1, tks.tk1); + skinny128_384(state, tks.rtk, state, tks.rtk1); + } else if (tmp_mlen == BLOCKBYTES) { // Last message single block is full + XOR_BLOCK(state, state, m_auth); + } else if (tmp_mlen > 0) { // Last message single block is partial + for(int i =0; i < (int)tmp_mlen; i++) + state[i] ^= m_auth[i]; + state[15] ^= (u8)tmp_mlen; // Padding + } + // Process the last partial block + SET_DOMAIN(tks, final_domain); + UPDATE_CTR(tks.tk1); + tkschedule_lfsr(tks.rtk, npub, k, SKINNY128_384_ROUNDS); + tkschedule_perm(tks.rtk); + tkschedule_perm_tk1(tks.rtk1, tks.tk1); + skinny128_384(state, tks.rtk, state, tks.rtk1); + // ----------------- Process the associated data ----------------- + + + // ----------------- Generate the tag ----------------- + G(state,state); + memcpy(c + mlen, state, TAGBYTES); + // ----------------- Generate the tag ----------------- + + memset(tks.tk1, 0x00, KEYBYTES); + tks.tk1[0] = 0x01; // Init the 56-bit LFSR counter + if (mlen > 0) { + SET_DOMAIN(tks, 0x24); + while (mlen > BLOCKBYTES) { + tkschedule_perm_tk1(tks.rtk1, tks.tk1); + skinny128_384(state, tks.rtk, state, tks.rtk1); + RHO(state,c,m); + UPDATE_CTR(tks.tk1); + c += BLOCKBYTES; + m += BLOCKBYTES; + mlen -= BLOCKBYTES; + } + tkschedule_perm_tk1(tks.rtk1, tks.tk1); + skinny128_384(state, tks.rtk, state, tks.rtk1); + for(int i = 0; i < (int)mlen; i++) { + tmp = m[i]; // Use of tmp variable in case c = m + c[i] = m[i] ^ (state[i] >> 1) ^ (state[i] & 0x80) ^ (state[i] << 7); + state[i] ^= (u8)tmp; + } + state[15] ^= (u8)mlen; // Padding + } + + return 0; +} + +//Decryption and tag verification using Romulus-N1 +int crypto_aead_decrypt + (unsigned char *m, unsigned long long *mlen, + unsigned char *nsec, + const unsigned char *c, unsigned long long clen, + const unsigned char *ad, unsigned long long adlen, + const unsigned char *npub, + const unsigned char *k) { + + u32 tmp, tmp_mlen; + u8 final_domain = 0x30; + u8* m_auth = m; + const u8* c_tmp = c; + skinny_128_384_tks tks; + u8 state[BLOCKBYTES], pad[BLOCKBYTES]; + (void)nsec; + + if (clen < TAGBYTES) + return -1; + + // ----------------- Initialization ----------------- + *mlen = clen - TAGBYTES; + memset(tks.tk1, 0x00, KEYBYTES); + tks.tk1[0] = 0x01; // Init the 56-bit LFSR counter + // ----------------- Initialization ----------------- + + // ----------------- Process the ciphertext ----------------- + clen -= TAGBYTES; + memcpy(state, c + clen, TAGBYTES); + tmp_mlen = clen; + if (tmp_mlen > 0) { + tkschedule_lfsr(tks.rtk, npub, k, SKINNY128_384_ROUNDS); + tkschedule_perm(tks.rtk); + SET_DOMAIN(tks, 0x24); + while (tmp_mlen > BLOCKBYTES) { + tkschedule_perm_tk1(tks.rtk1, tks.tk1); + skinny128_384(state, tks.rtk, state, tks.rtk1); + RHO_INV(state, c, m); + UPDATE_CTR(tks.tk1); + c += BLOCKBYTES; + m += BLOCKBYTES; + tmp_mlen -= BLOCKBYTES; + } + tkschedule_perm_tk1(tks.rtk1, tks.tk1); + skinny128_384(state, tks.rtk, state, tks.rtk1); + for(int i = 0; i < (int)tmp_mlen; i++) { + m[i] = c[i] ^ (state[i] >> 1) ^ (state[i] & 0x80) ^ (state[i] << 7); + state[i] ^= m[i]; + } + state[15] ^= (u8)tmp_mlen; // Padding + } + // ----------------- Process the ciphertext ----------------- + + // ----------------- Process the associated data ----------------- + memset(tks.tk1, 0x00, KEYBYTES); + tks.tk1[0] = 0x01; // Init the 56-bit LFSR counter + memset(state, 0x00, BLOCKBYTES); + final_domain ^= final_ad_domain(adlen, clen); + SET_DOMAIN(tks, 0x28); + while (adlen > 2*BLOCKBYTES) { // Process double blocks but the last + UPDATE_CTR(tks.tk1); + XOR_BLOCK(state, state, ad); + tkschedule_lfsr(tks.rtk, ad + BLOCKBYTES, k, SKINNY128_384_ROUNDS); + tkschedule_perm(tks.rtk); + tkschedule_perm_tk1(tks.rtk1, tks.tk1); + skinny128_384(state, tks.rtk, state, tks.rtk1); + UPDATE_CTR(tks.tk1); + ad += 2*BLOCKBYTES; + adlen -= 2*BLOCKBYTES; + } + // Pad and process the left-over blocks + if (adlen == 2*BLOCKBYTES) { // Left-over complete double block + UPDATE_CTR(tks.tk1); + XOR_BLOCK(state, state, ad); + tkschedule_lfsr(tks.rtk, ad + BLOCKBYTES, k, SKINNY128_384_ROUNDS); + tkschedule_perm(tks.rtk); + tkschedule_perm_tk1(tks.rtk1, tks.tk1); + skinny128_384(state, tks.rtk, state, tks.rtk1); + UPDATE_CTR(tks.tk1); + } else if (adlen > BLOCKBYTES) { // Left-over partial double block + adlen -= BLOCKBYTES; + UPDATE_CTR(tks.tk1); + XOR_BLOCK(state, state, ad); + memcpy(pad, ad + BLOCKBYTES, adlen); + memset(pad + adlen, 0x00, 15 - adlen); + pad[15] = adlen; // Padding + tkschedule_lfsr(tks.rtk, pad, k, SKINNY128_384_ROUNDS); + tkschedule_perm(tks.rtk); + tkschedule_perm_tk1(tks.rtk1, tks.tk1); + skinny128_384(state, tks.rtk, state, tks.rtk1); + UPDATE_CTR(tks.tk1); + } else { + SET_DOMAIN(tks, 0x2C); + UPDATE_CTR(tks.tk1); + if (adlen == BLOCKBYTES) { // Left-over complete single block + XOR_BLOCK(state, state, ad); + } else { // Left-over partial single block + for(int i =0; i < (int)adlen; i++) + state[i] ^= ad[i]; + state[15] ^= adlen; // Padding + } + if (clen >= BLOCKBYTES) { + tkschedule_lfsr(tks.rtk, m_auth, k, SKINNY128_384_ROUNDS); + tkschedule_perm(tks.rtk); + tkschedule_perm_tk1(tks.rtk1, tks.tk1); + skinny128_384(state, tks.rtk, state, tks.rtk1); + if (clen > BLOCKBYTES) + UPDATE_CTR(tks.tk1); + m_auth += BLOCKBYTES; + clen -= BLOCKBYTES; + } else { + memcpy(pad, m_auth, clen); + memset(pad + clen, 0x00, BLOCKBYTES - clen - 1); + pad[15] = (u8)clen; // Padding + tkschedule_lfsr(tks.rtk, pad, k, SKINNY128_384_ROUNDS); + tkschedule_perm(tks.rtk); + tkschedule_perm_tk1(tks.rtk1, tks.tk1); + skinny128_384(state, tks.rtk, state, tks.rtk1); + clen = 0; + } + } + // Process all message double blocks except the last + SET_DOMAIN(tks, 0x2C); + while (clen > 32) { + UPDATE_CTR(tks.tk1); + XOR_BLOCK(state, state, m_auth); + tkschedule_lfsr(tks.rtk, m_auth + BLOCKBYTES, k, SKINNY128_384_ROUNDS); + tkschedule_perm(tks.rtk); + tkschedule_perm_tk1(tks.rtk1, tks.tk1); + skinny128_384(state, tks.rtk, state, tks.rtk1); + UPDATE_CTR(tks.tk1); + m_auth += 2 * BLOCKBYTES; + clen -= 2 * BLOCKBYTES; + } + // Process the last message double block + if (clen == 2 * BLOCKBYTES) { // Last message double block is full + UPDATE_CTR(tks.tk1); + XOR_BLOCK(state, state, m_auth); + tkschedule_lfsr(tks.rtk, m_auth + BLOCKBYTES, k, SKINNY128_384_ROUNDS); + tkschedule_perm(tks.rtk); + tkschedule_perm_tk1(tks.rtk1, tks.tk1); + skinny128_384(state, tks.rtk, state, tks.rtk1); + } else if (clen > BLOCKBYTES) { // Last message double block is partial + clen -= BLOCKBYTES; + UPDATE_CTR(tks.tk1); + XOR_BLOCK(state, state, m_auth); + memcpy(pad, m_auth + BLOCKBYTES, clen); + memset(pad + clen, 0x00, BLOCKBYTES - clen - 1); + pad[15] = (u8)clen; // Padding + tkschedule_lfsr(tks.rtk, pad, k, SKINNY128_384_ROUNDS); + tkschedule_perm(tks.rtk); + tkschedule_perm_tk1(tks.rtk1, tks.tk1); + skinny128_384(state, tks.rtk, state, tks.rtk1); + } else if (clen == BLOCKBYTES) { // Last message single block is full + XOR_BLOCK(state, state, m_auth); + } else if (clen > 0) { // Last message single block is partial + for(int i =0; i < (int)clen; i++) + state[i] ^= m[i]; + state[15] ^= (u8)clen; // Padding + } + // Process the last partial block + SET_DOMAIN(tks, final_domain); + UPDATE_CTR(tks.tk1); + tkschedule_lfsr(tks.rtk, npub, k, SKINNY128_384_ROUNDS); + tkschedule_perm(tks.rtk); + tkschedule_perm_tk1(tks.rtk1, tks.tk1); + skinny128_384(state, tks.rtk, state, tks.rtk1); + // ----------------- Process the associated data ----------------- + + // ----------------- Generate and check the tag ----------------- + G(state,state); + tmp = 0; + for(int i = 0; i < TAGBYTES; i++) + tmp |= state[i] ^ c_tmp[*mlen+i]; //constant-time tag comparison + // ----------------- Generate and check the tag ----------------- + + return tmp; +} \ No newline at end of file diff --git a/romulus/Implementations/crypto_aead/romulusm1/armcortexm/romulus.h b/romulus/Implementations/crypto_aead/romulusm1/armcortexm/romulus.h new file mode 100644 index 0000000..626a767 --- /dev/null +++ b/romulus/Implementations/crypto_aead/romulusm1/armcortexm/romulus.h @@ -0,0 +1,69 @@ +#ifndef ROMULUSN1_H_ +#define ROMULUSN1_H_ + +#include "skinny128.h" + +typedef unsigned char u8; +typedef unsigned int u32; +typedef unsigned int u64; +typedef struct { + u8 tk1[16]; //to manipulate tk1 byte-wise + u32 rtk1[4*16]; //to avoid tk schedule recomputations + u32 rtk[4*SKINNY128_384_ROUNDS]; //all round tweakeys +} skinny_128_384_tks; + +#define TAGBYTES 16 +#define KEYBYTES 16 +#define BLOCKBYTES 16 + +#define SET_DOMAIN(tks, domain) ((tks).tk1[7] = (domain)) + +//G as defined in the Romulus specification in a 32-bit word-wise manner +#define G(x,y) ({ \ + tmp = ((u32*)(y))[0]; \ + ((u32*)(x))[0] = (tmp >> 1 & 0x7f7f7f7f) ^ ((tmp ^ (tmp << 7)) & 0x80808080); \ + tmp = ((u32*)(y))[1]; \ + ((u32*)(x))[1] = (tmp >> 1 & 0x7f7f7f7f) ^ ((tmp ^ (tmp << 7)) & 0x80808080); \ + tmp = ((u32*)(y))[2]; \ + ((u32*)(x))[2] = (tmp >> 1 & 0x7f7f7f7f) ^ ((tmp ^ (tmp << 7)) & 0x80808080); \ + tmp = ((u32*)(y))[3]; \ + ((u32*)(x))[3] = (tmp >> 1 & 0x7f7f7f7f) ^ ((tmp ^ (tmp << 7)) & 0x80808080); \ +}) + +//update the counter in tk1 in a 32-bit word-wise manner +#define UPDATE_CTR(tk1) ({ \ + tmp = ((u32*)(tk1))[1]; \ + ((u32*)(tk1))[1] = (tmp << 1) & 0x00ffffff; \ + ((u32*)(tk1))[1] |= (((u32*)(tk1))[0] >> 31); \ + ((u32*)(tk1))[1] |= tmp & 0xff000000; \ + ((u32*)(tk1))[0] <<= 1; \ + if ((tmp >> 23) & 0x01) \ + ((u32*)(tk1))[0] ^= 0x95; \ +}) + +//x <- y ^ z for 128-bit blocks +#define XOR_BLOCK(x,y,z) ({ \ + ((u32*)(x))[0] = ((u32*)(y))[0] ^ ((u32*)(z))[0]; \ + ((u32*)(x))[1] = ((u32*)(y))[1] ^ ((u32*)(z))[1]; \ + ((u32*)(x))[2] = ((u32*)(y))[2] ^ ((u32*)(z))[2]; \ + ((u32*)(x))[3] = ((u32*)(y))[3] ^ ((u32*)(z))[3]; \ +}) + + +//Rho as defined in the Romulus specification +//use pad as a tmp variable in case y = z +#define RHO(x,y,z) ({ \ + G(pad,x); \ + XOR_BLOCK(y, pad, z); \ + XOR_BLOCK(x, x, z); \ +}) + +//Rho inverse as defined in the Romulus specification +//use pad as a tmp variable in case y = z +#define RHO_INV(x, y, z) ({ \ + G(pad, x); \ + XOR_BLOCK(z, pad, y); \ + XOR_BLOCK(x, x, z); \ +}) + +#endif // ROMULUSN1_H_ \ No newline at end of file diff --git a/romulus/Implementations/crypto_aead/romulusm1/armcortexm/skinny128.h b/romulus/Implementations/crypto_aead/romulusm1/armcortexm/skinny128.h new file mode 100644 index 0000000..4c8f956 --- /dev/null +++ b/romulus/Implementations/crypto_aead/romulusm1/armcortexm/skinny128.h @@ -0,0 +1,17 @@ +#ifndef SKINNY128_H_ +#define SKINNY128_H_ + +typedef unsigned char u8; +typedef unsigned int u32; + +#define SKINNY128_128_ROUNDS 40 +#define SKINNY128_256_ROUNDS 48 +#define SKINNY128_384_ROUNDS 56 + +extern void skinny128_384(u8* ctext, const u32* tk, const u8* ptext, const u32* rtk1); +extern void tkschedule_lfsr(u32* rtk, const u8* tk2, const u8* tk3, const int rounds); +extern void tkschedule_perm(u32* rtk); +extern void tkschedule_perm_tk1(u32* rtk1, const u8* tk1); + + +#endif // SKINNY128_H_ \ No newline at end of file diff --git a/romulus/Implementations/crypto_aead/romulusm1/armcortexm/skinny128.s b/romulus/Implementations/crypto_aead/romulusm1/armcortexm/skinny128.s new file mode 100644 index 0000000..dcd4852 --- /dev/null +++ b/romulus/Implementations/crypto_aead/romulusm1/armcortexm/skinny128.s @@ -0,0 +1,1974 @@ +/******************************************************************************* +* ARM assembly implementation of fixsliced SKINNY-128-384. +* +* For more details, see the paper at: https:// +* +* @author Alexandre Adomnicai, Nanyang Technological University, +* alexandre.adomnicai@ntu.edu.sg +* +* @date May 2020 +*******************************************************************************/ + +.syntax unified +.thumb + +/******************************************************************************* +* applies P^2 on the tweakey state in a bitsliced manner +*******************************************************************************/ +.align 2 +p2: + movw r1, #0xcc00 + movt r1, #0xcc00 //r1 <- 0xcc00cc00 + movw r10, #0xcc00 + movt r10, #0x0033 //r10<- 0xcc000033 + and r11, r1, r6, ror #14 + bfi r11, r6, #16, #8 + and r12, r6, #0xcc000000 + orr r11, r11, r12, lsr #2 + and r12, r10, r6 + orr r11, r11, r12, lsr #8 + and r12, r6, #0x00cc0000 + orr r6, r11, r12, lsr #18 + and r11, r1, r7, ror #14 + bfi r11, r7, #16, #8 + and r12, r7, #0xcc000000 + orr r11, r11, r12, lsr #2 + and r12, r10, r7 + orr r11, r11, r12, lsr #8 + and r12, r7, #0x00cc0000 + orr r7, r11, r12, lsr #18 + and r11, r1, r8, ror #14 + bfi r11, r8, #16, #8 + and r12, r8, #0xcc000000 + orr r11, r11, r12, lsr #2 + and r12, r10, r8 + orr r11, r11, r12, lsr #8 + and r12, r8, #0x00cc0000 + orr r8, r11, r12, lsr #18 + and r11, r1, r9, ror #14 + bfi r11, r9, #16, #8 + and r12, r9, #0xcc000000 + orr r11, r11, r12, lsr #2 + and r12, r10, r9 + orr r11, r11, r12, lsr #8 + and r12, r9, #0x00cc0000 + orr r9, r11, r12, lsr #18 + bx lr + +/******************************************************************************* +* applies P^4 on the tweakey state in a bitsliced manner +*******************************************************************************/ +.align 2 +p4: + str.w r14, [sp] //store r14 on the stack + movw r14, #0x00cc + movt r14, #0xcc00 //r14<- 0xcc0000cc + movw r12, #0xcc00 + movt r12, #0x3300 //r12<- 0x3300cc00 + movw r11, #0x00cc + movt r11, #0x00cc //r11<- 0x00cc00cc + and r10, r14, r6, ror #22 + and r1, r12, r6, ror #16 + orr r10, r10, r1 + and r1, r6, r11 + orr r10, r10, r1, lsr #2 + movw r1, #0xcc33 //r1 <- 0x0000cc33 + and r6, r6, r1 + orr r6, r10, r6, ror #24 + and r10, r14, r7, ror #22 + and r1, r12, r7, ror #16 + orr r10, r10, r1 + and r1, r7, r11 + orr r10, r10, r1, lsr #2 + movw r1, #0xcc33 //r1 <- 0x0000cc33 + and r7, r7, r1 + orr r7, r10, r7, ror #24 + and r10, r14, r8, ror #22 + and r1, r12, r8, ror #16 + orr r10, r10, r1 + and r1, r8, r11 + orr r10, r10, r1, lsr #2 + movw r1, #0xcc33 //r1 <- 0x0000cc33 + and r8, r8, r1 + orr r8, r10, r8, ror #24 + and r10, r14, r9, ror #22 + ldr.w r14, [sp] //restore r14 + and r12, r12, r9, ror #16 + orr r10, r10, r12 + and r12, r9, r11 + orr r10, r10, r12, lsr #2 + movw r12, #0xcc33 //r1 <- 0x0000cc33 + and r9, r9, r12 + orr r9, r10, r9, ror #24 + bx lr + +/******************************************************************************* +* applies P^6 on the tweakey state in a bitsliced manner +*******************************************************************************/ +.align 2 +p6: + movw r1, #0x3333 //r1 <- 0x00003333 + movw r12, #0x00cc + movt r12, #0x3300 //r12<- 0x330000cc + and r10, r6, r1, ror #8 // --- permute r6 6 times + and r11, r12, r6, ror #24 + orr r11, r11, r10, ror #6 + and r10, r1, r6, ror #10 + orr r11, r11, r10 + and r10, r6, #0x000000cc + orr r11, r11, r10, lsl #14 + and r10, r6, #0x00003300 + orr r6, r11, r10, lsl #2 // permute r6 6 times --- + and r10, r7, r1, ror #8 // --- permute r7 6 times + and r11, r12, r7, ror #24 + orr r11, r11, r10, ror #6 + and r10, r1, r7, ror #10 + orr r11, r11, r10 + and r10, r7, #0x000000cc + orr r11, r11, r10, lsl #14 + and r10, r7, #0x00003300 + orr r7, r11, r10, lsl #2 // permute r7 6 times --- + and r10, r8, r1, ror #8 // --- permute r8 6 times + and r11, r12, r8, ror #24 + orr r11, r11, r10, ror #6 + and r10, r1, r8, ror #10 + orr r11, r11, r10 + and r10, r8, #0x000000cc + orr r11, r11, r10, lsl #14 + and r10, r8, #0x00003300 + orr r8, r11, r10, lsl #2 // permute r8 6 times --- + and r10, r9, r1, ror #8 // --- permute r9 6 times + and r11, r12, r9, ror #24 + orr r11, r11, r10, ror #6 + and r10, r1, r9, ror #10 + orr r11, r11, r10 + and r10, r9, #0x000000cc + orr r11, r11, r10, lsl #14 + and r10, r9, #0x00003300 // permute r9 6 times --- + orr r9, r11, r10, lsl #2 + bx lr + +/******************************************************************************* +* applies P^8 on the tweakey state in a bitsliced manner +*******************************************************************************/ +.align 2 +p8: + movw r12, #0x3333 //r12<- 0x00003333 + movw r1, #0x0000 + movt r1, #0x33cc //r1 <- 0x33cc0000 + and r10, r6, r1 // --- permute r6 8 times + and r11, r1, r6, ror #8 + orr r11, r11, r10, ror #24 + and r10, r6, r12, lsl #2 + orr r11, r11, r10, ror #26 + and r10, r6, r12, lsl #8 + orr r6, r11, r10, lsr #6 // permute r6 8 times --- + and r10, r7, r1 // --- permute r7 8 times + and r11, r1, r7, ror #8 + orr r11, r11, r10, ror #24 + and r10, r7, r12, lsl #2 + orr r11, r11, r10, ror #26 + and r10, r7, r12, lsl #8 + orr r7, r11, r10, lsr #6 // permute r7 8 times --- + and r10, r8, r1 // --- permute r8 8 times + and r11, r1, r8, ror #8 + orr r11, r11, r10, ror #24 + and r10, r8, r12, lsl #2 + orr r11, r11, r10, ror #26 + and r10, r8, r12, lsl #8 + orr r8, r11, r10, lsr #6 // permute r8 8 times --- + and r10, r9, r1 // --- permute r9 8 times + and r11, r1, r9, ror #8 + orr r11, r11, r10, ror #24 + and r10, r9, r12, lsl #2 + orr r11, r11, r10, ror #26 + and r10, r9, r12, lsl #8 + orr r9, r11, r10, lsr #6 // permute r9 8 times --- + bx lr + +/******************************************************************************* +* applies P^10 on the tweakey state in a bitsliced manner +*******************************************************************************/ +.align 2 +p10: + movw r12, #0x0033 + movt r12, #0x3300 //r12<- 0x33000033 + movw r1, #0xcc33 //r1 <- 0x0000cc33 + and r10, r6, r1, ror #8 // --- permute r6 10 times + and r11, r12, r6, ror #26 + orr r11, r11, r10, ror #8 + and r10, r6, r12, ror #24 + orr r11, r11, r10, ror #22 + and r10, r6, #0x00330000 + orr r11, r11, r10, lsr #14 + and r10, r6, #0x0000cc00 + orr r6, r11, r10, lsr #2 // permute r6 10 times --- + and r10, r7, r1, ror #8 // --- permute r6 10 times + and r11, r12, r7, ror #26 + orr r11, r11, r10, ror #8 + and r10, r7, r12, ror #24 + orr r11, r11, r10, ror #22 + and r10, r7, #0x00330000 + orr r11, r11, r10, lsr #14 + and r10, r7, #0x0000cc00 + orr r7, r11, r10, lsr #2 // permute r6 10 times --- + and r10, r8, r1, ror #8 // --- permute r6 10 times + and r11, r12, r8, ror #26 + orr r11, r11, r10, ror #8 + and r10, r8, r12, ror #24 + orr r11, r11, r10, ror #22 + and r10, r8, #0x00330000 + orr r11, r11, r10, lsr #14 + and r10, r8, #0x0000cc00 + orr r8, r11, r10, lsr #2 // permute r6 10 times --- + and r10, r9, r1, ror #8 // --- permute r6 10 times + and r11, r12, r9, ror #26 + orr r11, r11, r10, ror #8 + and r10, r9, r12, ror #24 + orr r11, r11, r10, ror #22 + and r10, r9, #0x00330000 + orr r11, r11, r10, lsr #14 + and r10, r9, #0x0000cc00 + orr r9, r11, r10, lsr #2 // permute r6 10 times --- + bx lr + +/******************************************************************************* +* applies P^12 on the tweakey state in a bitsliced manner +*******************************************************************************/ +.align 2 +p12: + str.w r14, [sp] //store r14 on the stack + movw r14, #0xcc33 //r14<- 0x0000cc33 + movw r12, #0x00cc + movt r12, #0x00cc //r12<- 0x00cc00cc + movw r1, #0x3300 + movt r1, #0xcc00 //r1 <- 0xcc003300 + and r10, r14, r6, ror #8 // --- permute r6 12 times + and r11, r12, r6, ror #30 + orr r11, r11, r10 + and r10, r1, r6, ror #16 + orr r11, r11, r10 + movw r10, #0xcccc //r10<- 0x0000cccc + and r10, r6, r10, ror #8 + orr r6, r11, r10, ror #10 // permute r6 12 times --- + and r10, r14, r7, ror #8 // --- permute r7 12 times + and r11, r12, r7, ror #30 + orr r11, r11, r10 + and r10, r1, r7, ror #16 + orr r11, r11, r10 + movw r10, #0xcccc //r10<- 0x0000cccc + and r10, r7, r10, ror #8 + orr r7, r11, r10, ror #10 // permute r7 12 times --- + and r10, r14, r8, ror #8 // --- permute r8 12 times + and r11, r12, r8, ror #30 + orr r11, r11, r10 + and r10, r1, r8, ror #16 + orr r11, r11, r10 + movw r10, #0xcccc //r10<- 0x0000cccc + and r10, r8, r10, ror #8 + orr r8, r11, r10, ror #10 // permute r8 12 times --- + and r10, r14, r9, ror #8 // --- permute r9 12 times + and r11, r12, r9, ror #30 + orr r11, r11, r10 + and r10, r1, r9, ror #16 + ldr.w r14, [sp] + orr r11, r11, r10 + movw r10, #0xcccc //r10<- 0x0000cccc + and r10, r9, r10, ror #8 + orr r9, r11, r10, ror #10 // permute r9 12 times --- + bx lr + +/******************************************************************************* +* applies P^14 on the tweakey state in a bitsliced manner +*******************************************************************************/ +.align 2 +p14: + movw r1, #0xcc00 + movt r1, #0x0033 //r1 <- 0x0033cc00 + movw r12, #0xcc00 + movt r12, #0xcc00 //r12<- 0x33003300 + and r10, r1, r6, ror #24 // --- permute r6 14 times + and r11, r6, #0x00000033 + orr r11, r10, r11, ror #14 + and r10, r6, #0x33000000 + orr r11, r11, r10, ror #30 + and r10, r6, #0x00ff0000 + orr r11, r11, r10, ror #16 + and r10, r6, r12 + orr r6, r11, r10, ror #18 // permute r6 14 times --- + and r10, r1, r7, ror #24 // --- permute r7 14 times + and r11, r7, #0x00000033 + orr r11, r10, r11, ror #14 + and r10, r7, #0x33000000 + orr r11, r11, r10, ror #30 + and r10, r7, #0x00ff0000 + orr r11, r11, r10, ror #16 + and r10, r7, r12 + orr r7, r11, r10, ror #18 // permute r7 14 times --- + and r10, r1, r8, ror #24 // --- permute r8 14 times + and r11, r8, #0x00000033 + orr r11, r10, r11, ror #14 + and r10, r8, #0x33000000 + orr r11, r11, r10, ror #30 + and r10, r8, #0x00ff0000 + orr r11, r11, r10, ror #16 + and r10, r8, r12 + orr r8, r11, r10, ror #18 // permute r8 14 times --- + and r10, r1, r9, ror #24 // --- permute r9 14 times + and r11, r9, #0x00000033 + orr r11, r10, r11, ror #14 + and r10, r9, #0x33000000 + orr r11, r11, r10, ror #30 + and r10, r9, #0x00ff0000 + orr r11, r11, r10, ror #16 + and r10, r9, r12 + orr r9, r11, r10, ror #18 // permute r9 14 times --- + bx lr + +.align 2 +packing: + eor r12, r2, r2, lsr #3 + and r12, r12, r10 + eor r2, r2, r12 + eor r2, r2, r12, lsl #3 //SWAPMOVE(r2, r2, 0x0a0a0a0a, 3) + eor r12, r3, r3, lsr #3 + and r12, r12, r10 + eor r3, r3, r12 + eor r3, r3, r12, lsl #3 //SWAPMOVE(r3, r3, 0x0a0a0a0a, 3) + eor r12, r4, r4, lsr #3 + and r12, r12, r10 + eor r4, r4, r12 + eor r4, r4, r12, lsl #3 //SWAPMOVE(r4, r4, 0x0a0a0a0a, 3) + eor r12, r5, r5, lsr #3 + and r12, r12, r10 + eor r5, r5, r12 + eor r5, r5, r12, lsl #3 //SWAPMOVE(r5, r5, 0x0a0a0a0a, 3) + eor r12, r2, r4, lsr #2 + and r12, r12, r11 + eor r2, r2, r12 + eor r4, r4, r12, lsl #2 //SWAPMOVE(r4, r2, 0x30303030, 2) + eor r12, r2, r3, lsr #4 + and r12, r12, r11, lsr #2 + eor r2, r2, r12 + eor r3, r3, r12, lsl #4 //SWAPMOVE(r3, r2, 0x0c0c0c0c, 4) + eor r12, r2, r5, lsr #6 + and r12, r12, r11, lsr #4 + eor r2, r2, r12 + eor r5, r5, r12, lsl #6 //SWAPMOVE(r5, r2, 0x03030303, 6) + eor r12, r4, r3, lsr #2 + and r12, r12, r11, lsr #2 + eor r4, r4, r12 + eor r3, r3, r12, lsl #2 //SWAPMOVE(r3, r4, 0x0c0c0c0c, 2) + eor r12, r4, r5, lsr #4 + and r12, r12, r11, lsr #4 + eor r4, r4, r12 + eor r5, r5, r12, lsl #4 //SWAPMOVE(r5, r4, 0x03030303, 4) + eor r12, r3, r5, lsr #2 + and r12, r12, r11, lsr #4 + eor r3, r3, r12 + eor r5, r5, r12, lsl #2 //SWAPMOVE(r5, r3, 0x03030303, 2) + bx lr + +/****************************************************************************** +* Compute LFSR2(TK2) ^ LFSR3(TK3) for all rounds. +* Performing both at the same time allows to save some memory accesses. +******************************************************************************/ +@ void tkschedule_lfsr(u32* tk, const u8* tk2, const u8* tk3, const int rounds) +.global tkschedule_lfsr +.type tkschedule_lfsr,%function +.align 2 +tkschedule_lfsr: + push {r0-r12, r14} + ldr.w r3, [r1, #8] //load tk2 (3rd word) + ldr.w r4, [r1, #4] //load tk2 (2nd word) + ldr.w r5, [r1, #12] //load tk2 (4th word) + ldr.w r12, [r1] //load tk2 (1st word) + mov r1, r2 //move tk3 address in r1 + mov r2, r12 //move 1st tk2 word in r2 + movw r10, #0x0a0a + movt r10, #0x0a0a //r10 <- 0x0a0a0a0a + movw r11, #0x3030 + movt r11, #0x3030 //r7 <- 0x30303030 + bl packing //pack tk2 + mov r6, r2 //move tk2 from r2-r5 to r6-r9 + mov r7, r3 //move tk2 from r2-r5 to r6-r9 + mov r8, r4 //move tk2 from r2-r5 to r6-r9 + mov r9, r5 //move tk2 from r2-r5 to r6-r9 + ldr.w r3, [r1, #8] //load tk3 (3rd word) + ldr.w r4, [r1, #4] //load tk3 (2nd word) + ldr.w r5, [r1, #12] //load tk3 (4th) word) + ldr.w r2, [r1] //load tk3 (1st) word) + bl packing //pack tk3 + eor r10, r10, r10, lsl #4 //r10<- 0xaaaaaaaa + ldr.w r1, [sp, #12] //load loop counter in r1 + eor r11, r2, r6 //tk2 ^ tk3 (1st word) + eor r12, r3, r7 //tk2 ^ tk3 (2nd word) + strd r11, r12, [r0], #8 //store in tk + eor r11, r4, r8 //tk2 ^ tk3 (3rd word) + eor r12, r5, r9 //tk2 ^ tk3 (4th word) + strd r11, r12, [r0], #8 //store in tk + loop: + and r12, r8, r10 // --- apply LFSR2 to tk2 + eor r12, r12, r6 + and r14, r10, r12, lsl #1 + and r12, r12, r10 + orr r6, r14, r12, lsr #1 // apply LFSR2 to tk2 --- + and r12, r3, r10 // --- apply LFSR3 to tk3 + eor r12, r5, r12, lsr #1 + and r14, r10, r12, lsl #1 + and r12, r12, r10 + orr r5, r14, r12, lsr #1 // apply LFSR3 to tk3 --- + eor r11, r5, r7 //tk2 ^ tk3 (1st word) + eor r12, r2, r8 //tk2 ^ tk3 (2nd word) + strd r11, r12, [r0], #8 //store in tk + eor r11, r3, r9 //tk2 ^ tk3 (3rd word) + eor r12, r4, r6 //tk2 ^ tk3 (4th word) + strd r11, r12, [r0], #24 //store in tk + and r12, r9, r10 // --- apply LFSR2 to tk2 + eor r12, r12, r7 + and r14, r10, r12, lsl #1 + and r12, r12, r10 + orr r7, r14, r12, lsr #1 // apply LFSR2 to tk2 --- + and r12, r2, r10 // --- apply LFSR3 to tk3 + eor r12, r4, r12, lsr #1 + and r14, r10, r12, lsl #1 + and r12, r12, r10 + orr r4, r14, r12, lsr #1 // apply LFSR3 to tk3 --- + eor r11, r4, r8 //tk2 ^ tk3 (1st word) + eor r12, r5, r9 //tk2 ^ tk3 (2nd word) + strd r11, r12, [r0], #8 //store in tk + eor r11, r2, r6 //tk2 ^ tk3 (3rd word) + eor r12, r3, r7 //tk2 ^ tk3 (4th word) + strd r11, r12, [r0], #24 //store in tk + and r12, r6, r10 // --- apply LFSR2 to tk2 + eor r12, r12, r8 + and r14, r10, r12, lsl #1 + and r12, r12, r10 + orr r8, r14, r12, lsr #1 // apply LFSR2 to tk2 --- + and r12, r5, r10 // --- apply LFSR3 to tk3 + eor r12, r3, r12, lsr #1 + and r14, r10, r12, lsl #1 + and r12, r12, r10 + orr r3, r14, r12, lsr #1 // apply LFSR3 to tk3 --- + eor r11, r3, r9 //tk2 ^ tk3 (1st word) + eor r12, r4, r6 //tk2 ^ tk3 (2nd word) + strd r11, r12, [r0], #8 //store in tk + eor r11, r5, r7 //tk2 ^ tk3 (3rd word) + eor r12, r2, r8 //tk2 ^ tk3 (4th word) + strd r11, r12, [r0], #24 //store in tk + and r12, r7, r10 // --- apply LFSR2 to tk2 + eor r12, r12, r9 + and r14, r10, r12, lsl #1 + and r12, r12, r10 + orr r9, r14, r12, lsr #1 // apply LFSR2 to tk2 --- + and r12, r4, r10 // --- apply LFSR3 to tk3 + eor r12, r2, r12, lsr #1 + and r14, r10, r12, lsl #1 + and r12, r12, r10 + orr r2, r14, r12, lsr #1 // apply LFSR3 to tk3 --- + eor r11, r2, r6 //tk2 ^ tk3 (1st word) + eor r12, r3, r7 //tk2 ^ tk3 (2nd word) + strd r11, r12, [r0], #8 //store in tk + eor r11, r4, r8 //tk2 ^ tk3 (3rd word) + eor r12, r5, r9 //tk2 ^ tk3 (4th word) + strd r11, r12, [r0], #24 //store in tk + subs.w r1, r1, #8 //decrease loop counter by 8 + bne loop + pop {r0-r12, r14} + bx lr + +/****************************************************************************** +* Applies the permutation P and add the round constants to all round tweakeys. +******************************************************************************/ +@ void tkschedule_perm(u32* tk) +.global tkschedule_perm +.type tkschedule_perm,%function +.align 2 +tkschedule_perm: + push {r0-r12, lr} + sub.w sp, #4 //to store r14 in subroutines + ldm r0, {r6-r9} //load tk + movw r10, #0xf0f0 + movt r10, #0xf0f0 //r10<- 0xf0f0f0f0 + and r6, r6, r10 //tk &= 0xf0f0f0f0 (1st word) + and r7, r7, r10 //tk &= 0xf0f0f0f0 (2nd word) + and r8, r8, r10 //tk &= 0xf0f0f0f0 (3rd word) + and r9, r9, r10 //tk &= 0xf0f0f0f0 (4th word) + eor r8, r8, #0x00000004 //add rconst + eor r9, r9, #0x00000040 //add rconst + mvn r9, r9 //to remove a NOT in sbox calculations + strd r8, r9, [r0], #8 //store 1st half tk for 1st round + strd r6, r7, [r0], #8 //store 2nd half tk for 1st round + ldm r0, {r6-r9} //load tk + bl p2 //apply the permutation twice + movw r10, #0xc3c3 + movt r10, #0xc3c3 //r10<- 0xc3c3c3c3 + and r11, r10, r6, ror #26 //ror and mask to match fixslicing + and r12, r10, r7, ror #26 //ror and mask to match fixslicing + strd r11, r12, [r0], #8 //store 1st half tk for 2nd round + and r11, r10, r8, ror #26 //ror and mask to match fixslicing + and r12, r10, r9, ror #26 //ror and mask to match fixslicing + eor r11, r11, #0x10000000 //add rconst + eor r11, r11, #0x00000100 //add rconst + eor r12, r12, #0x00000100 //add rconst + mvn r12, r12 //to save a NOT in sbox calculations + strd r11, r12, [r0], #8 //store 2nd half tk for 2nd round + and r10, r10, r10, lsr #6 //r10<- 0x03030303 + and r11, r10, r6, ror #28 //--- ror and masks to match fixslicing + and r6, r6, r10, lsl #6 + orr r6, r11, r6, ror #12 + and r11, r10, r7, ror #28 + and r7, r7, r10, lsl #6 + orr r7, r11, r7, ror #12 + and r11, r10, r8, ror #28 + and r8, r8, r10, lsl #6 + orr r8, r11, r8, ror #12 + and r11, r10, r9, ror #28 + and r9, r9, r10, lsl #6 + orr r9, r11, r9, ror #12 //ror and masks to match fixslicing --- + eor r7, r7, #0x04000000 //add rconst + eor r8, r8, #0x44000000 //add rconst + eor r9, r9, #0x04000000 //add rconst + mvn r9, r9 //to save a NOT in sbox calculations + strd r8, r9, [r0], #8 //store 1st half tk for 3rd round + strd r6, r7, [r0], #8 //store 2nd half tk for 3rd round + ldm r0, {r6-r9} //load tk + bl p4 //apply the permutation 4 times + movw r10, #0xf0f0 + movt r10, #0xf0f0 //r10<- 0xf0f0f0f0 + and r11, r10, r6, ror #16 //ror and mask to match fixslicing + and r12, r10, r7, ror #16 //ror and mask to match fixslicing + eor r11, r11, #0x00400000 //add rconst + eor r12, r12, #0x00400000 //add rconst + strd r11, r12, [r0, #24] //store 2nd half tk for 5th round + and r11, r10, r8, ror #16 //ror and mask to match fixslicing + and r12, r10, r9, ror #16 //ror and mask to match fixslicing + eor r11, r11, #0x00440000 //add rconst + eor r12, r12, #0x00500000 //add rconst + mvn r12, r12 //to save a NOT in sbox calculations + strd r11, r12, [r0, #16] //store 1st half tk for 5th round + and r10, r10, r10, lsr #2 //r10<- 0x30303030 + and r11, r10, r6, ror #14 //--- ror and masks to match fixslicing + and r6, r6, r10, ror #4 + orr r6, r11, r6, ror #6 + and r11, r10, r7, ror #14 + and r7, r7, r10, ror #4 + orr r7, r11, r7, ror #6 + and r11, r10, r8, ror #14 + and r8, r8, r10, ror #4 + orr r8, r11, r8, ror #6 + and r11, r10, r9, ror #14 + and r9, r9, r10, ror #4 + orr r9, r11, r9, ror #6 //ror and masks to match fixslicing --- + eor r6, r6, #0x00100000 //add rconst + eor r7, r7, #0x00100000 //add rconst + eor r8, r8, #0x00100000 //add rconst + eor r8, r8, #0x00000001 //add rconst + eor r9, r9, #0x00100000 //add rconst + mvn r9, r9 //to save a NOT in sbox calculations + strd r6, r7, [r0], #8 //store 1st half tk for 4th round + strd r8, r9, [r0], #24 //store 2nd half tk for 4th round + ldm r0, {r6-r9} //load tk + bl p6 //apply the permutation 6 times + movw r10, #0xc3c3 + movt r10, #0xc3c3 //r10<- 0xc3c3c3c3 + and r11, r10, r6, ror #10 //ror and mask to match fixslicing + and r12, r10, r7, ror #10 //ror and mask to match fixslicing + eor r11, r11, #0x01000000 //add rconst + eor r12, r12, #0x01000000 //add rconst + strd r11, r12, [r0], #8 //store 1st half tk for 6th round + and r11, r10, r8, ror #10 //ror and mask to match fixslicing + and r12, r10, r9, ror #10 //ror and mask to match fixslicing + eor r11, r11, #0x01400000 //add rconst + eor r11, r11, #0x00001000 //add rconst + eor r12, r12, #0x00400000 //add rconst + mvn r12, r12 //to save a NOT in sbox calculations + strd r11, r12, [r0], #8 //store 2nd half tk for 6th round + and r10, r10, r10, lsr #6 //r10<- 0x03030303 + and r11, r10, r6, ror #12 //--- ror and masks to match fixslicing + and r6, r6, r10, lsl #6 + orr r6, r11, r6, ror #28 + and r11, r10, r7, ror #12 + and r7, r7, r10, lsl #6 + orr r7, r11, r7, ror #28 + and r11, r10, r8, ror #12 + and r8, r8, r10, lsl #6 + orr r8, r11, r8, ror #28 + and r11, r10, r9, ror #12 + and r9, r9, r10, lsl #6 + orr r9, r11, r9, ror #28 //ror and masks to match fixslicing --- + eor r6, r6, #0x00000400 //add rconst + eor r7, r7, #0x00000400 //add rconst + eor r8, r8, #0x01000000 //add rconst + eor r8, r8, #0x00004000 //add rconst + eor r9, r9, #0x01000000 //add rconst + eor r9, r9, #0x00000400 //add rconst + mvn r9, r9 //to save a NOT in sbox calculations + strd r8, r9, [r0], #8 //store 1st half tk for 7th round + strd r6, r7, [r0], #8 //store 2nd half tk for 7th round + ldm r0, {r6-r9} //load tk + bl p8 //apply the permutation 8 times + movw r10, #0xf0f0 + movt r10, #0xf0f0 //r10<- 0xf0f0f0f0 + and r11, r10, r6 //ror and mask to match fixslicing + and r12, r10, r7 //ror and mask to match fixslicing + eor r12, r12, #0x00000040 //add rconst + strd r11, r12, [r0, #24] //store 2nd half tk for 9th round + and r11, r10, r8 //ror and mask to match fixslicing + and r12, r10, r9 //ror and mask to match fixslicing + eor r11, r11, #0x00000054 //add rconst + eor r12, r12, #0x00000050 //add rconst + mvn r12, r12 //to save a NOT in sbox calculations + strd r11, r12, [r0, #16] //store 1st half tk for 9th round + and r10, r10, r10, lsr #2 //r10<- 0x30303030 + and r11, r10, r6, ror #30 //--- ror and masks to match fixslicing + and r6, r6, r10, ror #4 + orr r6, r11, r6, ror #22 + and r11, r10, r7, ror #30 + and r7, r7, r10, ror #4 + orr r7, r11, r7, ror #22 + and r11, r10, r8, ror #30 + and r8, r8, r10, ror #4 + orr r8, r11, r8, ror #22 + and r11, r10, r9, ror #30 + and r9, r9, r10, ror #4 + orr r9, r11, r9, ror #22 //ror and masks to match fixslicing --- + eor r6 ,r6, #0x00000010 + eor r8, r8, #0x00010000 + eor r8, r8, #0x00000410 + eor r9, r9, #0x00000410 + mvn r9, r9 //to save a NOT in sbox calculations + strd r6, r7, [r0], #8 //store 1st half tk for 8th round + strd r8, r9, [r0], #24 //store 2nd half tk for 8th round + ldm r0, {r6-r9} //load tk + bl p10 //apply the permutation 10 times + movw r10, #0xc3c3 + movt r10, #0xc3c3 //r10<- 0xc3c3c3c3 + and r11, r10, r6, ror #26 //ror and mask to match fixslicing + and r12, r10, r7, ror #26 //ror and mask to match fixslicing + eor r11, r11, #0x00000100 //add rconst + eor r12, r12, #0x00000100 //add rconst + strd r11, r12, [r0], #8 //store 1st half tk for 10th round + and r11, r10, r8, ror #26 //ror and mask to match fixslicing + and r12, r10, r9, ror #26 //ror and mask to match fixslicing + eor r11, r11, #0x10000000 //add rconst + eor r11, r11, #0x00000140 //add rconst + eor r12, r12, #0x00000100 //add rconst + mvn r12, r12 //to save a NOT in sbox calculations + strd r11, r12, [r0], #8 //store 2nd half tk for 10th round + and r10, r10, r10, lsr #6 //r10<- 0x03030303 + and r11, r10, r6, ror #28 //--- ror and masks to match fixslicing + and r6, r6, r10, lsl #6 + orr r6, r11, r6, ror #12 + and r11, r10, r7, ror #28 + and r7, r7, r10, lsl #6 + orr r7, r11, r7, ror #12 + and r11, r10, r8, ror #28 + and r8, r8, r10, lsl #6 + orr r8, r11, r8, ror #12 + and r11, r10, r9, ror #28 + and r9, r9, r10, lsl #6 + orr r9, r11, r9, ror #12 //ror and masks to match fixslicing --- + eor r6, r6, #0x04000000 //add rconst + eor r7, r7, #0x04000000 //add rconst + eor r8, r8, #0x44000000 //add rconst + eor r9, r9, #0x00000100 //add rconst + mvn r9, r9 //to save a NOT in sbox calculations + strd r8, r9, [r0], #8 //store 1st half tk for 11th round + strd r6, r7, [r0], #8 //store 2nd half tk for 11th round + ldm r0, {r6-r9} //load tk + bl p12 //apply the permutation 4 times + movw r10, #0xf0f0 + movt r10, #0xf0f0 //r10<- 0xf0f0f0f0 + and r11, r10, r6, ror #16 //ror and mask to match fixslicing + and r12, r10, r7, ror #16 //ror and mask to match fixslicing + eor r11, r11, #0x00400000 //add rconst + strd r11, r12, [r0, #24] //store 2nd half tk for 13th round + and r11, r10, r8, ror #16 //ror and mask to match fixslicing + and r12, r10, r9, ror #16 //ror and mask to match fixslicing + eor r11, r11, #0x00140000 //add rconst + eor r12, r12, #0x00500000 //add rconst + mvn r12, r12 //to save a NOT in sbox calculations + strd r11, r12, [r0, #16] //store 1st half tk for 13th round + and r10, r10, r10, lsr #2 //r10<- 0x30303030 + and r11, r10, r6, ror #14 //--- ror and masks to match fixslicing + and r6, r6, r10, ror #4 + orr r6, r11, r6, ror #6 + and r11, r10, r7, ror #14 + and r7, r7, r10, ror #4 + orr r7, r11, r7, ror #6 + and r11, r10, r8, ror #14 + and r8, r8, r10, ror #4 + orr r8, r11, r8, ror #6 + and r11, r10, r9, ror #14 + and r9, r9, r10, ror #4 + orr r9, r11, r9, ror #6 //ror and masks to match fixslicing --- + eor r6, r6, #0x00100000 //add rconst + eor r7, r7, #0x00100000 //add rconst + eor r8, r8, #0x04000000 //add rconst + eor r8, r8, #0x00000001 //add rconst + eor r9, r9, #0x04000000 //add rconst + mvn r9, r9 //to save a NOT in sbox calculations + strd r6, r7, [r0], #8 //store 1st half tk for 12th round + strd r8, r9, [r0], #24 //store 2nd half tk for 12th round + ldm r0, {r6-r9} //load tk + bl p14 //apply the permutation 6 times + movw r10, #0xc3c3 + movt r10, #0xc3c3 //r10<- 0xc3c3c3c3 + and r11, r10, r6, ror #10 //ror and mask to match fixslicing + and r12, r10, r7, ror #10 //ror and mask to match fixslicing + strd r11, r12, [r0], #8 //store 1st half tk for 14th round + and r11, r10, r8, ror #10 //ror and mask to match fixslicing + and r12, r10, r9, ror #10 //ror and mask to match fixslicing + eor r11, r11, #0x01400000 //add rconst + eor r11, r11, #0x00001000 //add rconst + eor r12, r12, #0x01400000 //add rconst + mvn r12, r12 //to save a NOT in sbox calculations + strd r11, r12, [r0], #8 //store 2nd half tk for 14th round + and r10, r10, r10, lsr #6 //r10<- 0x03030303 + and r11, r10, r6, ror #12 //--- ror and masks to match fixslicing + and r6, r6, r10, lsl #6 + orr r6, r11, r6, ror #28 + and r11, r10, r7, ror #12 + and r7, r7, r10, lsl #6 + orr r7, r11, r7, ror #28 + and r11, r10, r8, ror #12 + and r8, r8, r10, lsl #6 + orr r8, r11, r8, ror #28 + and r11, r10, r9, ror #12 + and r9, r9, r10, lsl #6 + orr r9, r11, r9, ror #28 //ror and masks to match fixslicing --- + eor r7, r7, #0x00000400 //add rconst + eor r8, r8, #0x01000000 //add rconst + eor r8, r8, #0x00004400 //add rconst + eor r9, r9, #0x00000400 //add const + mvn r9, r9 //to save a NOT in sbox calculations + strd r8, r9, [r0], #8 //store 1st half tk for 15th round + strd r6, r7, [r0], #8 //store 2nd half tk for 15th round + ldm r0, {r6-r9} //load tk + movw r10, #0xf0f0 + movt r10, #0xf0f0 //r10<- 0xf0f0f0f0 + and r11, r10, r6 //ror and mask to match fixslicing + and r12, r10, r7 //ror and mask to match fixslicing + eor r11, r11, #0x00000040 //add rconst + eor r12, r12, #0x00000040 //add rconst + strd r11, r12, [r0, #24] //store 2nd half tk for 17th round + and r11, r10, r8 //ror and mask to match fixslicing + and r12, r10, r9 //ror and mask to match fixslicing + eor r11, r11, #0x00000004 //add rconst + eor r12, r12, #0x00000050 //add rconst + mvn r12, r12 //to save a NOT in sbox calculations + strd r11, r12, [r0, #16] //store 1st half tk for 17th round + and r10, r10, r10, lsr #2 //r10<- 0x30303030 + and r11, r10, r6, ror #30 //--- ror and masks to match fixslicing + and r6, r6, r10, ror #4 + orr r6, r11, r6, ror #22 + and r11, r10, r7, ror #30 + and r7, r7, r10, ror #4 + orr r7, r11, r7, ror #22 + and r11, r10, r8, ror #30 + and r8, r8, r10, ror #4 + orr r8, r11, r8, ror #22 + and r11, r10, r9, ror #30 + and r9, r9, r10, ror #4 + orr r9, r11, r9, ror #22 //ror and masks to match fixslicing --- + eor r6 ,r6, #0x00000010 + eor r7 ,r7, #0x00000010 + eor r8, r8, #0x00000010 + eor r8, r8, #0x00010000 + mvn r9, r9 //to save a NOT in sbox calculations + strd r6, r7, [r0], #8 //store 1st half tk for 16th round + strd r8, r9, [r0], #24 //store 2nd half tk for 16th round + ldm r0, {r6-r9} //load tk + bl p2 //apply the permutation twice + movw r10, #0xc3c3 + movt r10, #0xc3c3 //r10<- 0xc3c3c3c3 + and r11, r10, r6, ror #26 //ror and mask to match fixslicing + and r12, r10, r7, ror #26 //ror and mask to match fixslicing + eor r11, r11, #0x00000100 //add rconst + strd r11, r12, [r0], #8 //store 1st half tk for 18th round + and r11, r10, r8, ror #26 //ror and mask to match fixslicing + and r12, r10, r9, ror #26 //ror and mask to match fixslicing + eor r11, r11, #0x10000000 //add rconst + eor r11, r11, #0x00000140 //add rconst + eor r12, r12, #0x00000040 //add rconst + mvn r12, r12 //to save a NOT in sbox calculations + strd r11, r12, [r0], #8 //store 2nd half tk for 18th round + and r10, r10, r10, lsr #6 //r10<- 0x03030303 + and r11, r10, r6, ror #28 //--- ror and masks to match fixslicing + and r6, r6, r10, lsl #6 + orr r6, r11, r6, ror #12 + and r11, r10, r7, ror #28 + and r7, r7, r10, lsl #6 + orr r7, r11, r7, ror #12 + and r11, r10, r8, ror #28 + and r8, r8, r10, lsl #6 + orr r8, r11, r8, ror #12 + and r11, r10, r9, ror #28 + and r9, r9, r10, lsl #6 + orr r9, r11, r9, ror #12 //ror and masks to match fixslicing --- + eor r7, r7, #0x04000000 //add rconst + eor r8, r8, #0x40000000 //add rconst + eor r8, r8, #0x00000100 //add rconst + eor r9, r9, #0x04000000 //add rconst + eor r9, r9, #0x00000100 //add rconst + mvn r9, r9 //to save a NOT in sbox calculations + strd r8, r9, [r0], #8 //store 1st half tk for 19th round + strd r6, r7, [r0], #8 //store 2nd half tk for 19th round + ldm r0, {r6-r9} //load tk + bl p4 //apply the permutation 4 times + movw r10, #0xf0f0 + movt r10, #0xf0f0 //r10<- 0xf0f0f0f0 + and r11, r10, r6, ror #16 //ror and mask to match fixslicing + and r12, r10, r7, ror #16 //ror and mask to match fixslicing + eor r12, r12, #0x00400000 //add rconst + strd r11, r12, [r0, #24] //store 2nd half tk for 21th round + and r11, r10, r8, ror #16 //ror and mask to match fixslicing + and r12, r10, r9, ror #16 //ror and mask to match fixslicing + eor r11, r11, #0x00440000 //add rconst + eor r12, r12, #0x00100000 //add rconst + mvn r12, r12 //to save a NOT in sbox calculations + strd r11, r12, [r0, #16] //store 1st half tk for 21th round + and r10, r10, r10, lsr #2 //r10<- 0x30303030 + and r11, r10, r6, ror #14 //--- ror and masks to match fixslicing + and r6, r6, r10, ror #4 + orr r6, r11, r6, ror #6 + and r11, r10, r7, ror #14 + and r7, r7, r10, ror #4 + orr r7, r11, r7, ror #6 + and r11, r10, r8, ror #14 + and r8, r8, r10, ror #4 + orr r8, r11, r8, ror #6 + and r11, r10, r9, ror #14 + and r9, r9, r10, ror #4 + orr r9, r11, r9, ror #6 //ror and masks to match fixslicing --- + eor r6, r6, #0x00100000 //add rconst + eor r8, r8, #0x04100000 //add rconst + eor r8, r8, #0x00000001 //add rconst + eor r9, r9, #0x00100000 //add rconst + mvn r9, r9 //to save a NOT in sbox calculations + strd r6, r7, [r0], #8 //store 1st half tk for 20th round + strd r8, r9, [r0], #24 //store 2nd half tk for 20th round + ldm r0, {r6-r9} //load tk + bl p6 //apply the permutation 6 times + movw r10, #0xc3c3 + movt r10, #0xc3c3 //r10<- 0xc3c3c3c3 + and r11, r10, r6, ror #10 //ror and mask to match fixslicing + and r12, r10, r7, ror #10 //ror and mask to match fixslicing + eor r11, r11, #0x01000000 //add rconst + eor r12, r12, #0x01000000 //add rconst + strd r11, r12, [r0], #8 //store 1st half tk for 22th round + and r11, r10, r8, ror #10 //ror and mask to match fixslicing + and r12, r10, r9, ror #10 //ror and mask to match fixslicing + eor r11, r11, #0x00400000 //add rconst + eor r11, r11, #0x00001000 //add rconst + mvn r12, r12 //to save a NOT in sbox calculations + strd r11, r12, [r0], #8 //store 2nd half tk for 22th round + and r10, r10, r10, lsr #6 //r10<- 0x03030303 + and r11, r10, r6, ror #12 //--- ror and masks to match fixslicing + and r6, r6, r10, lsl #6 + orr r6, r11, r6, ror #28 + and r11, r10, r7, ror #12 + and r7, r7, r10, lsl #6 + orr r7, r11, r7, ror #28 + and r11, r10, r8, ror #12 + and r8, r8, r10, lsl #6 + orr r8, r11, r8, ror #28 + and r11, r10, r9, ror #12 + and r9, r9, r10, lsl #6 + orr r9, r11, r9, ror #28 //ror and masks to match fixslicing --- + eor r6, r6, #0x00000400 //add rconst + eor r8, r8, #0x00004000 //add rconst + eor r9, r9, #0x01000000 //add rconst + mvn r9, r9 //to save a NOT in sbox calculations + strd r8, r9, [r0], #8 //store 1st half tk for 23th round + strd r6, r7, [r0], #8 //store 2nd half tk for 23th round + ldm r0, {r6-r9} //load tk + bl p8 //apply the permutation 8 times + movw r10, #0xf0f0 + movt r10, #0xf0f0 //r10<- 0xf0f0f0f0 + and r11, r10, r6 //ror and mask to match fixslicing + and r12, r10, r7 //ror and mask to match fixslicing + strd r11, r12, [r0, #24] //store 2nd half tk for 25th round + and r11, r10, r8 //ror and mask to match fixslicing + and r12, r10, r9 //ror and mask to match fixslicing + eor r11, r11, #0x00000014 //add rconst + eor r12, r12, #0x00000040 //add rconst + mvn r12, r12 //to save a NOT in sbox calculations + strd r11, r12, [r0, #16] //store 1st half tk for 25th round + and r10, r10, r10, lsr #2 //r10<- 0x30303030 + and r11, r10, r6, ror #30 //--- ror and masks to match fixslicing + and r6, r6, r10, ror #4 + orr r6, r11, r6, ror #22 + and r11, r10, r7, ror #30 + and r7, r7, r10, ror #4 + orr r7, r11, r7, ror #22 + and r11, r10, r8, ror #30 + and r8, r8, r10, ror #4 + orr r8, r11, r8, ror #22 + and r11, r10, r9, ror #30 + and r9, r9, r10, ror #4 + orr r9, r11, r9, ror #22 //ror and masks to match fixslicing --- + eor r8, r8, #0x00010400 + eor r9, r9, #0x00000400 + mvn r9, r9 //to save a NOT in sbox calculations + strd r6, r7, [r0], #8 //store 1st half tk for 24th round + strd r8, r9, [r0], #24 //store 2nd half tk for 24th round + ldm r0, {r6-r9} //load tk + bl p10 //apply the permutation 10 times + movw r10, #0xc3c3 + movt r10, #0xc3c3 //r10<- 0xc3c3c3c3 + and r11, r10, r6, ror #26 //ror and mask to match fixslicing + and r12, r10, r7, ror #26 //ror and mask to match fixslicing + strd r11, r12, [r0], #8 //store 1st half tk for 26th round + and r11, r10, r8, ror #26 //ror and mask to match fixslicing + and r12, r10, r9, ror #26 //ror and mask to match fixslicing + eor r11, r11, #0x10000000 //add rconst + eor r11, r11, #0x00000100 //add rconst + mvn r12, r12 //to save a NOT in sbox calculations + strd r11, r12, [r0], #8 //store 2nd half tk for 26th round + and r10, r10, r10, lsr #6 //r10<- 0x03030303 + and r11, r10, r6, ror #28 //--- ror and masks to match fixslicing + and r6, r6, r10, lsl #6 + orr r6, r11, r6, ror #12 + and r11, r10, r7, ror #28 + and r7, r7, r10, lsl #6 + orr r7, r11, r7, ror #12 + and r11, r10, r8, ror #28 + and r8, r8, r10, lsl #6 + orr r8, r11, r8, ror #12 + and r11, r10, r9, ror #28 + and r9, r9, r10, lsl #6 + orr r9, r11, r9, ror #12 //ror and masks to match fixslicing --- + eor r7, r7, #0x04000000 //add rconst + eor r8, r8, #0x40000000 //add rconst + eor r9, r9, #0x04000000 //add rconst + mvn r9, r9 //to save a NOT in sbox calculations + strd r8, r9, [r0], #8 //store 1st half tk for 27th round + strd r6, r7, [r0], #8 //store 2nd half tk for 27th round + ldm r0, {r6-r9} //load tk + bl p12 //apply the permutation 4 times + movw r10, #0xf0f0 + movt r10, #0xf0f0 //r10<- 0xf0f0f0f0 + and r11, r10, r6, ror #16 //ror and mask to match fixslicing + and r12, r10, r7, ror #16 //ror and mask to match fixslicing + eor r12, r12, #0x00400000 //add rconst + strd r11, r12, [r0, #24] //store 2nd half tk for 29th round + and r11, r10, r8, ror #16 //ror and mask to match fixslicing + and r12, r10, r9, ror #16 //ror and mask to match fixslicing + eor r11, r11, #0x00440000 //add rconst + eor r12, r12, #0x00500000 //add rconst + mvn r12, r12 //to save a NOT in sbox calculations + strd r11, r12, [r0, #16] //store 1st half tk for 29th round + and r10, r10, r10, lsr #2 //r10<- 0x30303030 + and r11, r10, r6, ror #14 //--- ror and masks to match fixslicing + and r6, r6, r10, ror #4 + orr r6, r11, r6, ror #6 + and r11, r10, r7, ror #14 + and r7, r7, r10, ror #4 + orr r7, r11, r7, ror #6 + and r11, r10, r8, ror #14 + and r8, r8, r10, ror #4 + orr r8, r11, r8, ror #6 + and r11, r10, r9, ror #14 + and r9, r9, r10, ror #4 + orr r9, r11, r9, ror #6 //ror and masks to match fixslicing --- + eor r6, r6, #0x00100000 //add rconst + eor r8, r8, #0x00100000 //add rconst + eor r8, r8, #0x00000001 //add rconst + eor r9, r9, #0x00100000 //add rconst + mvn r9, r9 //to save a NOT in sbox calculations + strd r6, r7, [r0], #8 //store 1st half tk for 28th round + strd r8, r9, [r0], #24 //store 2nd half tk for 28th round + ldm r0, {r6-r9} //load tk + bl p14 //apply the permutation 6 times + movw r10, #0xc3c3 + movt r10, #0xc3c3 //r10<- 0xc3c3c3c3 + and r11, r10, r6, ror #10 //ror and mask to match fixslicing + and r12, r10, r7, ror #10 //ror and mask to match fixslicing + eor r11, r11, #0x01000000 //add rconst + eor r12, r12, #0x01000000 //add rconst + strd r11, r12, [r0], #8 //store 1st half tk for 30th round + and r11, r10, r8, ror #10 //ror and mask to match fixslicing + and r12, r10, r9, ror #10 //ror and mask to match fixslicing + eor r11, r11, #0x01400000 //add rconst + eor r11, r11, #0x00001000 //add rconst + mvn r12, r12 //to save a NOT in sbox calculations + strd r11, r12, [r0], #8 //store 2nd half tk for 30th round + and r10, r10, r10, lsr #6 //r10<- 0x03030303 + and r11, r10, r6, ror #12 //--- ror and masks to match fixslicing + and r6, r6, r10, lsl #6 + orr r6, r11, r6, ror #28 + and r11, r10, r7, ror #12 + and r7, r7, r10, lsl #6 + orr r7, r11, r7, ror #28 + and r11, r10, r8, ror #12 + and r8, r8, r10, lsl #6 + orr r8, r11, r8, ror #28 + and r11, r10, r9, ror #12 + and r9, r9, r10, lsl #6 + orr r9, r11, r9, ror #28 //ror and masks to match fixslicing --- + eor r6, r6, #0x00000400 //add rconst + eor r7, r7, #0x00000400 //add rconst + eor r8, r8, #0x00004000 //add rconst + eor r9, r9, #0x01000000 //add rconst + mvn r9, r9 //to save a NOT in sbox calculations + strd r8, r9, [r0], #8 //store 1st half tk for 31th round + strd r6, r7, [r0], #8 //store 2nd half tk for 31th round + ldm r0, {r6-r9} //load tk + movw r10, #0xf0f0 + movt r10, #0xf0f0 //r10<- 0xf0f0f0f0 + and r11, r10, r6 //ror and mask to match fixslicing + and r12, r10, r7 //ror and mask to match fixslicing + strd r11, r12, [r0, #24] //store 2nd half tk for 33th round + and r11, r10, r8 //ror and mask to match fixslicing + and r12, r10, r9 //ror and mask to match fixslicing + eor r11, r11, #0x00000014 //add rconst + eor r12, r12, #0x00000050 //add rconst + mvn r12, r12 //to save a NOT in sbox calculations + strd r11, r12, [r0, #16] //store 1st half tk for 33th round + and r10, r10, r10, lsr #2 //r10<- 0x30303030 + and r11, r10, r6, ror #30 //--- ror and masks to match fixslicing + and r6, r6, r10, ror #4 + orr r6, r11, r6, ror #22 + and r11, r10, r7, ror #30 + and r7, r7, r10, ror #4 + orr r7, r11, r7, ror #22 + and r11, r10, r8, ror #30 + and r8, r8, r10, ror #4 + orr r8, r11, r8, ror #22 + and r11, r10, r9, ror #30 + and r9, r9, r10, ror #4 + orr r9, r11, r9, ror #22 //ror and masks to match fixslicing --- + eor r6 ,r6, #0x00000010 + eor r8, r8, #0x00010400 + eor r9, r9, #0x00000400 + mvn r9, r9 //to save a NOT in sbox calculations + strd r6, r7, [r0], #8 //store 1st half tk for 32th round + strd r8, r9, [r0], #24 //store 2nd half tk for 32th round + ldm r0, {r6-r9} //load tk + bl p2 //apply the permutation twice + movw r10, #0xc3c3 + movt r10, #0xc3c3 //r10<- 0xc3c3c3c3 + and r11, r10, r6, ror #26 //ror and mask to match fixslicing + and r12, r10, r7, ror #26 //ror and mask to match fixslicing + strd r11, r12, [r0], #8 //store 1st half tk for 34th round + and r11, r10, r8, ror #26 //ror and mask to match fixslicing + and r12, r10, r9, ror #26 //ror and mask to match fixslicing + eor r11, r11, #0x10000000 //add rconst + eor r11, r11, #0x00000140 //add rconst + eor r12, r12, #0x00000100 //add rconst + mvn r12, r12 //to save a NOT in sbox calculations + strd r11, r12, [r0], #8 //store 2nd half tk for 34th round + and r10, r10, r10, lsr #6 //r10<- 0x03030303 + and r11, r10, r6, ror #28 //--- ror and masks to match fixslicing + and r6, r6, r10, lsl #6 + orr r6, r11, r6, ror #12 + and r11, r10, r7, ror #28 + and r7, r7, r10, lsl #6 + orr r7, r11, r7, ror #12 + and r11, r10, r8, ror #28 + and r8, r8, r10, lsl #6 + orr r8, r11, r8, ror #12 + and r11, r10, r9, ror #28 + and r9, r9, r10, lsl #6 + orr r9, r11, r9, ror #12 //ror and masks to match fixslicing --- + eor r7, r7, #0x04000000 //add rconst + eor r8, r8, #0x44000000 //add rconst + mvn r9, r9 //to save a NOT in sbox calculations + strd r8, r9, [r0], #8 //store 1st half tk for 35th round + strd r6, r7, [r0], #8 //store 2nd half tk for 35th round + ldm r0, {r6-r9} //load tk + bl p4 //apply the permutation 4 times + movw r10, #0xf0f0 + movt r10, #0xf0f0 //r10<- 0xf0f0f0f0 + and r11, r10, r6, ror #16 //ror and mask to match fixslicing + and r12, r10, r7, ror #16 //ror and mask to match fixslicing + eor r11, r11, #0x00400000 //add rconst + strd r11, r12, [r0, #24] //store 2nd half tk for 37th round + and r11, r10, r8, ror #16 //ror and mask to match fixslicing + and r12, r10, r9, ror #16 //ror and mask to match fixslicing + eor r11, r11, #0x00440000 //add rconst + eor r12, r12, #0x00500000 //add rconst + mvn r12, r12 //to save a NOT in sbox calculations + strd r11, r12, [r0, #16] //store 1st half tk for 37th round + and r10, r10, r10, lsr #2 //r10<- 0x30303030 + and r11, r10, r6, ror #14 //--- ror and masks to match fixslicing + and r6, r6, r10, ror #4 + orr r6, r11, r6, ror #6 + and r11, r10, r7, ror #14 + and r7, r7, r10, ror #4 + orr r7, r11, r7, ror #6 + and r11, r10, r8, ror #14 + and r8, r8, r10, ror #4 + orr r8, r11, r8, ror #6 + and r11, r10, r9, ror #14 + and r9, r9, r10, ror #4 + orr r9, r11, r9, ror #6 //ror and masks to match fixslicing --- + eor r6, r6, #0x00100000 //add rconst + eor r7, r7, #0x00100000 //add rconst + eor r8, r8, #0x00000001 //add rconst + eor r9, r9, #0x00100000 //add rconst + mvn r9, r9 //to save a NOT in sbox calculations + strd r6, r7, [r0], #8 //store 1st half tk for 36th round + strd r8, r9, [r0], #24 //store 2nd half tk for 36th round + ldm r0, {r6-r9} //load tk + bl p6 //apply the permutation 6 times + movw r10, #0xc3c3 + movt r10, #0xc3c3 //r10<- 0xc3c3c3c3 + and r11, r10, r6, ror #10 //ror and mask to match fixslicing + and r12, r10, r7, ror #10 //ror and mask to match fixslicing + eor r12, r12, #0x01000000 //add rconst + strd r11, r12, [r0], #8 //store 1st half tk for 38th round + and r11, r10, r8, ror #10 //ror and mask to match fixslicing + and r12, r10, r9, ror #10 //ror and mask to match fixslicing + eor r11, r11, #0x01400000 //add rconst + eor r11, r11, #0x00001000 //add rconst + eor r12, r12, #0x00400000 //add rconst + mvn r12, r12 //to save a NOT in sbox calculations + strd r11, r12, [r0], #8 //store 2nd half tk for 38th round + and r10, r10, r10, lsr #6 //r10<- 0x03030303 + and r11, r10, r6, ror #12 //--- ror and masks to match fixslicing + and r6, r6, r10, lsl #6 + orr r6, r11, r6, ror #28 + and r11, r10, r7, ror #12 + and r7, r7, r10, lsl #6 + orr r7, r11, r7, ror #28 + and r11, r10, r8, ror #12 + and r8, r8, r10, lsl #6 + orr r8, r11, r8, ror #28 + and r11, r10, r9, ror #12 + and r9, r9, r10, lsl #6 + orr r9, r11, r9, ror #28 //ror and masks to match fixslicing --- + eor r6, r6, #0x00000400 //add rconst + eor r7, r7, #0x00000400 //add rconst + eor r8, r8, #0x01000000 + eor r8, r8, #0x00004000 //add rconst + eor r9, r9, #0x00000400 //add rconst + mvn r9, r9 //to save a NOT in sbox calculations + strd r8, r9, [r0], #8 //store 1st half tk for 39th round + strd r6, r7, [r0], #8 //store 2nd half tk for 39th round + ldm r0, {r6-r9} //load tk + bl p8 //apply the permutation 8 times + movw r10, #0xf0f0 + movt r10, #0xf0f0 //r10<- 0xf0f0f0f0 + and r11, r10, r6 //ror and mask to match fixslicing + and r12, r10, r7 //ror and mask to match fixslicing + eor r12, r12, #0x00000040 //add rconst + strd r11, r12, [r0, #24] //store 2nd half tk for 41th round + and r11, r10, r8 //ror and mask to match fixslicing + and r12, r10, r9 //ror and mask to match fixslicing + eor r11, r11, #0x00000014 //add rconst + eor r12, r12, #0x00000010 //add rconst + mvn r12, r12 //to save a NOT in sbox calculations + strd r11, r12, [r0, #16] //store 1st half tk for 41th round + and r10, r10, r10, lsr #2 //r10<- 0x30303030 + and r11, r10, r6, ror #30 //--- ror and masks to match fixslicing + and r6, r6, r10, ror #4 + orr r6, r11, r6, ror #22 + and r11, r10, r7, ror #30 + and r7, r7, r10, ror #4 + orr r7, r11, r7, ror #22 + and r11, r10, r8, ror #30 + and r8, r8, r10, ror #4 + orr r8, r11, r8, ror #22 + and r11, r10, r9, ror #30 + and r9, r9, r10, ror #4 + orr r9, r11, r9, ror #22 //ror and masks to match fixslicing --- + eor r6, r6, #0x00000010 + eor r8, r8, #0x00010000 + eor r8, r8, #0x00000010 + eor r9, r9, #0x00000400 + mvn r9, r9 //to save a NOT in sbox calculations + strd r6, r7, [r0], #8 //store 1st half tk for 40th round + strd r8, r9, [r0], #24 //store 2nd half tk for 40th round + ldm r0, {r6-r9} //load tk + bl p10 //apply the permutation 10 times + movw r10, #0xc3c3 + movt r10, #0xc3c3 //r10<- 0xc3c3c3c3 + and r11, r10, r6, ror #26 //ror and mask to match fixslicing + and r12, r10, r7, ror #26 //ror and mask to match fixslicing + eor r11, r11, #0x00000100 //add rconst + strd r11, r12, [r0], #8 //store 1st half tk for 42th round + and r11, r10, r8, ror #26 //ror and mask to match fixslicing + and r12, r10, r9, ror #26 //ror and mask to match fixslicing + eor r11, r11, #0x10000000 //add rconst + eor r11, r11, #0x00000040 //add rconst + eor r12, r12, #0x00000100 //add rconst + mvn r12, r12 //to save a NOT in sbox calculations + strd r11, r12, [r0], #8 //store 2nd half tk for 42th round + and r10, r10, r10, lsr #6 //r10<- 0x03030303 + and r11, r10, r6, ror #28 //--- ror and masks to match fixslicing + and r6, r6, r10, lsl #6 + orr r6, r11, r6, ror #12 + and r11, r10, r7, ror #28 + and r7, r7, r10, lsl #6 + orr r7, r11, r7, ror #12 + and r11, r10, r8, ror #28 + and r8, r8, r10, lsl #6 + orr r8, r11, r8, ror #12 + and r11, r10, r9, ror #28 + and r9, r9, r10, lsl #6 + orr r9, r11, r9, ror #12 //ror and masks to match fixslicing --- + eor r8, r8, #0x44000000 //add rconst + eor r9, r9, #0x00000100 //add rconst + mvn r9, r9 //to save a NOT in sbox calculations + strd r8, r9, [r0], #8 //store 1st half tk for 43th round + strd r6, r7, [r0], #8 //store 2nd half tk for 43th round + ldm r0, {r6-r9} //load tk + bl p12 //apply the permutation 4 times + movw r10, #0xf0f0 + movt r10, #0xf0f0 //r10<- 0xf0f0f0f0 + and r11, r10, r6, ror #16 //ror and mask to match fixslicing + and r12, r10, r7, ror #16 //ror and mask to match fixslicing + eor r11, r11, #0x00400000 //add rconst + strd r11, r12, [r0, #24] //store 2nd half tk for 45th round + and r11, r10, r8, ror #16 //ror and mask to match fixslicing + and r12, r10, r9, ror #16 //ror and mask to match fixslicing + eor r11, r11, #0x00040000 //add rconst + mvn r12, r12 //to save a NOT in sbox calculations + strd r11, r12, [r0, #16] //store 1st half tk for 45th round + and r10, r10, r10, lsr #2 //r10<- 0x30303030 + and r11, r10, r6, ror #14 //--- ror and masks to match fixslicing + and r6, r6, r10, ror #4 + orr r6, r11, r6, ror #6 + and r11, r10, r7, ror #14 + and r7, r7, r10, ror #4 + orr r7, r11, r7, ror #6 + and r11, r10, r8, ror #14 + and r8, r8, r10, ror #4 + orr r8, r11, r8, ror #6 + and r11, r10, r9, ror #14 + and r9, r9, r10, ror #4 + orr r9, r11, r9, ror #6 //ror and masks to match fixslicing --- + eor r7, r7, #0x00100000 //add rconst + eor r8, r8, #0x04000000 //add rconst + eor r8, r8, #0x00000001 //add rconst + mvn r9, r9 //to save a NOT in sbox calculations + strd r6, r7, [r0], #8 //store 1st half tk for 44th round + strd r8, r9, [r0], #24 //store 2nd half tk for 44th round + ldm r0, {r6-r9} //load tk + bl p14 //apply the permutation 6 times + movw r10, #0xc3c3 + movt r10, #0xc3c3 //r10<- 0xc3c3c3c3 + and r11, r10, r6, ror #10 //ror and mask to match fixslicing + and r12, r10, r7, ror #10 //ror and mask to match fixslicing + strd r11, r12, [r0], #8 //store 1st half tk for 46th round + and r11, r10, r8, ror #10 //ror and mask to match fixslicing + and r12, r10, r9, ror #10 //ror and mask to match fixslicing + eor r11, r11, #0x00001000 //add rconst + eor r12, r12, #0x01400000 //add rconst + mvn r12, r12 //to save a NOT in sbox calculations + strd r11, r12, [r0], #8 //store 2nd half tk for 46th round + and r10, r10, r10, lsr #6 //r10<- 0x03030303 + and r11, r10, r6, ror #12 //--- ror and masks to match fixslicing + and r6, r6, r10, lsl #6 + orr r6, r11, r6, ror #28 + and r11, r10, r7, ror #12 + and r7, r7, r10, lsl #6 + orr r7, r11, r7, ror #28 + and r11, r10, r8, ror #12 + and r8, r8, r10, lsl #6 + orr r8, r11, r8, ror #28 + and r11, r10, r9, ror #12 + and r9, r9, r10, lsl #6 + orr r9, r11, r9, ror #28 //ror and masks to match fixslicing --- + eor r8, r8, #0x01000000 //add rconst + eor r8, r8, #0x00004400 //add rconst + mvn r9, r9 //to save a NOT in sbox calculations + strd r8, r9, [r0], #8 //store 1st half tk for 47th round + strd r6, r7, [r0], #8 //store 2nd half tk for 47th round + ldm r0, {r6-r9} //load tk + movw r10, #0xf0f0 + movt r10, #0xf0f0 //r10<- 0xf0f0f0f0 + and r11, r10, r6 //ror and mask to match fixslicing + and r12, r10, r7 //ror and mask to match fixslicing + eor r11, r11, #0x00000040 //add rconst + strd r11, r12, [r0, #24] //store 2nd half tk for 49th round + and r11, r10, r8 //ror and mask to match fixslicing + and r12, r10, r9 //ror and mask to match fixslicing + eor r11, r11, #0x00000004 //add rconst + eor r12, r12, #0x00000040 //add rconst + mvn r12, r12 //to save a NOT in sbox calculations + strd r11, r12, [r0, #16] //store 1st half tk for 49th round + and r10, r10, r10, lsr #2 //r10<- 0x30303030 + and r11, r10, r6, ror #30 //--- ror and masks to match fixslicing + and r6, r6, r10, ror #4 + orr r6, r11, r6, ror #22 + and r11, r10, r7, ror #30 + and r7, r7, r10, ror #4 + orr r7, r11, r7, ror #22 + and r11, r10, r8, ror #30 + and r8, r8, r10, ror #4 + orr r8, r11, r8, ror #22 + and r11, r10, r9, ror #30 + and r9, r9, r10, ror #4 + orr r9, r11, r9, ror #22 //ror and masks to match fixslicing --- + eor r7 ,r7, #0x00000010 + eor r8, r8, #0x00010000 + mvn r9, r9 //to save a NOT in sbox calculations + strd r6, r7, [r0], #8 //store 1st half tk for 48th round + strd r8, r9, [r0], #24 //store 2nd half tk for 48th round + ldm r0, {r6-r9} //load tk + bl p2 //apply the permutation twice + movw r10, #0xc3c3 + movt r10, #0xc3c3 //r10<- 0xc3c3c3c3 + and r11, r10, r6, ror #26 //ror and mask to match fixslicing + and r12, r10, r7, ror #26 //ror and mask to match fixslicing + strd r11, r12, [r0], #8 //store 1st half tk for 50th round + and r11, r10, r8, ror #26 //ror and mask to match fixslicing + and r12, r10, r9, ror #26 //ror and mask to match fixslicing + eor r11, r11, #0x10000000 //add rconst + eor r11, r11, #0x00000100 //add rconst + eor r12, r12, #0x00000140 //add rconst + mvn r12, r12 //to save a NOT in sbox calculations + strd r11, r12, [r0], #8 //store 2nd half tk for 50th round + and r10, r10, r10, lsr #6 //r10<- 0x03030303 + and r11, r10, r6, ror #28 //--- ror and masks to match fixslicing + and r6, r6, r10, lsl #6 + orr r6, r11, r6, ror #12 + and r11, r10, r7, ror #28 + and r7, r7, r10, lsl #6 + orr r7, r11, r7, ror #12 + and r11, r10, r8, ror #28 + and r8, r8, r10, lsl #6 + orr r8, r11, r8, ror #12 + and r11, r10, r9, ror #28 + and r9, r9, r10, lsl #6 + orr r9, r11, r9, ror #12 //ror and masks to match fixslicing --- + eor r7, r7, #0x04000000 //add rconst + eor r8, r8, #0x44000000 //add rconst + eor r8, r8, #0x00000100 //add rconst + mvn r9, r9 //to save a NOT in sbox calculations + strd r8, r9, [r0], #8 //store 1st half tk for 51th round + strd r6, r7, [r0], #8 //store 2nd half tk for 51th round + ldm r0, {r6-r9} //load tk + bl p4 //apply the permutation 4 times + movw r10, #0xf0f0 + movt r10, #0xf0f0 //r10<- 0xf0f0f0f0 + and r11, r10, r6, ror #16 //ror and mask to match fixslicing + and r12, r10, r7, ror #16 //ror and mask to match fixslicing + eor r11, r11, #0x00400000 //add rconst + strd r11, r12, [r0, #24] //store 2nd half tk for 53th round + and r11, r10, r8, ror #16 //ror and mask to match fixslicing + and r12, r10, r9, ror #16 //ror and mask to match fixslicing + eor r11, r11, #0x00040000 //add rconst + eor r12, r12, #0x00500000 //add rconst + mvn r12, r12 //to save a NOT in sbox calculations + strd r11, r12, [r0, #16] //store 1st half tk for 53th round + and r10, r10, r10, lsr #2 //r10<- 0x30303030 + and r11, r10, r6, ror #14 //--- ror and masks to match fixslicing + and r6, r6, r10, ror #4 + orr r6, r11, r6, ror #6 + and r11, r10, r7, ror #14 + and r7, r7, r10, ror #4 + orr r7, r11, r7, ror #6 + and r11, r10, r8, ror #14 + and r8, r8, r10, ror #4 + orr r8, r11, r8, ror #6 + and r11, r10, r9, ror #14 + and r9, r9, r10, ror #4 + orr r9, r11, r9, ror #6 //ror and masks to match fixslicing --- + eor r6, r6, #0x00100000 //add rconst + eor r7, r7, #0x00100000 //add rconst + eor r8, r8, #0x00000001 //add rconst + mvn r9, r9 //to save a NOT in sbox calculations + strd r6, r7, [r0], #8 //store 1st half tk for 52th round + strd r8, r9, [r0], #24 //store 2nd half tk for 52th round + ldm r0, {r6-r9} //load tk + bl p6 //apply the permutation 6 times + movw r10, #0xc3c3 + movt r10, #0xc3c3 //r10<- 0xc3c3c3c3 + and r11, r10, r6, ror #10 //ror and mask to match fixslicing + and r12, r10, r7, ror #10 //ror and mask to match fixslicing + strd r11, r12, [r0], #8 //store 1st half tk for 54th round + and r11, r10, r8, ror #10 //ror and mask to match fixslicing + and r12, r10, r9, ror #10 //ror and mask to match fixslicing + eor r11, r11, #0x01400000 //add rconst + eor r11, r11, #0x00001000 //add rconst + eor r12, r12, #0x00400000 //add rconst + mvn r12, r12 //to save a NOT in sbox calculations + strd r11, r12, [r0], #8 //store 2nd half tk for 54th round + and r10, r10, r10, lsr #6 //r10<- 0x03030303 + and r11, r10, r6, ror #12 //--- ror and masks to match fixslicing + and r6, r6, r10, lsl #6 + orr r6, r11, r6, ror #28 + and r11, r10, r7, ror #12 + and r7, r7, r10, lsl #6 + orr r7, r11, r7, ror #28 + and r11, r10, r8, ror #12 + and r8, r8, r10, lsl #6 + orr r8, r11, r8, ror #28 + and r11, r10, r9, ror #12 + and r9, r9, r10, lsl #6 + orr r9, r11, r9, ror #28 //ror and masks to match fixslicing --- + eor r7, r7, #0x00000400 //add rconst + eor r8, r8, #0x01000000 + eor r8, r8, #0x00004000 //add rconst + eor r9, r9, #0x00000400 //add rconst + mvn r9, r9 //to save a NOT in sbox calculations + strd r8, r9, [r0], #8 //store 1st half tk for 55th round + strd r6, r7, [r0], #8 //store 2nd half tk for 55th round + ldm r0, {r6-r9} //load tk + bl p8 //apply the permutation 8 times + movw r10, #0x3030 + movt r10, #0x3030 //r10<- 0x30303030 + and r11, r10, r6, ror #30 //--- ror and masks to match fixslicing + and r6, r6, r10, ror #4 + orr r6, r11, r6, ror #22 + and r11, r10, r7, ror #30 + and r7, r7, r10, ror #4 + orr r7, r11, r7, ror #22 + and r11, r10, r8, ror #30 + and r8, r8, r10, ror #4 + orr r8, r11, r8, ror #22 + and r11, r10, r9, ror #30 + and r9, r9, r10, ror #4 + orr r9, r11, r9, ror #22 //ror and masks to match fixslicing --- + eor r6, r6, #0x00000010 + eor r8, r8, #0x00010000 + eor r8, r8, #0x00000010 + mvn r9, r9 //to save a NOT in sbox calculations + strd r6, r7, [r0], #8 //store 1st half tk for 56th round + strd r8, r9, [r0], #24 //store 2nd half tk for 56th round + add.w sp, #4 + pop {r0-r12, lr} + bx lr + +/****************************************************************************** +* Applies the permutations P^2, ..., P^14 for rounds 0 to 16. Since P^16=Id, we +* don't need more calculations as no LFSR is applied to TK1. +******************************************************************************/ +@ void tkschedule_perm_tk1(u32* tk, const u8* key) +.global tkschedule_perm_tk1 +.type tkschedule_perm_tk1,%function +.align 2 +tkschedule_perm_tk1: + push {r0-r12, lr} + ldr.w r3, [r1, #8] //load tk1 (3rd word) + ldr.w r4, [r1, #4] //load tk1 (2nd word) + ldr.w r5, [r1, #12] //load tk1 (4th word) + ldr.w r2, [r1] //load tk1 (1st word) + movw r10, #0x0a0a + movt r10, #0x0a0a //r6 <- 0x0a0a0a0a + movw r11, #0x3030 + movt r11, #0x3030 //r7 <- 0x30303030 + bl packing //pack tk1 + mov r6, r2 //move tk1 from r2-r5 to r6-r9 + mov r7, r3 //move tk1 from r2-r5 to r6-r9 + mov r8, r4 //move tk1 from r2-r5 to r6-r9 + mov r9, r5 //move tk1 from r2-r5 to r6-r9 + movw r2, #0xf0f0 + movt r2, #0xf0f0 //r2<- 0xf0f0f0f0 + and r11, r8, r2 //tk &= 0xf0f0f0f0 (3rd word) + and r12, r9, r2 //tk &= 0xf0f0f0f0 (4th word) + strd r11, r12, [r0], #8 //store 1st half tk for 1st round + and r11, r6, r2 //tk &= 0xf0f0f0f0 (1st word) + and r12, r7, r2 //tk &= 0xf0f0f0f0 (2nd word) + strd r11, r12, [r0], #8 //store 2nd half tk for 1st round + + bl p2 //apply the permutation twice + movw r3, #0x0303 + movt r3, #0x0303 //r3<- 0x03030303 + and r11, r3, r6, ror #28 //--- ror and masks to match fixslicing + and r12, r6, r3, lsl #6 + orr r12, r11, r12, ror #12 + str.w r12, [r0, #8] + and r11, r3, r7, ror #28 + and r12, r7, r3, lsl #6 + orr r12, r11, r12, ror #12 + str.w r12, [r0, #12] + and r11, r3, r9, ror #28 + and r12, r9, r3, lsl #6 + orr r12, r11, r12, ror #12 + str.w r12, [r0, #4] + and r11, r3, r8, ror #28 + and r12, r8, r3, lsl #6 + orr r12, r11, r12, ror #12 + str.w r12, [r0], #16 //ror and masks to match fixslicing --- + bl p2 //apply the permutation 4 times + and r11, r2, r6, ror #16 //ror and mask to match fixslicing + and r12, r2, r7, ror #16 //ror and mask to match fixslicing + strd r11, r12, [r0, #8] //store 2nd half tk for 5th round + and r11, r2, r8, ror #16 //ror and mask to match fixslicing + and r12, r2, r9, ror #16 //ror and mask to match fixslicing + strd r11, r12, [r0], #16 //store 1st half tk for 5th round + bl p2 //apply the permutation 6 times + and r11, r3, r6, ror #12 //--- ror and masks to match fixslicing + and r12, r6, r3, lsl #6 + orr r12, r11, r12, ror #28 + str.w r12, [r0, #8] + and r11, r3, r7, ror #12 + and r12, r7, r3, lsl #6 + orr r12, r11, r12, ror #28 + str.w r12, [r0, #12] + and r11, r3, r9, ror #12 + and r12, r9, r3, lsl #6 + orr r12, r11, r12, ror #28 + str.w r12, [r0, #4] + and r11, r3, r8, ror #12 + and r12, r8, r3, lsl #6 + orr r12, r11, r12, ror #28 + str.w r12, [r0], #16 //ror and masks to match fixslicing --- + bl p2 //apply the permutation 8 times + and r11, r2, r6 //ror and mask to match fixslicing + and r12, r2, r7 //ror and mask to match fixslicing + strd r11, r12, [r0, #8] //store 2nd half tk for 9th round + and r11, r2, r8 //ror and mask to match fixslicing + and r12, r2, r9 //ror and mask to match fixslicing + strd r11, r12, [r0], #16 //store 1st half tk for 9th round + bl p2 //apply the permutation 10 + and r11, r3, r6, ror #28 //--- ror and masks to match fixslicing + and r12, r6, r3, lsl #6 + orr r12, r11, r12, ror #12 + str.w r12, [r0, #8] + and r11, r3, r7, ror #28 + and r12, r7, r3, lsl #6 + orr r12, r11, r12, ror #12 + str.w r12, [r0, #12] + and r11, r3, r9, ror #28 + and r12, r9, r3, lsl #6 + orr r12, r11, r12, ror #12 + str.w r12, [r0, #4] + and r11, r3, r8, ror #28 + and r12, r8, r3, lsl #6 + orr r12, r11, r12, ror #12 + str.w r12, [r0], #16 //ror and masks to match fixslicing --- + bl p2 //apply the permutation 12 times + and r11, r2, r6, ror #16 //ror and mask to match fixslicing + and r12, r2, r7, ror #16 //ror and mask to match fixslicing + strd r11, r12, [r0, #8] //store 2nd half tk for 5th round + and r11, r2, r8, ror #16 //ror and mask to match fixslicing + and r12, r2, r9, ror #16 //ror and mask to match fixslicing + strd r11, r12, [r0], #16 //store 1st half tk for 5th round + bl p2 //apply the permutation 14 times + and r11, r3, r6, ror #12 //--- ror and masks to match fixslicing + and r12, r6, r3, lsl #6 + orr r12, r11, r12, ror #28 + str.w r12, [r0, #8] + and r11, r3, r7, ror #12 + and r12, r7, r3, lsl #6 + orr r12, r11, r12, ror #28 + str.w r12, [r0, #12] + and r11, r3, r9, ror #12 + and r12, r9, r3, lsl #6 + orr r12, r11, r12, ror #28 + str.w r12, [r0, #4] + and r11, r3, r8, ror #12 + and r12, r8, r3, lsl #6 + orr r12, r11, r12, ror #28 + str.w r12, [r0] //ror and masks to match fixslicing --- + pop {r0-r12, lr} + bx lr + +.align 2 +quadruple_round: + orr r8, r2, r3 + eor r5, r5, r8 + mvn r5, r5 + eor r8, r3, r4, lsr #1 + and r8, r8, r6 + eor r3, r3, r8 + eor r4, r4, r8, lsl #1 //SWAPMOVE(r4, r3, 0x55555555, 1); + eor r8, r4, r5, lsr #1 + and r8, r8, r6 + eor r4, r4, r8 + eor r5, r5, r8, lsl #1 //SWAPMOVE(r5, r4, 0x55555555, 1); + orr r8, r4, r5 + eor r3, r3, r8 + mvn r3, r3 + eor r8, r2, r3, lsr #1 + and r8, r8, r6 + eor r2, r2, r8 + eor r3, r3, r8, lsl #1 //SWAPMOVE(r3, r2, 0x55555555, 1); + eor r8, r5, r2, lsr #1 + and r8, r8, r6 + eor r5, r5, r8 + eor r2, r2, r8, lsl #1 //SWAPMOVE(r2, r5, 0x55555555, 1); + orr r8, r2, r3 + eor r5, r5, r8 + mvn r5, r5 + eor r8, r3, r4, lsr #1 + and r8, r8, r6 + eor r3, r3, r8 + eor r4, r4, r8, lsl #1 //SWAPMOVE(r4, r3, 0x55555555, 1); + eor r8, r4, r5, lsr #1 + and r8, r8, r6 + eor r4, r4, r8 + eor r5, r5, r8, lsl #1 //SWAPMOVE(r5, r4, 0x55555555, 1); + orr r8, r4, r5 + eor r3, r3, r8 + eor r8, r2, r5 + and r8, r8, r6 + eor r2, r2, r8 + eor r5, r5, r8 //SWAPMOVE(r5, r2, 0x55555555, 0); + ldmia.w r1!, {r8-r11} //load rkeys in r8,...,r11 + eor r2, r2, r8 //add rtk_2_3 + rconst + eor r3, r3, r9 //add rtk_2_3 + rconst + eor r4, r4, r10 //add rtk_2_3 + rconst + eor r5, r5, r11 //add rtk_2_3 + rconst + ldmia.w r0!,{r8-r11} + eor r2, r2, r8 //add rtk_1 + eor r3, r3, r9 //add rtk_1 + eor r4, r4, r10 //add rtk_1 + eor r5, r5, r11 //add rtk_1 + and r8, r7, r2, ror #30 // --- mixcolumns 0 --- + eor r2, r2, r8, ror #24 + and r8, r7, r2, ror #18 + eor r2, r2, r8, ror #2 + and r8, r7, r2, ror #6 + eor r2, r2, r8, ror #4 + and r8, r7, r3, ror #30 + eor r3, r3, r8, ror #24 + and r8, r7, r3, ror #18 + eor r3, r3, r8, ror #2 + and r8, r7, r3, ror #6 + eor r3, r3, r8, ror #4 + and r8, r7, r4, ror #30 + eor r4, r4, r8, ror #24 + and r8, r7, r4, ror #18 + eor r4, r4, r8, ror #2 + and r8, r7, r4, ror #6 + eor r4, r4, r8, ror #4 + and r8, r7, r5, ror #30 + eor r5, r5, r8, ror #24 + and r8, r7, r5, ror #18 + eor r5, r5, r8, ror #2 + and r8, r7, r5, ror #6 + eor r5, r5, r8, ror #4 + orr r8, r4, r5 + eor r3, r3, r8 + mvn r3, r3 + eor r8, r2, r3, lsr #1 + and r8, r8, r6 + eor r2, r2, r8 + eor r3, r3, r8, lsl #1 //SWAPMOVE(r3, r2, 0x55555555, 1); + eor r8, r5, r2, lsr #1 + and r8, r8, r6 + eor r5, r5, r8 + eor r2, r2, r8, lsl #1 //SWAPMOVE(r2, r5, 0x55555555, 1); + orr r8, r2, r3 + eor r5, r5, r8 + mvn r5, r5 + eor r8, r3, r4, lsr #1 + and r8, r8, r6 + eor r3, r3, r8 + eor r4, r4, r8, lsl #1 //SWAPMOVE(r4, r3, 0x55555555, 1); + eor r8, r4, r5, lsr #1 + and r8, r8, r6 + eor r4, r4, r8 + eor r5, r5, r8, lsl #1 //SWAPMOVE(r5, r4, 0x55555555, 1); + orr r8, r4, r5 + eor r3, r3, r8 + mvn r3, r3 + eor r8, r2, r3, lsr #1 + and r8, r8, r6 + eor r2, r2, r8 + eor r3, r3, r8, lsl #1 //SWAPMOVE(r3, r2, 0x55555555, 1); + eor r8, r5, r2, lsr #1 + and r8, r8, r6 + eor r5, r5, r8 + eor r2, r2, r8, lsl #1 //SWAPMOVE(r2, r5, 0x55555555, 1); + orr r8, r2, r3 + eor r5, r5, r8 + eor r8, r3, r4 + and r8, r8, r6 + eor r3, r3, r8 + eor r4, r4, r8 //SWAPMOVE(r4, r3, 0x55555555, 0); + ldmia.w r1!, {r8-r11} //load rkeys in r8,...,r11 + eor r2, r2, r8 //add rkey + rconst + eor r3, r3, r9 //add rkey + rconst + eor r4, r4, r10 //add rkey + rconst + eor r5, r5, r11 //add rkey + rconst + and r8, r7, r2, ror #16 // --- mixcolumns 1 --- + eor r2, r2, r8, ror #30 + and r8, r7, r2, ror #28 + eor r2, r2, r8 + and r8, r7, r2, ror #16 + eor r2, r2, r8, ror #2 + and r8, r7, r3, ror #16 + eor r3, r3, r8, ror #30 + and r8, r7, r3, ror #28 + eor r3, r3, r8 + and r8, r7, r3, ror #16 + eor r3, r3, r8, ror #2 + and r8, r7, r4, ror #16 + eor r4, r4, r8, ror #30 + and r8, r7, r4, ror #28 + eor r4, r4, r8 + and r8, r7, r4, ror #16 + eor r4, r4, r8, ror #2 + and r8, r7, r5, ror #16 + eor r5, r5, r8, ror #30 + and r8, r7, r5, ror #28 + eor r5, r5, r8 + and r8, r7, r5, ror #16 + eor r5, r5, r8, ror #2 + orr r8, r2, r3 + eor r5, r5, r8 + mvn r5, r5 + eor r8, r3, r4, lsr #1 + and r8, r8, r6 + eor r3, r3, r8 + eor r4, r4, r8, lsl #1 //SWAPMOVE(r4, r3, 0x55555555, 1); + eor r8, r4, r5, lsr #1 + and r8, r8, r6 + eor r4, r4, r8 + eor r5, r5, r8, lsl #1 //SWAPMOVE(r5, r4, 0x55555555, 1); + orr r8, r4, r5 + eor r3, r3, r8 + mvn r3, r3 + eor r8, r2, r3, lsr #1 + and r8, r8, r6 + eor r2, r2, r8 + eor r3, r3, r8, lsl #1 //SWAPMOVE(r3, r2, 0x55555555, 1); + eor r8, r5, r2, lsr #1 + and r8, r8, r6 + eor r5, r5, r8 + eor r2, r2, r8, lsl #1 //SWAPMOVE(r2, r5, 0x55555555, 1); + orr r8, r2, r3 + eor r5, r5, r8 + mvn r5, r5 + eor r8, r3, r4, lsr #1 + and r8, r8, r6 + eor r3, r3, r8 + eor r4, r4, r8, lsl #1 //SWAPMOVE(r4, r3, 0x55555555, 1); + eor r8, r4, r5, lsr #1 + and r8, r8, r6 + eor r4, r4, r8 + eor r5, r5, r8, lsl #1 //SWAPMOVE(r5, r4, 0x55555555, 1); + orr r8, r4, r5 + eor r3, r3, r8 + eor r8, r2, r5 + and r8, r8, r6 + eor r2, r2, r8 + eor r5, r5, r8 //SWAPMOVE(r5, r2, 0x55555555, 0); + ldmia.w r1!, {r8-r11} //load rkeys in r8,...,r11 + eor r2, r2, r8 //add rtk_2_3 + rconst + eor r3, r3, r9 //add rtk_2_3 + rconst + eor r4, r4, r10 //add rtk_2_3 + rconst + eor r5, r5, r11 //add rtk_2_3 + rconst + ldmia.w r0!,{r8-r11} + eor r2, r2, r8 //add rtk_1 + eor r3, r3, r9 //add rtk_1 + eor r4, r4, r10 //add rtk_1 + eor r5, r5, r11 //add rtk_1 + and r8, r7, r2, ror #10 // --- mixcolumns 2 --- + eor r2, r2, r8, ror #4 + and r8, r7, r2, ror #6 + eor r2, r2, r8, ror #6 + and r8, r7, r2, ror #26 + eor r2, r2, r8 + and r8, r7, r3, ror #10 + eor r3, r3, r8, ror #4 + and r8, r7, r3, ror #6 + eor r3, r3, r8, ror #6 + and r8, r7, r3, ror #26 + eor r3, r3, r8 + and r8, r7, r4, ror #10 + eor r4, r4, r8, ror #4 + and r8, r7, r4, ror #6 + eor r4, r4, r8, ror #6 + and r8, r7, r4, ror #26 + eor r4, r4, r8 + and r8, r7, r5, ror #10 + eor r5, r5, r8, ror #4 + and r8, r7, r5, ror #6 + eor r5, r5, r8, ror #6 + and r8, r7, r5, ror #26 + eor r5, r5, r8 + orr r8, r4, r5 + eor r3, r3, r8 + mvn r3, r3 + eor r8, r2, r3, lsr #1 + and r8, r8, r6 + eor r2, r2, r8 + eor r3, r3, r8, lsl #1 //SWAPMOVE(r3, r2, 0x55555555, 1); + eor r8, r5, r2, lsr #1 + and r8, r8, r6 + eor r5, r5, r8 + eor r2, r2, r8, lsl #1 //SWAPMOVE(r2, r5, 0x55555555, 1); + orr r8, r2, r3 + eor r5, r5, r8 + mvn r5, r5 + eor r8, r3, r4, lsr #1 + and r8, r8, r6 + eor r3, r3, r8 + eor r4, r4, r8, lsl #1 //SWAPMOVE(r4, r3, 0x55555555, 1); + eor r8, r4, r5, lsr #1 + and r8, r8, r6 + eor r4, r4, r8 + eor r5, r5, r8, lsl #1 //SWAPMOVE(r5, r4, 0x55555555, 1); + orr r8, r4, r5 + eor r3, r3, r8 + mvn r3, r3 + eor r8, r2, r3, lsr #1 + and r8, r8, r6 + eor r2, r2, r8 + eor r3, r3, r8, lsl #1 //SWAPMOVE(r3, r2, 0x55555555, 1); + eor r8, r5, r2, lsr #1 + and r8, r8, r6 + eor r5, r5, r8 + eor r2, r2, r8, lsl #1 //SWAPMOVE(r2, r5, 0x55555555, 1); + orr r8, r2, r3 + eor r5, r5, r8 + eor r8, r3, r4 + and r8, r8, r6 + eor r3, r3, r8 + eor r4, r4, r8 //SWAPMOVE(r4, r3, 0x55555555, 0); + ldmia r1!, {r8-r11} //load rkeys in r8,...,r11 + eor r2, r2, r8 //add rkey + rconst + eor r3, r3, r9 //add rkey + rconst + eor r4, r4, r10 //add rkey + rconst + eor r5, r5, r11 //add rkey + rconst + and r8, r7, r2, ror #4 // --- mixcolumns 3 --- + eor r2, r2, r8, ror #26 + and r8, r7, r2 + eor r2, r2, r8, ror #4 + and r8, r7, r2, ror #4 + eor r2, r2, r8, ror #22 + and r8, r7, r3, ror #4 + eor r3, r3, r8, ror #26 + and r8, r7, r3 + eor r3, r3, r8, ror #4 + and r8, r7, r3, ror #4 + eor r3, r3, r8, ror #22 + and r8, r7, r4, ror #4 + eor r4, r4, r8, ror #26 + and r8, r7, r4 + eor r4, r4, r8, ror #4 + and r8, r7, r4, ror #4 + eor r4, r4, r8, ror #22 + and r8, r7, r5, ror #4 + eor r5, r5, r8, ror #26 + and r8, r7, r5 + eor r5, r5, r8, ror #4 + and r8, r7, r5, ror #4 + eor r5, r5, r8, ror #22 + bx lr + +/****************************************************************************** +* Encrypt a single block using fixsliced SKINNY-128-128. +******************************************************************************/ +@ void skinny128_384(u8* ctext, const u32* tk, const u8* ptext, const u32* rtk1) +.global skinny128_384 +.type skinny128_384,%function +.align 2 +skinny128_384: + push {r0-r12, r14} + mov.w r0, r3 + ldr.w r3, [r2, #8] + ldr.w r4, [r2, #4] + ldr.w r5, [r2, #12] + ldr.w r2, [r2] + movw r6, #0x0a0a + movt r6, #0x0a0a //r6 <- 0x0a0a0a0a + movw r7, #0x3030 + movt r7, #0x3030 //r7 <- 0x30303030 + eor r12, r2, r2, lsr #3 + and r12, r12, r6 + eor r2, r2, r12 + eor r2, r2, r12, lsl #3 //SWAPMOVE(r2, r2, 0x0a0a0a0a, 3) + eor r12, r3, r3, lsr #3 + and r12, r12, r6 + eor r3, r3, r12 + eor r3, r3, r12, lsl #3 //SWAPMOVE(r3, r3, 0x0a0a0a0a, 3) + eor r12, r4, r4, lsr #3 + and r12, r12, r6 + eor r4, r4, r12 + eor r4, r4, r12, lsl #3 //SWAPMOVE(r4, r4, 0x0a0a0a0a, 3) + eor r12, r5, r5, lsr #3 + and r12, r12, r6 + eor r5, r5, r12 + eor r5, r5, r12, lsl #3 //SWAPMOVE(r5, r5, 0x0a0a0a0a, 3) + eor r12, r2, r4, lsr #2 + and r12, r12, r7 + eor r2, r2, r12 + eor r4, r4, r12, lsl #2 //SWAPMOVE(r4, r2, 0x30303030, 2) + eor r12, r2, r3, lsr #4 + and r12, r12, r7, lsr #2 + eor r2, r2, r12 + eor r3, r3, r12, lsl #4 //SWAPMOVE(r3, r2, 0x0c0c0c0c, 4) + eor r12, r2, r5, lsr #6 + and r12, r12, r7, lsr #4 + eor r2, r2, r12 + eor r5, r5, r12, lsl #6 //SWAPMOVE(r5, r2, 0x03030303, 6) + eor r12, r4, r3, lsr #2 + and r12, r12, r7, lsr #2 + eor r4, r4, r12 + eor r3, r3, r12, lsl #2 //SWAPMOVE(r3, r4, 0x0c0c0c0c, 2) + eor r12, r4, r5, lsr #4 + and r12, r12, r7, lsr #4 + eor r4, r4, r12 + eor r5, r5, r12, lsl #4 //SWAPMOVE(r5, r4, 0x03030303, 4) + eor r12, r3, r5, lsr #2 + and r12, r12, r7, lsr #4 + eor r3, r3, r12 + eor r5, r5, r12, lsl #2 //SWAPMOVE(r5, r3, 0x03030303, 2) + movw r6, #0x5555 + movt r6, #0x5555 //r6 <- 0x55555555 + bl quadruple_round + bl quadruple_round + bl quadruple_round + bl quadruple_round + sub.w r0, #128 // rtk1 repeats every 16 rounds + bl quadruple_round + bl quadruple_round + bl quadruple_round + bl quadruple_round + sub.w r0, #128 // rtk1 repeats every 16 rounds + bl quadruple_round + bl quadruple_round + bl quadruple_round + bl quadruple_round + sub.w r0, #128 // rtk1 repeats every 16 rounds + bl quadruple_round + bl quadruple_round + movw r6, #0x0a0a + movt r6, #0x0a0a //r6 <- 0x0a0a0a0a + eor r10, r3, r5, lsr #2 + and r10, r10, r7, lsr #4 + eor r3, r3, r10 + eor r5, r5, r10, lsl #2 //SWAPMOVE(r5, r3, 0x03030303, 2) + eor r10, r4, r5, lsr #4 + and r10, r10, r7, lsr #4 + eor r4, r4, r10 + eor r5, r5, r10, lsl #4 //SWAPMOVE(r5, r4, 0x03030303, 4) + eor r10, r4, r3, lsr #2 + and r10, r10, r7, lsr #2 + eor r4, r4, r10 + eor r3, r3, r10, lsl #2 //SWAPMOVE(r3, r4, 0x0c0c0c0c, 2) + eor r10, r2, r5, lsr #6 + and r10, r10, r7, lsr #4 + eor r2, r2, r10 + eor r5, r5, r10, lsl #6 //SWAPMOVE(r5, r2, 0x03030303, 6) + eor r10, r2, r3, lsr #4 + and r10, r10, r7, lsr #2 + eor r2, r2, r10 + eor r3, r3, r10, lsl #4 //SWAPMOVE(r3, r2, 0x0c0c0c0c, 4) + eor r10, r2, r4, lsr #2 + and r10, r10, r7 + eor r2, r2, r10 + eor r4, r4, r10, lsl #2 //SWAPMOVE(r4, r2, 0x30303030, 2) + eor r10, r5, r5, lsr #3 + and r10, r10, r6 + eor r5, r5, r10 + eor r5, r5, r10, lsl #3 //SWAPMOVE(r5, r5, 0x0a0a0a0a, 3) + eor r10, r4, r4, lsr #3 + and r10, r10, r6 + eor r4, r4, r10 + eor r4, r4, r10, lsl #3 //SWAPMOVE(r4, r4, 0x0a0a0a0a, 3) + eor r10, r3, r3, lsr #3 + and r10, r10, r6 + eor r3, r3, r10 + eor r3, r3, r10, lsl #3 //SWAPMOVE(r3, r3, 0x0a0a0a0a, 3) + eor r10, r2, r2, lsr #3 + and r10, r10, r6 + eor r2, r2, r10 + eor r2, r2, r10, lsl #3 //SWAPMOVE(r2, r2, 0x0a0a0a0a, 3) + ldr.w r0, [sp], #4 + strd r2, r4, [r0] + strd r3, r5, [r0, #8] + pop {r1-r12,r14} + bx lr + \ No newline at end of file diff --git a/romulus/Implementations/crypto_aead/romulusm1/armsrc_NEC/api.h b/romulus/Implementations/crypto_aead/romulusm1/armsrc_NEC/api.h new file mode 100644 index 0000000..a4aa567 --- /dev/null +++ b/romulus/Implementations/crypto_aead/romulusm1/armsrc_NEC/api.h @@ -0,0 +1,5 @@ +#define CRYPTO_KEYBYTES 16 +#define CRYPTO_NSECBYTES 0 +#define CRYPTO_NPUBBYTES 16 +#define CRYPTO_ABYTES 16 +#define CRYPTO_NOOVERLAP 1 diff --git a/romulus/Implementations/crypto_aead/romulusm1/armsrc_NEC/crypto_aead.h b/romulus/Implementations/crypto_aead/romulusm1/armsrc_NEC/crypto_aead.h new file mode 100644 index 0000000..cfc09d6 --- /dev/null +++ b/romulus/Implementations/crypto_aead/romulusm1/armsrc_NEC/crypto_aead.h @@ -0,0 +1,11 @@ +int crypto_aead_encrypt(unsigned char *c, unsigned long long *clen, + const unsigned char *m, unsigned long long mlen, + const unsigned char *ad, unsigned long long adlen, + const unsigned char *nsec, const unsigned char *npub, + const unsigned char *k); + +int crypto_aead_decrypt(unsigned char *m, unsigned long long *outputmlen, + unsigned char *nsec, + const unsigned char *c, unsigned long long clen, + const unsigned char *ad, unsigned long long adlen, + const unsigned char *npub, const unsigned char *k); diff --git a/romulus/Implementations/crypto_aead/romulusm1/armsrc_NEC/encrypt.c b/romulus/Implementations/crypto_aead/romulusm1/armsrc_NEC/encrypt.c new file mode 100644 index 0000000..91d0e6e --- /dev/null +++ b/romulus/Implementations/crypto_aead/romulusm1/armsrc_NEC/encrypt.c @@ -0,0 +1,738 @@ +/* + * Date: 29 November 2018 + * Contact: Thomas Peyrin - thomas.peyrin@gmail.com + * Mustafa Khairallah - mustafam001@e.ntu.edu.sg + */ + +#include "crypto_aead.h" +#include "api.h" +#include "skinny.h" +#include +#include + +void pad (const unsigned char* m, unsigned char* mp, int l, int len8) { + int i; + + for (i = 0; i < l; i++) { + if (i < len8) { + mp[i] = m[i]; + } + else if (i == l - 1) { + mp[i] = (len8 & 0x0f); + } + else { + mp[i] = 0x00; + } + } + +} + +void g8A (unsigned char* s, unsigned char* c) { + unsigned int tmps[4]; + unsigned int tmpc[4]; + + tmps[0] = *((unsigned int *)&s[0]); + tmps[1] = *((unsigned int *)&s[4]); + tmps[2] = *((unsigned int *)&s[8]); + tmps[3] = *((unsigned int *)&s[12]); + + // c[i] = (s[i] >> 1) ^ (s[i] & 0x80) ^ ((s[i] & 0x01) << 7); + // + // (s[i] >> 1) -> ((s[i]>>1)&0x7f) + // (s[i] & 0x80) -> (s[i])&0x80) not changed + // ((s[i] & 0x01) << 7) -> ((s[i]<<7)&0x80) + + // use word access because of speeding up + tmpc[0] = ((tmps[0]>>1) & 0x7f7f7f7f) ^ (tmps[0] & 0x80808080) ^ ((tmps[0]<<7) & 0x80808080); + tmpc[1] = ((tmps[1]>>1) & 0x7f7f7f7f) ^ (tmps[1] & 0x80808080) ^ ((tmps[1]<<7) & 0x80808080); + tmpc[2] = ((tmps[2]>>1) & 0x7f7f7f7f) ^ (tmps[2] & 0x80808080) ^ ((tmps[2]<<7) & 0x80808080); + tmpc[3] = ((tmps[3]>>1) & 0x7f7f7f7f) ^ (tmps[3] & 0x80808080) ^ ((tmps[3]<<7) & 0x80808080); + + *((unsigned int *)&c[0]) = tmpc[0]; + *((unsigned int *)&c[4]) = tmpc[1]; + *((unsigned int *)&c[8]) = tmpc[2]; + *((unsigned int *)&c[12]) = tmpc[3]; +} + +void g8A_for_Tag_Generation (unsigned char* s, unsigned char* c) { + unsigned int tmps[4]; + unsigned int tmpc[4]; + + tmps[0] = *((unsigned int *)&s[0]); + tmps[1] = *((unsigned int *)&s[4]); + tmps[2] = *((unsigned int *)&s[8]); + tmps[3] = *((unsigned int *)&s[12]); + + // c[i] = (s[i] >> 1) ^ (s[i] & 0x80) ^ ((s[i] & 0x01) << 7); + // + // (s[i] >> 1) -> ((s[i]>>1)&0x7f) + // (s[i] & 0x80) -> (s[i])&0x80) not changed + // ((s[i] & 0x01) << 7) -> ((s[i]<<7)&0x80) + + // use word access because of speeding up + tmpc[0] = ((tmps[0]>>1) & 0x7f7f7f7f) ^ (tmps[0] & 0x80808080) ^ ((tmps[0]<<7) & 0x80808080); + tmpc[1] = ((tmps[1]>>1) & 0x7f7f7f7f) ^ (tmps[1] & 0x80808080) ^ ((tmps[1]<<7) & 0x80808080); + tmpc[2] = ((tmps[2]>>1) & 0x7f7f7f7f) ^ (tmps[2] & 0x80808080) ^ ((tmps[2]<<7) & 0x80808080); + tmpc[3] = ((tmps[3]>>1) & 0x7f7f7f7f) ^ (tmps[3] & 0x80808080) ^ ((tmps[3]<<7) & 0x80808080); + + // use byte access because of memory alignment. + // c is not always in word(4 byte) alignment. + c[0] = tmpc[0] &0xFF; + c[1] = (tmpc[0]>>8) &0xFF; + c[2] = (tmpc[0]>>16)&0xFF; + c[3] = (tmpc[0]>>24)&0xFF; + c[4] = tmpc[1] &0xFF; + c[5] = (tmpc[1]>>8) &0xFF; + c[6] = (tmpc[1]>>16)&0xFF; + c[7] = (tmpc[1]>>24)&0xFF; + c[8] = tmpc[2] &0xFF; + c[9] = (tmpc[2]>>8) &0xFF; + c[10] = (tmpc[2]>>16)&0xFF; + c[11] = (tmpc[2]>>24)&0xFF; + c[12] = tmpc[3] &0xFF; + c[13] = (tmpc[3]>>8) &0xFF; + c[14] = (tmpc[3]>>16)&0xFF; + c[15] = (tmpc[3]>>24)&0xFF; +} + +void rho_ad_eqov16 (const unsigned char* m, + unsigned char* s) { + *((unsigned int *)&s[0]) ^= *((unsigned int *)&m[0]); + *((unsigned int *)&s[4]) ^= *((unsigned int *)&m[4]); + *((unsigned int *)&s[8]) ^= *((unsigned int *)&m[8]); + *((unsigned int *)&s[12]) ^= *((unsigned int *)&m[12]); +} + +void rho_ad_ud16 (const unsigned char* m, + unsigned char* s, + int len8) { + unsigned char mp [16]; + + pad(m,mp,16,len8); + *((unsigned int *)&s[0]) ^= *((unsigned int *)&mp[0]); + *((unsigned int *)&s[4]) ^= *((unsigned int *)&mp[4]); + *((unsigned int *)&s[8]) ^= *((unsigned int *)&mp[8]); + *((unsigned int *)&s[12]) ^= *((unsigned int *)&mp[12]); +} + +void rho_eqov16 (const unsigned char* m, + unsigned char* c, + unsigned char* s) { + g8A(s,c); + + *((unsigned int *)&s[0]) ^= *((unsigned int *)&m[0]); + *((unsigned int *)&s[4]) ^= *((unsigned int *)&m[4]); + *((unsigned int *)&s[8]) ^= *((unsigned int *)&m[8]); + *((unsigned int *)&s[12]) ^= *((unsigned int *)&m[12]); + + *((unsigned int *)&c[0]) ^= *((unsigned int *)&m[0]); + *((unsigned int *)&c[4]) ^= *((unsigned int *)&m[4]); + *((unsigned int *)&c[8]) ^= *((unsigned int *)&m[8]); + *((unsigned int *)&c[12]) ^= *((unsigned int *)&m[12]); +} + +void rho_ud16 (const unsigned char* m, + unsigned char* c, + unsigned char* s, + int len8, + int ver) { + int i; + unsigned char mp [16]; + + pad(m,mp,ver,len8); + + g8A(s,c); + *((unsigned int *)&s[0]) ^= *((unsigned int *)&mp[0]); + *((unsigned int *)&s[4]) ^= *((unsigned int *)&mp[4]); + *((unsigned int *)&s[8]) ^= *((unsigned int *)&mp[8]); + *((unsigned int *)&s[12]) ^= *((unsigned int *)&mp[12]); + for (i = 0; i < ver; i++) { + if (i < len8) { + c[i] = c[i] ^ mp[i]; + } + else { + c[i] = 0; + } + } +} + +void irho (unsigned char* m, + const unsigned char* c, + unsigned char* s, + int len8, + int ver) { + int i; + unsigned char cp [16]; + + pad(c,cp,ver,len8); + + g8A(s,m); + for (i = 0; i < ver; i++) { + if (i < len8) { + s[i] = s[i] ^ cp[i] ^ m[i]; + } + else { + s[i] = s[i] ^ cp[i]; + } + if (i < len8) { + m[i] = m[i] ^ cp[i]; + } + else { + m[i] = 0; + } + } +} + +void reset_lfsr_gf56 (unsigned char* CNT) { + *((unsigned int *)&CNT[0]) = 0x00000001; + *((unsigned int *)&CNT[4]) = 0x00000000; +} + +void lfsr_gf56 (unsigned char* CNT) { + unsigned int tmpCNT[2]; + unsigned int fb0; + + tmpCNT[0] = *((unsigned int *)&CNT[0]); // CNT3 CNT2 CNT1 CNT0 + tmpCNT[1] = *((unsigned int *)&CNT[4]); // CNT7 CNT6 CNT5 CNT4 + + fb0 = 0; + if ((tmpCNT[1] >> 23)&0x01) { + fb0 = 0x95; + } + + tmpCNT[1] = tmpCNT[1] << 1 | tmpCNT[0] >> 31; + tmpCNT[0] = tmpCNT[0] << 1 ^ fb0; + + *((unsigned int *)&CNT[0]) = tmpCNT[0]; + *((unsigned int *)&CNT[4]) = tmpCNT[1]; +} + +void block_cipher(unsigned char* s, + const unsigned char* k, unsigned char* T, + unsigned char* CNT, + skinny_ctrl* p_skinny_ctrl) { + p_skinny_ctrl->func_skinny_128_384_enc (s,p_skinny_ctrl,CNT,T,k); +} + +void nonce_encryption (const unsigned char* N, + unsigned char* CNT, + unsigned char*s, const unsigned char* k, + unsigned char D, + skinny_ctrl* p_skinny_ctrl) { + unsigned char T [16]; + *((unsigned int *)&T[0]) = *((unsigned int *)&N[0]); + *((unsigned int *)&T[4]) = *((unsigned int *)&N[4]); + *((unsigned int *)&T[8]) = *((unsigned int *)&N[8]); + *((unsigned int *)&T[12]) = *((unsigned int *)&N[12]); + CNT[7] = D; + block_cipher(s,k,T,CNT,p_skinny_ctrl); + +} + +void generate_tag (unsigned char** c, unsigned char* s, + int n, unsigned long long* clen) { + + g8A_for_Tag_Generation(s, *c); + *c = *c + n; + *c = *c - *clen; + +} + +unsigned long long msg_encryption (const unsigned char** M, unsigned char** c, + const unsigned char* N, + unsigned char* CNT, + unsigned char*s, const unsigned char* k, + unsigned char D, + unsigned long long mlen, + skinny_ctrl* p_skinny_ctrl) { + int len8; + + if (mlen >= 16) { + len8 = 16; + mlen = mlen - 16; + rho_eqov16(*M, *c, s); + } + else { + len8 = mlen; + mlen = 0; + rho_ud16(*M, *c, s, len8, 16); + } + *c = *c + len8; + *M = *M + len8; + lfsr_gf56(CNT); + if (mlen != 0) { + nonce_encryption(N,CNT,s,k,D,p_skinny_ctrl); + } + return mlen; +} + + + +unsigned long long msg_decryption (unsigned char** M, const unsigned char** c, + const unsigned char* N, + unsigned char* CNT, + unsigned char*s, const unsigned char* k, + unsigned char D, + unsigned long long clen, + skinny_ctrl* p_skinny_ctrl) { + int len8; + + if (clen >= 16) { + len8 = 16; + clen = clen - 16; + } + else { + len8 = clen; + clen = 0; + } + irho(*M, *c, s, len8, 16); + *c = *c + len8; + *M = *M + len8; + lfsr_gf56(CNT); + nonce_encryption(N,CNT,s,k,D,p_skinny_ctrl); + return clen; +} + +unsigned long long ad2msg_encryption (const unsigned char** M, + unsigned char* CNT, + unsigned char*s, const unsigned char* k, + unsigned char D, + unsigned long long mlen, + skinny_ctrl* p_skinny_ctrl) { + unsigned char T [16]; + int len8; + + if (mlen <= 16) { + len8 = mlen; + mlen = 0; + + pad (*M,T,16,len8); + } + else { + len8 = 16; + mlen = mlen - 16; + + unsigned char *pM = (unsigned char *)(*M); + *((unsigned int *)&T[0]) = *((unsigned int *)&pM[0]); + *((unsigned int *)&T[4]) = *((unsigned int *)&pM[4]); + *((unsigned int *)&T[8]) = *((unsigned int *)&pM[8]); + *((unsigned int *)&T[12]) = *((unsigned int *)&pM[12]); + } + + CNT[7] = D; + block_cipher(s,k,T,CNT,p_skinny_ctrl); + lfsr_gf56(CNT); + *M = *M + len8; + + return mlen; + +} + + +unsigned long long ad_encryption (const unsigned char** A, unsigned char* s, + const unsigned char* k, unsigned long long adlen, + unsigned char* CNT, + unsigned char D, + skinny_ctrl* p_skinny_ctrl) { + + unsigned char T [16]; + int len8; + + if (adlen >= 16) { + len8 = 16; + adlen = adlen - 16; + rho_ad_eqov16(*A, s); + } + else { + len8 = adlen; + adlen = 0; + rho_ad_ud16(*A, s, len8); + } + *A = *A + len8; + lfsr_gf56(CNT); + if (adlen != 0) { + if (adlen >= 16) { + len8 = 16; + adlen = adlen - 16; + + unsigned char *pA = (unsigned char *)(*A); + *((unsigned int *)&T[0]) = *((unsigned int *)&pA[0]); + *((unsigned int *)&T[4]) = *((unsigned int *)&pA[4]); + *((unsigned int *)&T[8]) = *((unsigned int *)&pA[8]); + *((unsigned int *)&T[12]) = *((unsigned int *)&pA[12]); + } + else { + len8 = adlen; + adlen = 0; + + pad(*A, T, 16, len8); + } + *A = *A + len8; + CNT[7] = D; + block_cipher(s,k,T,CNT,p_skinny_ctrl); + lfsr_gf56(CNT); + } + + return adlen; +} + +int crypto_aead_encrypt ( + unsigned char* c, unsigned long long* clen, + const unsigned char* m, unsigned long long mlen, + const unsigned char* ad, unsigned long long adlen, + const unsigned char* nsec, + const unsigned char* npub, + const unsigned char* k + ) +{ + unsigned char s[16]; + unsigned char CNT[8]; // size 7 -> 8 for word access + unsigned char T[16]; + const unsigned char* N; + unsigned char w; + unsigned long long xlen; + + skinny_ctrl l_skinny_ctrl; + l_skinny_ctrl.func_skinny_128_384_enc = skinny_128_384_enc123_12; + + (void)nsec; + N = npub; + + xlen = mlen; + + *((unsigned int *)&s[0]) = 0x00000000; + *((unsigned int *)&s[4]) = 0x00000000; + *((unsigned int *)&s[8]) = 0x00000000; + *((unsigned int *)&s[12]) = 0x00000000; + reset_lfsr_gf56(CNT); + + w = 48; + + if (adlen == 0) { + w = w ^ 2; + if (xlen == 0) { + w =w ^ 1; + } + else if (xlen%(32) == 0) { + w = w ^ 4; + } + else if (xlen%(32) < 16) { + w = w ^ 1; + } + else if (xlen%(32) == 16) { + w = w ^ 0; + } + else { + w = w ^ 5; + } + } + else if (adlen%(32) == 0) { + w = w ^ 8; + if (xlen == 0) { + w =w ^ 1; + } + else if (xlen%(32) == 0) { + w = w ^ 4; + } + else if (xlen%(32) < 16) { + w = w ^ 1; + } + else if (xlen%(32) == 16) { + w = w ^ 0; + } + else { + w = w ^ 5; + } + } + else if (adlen%(32) < 16) { + w = w ^ 2; + if (xlen == 0) { + w =w ^ 1; + } + else if (xlen%(32) == 0) { + w = w ^ 4; + } + else if (xlen%(32) < 16) { + w = w ^ 1; + } + else if (xlen%(32) == 16) { + w = w ^ 0; + } + else { + w = w ^ 5; + } + } + else if (adlen%(32) == 16) { + w = w ^ 0; + if (xlen == 0) { + w =w ^ 1; + } + else if (xlen%(32) == 0) { + w = w ^ 4; + } + else if (xlen%(32) < 16) { + w = w ^ 1; + } + else if (xlen%(32) == 16) { + w = w ^ 0; + } + else { + w = w ^ 5; + } + } + else { + w = w ^ 10; + if (xlen == 0) { + w =w ^ 1; + } + else if (xlen%(32) == 0) { + w = w ^ 4; + } + else if (xlen%(32) < 16) { + w = w ^ 1; + } + else if (xlen%(32) == 16) { + w = w ^ 0; + } + else { + w = w ^ 5; + } + } + + if (adlen == 0) { // AD is an empty string + lfsr_gf56(CNT); + } + else while (adlen > 0) { + adlen = ad_encryption(&ad,s,k,adlen,CNT,40,&l_skinny_ctrl); + } + + if ((w & 8) == 0) { + xlen = ad2msg_encryption (&m,CNT,s,k,44,xlen,&l_skinny_ctrl); + } + else if (mlen == 0) { + lfsr_gf56(CNT); + } + while (xlen > 0) { + xlen = ad_encryption(&m,s,k,xlen,CNT,44,&l_skinny_ctrl); + } + nonce_encryption(N,CNT,s,k,w,&l_skinny_ctrl); + + // because, nonce_encryption is called at the last block of AD encryption + l_skinny_ctrl.func_skinny_128_384_enc = skinny_128_384_enc1_1; + + // Tag generation + g8A(s, T); + + m = m - mlen; + + reset_lfsr_gf56(CNT); + + *((unsigned int *)&s[0]) = *((unsigned int *)&T[0]); + *((unsigned int *)&s[4]) = *((unsigned int *)&T[4]); + *((unsigned int *)&s[8]) = *((unsigned int *)&T[8]); + *((unsigned int *)&s[12]) = *((unsigned int *)&T[12]); + + *clen = mlen + 16; + + if (mlen > 0) { + nonce_encryption(N,CNT,s,k,36,&l_skinny_ctrl); + while (mlen > 16) { + mlen = msg_encryption(&m,&c,N,CNT,s,k,36,mlen,&l_skinny_ctrl); + } + rho_ud16(m, c, s, mlen, 16); + c = c + mlen; + m = m + mlen; + } + + // Tag Concatenation + + // use byte access because of memory alignment. + // c is not always in word(4 byte) alignment. + + for (int i = 0; i < 16; i = i + 1) { + *(c + i) = T[i]; + } + + c = c - *clen; + + return 0; +} + +int crypto_aead_decrypt( +unsigned char *m,unsigned long long *mlen, +unsigned char *nsec, +const unsigned char *c,unsigned long long clen, +const unsigned char *ad,unsigned long long adlen, +const unsigned char *npub, +const unsigned char *k +) +{ + unsigned char s[16]; + unsigned char CNT[8]; // size 7 -> 8 for word access + unsigned char T[16]; + const unsigned char* N; + unsigned char w; + unsigned long long xlen; + const unsigned char* mauth; + + skinny_ctrl l_skinny_ctrl; + l_skinny_ctrl.func_skinny_128_384_enc = skinny_128_384_enc123_12; + + (void)nsec; + mauth = m; + + N = npub; + + xlen = clen-16; + + reset_lfsr_gf56(CNT); + + for (int i = 0; i < 16; i++) { + T[i] = *(c + clen - 16 + i); + } + + *((unsigned int *)&s[0]) = *((unsigned int *)&T[0]); + *((unsigned int *)&s[4]) = *((unsigned int *)&T[4]); + *((unsigned int *)&s[8]) = *((unsigned int *)&T[8]); + *((unsigned int *)&s[12]) = *((unsigned int *)&T[12]); + + clen = clen - 16; + *mlen = clen; + + if (clen > 0) { + nonce_encryption(N,CNT,s,k,36,&l_skinny_ctrl); + while (clen > 16) { + clen = msg_decryption(&m,&c,N,CNT,s,k,36,clen,&l_skinny_ctrl); + } + irho(m, c, s, clen, 16); + c = c + clen; + m = m + clen; + } + + *((unsigned int *)&s[0]) = 0x00000000; + *((unsigned int *)&s[4]) = 0x00000000; + *((unsigned int *)&s[8]) = 0x00000000; + *((unsigned int *)&s[12]) = 0x00000000; + reset_lfsr_gf56(CNT); + + w = 48; + + if (adlen == 0) { + w = w ^ 2; + if (xlen == 0) { + w =w ^ 1; + } + else if (xlen%(32) == 0) { + w = w ^ 4; + } + else if (xlen%(32) < 16) { + w = w ^ 1; + } + else if (xlen%(32) == 16) { + w = w ^ 0; + } + else { + w = w ^ 5; + } + } + else if (adlen%(32) == 0) { + w = w ^ 8; + if (xlen == 0) { + w =w ^ 1; + } + else if (xlen%(32) == 0) { + w = w ^ 4; + } + else if (xlen%(32) < 16) { + w = w ^ 1; + } + else if (xlen%(32) == 16) { + w = w ^ 0; + } + else { + w = w ^ 5; + } + } + else if (adlen%(32) < 16) { + w = w ^ 2; + if (xlen == 0) { + w =w ^ 1; + } + else if (xlen%(32) == 0) { + w = w ^ 4; + } + else if (xlen%(32) < 16) { + w = w ^ 1; + } + else if (xlen%(32) == 16) { + w = w ^ 0; + } + else { + w = w ^ 5; + } + } + else if (adlen%(32) == 16) { + w = w ^ 0; + if (xlen == 0) { + w =w ^ 1; + } + else if (xlen%(32) == 0) { + w = w ^ 4; + } + else if (xlen%(32) < 16) { + w = w ^ 1; + } + else if (xlen%(32) == 16) { + w = w ^ 0; + } + else { + w = w ^ 5; + } + } + else { + w = w ^ 10; + if (xlen == 0) { + w =w ^ 1; + } + else if (xlen%(32) == 0) { + w = w ^ 4; + } + else if (xlen%(32) < 16) { + w = w ^ 1; + } + else if (xlen%(32) == 16) { + w = w ^ 0; + } + else { + w = w ^ 5; + } + } + + if (adlen == 0) { // AD is an empty string + lfsr_gf56(CNT); + } + else while (adlen > 0) { + adlen = ad_encryption(&ad,s,k,adlen,CNT,40,&l_skinny_ctrl); + } + + if ((w & 8) == 0) { + xlen = ad2msg_encryption (&mauth,CNT,s,k,44,xlen,&l_skinny_ctrl); + } + else if (clen == 0) { + lfsr_gf56(CNT); + } + while (xlen > 0) { + xlen = ad_encryption(&mauth,s,k,xlen,CNT,44,&l_skinny_ctrl); + } + nonce_encryption(N,CNT,s,k,w,&l_skinny_ctrl); + + // Tag generation + g8A_for_Tag_Generation(s, T); + for (int i = 0; i < 16; i++) { + if (T[i] != (*(c+i))) { + return -1; + } + } + + return 0; +} diff --git a/romulus/Implementations/crypto_aead/romulusm1/armsrc_NEC/genkat_aead.c b/romulus/Implementations/crypto_aead/romulusm1/armsrc_NEC/genkat_aead.c new file mode 100644 index 0000000..21f840f --- /dev/null +++ b/romulus/Implementations/crypto_aead/romulusm1/armsrc_NEC/genkat_aead.c @@ -0,0 +1,161 @@ +// +// NIST-developed software is provided by NIST as a public service. +// You may use, copy and distribute copies of the software in any medium, +// provided that you keep intact this entire notice. You may improve, +// modify and create derivative works of the software or any portion of +// the software, and you may copy and distribute such modifications or +// works. Modified works should carry a notice stating that you changed +// the software and should note the date and nature of any such change. +// Please explicitly acknowledge the National Institute of Standards and +// Technology as the source of the software. +// +// NIST-developed software is expressly provided "AS IS." NIST MAKES NO +// WARRANTY OF ANY KIND, EXPRESS, IMPLIED, IN FACT OR ARISING BY OPERATION +// OF LAW, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTY OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT AND DATA ACCURACY. NIST +// NEITHER REPRESENTS NOR WARRANTS THAT THE OPERATION OF THE SOFTWARE WILL BE +// UNINTERRUPTED OR ERROR-FREE, OR THAT ANY DEFECTS WILL BE CORRECTED. NIST +// DOES NOT WARRANT OR MAKE ANY REPRESENTATIONS REGARDING THE USE OF THE SOFTWARE +// OR THE RESULTS THEREOF, INCLUDING BUT NOT LIMITED TO THE CORRECTNESS, ACCURACY, +// RELIABILITY, OR USEFULNESS OF THE SOFTWARE. +// +// You are solely responsible for determining the appropriateness of using and +// distributing the software and you assume all risks associated with its use, +// including but not limited to the risks and costs of program errors, compliance +// with applicable laws, damage to or loss of data, programs or equipment, and +// the unavailability or interruption of operation. This software is not intended +// to be used in any situation where a failure could cause risk of injury or +// damage to property. The software developed by NIST employees is not subject to +// copyright protection within the United States. +// + +// disable deprecation for sprintf and fopen +#ifdef _MSC_VER +#define _CRT_SECURE_NO_WARNINGS +#endif + +#include +#include + +#include "crypto_aead.h" +#include "api.h" + +#define KAT_SUCCESS 0 +#define KAT_FILE_OPEN_ERROR -1 +#define KAT_DATA_ERROR -3 +#define KAT_CRYPTO_FAILURE -4 + +#define MAX_FILE_NAME 256 +#define MAX_MESSAGE_LENGTH 32 +#define MAX_ASSOCIATED_DATA_LENGTH 32 + +void init_buffer(unsigned char *buffer, unsigned long long numbytes); + +void fprint_bstr(FILE *fp, const char *label, const unsigned char *data, unsigned long long length); + +int generate_test_vectors(); + +int main() +{ + int ret = generate_test_vectors(); + + if (ret != KAT_SUCCESS) { + fprintf(stderr, "test vector generation failed with code %d\n", ret); + } + + return ret; +} + +int generate_test_vectors() +{ + FILE *fp; + char fileName[MAX_FILE_NAME]; + unsigned char key[CRYPTO_KEYBYTES]; + unsigned char nonce[CRYPTO_NPUBBYTES]; + unsigned char msg[MAX_MESSAGE_LENGTH]; + unsigned char msg2[MAX_MESSAGE_LENGTH]; + unsigned char ad[MAX_ASSOCIATED_DATA_LENGTH]; + unsigned char ct[MAX_MESSAGE_LENGTH + CRYPTO_ABYTES]; + unsigned long long clen, mlen2; + int count = 1; + int func_ret, ret_val = KAT_SUCCESS; + + init_buffer(key, sizeof(key)); + init_buffer(nonce, sizeof(nonce)); + init_buffer(msg, sizeof(msg)); + init_buffer(ad, sizeof(ad)); + + sprintf(fileName, "LWC_AEAD_KAT_%d_%d.txt", (CRYPTO_KEYBYTES * 8), (CRYPTO_NPUBBYTES * 8)); + + if ((fp = fopen(fileName, "w")) == NULL) { + fprintf(stderr, "Couldn't open <%s> for write\n", fileName); + return KAT_FILE_OPEN_ERROR; + } + + for (unsigned long long mlen = 0; (mlen <= MAX_MESSAGE_LENGTH) && (ret_val == KAT_SUCCESS); mlen++) { + for (unsigned long long adlen = 0; adlen <= MAX_ASSOCIATED_DATA_LENGTH; adlen++) { + + printf("%0d\n", (int)clen); + + fprintf(fp, "Count = %d\n", count++); + printf("Count = %d\n", count - 1); + + fprint_bstr(fp, "Key = ", key, CRYPTO_KEYBYTES); + + fprint_bstr(fp, "Nonce = ", nonce, CRYPTO_NPUBBYTES); + + fprint_bstr(fp, "PT = ", msg, mlen); + + fprint_bstr(fp, "AD = ", ad, adlen); + + if ((func_ret = crypto_aead_encrypt(ct, &clen, msg, mlen, ad, adlen, NULL, nonce, key)) != 0) { + fprintf(fp, "crypto_aead_encrypt returned <%d>\n", func_ret); + ret_val = KAT_CRYPTO_FAILURE; + break; + } + + fprint_bstr(fp, "CT = ", ct, clen); + + fprintf(fp, "\n"); + + if ((func_ret = crypto_aead_decrypt(msg2, &mlen2, NULL, ct, clen, ad, adlen, nonce, key)) != 0) { + fprintf(fp, "crypto_aead_decrypt returned <%d>\n", func_ret); + ret_val = KAT_CRYPTO_FAILURE; + break; + } + + if (mlen != mlen2) { + fprintf(fp, "crypto_aead_decrypt returned bad 'mlen': Got <%llu>, expected <%llu>\n", mlen2, mlen); + ret_val = KAT_CRYPTO_FAILURE; + break; + } + + if (memcmp(msg, msg2, mlen)) { + fprintf(fp, "crypto_aead_decrypt did not recover the plaintext\n"); + ret_val = KAT_CRYPTO_FAILURE; + break; + } + } + } + + fclose(fp); + + return ret_val; +} + + +void fprint_bstr(FILE *fp, const char *label, const unsigned char *data, unsigned long long length) +{ + fprintf(fp, "%s", label); + + for (unsigned long long i = 0; i < length; i++) + fprintf(fp, "%02X", data[i]); + + fprintf(fp, "\n"); +} + +void init_buffer(unsigned char *buffer, unsigned long long numbytes) +{ + for (unsigned long long i = 0; i < numbytes; i++) + buffer[i] = (unsigned char)i; +} diff --git a/romulus/Implementations/crypto_aead/romulusm1/armsrc_NEC/skinny.h b/romulus/Implementations/crypto_aead/romulusm1/armsrc_NEC/skinny.h new file mode 100644 index 0000000..6392b0f --- /dev/null +++ b/romulus/Implementations/crypto_aead/romulusm1/armsrc_NEC/skinny.h @@ -0,0 +1,8 @@ +typedef struct ___skinny_ctrl { + unsigned char roundKeys[960]; // number of round : 56 + void (*func_skinny_128_384_enc)(unsigned char*, struct ___skinny_ctrl*, unsigned char* CNT, unsigned char* T, const unsigned char* K); +} skinny_ctrl; + +extern void skinny_128_384_enc123_12 (unsigned char* input, skinny_ctrl* pskinny_ctrl, unsigned char* CNT, unsigned char* T, const unsigned char* K); +extern void skinny_128_384_enc12_12 (unsigned char* input, skinny_ctrl* pskinny_ctrl, unsigned char* CNT, unsigned char* T, const unsigned char* K); +extern void skinny_128_384_enc1_1 (unsigned char* input, skinny_ctrl* pskinny_ctrl, unsigned char* CNT, unsigned char* T, const unsigned char* K); diff --git a/romulus/Implementations/crypto_aead/romulusm1/armsrc_NEC/skinny_key_schedule2.c b/romulus/Implementations/crypto_aead/romulusm1/armsrc_NEC/skinny_key_schedule2.c new file mode 100644 index 0000000..58006f2 --- /dev/null +++ b/romulus/Implementations/crypto_aead/romulusm1/armsrc_NEC/skinny_key_schedule2.c @@ -0,0 +1,3027 @@ +/****************************************************************************** + * Copyright (c) 2020, NEC Corporation. + * + * THIS CODE IS FURNISHED TO YOU "AS IS" WITHOUT WARRANTY OF ANY KIND. + * + *****************************************************************************/ + +/* + * SKINNY-128-384 + * + * load * AC(c0 c1) ^ TK3 + * calc AC(c0 c1) ^ TK2 -> store + * ART(TK2) + * + * number of rounds : 56 + */ + +__attribute__((aligned(4))) +void RunEncryptionKeyScheduleTK2(unsigned char *roundKeys) +{ + // r0 : points to roundKeys(& masterKey) + // r1-r4 : key state + // r5-r6 : temp use + // r7 : constant(0xfefefefe) + // r8 : constant(0x01010101) + // r9 : temp use + // r10 : temp use + asm volatile( + "stmdb sp!, {r4-r10} \n\t" + "ldr.w r1, [r0,#16] \n\t" // load master key + "ldr.w r2, [r0,#20] \n\t" // load master key + "ldr.w r3, [r0,#24] \n\t" // load master key + "ldr.w r4, [r0,#28] \n\t" // load master key + "mov.w r7, #0xfefefefe \n\t" + "mov.w r8, #0x01010101 \n\t" + + // round 1 + + "ldr.w r9, [r0,#512] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#516] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#64] \n\t" + "str.w r10, [r0,#68] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 2 + + "ldr.w r9, [r0,#520] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#524] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#72] \n\t" + "str.w r10, [r0,#76] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 3 + + "ldr.w r9, [r0,#528] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#532] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#80] \n\t" + "str.w r10, [r0,#84] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 4 + + "ldr.w r9, [r0,#536] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#540] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#88] \n\t" + "str.w r10, [r0,#92] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 5 + + "ldr.w r9, [r0,#544] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#548] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#96] \n\t" + "str.w r10, [r0,#100] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 6 + + "ldr.w r9, [r0,#552] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#556] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#104] \n\t" + "str.w r10, [r0,#108] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 7 + + "ldr.w r9, [r0,#560] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#564] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#112] \n\t" + "str.w r10, [r0,#116] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 8 + + "ldr.w r9, [r0,#568] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#572] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#120] \n\t" + "str.w r10, [r0,#124] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 9 + + "ldr.w r9, [r0,#576] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#580] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#128] \n\t" + "str.w r10, [r0,#132] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 10 + + "ldr.w r9, [r0,#584] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#588] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#136] \n\t" + "str.w r10, [r0,#140] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 11 + + "ldr.w r9, [r0,#592] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#596] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#144] \n\t" + "str.w r10, [r0,#148] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 12 + + "ldr.w r9, [r0,#600] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#604] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#152] \n\t" + "str.w r10, [r0,#156] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 13 + + "ldr.w r9, [r0,#608] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#612] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#160] \n\t" + "str.w r10, [r0,#164] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 14 + + "ldr.w r9, [r0,#616] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#620] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#168] \n\t" + "str.w r10, [r0,#172] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 15 + + "ldr.w r9, [r0,#624] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#628] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#176] \n\t" + "str.w r10, [r0,#180] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 16 + + "ldr.w r9, [r0,#632] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#636] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#184] \n\t" + "str.w r10, [r0,#188] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 17 + + "ldr.w r9, [r0,#640] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#644] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#192] \n\t" + "str.w r10, [r0,#196] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 18 + + "ldr.w r9, [r0,#648] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#652] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#200] \n\t" + "str.w r10, [r0,#204] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 19 + + "ldr.w r9, [r0,#656] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#660] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#208] \n\t" + "str.w r10, [r0,#212] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 20 + + "ldr.w r9, [r0,#664] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#668] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#216] \n\t" + "str.w r10, [r0,#220] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 21 + + "ldr.w r9, [r0,#672] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#676] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#224] \n\t" + "str.w r10, [r0,#228] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 22 + + "ldr.w r9, [r0,#680] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#684] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#232] \n\t" + "str.w r10, [r0,#236] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 23 + + "ldr.w r9, [r0,#688] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#692] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#240] \n\t" + "str.w r10, [r0,#244] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 24 + + "ldr.w r9, [r0,#696] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#700] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#248] \n\t" + "str.w r10, [r0,#252] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 25 + + "ldr.w r9, [r0,#704] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#708] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#256] \n\t" + "str.w r10, [r0,#260] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 26 + + "ldr.w r9, [r0,#712] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#716] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#264] \n\t" + "str.w r10, [r0,#268] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 27 + + "ldr.w r9, [r0,#720] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#724] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#272] \n\t" + "str.w r10, [r0,#276] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 28 + + "ldr.w r9, [r0,#728] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#732] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#280] \n\t" + "str.w r10, [r0,#284] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 29 + + "ldr.w r9, [r0,#736] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#740] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#288] \n\t" + "str.w r10, [r0,#292] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 30 + + "ldr.w r9, [r0,#744] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#748] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#296] \n\t" + "str.w r10, [r0,#300] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 31 + + "ldr.w r9, [r0,#752] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#756] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#304] \n\t" + "str.w r10, [r0,#308] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 32 + + "ldr.w r9, [r0,#760] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#764] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#312] \n\t" + "str.w r10, [r0,#316] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 33 + + "ldr.w r9, [r0,#768] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#772] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#320] \n\t" + "str.w r10, [r0,#324] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 34 + + "ldr.w r9, [r0,#776] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#780] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#328] \n\t" + "str.w r10, [r0,#332] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 35 + + "ldr.w r9, [r0,#784] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#788] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#336] \n\t" + "str.w r10, [r0,#340] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 36 + + "ldr.w r9, [r0,#792] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#796] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#344] \n\t" + "str.w r10, [r0,#348] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 37 + + "ldr.w r9, [r0,#800] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#804] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#352] \n\t" + "str.w r10, [r0,#356] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 38 + + "ldr.w r9, [r0,#808] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#812] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#360] \n\t" + "str.w r10, [r0,#364] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 39 + + "ldr.w r9, [r0,#816] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#820] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#368] \n\t" + "str.w r10, [r0,#372] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 40 + + "ldr.w r9, [r0,#824] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#828] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#376] \n\t" + "str.w r10, [r0,#380] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 41 + + "ldr.w r9, [r0,#832] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#836] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#384] \n\t" + "str.w r10, [r0,#388] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 42 + + "ldr.w r9, [r0,#840] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#844] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#392] \n\t" + "str.w r10, [r0,#396] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 43 + + "ldr.w r9, [r0,#848] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#852] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#400] \n\t" + "str.w r10, [r0,#404] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 44 + + "ldr.w r9, [r0,#856] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#860] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#408] \n\t" + "str.w r10, [r0,#412] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 45 + + "ldr.w r9, [r0,#864] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#868] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#416] \n\t" + "str.w r10, [r0,#420] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 46 + + "ldr.w r9, [r0,#872] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#876] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#424] \n\t" + "str.w r10, [r0,#428] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 47 + + "ldr.w r9, [r0,#880] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#884] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#432] \n\t" + "str.w r10, [r0,#436] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 48 + + "ldr.w r9, [r0,#888] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#892] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#440] \n\t" + "str.w r10, [r0,#444] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 49 + + "ldr.w r9, [r0,#896] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#900] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#448] \n\t" + "str.w r10, [r0,#452] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 50 + + "ldr.w r9, [r0,#904] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#908] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#456] \n\t" + "str.w r10, [r0,#460] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 51 + + "ldr.w r9, [r0,#912] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#916] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#464] \n\t" + "str.w r10, [r0,#468] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 52 + + "ldr.w r9, [r0,#920] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#924] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#472] \n\t" + "str.w r10, [r0,#476] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 53 + + "ldr.w r9, [r0,#928] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#932] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#480] \n\t" + "str.w r10, [r0,#484] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 54 + + "ldr.w r9, [r0,#936] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#940] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#488] \n\t" + "str.w r10, [r0,#492] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 55 + + "ldr.w r9, [r0,#944] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#948] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#496] \n\t" + "str.w r10, [r0,#500] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 56 + + "ldr.w r9, [r0,#952] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#956] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#504] \n\t" + "str.w r10, [r0,#508] \n\t" + + // permutation + + // not need to calculate (not used) + + "ldmia.w sp!, {r4-r10} \n\t" + : + : [roundKeys] "r" (roundKeys) + : "cc"); +} diff --git a/romulus/Implementations/crypto_aead/romulusm1/armsrc_NEC/skinny_key_schedule3.c b/romulus/Implementations/crypto_aead/romulusm1/armsrc_NEC/skinny_key_schedule3.c new file mode 100644 index 0000000..81c4406 --- /dev/null +++ b/romulus/Implementations/crypto_aead/romulusm1/armsrc_NEC/skinny_key_schedule3.c @@ -0,0 +1,2898 @@ +/****************************************************************************** + * Copyright (c) 2020, NEC Corporation. + * + * THIS CODE IS FURNISHED TO YOU "AS IS" WITHOUT WARRANTY OF ANY KIND. + * + *****************************************************************************/ + +/* + * SKINNY-128-384 + * + * AC(c0 c1) ^ TK3 -> store + * ART(TK3) + * + * number of rounds : 56 + */ + +__attribute__((aligned(4))) +void RunEncryptionKeyScheduleTK3(unsigned char *roundKeys, unsigned char *pRC) +{ + // r0 : points to roundKeys(& masterKey) + // r1 : points to RC + // r2-r5 : key state + // r6-r7 : temp use + // r8 : constant(0x7f7f7f7f) + // r9 : constant(0x80808080) + asm volatile( + "stmdb sp!, {r4-r9} \n\t" + "ldr.w r2, [r0,#32] \n\t" // load master key + "ldr.w r3, [r0,#36] \n\t" // load master key + "ldr.w r4, [r0,#40] \n\t" // load master key + "ldr.w r5, [r0,#44] \n\t" // load master key + "mov.w r8, #0x7f7f7f7f \n\t" + "mov.w r9, #0x80808080 \n\t" + + // round 1 + + // AC(c0 c1) + "eor.w r6, r2, #0x1 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#512] \n\t" + "str.w r3, [r0,#516] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 2 + + // AC(c0 c1) + "eor.w r6, r2, #0x3 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#520] \n\t" + "str.w r3, [r0,#524] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 3 + + // AC(c0 c1) + "eor.w r6, r2, #0x7 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#528] \n\t" + "str.w r3, [r0,#532] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 4 + + // AC(c0 c1) + "eor.w r6, r2, #0xf \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#536] \n\t" + "str.w r3, [r0,#540] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 5 + + // AC(c0 c1) + "eor.w r6, r2, #0xf \n\t" // k0^rc + "eor.w r7, r3, #0x1 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#544] \n\t" + "str.w r7, [r0,#548] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 6 + + // AC(c0 c1) + "eor.w r7, r3, #0x3 \n\t" // k0^rc + "eor.w r6, r2, #0xe \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#552] \n\t" + "str.w r7, [r0,#556] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 7 + + // AC(c0 c1) + "eor.w r7, r3, #0x3 \n\t" // k0^rc + "eor.w r6, r2, #0xd \n\t" // k0^rc + + + // round key store + "str.w r6, [r0,#560] \n\t" + "str.w r7, [r0,#564] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 8 + + // AC(c0 c1) + "eor.w r7, r3, #0x3 \n\t" // k0^rc + "eor.w r6, r2, #0xb \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#568] \n\t" + "str.w r7, [r0,#572] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 9 + + // AC(c0 c1) + "eor.w r7, r3, #0x3 \n\t" // k0^rc + "eor.w r6, r2, #0x7 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#576] \n\t" + "str.w r7, [r0,#580] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 10 + + // AC(c0 c1) + "eor.w r7, r3, #0x2 \n\t" // k0^rc + "eor.w r6, r2, #0xf \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#584] \n\t" + "str.w r7, [r0,#588] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 11 + + // AC(c0 c1) + "eor.w r7, r3, #0x1 \n\t" // k0^rc + "eor.w r6, r2, #0xe \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#592] \n\t" + "str.w r7, [r0,#596] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 12 + + // AC(c0 c1) + "eor.w r7, r3, #0x3 \n\t" // k0^rc + "eor.w r6, r2, #0xc \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#600] \n\t" + "str.w r7, [r0,#604] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 13 + + // AC(c0 c1) + "eor.w r7, r3, #0x3 \n\t" // k0^rc + "eor.w r6, r2, #0x9 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#608] \n\t" + "str.w r7, [r0,#612] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 14 + + // AC(c0 c1) + "eor.w r7, r3, #0x3 \n\t" // k0^rc + "eor.w r6, r2, #0x3 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#616] \n\t" + "str.w r7, [r0,#620] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 15 + + // AC(c0 c1) + "eor.w r7, r3, #0x2 \n\t" // k0^rc + "eor.w r6, r2, #0x7 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#624] \n\t" + "str.w r7, [r0,#628] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 16 + + // AC(c0 c1) + "eor.w r6, r2, #0xe \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#632] \n\t" + "str.w r3, [r0,#636] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 17 + + // AC(c0 c1) + "eor.w r7, r3, #0x1 \n\t" // k0^rc + "eor.w r6, r2, #0xd \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#640] \n\t" + "str.w r7, [r0,#644] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 18 + + // AC(c0 c1) + "eor.w r7, r3, #0x3 \n\t" // k0^rc + "eor.w r6, r2, #0xa \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#648] \n\t" + "str.w r7, [r0,#652] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 19 + + // AC(c0 c1) + "eor.w r7, r3, #0x3 \n\t" // k0^rc + "eor.w r6, r2, #0x5 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#656] \n\t" + "str.w r7, [r0,#660] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 20 + + // AC(c0 c1) + "eor.w r7, r3, #0x2 \n\t" // k0^rc + "eor.w r6, r2, #0xb \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#664] \n\t" + "str.w r7, [r0,#668] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 21 + + // AC(c0 c1) + "eor.w r7, r3, #0x1 \n\t" // k0^rc + "eor.w r6, r2, #0x6 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#672] \n\t" + "str.w r7, [r0,#676] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 22 + + // AC(c0 c1) + "eor.w r7, r3, #0x2 \n\t" // k0^rc + "eor.w r6, r2, #0xc \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#680] \n\t" + "str.w r7, [r0,#684] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 23 + + // AC(c0 c1) + "eor.w r7, r3, #0x1 \n\t" // k0^rc + "eor.w r6, r2, #0x8 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#688] \n\t" + "str.w r7, [r0,#692] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 24 + + // AC(c0 c1) + "eor.w r7, r3, #0x3 \n\t" // k0^rc + "eor.w r6, r2, #0x0 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#696] \n\t" + "str.w r7, [r0,#700] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 25 + + // AC(c0 c1) + "eor.w r7, r3, #0x2 \n\t" // k0^rc + "eor.w r6, r2, #0x1 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#704] \n\t" + "str.w r7, [r0,#708] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 26 + + // AC(c0 c1) + "eor.w r6, r2, #0x2 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#712] \n\t" + "str.w r3, [r0,#716] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 27 + + // AC(c0 c1) + "eor.w r6, r2, #0x5 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#720] \n\t" + "str.w r3, [r0,#724] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 28 + + // AC(c0 c1) + "eor.w r6, r2, #0xb \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#728] \n\t" + "str.w r3, [r0,#732] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 29 + + // AC(c0 c1) + "eor.w r7, r3, #0x1 \n\t" // k0^rc + "eor.w r6, r2, #0x7 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#736] \n\t" + "str.w r7, [r0,#740] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 30 + + // AC(c0 c1) + "eor.w r7, r3, #0x2 \n\t" // k0^rc + "eor.w r6, r2, #0xe \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#744] \n\t" + "str.w r7, [r0,#748] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 31 + + // AC(c0 c1) + "eor.w r7, r3, #0x1 \n\t" // k0^rc + "eor.w r6, r2, #0xc \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#752] \n\t" + "str.w r7, [r0,#756] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 32 + + // AC(c0 c1) + "eor.w r7, r3, #0x3 \n\t" // k0^rc + "eor.w r6, r2, #0x8 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#760] \n\t" + "str.w r7, [r0,#764] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 33 + + // AC(c0 c1) + "eor.w r7, r3, #0x3 \n\t" // k0^rc + "eor.w r6, r2, #0x1 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#768] \n\t" + "str.w r7, [r0,#772] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 34 + + // AC(c0 c1) + "eor.w r7, r3, #0x2 \n\t" // k0^rc + "eor.w r6, r2, #0x3 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#776] \n\t" + "str.w r7, [r0,#780] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 35 + + // AC(c0 c1) + "eor.w r6, r2, #0x6 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#784] \n\t" + "str.w r3, [r0,#788] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 36 + + // AC(c0 c1) + "eor.w r6, r2, #0xd \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#792] \n\t" + "str.w r3, [r0,#796] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 37 + + // AC(c0 c1) + "eor.w r7, r3, #0x1 \n\t" // k0^rc + "eor.w r6, r2, #0xb \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#800] \n\t" + "str.w r7, [r0,#804] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 38 + + // AC(c0 c1) + "eor.w r7, r3, #0x3 \n\t" // k0^rc + "eor.w r6, r2, #0x6 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#808] \n\t" + "str.w r7, [r0,#812] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 39 + + // AC(c0 c1) + "eor.w r7, r3, #0x2 \n\t" // k0^rc + "eor.w r6, r2, #0xd \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#816] \n\t" + "str.w r7, [r0,#820] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 40 + + // AC(c0 c1) + "eor.w r7, r3, #0x1 \n\t" // k0^rc + "eor.w r6, r2, #0xa \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#824] \n\t" + "str.w r7, [r0,#828] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 41 + + // AC(c0 c1) + "eor.w r7, r3, #0x3 \n\t" // k0^rc + "eor.w r6, r2, #0x4 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#832] \n\t" + "str.w r7, [r0,#836] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 42 + + // AC(c0 c1) + "eor.w r7, r3, #0x2 \n\t" // k0^rc + "eor.w r6, r2, #0x9 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#840] \n\t" + "str.w r7, [r0,#844] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 43 + + // AC(c0 c1) + "eor.w r7, r3, #0x1 \n\t" // k0^rc + "eor.w r6, r2, #0x2 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#848] \n\t" + "str.w r7, [r0,#852] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 44 + + // AC(c0 c1) + "eor.w r7, r3, #0x2 \n\t" // k0^rc + "eor.w r6, r2, #0x4 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#856] \n\t" + "str.w r7, [r0,#860] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 45 + + // AC(c0 c1) + "eor.w r6, r2, #0x8 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#864] \n\t" + "str.w r3, [r0,#868] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 46 + + // AC(c0 c1) + "eor.w r7, r3, #0x1 \n\t" // k0^rc + "eor.w r6, r2, #0x1 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#872] \n\t" + "str.w r7, [r0,#876] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 47 + + // AC(c0 c1) + "eor.w r7, r3, #0x2 \n\t" // k0^rc + "eor.w r6, r2, #0x2 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#880] \n\t" + "str.w r7, [r0,#884] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 48 + + // AC(c0 c1) + "eor.w r6, r2, #0x4 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#888] \n\t" + "str.w r3, [r0,#892] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 49 + + // AC(c0 c1) + "eor.w r6, r2, #0x9 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#896] \n\t" + "str.w r3, [r0,#900] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 50 + + // AC(c0 c1) + "eor.w r7, r3, #0x1 \n\t" // k0^rc + "eor.w r6, r2, #0x3 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#904] \n\t" + "str.w r7, [r0,#908] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 51 + + // AC(c0 c1) + "eor.w r7, r3, #0x2 \n\t" // k0^rc + "eor.w r6, r2, #0x6 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#912] \n\t" + "str.w r7, [r0,#916] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 52 + + // AC(c0 c1) + "eor.w r6, r2, #0xc \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#920] \n\t" + "str.w r3, [r0,#924] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 53 + + // AC(c0 c1) + "eor.w r7, r3, #0x1 \n\t" // k0^rc + "eor.w r6, r2, #0x9 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#928] \n\t" + "str.w r7, [r0,#932] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 54 + + // AC(c0 c1) + "eor.w r7, r3, #0x3 \n\t" // k0^rc + "eor.w r6, r2, #0x2 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#936] \n\t" + "str.w r7, [r0,#940] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 55 + + // AC(c0 c1) + "eor.w r7, r3, #0x2 \n\t" // k0^rc + "eor.w r6, r2, #0x5 \n\t" // k0^rc + // round key store + "str.w r6, [r0,#944] \n\t" + "str.w r7, [r0,#948] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 56 + + // AC(c0 c1) + "eor.w r6, r2, #0xa \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#952] \n\t" + "str.w r3, [r0,#956] \n\t" + + // permutation + + // not need to calculate (not used) + + "ldmia.w sp!, {r4-r9} \n\t" + : + : [roundKeys] "r" (roundKeys), [pRC] "r" (pRC) + : "cc"); +} diff --git a/romulus/Implementations/crypto_aead/romulusm1/armsrc_NEC/skinny_main.c b/romulus/Implementations/crypto_aead/romulusm1/armsrc_NEC/skinny_main.c new file mode 100644 index 0000000..217b8a6 --- /dev/null +++ b/romulus/Implementations/crypto_aead/romulusm1/armsrc_NEC/skinny_main.c @@ -0,0 +1,4687 @@ +/****************************************************************************** + * Copyright (c) 2020, NEC Corporation. + * + * THIS CODE IS FURNISHED TO YOU "AS IS" WITHOUT WARRANTY OF ANY KIND. + * + *****************************************************************************/ + +/* + * SKINNY-128-384 + * + * ART(TK1) -> store + * load AC(c0 c1) ^ TK3 ^ TK2 + * load TK1 + * calc AC(c0 c1) ^ TK3 ^ TK2 ^ TK1 -> use at (AC->ART) + * SC->SR->(AC->ART)->MC + * + * number of rounds : 56 + */ + +#include "skinny.h" + +/* + * S-BOX + */ +unsigned char SBOX[512] += { + // Original + 0x65, 0x4c, 0x6a, 0x42, 0x4b, 0x63, 0x43, 0x6b, 0x55, 0x75, 0x5a, 0x7a, 0x53, 0x73, 0x5b, 0x7b, + 0x35, 0x8c, 0x3a, 0x81, 0x89, 0x33, 0x80, 0x3b, 0x95, 0x25, 0x98, 0x2a, 0x90, 0x23, 0x99, 0x2b, + 0xe5, 0xcc, 0xe8, 0xc1, 0xc9, 0xe0, 0xc0, 0xe9, 0xd5, 0xf5, 0xd8, 0xf8, 0xd0, 0xf0, 0xd9, 0xf9, + 0xa5, 0x1c, 0xa8, 0x12, 0x1b, 0xa0, 0x13, 0xa9, 0x05, 0xb5, 0x0a, 0xb8, 0x03, 0xb0, 0x0b, 0xb9, + 0x32, 0x88, 0x3c, 0x85, 0x8d, 0x34, 0x84, 0x3d, 0x91, 0x22, 0x9c, 0x2c, 0x94, 0x24, 0x9d, 0x2d, + 0x62, 0x4a, 0x6c, 0x45, 0x4d, 0x64, 0x44, 0x6d, 0x52, 0x72, 0x5c, 0x7c, 0x54, 0x74, 0x5d, 0x7d, + 0xa1, 0x1a, 0xac, 0x15, 0x1d, 0xa4, 0x14, 0xad, 0x02, 0xb1, 0x0c, 0xbc, 0x04, 0xb4, 0x0d, 0xbd, + 0xe1, 0xc8, 0xec, 0xc5, 0xcd, 0xe4, 0xc4, 0xed, 0xd1, 0xf1, 0xdc, 0xfc, 0xd4, 0xf4, 0xdd, 0xfd, + 0x36, 0x8e, 0x38, 0x82, 0x8b, 0x30, 0x83, 0x39, 0x96, 0x26, 0x9a, 0x28, 0x93, 0x20, 0x9b, 0x29, + 0x66, 0x4e, 0x68, 0x41, 0x49, 0x60, 0x40, 0x69, 0x56, 0x76, 0x58, 0x78, 0x50, 0x70, 0x59, 0x79, + 0xa6, 0x1e, 0xaa, 0x11, 0x19, 0xa3, 0x10, 0xab, 0x06, 0xb6, 0x08, 0xba, 0x00, 0xb3, 0x09, 0xbb, + 0xe6, 0xce, 0xea, 0xc2, 0xcb, 0xe3, 0xc3, 0xeb, 0xd6, 0xf6, 0xda, 0xfa, 0xd3, 0xf3, 0xdb, 0xfb, + 0x31, 0x8a, 0x3e, 0x86, 0x8f, 0x37, 0x87, 0x3f, 0x92, 0x21, 0x9e, 0x2e, 0x97, 0x27, 0x9f, 0x2f, + 0x61, 0x48, 0x6e, 0x46, 0x4f, 0x67, 0x47, 0x6f, 0x51, 0x71, 0x5e, 0x7e, 0x57, 0x77, 0x5f, 0x7f, + 0xa2, 0x18, 0xae, 0x16, 0x1f, 0xa7, 0x17, 0xaf, 0x01, 0xb2, 0x0e, 0xbe, 0x07, 0xb7, 0x0f, 0xbf, + 0xe2, 0xca, 0xee, 0xc6, 0xcf, 0xe7, 0xc7, 0xef, 0xd2, 0xf2, 0xde, 0xfe, 0xd7, 0xf7, 0xdf, 0xff, + + // Original ^ c2(0x02) + 0x67, 0x4e, 0x68, 0x40, 0x49, 0x61, 0x41, 0x69, 0x57, 0x77, 0x58, 0x78, 0x51, 0x71, 0x59, 0x79, + 0x37, 0x8e, 0x38, 0x83, 0x8b, 0x31, 0x82, 0x39, 0x97, 0x27, 0x9a, 0x28, 0x92, 0x21, 0x9b, 0x29, + 0xe7, 0xce, 0xea, 0xc3, 0xcb, 0xe2, 0xc2, 0xeb, 0xd7, 0xf7, 0xda, 0xfa, 0xd2, 0xf2, 0xdb, 0xfb, + 0xa7, 0x1e, 0xaa, 0x10, 0x19, 0xa2, 0x11, 0xab, 0x07, 0xb7, 0x08, 0xba, 0x01, 0xb2, 0x09, 0xbb, + 0x30, 0x8a, 0x3e, 0x87, 0x8f, 0x36, 0x86, 0x3f, 0x93, 0x20, 0x9e, 0x2e, 0x96, 0x26, 0x9f, 0x2f, + 0x60, 0x48, 0x6e, 0x47, 0x4f, 0x66, 0x46, 0x6f, 0x50, 0x70, 0x5e, 0x7e, 0x56, 0x76, 0x5f, 0x7f, + 0xa3, 0x18, 0xae, 0x17, 0x1f, 0xa6, 0x16, 0xaf, 0x00, 0xb3, 0x0e, 0xbe, 0x06, 0xb6, 0x0f, 0xbf, + 0xe3, 0xca, 0xee, 0xc7, 0xcf, 0xe6, 0xc6, 0xef, 0xd3, 0xf3, 0xde, 0xfe, 0xd6, 0xf6, 0xdf, 0xff, + 0x34, 0x8c, 0x3a, 0x80, 0x89, 0x32, 0x81, 0x3b, 0x94, 0x24, 0x98, 0x2a, 0x91, 0x22, 0x99, 0x2b, + 0x64, 0x4c, 0x6a, 0x43, 0x4b, 0x62, 0x42, 0x6b, 0x54, 0x74, 0x5a, 0x7a, 0x52, 0x72, 0x5b, 0x7b, + 0xa4, 0x1c, 0xa8, 0x13, 0x1b, 0xa1, 0x12, 0xa9, 0x04, 0xb4, 0x0a, 0xb8, 0x02, 0xb1, 0x0b, 0xb9, + 0xe4, 0xcc, 0xe8, 0xc0, 0xc9, 0xe1, 0xc1, 0xe9, 0xd4, 0xf4, 0xd8, 0xf8, 0xd1, 0xf1, 0xd9, 0xf9, + 0x33, 0x88, 0x3c, 0x84, 0x8d, 0x35, 0x85, 0x3d, 0x90, 0x23, 0x9c, 0x2c, 0x95, 0x25, 0x9d, 0x2d, + 0x63, 0x4a, 0x6c, 0x44, 0x4d, 0x65, 0x45, 0x6d, 0x53, 0x73, 0x5c, 0x7c, 0x55, 0x75, 0x5d, 0x7d, + 0xa0, 0x1a, 0xac, 0x14, 0x1d, 0xa5, 0x15, 0xad, 0x03, 0xb0, 0x0c, 0xbc, 0x05, 0xb5, 0x0d, 0xbd, + 0xe0, 0xc8, 0xec, 0xc4, 0xcd, 0xe5, 0xc5, 0xed, 0xd0, 0xf0, 0xdc, 0xfc, 0xd5, 0xf5, 0xdd, 0xfd, +}; + +/* + * Round Constants + */ +unsigned char RC[56] += { + 0x01, 0x03, 0x07, 0x0F, 0x1F, 0x3E, 0x3D, 0x3B, + 0x37, 0x2F, 0x1E, 0x3C, 0x39, 0x33, 0x27, 0x0E, + 0x1D, 0x3A, 0x35, 0x2B, 0x16, 0x2C, 0x18, 0x30, + 0x21, 0x02, 0x05, 0x0B, 0x17, 0x2E, 0x1C, 0x38, + 0x31, 0x23, 0x06, 0x0D, 0x1B, 0x36, 0x2D, 0x1A, + 0x34, 0x29, 0x12, 0x24, 0x08, 0x11, 0x22, 0x04, + 0x09, 0x13, 0x26, 0x0c, 0x19, 0x32, 0x25, 0x0a,}; + +extern void Encrypt(unsigned char *block, unsigned char *roundKeys, unsigned char *pSBOX) __attribute__((noinline)); +extern void RunEncryptionKeyScheduleTK2(unsigned char *roundKeys) __attribute__((noinline)); +extern void RunEncryptionKeyScheduleTK3(unsigned char *roundKeys, unsigned char *pRC) __attribute__((noinline)); + +void skinny_128_384_enc123_12 (unsigned char* input, skinny_ctrl* pskinny_ctrl, unsigned char* CNT, unsigned char* T, const unsigned char* K) +{ + *((unsigned int *)&pskinny_ctrl->roundKeys[0] ) = *((unsigned int *)&CNT[0]); + *((unsigned int *)&pskinny_ctrl->roundKeys[4] ) = *((unsigned int *)&CNT[4]); + *((unsigned int *)&pskinny_ctrl->roundKeys[16]) = *((unsigned int *)&T[0]); + *((unsigned int *)&pskinny_ctrl->roundKeys[20]) = *((unsigned int *)&T[4]); + *((unsigned int *)&pskinny_ctrl->roundKeys[24]) = *((unsigned int *)&T[8]); + *((unsigned int *)&pskinny_ctrl->roundKeys[28]) = *((unsigned int *)&T[12]); + *((unsigned int *)&pskinny_ctrl->roundKeys[32]) = *((unsigned int *)&K[0]); + *((unsigned int *)&pskinny_ctrl->roundKeys[36]) = *((unsigned int *)&K[4]); + *((unsigned int *)&pskinny_ctrl->roundKeys[40]) = *((unsigned int *)&K[8]); + *((unsigned int *)&pskinny_ctrl->roundKeys[44]) = *((unsigned int *)&K[12]); + + RunEncryptionKeyScheduleTK3(pskinny_ctrl->roundKeys, RC); + RunEncryptionKeyScheduleTK2(pskinny_ctrl->roundKeys); + Encrypt(input, pskinny_ctrl->roundKeys, SBOX); + + pskinny_ctrl->func_skinny_128_384_enc = skinny_128_384_enc12_12; +} + +void skinny_128_384_enc12_12 (unsigned char* input, skinny_ctrl* pskinny_ctrl, unsigned char* CNT, unsigned char* T, const unsigned char* K) +{ + (void)K; + + *((unsigned int *)&pskinny_ctrl->roundKeys[0] ) = *((unsigned int *)&CNT[0]); + *((unsigned int *)&pskinny_ctrl->roundKeys[4] ) = *((unsigned int *)&CNT[4]); + *((unsigned int *)&pskinny_ctrl->roundKeys[16]) = *((unsigned int *)&T[0]); + *((unsigned int *)&pskinny_ctrl->roundKeys[20]) = *((unsigned int *)&T[4]); + *((unsigned int *)&pskinny_ctrl->roundKeys[24]) = *((unsigned int *)&T[8]); + *((unsigned int *)&pskinny_ctrl->roundKeys[28]) = *((unsigned int *)&T[12]); + + RunEncryptionKeyScheduleTK2(pskinny_ctrl->roundKeys); + Encrypt(input, pskinny_ctrl->roundKeys, SBOX); +} + +extern void skinny_128_384_enc1_1 (unsigned char* input, skinny_ctrl* pskinny_ctrl, unsigned char* CNT, unsigned char* T, const unsigned char* K) +{ + (void)T; + (void)K; + + *((unsigned int *)&pskinny_ctrl->roundKeys[0] ) = *((unsigned int *)&CNT[0]); + *((unsigned int *)&pskinny_ctrl->roundKeys[4] ) = *((unsigned int *)&CNT[4]); + + Encrypt(input, pskinny_ctrl->roundKeys, SBOX); +} + +__attribute__((aligned(4))) +void Encrypt(unsigned char *block, unsigned char *roundKeys, unsigned char *pSBOX) +{ + // r0 : ponits to plaintext + // r1 : points to roundKeys(& masterKey) + // r2 : points to SBOX + // r3-r6 : cipher state + // r7-r12: temp use + // r14 : temp use + asm volatile( + "stmdb sp!, {r4-r12,r14} \n\t" + "stmdb.w sp!, {r0} \n\t" // push store pointer + +// ART(TK1) + + "ldm.w r1, {r3-r4} \n\t" // load master key + + // round 1-2 + +// // round key store(do not need) +// "str.w r3, [r1,#0] \n\t" +// "str.w r4, [r1,#4] \n\t" + + // premutation + + // r3 ( k3 k2 k1 k0) --- --- --- --- + // r4 ( k7 k6 k5 k4) --- --- --- --- + // r5 (--- --- --- ---) -----> k5 k0 k7 k1 + // r6 (--- --- --- ---) k3 k4 k6 k2 +#ifdef STM32F4 // for Cortex-M4 + "ror.w r5,r4, #16 \n\t" // r5( k5 k4 k7 k6) + "bfi.w r5,r3, #16,#8 \n\t" // r5( k5 k0 k7 k6) + "pkhtb.w r6,r3, r3, asr #16 \n\t" // r6( k3 k2 k3 k2) + "ror.w r3, #8 \n\t" // r3( k0 k3 k2 k1) + "bfi.w r5,r3, #0,#8 \n\t" // r5( k5 k4 k2 k6) + "bfi.w r6,r4, #16,#8 \n\t" // r6( k3 k4 k3 k2) + "ror.w r4,#16 \n\t" // r4( k5 k4 k7 k6) + "bfi.w r6,r4, #8,#8 \n\t" // r6( k3 k4 k6 k2) +#else // for Cortex-M3 + "rev.w r5, r4 \n\t" // r5( k4 k5 k6 k7) + "lsl.w r5, r5, #8 \n\t" // r5( k5 k6 k7 ---) + "bfi.w r5,r3, #16,#8 \n\t" // r5( k5 k0 k7 ---) + "lsr.w r3, r3, #8 \n\t" // r3(--- k3 k2 k1) + "bfi.w r5,r3, #0, #8 \n\t" // r5( k5 k0 k7 k1) + "rev16.w r6, r3 \n\t" // r6( k3 --- k1 k2) + "bfi.w r6,r4, #16,#8 \n\t" // r6( k3 k4 k1 k2) + "lsr.w r4, r4, #16 \n\t" // r4(-- --- k7 k6) + "bfi.w r6,r4, #8, #8 \n\t" // r6( k3 k4 k6 k2) +#endif + // round 3-4 + + // round key store + "str.w r5, [r1,#8] \n\t" + "str.w r6, [r1,#12] \n\t" + + // premutation + + // r3 (--- --- --- ---) k5 k0 k7 k1 + // r4 (--- --- --- ---) k3 k4 k6 k2 + // r5 ( k3 k2 k1 k0) -----> --- --- --- --- + // r6 ( k7 k6 k5 k4) --- --- --- --- +#ifdef STM32F4 // for Cortex-M4 + "ror.w r3,r6, #16 \n\t" // r3( k5 k4 k7 k6) + "bfi.w r3,r5, #16,#8 \n\t" // r3( k5 k0 k7 k6) + "pkhtb.w r4,r5, r5, asr #16 \n\t" // r4( k3 k2 k3 k2) + "ror.w r5, #8 \n\t" // r5( k0 k3 k2 k1) + "bfi.w r3,r5, #0,#8 \n\t" // r3( k5 k4 k2 k6) + "bfi.w r4,r6, #16,#8 \n\t" // r4( k3 k4 k3 k2) + "ror.w r6,#16 \n\t" // r6( k5 k4 k7 k6) + "bfi.w r4,r6, #8,#8 \n\t" // r4( k3 k4 k6 k2) +#else // for Cortex-M3 + "rev.w r3, r6 \n\t" // r3( k4 k5 k6 k7) + "lsl.w r3, r3, #8 \n\t" // r3( k5 k6 k7 ---) + "bfi.w r3,r5, #16,#8 \n\t" // r3( k5 k0 k7 ---) + "lsr.w r5, r5, #8 \n\t" // r5(--- k3 k2 k1) + "bfi.w r3,r5, #0, #8 \n\t" // r3( k5 k0 k7 k1) + "rev16.w r4, r5 \n\t" // r4( k3 --- k1 k2) + "bfi.w r4,r6, #16,#8 \n\t" // r4( k3 k4 k1 k2) + "lsr.w r6, r6, #16 \n\t" // r6(-- --- k7 k6) + "bfi.w r4,r6, #8, #8 \n\t" // r4( k3 k4 k6 k2) +#endif + + // round 5-6 + + // round key store + "str.w r3, [r1,#16] \n\t" + "str.w r4, [r1,#20] \n\t" + + // premutation + + // r3 ( k3 k2 k1 k0) --- --- --- --- + // r4 ( k7 k6 k5 k4) --- --- --- --- + // r5 (--- --- --- ---) -----> k5 k0 k7 k1 + // r6 (--- --- --- ---) k3 k4 k6 k2 +#ifdef STM32F4 // for Cortex-M4 + "ror.w r5,r4, #16 \n\t" // r5( k5 k4 k7 k6) + "bfi.w r5,r3, #16,#8 \n\t" // r5( k5 k0 k7 k6) + "pkhtb.w r6,r3, r3, asr #16 \n\t" // r6( k3 k2 k3 k2) + "ror.w r3, #8 \n\t" // r3( k0 k3 k2 k1) + "bfi.w r5,r3, #0,#8 \n\t" // r5( k5 k4 k2 k6) + "bfi.w r6,r4, #16,#8 \n\t" // r6( k3 k4 k3 k2) + "ror.w r4,#16 \n\t" // r4( k5 k4 k7 k6) + "bfi.w r6,r4, #8,#8 \n\t" // r6( k3 k4 k6 k2) +#else // for Cortex-M3 + "rev.w r5, r4 \n\t" // r5( k4 k5 k6 k7) + "lsl.w r5, r5, #8 \n\t" // r5( k5 k6 k7 ---) + "bfi.w r5,r3, #16,#8 \n\t" // r5( k5 k0 k7 ---) + "lsr.w r3, r3, #8 \n\t" // r3(--- k3 k2 k1) + "bfi.w r5,r3, #0, #8 \n\t" // r5( k5 k0 k7 k1) + "rev16.w r6, r3 \n\t" // r6( k3 --- k1 k2) + "bfi.w r6,r4, #16,#8 \n\t" // r6( k3 k4 k1 k2) + "lsr.w r4, r4, #16 \n\t" // r4(-- --- k7 k6) + "bfi.w r6,r4, #8, #8 \n\t" // r6( k3 k4 k6 k2) +#endif + // round 7-8 + + // round key store + "str.w r5, [r1,#24] \n\t" + "str.w r6, [r1,#28] \n\t" + + // premutation + + // r3 (--- --- --- ---) k5 k0 k7 k1 + // r4 (--- --- --- ---) k3 k4 k6 k2 + // r5 ( k3 k2 k1 k0) -----> --- --- --- --- + // r6 ( k7 k6 k5 k4) --- --- --- --- +#ifdef STM32F4 // for Cortex-M4 + "ror.w r3,r6, #16 \n\t" // r3( k5 k4 k7 k6) + "bfi.w r3,r5, #16,#8 \n\t" // r3( k5 k0 k7 k6) + "pkhtb.w r4,r5, r5, asr #16 \n\t" // r4( k3 k2 k3 k2) + "ror.w r5, #8 \n\t" // r5( k0 k3 k2 k1) + "bfi.w r3,r5, #0,#8 \n\t" // r3( k5 k4 k2 k6) + "bfi.w r4,r6, #16,#8 \n\t" // r4( k3 k4 k3 k2) + "ror.w r6,#16 \n\t" // r6( k5 k4 k7 k6) + "bfi.w r4,r6, #8,#8 \n\t" // r4( k3 k4 k6 k2) +#else // for Cortex-M3 + "rev.w r3, r6 \n\t" // r3( k4 k5 k6 k7) + "lsl.w r3, r3, #8 \n\t" // r3( k5 k6 k7 ---) + "bfi.w r3,r5, #16,#8 \n\t" // r3( k5 k0 k7 ---) + "lsr.w r5, r5, #8 \n\t" // r5(--- k3 k2 k1) + "bfi.w r3,r5, #0, #8 \n\t" // r3( k5 k0 k7 k1) + "rev16.w r4, r5 \n\t" // r4( k3 --- k1 k2) + "bfi.w r4,r6, #16,#8 \n\t" // r4( k3 k4 k1 k2) + "lsr.w r6, r6, #16 \n\t" // r6(-- --- k7 k6) + "bfi.w r4,r6, #8, #8 \n\t" // r4( k3 k4 k6 k2) +#endif + + // round 9-10 + + // round key store + "str.w r3, [r1,#32] \n\t" + "str.w r4, [r1,#36] \n\t" + + // premutation + + // r3 ( k3 k2 k1 k0) --- --- --- --- + // r4 ( k7 k6 k5 k4) --- --- --- --- + // r5 (--- --- --- ---) -----> k5 k0 k7 k1 + // r6 (--- --- --- ---) k3 k4 k6 k2 +#ifdef STM32F4 // for Cortex-M4 + "ror.w r5,r4, #16 \n\t" // r5( k5 k4 k7 k6) + "bfi.w r5,r3, #16,#8 \n\t" // r5( k5 k0 k7 k6) + "pkhtb.w r6,r3, r3, asr #16 \n\t" // r6( k3 k2 k3 k2) + "ror.w r3, #8 \n\t" // r3( k0 k3 k2 k1) + "bfi.w r5,r3, #0,#8 \n\t" // r5( k5 k4 k2 k6) + "bfi.w r6,r4, #16,#8 \n\t" // r6( k3 k4 k3 k2) + "ror.w r4,#16 \n\t" // r4( k5 k4 k7 k6) + "bfi.w r6,r4, #8,#8 \n\t" // r6( k3 k4 k6 k2) +#else // for Cortex-M3 + "rev.w r5, r4 \n\t" // r5( k4 k5 k6 k7) + "lsl.w r5, r5, #8 \n\t" // r5( k5 k6 k7 ---) + "bfi.w r5,r3, #16,#8 \n\t" // r5( k5 k0 k7 ---) + "lsr.w r3, r3, #8 \n\t" // r3(--- k3 k2 k1) + "bfi.w r5,r3, #0, #8 \n\t" // r5( k5 k0 k7 k1) + "rev16.w r6, r3 \n\t" // r6( k3 --- k1 k2) + "bfi.w r6,r4, #16,#8 \n\t" // r6( k3 k4 k1 k2) + "lsr.w r4, r4, #16 \n\t" // r4(-- --- k7 k6) + "bfi.w r6,r4, #8, #8 \n\t" // r6( k3 k4 k6 k2) +#endif + // round 11-12 + + // round key store + "str.w r5, [r1,#40] \n\t" + "str.w r6, [r1,#44] \n\t" + + // premutation + + // r3 (--- --- --- ---) k5 k0 k7 k1 + // r4 (--- --- --- ---) k3 k4 k6 k2 + // r5 ( k3 k2 k1 k0) -----> --- --- --- --- + // r6 ( k7 k6 k5 k4) --- --- --- --- +#ifdef STM32F4 // for Cortex-M4 + "ror.w r3,r6, #16 \n\t" // r3( k5 k4 k7 k6) + "bfi.w r3,r5, #16,#8 \n\t" // r3( k5 k0 k7 k6) + "pkhtb.w r4,r5, r5, asr #16 \n\t" // r4( k3 k2 k3 k2) + "ror.w r5, #8 \n\t" // r5( k0 k3 k2 k1) + "bfi.w r3,r5, #0,#8 \n\t" // r3( k5 k4 k2 k6) + "bfi.w r4,r6, #16,#8 \n\t" // r4( k3 k4 k3 k2) + "ror.w r6,#16 \n\t" // r6( k5 k4 k7 k6) + "bfi.w r4,r6, #8,#8 \n\t" // r4( k3 k4 k6 k2) +#else // for Cortex-M3 + "rev.w r3, r6 \n\t" // r3( k4 k5 k6 k7) + "lsl.w r3, r3, #8 \n\t" // r3( k5 k6 k7 ---) + "bfi.w r3,r5, #16,#8 \n\t" // r3( k5 k0 k7 ---) + "lsr.w r5, r5, #8 \n\t" // r5(--- k3 k2 k1) + "bfi.w r3,r5, #0, #8 \n\t" // r3( k5 k0 k7 k1) + "rev16.w r4, r5 \n\t" // r4( k3 --- k1 k2) + "bfi.w r4,r6, #16,#8 \n\t" // r4( k3 k4 k1 k2) + "lsr.w r6, r6, #16 \n\t" // r6(-- --- k7 k6) + "bfi.w r4,r6, #8, #8 \n\t" // r4( k3 k4 k6 k2) +#endif + + // round 13-14 + + // round key store + "str.w r3, [r1,#48] \n\t" + "str.w r4, [r1,#52] \n\t" + + // premutation + + // r3 ( k3 k2 k1 k0) --- --- --- --- + // r4 ( k7 k6 k5 k4) --- --- --- --- + // r5 (--- --- --- ---) -----> k5 k0 k7 k1 + // r6 (--- --- --- ---) k3 k4 k6 k2 +#ifdef STM32F4 // for Cortex-M4 + "ror.w r5,r4, #16 \n\t" // r5( k5 k4 k7 k6) + "bfi.w r5,r3, #16,#8 \n\t" // r5( k5 k0 k7 k6) + "pkhtb.w r6,r3, r3, asr #16 \n\t" // r6( k3 k2 k3 k2) + "ror.w r3, #8 \n\t" // r3( k0 k3 k2 k1) + "bfi.w r5,r3, #0,#8 \n\t" // r5( k5 k4 k2 k6) + "bfi.w r6,r4, #16,#8 \n\t" // r6( k3 k4 k3 k2) + "ror.w r4,#16 \n\t" // r4( k5 k4 k7 k6) + "bfi.w r6,r4, #8,#8 \n\t" // r6( k3 k4 k6 k2) +#else // for Cortex-M3 + "rev.w r5, r4 \n\t" // r5( k4 k5 k6 k7) + "lsl.w r5, r5, #8 \n\t" // r5( k5 k6 k7 ---) + "bfi.w r5,r3, #16,#8 \n\t" // r5( k5 k0 k7 ---) + "lsr.w r3, r3, #8 \n\t" // r3(--- k3 k2 k1) + "bfi.w r5,r3, #0, #8 \n\t" // r5( k5 k0 k7 k1) + "rev16.w r6, r3 \n\t" // r6( k3 --- k1 k2) + "bfi.w r6,r4, #16,#8 \n\t" // r6( k3 k4 k1 k2) + "lsr.w r4, r4, #16 \n\t" // r4(-- --- k7 k6) + "bfi.w r6,r4, #8, #8 \n\t" // r6( k3 k4 k6 k2) +#endif + // round 15-16 + + // round key store + "str.w r5, [r1,#56] \n\t" + "str.w r6, [r1,#60] \n\t" + + // premutation + + // not need to calculate (not used) + +// SC->(AC->ART)->SR->MC + + "add.w r14, r2, #256 \n\t" // point to SBOX ^ c2(0x02) + + "ldm.w r0, {r3-r6} \n\t" // load plaintext + // r0 now free to overwrite + + // round 1 + + // SubCell+ShiftRow+AC(c2) + // r3 (s3 s2 s1 s0) + // r4 (s7 s6 s5 s4) + // r5 (s11 s10 s9 s8) + // r6 (s15 s14 s13 s12) + + // 1st-2nd line + // r3(s3 s2 s1 s0) + "uxtb.w r9, r3, ror #24 \n\t" // s3 + "uxtb.w r8, r3, ror #16 \n\t" // s2 + "uxtb.w r7, r3, ror #8 \n\t" // s1 + "uxtb.w r3, r3 \n\t" // s0 + // r4(s6 s5 s4 s7) + "uxtb.w r12, r4, ror #16 \n\t" // s6 + "uxtb.w r11, r4, ror #8 \n\t" // s5 + "uxtb.w r10, r4 \n\t" // s4 + "uxtb.w r4, r4, ror #24 \n\t" // s7 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "eor.w r3, r3, r7, lsl #8 \n\t" + "eor.w r3, r3, r8, lsl #16 \n\t" + "eor.w r3, r3, r9, lsl #24 \n\t" + "eor.w r4, r4, r10, lsl #8 \n\t" + "eor.w r4, r4, r11, lsl #16 \n\t" + "eor.w r4, r4, r12, lsl #24 \n\t" + + // 3rd-4th line + // r5(s9 s8 s11 s10) + "uxtb.w r9, r5, ror #8 \n\t" // s9 + "uxtb.w r8, r5 \n\t" // s8 + "uxtb.w r7, r5, ror #24 \n\t" // s11 + "uxtb.w r5, r5, ror #16 \n\t" // s10 + // r6(s12 s15 s14 s13) + "uxtb.w r12, r6 \n\t" // s12 + "uxtb.w r11, r6, ror #24 \n\t" // s15 + "uxtb.w r10, r6, ror #16 \n\t" // s14 + "uxtb.w r6, r6, ror #8 \n\t" // s13 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "eor.w r5, r5, r7, lsl #8 \n\t" + "eor.w r5, r5, r8, lsl #16 \n\t" + "eor.w r5, r5, r9, lsl #24 \n\t" + "eor.w r6, r6, r10, lsl #8 \n\t" + "eor.w r6, r6, r11, lsl #16 \n\t" + "eor.w r6, r6, r12, lsl #24 \n\t" + + // AddRoundKey and AddRoundConst(from roundKeys) + "ldr.w r9, [r1,#0] \n\t" // load TK1 + "ldr.w r10, [r1,#4] \n\t" // load TK1 + "ldr.w r11, [r1,#64] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "ldr.w r12, [r1,#68] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + + "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) + "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) + // r8( s9 s8 s11 s10) + // r6(s12 s14 s14 s13) + + // MixColumn + "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 + "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 + "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 + // r8 ----------------> r8 + + // round 2 + + // SubCell+ShiftRow+AC(c2) + // r7 (s3 s2 s1 s0) + // r8 (s7 s6 s5 s4) + // r9 (s11 s10 s9 s8) + // r10(s15 s14 s13 s12) + + // 1st-2nd line + // r7(s3 s2 s1 s0) + "uxtb.w r5, r7, ror #24 \n\t" // s3 + "uxtb.w r4, r7, ror #16 \n\t" // s2 + "uxtb.w r3, r7, ror #8 \n\t" // s1 + "uxtb.w r7, r7 \n\t" // s0 + // r8(s6 s5 s4 s7) + "uxtb.w r12, r8, ror #16 \n\t" // s6 + "uxtb.w r11, r8, ror #8 \n\t" // s5 + "uxtb.w r6, r8 \n\t" // s4 + "uxtb.w r8, r8, ror #24 \n\t" // s7 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldr.w r0, [r1,#72] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r7, r7, r3, lsl #8 \n\t" + "eor.w r7, r7, r4, lsl #16 \n\t" + "eor.w r7, r7, r5, lsl #24 \n\t" + "eor.w r8, r8, r6, lsl #8 \n\t" + "eor.w r8, r8, r11, lsl #16 \n\t" + "eor.w r8, r8, r12, lsl #24 \n\t" + "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) + + // 3rd-4th line + // r9(s9 s8 s11 s10) + "uxtb.w r5, r9, ror #8 \n\t" // s9 + "uxtb.w r7, r9 \n\t" // s8 + "uxtb.w r3, r9, ror #24 \n\t" // s11 + "uxtb.w r9, r9, ror #16 \n\t" // s10 + // r10(s12 s15 s14 s13) + "uxtb.w r12, r10 \n\t" // s12 + "uxtb.w r11, r10, ror #24 \n\t" // s15 + "uxtb.w r6, r10, ror #16 \n\t" // s14 + "uxtb.w r10, r10, ror #8 \n\t" // s13 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldr.w r0, [r1,#76] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r9, r9, r3, lsl #8 \n\t" + "eor.w r9, r9, r7, lsl #16 \n\t" + "eor.w r9, r9, r5, lsl #24 \n\t" + "eor.w r10, r10, r6, lsl #8 \n\t" + "eor.w r10, r10, r11, lsl #16 \n\t" + "eor.w r10, r10, r12, lsl #24 \n\t" + "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) + + // AddRoundKey and AddRoundConst(from roundKeys) + + // r9( s9 s8 s11 s10) + // r10(s12 s14 s14 s13) + + // MixColumn + "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 + "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 + "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 + // r4 ----------------> r4 + // round 3 + + // SubCell+ShiftRow+AC(c2) + // r3 (s3 s2 s1 s0) + // r4 (s7 s6 s5 s4) + // r5 (s11 s10 s9 s8) + // r6 (s15 s14 s13 s12) + + // 1st-2nd line + // r3(s3 s2 s1 s0) + "uxtb.w r9, r3, ror #24 \n\t" // s3 + "uxtb.w r8, r3, ror #16 \n\t" // s2 + "uxtb.w r7, r3, ror #8 \n\t" // s1 + "uxtb.w r3, r3 \n\t" // s0 + // r4(s6 s5 s4 s7) + "uxtb.w r12, r4, ror #16 \n\t" // s6 + "uxtb.w r11, r4, ror #8 \n\t" // s5 + "uxtb.w r10, r4 \n\t" // s4 + "uxtb.w r4, r4, ror #24 \n\t" // s7 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "eor.w r3, r3, r7, lsl #8 \n\t" + "eor.w r3, r3, r8, lsl #16 \n\t" + "eor.w r3, r3, r9, lsl #24 \n\t" + "eor.w r4, r4, r10, lsl #8 \n\t" + "eor.w r4, r4, r11, lsl #16 \n\t" + "eor.w r4, r4, r12, lsl #24 \n\t" + + // 3rd-4th line + // r5(s9 s8 s11 s10) + "uxtb.w r9, r5, ror #8 \n\t" // s9 + "uxtb.w r8, r5 \n\t" // s8 + "uxtb.w r7, r5, ror #24 \n\t" // s11 + "uxtb.w r5, r5, ror #16 \n\t" // s10 + // r6(s12 s15 s14 s13) + "uxtb.w r12, r6 \n\t" // s12 + "uxtb.w r11, r6, ror #24 \n\t" // s15 + "uxtb.w r10, r6, ror #16 \n\t" // s14 + "uxtb.w r6, r6, ror #8 \n\t" // s13 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "eor.w r5, r5, r7, lsl #8 \n\t" + "eor.w r5, r5, r8, lsl #16 \n\t" + "eor.w r5, r5, r9, lsl #24 \n\t" + "eor.w r6, r6, r10, lsl #8 \n\t" + "eor.w r6, r6, r11, lsl #16 \n\t" + "eor.w r6, r6, r12, lsl #24 \n\t" + + // AddRoundKey and AddRoundConst(from roundKeys) + "ldr.w r9, [r1,#8] \n\t" // load TK1 + "ldr.w r10, [r1,#12] \n\t" // load TK1 + "ldr.w r11, [r1,#80] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "ldr.w r12, [r1,#84] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + + "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) + "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) + // r8( s9 s8 s11 s10) + // r6(s12 s14 s14 s13) + + // MixColumn + "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 + "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 + "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 + // r8 ----------------> r8 + + // round 4 + + // SubCell+ShiftRow+AC(c2) + // r7 (s3 s2 s1 s0) + // r8 (s7 s6 s5 s4) + // r9 (s11 s10 s9 s8) + // r10(s15 s14 s13 s12) + + // 1st-2nd line + // r7(s3 s2 s1 s0) + "uxtb.w r5, r7, ror #24 \n\t" // s3 + "uxtb.w r4, r7, ror #16 \n\t" // s2 + "uxtb.w r3, r7, ror #8 \n\t" // s1 + "uxtb.w r7, r7 \n\t" // s0 + // r8(s6 s5 s4 s7) + "uxtb.w r12, r8, ror #16 \n\t" // s6 + "uxtb.w r11, r8, ror #8 \n\t" // s5 + "uxtb.w r6, r8 \n\t" // s4 + "uxtb.w r8, r8, ror #24 \n\t" // s7 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldr.w r0, [r1,#88] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r7, r7, r3, lsl #8 \n\t" + "eor.w r7, r7, r4, lsl #16 \n\t" + "eor.w r7, r7, r5, lsl #24 \n\t" + "eor.w r8, r8, r6, lsl #8 \n\t" + "eor.w r8, r8, r11, lsl #16 \n\t" + "eor.w r8, r8, r12, lsl #24 \n\t" + "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) + + // 3rd-4th line + // r9(s9 s8 s11 s10) + "uxtb.w r5, r9, ror #8 \n\t" // s9 + "uxtb.w r7, r9 \n\t" // s8 + "uxtb.w r3, r9, ror #24 \n\t" // s11 + "uxtb.w r9, r9, ror #16 \n\t" // s10 + // r10(s12 s15 s14 s13) + "uxtb.w r12, r10 \n\t" // s12 + "uxtb.w r11, r10, ror #24 \n\t" // s15 + "uxtb.w r6, r10, ror #16 \n\t" // s14 + "uxtb.w r10, r10, ror #8 \n\t" // s13 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldr.w r0, [r1,#92] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r9, r9, r3, lsl #8 \n\t" + "eor.w r9, r9, r7, lsl #16 \n\t" + "eor.w r9, r9, r5, lsl #24 \n\t" + "eor.w r10, r10, r6, lsl #8 \n\t" + "eor.w r10, r10, r11, lsl #16 \n\t" + "eor.w r10, r10, r12, lsl #24 \n\t" + "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) + + // AddRoundKey and AddRoundConst(from roundKeys) + + // r9( s9 s8 s11 s10) + // r10(s12 s14 s14 s13) + + // MixColumn + "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 + "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 + "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 + // r4 ----------------> r4 + // round 5 + + // SubCell+ShiftRow+AC(c2) + // r3 (s3 s2 s1 s0) + // r4 (s7 s6 s5 s4) + // r5 (s11 s10 s9 s8) + // r6 (s15 s14 s13 s12) + + // 1st-2nd line + // r3(s3 s2 s1 s0) + "uxtb.w r9, r3, ror #24 \n\t" // s3 + "uxtb.w r8, r3, ror #16 \n\t" // s2 + "uxtb.w r7, r3, ror #8 \n\t" // s1 + "uxtb.w r3, r3 \n\t" // s0 + // r4(s6 s5 s4 s7) + "uxtb.w r12, r4, ror #16 \n\t" // s6 + "uxtb.w r11, r4, ror #8 \n\t" // s5 + "uxtb.w r10, r4 \n\t" // s4 + "uxtb.w r4, r4, ror #24 \n\t" // s7 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "eor.w r3, r3, r7, lsl #8 \n\t" + "eor.w r3, r3, r8, lsl #16 \n\t" + "eor.w r3, r3, r9, lsl #24 \n\t" + "eor.w r4, r4, r10, lsl #8 \n\t" + "eor.w r4, r4, r11, lsl #16 \n\t" + "eor.w r4, r4, r12, lsl #24 \n\t" + + // 3rd-4th line + // r5(s9 s8 s11 s10) + "uxtb.w r9, r5, ror #8 \n\t" // s9 + "uxtb.w r8, r5 \n\t" // s8 + "uxtb.w r7, r5, ror #24 \n\t" // s11 + "uxtb.w r5, r5, ror #16 \n\t" // s10 + // r6(s12 s15 s14 s13) + "uxtb.w r12, r6 \n\t" // s12 + "uxtb.w r11, r6, ror #24 \n\t" // s15 + "uxtb.w r10, r6, ror #16 \n\t" // s14 + "uxtb.w r6, r6, ror #8 \n\t" // s13 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "eor.w r5, r5, r7, lsl #8 \n\t" + "eor.w r5, r5, r8, lsl #16 \n\t" + "eor.w r5, r5, r9, lsl #24 \n\t" + "eor.w r6, r6, r10, lsl #8 \n\t" + "eor.w r6, r6, r11, lsl #16 \n\t" + "eor.w r6, r6, r12, lsl #24 \n\t" + + // AddRoundKey and AddRoundConst(from roundKeys) + "ldr.w r9, [r1,#16] \n\t" // load TK1 + "ldr.w r10, [r1,#20] \n\t" // load TK1 + "ldr.w r11, [r1,#96] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "ldr.w r12, [r1,#100] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + + "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) + "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) + // r8( s9 s8 s11 s10) + // r6(s12 s14 s14 s13) + + // MixColumn + "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 + "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 + "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 + // r8 ----------------> r8 + + // round 6 + + // SubCell+ShiftRow+AC(c2) + // r7 (s3 s2 s1 s0) + // r8 (s7 s6 s5 s4) + // r9 (s11 s10 s9 s8) + // r10(s15 s14 s13 s12) + + // 1st-2nd line + // r7(s3 s2 s1 s0) + "uxtb.w r5, r7, ror #24 \n\t" // s3 + "uxtb.w r4, r7, ror #16 \n\t" // s2 + "uxtb.w r3, r7, ror #8 \n\t" // s1 + "uxtb.w r7, r7 \n\t" // s0 + // r8(s6 s5 s4 s7) + "uxtb.w r12, r8, ror #16 \n\t" // s6 + "uxtb.w r11, r8, ror #8 \n\t" // s5 + "uxtb.w r6, r8 \n\t" // s4 + "uxtb.w r8, r8, ror #24 \n\t" // s7 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldr.w r0, [r1,#104] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r7, r7, r3, lsl #8 \n\t" + "eor.w r7, r7, r4, lsl #16 \n\t" + "eor.w r7, r7, r5, lsl #24 \n\t" + "eor.w r8, r8, r6, lsl #8 \n\t" + "eor.w r8, r8, r11, lsl #16 \n\t" + "eor.w r8, r8, r12, lsl #24 \n\t" + "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) + + // 3rd-4th line + // r9(s9 s8 s11 s10) + "uxtb.w r5, r9, ror #8 \n\t" // s9 + "uxtb.w r7, r9 \n\t" // s8 + "uxtb.w r3, r9, ror #24 \n\t" // s11 + "uxtb.w r9, r9, ror #16 \n\t" // s10 + // r10(s12 s15 s14 s13) + "uxtb.w r12, r10 \n\t" // s12 + "uxtb.w r11, r10, ror #24 \n\t" // s15 + "uxtb.w r6, r10, ror #16 \n\t" // s14 + "uxtb.w r10, r10, ror #8 \n\t" // s13 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldr.w r0, [r1,#108] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r9, r9, r3, lsl #8 \n\t" + "eor.w r9, r9, r7, lsl #16 \n\t" + "eor.w r9, r9, r5, lsl #24 \n\t" + "eor.w r10, r10, r6, lsl #8 \n\t" + "eor.w r10, r10, r11, lsl #16 \n\t" + "eor.w r10, r10, r12, lsl #24 \n\t" + "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) + + // AddRoundKey and AddRoundConst(from roundKeys) + + // r9( s9 s8 s11 s10) + // r10(s12 s14 s14 s13) + + // MixColumn + "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 + "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 + "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 + // r4 ----------------> r4 + // round 7 + + // SubCell+ShiftRow+AC(c2) + // r3 (s3 s2 s1 s0) + // r4 (s7 s6 s5 s4) + // r5 (s11 s10 s9 s8) + // r6 (s15 s14 s13 s12) + + // 1st-2nd line + // r3(s3 s2 s1 s0) + "uxtb.w r9, r3, ror #24 \n\t" // s3 + "uxtb.w r8, r3, ror #16 \n\t" // s2 + "uxtb.w r7, r3, ror #8 \n\t" // s1 + "uxtb.w r3, r3 \n\t" // s0 + // r4(s6 s5 s4 s7) + "uxtb.w r12, r4, ror #16 \n\t" // s6 + "uxtb.w r11, r4, ror #8 \n\t" // s5 + "uxtb.w r10, r4 \n\t" // s4 + "uxtb.w r4, r4, ror #24 \n\t" // s7 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "eor.w r3, r3, r7, lsl #8 \n\t" + "eor.w r3, r3, r8, lsl #16 \n\t" + "eor.w r3, r3, r9, lsl #24 \n\t" + "eor.w r4, r4, r10, lsl #8 \n\t" + "eor.w r4, r4, r11, lsl #16 \n\t" + "eor.w r4, r4, r12, lsl #24 \n\t" + + // 3rd-4th line + // r5(s9 s8 s11 s10) + "uxtb.w r9, r5, ror #8 \n\t" // s9 + "uxtb.w r8, r5 \n\t" // s8 + "uxtb.w r7, r5, ror #24 \n\t" // s11 + "uxtb.w r5, r5, ror #16 \n\t" // s10 + // r6(s12 s15 s14 s13) + "uxtb.w r12, r6 \n\t" // s12 + "uxtb.w r11, r6, ror #24 \n\t" // s15 + "uxtb.w r10, r6, ror #16 \n\t" // s14 + "uxtb.w r6, r6, ror #8 \n\t" // s13 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "eor.w r5, r5, r7, lsl #8 \n\t" + "eor.w r5, r5, r8, lsl #16 \n\t" + "eor.w r5, r5, r9, lsl #24 \n\t" + "eor.w r6, r6, r10, lsl #8 \n\t" + "eor.w r6, r6, r11, lsl #16 \n\t" + "eor.w r6, r6, r12, lsl #24 \n\t" + + // AddRoundKey and AddRoundConst(from roundKeys) + "ldr.w r9, [r1,#24] \n\t" // load TK1 + "ldr.w r10, [r1,#28] \n\t" // load TK1 + "ldr.w r11, [r1,#112] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "ldr.w r12, [r1,#116] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + + "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) + "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) + // r8( s9 s8 s11 s10) + // r6(s12 s14 s14 s13) + + // MixColumn + "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 + "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 + "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 + // r8 ----------------> r8 + + // round 8 + + // SubCell+ShiftRow+AC(c2) + // r7 (s3 s2 s1 s0) + // r8 (s7 s6 s5 s4) + // r9 (s11 s10 s9 s8) + // r10(s15 s14 s13 s12) + + // 1st-2nd line + // r7(s3 s2 s1 s0) + "uxtb.w r5, r7, ror #24 \n\t" // s3 + "uxtb.w r4, r7, ror #16 \n\t" // s2 + "uxtb.w r3, r7, ror #8 \n\t" // s1 + "uxtb.w r7, r7 \n\t" // s0 + // r8(s6 s5 s4 s7) + "uxtb.w r12, r8, ror #16 \n\t" // s6 + "uxtb.w r11, r8, ror #8 \n\t" // s5 + "uxtb.w r6, r8 \n\t" // s4 + "uxtb.w r8, r8, ror #24 \n\t" // s7 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldr.w r0, [r1,#120] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r7, r7, r3, lsl #8 \n\t" + "eor.w r7, r7, r4, lsl #16 \n\t" + "eor.w r7, r7, r5, lsl #24 \n\t" + "eor.w r8, r8, r6, lsl #8 \n\t" + "eor.w r8, r8, r11, lsl #16 \n\t" + "eor.w r8, r8, r12, lsl #24 \n\t" + "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) + + // 3rd-4th line + // r9(s9 s8 s11 s10) + "uxtb.w r5, r9, ror #8 \n\t" // s9 + "uxtb.w r7, r9 \n\t" // s8 + "uxtb.w r3, r9, ror #24 \n\t" // s11 + "uxtb.w r9, r9, ror #16 \n\t" // s10 + // r10(s12 s15 s14 s13) + "uxtb.w r12, r10 \n\t" // s12 + "uxtb.w r11, r10, ror #24 \n\t" // s15 + "uxtb.w r6, r10, ror #16 \n\t" // s14 + "uxtb.w r10, r10, ror #8 \n\t" // s13 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldr.w r0, [r1,#124] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r9, r9, r3, lsl #8 \n\t" + "eor.w r9, r9, r7, lsl #16 \n\t" + "eor.w r9, r9, r5, lsl #24 \n\t" + "eor.w r10, r10, r6, lsl #8 \n\t" + "eor.w r10, r10, r11, lsl #16 \n\t" + "eor.w r10, r10, r12, lsl #24 \n\t" + "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) + + // AddRoundKey and AddRoundConst(from roundKeys) + + // r9( s9 s8 s11 s10) + // r10(s12 s14 s14 s13) + + // MixColumn + "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 + "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 + "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 + // r4 ----------------> r4 + // round 9 + + // SubCell+ShiftRow+AC(c2) + // r3 (s3 s2 s1 s0) + // r4 (s7 s6 s5 s4) + // r5 (s11 s10 s9 s8) + // r6 (s15 s14 s13 s12) + + // 1st-2nd line + // r3(s3 s2 s1 s0) + "uxtb.w r9, r3, ror #24 \n\t" // s3 + "uxtb.w r8, r3, ror #16 \n\t" // s2 + "uxtb.w r7, r3, ror #8 \n\t" // s1 + "uxtb.w r3, r3 \n\t" // s0 + // r4(s6 s5 s4 s7) + "uxtb.w r12, r4, ror #16 \n\t" // s6 + "uxtb.w r11, r4, ror #8 \n\t" // s5 + "uxtb.w r10, r4 \n\t" // s4 + "uxtb.w r4, r4, ror #24 \n\t" // s7 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "eor.w r3, r3, r7, lsl #8 \n\t" + "eor.w r3, r3, r8, lsl #16 \n\t" + "eor.w r3, r3, r9, lsl #24 \n\t" + "eor.w r4, r4, r10, lsl #8 \n\t" + "eor.w r4, r4, r11, lsl #16 \n\t" + "eor.w r4, r4, r12, lsl #24 \n\t" + + // 3rd-4th line + // r5(s9 s8 s11 s10) + "uxtb.w r9, r5, ror #8 \n\t" // s9 + "uxtb.w r8, r5 \n\t" // s8 + "uxtb.w r7, r5, ror #24 \n\t" // s11 + "uxtb.w r5, r5, ror #16 \n\t" // s10 + // r6(s12 s15 s14 s13) + "uxtb.w r12, r6 \n\t" // s12 + "uxtb.w r11, r6, ror #24 \n\t" // s15 + "uxtb.w r10, r6, ror #16 \n\t" // s14 + "uxtb.w r6, r6, ror #8 \n\t" // s13 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "eor.w r5, r5, r7, lsl #8 \n\t" + "eor.w r5, r5, r8, lsl #16 \n\t" + "eor.w r5, r5, r9, lsl #24 \n\t" + "eor.w r6, r6, r10, lsl #8 \n\t" + "eor.w r6, r6, r11, lsl #16 \n\t" + "eor.w r6, r6, r12, lsl #24 \n\t" + + // AddRoundKey and AddRoundConst(from roundKeys) + "ldr.w r9, [r1,#32] \n\t" // load TK1 + "ldr.w r10, [r1,#36] \n\t" // load TK1 + "ldr.w r11, [r1,#128] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "ldr.w r12, [r1,#132] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + + "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) + "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) + // r8( s9 s8 s11 s10) + // r6(s12 s14 s14 s13) + + // MixColumn + "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 + "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 + "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 + // r8 ----------------> r8 + + // round 10 + + // SubCell+ShiftRow+AC(c2) + // r7 (s3 s2 s1 s0) + // r8 (s7 s6 s5 s4) + // r9 (s11 s10 s9 s8) + // r10(s15 s14 s13 s12) + + // 1st-2nd line + // r7(s3 s2 s1 s0) + "uxtb.w r5, r7, ror #24 \n\t" // s3 + "uxtb.w r4, r7, ror #16 \n\t" // s2 + "uxtb.w r3, r7, ror #8 \n\t" // s1 + "uxtb.w r7, r7 \n\t" // s0 + // r8(s6 s5 s4 s7) + "uxtb.w r12, r8, ror #16 \n\t" // s6 + "uxtb.w r11, r8, ror #8 \n\t" // s5 + "uxtb.w r6, r8 \n\t" // s4 + "uxtb.w r8, r8, ror #24 \n\t" // s7 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldr.w r0, [r1,#136] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r7, r7, r3, lsl #8 \n\t" + "eor.w r7, r7, r4, lsl #16 \n\t" + "eor.w r7, r7, r5, lsl #24 \n\t" + "eor.w r8, r8, r6, lsl #8 \n\t" + "eor.w r8, r8, r11, lsl #16 \n\t" + "eor.w r8, r8, r12, lsl #24 \n\t" + "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) + + // 3rd-4th line + // r9(s9 s8 s11 s10) + "uxtb.w r5, r9, ror #8 \n\t" // s9 + "uxtb.w r7, r9 \n\t" // s8 + "uxtb.w r3, r9, ror #24 \n\t" // s11 + "uxtb.w r9, r9, ror #16 \n\t" // s10 + // r10(s12 s15 s14 s13) + "uxtb.w r12, r10 \n\t" // s12 + "uxtb.w r11, r10, ror #24 \n\t" // s15 + "uxtb.w r6, r10, ror #16 \n\t" // s14 + "uxtb.w r10, r10, ror #8 \n\t" // s13 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldr.w r0, [r1,#140] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r9, r9, r3, lsl #8 \n\t" + "eor.w r9, r9, r7, lsl #16 \n\t" + "eor.w r9, r9, r5, lsl #24 \n\t" + "eor.w r10, r10, r6, lsl #8 \n\t" + "eor.w r10, r10, r11, lsl #16 \n\t" + "eor.w r10, r10, r12, lsl #24 \n\t" + "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) + + // AddRoundKey and AddRoundConst(from roundKeys) + + // r9( s9 s8 s11 s10) + // r10(s12 s14 s14 s13) + + // MixColumn + "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 + "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 + "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 + // r4 ----------------> r4 + // round 11 + + // SubCell+ShiftRow+AC(c2) + // r3 (s3 s2 s1 s0) + // r4 (s7 s6 s5 s4) + // r5 (s11 s10 s9 s8) + // r6 (s15 s14 s13 s12) + + // 1st-2nd line + // r3(s3 s2 s1 s0) + "uxtb.w r9, r3, ror #24 \n\t" // s3 + "uxtb.w r8, r3, ror #16 \n\t" // s2 + "uxtb.w r7, r3, ror #8 \n\t" // s1 + "uxtb.w r3, r3 \n\t" // s0 + // r4(s6 s5 s4 s7) + "uxtb.w r12, r4, ror #16 \n\t" // s6 + "uxtb.w r11, r4, ror #8 \n\t" // s5 + "uxtb.w r10, r4 \n\t" // s4 + "uxtb.w r4, r4, ror #24 \n\t" // s7 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "eor.w r3, r3, r7, lsl #8 \n\t" + "eor.w r3, r3, r8, lsl #16 \n\t" + "eor.w r3, r3, r9, lsl #24 \n\t" + "eor.w r4, r4, r10, lsl #8 \n\t" + "eor.w r4, r4, r11, lsl #16 \n\t" + "eor.w r4, r4, r12, lsl #24 \n\t" + + // 3rd-4th line + // r5(s9 s8 s11 s10) + "uxtb.w r9, r5, ror #8 \n\t" // s9 + "uxtb.w r8, r5 \n\t" // s8 + "uxtb.w r7, r5, ror #24 \n\t" // s11 + "uxtb.w r5, r5, ror #16 \n\t" // s10 + // r6(s12 s15 s14 s13) + "uxtb.w r12, r6 \n\t" // s12 + "uxtb.w r11, r6, ror #24 \n\t" // s15 + "uxtb.w r10, r6, ror #16 \n\t" // s14 + "uxtb.w r6, r6, ror #8 \n\t" // s13 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "eor.w r5, r5, r7, lsl #8 \n\t" + "eor.w r5, r5, r8, lsl #16 \n\t" + "eor.w r5, r5, r9, lsl #24 \n\t" + "eor.w r6, r6, r10, lsl #8 \n\t" + "eor.w r6, r6, r11, lsl #16 \n\t" + "eor.w r6, r6, r12, lsl #24 \n\t" + + // AddRoundKey and AddRoundConst(from roundKeys) + "ldr.w r9, [r1,#40] \n\t" // load TK1 + "ldr.w r10, [r1,#44] \n\t" // load TK1 + "ldr.w r11, [r1,#144] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "ldr.w r12, [r1,#148] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + + "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) + "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) + // r8( s9 s8 s11 s10) + // r6(s12 s14 s14 s13) + + // MixColumn + "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 + "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 + "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 + // r8 ----------------> r8 + + // round 12 + + // SubCell+ShiftRow+AC(c2) + // r7 (s3 s2 s1 s0) + // r8 (s7 s6 s5 s4) + // r9 (s11 s10 s9 s8) + // r10(s15 s14 s13 s12) + + // 1st-2nd line + // r7(s3 s2 s1 s0) + "uxtb.w r5, r7, ror #24 \n\t" // s3 + "uxtb.w r4, r7, ror #16 \n\t" // s2 + "uxtb.w r3, r7, ror #8 \n\t" // s1 + "uxtb.w r7, r7 \n\t" // s0 + // r8(s6 s5 s4 s7) + "uxtb.w r12, r8, ror #16 \n\t" // s6 + "uxtb.w r11, r8, ror #8 \n\t" // s5 + "uxtb.w r6, r8 \n\t" // s4 + "uxtb.w r8, r8, ror #24 \n\t" // s7 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldr.w r0, [r1,#152] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r7, r7, r3, lsl #8 \n\t" + "eor.w r7, r7, r4, lsl #16 \n\t" + "eor.w r7, r7, r5, lsl #24 \n\t" + "eor.w r8, r8, r6, lsl #8 \n\t" + "eor.w r8, r8, r11, lsl #16 \n\t" + "eor.w r8, r8, r12, lsl #24 \n\t" + "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) + + // 3rd-4th line + // r9(s9 s8 s11 s10) + "uxtb.w r5, r9, ror #8 \n\t" // s9 + "uxtb.w r7, r9 \n\t" // s8 + "uxtb.w r3, r9, ror #24 \n\t" // s11 + "uxtb.w r9, r9, ror #16 \n\t" // s10 + // r10(s12 s15 s14 s13) + "uxtb.w r12, r10 \n\t" // s12 + "uxtb.w r11, r10, ror #24 \n\t" // s15 + "uxtb.w r6, r10, ror #16 \n\t" // s14 + "uxtb.w r10, r10, ror #8 \n\t" // s13 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldr.w r0, [r1,#156] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r9, r9, r3, lsl #8 \n\t" + "eor.w r9, r9, r7, lsl #16 \n\t" + "eor.w r9, r9, r5, lsl #24 \n\t" + "eor.w r10, r10, r6, lsl #8 \n\t" + "eor.w r10, r10, r11, lsl #16 \n\t" + "eor.w r10, r10, r12, lsl #24 \n\t" + "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) + + // AddRoundKey and AddRoundConst(from roundKeys) + + // r9( s9 s8 s11 s10) + // r10(s12 s14 s14 s13) + + // MixColumn + "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 + "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 + "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 + // r4 ----------------> r4 + // round 13 + + // SubCell+ShiftRow+AC(c2) + // r3 (s3 s2 s1 s0) + // r4 (s7 s6 s5 s4) + // r5 (s11 s10 s9 s8) + // r6 (s15 s14 s13 s12) + + // 1st-2nd line + // r3(s3 s2 s1 s0) + "uxtb.w r9, r3, ror #24 \n\t" // s3 + "uxtb.w r8, r3, ror #16 \n\t" // s2 + "uxtb.w r7, r3, ror #8 \n\t" // s1 + "uxtb.w r3, r3 \n\t" // s0 + // r4(s6 s5 s4 s7) + "uxtb.w r12, r4, ror #16 \n\t" // s6 + "uxtb.w r11, r4, ror #8 \n\t" // s5 + "uxtb.w r10, r4 \n\t" // s4 + "uxtb.w r4, r4, ror #24 \n\t" // s7 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "eor.w r3, r3, r7, lsl #8 \n\t" + "eor.w r3, r3, r8, lsl #16 \n\t" + "eor.w r3, r3, r9, lsl #24 \n\t" + "eor.w r4, r4, r10, lsl #8 \n\t" + "eor.w r4, r4, r11, lsl #16 \n\t" + "eor.w r4, r4, r12, lsl #24 \n\t" + + // 3rd-4th line + // r5(s9 s8 s11 s10) + "uxtb.w r9, r5, ror #8 \n\t" // s9 + "uxtb.w r8, r5 \n\t" // s8 + "uxtb.w r7, r5, ror #24 \n\t" // s11 + "uxtb.w r5, r5, ror #16 \n\t" // s10 + // r6(s12 s15 s14 s13) + "uxtb.w r12, r6 \n\t" // s12 + "uxtb.w r11, r6, ror #24 \n\t" // s15 + "uxtb.w r10, r6, ror #16 \n\t" // s14 + "uxtb.w r6, r6, ror #8 \n\t" // s13 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "eor.w r5, r5, r7, lsl #8 \n\t" + "eor.w r5, r5, r8, lsl #16 \n\t" + "eor.w r5, r5, r9, lsl #24 \n\t" + "eor.w r6, r6, r10, lsl #8 \n\t" + "eor.w r6, r6, r11, lsl #16 \n\t" + "eor.w r6, r6, r12, lsl #24 \n\t" + + // AddRoundKey and AddRoundConst(from roundKeys) + "ldr.w r9, [r1,#48] \n\t" // load TK1 + "ldr.w r10, [r1,#52] \n\t" // load TK1 + "ldr.w r11, [r1,#160] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "ldr.w r12, [r1,#164] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + + "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) + "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) + // r8( s9 s8 s11 s10) + // r6(s12 s14 s14 s13) + + // MixColumn + "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 + "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 + "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 + // r8 ----------------> r8 + + // round 14 + + // SubCell+ShiftRow+AC(c2) + // r7 (s3 s2 s1 s0) + // r8 (s7 s6 s5 s4) + // r9 (s11 s10 s9 s8) + // r10(s15 s14 s13 s12) + + // 1st-2nd line + // r7(s3 s2 s1 s0) + "uxtb.w r5, r7, ror #24 \n\t" // s3 + "uxtb.w r4, r7, ror #16 \n\t" // s2 + "uxtb.w r3, r7, ror #8 \n\t" // s1 + "uxtb.w r7, r7 \n\t" // s0 + // r8(s6 s5 s4 s7) + "uxtb.w r12, r8, ror #16 \n\t" // s6 + "uxtb.w r11, r8, ror #8 \n\t" // s5 + "uxtb.w r6, r8 \n\t" // s4 + "uxtb.w r8, r8, ror #24 \n\t" // s7 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldr.w r0, [r1,#168] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r7, r7, r3, lsl #8 \n\t" + "eor.w r7, r7, r4, lsl #16 \n\t" + "eor.w r7, r7, r5, lsl #24 \n\t" + "eor.w r8, r8, r6, lsl #8 \n\t" + "eor.w r8, r8, r11, lsl #16 \n\t" + "eor.w r8, r8, r12, lsl #24 \n\t" + "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) + + // 3rd-4th line + // r9(s9 s8 s11 s10) + "uxtb.w r5, r9, ror #8 \n\t" // s9 + "uxtb.w r7, r9 \n\t" // s8 + "uxtb.w r3, r9, ror #24 \n\t" // s11 + "uxtb.w r9, r9, ror #16 \n\t" // s10 + // r10(s12 s15 s14 s13) + "uxtb.w r12, r10 \n\t" // s12 + "uxtb.w r11, r10, ror #24 \n\t" // s15 + "uxtb.w r6, r10, ror #16 \n\t" // s14 + "uxtb.w r10, r10, ror #8 \n\t" // s13 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldr.w r0, [r1,#172] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r9, r9, r3, lsl #8 \n\t" + "eor.w r9, r9, r7, lsl #16 \n\t" + "eor.w r9, r9, r5, lsl #24 \n\t" + "eor.w r10, r10, r6, lsl #8 \n\t" + "eor.w r10, r10, r11, lsl #16 \n\t" + "eor.w r10, r10, r12, lsl #24 \n\t" + "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) + + // AddRoundKey and AddRoundConst(from roundKeys) + + // r9( s9 s8 s11 s10) + // r10(s12 s14 s14 s13) + + // MixColumn + "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 + "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 + "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 + // r4 ----------------> r4 + // round 15 + + // SubCell+ShiftRow+AC(c2) + // r3 (s3 s2 s1 s0) + // r4 (s7 s6 s5 s4) + // r5 (s11 s10 s9 s8) + // r6 (s15 s14 s13 s12) + + // 1st-2nd line + // r3(s3 s2 s1 s0) + "uxtb.w r9, r3, ror #24 \n\t" // s3 + "uxtb.w r8, r3, ror #16 \n\t" // s2 + "uxtb.w r7, r3, ror #8 \n\t" // s1 + "uxtb.w r3, r3 \n\t" // s0 + // r4(s6 s5 s4 s7) + "uxtb.w r12, r4, ror #16 \n\t" // s6 + "uxtb.w r11, r4, ror #8 \n\t" // s5 + "uxtb.w r10, r4 \n\t" // s4 + "uxtb.w r4, r4, ror #24 \n\t" // s7 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "eor.w r3, r3, r7, lsl #8 \n\t" + "eor.w r3, r3, r8, lsl #16 \n\t" + "eor.w r3, r3, r9, lsl #24 \n\t" + "eor.w r4, r4, r10, lsl #8 \n\t" + "eor.w r4, r4, r11, lsl #16 \n\t" + "eor.w r4, r4, r12, lsl #24 \n\t" + + // 3rd-4th line + // r5(s9 s8 s11 s10) + "uxtb.w r9, r5, ror #8 \n\t" // s9 + "uxtb.w r8, r5 \n\t" // s8 + "uxtb.w r7, r5, ror #24 \n\t" // s11 + "uxtb.w r5, r5, ror #16 \n\t" // s10 + // r6(s12 s15 s14 s13) + "uxtb.w r12, r6 \n\t" // s12 + "uxtb.w r11, r6, ror #24 \n\t" // s15 + "uxtb.w r10, r6, ror #16 \n\t" // s14 + "uxtb.w r6, r6, ror #8 \n\t" // s13 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "eor.w r5, r5, r7, lsl #8 \n\t" + "eor.w r5, r5, r8, lsl #16 \n\t" + "eor.w r5, r5, r9, lsl #24 \n\t" + "eor.w r6, r6, r10, lsl #8 \n\t" + "eor.w r6, r6, r11, lsl #16 \n\t" + "eor.w r6, r6, r12, lsl #24 \n\t" + + // AddRoundKey and AddRoundConst(from roundKeys) + "ldr.w r9, [r1,#56] \n\t" // load TK1 + "ldr.w r10, [r1,#60] \n\t" // load TK1 + "ldr.w r11, [r1,#176] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "ldr.w r12, [r1,#180] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + + "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) + "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) + // r8( s9 s8 s11 s10) + // r6(s12 s14 s14 s13) + + // MixColumn + "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 + "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 + "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 + // r8 ----------------> r8 + + // round 16 + + // SubCell+ShiftRow+AC(c2) + // r7 (s3 s2 s1 s0) + // r8 (s7 s6 s5 s4) + // r9 (s11 s10 s9 s8) + // r10(s15 s14 s13 s12) + + // 1st-2nd line + // r7(s3 s2 s1 s0) + "uxtb.w r5, r7, ror #24 \n\t" // s3 + "uxtb.w r4, r7, ror #16 \n\t" // s2 + "uxtb.w r3, r7, ror #8 \n\t" // s1 + "uxtb.w r7, r7 \n\t" // s0 + // r8(s6 s5 s4 s7) + "uxtb.w r12, r8, ror #16 \n\t" // s6 + "uxtb.w r11, r8, ror #8 \n\t" // s5 + "uxtb.w r6, r8 \n\t" // s4 + "uxtb.w r8, r8, ror #24 \n\t" // s7 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldr.w r0, [r1,#184] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r7, r7, r3, lsl #8 \n\t" + "eor.w r7, r7, r4, lsl #16 \n\t" + "eor.w r7, r7, r5, lsl #24 \n\t" + "eor.w r8, r8, r6, lsl #8 \n\t" + "eor.w r8, r8, r11, lsl #16 \n\t" + "eor.w r8, r8, r12, lsl #24 \n\t" + "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) + + // 3rd-4th line + // r9(s9 s8 s11 s10) + "uxtb.w r5, r9, ror #8 \n\t" // s9 + "uxtb.w r7, r9 \n\t" // s8 + "uxtb.w r3, r9, ror #24 \n\t" // s11 + "uxtb.w r9, r9, ror #16 \n\t" // s10 + // r10(s12 s15 s14 s13) + "uxtb.w r12, r10 \n\t" // s12 + "uxtb.w r11, r10, ror #24 \n\t" // s15 + "uxtb.w r6, r10, ror #16 \n\t" // s14 + "uxtb.w r10, r10, ror #8 \n\t" // s13 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldr.w r0, [r1,#188] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r9, r9, r3, lsl #8 \n\t" + "eor.w r9, r9, r7, lsl #16 \n\t" + "eor.w r9, r9, r5, lsl #24 \n\t" + "eor.w r10, r10, r6, lsl #8 \n\t" + "eor.w r10, r10, r11, lsl #16 \n\t" + "eor.w r10, r10, r12, lsl #24 \n\t" + "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) + + // AddRoundKey and AddRoundConst(from roundKeys) + + // r9( s9 s8 s11 s10) + // r10(s12 s14 s14 s13) + + // MixColumn + "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 + "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 + "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 + // r4 ----------------> r4 + // round 17 + + // SubCell+ShiftRow+AC(c2) + // r3 (s3 s2 s1 s0) + // r4 (s7 s6 s5 s4) + // r5 (s11 s10 s9 s8) + // r6 (s15 s14 s13 s12) + + // 1st-2nd line + // r3(s3 s2 s1 s0) + "uxtb.w r9, r3, ror #24 \n\t" // s3 + "uxtb.w r8, r3, ror #16 \n\t" // s2 + "uxtb.w r7, r3, ror #8 \n\t" // s1 + "uxtb.w r3, r3 \n\t" // s0 + // r4(s6 s5 s4 s7) + "uxtb.w r12, r4, ror #16 \n\t" // s6 + "uxtb.w r11, r4, ror #8 \n\t" // s5 + "uxtb.w r10, r4 \n\t" // s4 + "uxtb.w r4, r4, ror #24 \n\t" // s7 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "eor.w r3, r3, r7, lsl #8 \n\t" + "eor.w r3, r3, r8, lsl #16 \n\t" + "eor.w r3, r3, r9, lsl #24 \n\t" + "eor.w r4, r4, r10, lsl #8 \n\t" + "eor.w r4, r4, r11, lsl #16 \n\t" + "eor.w r4, r4, r12, lsl #24 \n\t" + + // 3rd-4th line + // r5(s9 s8 s11 s10) + "uxtb.w r9, r5, ror #8 \n\t" // s9 + "uxtb.w r8, r5 \n\t" // s8 + "uxtb.w r7, r5, ror #24 \n\t" // s11 + "uxtb.w r5, r5, ror #16 \n\t" // s10 + // r6(s12 s15 s14 s13) + "uxtb.w r12, r6 \n\t" // s12 + "uxtb.w r11, r6, ror #24 \n\t" // s15 + "uxtb.w r10, r6, ror #16 \n\t" // s14 + "uxtb.w r6, r6, ror #8 \n\t" // s13 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "eor.w r5, r5, r7, lsl #8 \n\t" + "eor.w r5, r5, r8, lsl #16 \n\t" + "eor.w r5, r5, r9, lsl #24 \n\t" + "eor.w r6, r6, r10, lsl #8 \n\t" + "eor.w r6, r6, r11, lsl #16 \n\t" + "eor.w r6, r6, r12, lsl #24 \n\t" + + // AddRoundKey and AddRoundConst(from roundKeys) + "ldr.w r9, [r1,#0] \n\t" // load TK1 + "ldr.w r10, [r1,#4] \n\t" // load TK1 + "ldr.w r11, [r1,#192] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "ldr.w r12, [r1,#196] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + + "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) + "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) + // r8( s9 s8 s11 s10) + // r6(s12 s14 s14 s13) + + // MixColumn + "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 + "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 + "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 + // r8 ----------------> r8 + + // round 18 + + // SubCell+ShiftRow+AC(c2) + // r7 (s3 s2 s1 s0) + // r8 (s7 s6 s5 s4) + // r9 (s11 s10 s9 s8) + // r10(s15 s14 s13 s12) + + // 1st-2nd line + // r7(s3 s2 s1 s0) + "uxtb.w r5, r7, ror #24 \n\t" // s3 + "uxtb.w r4, r7, ror #16 \n\t" // s2 + "uxtb.w r3, r7, ror #8 \n\t" // s1 + "uxtb.w r7, r7 \n\t" // s0 + // r8(s6 s5 s4 s7) + "uxtb.w r12, r8, ror #16 \n\t" // s6 + "uxtb.w r11, r8, ror #8 \n\t" // s5 + "uxtb.w r6, r8 \n\t" // s4 + "uxtb.w r8, r8, ror #24 \n\t" // s7 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldr.w r0, [r1,#200] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r7, r7, r3, lsl #8 \n\t" + "eor.w r7, r7, r4, lsl #16 \n\t" + "eor.w r7, r7, r5, lsl #24 \n\t" + "eor.w r8, r8, r6, lsl #8 \n\t" + "eor.w r8, r8, r11, lsl #16 \n\t" + "eor.w r8, r8, r12, lsl #24 \n\t" + "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) + + // 3rd-4th line + // r9(s9 s8 s11 s10) + "uxtb.w r5, r9, ror #8 \n\t" // s9 + "uxtb.w r7, r9 \n\t" // s8 + "uxtb.w r3, r9, ror #24 \n\t" // s11 + "uxtb.w r9, r9, ror #16 \n\t" // s10 + // r10(s12 s15 s14 s13) + "uxtb.w r12, r10 \n\t" // s12 + "uxtb.w r11, r10, ror #24 \n\t" // s15 + "uxtb.w r6, r10, ror #16 \n\t" // s14 + "uxtb.w r10, r10, ror #8 \n\t" // s13 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldr.w r0, [r1,#204] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r9, r9, r3, lsl #8 \n\t" + "eor.w r9, r9, r7, lsl #16 \n\t" + "eor.w r9, r9, r5, lsl #24 \n\t" + "eor.w r10, r10, r6, lsl #8 \n\t" + "eor.w r10, r10, r11, lsl #16 \n\t" + "eor.w r10, r10, r12, lsl #24 \n\t" + "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) + + // AddRoundKey and AddRoundConst(from roundKeys) + + // r9( s9 s8 s11 s10) + // r10(s12 s14 s14 s13) + + // MixColumn + "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 + "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 + "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 + // r4 ----------------> r4 + // round 19 + + // SubCell+ShiftRow+AC(c2) + // r3 (s3 s2 s1 s0) + // r4 (s7 s6 s5 s4) + // r5 (s11 s10 s9 s8) + // r6 (s15 s14 s13 s12) + + // 1st-2nd line + // r3(s3 s2 s1 s0) + "uxtb.w r9, r3, ror #24 \n\t" // s3 + "uxtb.w r8, r3, ror #16 \n\t" // s2 + "uxtb.w r7, r3, ror #8 \n\t" // s1 + "uxtb.w r3, r3 \n\t" // s0 + // r4(s6 s5 s4 s7) + "uxtb.w r12, r4, ror #16 \n\t" // s6 + "uxtb.w r11, r4, ror #8 \n\t" // s5 + "uxtb.w r10, r4 \n\t" // s4 + "uxtb.w r4, r4, ror #24 \n\t" // s7 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "eor.w r3, r3, r7, lsl #8 \n\t" + "eor.w r3, r3, r8, lsl #16 \n\t" + "eor.w r3, r3, r9, lsl #24 \n\t" + "eor.w r4, r4, r10, lsl #8 \n\t" + "eor.w r4, r4, r11, lsl #16 \n\t" + "eor.w r4, r4, r12, lsl #24 \n\t" + + // 3rd-4th line + // r5(s9 s8 s11 s10) + "uxtb.w r9, r5, ror #8 \n\t" // s9 + "uxtb.w r8, r5 \n\t" // s8 + "uxtb.w r7, r5, ror #24 \n\t" // s11 + "uxtb.w r5, r5, ror #16 \n\t" // s10 + // r6(s12 s15 s14 s13) + "uxtb.w r12, r6 \n\t" // s12 + "uxtb.w r11, r6, ror #24 \n\t" // s15 + "uxtb.w r10, r6, ror #16 \n\t" // s14 + "uxtb.w r6, r6, ror #8 \n\t" // s13 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "eor.w r5, r5, r7, lsl #8 \n\t" + "eor.w r5, r5, r8, lsl #16 \n\t" + "eor.w r5, r5, r9, lsl #24 \n\t" + "eor.w r6, r6, r10, lsl #8 \n\t" + "eor.w r6, r6, r11, lsl #16 \n\t" + "eor.w r6, r6, r12, lsl #24 \n\t" + + // AddRoundKey and AddRoundConst(from roundKeys) + "ldr.w r9, [r1,#8] \n\t" // load TK1 + "ldr.w r10, [r1,#12] \n\t" // load TK1 + "ldr.w r11, [r1,#208] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "ldr.w r12, [r1,#212] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + + "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) + "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) + // r8( s9 s8 s11 s10) + // r6(s12 s14 s14 s13) + + // MixColumn + "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 + "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 + "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 + // r8 ----------------> r8 + + // round 20 + + // SubCell+ShiftRow+AC(c2) + // r7 (s3 s2 s1 s0) + // r8 (s7 s6 s5 s4) + // r9 (s11 s10 s9 s8) + // r10(s15 s14 s13 s12) + + // 1st-2nd line + // r7(s3 s2 s1 s0) + "uxtb.w r5, r7, ror #24 \n\t" // s3 + "uxtb.w r4, r7, ror #16 \n\t" // s2 + "uxtb.w r3, r7, ror #8 \n\t" // s1 + "uxtb.w r7, r7 \n\t" // s0 + // r8(s6 s5 s4 s7) + "uxtb.w r12, r8, ror #16 \n\t" // s6 + "uxtb.w r11, r8, ror #8 \n\t" // s5 + "uxtb.w r6, r8 \n\t" // s4 + "uxtb.w r8, r8, ror #24 \n\t" // s7 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldr.w r0, [r1,#216] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r7, r7, r3, lsl #8 \n\t" + "eor.w r7, r7, r4, lsl #16 \n\t" + "eor.w r7, r7, r5, lsl #24 \n\t" + "eor.w r8, r8, r6, lsl #8 \n\t" + "eor.w r8, r8, r11, lsl #16 \n\t" + "eor.w r8, r8, r12, lsl #24 \n\t" + "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) + + // 3rd-4th line + // r9(s9 s8 s11 s10) + "uxtb.w r5, r9, ror #8 \n\t" // s9 + "uxtb.w r7, r9 \n\t" // s8 + "uxtb.w r3, r9, ror #24 \n\t" // s11 + "uxtb.w r9, r9, ror #16 \n\t" // s10 + // r10(s12 s15 s14 s13) + "uxtb.w r12, r10 \n\t" // s12 + "uxtb.w r11, r10, ror #24 \n\t" // s15 + "uxtb.w r6, r10, ror #16 \n\t" // s14 + "uxtb.w r10, r10, ror #8 \n\t" // s13 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldr.w r0, [r1,#220] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r9, r9, r3, lsl #8 \n\t" + "eor.w r9, r9, r7, lsl #16 \n\t" + "eor.w r9, r9, r5, lsl #24 \n\t" + "eor.w r10, r10, r6, lsl #8 \n\t" + "eor.w r10, r10, r11, lsl #16 \n\t" + "eor.w r10, r10, r12, lsl #24 \n\t" + "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) + + // AddRoundKey and AddRoundConst(from roundKeys) + + // r9( s9 s8 s11 s10) + // r10(s12 s14 s14 s13) + + // MixColumn + "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 + "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 + "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 + // r4 ----------------> r4 + // round 21 + + // SubCell+ShiftRow+AC(c2) + // r3 (s3 s2 s1 s0) + // r4 (s7 s6 s5 s4) + // r5 (s11 s10 s9 s8) + // r6 (s15 s14 s13 s12) + + // 1st-2nd line + // r3(s3 s2 s1 s0) + "uxtb.w r9, r3, ror #24 \n\t" // s3 + "uxtb.w r8, r3, ror #16 \n\t" // s2 + "uxtb.w r7, r3, ror #8 \n\t" // s1 + "uxtb.w r3, r3 \n\t" // s0 + // r4(s6 s5 s4 s7) + "uxtb.w r12, r4, ror #16 \n\t" // s6 + "uxtb.w r11, r4, ror #8 \n\t" // s5 + "uxtb.w r10, r4 \n\t" // s4 + "uxtb.w r4, r4, ror #24 \n\t" // s7 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "eor.w r3, r3, r7, lsl #8 \n\t" + "eor.w r3, r3, r8, lsl #16 \n\t" + "eor.w r3, r3, r9, lsl #24 \n\t" + "eor.w r4, r4, r10, lsl #8 \n\t" + "eor.w r4, r4, r11, lsl #16 \n\t" + "eor.w r4, r4, r12, lsl #24 \n\t" + + // 3rd-4th line + // r5(s9 s8 s11 s10) + "uxtb.w r9, r5, ror #8 \n\t" // s9 + "uxtb.w r8, r5 \n\t" // s8 + "uxtb.w r7, r5, ror #24 \n\t" // s11 + "uxtb.w r5, r5, ror #16 \n\t" // s10 + // r6(s12 s15 s14 s13) + "uxtb.w r12, r6 \n\t" // s12 + "uxtb.w r11, r6, ror #24 \n\t" // s15 + "uxtb.w r10, r6, ror #16 \n\t" // s14 + "uxtb.w r6, r6, ror #8 \n\t" // s13 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "eor.w r5, r5, r7, lsl #8 \n\t" + "eor.w r5, r5, r8, lsl #16 \n\t" + "eor.w r5, r5, r9, lsl #24 \n\t" + "eor.w r6, r6, r10, lsl #8 \n\t" + "eor.w r6, r6, r11, lsl #16 \n\t" + "eor.w r6, r6, r12, lsl #24 \n\t" + + // AddRoundKey and AddRoundConst(from roundKeys) + "ldr.w r9, [r1,#16] \n\t" // load TK1 + "ldr.w r10, [r1,#20] \n\t" // load TK1 + "ldr.w r11, [r1,#224] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "ldr.w r12, [r1,#228] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + + "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) + "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) + // r8( s9 s8 s11 s10) + // r6(s12 s14 s14 s13) + + // MixColumn + "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 + "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 + "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 + // r8 ----------------> r8 + + // round 22 + + // SubCell+ShiftRow+AC(c2) + // r7 (s3 s2 s1 s0) + // r8 (s7 s6 s5 s4) + // r9 (s11 s10 s9 s8) + // r10(s15 s14 s13 s12) + + // 1st-2nd line + // r7(s3 s2 s1 s0) + "uxtb.w r5, r7, ror #24 \n\t" // s3 + "uxtb.w r4, r7, ror #16 \n\t" // s2 + "uxtb.w r3, r7, ror #8 \n\t" // s1 + "uxtb.w r7, r7 \n\t" // s0 + // r8(s6 s5 s4 s7) + "uxtb.w r12, r8, ror #16 \n\t" // s6 + "uxtb.w r11, r8, ror #8 \n\t" // s5 + "uxtb.w r6, r8 \n\t" // s4 + "uxtb.w r8, r8, ror #24 \n\t" // s7 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldr.w r0, [r1,#232] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r7, r7, r3, lsl #8 \n\t" + "eor.w r7, r7, r4, lsl #16 \n\t" + "eor.w r7, r7, r5, lsl #24 \n\t" + "eor.w r8, r8, r6, lsl #8 \n\t" + "eor.w r8, r8, r11, lsl #16 \n\t" + "eor.w r8, r8, r12, lsl #24 \n\t" + "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) + + // 3rd-4th line + // r9(s9 s8 s11 s10) + "uxtb.w r5, r9, ror #8 \n\t" // s9 + "uxtb.w r7, r9 \n\t" // s8 + "uxtb.w r3, r9, ror #24 \n\t" // s11 + "uxtb.w r9, r9, ror #16 \n\t" // s10 + // r10(s12 s15 s14 s13) + "uxtb.w r12, r10 \n\t" // s12 + "uxtb.w r11, r10, ror #24 \n\t" // s15 + "uxtb.w r6, r10, ror #16 \n\t" // s14 + "uxtb.w r10, r10, ror #8 \n\t" // s13 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldr.w r0, [r1,#236] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r9, r9, r3, lsl #8 \n\t" + "eor.w r9, r9, r7, lsl #16 \n\t" + "eor.w r9, r9, r5, lsl #24 \n\t" + "eor.w r10, r10, r6, lsl #8 \n\t" + "eor.w r10, r10, r11, lsl #16 \n\t" + "eor.w r10, r10, r12, lsl #24 \n\t" + "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) + + // AddRoundKey and AddRoundConst(from roundKeys) + + // r9( s9 s8 s11 s10) + // r10(s12 s14 s14 s13) + + // MixColumn + "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 + "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 + "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 + // r4 ----------------> r4 + // round 23 + + // SubCell+ShiftRow+AC(c2) + // r3 (s3 s2 s1 s0) + // r4 (s7 s6 s5 s4) + // r5 (s11 s10 s9 s8) + // r6 (s15 s14 s13 s12) + + // 1st-2nd line + // r3(s3 s2 s1 s0) + "uxtb.w r9, r3, ror #24 \n\t" // s3 + "uxtb.w r8, r3, ror #16 \n\t" // s2 + "uxtb.w r7, r3, ror #8 \n\t" // s1 + "uxtb.w r3, r3 \n\t" // s0 + // r4(s6 s5 s4 s7) + "uxtb.w r12, r4, ror #16 \n\t" // s6 + "uxtb.w r11, r4, ror #8 \n\t" // s5 + "uxtb.w r10, r4 \n\t" // s4 + "uxtb.w r4, r4, ror #24 \n\t" // s7 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "eor.w r3, r3, r7, lsl #8 \n\t" + "eor.w r3, r3, r8, lsl #16 \n\t" + "eor.w r3, r3, r9, lsl #24 \n\t" + "eor.w r4, r4, r10, lsl #8 \n\t" + "eor.w r4, r4, r11, lsl #16 \n\t" + "eor.w r4, r4, r12, lsl #24 \n\t" + + // 3rd-4th line + // r5(s9 s8 s11 s10) + "uxtb.w r9, r5, ror #8 \n\t" // s9 + "uxtb.w r8, r5 \n\t" // s8 + "uxtb.w r7, r5, ror #24 \n\t" // s11 + "uxtb.w r5, r5, ror #16 \n\t" // s10 + // r6(s12 s15 s14 s13) + "uxtb.w r12, r6 \n\t" // s12 + "uxtb.w r11, r6, ror #24 \n\t" // s15 + "uxtb.w r10, r6, ror #16 \n\t" // s14 + "uxtb.w r6, r6, ror #8 \n\t" // s13 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "eor.w r5, r5, r7, lsl #8 \n\t" + "eor.w r5, r5, r8, lsl #16 \n\t" + "eor.w r5, r5, r9, lsl #24 \n\t" + "eor.w r6, r6, r10, lsl #8 \n\t" + "eor.w r6, r6, r11, lsl #16 \n\t" + "eor.w r6, r6, r12, lsl #24 \n\t" + + // AddRoundKey and AddRoundConst(from roundKeys) + "ldr.w r9, [r1,#24] \n\t" // load TK1 + "ldr.w r10, [r1,#28] \n\t" // load TK1 + "ldr.w r11, [r1,#240] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "ldr.w r12, [r1,#244] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + + "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) + "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) + // r8( s9 s8 s11 s10) + // r6(s12 s14 s14 s13) + + // MixColumn + "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 + "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 + "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 + // r8 ----------------> r8 + + // round 24 + + // SubCell+ShiftRow+AC(c2) + // r7 (s3 s2 s1 s0) + // r8 (s7 s6 s5 s4) + // r9 (s11 s10 s9 s8) + // r10(s15 s14 s13 s12) + + // 1st-2nd line + // r7(s3 s2 s1 s0) + "uxtb.w r5, r7, ror #24 \n\t" // s3 + "uxtb.w r4, r7, ror #16 \n\t" // s2 + "uxtb.w r3, r7, ror #8 \n\t" // s1 + "uxtb.w r7, r7 \n\t" // s0 + // r8(s6 s5 s4 s7) + "uxtb.w r12, r8, ror #16 \n\t" // s6 + "uxtb.w r11, r8, ror #8 \n\t" // s5 + "uxtb.w r6, r8 \n\t" // s4 + "uxtb.w r8, r8, ror #24 \n\t" // s7 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldr.w r0, [r1,#248] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r7, r7, r3, lsl #8 \n\t" + "eor.w r7, r7, r4, lsl #16 \n\t" + "eor.w r7, r7, r5, lsl #24 \n\t" + "eor.w r8, r8, r6, lsl #8 \n\t" + "eor.w r8, r8, r11, lsl #16 \n\t" + "eor.w r8, r8, r12, lsl #24 \n\t" + "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) + + // 3rd-4th line + // r9(s9 s8 s11 s10) + "uxtb.w r5, r9, ror #8 \n\t" // s9 + "uxtb.w r7, r9 \n\t" // s8 + "uxtb.w r3, r9, ror #24 \n\t" // s11 + "uxtb.w r9, r9, ror #16 \n\t" // s10 + // r10(s12 s15 s14 s13) + "uxtb.w r12, r10 \n\t" // s12 + "uxtb.w r11, r10, ror #24 \n\t" // s15 + "uxtb.w r6, r10, ror #16 \n\t" // s14 + "uxtb.w r10, r10, ror #8 \n\t" // s13 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldr.w r0, [r1,#252] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r9, r9, r3, lsl #8 \n\t" + "eor.w r9, r9, r7, lsl #16 \n\t" + "eor.w r9, r9, r5, lsl #24 \n\t" + "eor.w r10, r10, r6, lsl #8 \n\t" + "eor.w r10, r10, r11, lsl #16 \n\t" + "eor.w r10, r10, r12, lsl #24 \n\t" + "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) + + // AddRoundKey and AddRoundConst(from roundKeys) + + // r9( s9 s8 s11 s10) + // r10(s12 s14 s14 s13) + + // MixColumn + "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 + "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 + "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 + // r4 ----------------> r4 + // round 25 + + // SubCell+ShiftRow+AC(c2) + // r3 (s3 s2 s1 s0) + // r4 (s7 s6 s5 s4) + // r5 (s11 s10 s9 s8) + // r6 (s15 s14 s13 s12) + + // 1st-2nd line + // r3(s3 s2 s1 s0) + "uxtb.w r9, r3, ror #24 \n\t" // s3 + "uxtb.w r8, r3, ror #16 \n\t" // s2 + "uxtb.w r7, r3, ror #8 \n\t" // s1 + "uxtb.w r3, r3 \n\t" // s0 + // r4(s6 s5 s4 s7) + "uxtb.w r12, r4, ror #16 \n\t" // s6 + "uxtb.w r11, r4, ror #8 \n\t" // s5 + "uxtb.w r10, r4 \n\t" // s4 + "uxtb.w r4, r4, ror #24 \n\t" // s7 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "eor.w r3, r3, r7, lsl #8 \n\t" + "eor.w r3, r3, r8, lsl #16 \n\t" + "eor.w r3, r3, r9, lsl #24 \n\t" + "eor.w r4, r4, r10, lsl #8 \n\t" + "eor.w r4, r4, r11, lsl #16 \n\t" + "eor.w r4, r4, r12, lsl #24 \n\t" + + // 3rd-4th line + // r5(s9 s8 s11 s10) + "uxtb.w r9, r5, ror #8 \n\t" // s9 + "uxtb.w r8, r5 \n\t" // s8 + "uxtb.w r7, r5, ror #24 \n\t" // s11 + "uxtb.w r5, r5, ror #16 \n\t" // s10 + // r6(s12 s15 s14 s13) + "uxtb.w r12, r6 \n\t" // s12 + "uxtb.w r11, r6, ror #24 \n\t" // s15 + "uxtb.w r10, r6, ror #16 \n\t" // s14 + "uxtb.w r6, r6, ror #8 \n\t" // s13 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "eor.w r5, r5, r7, lsl #8 \n\t" + "eor.w r5, r5, r8, lsl #16 \n\t" + "eor.w r5, r5, r9, lsl #24 \n\t" + "eor.w r6, r6, r10, lsl #8 \n\t" + "eor.w r6, r6, r11, lsl #16 \n\t" + "eor.w r6, r6, r12, lsl #24 \n\t" + + // AddRoundKey and AddRoundConst(from roundKeys) + "ldr.w r9, [r1,#32] \n\t" // load TK1 + "ldr.w r10, [r1,#36] \n\t" // load TK1 + "ldr.w r11, [r1,#256] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "ldr.w r12, [r1,#260] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + + "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) + "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) + // r8( s9 s8 s11 s10) + // r6(s12 s14 s14 s13) + + // MixColumn + "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 + "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 + "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 + // r8 ----------------> r8 + + // round 26 + + // SubCell+ShiftRow+AC(c2) + // r7 (s3 s2 s1 s0) + // r8 (s7 s6 s5 s4) + // r9 (s11 s10 s9 s8) + // r10(s15 s14 s13 s12) + + // 1st-2nd line + // r7(s3 s2 s1 s0) + "uxtb.w r5, r7, ror #24 \n\t" // s3 + "uxtb.w r4, r7, ror #16 \n\t" // s2 + "uxtb.w r3, r7, ror #8 \n\t" // s1 + "uxtb.w r7, r7 \n\t" // s0 + // r8(s6 s5 s4 s7) + "uxtb.w r12, r8, ror #16 \n\t" // s6 + "uxtb.w r11, r8, ror #8 \n\t" // s5 + "uxtb.w r6, r8 \n\t" // s4 + "uxtb.w r8, r8, ror #24 \n\t" // s7 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldr.w r0, [r1,#264] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r7, r7, r3, lsl #8 \n\t" + "eor.w r7, r7, r4, lsl #16 \n\t" + "eor.w r7, r7, r5, lsl #24 \n\t" + "eor.w r8, r8, r6, lsl #8 \n\t" + "eor.w r8, r8, r11, lsl #16 \n\t" + "eor.w r8, r8, r12, lsl #24 \n\t" + "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) + + // 3rd-4th line + // r9(s9 s8 s11 s10) + "uxtb.w r5, r9, ror #8 \n\t" // s9 + "uxtb.w r7, r9 \n\t" // s8 + "uxtb.w r3, r9, ror #24 \n\t" // s11 + "uxtb.w r9, r9, ror #16 \n\t" // s10 + // r10(s12 s15 s14 s13) + "uxtb.w r12, r10 \n\t" // s12 + "uxtb.w r11, r10, ror #24 \n\t" // s15 + "uxtb.w r6, r10, ror #16 \n\t" // s14 + "uxtb.w r10, r10, ror #8 \n\t" // s13 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldr.w r0, [r1,#268] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r9, r9, r3, lsl #8 \n\t" + "eor.w r9, r9, r7, lsl #16 \n\t" + "eor.w r9, r9, r5, lsl #24 \n\t" + "eor.w r10, r10, r6, lsl #8 \n\t" + "eor.w r10, r10, r11, lsl #16 \n\t" + "eor.w r10, r10, r12, lsl #24 \n\t" + "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) + + // AddRoundKey and AddRoundConst(from roundKeys) + + // r9( s9 s8 s11 s10) + // r10(s12 s14 s14 s13) + + // MixColumn + "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 + "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 + "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 + // r4 ----------------> r4 + // round 27 + + // SubCell+ShiftRow+AC(c2) + // r3 (s3 s2 s1 s0) + // r4 (s7 s6 s5 s4) + // r5 (s11 s10 s9 s8) + // r6 (s15 s14 s13 s12) + + // 1st-2nd line + // r3(s3 s2 s1 s0) + "uxtb.w r9, r3, ror #24 \n\t" // s3 + "uxtb.w r8, r3, ror #16 \n\t" // s2 + "uxtb.w r7, r3, ror #8 \n\t" // s1 + "uxtb.w r3, r3 \n\t" // s0 + // r4(s6 s5 s4 s7) + "uxtb.w r12, r4, ror #16 \n\t" // s6 + "uxtb.w r11, r4, ror #8 \n\t" // s5 + "uxtb.w r10, r4 \n\t" // s4 + "uxtb.w r4, r4, ror #24 \n\t" // s7 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "eor.w r3, r3, r7, lsl #8 \n\t" + "eor.w r3, r3, r8, lsl #16 \n\t" + "eor.w r3, r3, r9, lsl #24 \n\t" + "eor.w r4, r4, r10, lsl #8 \n\t" + "eor.w r4, r4, r11, lsl #16 \n\t" + "eor.w r4, r4, r12, lsl #24 \n\t" + + // 3rd-4th line + // r5(s9 s8 s11 s10) + "uxtb.w r9, r5, ror #8 \n\t" // s9 + "uxtb.w r8, r5 \n\t" // s8 + "uxtb.w r7, r5, ror #24 \n\t" // s11 + "uxtb.w r5, r5, ror #16 \n\t" // s10 + // r6(s12 s15 s14 s13) + "uxtb.w r12, r6 \n\t" // s12 + "uxtb.w r11, r6, ror #24 \n\t" // s15 + "uxtb.w r10, r6, ror #16 \n\t" // s14 + "uxtb.w r6, r6, ror #8 \n\t" // s13 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "eor.w r5, r5, r7, lsl #8 \n\t" + "eor.w r5, r5, r8, lsl #16 \n\t" + "eor.w r5, r5, r9, lsl #24 \n\t" + "eor.w r6, r6, r10, lsl #8 \n\t" + "eor.w r6, r6, r11, lsl #16 \n\t" + "eor.w r6, r6, r12, lsl #24 \n\t" + + // AddRoundKey and AddRoundConst(from roundKeys) + "ldr.w r9, [r1,#40] \n\t" // load TK1 + "ldr.w r10, [r1,#44] \n\t" // load TK1 + "ldr.w r11, [r1,#272] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "ldr.w r12, [r1,#276] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + + "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) + "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) + // r8( s9 s8 s11 s10) + // r6(s12 s14 s14 s13) + + // MixColumn + "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 + "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 + "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 + // r8 ----------------> r8 + + // round 28 + + // SubCell+ShiftRow+AC(c2) + // r7 (s3 s2 s1 s0) + // r8 (s7 s6 s5 s4) + // r9 (s11 s10 s9 s8) + // r10(s15 s14 s13 s12) + + // 1st-2nd line + // r7(s3 s2 s1 s0) + "uxtb.w r5, r7, ror #24 \n\t" // s3 + "uxtb.w r4, r7, ror #16 \n\t" // s2 + "uxtb.w r3, r7, ror #8 \n\t" // s1 + "uxtb.w r7, r7 \n\t" // s0 + // r8(s6 s5 s4 s7) + "uxtb.w r12, r8, ror #16 \n\t" // s6 + "uxtb.w r11, r8, ror #8 \n\t" // s5 + "uxtb.w r6, r8 \n\t" // s4 + "uxtb.w r8, r8, ror #24 \n\t" // s7 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldr.w r0, [r1,#280] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r7, r7, r3, lsl #8 \n\t" + "eor.w r7, r7, r4, lsl #16 \n\t" + "eor.w r7, r7, r5, lsl #24 \n\t" + "eor.w r8, r8, r6, lsl #8 \n\t" + "eor.w r8, r8, r11, lsl #16 \n\t" + "eor.w r8, r8, r12, lsl #24 \n\t" + "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) + + // 3rd-4th line + // r9(s9 s8 s11 s10) + "uxtb.w r5, r9, ror #8 \n\t" // s9 + "uxtb.w r7, r9 \n\t" // s8 + "uxtb.w r3, r9, ror #24 \n\t" // s11 + "uxtb.w r9, r9, ror #16 \n\t" // s10 + // r10(s12 s15 s14 s13) + "uxtb.w r12, r10 \n\t" // s12 + "uxtb.w r11, r10, ror #24 \n\t" // s15 + "uxtb.w r6, r10, ror #16 \n\t" // s14 + "uxtb.w r10, r10, ror #8 \n\t" // s13 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldr.w r0, [r1,#284] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r9, r9, r3, lsl #8 \n\t" + "eor.w r9, r9, r7, lsl #16 \n\t" + "eor.w r9, r9, r5, lsl #24 \n\t" + "eor.w r10, r10, r6, lsl #8 \n\t" + "eor.w r10, r10, r11, lsl #16 \n\t" + "eor.w r10, r10, r12, lsl #24 \n\t" + "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) + + // AddRoundKey and AddRoundConst(from roundKeys) + + // r9( s9 s8 s11 s10) + // r10(s12 s14 s14 s13) + + // MixColumn + "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 + "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 + "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 + // r4 ----------------> r4 + // round 29 + + // SubCell+ShiftRow+AC(c2) + // r3 (s3 s2 s1 s0) + // r4 (s7 s6 s5 s4) + // r5 (s11 s10 s9 s8) + // r6 (s15 s14 s13 s12) + + // 1st-2nd line + // r3(s3 s2 s1 s0) + "uxtb.w r9, r3, ror #24 \n\t" // s3 + "uxtb.w r8, r3, ror #16 \n\t" // s2 + "uxtb.w r7, r3, ror #8 \n\t" // s1 + "uxtb.w r3, r3 \n\t" // s0 + // r4(s6 s5 s4 s7) + "uxtb.w r12, r4, ror #16 \n\t" // s6 + "uxtb.w r11, r4, ror #8 \n\t" // s5 + "uxtb.w r10, r4 \n\t" // s4 + "uxtb.w r4, r4, ror #24 \n\t" // s7 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "eor.w r3, r3, r7, lsl #8 \n\t" + "eor.w r3, r3, r8, lsl #16 \n\t" + "eor.w r3, r3, r9, lsl #24 \n\t" + "eor.w r4, r4, r10, lsl #8 \n\t" + "eor.w r4, r4, r11, lsl #16 \n\t" + "eor.w r4, r4, r12, lsl #24 \n\t" + + // 3rd-4th line + // r5(s9 s8 s11 s10) + "uxtb.w r9, r5, ror #8 \n\t" // s9 + "uxtb.w r8, r5 \n\t" // s8 + "uxtb.w r7, r5, ror #24 \n\t" // s11 + "uxtb.w r5, r5, ror #16 \n\t" // s10 + // r6(s12 s15 s14 s13) + "uxtb.w r12, r6 \n\t" // s12 + "uxtb.w r11, r6, ror #24 \n\t" // s15 + "uxtb.w r10, r6, ror #16 \n\t" // s14 + "uxtb.w r6, r6, ror #8 \n\t" // s13 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "eor.w r5, r5, r7, lsl #8 \n\t" + "eor.w r5, r5, r8, lsl #16 \n\t" + "eor.w r5, r5, r9, lsl #24 \n\t" + "eor.w r6, r6, r10, lsl #8 \n\t" + "eor.w r6, r6, r11, lsl #16 \n\t" + "eor.w r6, r6, r12, lsl #24 \n\t" + + // AddRoundKey and AddRoundConst(from roundKeys) + "ldr.w r9, [r1,#48] \n\t" // load TK1 + "ldr.w r10, [r1,#52] \n\t" // load TK1 + "ldr.w r11, [r1,#288] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "ldr.w r12, [r1,#292] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + + "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) + "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) + // r8( s9 s8 s11 s10) + // r6(s12 s14 s14 s13) + + // MixColumn + "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 + "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 + "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 + // r8 ----------------> r8 + + // round 30 + + // SubCell+ShiftRow+AC(c2) + // r7 (s3 s2 s1 s0) + // r8 (s7 s6 s5 s4) + // r9 (s11 s10 s9 s8) + // r10(s15 s14 s13 s12) + + // 1st-2nd line + // r7(s3 s2 s1 s0) + "uxtb.w r5, r7, ror #24 \n\t" // s3 + "uxtb.w r4, r7, ror #16 \n\t" // s2 + "uxtb.w r3, r7, ror #8 \n\t" // s1 + "uxtb.w r7, r7 \n\t" // s0 + // r8(s6 s5 s4 s7) + "uxtb.w r12, r8, ror #16 \n\t" // s6 + "uxtb.w r11, r8, ror #8 \n\t" // s5 + "uxtb.w r6, r8 \n\t" // s4 + "uxtb.w r8, r8, ror #24 \n\t" // s7 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldr.w r0, [r1,#296] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r7, r7, r3, lsl #8 \n\t" + "eor.w r7, r7, r4, lsl #16 \n\t" + "eor.w r7, r7, r5, lsl #24 \n\t" + "eor.w r8, r8, r6, lsl #8 \n\t" + "eor.w r8, r8, r11, lsl #16 \n\t" + "eor.w r8, r8, r12, lsl #24 \n\t" + "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) + + // 3rd-4th line + // r9(s9 s8 s11 s10) + "uxtb.w r5, r9, ror #8 \n\t" // s9 + "uxtb.w r7, r9 \n\t" // s8 + "uxtb.w r3, r9, ror #24 \n\t" // s11 + "uxtb.w r9, r9, ror #16 \n\t" // s10 + // r10(s12 s15 s14 s13) + "uxtb.w r12, r10 \n\t" // s12 + "uxtb.w r11, r10, ror #24 \n\t" // s15 + "uxtb.w r6, r10, ror #16 \n\t" // s14 + "uxtb.w r10, r10, ror #8 \n\t" // s13 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldr.w r0, [r1,#300] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r9, r9, r3, lsl #8 \n\t" + "eor.w r9, r9, r7, lsl #16 \n\t" + "eor.w r9, r9, r5, lsl #24 \n\t" + "eor.w r10, r10, r6, lsl #8 \n\t" + "eor.w r10, r10, r11, lsl #16 \n\t" + "eor.w r10, r10, r12, lsl #24 \n\t" + "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) + + // AddRoundKey and AddRoundConst(from roundKeys) + + // r9( s9 s8 s11 s10) + // r10(s12 s14 s14 s13) + + // MixColumn + "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 + "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 + "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 + // r4 ----------------> r4 + // round 31 + + // SubCell+ShiftRow+AC(c2) + // r3 (s3 s2 s1 s0) + // r4 (s7 s6 s5 s4) + // r5 (s11 s10 s9 s8) + // r6 (s15 s14 s13 s12) + + // 1st-2nd line + // r3(s3 s2 s1 s0) + "uxtb.w r9, r3, ror #24 \n\t" // s3 + "uxtb.w r8, r3, ror #16 \n\t" // s2 + "uxtb.w r7, r3, ror #8 \n\t" // s1 + "uxtb.w r3, r3 \n\t" // s0 + // r4(s6 s5 s4 s7) + "uxtb.w r12, r4, ror #16 \n\t" // s6 + "uxtb.w r11, r4, ror #8 \n\t" // s5 + "uxtb.w r10, r4 \n\t" // s4 + "uxtb.w r4, r4, ror #24 \n\t" // s7 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "eor.w r3, r3, r7, lsl #8 \n\t" + "eor.w r3, r3, r8, lsl #16 \n\t" + "eor.w r3, r3, r9, lsl #24 \n\t" + "eor.w r4, r4, r10, lsl #8 \n\t" + "eor.w r4, r4, r11, lsl #16 \n\t" + "eor.w r4, r4, r12, lsl #24 \n\t" + + // 3rd-4th line + // r5(s9 s8 s11 s10) + "uxtb.w r9, r5, ror #8 \n\t" // s9 + "uxtb.w r8, r5 \n\t" // s8 + "uxtb.w r7, r5, ror #24 \n\t" // s11 + "uxtb.w r5, r5, ror #16 \n\t" // s10 + // r6(s12 s15 s14 s13) + "uxtb.w r12, r6 \n\t" // s12 + "uxtb.w r11, r6, ror #24 \n\t" // s15 + "uxtb.w r10, r6, ror #16 \n\t" // s14 + "uxtb.w r6, r6, ror #8 \n\t" // s13 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "eor.w r5, r5, r7, lsl #8 \n\t" + "eor.w r5, r5, r8, lsl #16 \n\t" + "eor.w r5, r5, r9, lsl #24 \n\t" + "eor.w r6, r6, r10, lsl #8 \n\t" + "eor.w r6, r6, r11, lsl #16 \n\t" + "eor.w r6, r6, r12, lsl #24 \n\t" + + // AddRoundKey and AddRoundConst(from roundKeys) + "ldr.w r9, [r1,#56] \n\t" // load TK1 + "ldr.w r10, [r1,#60] \n\t" // load TK1 + "ldr.w r11, [r1,#304] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "ldr.w r12, [r1,#308] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + + "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) + "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) + // r8( s9 s8 s11 s10) + // r6(s12 s14 s14 s13) + + // MixColumn + "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 + "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 + "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 + // r8 ----------------> r8 + + // round 32 + + // SubCell+ShiftRow+AC(c2) + // r7 (s3 s2 s1 s0) + // r8 (s7 s6 s5 s4) + // r9 (s11 s10 s9 s8) + // r10(s15 s14 s13 s12) + + // 1st-2nd line + // r7(s3 s2 s1 s0) + "uxtb.w r5, r7, ror #24 \n\t" // s3 + "uxtb.w r4, r7, ror #16 \n\t" // s2 + "uxtb.w r3, r7, ror #8 \n\t" // s1 + "uxtb.w r7, r7 \n\t" // s0 + // r8(s6 s5 s4 s7) + "uxtb.w r12, r8, ror #16 \n\t" // s6 + "uxtb.w r11, r8, ror #8 \n\t" // s5 + "uxtb.w r6, r8 \n\t" // s4 + "uxtb.w r8, r8, ror #24 \n\t" // s7 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldr.w r0, [r1,#312] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r7, r7, r3, lsl #8 \n\t" + "eor.w r7, r7, r4, lsl #16 \n\t" + "eor.w r7, r7, r5, lsl #24 \n\t" + "eor.w r8, r8, r6, lsl #8 \n\t" + "eor.w r8, r8, r11, lsl #16 \n\t" + "eor.w r8, r8, r12, lsl #24 \n\t" + "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) + + // 3rd-4th line + // r9(s9 s8 s11 s10) + "uxtb.w r5, r9, ror #8 \n\t" // s9 + "uxtb.w r7, r9 \n\t" // s8 + "uxtb.w r3, r9, ror #24 \n\t" // s11 + "uxtb.w r9, r9, ror #16 \n\t" // s10 + // r10(s12 s15 s14 s13) + "uxtb.w r12, r10 \n\t" // s12 + "uxtb.w r11, r10, ror #24 \n\t" // s15 + "uxtb.w r6, r10, ror #16 \n\t" // s14 + "uxtb.w r10, r10, ror #8 \n\t" // s13 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldr.w r0, [r1,#316] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r9, r9, r3, lsl #8 \n\t" + "eor.w r9, r9, r7, lsl #16 \n\t" + "eor.w r9, r9, r5, lsl #24 \n\t" + "eor.w r10, r10, r6, lsl #8 \n\t" + "eor.w r10, r10, r11, lsl #16 \n\t" + "eor.w r10, r10, r12, lsl #24 \n\t" + "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) + + // AddRoundKey and AddRoundConst(from roundKeys) + + // r9( s9 s8 s11 s10) + // r10(s12 s14 s14 s13) + + // MixColumn + "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 + "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 + "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 + // r4 ----------------> r4 + // round 33 + + // SubCell+ShiftRow+AC(c2) + // r3 (s3 s2 s1 s0) + // r4 (s7 s6 s5 s4) + // r5 (s11 s10 s9 s8) + // r6 (s15 s14 s13 s12) + + // 1st-2nd line + // r3(s3 s2 s1 s0) + "uxtb.w r9, r3, ror #24 \n\t" // s3 + "uxtb.w r8, r3, ror #16 \n\t" // s2 + "uxtb.w r7, r3, ror #8 \n\t" // s1 + "uxtb.w r3, r3 \n\t" // s0 + // r4(s6 s5 s4 s7) + "uxtb.w r12, r4, ror #16 \n\t" // s6 + "uxtb.w r11, r4, ror #8 \n\t" // s5 + "uxtb.w r10, r4 \n\t" // s4 + "uxtb.w r4, r4, ror #24 \n\t" // s7 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "eor.w r3, r3, r7, lsl #8 \n\t" + "eor.w r3, r3, r8, lsl #16 \n\t" + "eor.w r3, r3, r9, lsl #24 \n\t" + "eor.w r4, r4, r10, lsl #8 \n\t" + "eor.w r4, r4, r11, lsl #16 \n\t" + "eor.w r4, r4, r12, lsl #24 \n\t" + + // 3rd-4th line + // r5(s9 s8 s11 s10) + "uxtb.w r9, r5, ror #8 \n\t" // s9 + "uxtb.w r8, r5 \n\t" // s8 + "uxtb.w r7, r5, ror #24 \n\t" // s11 + "uxtb.w r5, r5, ror #16 \n\t" // s10 + // r6(s12 s15 s14 s13) + "uxtb.w r12, r6 \n\t" // s12 + "uxtb.w r11, r6, ror #24 \n\t" // s15 + "uxtb.w r10, r6, ror #16 \n\t" // s14 + "uxtb.w r6, r6, ror #8 \n\t" // s13 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "eor.w r5, r5, r7, lsl #8 \n\t" + "eor.w r5, r5, r8, lsl #16 \n\t" + "eor.w r5, r5, r9, lsl #24 \n\t" + "eor.w r6, r6, r10, lsl #8 \n\t" + "eor.w r6, r6, r11, lsl #16 \n\t" + "eor.w r6, r6, r12, lsl #24 \n\t" + + // AddRoundKey and AddRoundConst(from roundKeys) + "ldr.w r9, [r1,#0] \n\t" // load TK1 + "ldr.w r10, [r1,#4] \n\t" // load TK1 + "ldr.w r11, [r1,#320] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "ldr.w r12, [r1,#324] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + + "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) + "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) + // r8( s9 s8 s11 s10) + // r6(s12 s14 s14 s13) + + // MixColumn + "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 + "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 + "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 + // r8 ----------------> r8 + + // round 34 + + // SubCell+ShiftRow+AC(c2) + // r7 (s3 s2 s1 s0) + // r8 (s7 s6 s5 s4) + // r9 (s11 s10 s9 s8) + // r10(s15 s14 s13 s12) + + // 1st-2nd line + // r7(s3 s2 s1 s0) + "uxtb.w r5, r7, ror #24 \n\t" // s3 + "uxtb.w r4, r7, ror #16 \n\t" // s2 + "uxtb.w r3, r7, ror #8 \n\t" // s1 + "uxtb.w r7, r7 \n\t" // s0 + // r8(s6 s5 s4 s7) + "uxtb.w r12, r8, ror #16 \n\t" // s6 + "uxtb.w r11, r8, ror #8 \n\t" // s5 + "uxtb.w r6, r8 \n\t" // s4 + "uxtb.w r8, r8, ror #24 \n\t" // s7 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldr.w r0, [r1,#328] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r7, r7, r3, lsl #8 \n\t" + "eor.w r7, r7, r4, lsl #16 \n\t" + "eor.w r7, r7, r5, lsl #24 \n\t" + "eor.w r8, r8, r6, lsl #8 \n\t" + "eor.w r8, r8, r11, lsl #16 \n\t" + "eor.w r8, r8, r12, lsl #24 \n\t" + "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) + + // 3rd-4th line + // r9(s9 s8 s11 s10) + "uxtb.w r5, r9, ror #8 \n\t" // s9 + "uxtb.w r7, r9 \n\t" // s8 + "uxtb.w r3, r9, ror #24 \n\t" // s11 + "uxtb.w r9, r9, ror #16 \n\t" // s10 + // r10(s12 s15 s14 s13) + "uxtb.w r12, r10 \n\t" // s12 + "uxtb.w r11, r10, ror #24 \n\t" // s15 + "uxtb.w r6, r10, ror #16 \n\t" // s14 + "uxtb.w r10, r10, ror #8 \n\t" // s13 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldr.w r0, [r1,#332] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r9, r9, r3, lsl #8 \n\t" + "eor.w r9, r9, r7, lsl #16 \n\t" + "eor.w r9, r9, r5, lsl #24 \n\t" + "eor.w r10, r10, r6, lsl #8 \n\t" + "eor.w r10, r10, r11, lsl #16 \n\t" + "eor.w r10, r10, r12, lsl #24 \n\t" + "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) + + // AddRoundKey and AddRoundConst(from roundKeys) + + // r9( s9 s8 s11 s10) + // r10(s12 s14 s14 s13) + + // MixColumn + "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 + "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 + "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 + // r4 ----------------> r4 + // round 35 + + // SubCell+ShiftRow+AC(c2) + // r3 (s3 s2 s1 s0) + // r4 (s7 s6 s5 s4) + // r5 (s11 s10 s9 s8) + // r6 (s15 s14 s13 s12) + + // 1st-2nd line + // r3(s3 s2 s1 s0) + "uxtb.w r9, r3, ror #24 \n\t" // s3 + "uxtb.w r8, r3, ror #16 \n\t" // s2 + "uxtb.w r7, r3, ror #8 \n\t" // s1 + "uxtb.w r3, r3 \n\t" // s0 + // r4(s6 s5 s4 s7) + "uxtb.w r12, r4, ror #16 \n\t" // s6 + "uxtb.w r11, r4, ror #8 \n\t" // s5 + "uxtb.w r10, r4 \n\t" // s4 + "uxtb.w r4, r4, ror #24 \n\t" // s7 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "eor.w r3, r3, r7, lsl #8 \n\t" + "eor.w r3, r3, r8, lsl #16 \n\t" + "eor.w r3, r3, r9, lsl #24 \n\t" + "eor.w r4, r4, r10, lsl #8 \n\t" + "eor.w r4, r4, r11, lsl #16 \n\t" + "eor.w r4, r4, r12, lsl #24 \n\t" + + // 3rd-4th line + // r5(s9 s8 s11 s10) + "uxtb.w r9, r5, ror #8 \n\t" // s9 + "uxtb.w r8, r5 \n\t" // s8 + "uxtb.w r7, r5, ror #24 \n\t" // s11 + "uxtb.w r5, r5, ror #16 \n\t" // s10 + // r6(s12 s15 s14 s13) + "uxtb.w r12, r6 \n\t" // s12 + "uxtb.w r11, r6, ror #24 \n\t" // s15 + "uxtb.w r10, r6, ror #16 \n\t" // s14 + "uxtb.w r6, r6, ror #8 \n\t" // s13 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "eor.w r5, r5, r7, lsl #8 \n\t" + "eor.w r5, r5, r8, lsl #16 \n\t" + "eor.w r5, r5, r9, lsl #24 \n\t" + "eor.w r6, r6, r10, lsl #8 \n\t" + "eor.w r6, r6, r11, lsl #16 \n\t" + "eor.w r6, r6, r12, lsl #24 \n\t" + + // AddRoundKey and AddRoundConst(from roundKeys) + "ldr.w r9, [r1,#8] \n\t" // load TK1 + "ldr.w r10, [r1,#12] \n\t" // load TK1 + "ldr.w r11, [r1,#336] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "ldr.w r12, [r1,#340] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + + "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) + "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) + // r8( s9 s8 s11 s10) + // r6(s12 s14 s14 s13) + + // MixColumn + "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 + "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 + "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 + // r8 ----------------> r8 + + // round 36 + + // SubCell+ShiftRow+AC(c2) + // r7 (s3 s2 s1 s0) + // r8 (s7 s6 s5 s4) + // r9 (s11 s10 s9 s8) + // r10(s15 s14 s13 s12) + + // 1st-2nd line + // r7(s3 s2 s1 s0) + "uxtb.w r5, r7, ror #24 \n\t" // s3 + "uxtb.w r4, r7, ror #16 \n\t" // s2 + "uxtb.w r3, r7, ror #8 \n\t" // s1 + "uxtb.w r7, r7 \n\t" // s0 + // r8(s6 s5 s4 s7) + "uxtb.w r12, r8, ror #16 \n\t" // s6 + "uxtb.w r11, r8, ror #8 \n\t" // s5 + "uxtb.w r6, r8 \n\t" // s4 + "uxtb.w r8, r8, ror #24 \n\t" // s7 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldr.w r0, [r1,#344] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r7, r7, r3, lsl #8 \n\t" + "eor.w r7, r7, r4, lsl #16 \n\t" + "eor.w r7, r7, r5, lsl #24 \n\t" + "eor.w r8, r8, r6, lsl #8 \n\t" + "eor.w r8, r8, r11, lsl #16 \n\t" + "eor.w r8, r8, r12, lsl #24 \n\t" + "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) + + // 3rd-4th line + // r9(s9 s8 s11 s10) + "uxtb.w r5, r9, ror #8 \n\t" // s9 + "uxtb.w r7, r9 \n\t" // s8 + "uxtb.w r3, r9, ror #24 \n\t" // s11 + "uxtb.w r9, r9, ror #16 \n\t" // s10 + // r10(s12 s15 s14 s13) + "uxtb.w r12, r10 \n\t" // s12 + "uxtb.w r11, r10, ror #24 \n\t" // s15 + "uxtb.w r6, r10, ror #16 \n\t" // s14 + "uxtb.w r10, r10, ror #8 \n\t" // s13 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldr.w r0, [r1,#348] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r9, r9, r3, lsl #8 \n\t" + "eor.w r9, r9, r7, lsl #16 \n\t" + "eor.w r9, r9, r5, lsl #24 \n\t" + "eor.w r10, r10, r6, lsl #8 \n\t" + "eor.w r10, r10, r11, lsl #16 \n\t" + "eor.w r10, r10, r12, lsl #24 \n\t" + "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) + + // AddRoundKey and AddRoundConst(from roundKeys) + + // r9( s9 s8 s11 s10) + // r10(s12 s14 s14 s13) + + // MixColumn + "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 + "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 + "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 + // r4 ----------------> r4 + // round 37 + + // SubCell+ShiftRow+AC(c2) + // r3 (s3 s2 s1 s0) + // r4 (s7 s6 s5 s4) + // r5 (s11 s10 s9 s8) + // r6 (s15 s14 s13 s12) + + // 1st-2nd line + // r3(s3 s2 s1 s0) + "uxtb.w r9, r3, ror #24 \n\t" // s3 + "uxtb.w r8, r3, ror #16 \n\t" // s2 + "uxtb.w r7, r3, ror #8 \n\t" // s1 + "uxtb.w r3, r3 \n\t" // s0 + // r4(s6 s5 s4 s7) + "uxtb.w r12, r4, ror #16 \n\t" // s6 + "uxtb.w r11, r4, ror #8 \n\t" // s5 + "uxtb.w r10, r4 \n\t" // s4 + "uxtb.w r4, r4, ror #24 \n\t" // s7 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "eor.w r3, r3, r7, lsl #8 \n\t" + "eor.w r3, r3, r8, lsl #16 \n\t" + "eor.w r3, r3, r9, lsl #24 \n\t" + "eor.w r4, r4, r10, lsl #8 \n\t" + "eor.w r4, r4, r11, lsl #16 \n\t" + "eor.w r4, r4, r12, lsl #24 \n\t" + + // 3rd-4th line + // r5(s9 s8 s11 s10) + "uxtb.w r9, r5, ror #8 \n\t" // s9 + "uxtb.w r8, r5 \n\t" // s8 + "uxtb.w r7, r5, ror #24 \n\t" // s11 + "uxtb.w r5, r5, ror #16 \n\t" // s10 + // r6(s12 s15 s14 s13) + "uxtb.w r12, r6 \n\t" // s12 + "uxtb.w r11, r6, ror #24 \n\t" // s15 + "uxtb.w r10, r6, ror #16 \n\t" // s14 + "uxtb.w r6, r6, ror #8 \n\t" // s13 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "eor.w r5, r5, r7, lsl #8 \n\t" + "eor.w r5, r5, r8, lsl #16 \n\t" + "eor.w r5, r5, r9, lsl #24 \n\t" + "eor.w r6, r6, r10, lsl #8 \n\t" + "eor.w r6, r6, r11, lsl #16 \n\t" + "eor.w r6, r6, r12, lsl #24 \n\t" + + // AddRoundKey and AddRoundConst(from roundKeys) + "ldr.w r9, [r1,#16] \n\t" // load TK1 + "ldr.w r10, [r1,#20] \n\t" // load TK1 + "ldr.w r11, [r1,#352] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "ldr.w r12, [r1,#356] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + + "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) + "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) + // r8( s9 s8 s11 s10) + // r6(s12 s14 s14 s13) + + // MixColumn + "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 + "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 + "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 + // r8 ----------------> r8 + + // round 38 + + // SubCell+ShiftRow+AC(c2) + // r7 (s3 s2 s1 s0) + // r8 (s7 s6 s5 s4) + // r9 (s11 s10 s9 s8) + // r10(s15 s14 s13 s12) + + // 1st-2nd line + // r7(s3 s2 s1 s0) + "uxtb.w r5, r7, ror #24 \n\t" // s3 + "uxtb.w r4, r7, ror #16 \n\t" // s2 + "uxtb.w r3, r7, ror #8 \n\t" // s1 + "uxtb.w r7, r7 \n\t" // s0 + // r8(s6 s5 s4 s7) + "uxtb.w r12, r8, ror #16 \n\t" // s6 + "uxtb.w r11, r8, ror #8 \n\t" // s5 + "uxtb.w r6, r8 \n\t" // s4 + "uxtb.w r8, r8, ror #24 \n\t" // s7 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldr.w r0, [r1,#360] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r7, r7, r3, lsl #8 \n\t" + "eor.w r7, r7, r4, lsl #16 \n\t" + "eor.w r7, r7, r5, lsl #24 \n\t" + "eor.w r8, r8, r6, lsl #8 \n\t" + "eor.w r8, r8, r11, lsl #16 \n\t" + "eor.w r8, r8, r12, lsl #24 \n\t" + "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) + + // 3rd-4th line + // r9(s9 s8 s11 s10) + "uxtb.w r5, r9, ror #8 \n\t" // s9 + "uxtb.w r7, r9 \n\t" // s8 + "uxtb.w r3, r9, ror #24 \n\t" // s11 + "uxtb.w r9, r9, ror #16 \n\t" // s10 + // r10(s12 s15 s14 s13) + "uxtb.w r12, r10 \n\t" // s12 + "uxtb.w r11, r10, ror #24 \n\t" // s15 + "uxtb.w r6, r10, ror #16 \n\t" // s14 + "uxtb.w r10, r10, ror #8 \n\t" // s13 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldr.w r0, [r1,#364] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r9, r9, r3, lsl #8 \n\t" + "eor.w r9, r9, r7, lsl #16 \n\t" + "eor.w r9, r9, r5, lsl #24 \n\t" + "eor.w r10, r10, r6, lsl #8 \n\t" + "eor.w r10, r10, r11, lsl #16 \n\t" + "eor.w r10, r10, r12, lsl #24 \n\t" + "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) + + // AddRoundKey and AddRoundConst(from roundKeys) + + // r9( s9 s8 s11 s10) + // r10(s12 s14 s14 s13) + + // MixColumn + "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 + "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 + "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 + // r4 ----------------> r4 + // round 39 + + // SubCell+ShiftRow+AC(c2) + // r3 (s3 s2 s1 s0) + // r4 (s7 s6 s5 s4) + // r5 (s11 s10 s9 s8) + // r6 (s15 s14 s13 s12) + + // 1st-2nd line + // r3(s3 s2 s1 s0) + "uxtb.w r9, r3, ror #24 \n\t" // s3 + "uxtb.w r8, r3, ror #16 \n\t" // s2 + "uxtb.w r7, r3, ror #8 \n\t" // s1 + "uxtb.w r3, r3 \n\t" // s0 + // r4(s6 s5 s4 s7) + "uxtb.w r12, r4, ror #16 \n\t" // s6 + "uxtb.w r11, r4, ror #8 \n\t" // s5 + "uxtb.w r10, r4 \n\t" // s4 + "uxtb.w r4, r4, ror #24 \n\t" // s7 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "eor.w r3, r3, r7, lsl #8 \n\t" + "eor.w r3, r3, r8, lsl #16 \n\t" + "eor.w r3, r3, r9, lsl #24 \n\t" + "eor.w r4, r4, r10, lsl #8 \n\t" + "eor.w r4, r4, r11, lsl #16 \n\t" + "eor.w r4, r4, r12, lsl #24 \n\t" + + // 3rd-4th line + // r5(s9 s8 s11 s10) + "uxtb.w r9, r5, ror #8 \n\t" // s9 + "uxtb.w r8, r5 \n\t" // s8 + "uxtb.w r7, r5, ror #24 \n\t" // s11 + "uxtb.w r5, r5, ror #16 \n\t" // s10 + // r6(s12 s15 s14 s13) + "uxtb.w r12, r6 \n\t" // s12 + "uxtb.w r11, r6, ror #24 \n\t" // s15 + "uxtb.w r10, r6, ror #16 \n\t" // s14 + "uxtb.w r6, r6, ror #8 \n\t" // s13 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "eor.w r5, r5, r7, lsl #8 \n\t" + "eor.w r5, r5, r8, lsl #16 \n\t" + "eor.w r5, r5, r9, lsl #24 \n\t" + "eor.w r6, r6, r10, lsl #8 \n\t" + "eor.w r6, r6, r11, lsl #16 \n\t" + "eor.w r6, r6, r12, lsl #24 \n\t" + + // AddRoundKey and AddRoundConst(from roundKeys) + "ldr.w r9, [r1,#24] \n\t" // load TK1 + "ldr.w r10, [r1,#28] \n\t" // load TK1 + "ldr.w r11, [r1,#368] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "ldr.w r12, [r1,#372] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + + "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) + "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) + // r8( s9 s8 s11 s10) + // r6(s12 s14 s14 s13) + + // MixColumn + "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 + "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 + "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 + // r8 ----------------> r8 + + // round 40 + + // SubCell+ShiftRow+AC(c2) + // r7 (s3 s2 s1 s0) + // r8 (s7 s6 s5 s4) + // r9 (s11 s10 s9 s8) + // r10(s15 s14 s13 s12) + + // 1st-2nd line + // r7(s3 s2 s1 s0) + "uxtb.w r5, r7, ror #24 \n\t" // s3 + "uxtb.w r4, r7, ror #16 \n\t" // s2 + "uxtb.w r3, r7, ror #8 \n\t" // s1 + "uxtb.w r7, r7 \n\t" // s0 + // r8(s6 s5 s4 s7) + "uxtb.w r12, r8, ror #16 \n\t" // s6 + "uxtb.w r11, r8, ror #8 \n\t" // s5 + "uxtb.w r6, r8 \n\t" // s4 + "uxtb.w r8, r8, ror #24 \n\t" // s7 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldr.w r0, [r1,#376] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r7, r7, r3, lsl #8 \n\t" + "eor.w r7, r7, r4, lsl #16 \n\t" + "eor.w r7, r7, r5, lsl #24 \n\t" + "eor.w r8, r8, r6, lsl #8 \n\t" + "eor.w r8, r8, r11, lsl #16 \n\t" + "eor.w r8, r8, r12, lsl #24 \n\t" + "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) + + // 3rd-4th line + // r9(s9 s8 s11 s10) + "uxtb.w r5, r9, ror #8 \n\t" // s9 + "uxtb.w r7, r9 \n\t" // s8 + "uxtb.w r3, r9, ror #24 \n\t" // s11 + "uxtb.w r9, r9, ror #16 \n\t" // s10 + // r10(s12 s15 s14 s13) + "uxtb.w r12, r10 \n\t" // s12 + "uxtb.w r11, r10, ror #24 \n\t" // s15 + "uxtb.w r6, r10, ror #16 \n\t" // s14 + "uxtb.w r10, r10, ror #8 \n\t" // s13 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldr.w r0, [r1,#380] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r9, r9, r3, lsl #8 \n\t" + "eor.w r9, r9, r7, lsl #16 \n\t" + "eor.w r9, r9, r5, lsl #24 \n\t" + "eor.w r10, r10, r6, lsl #8 \n\t" + "eor.w r10, r10, r11, lsl #16 \n\t" + "eor.w r10, r10, r12, lsl #24 \n\t" + "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) + + // AddRoundKey and AddRoundConst(from roundKeys) + + // r9( s9 s8 s11 s10) + // r10(s12 s14 s14 s13) + + // MixColumn + "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 + "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 + "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 + // r4 ----------------> r4 + + // round 41 + + // SubCell+ShiftRow+AC(c2) + // r3 (s3 s2 s1 s0) + // r4 (s7 s6 s5 s4) + // r5 (s11 s10 s9 s8) + // r6 (s15 s14 s13 s12) + + // 1st-2nd line + // r3(s3 s2 s1 s0) + "uxtb.w r9, r3, ror #24 \n\t" // s3 + "uxtb.w r8, r3, ror #16 \n\t" // s2 + "uxtb.w r7, r3, ror #8 \n\t" // s1 + "uxtb.w r3, r3 \n\t" // s0 + // r4(s6 s5 s4 s7) + "uxtb.w r12, r4, ror #16 \n\t" // s6 + "uxtb.w r11, r4, ror #8 \n\t" // s5 + "uxtb.w r10, r4 \n\t" // s4 + "uxtb.w r4, r4, ror #24 \n\t" // s7 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "eor.w r3, r3, r7, lsl #8 \n\t" + "eor.w r3, r3, r8, lsl #16 \n\t" + "eor.w r3, r3, r9, lsl #24 \n\t" + "eor.w r4, r4, r10, lsl #8 \n\t" + "eor.w r4, r4, r11, lsl #16 \n\t" + "eor.w r4, r4, r12, lsl #24 \n\t" + + // 3rd-4th line + // r5(s9 s8 s11 s10) + "uxtb.w r9, r5, ror #8 \n\t" // s9 + "uxtb.w r8, r5 \n\t" // s8 + "uxtb.w r7, r5, ror #24 \n\t" // s11 + "uxtb.w r5, r5, ror #16 \n\t" // s10 + // r6(s12 s15 s14 s13) + "uxtb.w r12, r6 \n\t" // s12 + "uxtb.w r11, r6, ror #24 \n\t" // s15 + "uxtb.w r10, r6, ror #16 \n\t" // s14 + "uxtb.w r6, r6, ror #8 \n\t" // s13 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "eor.w r5, r5, r7, lsl #8 \n\t" + "eor.w r5, r5, r8, lsl #16 \n\t" + "eor.w r5, r5, r9, lsl #24 \n\t" + "eor.w r6, r6, r10, lsl #8 \n\t" + "eor.w r6, r6, r11, lsl #16 \n\t" + "eor.w r6, r6, r12, lsl #24 \n\t" + + // AddRoundKey and AddRoundConst(from roundKeys) + "ldr.w r9, [r1,#32] \n\t" // load TK1 + "ldr.w r10, [r1,#36] \n\t" // load TK1 + "ldr.w r11, [r1,#384] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "ldr.w r12, [r1,#388] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + + "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) + "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) + // r8( s9 s8 s11 s10) + // r6(s12 s14 s14 s13) + + // MixColumn + "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 + "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 + "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 + // r8 ----------------> r8 + + // round 42 + + // SubCell+ShiftRow+AC(c2) + // r7 (s3 s2 s1 s0) + // r8 (s7 s6 s5 s4) + // r9 (s11 s10 s9 s8) + // r10(s15 s14 s13 s12) + + // 1st-2nd line + // r7(s3 s2 s1 s0) + "uxtb.w r5, r7, ror #24 \n\t" // s3 + "uxtb.w r4, r7, ror #16 \n\t" // s2 + "uxtb.w r3, r7, ror #8 \n\t" // s1 + "uxtb.w r7, r7 \n\t" // s0 + // r8(s6 s5 s4 s7) + "uxtb.w r12, r8, ror #16 \n\t" // s6 + "uxtb.w r11, r8, ror #8 \n\t" // s5 + "uxtb.w r6, r8 \n\t" // s4 + "uxtb.w r8, r8, ror #24 \n\t" // s7 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldr.w r0, [r1,#392] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r7, r7, r3, lsl #8 \n\t" + "eor.w r7, r7, r4, lsl #16 \n\t" + "eor.w r7, r7, r5, lsl #24 \n\t" + "eor.w r8, r8, r6, lsl #8 \n\t" + "eor.w r8, r8, r11, lsl #16 \n\t" + "eor.w r8, r8, r12, lsl #24 \n\t" + "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) + + // 3rd-4th line + // r9(s9 s8 s11 s10) + "uxtb.w r5, r9, ror #8 \n\t" // s9 + "uxtb.w r7, r9 \n\t" // s8 + "uxtb.w r3, r9, ror #24 \n\t" // s11 + "uxtb.w r9, r9, ror #16 \n\t" // s10 + // r10(s12 s15 s14 s13) + "uxtb.w r12, r10 \n\t" // s12 + "uxtb.w r11, r10, ror #24 \n\t" // s15 + "uxtb.w r6, r10, ror #16 \n\t" // s14 + "uxtb.w r10, r10, ror #8 \n\t" // s13 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldr.w r0, [r1,#396] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r9, r9, r3, lsl #8 \n\t" + "eor.w r9, r9, r7, lsl #16 \n\t" + "eor.w r9, r9, r5, lsl #24 \n\t" + "eor.w r10, r10, r6, lsl #8 \n\t" + "eor.w r10, r10, r11, lsl #16 \n\t" + "eor.w r10, r10, r12, lsl #24 \n\t" + "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) + + // AddRoundKey and AddRoundConst(from roundKeys) + + // r9( s9 s8 s11 s10) + // r10(s12 s14 s14 s13) + + // MixColumn + "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 + "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 + "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 + // r4 ----------------> r4 + // round 43 + + // SubCell+ShiftRow+AC(c2) + // r3 (s3 s2 s1 s0) + // r4 (s7 s6 s5 s4) + // r5 (s11 s10 s9 s8) + // r6 (s15 s14 s13 s12) + + // 1st-2nd line + // r3(s3 s2 s1 s0) + "uxtb.w r9, r3, ror #24 \n\t" // s3 + "uxtb.w r8, r3, ror #16 \n\t" // s2 + "uxtb.w r7, r3, ror #8 \n\t" // s1 + "uxtb.w r3, r3 \n\t" // s0 + // r4(s6 s5 s4 s7) + "uxtb.w r12, r4, ror #16 \n\t" // s6 + "uxtb.w r11, r4, ror #8 \n\t" // s5 + "uxtb.w r10, r4 \n\t" // s4 + "uxtb.w r4, r4, ror #24 \n\t" // s7 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "eor.w r3, r3, r7, lsl #8 \n\t" + "eor.w r3, r3, r8, lsl #16 \n\t" + "eor.w r3, r3, r9, lsl #24 \n\t" + "eor.w r4, r4, r10, lsl #8 \n\t" + "eor.w r4, r4, r11, lsl #16 \n\t" + "eor.w r4, r4, r12, lsl #24 \n\t" + + // 3rd-4th line + // r5(s9 s8 s11 s10) + "uxtb.w r9, r5, ror #8 \n\t" // s9 + "uxtb.w r8, r5 \n\t" // s8 + "uxtb.w r7, r5, ror #24 \n\t" // s11 + "uxtb.w r5, r5, ror #16 \n\t" // s10 + // r6(s12 s15 s14 s13) + "uxtb.w r12, r6 \n\t" // s12 + "uxtb.w r11, r6, ror #24 \n\t" // s15 + "uxtb.w r10, r6, ror #16 \n\t" // s14 + "uxtb.w r6, r6, ror #8 \n\t" // s13 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "eor.w r5, r5, r7, lsl #8 \n\t" + "eor.w r5, r5, r8, lsl #16 \n\t" + "eor.w r5, r5, r9, lsl #24 \n\t" + "eor.w r6, r6, r10, lsl #8 \n\t" + "eor.w r6, r6, r11, lsl #16 \n\t" + "eor.w r6, r6, r12, lsl #24 \n\t" + + // AddRoundKey and AddRoundConst(from roundKeys) + "ldr.w r9, [r1,#40] \n\t" // load TK1 + "ldr.w r10, [r1,#44] \n\t" // load TK1 + "ldr.w r11, [r1,#400] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "ldr.w r12, [r1,#404] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + + "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) + "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) + // r8( s9 s8 s11 s10) + // r6(s12 s14 s14 s13) + + // MixColumn + "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 + "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 + "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 + // r8 ----------------> r8 + + // round 44 + + // SubCell+ShiftRow+AC(c2) + // r7 (s3 s2 s1 s0) + // r8 (s7 s6 s5 s4) + // r9 (s11 s10 s9 s8) + // r10(s15 s14 s13 s12) + + // 1st-2nd line + // r7(s3 s2 s1 s0) + "uxtb.w r5, r7, ror #24 \n\t" // s3 + "uxtb.w r4, r7, ror #16 \n\t" // s2 + "uxtb.w r3, r7, ror #8 \n\t" // s1 + "uxtb.w r7, r7 \n\t" // s0 + // r8(s6 s5 s4 s7) + "uxtb.w r12, r8, ror #16 \n\t" // s6 + "uxtb.w r11, r8, ror #8 \n\t" // s5 + "uxtb.w r6, r8 \n\t" // s4 + "uxtb.w r8, r8, ror #24 \n\t" // s7 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldr.w r0, [r1,#408] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r7, r7, r3, lsl #8 \n\t" + "eor.w r7, r7, r4, lsl #16 \n\t" + "eor.w r7, r7, r5, lsl #24 \n\t" + "eor.w r8, r8, r6, lsl #8 \n\t" + "eor.w r8, r8, r11, lsl #16 \n\t" + "eor.w r8, r8, r12, lsl #24 \n\t" + "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) + + // 3rd-4th line + // r9(s9 s8 s11 s10) + "uxtb.w r5, r9, ror #8 \n\t" // s9 + "uxtb.w r7, r9 \n\t" // s8 + "uxtb.w r3, r9, ror #24 \n\t" // s11 + "uxtb.w r9, r9, ror #16 \n\t" // s10 + // r10(s12 s15 s14 s13) + "uxtb.w r12, r10 \n\t" // s12 + "uxtb.w r11, r10, ror #24 \n\t" // s15 + "uxtb.w r6, r10, ror #16 \n\t" // s14 + "uxtb.w r10, r10, ror #8 \n\t" // s13 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldr.w r0, [r1,#412] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r9, r9, r3, lsl #8 \n\t" + "eor.w r9, r9, r7, lsl #16 \n\t" + "eor.w r9, r9, r5, lsl #24 \n\t" + "eor.w r10, r10, r6, lsl #8 \n\t" + "eor.w r10, r10, r11, lsl #16 \n\t" + "eor.w r10, r10, r12, lsl #24 \n\t" + "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) + + // AddRoundKey and AddRoundConst(from roundKeys) + + // r9( s9 s8 s11 s10) + // r10(s12 s14 s14 s13) + + // MixColumn + "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 + "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 + "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 + // r4 ----------------> r4 + // round 45 + + // SubCell+ShiftRow+AC(c2) + // r3 (s3 s2 s1 s0) + // r4 (s7 s6 s5 s4) + // r5 (s11 s10 s9 s8) + // r6 (s15 s14 s13 s12) + + // 1st-2nd line + // r3(s3 s2 s1 s0) + "uxtb.w r9, r3, ror #24 \n\t" // s3 + "uxtb.w r8, r3, ror #16 \n\t" // s2 + "uxtb.w r7, r3, ror #8 \n\t" // s1 + "uxtb.w r3, r3 \n\t" // s0 + // r4(s6 s5 s4 s7) + "uxtb.w r12, r4, ror #16 \n\t" // s6 + "uxtb.w r11, r4, ror #8 \n\t" // s5 + "uxtb.w r10, r4 \n\t" // s4 + "uxtb.w r4, r4, ror #24 \n\t" // s7 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "eor.w r3, r3, r7, lsl #8 \n\t" + "eor.w r3, r3, r8, lsl #16 \n\t" + "eor.w r3, r3, r9, lsl #24 \n\t" + "eor.w r4, r4, r10, lsl #8 \n\t" + "eor.w r4, r4, r11, lsl #16 \n\t" + "eor.w r4, r4, r12, lsl #24 \n\t" + + // 3rd-4th line + // r5(s9 s8 s11 s10) + "uxtb.w r9, r5, ror #8 \n\t" // s9 + "uxtb.w r8, r5 \n\t" // s8 + "uxtb.w r7, r5, ror #24 \n\t" // s11 + "uxtb.w r5, r5, ror #16 \n\t" // s10 + // r6(s12 s15 s14 s13) + "uxtb.w r12, r6 \n\t" // s12 + "uxtb.w r11, r6, ror #24 \n\t" // s15 + "uxtb.w r10, r6, ror #16 \n\t" // s14 + "uxtb.w r6, r6, ror #8 \n\t" // s13 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "eor.w r5, r5, r7, lsl #8 \n\t" + "eor.w r5, r5, r8, lsl #16 \n\t" + "eor.w r5, r5, r9, lsl #24 \n\t" + "eor.w r6, r6, r10, lsl #8 \n\t" + "eor.w r6, r6, r11, lsl #16 \n\t" + "eor.w r6, r6, r12, lsl #24 \n\t" + + // AddRoundKey and AddRoundConst(from roundKeys) + "ldr.w r9, [r1,#48] \n\t" // load TK1 + "ldr.w r10, [r1,#52] \n\t" // load TK1 + "ldr.w r11, [r1,#416] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "ldr.w r12, [r1,#420] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + + "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) + "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) + // r8( s9 s8 s11 s10) + // r6(s12 s14 s14 s13) + + // MixColumn + "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 + "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 + "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 + // r8 ----------------> r8 + + // round 46 + + // SubCell+ShiftRow+AC(c2) + // r7 (s3 s2 s1 s0) + // r8 (s7 s6 s5 s4) + // r9 (s11 s10 s9 s8) + // r10(s15 s14 s13 s12) + + // 1st-2nd line + // r7(s3 s2 s1 s0) + "uxtb.w r5, r7, ror #24 \n\t" // s3 + "uxtb.w r4, r7, ror #16 \n\t" // s2 + "uxtb.w r3, r7, ror #8 \n\t" // s1 + "uxtb.w r7, r7 \n\t" // s0 + // r8(s6 s5 s4 s7) + "uxtb.w r12, r8, ror #16 \n\t" // s6 + "uxtb.w r11, r8, ror #8 \n\t" // s5 + "uxtb.w r6, r8 \n\t" // s4 + "uxtb.w r8, r8, ror #24 \n\t" // s7 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldr.w r0, [r1,#424] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r7, r7, r3, lsl #8 \n\t" + "eor.w r7, r7, r4, lsl #16 \n\t" + "eor.w r7, r7, r5, lsl #24 \n\t" + "eor.w r8, r8, r6, lsl #8 \n\t" + "eor.w r8, r8, r11, lsl #16 \n\t" + "eor.w r8, r8, r12, lsl #24 \n\t" + "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) + + // 3rd-4th line + // r9(s9 s8 s11 s10) + "uxtb.w r5, r9, ror #8 \n\t" // s9 + "uxtb.w r7, r9 \n\t" // s8 + "uxtb.w r3, r9, ror #24 \n\t" // s11 + "uxtb.w r9, r9, ror #16 \n\t" // s10 + // r10(s12 s15 s14 s13) + "uxtb.w r12, r10 \n\t" // s12 + "uxtb.w r11, r10, ror #24 \n\t" // s15 + "uxtb.w r6, r10, ror #16 \n\t" // s14 + "uxtb.w r10, r10, ror #8 \n\t" // s13 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldr.w r0, [r1,#428] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r9, r9, r3, lsl #8 \n\t" + "eor.w r9, r9, r7, lsl #16 \n\t" + "eor.w r9, r9, r5, lsl #24 \n\t" + "eor.w r10, r10, r6, lsl #8 \n\t" + "eor.w r10, r10, r11, lsl #16 \n\t" + "eor.w r10, r10, r12, lsl #24 \n\t" + "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) + + // AddRoundKey and AddRoundConst(from roundKeys) + + // r9( s9 s8 s11 s10) + // r10(s12 s14 s14 s13) + + // MixColumn + "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 + "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 + "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 + // r4 ----------------> r4 + // round 47 + + // SubCell+ShiftRow+AC(c2) + // r3 (s3 s2 s1 s0) + // r4 (s7 s6 s5 s4) + // r5 (s11 s10 s9 s8) + // r6 (s15 s14 s13 s12) + + // 1st-2nd line + // r3(s3 s2 s1 s0) + "uxtb.w r9, r3, ror #24 \n\t" // s3 + "uxtb.w r8, r3, ror #16 \n\t" // s2 + "uxtb.w r7, r3, ror #8 \n\t" // s1 + "uxtb.w r3, r3 \n\t" // s0 + // r4(s6 s5 s4 s7) + "uxtb.w r12, r4, ror #16 \n\t" // s6 + "uxtb.w r11, r4, ror #8 \n\t" // s5 + "uxtb.w r10, r4 \n\t" // s4 + "uxtb.w r4, r4, ror #24 \n\t" // s7 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "eor.w r3, r3, r7, lsl #8 \n\t" + "eor.w r3, r3, r8, lsl #16 \n\t" + "eor.w r3, r3, r9, lsl #24 \n\t" + "eor.w r4, r4, r10, lsl #8 \n\t" + "eor.w r4, r4, r11, lsl #16 \n\t" + "eor.w r4, r4, r12, lsl #24 \n\t" + + // 3rd-4th line + // r5(s9 s8 s11 s10) + "uxtb.w r9, r5, ror #8 \n\t" // s9 + "uxtb.w r8, r5 \n\t" // s8 + "uxtb.w r7, r5, ror #24 \n\t" // s11 + "uxtb.w r5, r5, ror #16 \n\t" // s10 + // r6(s12 s15 s14 s13) + "uxtb.w r12, r6 \n\t" // s12 + "uxtb.w r11, r6, ror #24 \n\t" // s15 + "uxtb.w r10, r6, ror #16 \n\t" // s14 + "uxtb.w r6, r6, ror #8 \n\t" // s13 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "eor.w r5, r5, r7, lsl #8 \n\t" + "eor.w r5, r5, r8, lsl #16 \n\t" + "eor.w r5, r5, r9, lsl #24 \n\t" + "eor.w r6, r6, r10, lsl #8 \n\t" + "eor.w r6, r6, r11, lsl #16 \n\t" + "eor.w r6, r6, r12, lsl #24 \n\t" + + // AddRoundKey and AddRoundConst(from roundKeys) + "ldr.w r9, [r1,#56] \n\t" // load TK1 + "ldr.w r10, [r1,#60] \n\t" // load TK1 + "ldr.w r11, [r1,#432] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "ldr.w r12, [r1,#436] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + + "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) + "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) + // r8( s9 s8 s11 s10) + // r6(s12 s14 s14 s13) + + // MixColumn + "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 + "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 + "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 + // r8 ----------------> r8 + + // round 48 + + // SubCell+ShiftRow+AC(c2) + // r7 (s3 s2 s1 s0) + // r8 (s7 s6 s5 s4) + // r9 (s11 s10 s9 s8) + // r10(s15 s14 s13 s12) + + // 1st-2nd line + // r7(s3 s2 s1 s0) + "uxtb.w r5, r7, ror #24 \n\t" // s3 + "uxtb.w r4, r7, ror #16 \n\t" // s2 + "uxtb.w r3, r7, ror #8 \n\t" // s1 + "uxtb.w r7, r7 \n\t" // s0 + // r8(s6 s5 s4 s7) + "uxtb.w r12, r8, ror #16 \n\t" // s6 + "uxtb.w r11, r8, ror #8 \n\t" // s5 + "uxtb.w r6, r8 \n\t" // s4 + "uxtb.w r8, r8, ror #24 \n\t" // s7 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldr.w r0, [r1,#440] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r7, r7, r3, lsl #8 \n\t" + "eor.w r7, r7, r4, lsl #16 \n\t" + "eor.w r7, r7, r5, lsl #24 \n\t" + "eor.w r8, r8, r6, lsl #8 \n\t" + "eor.w r8, r8, r11, lsl #16 \n\t" + "eor.w r8, r8, r12, lsl #24 \n\t" + "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) + + // 3rd-4th line + // r9(s9 s8 s11 s10) + "uxtb.w r5, r9, ror #8 \n\t" // s9 + "uxtb.w r7, r9 \n\t" // s8 + "uxtb.w r3, r9, ror #24 \n\t" // s11 + "uxtb.w r9, r9, ror #16 \n\t" // s10 + // r10(s12 s15 s14 s13) + "uxtb.w r12, r10 \n\t" // s12 + "uxtb.w r11, r10, ror #24 \n\t" // s15 + "uxtb.w r6, r10, ror #16 \n\t" // s14 + "uxtb.w r10, r10, ror #8 \n\t" // s13 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldr.w r0, [r1,#444] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r9, r9, r3, lsl #8 \n\t" + "eor.w r9, r9, r7, lsl #16 \n\t" + "eor.w r9, r9, r5, lsl #24 \n\t" + "eor.w r10, r10, r6, lsl #8 \n\t" + "eor.w r10, r10, r11, lsl #16 \n\t" + "eor.w r10, r10, r12, lsl #24 \n\t" + "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) + + // AddRoundKey and AddRoundConst(from roundKeys) + + // r9( s9 s8 s11 s10) + // r10(s12 s14 s14 s13) + + // MixColumn + "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 + "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 + "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 + // r4 ----------------> r4 + // round 49 + + // SubCell+ShiftRow+AC(c2) + // r3 (s3 s2 s1 s0) + // r4 (s7 s6 s5 s4) + // r5 (s11 s10 s9 s8) + // r6 (s15 s14 s13 s12) + + // 1st-2nd line + // r3(s3 s2 s1 s0) + "uxtb.w r9, r3, ror #24 \n\t" // s3 + "uxtb.w r8, r3, ror #16 \n\t" // s2 + "uxtb.w r7, r3, ror #8 \n\t" // s1 + "uxtb.w r3, r3 \n\t" // s0 + // r4(s6 s5 s4 s7) + "uxtb.w r12, r4, ror #16 \n\t" // s6 + "uxtb.w r11, r4, ror #8 \n\t" // s5 + "uxtb.w r10, r4 \n\t" // s4 + "uxtb.w r4, r4, ror #24 \n\t" // s7 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "eor.w r3, r3, r7, lsl #8 \n\t" + "eor.w r3, r3, r8, lsl #16 \n\t" + "eor.w r3, r3, r9, lsl #24 \n\t" + "eor.w r4, r4, r10, lsl #8 \n\t" + "eor.w r4, r4, r11, lsl #16 \n\t" + "eor.w r4, r4, r12, lsl #24 \n\t" + + // 3rd-4th line + // r5(s9 s8 s11 s10) + "uxtb.w r9, r5, ror #8 \n\t" // s9 + "uxtb.w r8, r5 \n\t" // s8 + "uxtb.w r7, r5, ror #24 \n\t" // s11 + "uxtb.w r5, r5, ror #16 \n\t" // s10 + // r6(s12 s15 s14 s13) + "uxtb.w r12, r6 \n\t" // s12 + "uxtb.w r11, r6, ror #24 \n\t" // s15 + "uxtb.w r10, r6, ror #16 \n\t" // s14 + "uxtb.w r6, r6, ror #8 \n\t" // s13 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "eor.w r5, r5, r7, lsl #8 \n\t" + "eor.w r5, r5, r8, lsl #16 \n\t" + "eor.w r5, r5, r9, lsl #24 \n\t" + "eor.w r6, r6, r10, lsl #8 \n\t" + "eor.w r6, r6, r11, lsl #16 \n\t" + "eor.w r6, r6, r12, lsl #24 \n\t" + + // AddRoundKey and AddRoundConst(from roundKeys) + "ldr.w r9, [r1,#0] \n\t" // load TK1 + "ldr.w r10, [r1,#4] \n\t" // load TK1 + "ldr.w r11, [r1,#448] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "ldr.w r12, [r1,#452] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + + "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) + "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) + // r8( s9 s8 s11 s10) + // r6(s12 s14 s14 s13) + + // MixColumn + "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 + "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 + "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 + // r8 ----------------> r8 + + // round 50 + + // SubCell+ShiftRow+AC(c2) + // r7 (s3 s2 s1 s0) + // r8 (s7 s6 s5 s4) + // r9 (s11 s10 s9 s8) + // r10(s15 s14 s13 s12) + + // 1st-2nd line + // r7(s3 s2 s1 s0) + "uxtb.w r5, r7, ror #24 \n\t" // s3 + "uxtb.w r4, r7, ror #16 \n\t" // s2 + "uxtb.w r3, r7, ror #8 \n\t" // s1 + "uxtb.w r7, r7 \n\t" // s0 + // r8(s6 s5 s4 s7) + "uxtb.w r12, r8, ror #16 \n\t" // s6 + "uxtb.w r11, r8, ror #8 \n\t" // s5 + "uxtb.w r6, r8 \n\t" // s4 + "uxtb.w r8, r8, ror #24 \n\t" // s7 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldr.w r0, [r1,#456] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r7, r7, r3, lsl #8 \n\t" + "eor.w r7, r7, r4, lsl #16 \n\t" + "eor.w r7, r7, r5, lsl #24 \n\t" + "eor.w r8, r8, r6, lsl #8 \n\t" + "eor.w r8, r8, r11, lsl #16 \n\t" + "eor.w r8, r8, r12, lsl #24 \n\t" + "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) + + // 3rd-4th line + // r9(s9 s8 s11 s10) + "uxtb.w r5, r9, ror #8 \n\t" // s9 + "uxtb.w r7, r9 \n\t" // s8 + "uxtb.w r3, r9, ror #24 \n\t" // s11 + "uxtb.w r9, r9, ror #16 \n\t" // s10 + // r10(s12 s15 s14 s13) + "uxtb.w r12, r10 \n\t" // s12 + "uxtb.w r11, r10, ror #24 \n\t" // s15 + "uxtb.w r6, r10, ror #16 \n\t" // s14 + "uxtb.w r10, r10, ror #8 \n\t" // s13 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldr.w r0, [r1,#460] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r9, r9, r3, lsl #8 \n\t" + "eor.w r9, r9, r7, lsl #16 \n\t" + "eor.w r9, r9, r5, lsl #24 \n\t" + "eor.w r10, r10, r6, lsl #8 \n\t" + "eor.w r10, r10, r11, lsl #16 \n\t" + "eor.w r10, r10, r12, lsl #24 \n\t" + "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) + + // AddRoundKey and AddRoundConst(from roundKeys) + + // r9( s9 s8 s11 s10) + // r10(s12 s14 s14 s13) + + // MixColumn + "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 + "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 + "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 + // r4 ----------------> r4 + // round 51 + + // SubCell+ShiftRow+AC(c2) + // r3 (s3 s2 s1 s0) + // r4 (s7 s6 s5 s4) + // r5 (s11 s10 s9 s8) + // r6 (s15 s14 s13 s12) + + // 1st-2nd line + // r3(s3 s2 s1 s0) + "uxtb.w r9, r3, ror #24 \n\t" // s3 + "uxtb.w r8, r3, ror #16 \n\t" // s2 + "uxtb.w r7, r3, ror #8 \n\t" // s1 + "uxtb.w r3, r3 \n\t" // s0 + // r4(s6 s5 s4 s7) + "uxtb.w r12, r4, ror #16 \n\t" // s6 + "uxtb.w r11, r4, ror #8 \n\t" // s5 + "uxtb.w r10, r4 \n\t" // s4 + "uxtb.w r4, r4, ror #24 \n\t" // s7 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "eor.w r3, r3, r7, lsl #8 \n\t" + "eor.w r3, r3, r8, lsl #16 \n\t" + "eor.w r3, r3, r9, lsl #24 \n\t" + "eor.w r4, r4, r10, lsl #8 \n\t" + "eor.w r4, r4, r11, lsl #16 \n\t" + "eor.w r4, r4, r12, lsl #24 \n\t" + + // 3rd-4th line + // r5(s9 s8 s11 s10) + "uxtb.w r9, r5, ror #8 \n\t" // s9 + "uxtb.w r8, r5 \n\t" // s8 + "uxtb.w r7, r5, ror #24 \n\t" // s11 + "uxtb.w r5, r5, ror #16 \n\t" // s10 + // r6(s12 s15 s14 s13) + "uxtb.w r12, r6 \n\t" // s12 + "uxtb.w r11, r6, ror #24 \n\t" // s15 + "uxtb.w r10, r6, ror #16 \n\t" // s14 + "uxtb.w r6, r6, ror #8 \n\t" // s13 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "eor.w r5, r5, r7, lsl #8 \n\t" + "eor.w r5, r5, r8, lsl #16 \n\t" + "eor.w r5, r5, r9, lsl #24 \n\t" + "eor.w r6, r6, r10, lsl #8 \n\t" + "eor.w r6, r6, r11, lsl #16 \n\t" + "eor.w r6, r6, r12, lsl #24 \n\t" + + // AddRoundKey and AddRoundConst(from roundKeys) + "ldr.w r9, [r1,#8] \n\t" // load TK1 + "ldr.w r10, [r1,#12] \n\t" // load TK1 + "ldr.w r11, [r1,#464] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "ldr.w r12, [r1,#468] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + + "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) + "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) + // r8( s9 s8 s11 s10) + // r6(s12 s14 s14 s13) + + // MixColumn + "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 + "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 + "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 + // r8 ----------------> r8 + + // round 52 + + // SubCell+ShiftRow+AC(c2) + // r7 (s3 s2 s1 s0) + // r8 (s7 s6 s5 s4) + // r9 (s11 s10 s9 s8) + // r10(s15 s14 s13 s12) + + // 1st-2nd line + // r7(s3 s2 s1 s0) + "uxtb.w r5, r7, ror #24 \n\t" // s3 + "uxtb.w r4, r7, ror #16 \n\t" // s2 + "uxtb.w r3, r7, ror #8 \n\t" // s1 + "uxtb.w r7, r7 \n\t" // s0 + // r8(s6 s5 s4 s7) + "uxtb.w r12, r8, ror #16 \n\t" // s6 + "uxtb.w r11, r8, ror #8 \n\t" // s5 + "uxtb.w r6, r8 \n\t" // s4 + "uxtb.w r8, r8, ror #24 \n\t" // s7 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldr.w r0, [r1,#472] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r7, r7, r3, lsl #8 \n\t" + "eor.w r7, r7, r4, lsl #16 \n\t" + "eor.w r7, r7, r5, lsl #24 \n\t" + "eor.w r8, r8, r6, lsl #8 \n\t" + "eor.w r8, r8, r11, lsl #16 \n\t" + "eor.w r8, r8, r12, lsl #24 \n\t" + "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) + + // 3rd-4th line + // r9(s9 s8 s11 s10) + "uxtb.w r5, r9, ror #8 \n\t" // s9 + "uxtb.w r7, r9 \n\t" // s8 + "uxtb.w r3, r9, ror #24 \n\t" // s11 + "uxtb.w r9, r9, ror #16 \n\t" // s10 + // r10(s12 s15 s14 s13) + "uxtb.w r12, r10 \n\t" // s12 + "uxtb.w r11, r10, ror #24 \n\t" // s15 + "uxtb.w r6, r10, ror #16 \n\t" // s14 + "uxtb.w r10, r10, ror #8 \n\t" // s13 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldr.w r0, [r1,#476] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r9, r9, r3, lsl #8 \n\t" + "eor.w r9, r9, r7, lsl #16 \n\t" + "eor.w r9, r9, r5, lsl #24 \n\t" + "eor.w r10, r10, r6, lsl #8 \n\t" + "eor.w r10, r10, r11, lsl #16 \n\t" + "eor.w r10, r10, r12, lsl #24 \n\t" + "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) + + // AddRoundKey and AddRoundConst(from roundKeys) + + // r9( s9 s8 s11 s10) + // r10(s12 s14 s14 s13) + + // MixColumn + "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 + "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 + "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 + // r4 ----------------> r4 + // round 53 + + // SubCell+ShiftRow+AC(c2) + // r3 (s3 s2 s1 s0) + // r4 (s7 s6 s5 s4) + // r5 (s11 s10 s9 s8) + // r6 (s15 s14 s13 s12) + + // 1st-2nd line + // r3(s3 s2 s1 s0) + "uxtb.w r9, r3, ror #24 \n\t" // s3 + "uxtb.w r8, r3, ror #16 \n\t" // s2 + "uxtb.w r7, r3, ror #8 \n\t" // s1 + "uxtb.w r3, r3 \n\t" // s0 + // r4(s6 s5 s4 s7) + "uxtb.w r12, r4, ror #16 \n\t" // s6 + "uxtb.w r11, r4, ror #8 \n\t" // s5 + "uxtb.w r10, r4 \n\t" // s4 + "uxtb.w r4, r4, ror #24 \n\t" // s7 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "eor.w r3, r3, r7, lsl #8 \n\t" + "eor.w r3, r3, r8, lsl #16 \n\t" + "eor.w r3, r3, r9, lsl #24 \n\t" + "eor.w r4, r4, r10, lsl #8 \n\t" + "eor.w r4, r4, r11, lsl #16 \n\t" + "eor.w r4, r4, r12, lsl #24 \n\t" + + // 3rd-4th line + // r5(s9 s8 s11 s10) + "uxtb.w r9, r5, ror #8 \n\t" // s9 + "uxtb.w r8, r5 \n\t" // s8 + "uxtb.w r7, r5, ror #24 \n\t" // s11 + "uxtb.w r5, r5, ror #16 \n\t" // s10 + // r6(s12 s15 s14 s13) + "uxtb.w r12, r6 \n\t" // s12 + "uxtb.w r11, r6, ror #24 \n\t" // s15 + "uxtb.w r10, r6, ror #16 \n\t" // s14 + "uxtb.w r6, r6, ror #8 \n\t" // s13 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "eor.w r5, r5, r7, lsl #8 \n\t" + "eor.w r5, r5, r8, lsl #16 \n\t" + "eor.w r5, r5, r9, lsl #24 \n\t" + "eor.w r6, r6, r10, lsl #8 \n\t" + "eor.w r6, r6, r11, lsl #16 \n\t" + "eor.w r6, r6, r12, lsl #24 \n\t" + + // AddRoundKey and AddRoundConst(from roundKeys) + "ldr.w r9, [r1,#16] \n\t" // load TK1 + "ldr.w r10, [r1,#20] \n\t" // load TK1 + "ldr.w r11, [r1,#480] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "ldr.w r12, [r1,#484] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + + "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) + "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) + // r8( s9 s8 s11 s10) + // r6(s12 s14 s14 s13) + + // MixColumn + "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 + "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 + "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 + // r8 ----------------> r8 + + // round 54 + + // SubCell+ShiftRow+AC(c2) + // r7 (s3 s2 s1 s0) + // r8 (s7 s6 s5 s4) + // r9 (s11 s10 s9 s8) + // r10(s15 s14 s13 s12) + + // 1st-2nd line + // r7(s3 s2 s1 s0) + "uxtb.w r5, r7, ror #24 \n\t" // s3 + "uxtb.w r4, r7, ror #16 \n\t" // s2 + "uxtb.w r3, r7, ror #8 \n\t" // s1 + "uxtb.w r7, r7 \n\t" // s0 + // r8(s6 s5 s4 s7) + "uxtb.w r12, r8, ror #16 \n\t" // s6 + "uxtb.w r11, r8, ror #8 \n\t" // s5 + "uxtb.w r6, r8 \n\t" // s4 + "uxtb.w r8, r8, ror #24 \n\t" // s7 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldr.w r0, [r1,#488] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r7, r7, r3, lsl #8 \n\t" + "eor.w r7, r7, r4, lsl #16 \n\t" + "eor.w r7, r7, r5, lsl #24 \n\t" + "eor.w r8, r8, r6, lsl #8 \n\t" + "eor.w r8, r8, r11, lsl #16 \n\t" + "eor.w r8, r8, r12, lsl #24 \n\t" + "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) + + // 3rd-4th line + // r9(s9 s8 s11 s10) + "uxtb.w r5, r9, ror #8 \n\t" // s9 + "uxtb.w r7, r9 \n\t" // s8 + "uxtb.w r3, r9, ror #24 \n\t" // s11 + "uxtb.w r9, r9, ror #16 \n\t" // s10 + // r10(s12 s15 s14 s13) + "uxtb.w r12, r10 \n\t" // s12 + "uxtb.w r11, r10, ror #24 \n\t" // s15 + "uxtb.w r6, r10, ror #16 \n\t" // s14 + "uxtb.w r10, r10, ror #8 \n\t" // s13 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldr.w r0, [r1,#492] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r9, r9, r3, lsl #8 \n\t" + "eor.w r9, r9, r7, lsl #16 \n\t" + "eor.w r9, r9, r5, lsl #24 \n\t" + "eor.w r10, r10, r6, lsl #8 \n\t" + "eor.w r10, r10, r11, lsl #16 \n\t" + "eor.w r10, r10, r12, lsl #24 \n\t" + "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) + + // AddRoundKey and AddRoundConst(from roundKeys) + + // r9( s9 s8 s11 s10) + // r10(s12 s14 s14 s13) + + // MixColumn + "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 + "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 + "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 + // r4 ----------------> r4 + // round 55 + + // SubCell+ShiftRow+AC(c2) + // r3 (s3 s2 s1 s0) + // r4 (s7 s6 s5 s4) + // r5 (s11 s10 s9 s8) + // r6 (s15 s14 s13 s12) + + // 1st-2nd line + // r3(s3 s2 s1 s0) + "uxtb.w r9, r3, ror #24 \n\t" // s3 + "uxtb.w r8, r3, ror #16 \n\t" // s2 + "uxtb.w r7, r3, ror #8 \n\t" // s1 + "uxtb.w r3, r3 \n\t" // s0 + // r4(s6 s5 s4 s7) + "uxtb.w r12, r4, ror #16 \n\t" // s6 + "uxtb.w r11, r4, ror #8 \n\t" // s5 + "uxtb.w r10, r4 \n\t" // s4 + "uxtb.w r4, r4, ror #24 \n\t" // s7 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "eor.w r3, r3, r7, lsl #8 \n\t" + "eor.w r3, r3, r8, lsl #16 \n\t" + "eor.w r3, r3, r9, lsl #24 \n\t" + "eor.w r4, r4, r10, lsl #8 \n\t" + "eor.w r4, r4, r11, lsl #16 \n\t" + "eor.w r4, r4, r12, lsl #24 \n\t" + + // 3rd-4th line + // r5(s9 s8 s11 s10) + "uxtb.w r9, r5, ror #8 \n\t" // s9 + "uxtb.w r8, r5 \n\t" // s8 + "uxtb.w r7, r5, ror #24 \n\t" // s11 + "uxtb.w r5, r5, ror #16 \n\t" // s10 + // r6(s12 s15 s14 s13) + "uxtb.w r12, r6 \n\t" // s12 + "uxtb.w r11, r6, ror #24 \n\t" // s15 + "uxtb.w r10, r6, ror #16 \n\t" // s14 + "uxtb.w r6, r6, ror #8 \n\t" // s13 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "eor.w r5, r5, r7, lsl #8 \n\t" + "eor.w r5, r5, r8, lsl #16 \n\t" + "eor.w r5, r5, r9, lsl #24 \n\t" + "eor.w r6, r6, r10, lsl #8 \n\t" + "eor.w r6, r6, r11, lsl #16 \n\t" + "eor.w r6, r6, r12, lsl #24 \n\t" + + // AddRoundKey and AddRoundConst(from roundKeys) + "ldr.w r9, [r1,#24] \n\t" // load TK1 + "ldr.w r10, [r1,#28] \n\t" // load TK1 + "ldr.w r11, [r1,#496] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "ldr.w r12, [r1,#500] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + + "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) + "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) + // r8( s9 s8 s11 s10) + // r6(s12 s14 s14 s13) + + // MixColumn + "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 + "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 + "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 + // r8 ----------------> r8 + + // round 56 + + // SubCell+ShiftRow+AC(c2) + // r7 (s3 s2 s1 s0) + // r8 (s7 s6 s5 s4) + // r9 (s11 s10 s9 s8) + // r10(s15 s14 s13 s12) + + // 1st-2nd line + // r7(s3 s2 s1 s0) + "uxtb.w r5, r7, ror #24 \n\t" // s3 + "uxtb.w r4, r7, ror #16 \n\t" // s2 + "uxtb.w r3, r7, ror #8 \n\t" // s1 + "uxtb.w r7, r7 \n\t" // s0 + // r8(s6 s5 s4 s7) + "uxtb.w r12, r8, ror #16 \n\t" // s6 + "uxtb.w r11, r8, ror #8 \n\t" // s5 + "uxtb.w r6, r8 \n\t" // s4 + "uxtb.w r8, r8, ror #24 \n\t" // s7 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldr.w r0, [r1,#504] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r7, r7, r3, lsl #8 \n\t" + "eor.w r7, r7, r4, lsl #16 \n\t" + "eor.w r7, r7, r5, lsl #24 \n\t" + "eor.w r8, r8, r6, lsl #8 \n\t" + "eor.w r8, r8, r11, lsl #16 \n\t" + "eor.w r8, r8, r12, lsl #24 \n\t" + "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) + + // 3rd-4th line + // r9(s9 s8 s11 s10) + "uxtb.w r5, r9, ror #8 \n\t" // s9 + "uxtb.w r7, r9 \n\t" // s8 + "uxtb.w r3, r9, ror #24 \n\t" // s11 + "uxtb.w r9, r9, ror #16 \n\t" // s10 + // r10(s12 s15 s14 s13) + "uxtb.w r12, r10 \n\t" // s12 + "uxtb.w r11, r10, ror #24 \n\t" // s15 + "uxtb.w r6, r10, ror #16 \n\t" // s14 + "uxtb.w r10, r10, ror #8 \n\t" // s13 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldr.w r0, [r1,#508] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r9, r9, r3, lsl #8 \n\t" + "eor.w r9, r9, r7, lsl #16 \n\t" + "eor.w r9, r9, r5, lsl #24 \n\t" + "eor.w r10, r10, r6, lsl #8 \n\t" + "eor.w r10, r10, r11, lsl #16 \n\t" + "eor.w r10, r10, r12, lsl #24 \n\t" + "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) + + // AddRoundKey and AddRoundConst(from roundKeys) + + // r9( s9 s8 s11 s10) + // r10(s12 s14 s14 s13) + + // MixColumn + "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 + "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 + "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 + // r4 ----------------> r4 + + "ldmia.w sp!, {r0} \n\t" // pop store pointer + // r0 reload + + "str.w r3, [r0,#0] \n\t" // store ciphertext + "str.w r4, [r0,#4] \n\t" // store ciphertext + "str.w r5, [r0,#8] \n\t" // store ciphertext + "str.w r6, [r0,#12] \n\t" // store ciphertext + + "ldmia.w sp!, {r4-r12,r14} \n\t" + : + : [block] "r" (block), [roundKeys] "r" (roundKeys), [pSBOX] "" (pSBOX) + : "cc"); +} + diff --git a/romulus/Implementations/crypto_aead/romulusm1/opt32/api.h b/romulus/Implementations/crypto_aead/romulusm1/opt32/api.h new file mode 100644 index 0000000..a4aa567 --- /dev/null +++ b/romulus/Implementations/crypto_aead/romulusm1/opt32/api.h @@ -0,0 +1,5 @@ +#define CRYPTO_KEYBYTES 16 +#define CRYPTO_NSECBYTES 0 +#define CRYPTO_NPUBBYTES 16 +#define CRYPTO_ABYTES 16 +#define CRYPTO_NOOVERLAP 1 diff --git a/romulus/Implementations/crypto_aead/romulusm1/opt32/crypto_aead.h b/romulus/Implementations/crypto_aead/romulusm1/opt32/crypto_aead.h new file mode 100644 index 0000000..e2ca9b0 --- /dev/null +++ b/romulus/Implementations/crypto_aead/romulusm1/opt32/crypto_aead.h @@ -0,0 +1,18 @@ + +int crypto_aead_encrypt( + unsigned char *c, unsigned long long *clen, + const unsigned char *m, unsigned long long mlen, + const unsigned char *ad, unsigned long long adlen, + const unsigned char *nsec, + const unsigned char *npub, + const unsigned char *k +); + +int crypto_aead_decrypt( + unsigned char *m, unsigned long long *mlen, + unsigned char *nsec, + const unsigned char *c, unsigned long long clen, + const unsigned char *ad, unsigned long long adlen, + const unsigned char *npub, + const unsigned char *k +); \ No newline at end of file diff --git a/romulus/Implementations/crypto_aead/romulusm1/opt32/encrypt.c b/romulus/Implementations/crypto_aead/romulusm1/opt32/encrypt.c new file mode 100644 index 0000000..ab1b9cb --- /dev/null +++ b/romulus/Implementations/crypto_aead/romulusm1/opt32/encrypt.c @@ -0,0 +1,367 @@ +#include "skinny128.h" +#include "tk_schedule.h" +#include "romulus.h" +#include +#include + +static u8 final_ad_domain (unsigned long long adlen, unsigned long long mlen) { + u8 domain = 0; + u32 leftover; + //Determine which domain bits we need based on the length of the ad + if (adlen == 0) { + domain ^= 0x02; // No message, so only 1 block with padding + } else { + leftover = (u32)(adlen % (2 * BLOCKBYTES)); + if (leftover == 0) { // Even or odd ad length? + domain ^= 0x08; // Even with a full double block at the end + } else if (leftover < BLOCKBYTES) { + domain ^= 0x02; // Odd with a partial single block at the end + } else if (leftover > BLOCKBYTES) { + domain ^= 0x0A; // Even with a partial double block at the end + } + } + //Determine which domain bits we need based on the length of the message + if (mlen == 0) { + domain ^= 0x01; // No message, so only 1 block with padding + } else { + leftover = (unsigned)(mlen % (2 * BLOCKBYTES)); + if (leftover == 0) { // Even or odd message length? + domain ^= 0x04; // Even with a full double block at the end + } else if (leftover < BLOCKBYTES) { + domain ^= 0x01; // Odd with a partial single block at the end + } else if (leftover > BLOCKBYTES) { + domain ^= 0x05; // Even with a partial double block at the end + } + } + return domain; +} + +//Encryption and authentication using Romulus-N1 +int crypto_aead_encrypt + (unsigned char *c, unsigned long long *clen, + const unsigned char *m, unsigned long long mlen, + const unsigned char *ad, unsigned long long adlen, + const unsigned char *nsec, + const unsigned char *npub, + const unsigned char *k) { + + u32 tmp; + u64 tmp_mlen = mlen; + const u8* m_auth = m; + u8 final_domain = 0x30; + skinny_128_384_tks tks; + u8 state[BLOCKBYTES], pad[BLOCKBYTES]; + (void)nsec; + + // ----------------- Initialization ----------------- + *clen = mlen + TAGBYTES; + memset(tks.tk1, 0x00, KEYBYTES); + memset(state, 0x00, BLOCKBYTES); + tks.tk1[0] = 0x01; // Init the 56-bit LFSR counter + // ----------------- Initialization ----------------- + + // ----------------- Process the associated data ----------------- + final_domain ^= final_ad_domain(adlen, mlen); + SET_DOMAIN(tks, 0x28); + while (adlen > 2*BLOCKBYTES) { // Process double blocks but the last + UPDATE_CTR(tks.tk1); + XOR_BLOCK(state, state, ad); + precompute_rtk2_3(tks.rtk2_3, npub, k); + precompute_rtk1(tks.rtk1, tks.tk1); + skinny128_384(state, state, tks.rtk1, tks.rtk2_3); + UPDATE_CTR(tks.tk1); + ad += 2*BLOCKBYTES; + adlen -= 2*BLOCKBYTES; + } + // Pad and process the left-over blocks + if (adlen == 2*BLOCKBYTES) { // Left-over complete double block + UPDATE_CTR(tks.tk1); + XOR_BLOCK(state, state, ad); + precompute_rtk2_3(tks.rtk2_3, ad + BLOCKBYTES, k); + precompute_rtk1(tks.rtk1, tks.tk1); + skinny128_384(state, state, tks.rtk1, tks.rtk2_3); + UPDATE_CTR(tks.tk1); + } else if (adlen > BLOCKBYTES) { // Left-over partial double block + adlen -= BLOCKBYTES; + UPDATE_CTR(tks.tk1); + XOR_BLOCK(state, state, ad); + memcpy(pad, ad + BLOCKBYTES, adlen); + memset(pad + adlen, 0x00, 15 - adlen); + pad[15] = adlen; // Padding + precompute_rtk2_3(tks.rtk2_3, pad, k); + precompute_rtk1(tks.rtk1, tks.tk1); + skinny128_384(state, state, tks.rtk1, tks.rtk2_3); + UPDATE_CTR(tks.tk1); + } else { + SET_DOMAIN(tks, 0x2C); + UPDATE_CTR(tks.tk1); + if (adlen == BLOCKBYTES) { // Left-over complete single block + XOR_BLOCK(state, state, ad); + } else { // Left-over partial single block + for(int i =0; i < (int)adlen; i++) + state[i] ^= ad[i]; + state[15] ^= adlen; // Padding + } + if (tmp_mlen >= BLOCKBYTES) { + precompute_rtk2_3(tks.rtk2_3, m_auth, k); + precompute_rtk1(tks.rtk1, tks.tk1); + skinny128_384(state, state, tks.rtk1, tks.rtk2_3); + if (tmp_mlen > BLOCKBYTES) + UPDATE_CTR(tks.tk1); + tmp_mlen -= BLOCKBYTES; + m_auth += BLOCKBYTES; + } else { + memcpy(pad, m_auth, tmp_mlen); + memset(pad + tmp_mlen, 0x00, BLOCKBYTES - tmp_mlen - 1); + pad[15] = (u8)tmp_mlen; // Padding + precompute_rtk2_3(tks.rtk2_3, pad, k); + precompute_rtk1(tks.rtk1, tks.tk1); + skinny128_384(state, state, tks.rtk1, tks.rtk2_3); + tmp_mlen = 0; + } + } + // Process all message double blocks except the last + SET_DOMAIN(tks, 0x2C); + while (tmp_mlen > 32) { + UPDATE_CTR(tks.tk1); + XOR_BLOCK(state, state, m_auth); + precompute_rtk2_3(tks.rtk2_3, m_auth + BLOCKBYTES, k); + precompute_rtk1(tks.rtk1, tks.tk1); + skinny128_384(state, state, tks.rtk1, tks.rtk2_3); + UPDATE_CTR(tks.tk1); + m_auth += 2 * BLOCKBYTES; + tmp_mlen -= 2 * BLOCKBYTES; + } + // Process the last message double block + if (tmp_mlen == 2 * BLOCKBYTES) { // Last message double block is full + UPDATE_CTR(tks.tk1); + XOR_BLOCK(state, state, m_auth); + precompute_rtk2_3(tks.rtk2_3, m_auth + BLOCKBYTES, k); + precompute_rtk1(tks.rtk1, tks.tk1); + skinny128_384(state, state, tks.rtk1, tks.rtk2_3); + } else if (tmp_mlen > BLOCKBYTES) { // Last message double block is partial + tmp_mlen -= BLOCKBYTES; + UPDATE_CTR(tks.tk1); + XOR_BLOCK(state, state, m_auth); + memcpy(pad, m_auth + BLOCKBYTES, tmp_mlen); + memset(pad + tmp_mlen, 0x00, BLOCKBYTES - tmp_mlen - 1); + pad[15] = (u8)tmp_mlen; // Padding + precompute_rtk2_3(tks.rtk2_3, pad, k); + precompute_rtk1(tks.rtk1, tks.tk1); + skinny128_384(state, state, tks.rtk1, tks.rtk2_3); + } else if (tmp_mlen == BLOCKBYTES) { // Last message single block is full + XOR_BLOCK(state, state, m_auth); + } else if (tmp_mlen > 0) { // Last message single block is partial + for(int i =0; i < (int)tmp_mlen; i++) + state[i] ^= m_auth[i]; + state[15] ^= (u8)tmp_mlen; // Padding + } + // Process the last partial block + SET_DOMAIN(tks, final_domain); + UPDATE_CTR(tks.tk1); + precompute_rtk2_3(tks.rtk2_3, npub, k); + precompute_rtk1(tks.rtk1, tks.tk1); + skinny128_384(state, state, tks.rtk1, tks.rtk2_3); + // ----------------- Process the associated data ----------------- + + + // ----------------- Generate the tag ----------------- + G(state,state); + memcpy(c + mlen, state, TAGBYTES); + // ----------------- Generate the tag ----------------- + + memset(tks.tk1, 0x00, KEYBYTES); + tks.tk1[0] = 0x01; // Init the 56-bit LFSR counter + if (mlen > 0) { + SET_DOMAIN(tks, 0x24); + while (mlen > BLOCKBYTES) { + precompute_rtk1(tks.rtk1, tks.tk1); + skinny128_384(state, state, tks.rtk1, tks.rtk2_3); + RHO(state,c,m); + UPDATE_CTR(tks.tk1); + c += BLOCKBYTES; + m += BLOCKBYTES; + mlen -= BLOCKBYTES; + } + precompute_rtk1(tks.rtk1, tks.tk1); + skinny128_384(state, state, tks.rtk1, tks.rtk2_3); + for(int i = 0; i < (int)mlen; i++) { + tmp = m[i]; // Use of tmp variable in case c = m + c[i] = m[i] ^ (state[i] >> 1) ^ (state[i] & 0x80) ^ (state[i] << 7); + state[i] ^= (u8)tmp; + } + state[15] ^= (u8)mlen; // Padding + } + + return 0; +} + +//Decryption and tag verification using Romulus-N1 +int crypto_aead_decrypt + (unsigned char *m, unsigned long long *mlen, + unsigned char *nsec, + const unsigned char *c, unsigned long long clen, + const unsigned char *ad, unsigned long long adlen, + const unsigned char *npub, + const unsigned char *k) { + + u32 tmp; + u64 tmp_mlen; + u8 final_domain = 0x30; + u8* m_auth = m; + const u8* c_tmp = c; + skinny_128_384_tks tks; + u8 state[BLOCKBYTES], pad[BLOCKBYTES]; + (void)nsec; + + if (clen < TAGBYTES) + return -1; + + // ----------------- Initialization ----------------- + *mlen = clen - TAGBYTES; + memset(tks.tk1, 0x00, KEYBYTES); + tks.tk1[0] = 0x01; // Init the 56-bit LFSR counter + // ----------------- Initialization ----------------- + + // ----------------- Process the ciphertext ----------------- + clen -= TAGBYTES; + memcpy(state, c + clen, TAGBYTES); + tmp_mlen = clen; + if (tmp_mlen > 0) { + SET_DOMAIN(tks, 0x24); + precompute_rtk2_3(tks.rtk2_3, npub, k); + while (tmp_mlen > BLOCKBYTES) { + precompute_rtk1(tks.rtk1, tks.tk1); + skinny128_384(state, state, tks.rtk1, tks.rtk2_3); + RHO_INV(state, c, m); + UPDATE_CTR(tks.tk1); + c += BLOCKBYTES; + m += BLOCKBYTES; + tmp_mlen -= BLOCKBYTES; + } + precompute_rtk1(tks.rtk1, tks.tk1); + skinny128_384(state, state, tks.rtk1, tks.rtk2_3); + for(int i = 0; i < (int)tmp_mlen; i++) { + m[i] = c[i] ^ (state[i] >> 1) ^ (state[i] & 0x80) ^ (state[i] << 7); + state[i] ^= m[i]; + } + state[15] ^= (u8)tmp_mlen; // Padding + } + // ----------------- Process the ciphertext ----------------- + + // ----------------- Process the associated data ----------------- + memset(tks.tk1, 0x00, KEYBYTES); + tks.tk1[0] = 0x01; // Init the 56-bit LFSR counter + memset(state, 0x00, BLOCKBYTES); + final_domain ^= final_ad_domain(adlen, clen); + SET_DOMAIN(tks, 0x28); + while (adlen > 2*BLOCKBYTES) { // Process double blocks but the last + UPDATE_CTR(tks.tk1); + XOR_BLOCK(state, state, ad); + precompute_rtk2_3(tks.rtk2_3, ad + BLOCKBYTES, k); + precompute_rtk1(tks.rtk1, tks.tk1); + skinny128_384(state, state, tks.rtk1, tks.rtk2_3); + UPDATE_CTR(tks.tk1); + ad += 2*BLOCKBYTES; + adlen -= 2*BLOCKBYTES; + } + // Pad and process the left-over blocks + if (adlen == 2*BLOCKBYTES) { // Left-over complete double block + UPDATE_CTR(tks.tk1); + XOR_BLOCK(state, state, ad); + precompute_rtk2_3(tks.rtk2_3, ad + BLOCKBYTES, k); + precompute_rtk1(tks.rtk1, tks.tk1); + skinny128_384(state, state, tks.rtk1, tks.rtk2_3); + UPDATE_CTR(tks.tk1); + } else if (adlen > BLOCKBYTES) { // Left-over partial double block + adlen -= BLOCKBYTES; + UPDATE_CTR(tks.tk1); + XOR_BLOCK(state, state, ad); + memcpy(pad, ad + BLOCKBYTES, adlen); + memset(pad + adlen, 0x00, 15 - adlen); + pad[15] = adlen; // Padding + precompute_rtk2_3(tks.rtk2_3, pad, k); + precompute_rtk1(tks.rtk1, tks.tk1); + skinny128_384(state, state, tks.rtk1, tks.rtk2_3); + UPDATE_CTR(tks.tk1); + } else { + SET_DOMAIN(tks, 0x2C); + UPDATE_CTR(tks.tk1); + if (adlen == BLOCKBYTES) { // Left-over complete single block + XOR_BLOCK(state, state, ad); + } else { // Left-over partial single block + for(int i =0; i < (int)adlen; i++) + state[i] ^= ad[i]; + state[15] ^= adlen; // Padding + } + if (clen >= BLOCKBYTES) { + precompute_rtk2_3(tks.rtk2_3, m_auth, k); + precompute_rtk1(tks.rtk1, tks.tk1); + skinny128_384(state, state, tks.rtk1, tks.rtk2_3); + if (clen > BLOCKBYTES) + UPDATE_CTR(tks.tk1); + m_auth += BLOCKBYTES; + clen -= BLOCKBYTES; + } else { + memcpy(pad, m_auth, clen); + memset(pad + clen, 0x00, BLOCKBYTES - clen - 1); + pad[15] = (u8)clen; // Padding + precompute_rtk2_3(tks.rtk2_3, pad, k); + precompute_rtk1(tks.rtk1, tks.tk1); + skinny128_384(state, state, tks.rtk1, tks.rtk2_3); + clen = 0; + } + } + // Process all message double blocks except the last + SET_DOMAIN(tks, 0x2C); + while (clen > 32) { + UPDATE_CTR(tks.tk1); + XOR_BLOCK(state, state, m_auth); + precompute_rtk2_3(tks.rtk2_3, m_auth + BLOCKBYTES, k); + precompute_rtk1(tks.rtk1, tks.tk1); + skinny128_384(state, state, tks.rtk1, tks.rtk2_3); + UPDATE_CTR(tks.tk1); + m_auth += 2 * BLOCKBYTES; + clen -= 2 * BLOCKBYTES; + } + // Process the last message double block + if (clen == 2 * BLOCKBYTES) { // Last message double block is full + UPDATE_CTR(tks.tk1); + XOR_BLOCK(state, state, m_auth); + precompute_rtk2_3(tks.rtk2_3, m_auth + BLOCKBYTES, k); + precompute_rtk1(tks.rtk1, tks.tk1); + skinny128_384(state, state, tks.rtk1, tks.rtk2_3); + } else if (clen > BLOCKBYTES) { // Last message double block is partial + clen -= BLOCKBYTES; + UPDATE_CTR(tks.tk1); + XOR_BLOCK(state, state, m_auth); + memcpy(pad, m_auth + BLOCKBYTES, clen); + memset(pad + clen, 0x00, BLOCKBYTES - clen - 1); + pad[15] = (u8)clen; // Padding + precompute_rtk2_3(tks.rtk2_3, pad, k); + precompute_rtk1(tks.rtk1, tks.tk1); + skinny128_384(state, state, tks.rtk1, tks.rtk2_3); + } else if (clen == BLOCKBYTES) { // Last message single block is full + XOR_BLOCK(state, state, m_auth); + } else if (clen > 0) { // Last message single block is partial + for(int i =0; i < (int)clen; i++) + state[i] ^= m[i]; + state[15] ^= (u8)clen; // Padding + } + // Process the last partial block + SET_DOMAIN(tks, final_domain); + UPDATE_CTR(tks.tk1); + precompute_rtk2_3(tks.rtk2_3, npub, k); + precompute_rtk1(tks.rtk1, tks.tk1); + skinny128_384(state, state, tks.rtk1, tks.rtk2_3); + // ----------------- Process the associated data ----------------- + + // ----------------- Generate and check the tag ----------------- + G(state,state); + tmp = 0; + for(int i = 0; i < TAGBYTES; i++) + tmp |= state[i] ^ c_tmp[*mlen+i]; //constant-time tag comparison + // ----------------- Generate and check the tag ----------------- + + return tmp; +} \ No newline at end of file diff --git a/romulus/Implementations/crypto_aead/romulusm1/opt32/romulus.h b/romulus/Implementations/crypto_aead/romulusm1/opt32/romulus.h new file mode 100644 index 0000000..b254e2a --- /dev/null +++ b/romulus/Implementations/crypto_aead/romulusm1/opt32/romulus.h @@ -0,0 +1,69 @@ +#ifndef ROMULUSN1_H_ +#define ROMULUSN1_H_ + +#include "skinny128.h" + +typedef unsigned char u8; +typedef unsigned int u32; +typedef unsigned int u64; +typedef struct { + u8 tk1[16]; //to manipulate tk1 byte-wise + u32 rtk1[4*16]; //to avoid tk schedule recomputations + u32 rtk2_3[4*SKINNY128_384_ROUNDS]; //all round tweakeys +} skinny_128_384_tks; + +#define TAGBYTES 16 +#define KEYBYTES 16 +#define BLOCKBYTES 16 + +#define SET_DOMAIN(tks, domain) ((tks).tk1[7] = (domain)) + +//G as defined in the Romulus specification in a 32-bit word-wise manner +#define G(x,y) ({ \ + tmp = ((u32*)(y))[0]; \ + ((u32*)(x))[0] = (tmp >> 1 & 0x7f7f7f7f) ^ ((tmp ^ (tmp << 7)) & 0x80808080); \ + tmp = ((u32*)(y))[1]; \ + ((u32*)(x))[1] = (tmp >> 1 & 0x7f7f7f7f) ^ ((tmp ^ (tmp << 7)) & 0x80808080); \ + tmp = ((u32*)(y))[2]; \ + ((u32*)(x))[2] = (tmp >> 1 & 0x7f7f7f7f) ^ ((tmp ^ (tmp << 7)) & 0x80808080); \ + tmp = ((u32*)(y))[3]; \ + ((u32*)(x))[3] = (tmp >> 1 & 0x7f7f7f7f) ^ ((tmp ^ (tmp << 7)) & 0x80808080); \ +}) + +//update the counter in tk1 in a 32-bit word-wise manner +#define UPDATE_CTR(tk1) ({ \ + tmp = ((u32*)(tk1))[1]; \ + ((u32*)(tk1))[1] = (tmp << 1) & 0x00ffffff; \ + ((u32*)(tk1))[1] |= (((u32*)(tk1))[0] >> 31); \ + ((u32*)(tk1))[1] |= tmp & 0xff000000; \ + ((u32*)(tk1))[0] <<= 1; \ + if ((tmp >> 23) & 0x01) \ + ((u32*)(tk1))[0] ^= 0x95; \ +}) + +//x <- y ^ z for 128-bit blocks +#define XOR_BLOCK(x,y,z) ({ \ + ((u32*)(x))[0] = ((u32*)(y))[0] ^ ((u32*)(z))[0]; \ + ((u32*)(x))[1] = ((u32*)(y))[1] ^ ((u32*)(z))[1]; \ + ((u32*)(x))[2] = ((u32*)(y))[2] ^ ((u32*)(z))[2]; \ + ((u32*)(x))[3] = ((u32*)(y))[3] ^ ((u32*)(z))[3]; \ +}) + + +//Rho as defined in the Romulus specification +//use pad as a tmp variable in case y = z +#define RHO(x,y,z) ({ \ + G(pad,x); \ + XOR_BLOCK(y, pad, z); \ + XOR_BLOCK(x, x, z); \ +}) + +//Rho inverse as defined in the Romulus specification +//use pad as a tmp variable in case y = z +#define RHO_INV(x, y, z) ({ \ + G(pad, x); \ + XOR_BLOCK(z, pad, y); \ + XOR_BLOCK(x, x, z); \ +}) + +#endif // ROMULUSN1_H_ \ No newline at end of file diff --git a/romulus/Implementations/crypto_aead/romulusm1/opt32/skinny128.c b/romulus/Implementations/crypto_aead/romulusm1/opt32/skinny128.c new file mode 100644 index 0000000..87718e3 --- /dev/null +++ b/romulus/Implementations/crypto_aead/romulusm1/opt32/skinny128.c @@ -0,0 +1,110 @@ +/****************************************************************************** +* Constant-time implementation of the SKINNY tweakable block ciphers. +* +* This implementation doesn't compute the ShiftRows operation. Some masks and +* shifts are applied during the MixColumns operation so that the proper bits +* are XORed together. Moreover, the row permutation within the MixColumns +* is omitted, as well as the bit permutation at the end of the Sbox. The rows +* are synchronized with the classical after only 4 rounds. Therefore, this +* implementation relies on a "QUADRUPLE_ROUND" routine. +* +* The Sbox computation takes advantage of some symmetry in the 8-bit Sbox to +* turn it into a 4-bit S-box computation. Although the last bit permutation +* within the Sbox is not computed, the bit ordering is synchronized with the +* classical representation after 2 calls. +* +* @author Alexandre Adomnicai, Nanyang Technological University, +* alexandre.adomnicai@ntu.edu.sg +* +* @date May 2020 +******************************************************************************/ +#include +#include +#include "skinny128.h" +#include "tk_schedule.h" + +/****************************************************************************** +* The MixColumns computation for rounds i such that (i % 4) == 0 +******************************************************************************/ +void mixcolumns_0(u32* state) { + u32 tmp; + for(int i = 0; i < 4; i++) { + tmp = ROR(state[i],24) & 0x0c0c0c0c; + state[i] ^= ROR(tmp,30); + tmp = ROR(state[i],16) & 0xc0c0c0c0; + state[i] ^= ROR(tmp,4); + tmp = ROR(state[i],8) & 0x0c0c0c0c; + state[i] ^= ROR(tmp,2); + } +} + +/****************************************************************************** +* The MixColumns computation for rounds i such that (i % 4) == 1 +******************************************************************************/ +void mixcolumns_1(u32* state) { + u32 tmp; + for(int i = 0; i < 4; i++) { + tmp = ROR(state[i],16) & 0x30303030; + state[i] ^= ROR(tmp,30); + tmp = state[i] & 0x03030303; + state[i] ^= ROR(tmp,28); + tmp = ROR(state[i],16) & 0x30303030; + state[i] ^= ROR(tmp,2); + } +} + +/****************************************************************************** +* The MixColumns computation for rounds i such that (i % 4) == 2 +******************************************************************************/ +void mixcolumns_2(u32* state) { + u32 tmp; + for(int i = 0; i < 4; i++) { + tmp = ROR(state[i],8) & 0xc0c0c0c0; + state[i] ^= ROR(tmp,6); + tmp = ROR(state[i],16) & 0x0c0c0c0c; + state[i] ^= ROR(tmp,28); + tmp = ROR(state[i],24) & 0xc0c0c0c0; + state[i] ^= ROR(tmp,2); + } +} + +/****************************************************************************** +* The MixColumns computation for rounds i such that (i % 4) == 3 +******************************************************************************/ +void mixcolumns_3(u32* state) { + u32 tmp; + for(int i = 0; i < 4; i++) { + tmp = state[i] & 0x03030303; + state[i] ^= ROR(tmp,30); + tmp = state[i] & 0x30303030; + state[i] ^= ROR(tmp,4); + tmp = state[i] & 0x03030303; + state[i] ^= ROR(tmp,26); + } +} + +/****************************************************************************** +* Encryption of a single block without any operation mode using SKINNY-128-384. +* RTK1 and RTK2_3 are given separately to take advantage of the fact that +* TK2 and TK3 remains the same through the entire data encryption/decryption. +******************************************************************************/ +void skinny128_384(u8* ctext, const u8* ptext, const u32* rtk1, const u32* rtk2_3) { + u32 tmp; // used in SWAPMOVE macro + u32 state[4]; // 128-bit state + packing(state, ptext); // from byte to bitsliced representation + QUADRUPLE_ROUND(state, rtk1, rtk2_3); + QUADRUPLE_ROUND(state, rtk1+16, rtk2_3+16); + QUADRUPLE_ROUND(state, rtk1+32, rtk2_3+32); + QUADRUPLE_ROUND(state, rtk1+48, rtk2_3+48); + QUADRUPLE_ROUND(state, rtk1, rtk2_3+64); + QUADRUPLE_ROUND(state, rtk1+16, rtk2_3+80); + QUADRUPLE_ROUND(state, rtk1+32, rtk2_3+96); + QUADRUPLE_ROUND(state, rtk1+48, rtk2_3+112); + QUADRUPLE_ROUND(state, rtk1, rtk2_3+128); + QUADRUPLE_ROUND(state, rtk1+16, rtk2_3+144); + QUADRUPLE_ROUND(state, rtk1+32, rtk2_3+160); + QUADRUPLE_ROUND(state, rtk1+48, rtk2_3+176); + QUADRUPLE_ROUND(state, rtk1, rtk2_3+192); + QUADRUPLE_ROUND(state, rtk1+16, rtk2_3+208); + unpacking(ctext, state); // from bitsliced to byte representation +} \ No newline at end of file diff --git a/romulus/Implementations/crypto_aead/romulusm1/opt32/skinny128.h b/romulus/Implementations/crypto_aead/romulusm1/opt32/skinny128.h new file mode 100644 index 0000000..dab6338 --- /dev/null +++ b/romulus/Implementations/crypto_aead/romulusm1/opt32/skinny128.h @@ -0,0 +1,94 @@ +#ifndef SKINNY128_H_ +#define SKINNY128_H_ + +typedef unsigned char u8; +typedef unsigned int u32; + +#define SKINNY128_384_ROUNDS 56 + +#define QUADRUPLE_ROUND(state, rtk1, rtk2_3) ({ \ + state[3] ^= ~(state[0] | state[1]); \ + SWAPMOVE(state[2], state[1], 0x55555555, 1); \ + SWAPMOVE(state[3], state[2], 0x55555555, 1); \ + state[1] ^= ~(state[2] | state[3]); \ + SWAPMOVE(state[1], state[0], 0x55555555, 1); \ + SWAPMOVE(state[0], state[3], 0x55555555, 1); \ + state[3] ^= ~(state[0] | state[1]); \ + SWAPMOVE(state[2], state[1], 0x55555555, 1); \ + SWAPMOVE(state[3], state[2], 0x55555555, 1); \ + state[1] ^= (state[2] | state[3]); \ + SWAPMOVE(state[3], state[0], 0x55555555, 0); \ + state[0] ^= (rtk1)[0]; \ + state[1] ^= (rtk1)[1]; \ + state[2] ^= (rtk1)[2]; \ + state[3] ^= (rtk1)[3]; \ + state[0] ^= (rtk2_3)[0]; \ + state[1] ^= (rtk2_3)[1]; \ + state[2] ^= (rtk2_3)[2]; \ + state[3] ^= (rtk2_3)[3]; \ + mixcolumns_0(state); \ + state[1] ^= ~(state[2] | state[3]); \ + SWAPMOVE(state[1], state[0], 0x55555555, 1); \ + SWAPMOVE(state[0], state[3], 0x55555555, 1); \ + state[3] ^= ~(state[0] | state[1]); \ + SWAPMOVE(state[2], state[1], 0x55555555, 1); \ + SWAPMOVE(state[3], state[2], 0x55555555, 1); \ + state[1] ^= ~(state[2] | state[3]); \ + SWAPMOVE(state[1], state[0], 0x55555555, 1); \ + SWAPMOVE(state[0], state[3], 0x55555555, 1); \ + state[3] ^= (state[0] | state[1]); \ + SWAPMOVE(state[1], state[2], 0x55555555, 0); \ + state[0] ^= (rtk1)[4]; \ + state[1] ^= (rtk1)[5]; \ + state[2] ^= (rtk1)[6]; \ + state[3] ^= (rtk1)[7]; \ + state[0] ^= (rtk2_3)[4]; \ + state[1] ^= (rtk2_3)[5]; \ + state[2] ^= (rtk2_3)[6]; \ + state[3] ^= (rtk2_3)[7]; \ + mixcolumns_1(state); \ + state[3] ^= ~(state[0] | state[1]); \ + SWAPMOVE(state[2], state[1], 0x55555555, 1); \ + SWAPMOVE(state[3], state[2], 0x55555555, 1); \ + state[1] ^= ~(state[2] | state[3]); \ + SWAPMOVE(state[1], state[0], 0x55555555, 1); \ + SWAPMOVE(state[0], state[3], 0x55555555, 1); \ + state[3] ^= ~(state[0] | state[1]); \ + SWAPMOVE(state[2], state[1], 0x55555555, 1); \ + SWAPMOVE(state[3], state[2], 0x55555555, 1); \ + state[1] ^= (state[2] | state[3]); \ + SWAPMOVE(state[3], state[0], 0x55555555, 0); \ + state[0] ^= (rtk1)[8]; \ + state[1] ^= (rtk1)[9]; \ + state[2] ^= (rtk1)[10]; \ + state[3] ^= (rtk1)[11]; \ + state[0] ^= (rtk2_3)[8]; \ + state[1] ^= (rtk2_3)[9]; \ + state[2] ^= (rtk2_3)[10]; \ + state[3] ^= (rtk2_3)[11]; \ + mixcolumns_2(state); \ + state[1] ^= ~(state[2] | state[3]); \ + SWAPMOVE(state[1], state[0], 0x55555555, 1); \ + SWAPMOVE(state[0], state[3], 0x55555555, 1); \ + state[3] ^= ~(state[0] | state[1]); \ + SWAPMOVE(state[2], state[1], 0x55555555, 1); \ + SWAPMOVE(state[3], state[2], 0x55555555, 1); \ + state[1] ^= ~(state[2] | state[3]); \ + SWAPMOVE(state[1], state[0], 0x55555555, 1); \ + SWAPMOVE(state[0], state[3], 0x55555555, 1); \ + state[3] ^= (state[0] | state[1]); \ + SWAPMOVE(state[1], state[2], 0x55555555, 0); \ + state[0] ^= (rtk1)[12]; \ + state[1] ^= (rtk1)[13]; \ + state[2] ^= (rtk1)[14]; \ + state[3] ^= (rtk1)[15]; \ + state[0] ^= (rtk2_3)[12]; \ + state[1] ^= (rtk2_3)[13]; \ + state[2] ^= (rtk2_3)[14]; \ + state[3] ^= (rtk2_3)[15]; \ + mixcolumns_3(state); \ +}) + +void skinny128_384(u8* ctext, const u8* ptext, const u32* rtk1, const u32* rtk2_3); + +#endif // SKINNY128_H_ \ No newline at end of file diff --git a/romulus/Implementations/crypto_aead/romulusm1/opt32/tk_schedule.c b/romulus/Implementations/crypto_aead/romulusm1/opt32/tk_schedule.c new file mode 100644 index 0000000..c818cf2 --- /dev/null +++ b/romulus/Implementations/crypto_aead/romulusm1/opt32/tk_schedule.c @@ -0,0 +1,379 @@ +/****************************************************************************** +* Implementation of the SKINNY tweakey schedule to match fixslicing. +* +* @author Alexandre Adomnicai, Nanyang Technological University, +* alexandre.adomnicai@ntu.edu.sg +* +* @date May 2020 +******************************************************************************/ +#include +#include //for memcmp +#include "tk_schedule.h" +#include "skinny128.h" + +typedef unsigned char u8; +typedef unsigned int u32; + +/****************************************************************************** +* The round constants according to the new representation. +******************************************************************************/ +u32 rconst_32_bs[224] = { + 0x00000004, 0xffffffbf, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x10000100, 0xfffffeff, 0x44000000, 0xfbffffff, 0x00000000, 0x04000000, + 0x00100000, 0x00100000, 0x00100001, 0xffefffff, 0x00440000, 0xffafffff, + 0x00400000, 0x00400000, 0x01000000, 0x01000000, 0x01401000, 0xffbfffff, + 0x01004000, 0xfefffbff, 0x00000400, 0x00000400, 0x00000010, 0x00000000, + 0x00010410, 0xfffffbef, 0x00000054, 0xffffffaf, 0x00000000, 0x00000040, + 0x00000100, 0x00000100, 0x10000140, 0xfffffeff, 0x44000000, 0xfffffeff, + 0x04000000, 0x04000000, 0x00100000, 0x00100000, 0x04000001, 0xfbffffff, + 0x00140000, 0xffafffff, 0x00400000, 0x00000000, 0x00000000, 0x00000000, + 0x01401000, 0xfebfffff, 0x01004400, 0xfffffbff, 0x00000000, 0x00000400, + 0x00000010, 0x00000010, 0x00010010, 0xffffffff, 0x00000004, 0xffffffaf, + 0x00000040, 0x00000040, 0x00000100, 0x00000000, 0x10000140, 0xffffffbf, + 0x40000100, 0xfbfffeff, 0x00000000, 0x04000000, 0x00100000, 0x00000000, + 0x04100001, 0xffefffff, 0x00440000, 0xffefffff, 0x00000000, 0x00400000, + 0x01000000, 0x01000000, 0x00401000, 0xffffffff, 0x00004000, 0xfeffffff, + 0x00000400, 0x00000000, 0x00000000, 0x00000000, 0x00010400, 0xfffffbff, + 0x00000014, 0xffffffbf, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x10000100, 0xffffffff, 0x40000000, 0xfbffffff, 0x00000000, 0x04000000, + 0x00100000, 0x00000000, 0x00100001, 0xffefffff, 0x00440000, 0xffafffff, + 0x00000000, 0x00400000, 0x01000000, 0x01000000, 0x01401000, 0xffffffff, + 0x00004000, 0xfeffffff, 0x00000400, 0x00000400, 0x00000010, 0x00000000, + 0x00010400, 0xfffffbff, 0x00000014, 0xffffffaf, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x10000140, 0xfffffeff, 0x44000000, 0xffffffff, + 0x00000000, 0x04000000, 0x00100000, 0x00100000, 0x00000001, 0xffefffff, + 0x00440000, 0xffafffff, 0x00400000, 0x00000000, 0x00000000, 0x01000000, + 0x01401000, 0xffbfffff, 0x01004000, 0xfffffbff, 0x00000400, 0x00000400, + 0x00000010, 0x00000000, 0x00010010, 0xfffffbff, 0x00000014, 0xffffffef, + 0x00000000, 0x00000040, 0x00000100, 0x00000000, 0x10000040, 0xfffffeff, + 0x44000000, 0xfffffeff, 0x00000000, 0x00000000, 0x00000000, 0x00100000, + 0x04000001, 0xffffffff, 0x00040000, 0xffffffff, 0x00400000, 0x00000000, + 0x00000000, 0x00000000, 0x00001000, 0xfebfffff, 0x01004400, 0xffffffff, + 0x00000000, 0x00000000, 0x00000000, 0x00000010, 0x00010000, 0xffffffff, + 0x00000004, 0xffffffbf, 0x00000040, 0x00000000, 0x00000000, 0x00000000, + 0x10000100, 0xfffffebf, 0x44000100, 0xffffffff, 0x00000000, 0x04000000, + 0x00100000, 0x00100000, 0x00000001, 0xffffffff, 0x00040000, 0xffafffff, + 0x00400000, 0x00000000, 0x00000000, 0x00000000, 0x01401000, 0xffbfffff, + 0x01004000, 0xfffffbff, 0x00000000, 0x00000400, 0x00000010, 0x00000000, + 0x00010010, 0xffffffff +}; + +/****************************************************************************** +* Pack the input into the bitsliced representation +* 24 28 56 60 88 92 120 124 | ... | 0 4 32 36 64 68 96 100 +* 25 29 57 61 89 93 121 125 | ... | 1 5 33 37 65 69 97 101 +* 26 30 58 62 90 94 122 126 | ... | 2 6 34 38 66 70 98 102 +* 27 31 59 63 91 95 123 127 | ... | 3 7 35 39 67 71 99 103 +******************************************************************************/ +void packing(u32* out, const u8* in) { + u32 tmp; + LE_LOAD(out, in); + LE_LOAD(out + 1, in + 8); + LE_LOAD(out + 2, in + 4); + LE_LOAD(out + 3, in + 12); + SWAPMOVE(out[0], out[0], 0x0a0a0a0a, 3); + SWAPMOVE(out[1], out[1], 0x0a0a0a0a, 3); + SWAPMOVE(out[2], out[2], 0x0a0a0a0a, 3); + SWAPMOVE(out[3], out[3], 0x0a0a0a0a, 3); + SWAPMOVE(out[2], out[0], 0x30303030, 2); + SWAPMOVE(out[1], out[0], 0x0c0c0c0c, 4); + SWAPMOVE(out[3], out[0], 0x03030303, 6); + SWAPMOVE(out[1], out[2], 0x0c0c0c0c, 2); + SWAPMOVE(out[3], out[2], 0x03030303, 4); + SWAPMOVE(out[3], out[1], 0x03030303, 2); +} + +/****************************************************************************** +* Unpack the input to a byte-wise representation +******************************************************************************/ +void unpacking(u8* out, u32 *in) { + u32 tmp; + SWAPMOVE(in[3], in[1], 0x03030303, 2); + SWAPMOVE(in[3], in[2], 0x03030303, 4); + SWAPMOVE(in[1], in[2], 0x0c0c0c0c, 2); + SWAPMOVE(in[3], in[0], 0x03030303, 6); + SWAPMOVE(in[1], in[0], 0x0c0c0c0c, 4); + SWAPMOVE(in[2], in[0], 0x30303030, 2); + SWAPMOVE(in[0], in[0], 0x0a0a0a0a, 3); + SWAPMOVE(in[1], in[1], 0x0a0a0a0a, 3); + SWAPMOVE(in[2], in[2], 0x0a0a0a0a, 3); + SWAPMOVE(in[3], in[3], 0x0a0a0a0a, 3); + LE_STORE(out, in[0]); + LE_STORE(out + 8, in[1]); + LE_STORE(out + 4, in[2]); + LE_STORE(out + 12, in[3]); +} + +/****************************************************************************** +* 0 4 1 5 +* 1 5 ---> 2 6 +* 2 6 3 7 +* 3 7 4 0 +******************************************************************************/ +void lfsr2_bs(u32* tk) { + u32 tmp; + tmp = tk[0] ^ (tk[2] & 0xaaaaaaaa); + tmp = ((tmp & 0xaaaaaaaa) >> 1) | ((tmp << 1) & 0xaaaaaaaa); + tk[0] = tk[1]; + tk[1] = tk[2]; + tk[2] = tk[3]; + tk[3] = tmp; +} + +/****************************************************************************** +* 0 4 7 3 +* 1 5 ---> 0 4 +* 2 6 1 5 +* 3 7 2 6 +******************************************************************************/ +void lfsr3_bs(u32* tk) { + u32 tmp; + tmp = tk[3] ^ ((tk[1] & 0xaaaaaaaa) >> 1); + tmp = ((tmp & 0xaaaaaaaa) >> 1) | ((tmp << 1) & 0xaaaaaaaa); + tk[3] = tk[2]; + tk[2] = tk[1]; + tk[1] = tk[0]; + tk[0] = tmp; +} + +/****************************************************************************** +* Apply the permutation in a bitsliced manner, twice +******************************************************************************/ +void permute_tk_2(u32* tk) { + u32 tmp; + for(int i =0; i < 4; i++) { + tmp = tk[i]; + tk[i] = ROR(tmp,14) & 0xcc00cc00; + tk[i] |= (tmp & 0x000000ff) << 16; + tk[i] |= (tmp & 0xcc000000)>> 2; + tk[i] |= (tmp & 0x0033cc00) >> 8; + tk[i] |= (tmp & 0x00cc0000) >>18; + } +} + +/****************************************************************************** +* Apply the permutation in a bitsliced manner, 4 times +******************************************************************************/ +void permute_tk_4(u32* tk) { + u32 tmp; + for(int i =0; i < 4; i++) { + tmp = tk[i]; + tk[i] = ROR(tmp,22) & 0xcc0000cc; + tk[i] |= ROR(tmp,16) & 0x3300cc00; + tk[i] |= ROR(tmp, 24) & 0x00cc3300; + tk[i] |= (tmp & 0x00cc00cc) >> 2; + } +} + +/****************************************************************************** +* Apply the permutation in a bitsliced manner, 6 times +******************************************************************************/ +void permute_tk_6(u32* tk) { + u32 tmp; + for(int i =0; i < 4; i++) { + tmp = tk[i]; + tk[i] = ROR(tmp,6) & 0xcccc0000; + tk[i] |= ROR(tmp,24) & 0x330000cc; + tk[i] |= ROR(tmp,10) & 0x3333; + tk[i] |= (tmp & 0xcc) << 14; + tk[i] |= (tmp & 0x3300) << 2; + } +} + +/****************************************************************************** +* Apply the permutation in a bitsliced manner, 8 times +******************************************************************************/ +void permute_tk_8(u32* tk) { + u32 tmp; + for(int i =0; i < 4; i++) { + tmp = tk[i]; + tk[i] = ROR(tmp,24) & 0xcc000033; + tk[i] |= ROR(tmp,8) & 0x33cc0000; + tk[i] |= ROR(tmp,26) & 0x00333300; + tk[i] |= (tmp & 0x00333300) >> 6; + } +} + +/****************************************************************************** +* Apply the permutation in a bitsliced manner, 10 times +******************************************************************************/ +void permute_tk_10(u32* tk) { + u32 tmp; + for(int i =0; i < 4; i++) { + tmp = tk[i]; + tk[i] = ROR(tmp,8) & 0xcc330000; + tk[i] |= ROR(tmp,26) & 0x33000033; + tk[i] |= ROR(tmp,22) & 0x00cccc00; + tk[i] |= (tmp & 0x00330000) >> 14; + tk[i] |= (tmp & 0xcc00) >> 2; + } +} + +/****************************************************************************** +* Apply the permutation in a bitsliced manner, 12 times +******************************************************************************/ +void permute_tk_12(u32* tk) { + u32 tmp; + for(int i =0; i < 4; i++) { + tmp = tk[i]; + tk[i] = ROR(tmp,8) & 0xcc33; + tk[i] |= ROR(tmp,30) & 0x00cc00cc; + tk[i] |= ROR(tmp,10) & 0x33330000; + tk[i] |= ROR(tmp,16) & 0xcc003300; + } +} + +/****************************************************************************** +* Apply the permutation in a bitsliced manner, 14 times +******************************************************************************/ +void permute_tk_14(u32* tk) { + u32 tmp; + for(int i =0; i < 4; i++) { + tmp = tk[i]; + tk[i] = ROR(tmp,24) & 0x0033cc00; + tk[i] |= ROR(tmp,14) & 0x00cc0000; + tk[i] |= ROR(tmp,30) & 0xcc000000; + tk[i] |= ROR(tmp,16) & 0x000000ff; + tk[i] |= ROR(tmp,18) & 0x33003300; + } +} + +/****************************************************************************** +* Precompute all LFSRs on TK2 +******************************************************************************/ +void precompute_lfsr_tk2(u32* tk, const u8* key, const int rounds) { + u32 tk2[4]; + packing(tk2, key); + memcpy(tk, tk2, 16); + for(int i = 0 ; i < rounds; i+=2) { + lfsr2_bs(tk2); + memcpy(tk+i*4+4, tk2, 16); + } +} + +/****************************************************************************** +* Precompute all LFSRs on TK3 +******************************************************************************/ +void precompute_lfsr_tk3(u32* tk, const u8* key, const int rounds) { + u32 tk3[4]; + packing(tk3, key); + tk[0] ^= tk3[0]; + tk[1] ^= tk3[1]; + tk[2] ^= tk3[2]; + tk[3] ^= tk3[3]; + for(int i = 0 ; i < rounds; i+=2) { + lfsr3_bs(tk3); + tk[i*4+4] ^= tk3[0]; + tk[i*4+5] ^= tk3[1]; + tk[i*4+6] ^= tk3[2]; + tk[i*4+7] ^= tk3[3]; + } +} + +/****************************************************************************** +* XOR TK with TK1 before applying the permutations. +* The key is then rearranged to match the barrel shiftrows representation. +******************************************************************************/ +void permute_tk(u32* tk, const u8* key, const int rounds) { + u32 test; + u32 tk1[4], tmp[4]; + packing(tk1, key); + memcpy(tmp, tk, 16); + tmp[0] ^= tk1[0]; + tmp[1] ^= tk1[1]; + tmp[2] ^= tk1[2]; + tmp[3] ^= tk1[3]; + for(int i = 0 ; i < rounds; i += 8) { + test = (i % 16 < 8) ? 1 : 0; //to apply the right power of P + tk[i*4] = tmp[2] & 0xf0f0f0f0; + tk[i*4+1] = tmp[3] & 0xf0f0f0f0; + tk[i*4+2] = tmp[0] & 0xf0f0f0f0; + tk[i*4+3] = tmp[1] & 0xf0f0f0f0; + memcpy(tmp, tk+i*4+4, 16); + XOR_BLOCKS(tmp, tk1); + if (test) + permute_tk_2(tmp); // applies P^2 + else + permute_tk_10(tmp); // applies P^10 + tk[i*4+4] = ROR(tmp[0],26) & 0xc3c3c3c3; + tk[i*4+5] = ROR(tmp[1],26) & 0xc3c3c3c3; + tk[i*4+6] = ROR(tmp[2],26) & 0xc3c3c3c3; + tk[i*4+7] = ROR(tmp[3],26) & 0xc3c3c3c3; + tk[i*4+8] = ROR(tmp[2],28) & 0x03030303; + tk[i*4+8] |= ROR(tmp[2],12) & 0x0c0c0c0c; + tk[i*4+9] = ROR(tmp[3],28) & 0x03030303; + tk[i*4+9] |= ROR(tmp[3],12) & 0x0c0c0c0c; + tk[i*4+10] = ROR(tmp[0],28) & 0x03030303; + tk[i*4+10] |= ROR(tmp[0],12) & 0x0c0c0c0c; + tk[i*4+11] = ROR(tmp[1],28) & 0x03030303; + tk[i*4+11] |= ROR(tmp[1],12) & 0x0c0c0c0c; + memcpy(tmp, tk+i*4+12, 16); + XOR_BLOCKS(tmp, tk1); + if (test) + permute_tk_4(tmp); // applies P^4 + else + permute_tk_12(tmp); // applies P^12 + for(int j = 0; j < 4; j++) { + tk[i*4+12+j] = ROR(tmp[j],14) & 0x30303030; + tk[i*4+12+j] |= ROR(tmp[j],6) & 0x0c0c0c0c; + } + tk[i*4+16] = ROR(tmp[2], 16) & 0xf0f0f0f0; + tk[i*4+17] = ROR(tmp[3], 16) & 0xf0f0f0f0; + tk[i*4+18] = ROR(tmp[0], 16) & 0xf0f0f0f0; + tk[i*4+19] = ROR(tmp[1], 16) & 0xf0f0f0f0; + memcpy(tmp, tk+i*4+20, 16); + XOR_BLOCKS(tmp, tk1); + if (test) + permute_tk_6(tmp); // applies P^6 + else + permute_tk_14(tmp); // applies P^14 + tk[i*4+20] = ROR(tmp[0], 10) & 0xc3c3c3c3; + tk[i*4+21] = ROR(tmp[1], 10) & 0xc3c3c3c3; + tk[i*4+22] = ROR(tmp[2], 10) & 0xc3c3c3c3; + tk[i*4+23] = ROR(tmp[3], 10) & 0xc3c3c3c3; + tk[i*4+24] = ROR(tmp[2],12) & 0x03030303; + tk[i*4+24] |= ROR(tmp[2],28) & 0x0c0c0c0c; + tk[i*4+25] = ROR(tmp[3],12) & 0x03030303; + tk[i*4+25] |= ROR(tmp[3],28) & 0x0c0c0c0c; + tk[i*4+26] = ROR(tmp[0],12) & 0x03030303; + tk[i*4+26] |= ROR(tmp[0],28) & 0x0c0c0c0c; + tk[i*4+27] = ROR(tmp[1],12) & 0x03030303; + tk[i*4+27] |= ROR(tmp[1],28) & 0x0c0c0c0c; + memcpy(tmp, tk+i*4+28, 16); + XOR_BLOCKS(tmp, tk1); + if (test) + permute_tk_8(tmp); // applies P^8 + for(int j = 0; j < 4; j++) { + tk[i*4+28+j] = ROR(tmp[j],30) & 0x30303030; + tk[i*4+28+j] |= ROR(tmp[j],22) & 0x0c0c0c0c; + } + if (test && (i+8 < rounds)) { //only if next loop iteration + tk[i*4+32] = tmp[2] & 0xf0f0f0f0; + tk[i*4+33] = tmp[3] & 0xf0f0f0f0; + tk[i*4+34] = tmp[0] & 0xf0f0f0f0; + tk[i*4+35] = tmp[1] & 0xf0f0f0f0; + } + } +} + +/****************************************************************************** +* Precompute LFSR2(TK2) ^ LFSR3(TK3) ^ rconst. +******************************************************************************/ +void precompute_rtk2_3(u32* rtk, const u8* tk2, const u8 * tk3) { + memset(rtk, 0x00, 16*SKINNY128_384_ROUNDS); + precompute_lfsr_tk2(rtk, tk2, SKINNY128_384_ROUNDS); + precompute_lfsr_tk3(rtk, tk3, SKINNY128_384_ROUNDS); + permute_tk(rtk, (u8*)(rtk+8), SKINNY128_384_ROUNDS); // rtk+8 is NULL + for(int i = 0; i < SKINNY128_384_ROUNDS; i++) { // add rconsts + for(int j = 0; j < 4; j++) + rtk[i*4+j] ^= rconst_32_bs[i*4+j]; + } +} + +/****************************************************************************** +* Precompute RTK1. +******************************************************************************/ +void precompute_rtk1(u32* rtk1, const u8* tk1) { + memset(rtk1, 0x00, 16*16); + permute_tk(rtk1, tk1, 16); +} \ No newline at end of file diff --git a/romulus/Implementations/crypto_aead/romulusm1/opt32/tk_schedule.h b/romulus/Implementations/crypto_aead/romulusm1/opt32/tk_schedule.h new file mode 100644 index 0000000..5615cbd --- /dev/null +++ b/romulus/Implementations/crypto_aead/romulusm1/opt32/tk_schedule.h @@ -0,0 +1,39 @@ +#ifndef TK_SCHEDULE_H_ +#define TK_SCHEDULE_H_ + +typedef unsigned char u8; +typedef unsigned int u32; + +void packing(u32* out, const u8* in); +void unpacking(u8* out, u32 *in); +void precompute_rtk2_3(u32* rtk, const u8* tk2, const u8* tk3); +void precompute_rtk1(u32* rtk1, const u8* tk1); + +#define ROR(x,y) (((x) >> (y)) | ((x) << (32 - (y)))) + +#define XOR_BLOCKS(x,y) ({ \ + (x)[0] ^= (y)[0]; \ + (x)[1] ^= (y)[1]; \ + (x)[2] ^= (y)[2]; \ + (x)[3] ^= (y)[3]; \ +}) + +#define SWAPMOVE(a, b, mask, n) ({ \ + tmp = (b ^ (a >> n)) & mask; \ + b ^= tmp; \ + a ^= (tmp << n); \ +}) + +#define LE_LOAD(x, y) \ + *(x) = (((u32)(y)[3] << 24) | \ + ((u32)(y)[2] << 16) | \ + ((u32)(y)[1] << 8) | \ + (y)[0]); + +#define LE_STORE(x, y) \ + (x)[0] = (y) & 0xff; \ + (x)[1] = ((y) >> 8) & 0xff; \ + (x)[2] = ((y) >> 16) & 0xff; \ + (x)[3] = (y) >> 24; + +#endif // TK_SCHEDULE_H_ \ No newline at end of file diff --git a/romulus/Implementations/crypto_aead/romulusm1/ref/api.h b/romulus/Implementations/crypto_aead/romulusm1/ref/api.h new file mode 100644 index 0000000..a4aa567 --- /dev/null +++ b/romulus/Implementations/crypto_aead/romulusm1/ref/api.h @@ -0,0 +1,5 @@ +#define CRYPTO_KEYBYTES 16 +#define CRYPTO_NSECBYTES 0 +#define CRYPTO_NPUBBYTES 16 +#define CRYPTO_ABYTES 16 +#define CRYPTO_NOOVERLAP 1 diff --git a/romulus/Implementations/crypto_aead/romulusm1/ref/encrypt.c b/romulus/Implementations/crypto_aead/romulusm1/ref/encrypt.c new file mode 100644 index 0000000..5542509 --- /dev/null +++ b/romulus/Implementations/crypto_aead/romulusm1/ref/encrypt.c @@ -0,0 +1,711 @@ +/* + * Date: 29 November 2018 + * Contact: Thomas Peyrin - thomas.peyrin@gmail.com + * Mustafa Khairallah - mustafam001@e.ntu.edu.sg + */ + +#include "crypto_aead.h" +#include "api.h" +#include "variant.h" +#include "skinny.h" +#include +#include + +/*void display_vector (const unsigned char* x, int lenx) { + int i; + + for (i = 0; i < lenx; i++) { + //printf("%02x",x[i]); + } + //printf("\n"); + + }*/ + +void pad (const unsigned char* m, unsigned char* mp, int l, int len8) { + int i; + + for (i = 0; i < l; i++) { + if (i < len8) { + mp[i] = m[i]; + } + else if (i == l - 1) { + mp[i] = (len8 & 0x0f); + } + else { + mp[i] = 0x00; + } + } + +} + +void g8A (unsigned char* s, unsigned char* c) { + int i; + + for (i = 0; i < 16; i++) { + c[i] = (s[i] >> 1) ^ (s[i] & 0x80) ^ ((s[i] & 0x01) << 7); + } + +} + +void rho_ad (const unsigned char* m, + unsigned char* s, + int len8, + int ver) { + int i; + unsigned char mp [16]; + + //printf("rho in m = ");display_vector(m,len8); + pad(m,mp,ver,len8); + //printf("rho in mp = ");display_vector(mp,16); + //printf("rho in s = ");display_vector(s,16); + for (i = 0; i < ver; i++) { + s[i] = s[i] ^ mp[i]; + } + //printf("rho out s = ");display_vector(s,16); + +} + +void rho (const unsigned char* m, + unsigned char* c, + unsigned char* s, + int len8, + int ver) { + int i; + unsigned char mp [16]; + + //printf("rho in m = ");display_vector(m,len8); + pad(m,mp,ver,len8); + //printf("rho in mp = ");display_vector(mp,16); + //printf("rho in s = ");display_vector(s,16); + + g8A(s,c); + for (i = 0; i < ver; i++) { + s[i] = s[i] ^ mp[i]; + if (i < len8) { + c[i] = c[i] ^ mp[i]; + } + else { + c[i] = 0; + } + } + //printf("rho out s = ");display_vector(s,16); + //printf("rho out c = ");display_vector(c,16); + +} + +void irho (unsigned char* m, + const unsigned char* c, + unsigned char* s, + int len8, + int ver) { + int i; + unsigned char cp [16]; + + //printf("irho in c = ");display_vector(c,len8); + pad(c,cp,ver,len8); + //printf("irho in cp = ");display_vector(cp,16); + //printf("irho in s = ");display_vector(s,16); + + g8A(s,m); + for (i = 0; i < ver; i++) { + if (i < len8) { + s[i] = s[i] ^ cp[i] ^ m[i]; + } + else { + s[i] = s[i] ^ cp[i]; + } + if (i < len8) { + m[i] = m[i] ^ cp[i]; + } + else { + m[i] = 0; + } + } + //printf("irho out s = ");display_vector(s,16); + //printf("irho out m = ");display_vector(c,16); + +} + +void reset_lfsr_gf56 (unsigned char* CNT) { + CNT[0] = 0x01; + CNT[1] = 0x00; + CNT[2] = 0x00; + CNT[3] = 0x00; + CNT[4] = 0x00; + CNT[5] = 0x00; + CNT[6] = 0x00; +} + +void lfsr_gf56 (unsigned char* CNT) { + unsigned char fb0; + + fb0 = CNT[6] >> 7; + + CNT[6] = (CNT[6] << 1) | (CNT[5] >> 7); + CNT[5] = (CNT[5] << 1) | (CNT[4] >> 7); + CNT[4] = (CNT[4] << 1) | (CNT[3] >> 7); + CNT[3] = (CNT[3] << 1) | (CNT[2] >> 7); + CNT[2] = (CNT[2] << 1) | (CNT[1] >> 7); + CNT[1] = (CNT[1] << 1) | (CNT[0] >> 7); + if (fb0 == 1) { + CNT[0] = (CNT[0] << 1) ^ 0x95; + } + else { + CNT[0] = (CNT[0] << 1); + } +} + +void compose_tweakey (unsigned char* KT, + const unsigned char* K, + unsigned char* T, + unsigned char* CNT, + unsigned char D, + int t) { + + int i; + + for (i = 0; i < 7; i++) { + KT[i] = CNT[i]; + } + KT[i] = D; + for (i = 8; i < 16; i++) { + KT[i] = 0x00; + } + for (i = 0; i < t; i++) { + KT[i+16] = T[i]; + } + for (i = 0; i < 16; i++) { + KT[i+16+t] = K[i]; + } + +} + +void block_cipher(unsigned char* s, + const unsigned char* k, unsigned char* T, + unsigned char* CNT, unsigned char D, int t, int n) { + unsigned char KT [48]; + + (void)n; + compose_tweakey(KT,k,T,CNT,D,t); + //printf("BC in kt = ");display_vector(KT,3*n); + //printf("BC in s = ");display_vector(s,n); + skinny_128_384_enc (s,KT); + //printf("BC out s = ");display_vector(s,n); + +} + +void nonce_encryption (const unsigned char* N, + unsigned char* CNT, + unsigned char*s, const unsigned char* k, + int t, int n, unsigned char D) { + unsigned char T [16]; + int i; + + for (i = 0; i < t; i++) { + T[i] = N[i]; + } + //printf("nonce cnt = ");display_vector(CNT,7); + block_cipher(s,k,T,CNT,D,t,n); + +} + +void generate_tag (unsigned char** c, unsigned char* s, + int n, unsigned long long* clen) { + + g8A(s, *c); + *c = *c + n; + *c = *c - *clen; + +} + +unsigned long long msg_encryption (const unsigned char** M, unsigned char** c, + const unsigned char* N, + unsigned char* CNT, + unsigned char*s, const unsigned char* k, + unsigned int n, unsigned int t, unsigned char D, + unsigned long long mlen) { + int len8; + + + if (mlen >= n) { + len8 = n; + mlen = mlen - n; + } + else { + len8 = mlen; + mlen = 0; + } + rho(*M, *c, s, len8, n); + *c = *c + len8; + *M = *M + len8; + lfsr_gf56(CNT); + if (mlen != 0) { + nonce_encryption(N,CNT,s,k,t,n,D); + } + return mlen; +} + + + +unsigned long long msg_decryption (unsigned char** M, const unsigned char** c, + const unsigned char* N, + unsigned char* CNT, + unsigned char*s, const unsigned char* k, + unsigned int n, unsigned int t, unsigned char D, + unsigned long long clen) { + int len8; + + if (clen >= n) { + len8 = n; + clen = clen - n; + } + else { + len8 = clen; + clen = 0; + } + irho(*M, *c, s, len8, n); + *c = *c + len8; + *M = *M + len8; + lfsr_gf56(CNT); + nonce_encryption(N,CNT,s,k,t,n,D); + return clen; +} + +unsigned long long ad2msg_encryption (const unsigned char** M, + unsigned char* CNT, + unsigned char*s, const unsigned char* k, + unsigned int t, unsigned int n, unsigned char D, + unsigned long long mlen) { + unsigned char T [16]; + int len8; + + if (mlen <= t) { + len8 = mlen; + mlen = 0; + } + else { + len8 = t; + mlen = mlen - t; + } + + pad (*M,T,t,len8); + //printf("ad2msg nonce cnt = ");display_vector(CNT,7); + block_cipher(s,k,T,CNT,D,t,n); + lfsr_gf56(CNT); + *M = *M + len8; + + return mlen; + +} + + +unsigned long long ad_encryption (const unsigned char** A, unsigned char* s, + const unsigned char* k, unsigned long long adlen, + unsigned char* CNT, + unsigned char D, + unsigned int n, unsigned int t) { + + unsigned char T [16]; + int len8; + + if (adlen >= n) { + len8 = n; + adlen = adlen - n; + } + else { + len8 = adlen; + adlen = 0; + } + //printf("AD in = ");display_vector(*A,len8); + rho_ad(*A, s, len8, n); + *A = *A + len8; + lfsr_gf56(CNT); + //printf("AD cnt = ");display_vector(CNT,7); + if (adlen != 0) { + if (adlen >= t) { + len8 = t; + adlen = adlen - t; + } + else { + len8 = adlen; + adlen = 0; + } + pad(*A, T, t, len8); + *A = *A + len8; + block_cipher(s,k,T,CNT,D,t,n); + lfsr_gf56(CNT); + } + + return adlen; +} + +int crypto_aead_encrypt ( + unsigned char* c, unsigned long long* clen, + const unsigned char* m, unsigned long long mlen, + const unsigned char* ad, unsigned long long adlen, + const unsigned char* nsec, + const unsigned char* npub, + const unsigned char* k + ) +{ + unsigned char s[16]; + unsigned char CNT[7]; + unsigned char T[16]; + const unsigned char* N; + unsigned int n, t, i; + unsigned char w; + unsigned long long xlen; + + (void)nsec; + N = npub; + + n = AD_BLK_LEN_ODD; + t = AD_BLK_LEN_EVN; + + xlen = mlen; + + for (i = 0; i < n; i++) { + s[i] = 0; + } + reset_lfsr_gf56(CNT); + //printf("s = ");display_vector(s,16); + //printf("cnt = ");display_vector(CNT,7); + + w = 48; + + if (adlen == 0) { + w = w ^ 2; + if (xlen == 0) { + w =w ^ 1; + } + else if (xlen%(n+t) == 0) { + w = w ^ 4; + } + else if (xlen%(n+t) < t) { + w = w ^ 1; + } + else if (xlen%(n+t) == t) { + w = w ^ 0; + } + else { + w = w ^ 5; + } + } + else if (adlen%(n+t) == 0) { + w = w ^ 8; + if (xlen == 0) { + w =w ^ 1; + } + else if (xlen%(n+t) == 0) { + w = w ^ 4; + } + else if (xlen%(n+t) < n) { + w = w ^ 1; + } + else if (xlen%(n+t) == n) { + w = w ^ 0; + } + else { + w = w ^ 5; + } + } + else if (adlen%(n+t) < n) { + w = w ^ 2; + if (xlen == 0) { + w =w ^ 1; + } + else if (xlen%(n+t) == 0) { + w = w ^ 4; + } + else if (xlen%(n+t) < t) { + w = w ^ 1; + } + else if (xlen%(n+t) == t) { + w = w ^ 0; + } + else { + w = w ^ 5; + } + } + else if (adlen%(n+t) == n) { + w = w ^ 0; + if (xlen == 0) { + w =w ^ 1; + } + else if (xlen%(n+t) == 0) { + w = w ^ 4; + } + else if (xlen%(n+t) < t) { + w = w ^ 1; + } + else if (xlen%(n+t) == t) { + w = w ^ 0; + } + else { + w = w ^ 5; + } + } + else { + w = w ^ 10; + if (xlen == 0) { + w =w ^ 1; + } + else if (xlen%(n+t) == 0) { + w = w ^ 4; + } + else if (xlen%(n+t) < n) { + w = w ^ 1; + } + else if (xlen%(n+t) == n) { + w = w ^ 0; + } + else { + w = w ^ 5; + } + } + + if (adlen == 0) { // AD is an empty string + lfsr_gf56(CNT); + //xlen = ad2msg_encryption (&m,CNT,s,k,t,n,44,xlen); + } + else while (adlen > 0) { + adlen = ad_encryption(&ad,s,k,adlen,CNT,40,n,t); + } + + if ((w & 8) == 0) { + xlen = ad2msg_encryption (&m,CNT,s,k,t,n,44,xlen); + } + else if (mlen == 0) { + lfsr_gf56(CNT); + } + while (xlen > 0) { + xlen = ad_encryption(&m,s,k,xlen,CNT,44,n,t); + } + nonce_encryption(N,CNT,s,k,t,n,w); + + + // Tag generation + g8A(s, T); + //printf("T = ");display_vector(T,n); + + m = m - mlen; + + reset_lfsr_gf56(CNT); + + for (i = 0; i < n; i = i + 1) { + s[i] = T[i]; + } + + n = MSG_BLK_LEN; + *clen = mlen + n; + + + + if (mlen > 0) { + nonce_encryption(N,CNT,s,k,t,n,36); + while (mlen > n) { + mlen = msg_encryption(&m,&c,N,CNT,s,k,n,t,36,mlen); + } + rho(m, c, s, mlen, 16); + c = c + mlen; + m = m + mlen; + } + + // Tag Concatenation + for (i = 0; i < 16; i = i + 1) { + *(c + i) = T[i]; + } + + c = c - *clen; + + + + return 0; +} + +int crypto_aead_decrypt( +unsigned char *m,unsigned long long *mlen, +unsigned char *nsec, +const unsigned char *c,unsigned long long clen, +const unsigned char *ad,unsigned long long adlen, +const unsigned char *npub, +const unsigned char *k +) +{ + unsigned char s[16]; + unsigned char CNT[7]; + unsigned char T[16]; + const unsigned char* N; + unsigned int n, t, i; + unsigned char w; + unsigned long long xlen; + const unsigned char* mauth; + + (void)nsec; + mauth = m; + + N = npub; + + n = AD_BLK_LEN_ODD; + t = AD_BLK_LEN_EVN; + + xlen = clen-16; + + reset_lfsr_gf56(CNT); + + for (i = 0; i < 16; i++) { + T[i] = *(c + clen - 16 + i); + } + + for (i = 0; i < n; i = i + 1) { + s[i] = T[i]; + } + + n = MSG_BLK_LEN; + clen = clen - 16; + *mlen = clen; + + + if (clen > 0) { + nonce_encryption(N,CNT,s,k,t,n,36); + while (clen > n) { + clen = msg_decryption(&m,&c,N,CNT,s,k,n,t,36,clen); + } + irho(m, c, s, clen, 16); + c = c + clen; + m = m + clen; + } + + + for (i = 0; i < n; i++) { + s[i] = 0; + } + reset_lfsr_gf56(CNT); + //printf("s = ");display_vector(s,16); + //printf("cnt = ");display_vector(CNT,7); + + w = 48; + + if (adlen == 0) { + w = w ^ 2; + if (xlen == 0) { + w =w ^ 1; + } + else if (xlen%(n+t) == 0) { + w = w ^ 4; + } + else if (xlen%(n+t) < t) { + w = w ^ 1; + } + else if (xlen%(n+t) == t) { + w = w ^ 0; + } + else { + w = w ^ 5; + } + } + else if (adlen%(n+t) == 0) { + w = w ^ 8; + if (xlen == 0) { + w =w ^ 1; + } + else if (xlen%(n+t) == 0) { + w = w ^ 4; + } + else if (xlen%(n+t) < n) { + w = w ^ 1; + } + else if (xlen%(n+t) == n) { + w = w ^ 0; + } + else { + w = w ^ 5; + } + } + else if (adlen%(n+t) < n) { + w = w ^ 2; + if (xlen == 0) { + w =w ^ 1; + } + else if (xlen%(n+t) == 0) { + w = w ^ 4; + } + else if (xlen%(n+t) < t) { + w = w ^ 1; + } + else if (xlen%(n+t) == t) { + w = w ^ 0; + } + else { + w = w ^ 5; + } + } + else if (adlen%(n+t) == n) { + w = w ^ 0; + if (xlen == 0) { + w =w ^ 1; + } + else if (xlen%(n+t) == 0) { + w = w ^ 4; + } + else if (xlen%(n+t) < t) { + w = w ^ 1; + } + else if (xlen%(n+t) == t) { + w = w ^ 0; + } + else { + w = w ^ 5; + } + } + else { + w = w ^ 10; + if (xlen == 0) { + w =w ^ 1; + } + else if (xlen%(n+t) == 0) { + w = w ^ 4; + } + else if (xlen%(n+t) < n) { + w = w ^ 1; + } + else if (xlen%(n+t) == n) { + w = w ^ 0; + } + else { + w = w ^ 5; + } + } + + if (adlen == 0) { // AD is an empty string + lfsr_gf56(CNT); + //xlen = ad2msg_encryption (&mauth,CNT,s,k,t,n,44,xlen); + } + else while (adlen > 0) { + adlen = ad_encryption(&ad,s,k,adlen,CNT,40,n,t); + } + + + if ((w & 8) == 0) { + xlen = ad2msg_encryption (&mauth,CNT,s,k,t,n,44,xlen); + } + else if (clen == 0) { + lfsr_gf56(CNT); + } + while (xlen > 0) { + xlen = ad_encryption(&mauth,s,k,xlen,CNT,44,n,t); + } + nonce_encryption(N,CNT,s,k,t,n,w); + + // Tag generation + g8A(s, T); + //printf("T = ");display_vector(T,16); + //printf("t = ");display_vector(c,16); + for (i = 0; i < 16; i++) { + if (T[i] != (*(c+i))) { + return -1; + } + } + + return 0; +} diff --git a/romulus/Implementations/crypto_aead/romulusm1/ref/genkat_aead.c b/romulus/Implementations/crypto_aead/romulusm1/ref/genkat_aead.c new file mode 100644 index 0000000..ecee146 --- /dev/null +++ b/romulus/Implementations/crypto_aead/romulusm1/ref/genkat_aead.c @@ -0,0 +1,163 @@ +// +// NIST-developed software is provided by NIST as a public service. +// You may use, copy and distribute copies of the software in any medium, +// provided that you keep intact this entire notice. You may improve, +// modify and create derivative works of the software or any portion of +// the software, and you may copy and distribute such modifications or +// works. Modified works should carry a notice stating that you changed +// the software and should note the date and nature of any such change. +// Please explicitly acknowledge the National Institute of Standards and +// Technology as the source of the software. +// +// NIST-developed software is expressly provided "AS IS." NIST MAKES NO +// WARRANTY OF ANY KIND, EXPRESS, IMPLIED, IN FACT OR ARISING BY OPERATION +// OF LAW, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTY OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT AND DATA ACCURACY. NIST +// NEITHER REPRESENTS NOR WARRANTS THAT THE OPERATION OF THE SOFTWARE WILL BE +// UNINTERRUPTED OR ERROR-FREE, OR THAT ANY DEFECTS WILL BE CORRECTED. NIST +// DOES NOT WARRANT OR MAKE ANY REPRESENTATIONS REGARDING THE USE OF THE SOFTWARE +// OR THE RESULTS THEREOF, INCLUDING BUT NOT LIMITED TO THE CORRECTNESS, ACCURACY, +// RELIABILITY, OR USEFULNESS OF THE SOFTWARE. +// +// You are solely responsible for determining the appropriateness of using and +// distributing the software and you assume all risks associated with its use, +// including but not limited to the risks and costs of program errors, compliance +// with applicable laws, damage to or loss of data, programs or equipment, and +// the unavailability or interruption of operation. This software is not intended +// to be used in any situation where a failure could cause risk of injury or +// damage to property. The software developed by NIST employees is not subject to +// copyright protection within the United States. +// + +// disable deprecation for sprintf and fopen +#ifdef _MSC_VER +#define _CRT_SECURE_NO_WARNINGS +#endif + +#include +#include + +#include "crypto_aead.h" +#include "api.h" + +#define KAT_SUCCESS 0 +#define KAT_FILE_OPEN_ERROR -1 +#define KAT_DATA_ERROR -3 +#define KAT_CRYPTO_FAILURE -4 + +#define MAX_FILE_NAME 256 +#define MAX_MESSAGE_LENGTH 32 +#define MAX_ASSOCIATED_DATA_LENGTH 32 + +void init_buffer(unsigned char *buffer, unsigned long long numbytes); + +void fprint_bstr(FILE *fp, const char *label, const unsigned char *data, unsigned long long length); + +int generate_test_vectors(); + +int main() +{ + int ret = generate_test_vectors(); + + if (ret != KAT_SUCCESS) { + fprintf(stderr, "test vector generation failed with code %d\n", ret); + } + + return ret; +} + +int generate_test_vectors() +{ + FILE *fp; + char fileName[MAX_FILE_NAME]; + unsigned char key[CRYPTO_KEYBYTES]; + unsigned char nonce[CRYPTO_NPUBBYTES]; + unsigned char msg[MAX_MESSAGE_LENGTH]; + unsigned char msg2[MAX_MESSAGE_LENGTH]; + unsigned char ad[MAX_ASSOCIATED_DATA_LENGTH]; + unsigned char ct[MAX_MESSAGE_LENGTH + CRYPTO_ABYTES]; + unsigned long long clen, mlen2; + int count = 1; + int func_ret, ret_val = KAT_SUCCESS; + + init_buffer(key, sizeof(key)); + init_buffer(nonce, sizeof(nonce)); + init_buffer(msg, sizeof(msg)); + init_buffer(ad, sizeof(ad)); + + sprintf(fileName, "LWC_AEAD_KAT_%d_%d.txt", (CRYPTO_KEYBYTES * 8), (CRYPTO_NPUBBYTES * 8)); + + if ((fp = fopen(fileName, "w")) == NULL) { + fprintf(stderr, "Couldn't open <%s> for write\n", fileName); + return KAT_FILE_OPEN_ERROR; + } + + for (unsigned long long mlen = 0; (mlen <= MAX_MESSAGE_LENGTH) && (ret_val == KAT_SUCCESS); mlen++) { + //for (unsigned long long mlen = 0; (mlen <= 32) && (ret_val == KAT_SUCCESS); mlen++) { + for (unsigned long long adlen = 0; adlen <= MAX_ASSOCIATED_DATA_LENGTH; adlen++) { + //for (unsigned long long adlen = 0; adlen <= 32; adlen++) { + + printf("%0d\n", (int)clen); + + fprintf(fp, "Count = %d\n", count++); + printf("Count = %d\n", count - 1); + + fprint_bstr(fp, "Key = ", key, CRYPTO_KEYBYTES); + + fprint_bstr(fp, "Nonce = ", nonce, CRYPTO_NPUBBYTES); + + fprint_bstr(fp, "PT = ", msg, mlen); + + fprint_bstr(fp, "AD = ", ad, adlen); + + if ((func_ret = crypto_aead_encrypt(ct, &clen, msg, mlen, ad, adlen, NULL, nonce, key)) != 0) { + fprintf(fp, "crypto_aead_encrypt returned <%d>\n", func_ret); + ret_val = KAT_CRYPTO_FAILURE; + break; + } + + fprint_bstr(fp, "CT = ", ct, clen); + + fprintf(fp, "\n"); + + if ((func_ret = crypto_aead_decrypt(msg2, &mlen2, NULL, ct, clen, ad, adlen, nonce, key)) != 0) { + fprintf(fp, "crypto_aead_decrypt returned <%d>\n", func_ret); + ret_val = KAT_CRYPTO_FAILURE; + break; + } + + if (mlen != mlen2) { + fprintf(fp, "crypto_aead_decrypt returned bad 'mlen': Got <%llu>, expected <%llu>\n", mlen2, mlen); + ret_val = KAT_CRYPTO_FAILURE; + break; + } + + if (memcmp(msg, msg2, mlen)) { + fprintf(fp, "crypto_aead_decrypt did not recover the plaintext\n"); + ret_val = KAT_CRYPTO_FAILURE; + break; + } + } + } + + fclose(fp); + + return ret_val; +} + + +void fprint_bstr(FILE *fp, const char *label, const unsigned char *data, unsigned long long length) +{ + fprintf(fp, "%s", label); + + for (unsigned long long i = 0; i < length; i++) + fprintf(fp, "%02X", data[i]); + + fprintf(fp, "\n"); +} + +void init_buffer(unsigned char *buffer, unsigned long long numbytes) +{ + for (unsigned long long i = 0; i < numbytes; i++) + buffer[i] = (unsigned char)i; +} diff --git a/romulus/Implementations/crypto_aead/romulusm1/ref/skinny.h b/romulus/Implementations/crypto_aead/romulusm1/ref/skinny.h new file mode 100644 index 0000000..70c4421 --- /dev/null +++ b/romulus/Implementations/crypto_aead/romulusm1/ref/skinny.h @@ -0,0 +1 @@ +extern void skinny_128_384_enc (unsigned char* input, const unsigned char* userkey); diff --git a/romulus/Implementations/crypto_aead/romulusm1/ref/skinny_reference.c b/romulus/Implementations/crypto_aead/romulusm1/ref/skinny_reference.c new file mode 100644 index 0000000..ec59a31 --- /dev/null +++ b/romulus/Implementations/crypto_aead/romulusm1/ref/skinny_reference.c @@ -0,0 +1,547 @@ +/* + * Date: 11 December 2015 + * Contact: Thomas Peyrin - thomas.peyrin@gmail.com + */ + +#include +#include +#include +#include +#include "skinny.h" + +#define DEBUG 0 + +// Table that encodes the parameters of the various Skinny versions: +// (block size, key size, number of rounds) +//Skinny-64-64: 32 rounds +//Skinny-64-128: 36 rounds +//Skinny-64-192: 40 rounds +//Skinny-128-128: 40 rounds +//Skinny-128-256: 48 rounds +//Skinny-128-384: 56 rounds +int versions[6][3]={{64,64,32},{64,128,36},{64,192,40},{128,128,40},{128,256,48},{128,384,56}}; + +// Packing of data is done as follows (state[i][j] stands for row i and column j): +// 0 1 2 3 +// 4 5 6 7 +// 8 9 10 11 +//12 13 14 15 + +// 4-bit Sbox +const unsigned char sbox_4[16] = {12,6,9,0,1,10,2,11,3,8,5,13,4,14,7,15}; +const unsigned char sbox_4_inv[16] = {3,4,6,8,12,10,1,14,9,2,5,7,0,11,13,15}; + +// 8-bit Sbox +const unsigned char sbox_8[256] = {0x65 , 0x4c , 0x6a , 0x42 , 0x4b , 0x63 , 0x43 , 0x6b , 0x55 , 0x75 , 0x5a , 0x7a , 0x53 , 0x73 , 0x5b , 0x7b ,0x35 , 0x8c , 0x3a , 0x81 , 0x89 , 0x33 , 0x80 , 0x3b , 0x95 , 0x25 , 0x98 , 0x2a , 0x90 , 0x23 , 0x99 , 0x2b ,0xe5 , 0xcc , 0xe8 , 0xc1 , 0xc9 , 0xe0 , 0xc0 , 0xe9 , 0xd5 , 0xf5 , 0xd8 , 0xf8 , 0xd0 , 0xf0 , 0xd9 , 0xf9 ,0xa5 , 0x1c , 0xa8 , 0x12 , 0x1b , 0xa0 , 0x13 , 0xa9 , 0x05 , 0xb5 , 0x0a , 0xb8 , 0x03 , 0xb0 , 0x0b , 0xb9 ,0x32 , 0x88 , 0x3c , 0x85 , 0x8d , 0x34 , 0x84 , 0x3d , 0x91 , 0x22 , 0x9c , 0x2c , 0x94 , 0x24 , 0x9d , 0x2d ,0x62 , 0x4a , 0x6c , 0x45 , 0x4d , 0x64 , 0x44 , 0x6d , 0x52 , 0x72 , 0x5c , 0x7c , 0x54 , 0x74 , 0x5d , 0x7d ,0xa1 , 0x1a , 0xac , 0x15 , 0x1d , 0xa4 , 0x14 , 0xad , 0x02 , 0xb1 , 0x0c , 0xbc , 0x04 , 0xb4 , 0x0d , 0xbd ,0xe1 , 0xc8 , 0xec , 0xc5 , 0xcd , 0xe4 , 0xc4 , 0xed , 0xd1 , 0xf1 , 0xdc , 0xfc , 0xd4 , 0xf4 , 0xdd , 0xfd ,0x36 , 0x8e , 0x38 , 0x82 , 0x8b , 0x30 , 0x83 , 0x39 , 0x96 , 0x26 , 0x9a , 0x28 , 0x93 , 0x20 , 0x9b , 0x29 ,0x66 , 0x4e , 0x68 , 0x41 , 0x49 , 0x60 , 0x40 , 0x69 , 0x56 , 0x76 , 0x58 , 0x78 , 0x50 , 0x70 , 0x59 , 0x79 ,0xa6 , 0x1e , 0xaa , 0x11 , 0x19 , 0xa3 , 0x10 , 0xab , 0x06 , 0xb6 , 0x08 , 0xba , 0x00 , 0xb3 , 0x09 , 0xbb ,0xe6 , 0xce , 0xea , 0xc2 , 0xcb , 0xe3 , 0xc3 , 0xeb , 0xd6 , 0xf6 , 0xda , 0xfa , 0xd3 , 0xf3 , 0xdb , 0xfb ,0x31 , 0x8a , 0x3e , 0x86 , 0x8f , 0x37 , 0x87 , 0x3f , 0x92 , 0x21 , 0x9e , 0x2e , 0x97 , 0x27 , 0x9f , 0x2f ,0x61 , 0x48 , 0x6e , 0x46 , 0x4f , 0x67 , 0x47 , 0x6f , 0x51 , 0x71 , 0x5e , 0x7e , 0x57 , 0x77 , 0x5f , 0x7f ,0xa2 , 0x18 , 0xae , 0x16 , 0x1f , 0xa7 , 0x17 , 0xaf , 0x01 , 0xb2 , 0x0e , 0xbe , 0x07 , 0xb7 , 0x0f , 0xbf ,0xe2 , 0xca , 0xee , 0xc6 , 0xcf ,0xe7 , 0xc7 , 0xef , 0xd2 , 0xf2 , 0xde , 0xfe , 0xd7 , 0xf7 , 0xdf , 0xff}; +const unsigned char sbox_8_inv[256] = {0xac , 0xe8 , 0x68 , 0x3c , 0x6c , 0x38 , 0xa8 , 0xec , 0xaa , 0xae , 0x3a , 0x3e , 0x6a , 0x6e , 0xea , 0xee ,0xa6 , 0xa3 , 0x33 , 0x36 , 0x66 , 0x63 , 0xe3 , 0xe6 , 0xe1 , 0xa4 , 0x61 , 0x34 , 0x31 , 0x64 , 0xa1 , 0xe4 ,0x8d , 0xc9 , 0x49 , 0x1d , 0x4d , 0x19 , 0x89 , 0xcd , 0x8b , 0x8f , 0x1b , 0x1f , 0x4b , 0x4f , 0xcb , 0xcf ,0x85 , 0xc0 , 0x40 , 0x15 , 0x45 , 0x10 , 0x80 , 0xc5 , 0x82 , 0x87 , 0x12 , 0x17 , 0x42 , 0x47 , 0xc2 , 0xc7 ,0x96 , 0x93 , 0x03 , 0x06 , 0x56 , 0x53 , 0xd3 , 0xd6 , 0xd1 , 0x94 , 0x51 , 0x04 , 0x01 , 0x54 , 0x91 , 0xd4 ,0x9c , 0xd8 , 0x58 , 0x0c , 0x5c , 0x08 , 0x98 , 0xdc , 0x9a , 0x9e , 0x0a , 0x0e , 0x5a , 0x5e , 0xda , 0xde ,0x95 , 0xd0 , 0x50 , 0x05 , 0x55 , 0x00 , 0x90 , 0xd5 , 0x92 , 0x97 , 0x02 , 0x07 , 0x52 , 0x57 , 0xd2 , 0xd7 ,0x9d , 0xd9 , 0x59 , 0x0d , 0x5d , 0x09 , 0x99 , 0xdd , 0x9b , 0x9f , 0x0b , 0x0f , 0x5b , 0x5f , 0xdb , 0xdf ,0x16 , 0x13 , 0x83 , 0x86 , 0x46 , 0x43 , 0xc3 , 0xc6 , 0x41 , 0x14 , 0xc1 , 0x84 , 0x11 , 0x44 , 0x81 , 0xc4 ,0x1c , 0x48 , 0xc8 , 0x8c , 0x4c , 0x18 , 0x88 , 0xcc , 0x1a , 0x1e , 0x8a , 0x8e , 0x4a , 0x4e , 0xca , 0xce ,0x35 , 0x60 , 0xe0 , 0xa5 , 0x65 , 0x30 , 0xa0 , 0xe5 , 0x32 , 0x37 , 0xa2 , 0xa7 , 0x62 , 0x67 , 0xe2 , 0xe7 ,0x3d , 0x69 , 0xe9 , 0xad , 0x6d , 0x39 , 0xa9 , 0xed , 0x3b , 0x3f , 0xab , 0xaf , 0x6b , 0x6f , 0xeb , 0xef ,0x26 , 0x23 , 0xb3 , 0xb6 , 0x76 , 0x73 , 0xf3 , 0xf6 , 0x71 , 0x24 , 0xf1 , 0xb4 , 0x21 , 0x74 , 0xb1 , 0xf4 ,0x2c , 0x78 , 0xf8 , 0xbc , 0x7c , 0x28 , 0xb8 , 0xfc , 0x2a , 0x2e , 0xba , 0xbe , 0x7a , 0x7e , 0xfa , 0xfe ,0x25 , 0x70 , 0xf0 , 0xb5 , 0x75 , 0x20 , 0xb0 , 0xf5 , 0x22 , 0x27 , 0xb2 , 0xb7 , 0x72 , 0x77 , 0xf2 , 0xf7 ,0x2d , 0x79 , 0xf9 , 0xbd , 0x7d , 0x29 , 0xb9 , 0xfd , 0x2b , 0x2f , 0xbb , 0xbf , 0x7b , 0x7f , 0xfb , 0xff}; + +// ShiftAndSwitchRows permutation +const unsigned char P[16] = {0,1,2,3,7,4,5,6,10,11,8,9,13,14,15,12}; +const unsigned char P_inv[16] = {0,1,2,3,5,6,7,4,10,11,8,9,15,12,13,14}; + +// Tweakey permutation +const unsigned char TWEAKEY_P[16] = {9,15,8,13,10,14,12,11,0,1,2,3,4,5,6,7}; +const unsigned char TWEAKEY_P_inv[16] = {8,9,10,11,12,13,14,15,2,0,4,7,6,3,5,1}; + +// round constants +const unsigned char RC[62] = { + 0x01, 0x03, 0x07, 0x0F, 0x1F, 0x3E, 0x3D, 0x3B, 0x37, 0x2F, + 0x1E, 0x3C, 0x39, 0x33, 0x27, 0x0E, 0x1D, 0x3A, 0x35, 0x2B, + 0x16, 0x2C, 0x18, 0x30, 0x21, 0x02, 0x05, 0x0B, 0x17, 0x2E, + 0x1C, 0x38, 0x31, 0x23, 0x06, 0x0D, 0x1B, 0x36, 0x2D, 0x1A, + 0x34, 0x29, 0x12, 0x24, 0x08, 0x11, 0x22, 0x04, 0x09, 0x13, + 0x26, 0x0c, 0x19, 0x32, 0x25, 0x0a, 0x15, 0x2a, 0x14, 0x28, + 0x10, 0x20}; + +FILE* fic; + + +// Extract and apply the subtweakey to the internal state (must be the two top rows XORed together), then update the tweakey state +void AddKey(unsigned char state[4][4], unsigned char keyCells[3][4][4], int ver) +{ + int i, j, k; + unsigned char pos; + unsigned char keyCells_tmp[3][4][4]; + + // apply the subtweakey to the internal state + for(i = 0; i <= 1; i++) + { + for(j = 0; j < 4; j++) + { + state[i][j] ^= keyCells[0][i][j]; + if (2*versions[ver][0]==versions[ver][1]) + state[i][j] ^= keyCells[1][i][j]; + else if (3*versions[ver][0]==versions[ver][1]) + state[i][j] ^= keyCells[1][i][j] ^ keyCells[2][i][j]; + } + } + + // update the subtweakey states with the permutation + for(k = 0; k <(int)(versions[ver][1]/versions[ver][0]); k++){ + for(i = 0; i < 4; i++){ + for(j = 0; j < 4; j++){ + //application of the TWEAKEY permutation + pos=TWEAKEY_P[j+4*i]; + keyCells_tmp[k][i][j]=keyCells[k][pos>>2][pos&0x3]; + } + } + } + + // update the subtweakey states with the LFSRs + for(k = 0; k <(int)(versions[ver][1]/versions[ver][0]); k++){ + for(i = 0; i <= 1; i++){ + for(j = 0; j < 4; j++){ + //application of LFSRs for TK updates + if (k==1) + { + if (versions[ver][0]==64) + keyCells_tmp[k][i][j]=((keyCells_tmp[k][i][j]<<1)&0xE)^((keyCells_tmp[k][i][j]>>3)&0x1)^((keyCells_tmp[k][i][j]>>2)&0x1); + else + keyCells_tmp[k][i][j]=((keyCells_tmp[k][i][j]<<1)&0xFE)^((keyCells_tmp[k][i][j]>>7)&0x01)^((keyCells_tmp[k][i][j]>>5)&0x01); + } + else if (k==2) + { + if (versions[ver][0]==64) + keyCells_tmp[k][i][j]=((keyCells_tmp[k][i][j]>>1)&0x7)^((keyCells_tmp[k][i][j])&0x8)^((keyCells_tmp[k][i][j]<<3)&0x8); + else + keyCells_tmp[k][i][j]=((keyCells_tmp[k][i][j]>>1)&0x7F)^((keyCells_tmp[k][i][j]<<7)&0x80)^((keyCells_tmp[k][i][j]<<1)&0x80); + } + } + } + } + + for(k = 0; k <(int)(versions[ver][1]/versions[ver][0]); k++){ + for(i = 0; i < 4; i++){ + for(j = 0; j < 4; j++){ + keyCells[k][i][j]=keyCells_tmp[k][i][j]; + } + } + } +} + + +// Extract and apply the subtweakey to the internal state (must be the two top rows XORed together), then update the tweakey state (inverse function} +void AddKey_inv(unsigned char state[4][4], unsigned char keyCells[3][4][4], int ver) +{ + int i, j, k; + unsigned char pos; + unsigned char keyCells_tmp[3][4][4]; + + // update the subtweakey states with the permutation + for(k = 0; k <(int)(versions[ver][1]/versions[ver][0]); k++){ + for(i = 0; i < 4; i++){ + for(j = 0; j < 4; j++){ + //application of the inverse TWEAKEY permutation + pos=TWEAKEY_P_inv[j+4*i]; + keyCells_tmp[k][i][j]=keyCells[k][pos>>2][pos&0x3]; + } + } + } + + // update the subtweakey states with the LFSRs + for(k = 0; k <(int)(versions[ver][1]/versions[ver][0]); k++){ + for(i = 2; i <= 3; i++){ + for(j = 0; j < 4; j++){ + //application of inverse LFSRs for TK updates + if (k==1) + { + if (versions[ver][0]==64) + keyCells_tmp[k][i][j]=((keyCells_tmp[k][i][j]>>1)&0x7)^((keyCells_tmp[k][i][j]<<3)&0x8)^((keyCells_tmp[k][i][j])&0x8); + else + keyCells_tmp[k][i][j]=((keyCells_tmp[k][i][j]>>1)&0x7F)^((keyCells_tmp[k][i][j]<<7)&0x80)^((keyCells_tmp[k][i][j]<<1)&0x80); + } + else if (k==2) + { + if (versions[ver][0]==64) + keyCells_tmp[k][i][j]=((keyCells_tmp[k][i][j]<<1)&0xE)^((keyCells_tmp[k][i][j]>>3)&0x1)^((keyCells_tmp[k][i][j]>>2)&0x1); + else + keyCells_tmp[k][i][j]=((keyCells_tmp[k][i][j]<<1)&0xFE)^((keyCells_tmp[k][i][j]>>7)&0x01)^((keyCells_tmp[k][i][j]>>5)&0x01); + } + } + } + } + + for(k = 0; k <(int)(versions[ver][1]/versions[ver][0]); k++){ + for(i = 0; i < 4; i++){ + for(j = 0; j < 4; j++){ + keyCells[k][i][j]=keyCells_tmp[k][i][j]; + } + } + } + + + // apply the subtweakey to the internal state + for(i = 0; i <= 1; i++) + { + for(j = 0; j < 4; j++) + { + state[i][j] ^= keyCells[0][i][j]; + if (2*versions[ver][0]==versions[ver][1]) + state[i][j] ^= keyCells[1][i][j]; + else if (3*versions[ver][0]==versions[ver][1]) + state[i][j] ^= keyCells[1][i][j] ^ keyCells[2][i][j]; + } + } +} + + +// Apply the constants: using a LFSR counter on 6 bits, we XOR the 6 bits to the first 6 bits of the internal state +void AddConstants(unsigned char state[4][4], int r) +{ + state[0][0] ^= (RC[r] & 0xf); + state[1][0] ^= ((RC[r]>>4) & 0x3); + state[2][0] ^= 0x2; +} + +// apply the 4-bit Sbox +void SubCell4(unsigned char state[4][4]) +{ + int i,j; + for(i = 0; i < 4; i++) + for(j = 0; j < 4; j++) + state[i][j] = sbox_4[state[i][j]]; +} + +// apply the 4-bit inverse Sbox +void SubCell4_inv(unsigned char state[4][4]) +{ + int i,j; + for(i = 0; i < 4; i++) + for(j = 0; j < 4; j++) + state[i][j] = sbox_4_inv[state[i][j]]; +} + +// apply the 8-bit Sbox +void SubCell8(unsigned char state[4][4]) +{ + int i,j; + for(i = 0; i < 4; i++) + for(j = 0; j < 4; j++) + state[i][j] = sbox_8[state[i][j]]; +} + +// apply the 8-bit inverse Sbox +void SubCell8_inv(unsigned char state[4][4]) +{ + int i,j; + for(i = 0; i < 4; i++) + for(j = 0; j < 4; j++) + state[i][j] = sbox_8_inv[state[i][j]]; +} + +// Apply the ShiftRows function +void ShiftRows(unsigned char state[4][4]) +{ + int i, j, pos; + + unsigned char state_tmp[4][4]; + for(i = 0; i < 4; i++) + { + for(j = 0; j < 4; j++) + { + //application of the ShiftRows permutation + pos=P[j+4*i]; + state_tmp[i][j]=state[pos>>2][pos&0x3]; + } + } + + for(i = 0; i < 4; i++) + { + for(j = 0; j < 4; j++) + { + state[i][j]=state_tmp[i][j]; + } + } +} + +// Apply the inverse ShiftRows function +void ShiftRows_inv(unsigned char state[4][4]) +{ + int i, j, pos; + + unsigned char state_tmp[4][4]; + for(i = 0; i < 4; i++) + { + for(j = 0; j < 4; j++) + { + //application of the inverse ShiftRows permutation + pos=P_inv[j+4*i]; + state_tmp[i][j]=state[pos>>2][pos&0x3]; + } + } + + for(i = 0; i < 4; i++) + { + for(j = 0; j < 4; j++) + { + state[i][j]=state_tmp[i][j]; + } + } +} + +// Apply the linear diffusion matrix +//M = +//1 0 1 1 +//1 0 0 0 +//0 1 1 0 +//1 0 1 0 +void MixColumn(unsigned char state[4][4]) +{ + int j; + unsigned char temp; + + for(j = 0; j < 4; j++){ + state[1][j]^=state[2][j]; + state[2][j]^=state[0][j]; + state[3][j]^=state[2][j]; + + temp=state[3][j]; + state[3][j]=state[2][j]; + state[2][j]=state[1][j]; + state[1][j]=state[0][j]; + state[0][j]=temp; + } +} + +// Apply the inverse linear diffusion matrix +void MixColumn_inv(unsigned char state[4][4]) +{ + int j; + unsigned char temp; + + for(j = 0; j < 4; j++){ + temp=state[3][j]; + state[3][j]=state[0][j]; + state[0][j]=state[1][j]; + state[1][j]=state[2][j]; + state[2][j]=temp; + + state[3][j]^=state[2][j]; + state[2][j]^=state[0][j]; + state[1][j]^=state[2][j]; + } +} + +// decryption function of Skinny +void dec(unsigned char* input, const unsigned char* userkey, int ver) +{ + unsigned char state[4][4]; + unsigned char dummy[4][4]={{0}}; + unsigned char keyCells[3][4][4]; + int i; + + memset(keyCells, 0, 48); + for(i = 0; i < 16; i++) { + if (versions[ver][0]==64){ + if(i&1) + { + state[i>>2][i&0x3] = input[i>>1]&0xF; + keyCells[0][i>>2][i&0x3] = userkey[i>>1]&0xF; + if (versions[ver][1]>=128) + keyCells[1][i>>2][i&0x3] = userkey[(i+16)>>1]&0xF; + if (versions[ver][1]>=192) + keyCells[2][i>>2][i&0x3] = userkey[(i+32)>>1]&0xF; + } + else + { + state[i>>2][i&0x3] = (input[i>>1]>>4)&0xF; + keyCells[0][i>>2][i&0x3] = (userkey[i>>1]>>4)&0xF; + if (versions[ver][1]>=128) + keyCells[1][i>>2][i&0x3] = (userkey[(i+16)>>1]>>4)&0xF; + if (versions[ver][1]>=192) + keyCells[2][i>>2][i&0x3] = (userkey[(i+32)>>1]>>4)&0xF; + } + } + else if (versions[ver][0]==128){ + state[i>>2][i&0x3] = input[i]&0xFF; + + keyCells[0][i>>2][i&0x3] = userkey[i]&0xFF; + if (versions[ver][1]>=256) + keyCells[1][i>>2][i&0x3] = userkey[i+16]&0xFF; + if (versions[ver][1]>=384) + keyCells[2][i>>2][i&0x3] = userkey[i+32]&0xFF; + } + } + + for(i = versions[ver][2]-1; i >=0 ; i--){ + AddKey(dummy, keyCells, ver); + } + + #ifdef DEBUG + //f//printf(fic,"DEC - initial state: ");display_cipher_state(state,keyCells,ver);//f//printf(fic,"\n"); + #endif + + for(i = versions[ver][2]-1; i >=0 ; i--){ + MixColumn_inv(state); + #ifdef DEBUG + //f//printf(fic,"DEC - round %.2i - after MixColumn_inv: ",i);display_cipher_state(state,keyCells,ver);//f//printf(fic,"\n"); + #endif + ShiftRows_inv(state); + #ifdef DEBUG + //f//printf(fic,"DEC - round %.2i - after ShiftRows_inv: ",i);display_cipher_state(state,keyCells,ver);//f//printf(fic,"\n"); + #endif + AddKey_inv(state, keyCells, ver); + #ifdef DEBUG + //f//printf(fic,"DEC - round %.2i - after AddKey_inv: ",i);display_cipher_state(state,keyCells,ver);//f//printf(fic,"\n"); + #endif + AddConstants(state, i); + #ifdef DEBUG + //f//printf(fic,"DEC - round %.2i - after AddConstants_inv: ",i);display_cipher_state(state,keyCells,ver);//f//printf(fic,"\n"); + #endif + if (versions[ver][0]==64) + SubCell4_inv(state); + else + SubCell8_inv(state); + #ifdef DEBUG + //f//printf(fic,"DEC - round %.2i - after SubCell_inv: ",i);display_cipher_state(state,keyCells,ver);//f//printf(fic,"\n"); + #endif + } + + #ifdef DEBUG + //f//printf(fic,"DEC - final state: ");display_cipher_state(state,keyCells,ver);//f//printf(fic,"\n"); + #endif + + if (versions[ver][0]==64) + { + for(i = 0; i < 8; i++) + input[i] = ((state[(2*i)>>2][(2*i)&0x3] & 0xF) << 4) | (state[(2*i+1)>>2][(2*i+1)&0x3] & 0xF); + } + else if (versions[ver][0]==128) + { + for(i = 0; i < 16; i++) + input[i] = state[i>>2][i&0x3] & 0xFF; + } +} + +// encryption function of Skinny +void enc(unsigned char* input, const unsigned char* userkey, int ver) +{ + unsigned char state[4][4]; + unsigned char keyCells[3][4][4]; + int i; + + memset(keyCells, 0, 48); + for(i = 0; i < 16; i++) { + if (versions[ver][0]==64){ + if(i&1) + { + state[i>>2][i&0x3] = input[i>>1]&0xF; + keyCells[0][i>>2][i&0x3] = userkey[i>>1]&0xF; + if (versions[ver][1]>=128) + keyCells[1][i>>2][i&0x3] = userkey[(i+16)>>1]&0xF; + if (versions[ver][1]>=192) + keyCells[2][i>>2][i&0x3] = userkey[(i+32)>>1]&0xF; + } + else + { + state[i>>2][i&0x3] = (input[i>>1]>>4)&0xF; + keyCells[0][i>>2][i&0x3] = (userkey[i>>1]>>4)&0xF; + if (versions[ver][1]>=128) + keyCells[1][i>>2][i&0x3] = (userkey[(i+16)>>1]>>4)&0xF; + if (versions[ver][1]>=192) + keyCells[2][i>>2][i&0x3] = (userkey[(i+32)>>1]>>4)&0xF; + } + } + else if (versions[ver][0]==128){ + state[i>>2][i&0x3] = input[i]&0xFF; + keyCells[0][i>>2][i&0x3] = userkey[i]&0xFF; + if (versions[ver][1]>=256) + keyCells[1][i>>2][i&0x3] = userkey[i+16]&0xFF; + if (versions[ver][1]>=384) + keyCells[2][i>>2][i&0x3] = userkey[i+32]&0xFF; + } + } + + #ifdef DEBUG + //printf("ENC - initial state: ");display_cipher_state(state,keyCells,ver);//printf("\n"); + #endif + for(i = 0; i < versions[ver][2]; i++){ + if (versions[ver][0]==64) + SubCell4(state); + else + SubCell8(state); + #ifdef DEBUG + //printf("ENC - round %.2i - after SubCell: ",i);display_cipher_state(state,keyCells,ver);//printf("\n"); + #endif + AddConstants(state, i); + #ifdef DEBUG + //printf("ENC - round %.2i - after AddConstants: ",i);display_cipher_state(state,keyCells,ver);//printf("\n"); + #endif + AddKey(state, keyCells, ver); + #ifdef DEBUG + //printf("ENC - round %.2i - after AddKey: ",i);display_cipher_state(state,keyCells,ver);//printf("\n"); + #endif + ShiftRows(state); + #ifdef DEBUG + //printf("ENC - round %.2i - after ShiftRows: ",i);display_cipher_state(state,keyCells,ver);//printf("\n"); + #endif + MixColumn(state); + #ifdef DEBUG + //printf("ENC - round %.2i - after MixColumn: ",i);display_cipher_state(state,keyCells,ver);//printf("\n"); + #endif + } //The last subtweakey should not be added + + #ifdef DEBUG + //printf("ENC - final state: ");display_cipher_state(state,keyCells,ver);//printf("\n"); + #endif + + if (versions[ver][0]==64) + { + for(i = 0; i < 8; i++) + input[i] = ((state[(2*i)>>2][(2*i)&0x3] & 0xF) << 4) | (state[(2*i+1)>>2][(2*i+1)&0x3] & 0xF); + } + else if (versions[ver][0]==128) + { + for(i = 0; i < 16; i++) + input[i] = state[i>>2][i&0x3] & 0xFF; + } +} + +void skinny_128_384_enc (unsigned char* input, const unsigned char* userkey) { + enc(input,userkey,5); +} + +// generate test vectors for all the versions of Skinny +void TestVectors(int ver) +{ + unsigned char p[16]; + unsigned char c[16]; + unsigned char k[48]; + int n; + + for(n = 1; n < 10; n++) + { + int i; + for(i = 0; i < (versions[ver][0]>>3); i++) c[i] = p[i] = rand() & 0xff; + for(i = 0; i < (versions[ver][1]>>3); i++) k[i] = rand() & 0xff; + //printf("TK = "); for(i = 0; i < (versions[ver][1]>>3); i++) //printf("%02x", k[i]); //printf("\n"); + //printf("P = "); for(i = 0; i < (versions[ver][0]>>3); i++) //printf("%02x", p[i]); //printf("\n"); + enc(c,k,ver); + //printf("C = "); for(i = 0; i < (versions[ver][0]>>3); i++) //printf("%02x", c[i]); //printf("\n"); + dec(c,k,ver); + //printf("P' = "); for(i = 0; i < (versions[ver][0]>>3); i++) //printf("%02x", c[i]); //printf("\n\n"); + } +} + +/* int main() { */ +/* unsigned int i; */ +/* char name[30]; */ + +/* srand((unsigned) time (NULL)); */ + +/* //test all versions of Skinny */ +/* for (i=0; i<(sizeof(versions)/sizeof(*versions));i++) */ +/* { */ +/* s//printf(name, "test_vectors_%i_%i.txt", versions[i][0], versions[i][1]); */ +/* fic=fopen(name,"w"); */ +/* //printf("\n\nSkinny-%i/%i: \n",versions[i][0],versions[i][1]); */ +/* TestVectors(i); */ +/* fclose(fic); */ +/* //printf("Generating test vectors for Skinny-%i/%i - saved in file test_vectors_%i_%i.txt \n",versions[i][0],versions[i][1],versions[i][0],versions[i][1]); */ +/* } */ + +/* return 0; */ +/* } */ + + + diff --git a/romulus/Implementations/crypto_aead/romulusm1/ref/variant.h b/romulus/Implementations/crypto_aead/romulusm1/ref/variant.h new file mode 100644 index 0000000..71b0405 --- /dev/null +++ b/romulus/Implementations/crypto_aead/romulusm1/ref/variant.h @@ -0,0 +1,3 @@ +#define MSG_BLK_LEN 16 +#define AD_BLK_LEN_ODD 16 +#define AD_BLK_LEN_EVN 16 diff --git a/romulus/Implementations/crypto_aead/romulusm1v12/LWC_AEAD_KAT_128_128.txt b/romulus/Implementations/crypto_aead/romulusm1v12/LWC_AEAD_KAT_128_128.txt deleted file mode 100644 index dc9755c..0000000 --- a/romulus/Implementations/crypto_aead/romulusm1v12/LWC_AEAD_KAT_128_128.txt +++ /dev/null @@ -1,7623 +0,0 @@ -Count = 1 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = -AD = -CT = C96F00B90B047ABC5EB6EC0F15BC43CF - -Count = 2 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = -AD = 00 -CT = 9A4B3E4DB525820A3E8FB2DECB430A17 - -Count = 3 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = -AD = 0001 -CT = FDE62DF05BAC7F8B8F0DF728A8362FB0 - -Count = 4 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = -AD = 000102 -CT = 616BC725C3CD253A8D13C28A803256CC - -Count = 5 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = -AD = 00010203 -CT = 63D305F723F44956409BB12477FCC0F4 - -Count = 6 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = -AD = 0001020304 -CT = 8ABA74E3D2984495FC5E117B19368951 - -Count = 7 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = -AD = 000102030405 -CT = DCEE5F849E99298AF5A8B958D2958346 - -Count = 8 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = -AD = 00010203040506 -CT = 33BE7EE65428D5EAFB583112D1D9A8B0 - -Count = 9 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = -AD = 0001020304050607 -CT = C26FA7855B1308EA58ED8D8AC7F8DD81 - -Count = 10 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = -AD = 000102030405060708 -CT = DF30EE37151E9424D054F3C3A1B2F2BE - -Count = 11 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = -AD = 00010203040506070809 -CT = 6C1EA04E5A5F5311CAF55E0382D5F943 - -Count = 12 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = -AD = 000102030405060708090A -CT = D1DACB46342AA1C4324D97026EBF50E2 - -Count = 13 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = -AD = 000102030405060708090A0B -CT = D6621ABD2D11908BB2A78216135C1310 - -Count = 14 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = -AD = 000102030405060708090A0B0C -CT = 3C2E3B663B7971C46880158A01A719EF - -Count = 15 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = -AD = 000102030405060708090A0B0C0D -CT = 336286D2347DBA5947BD76DBB9401244 - -Count = 16 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = -AD = 000102030405060708090A0B0C0D0E -CT = 0FBD389ABF97B7AA8BB16EB84F51830D - -Count = 17 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = -AD = 000102030405060708090A0B0C0D0E0F -CT = 9D239BAC04A370CA5196D94B2F9DE8F6 - -Count = 18 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = -AD = 000102030405060708090A0B0C0D0E0F10 -CT = A66383F2C8447D288611B24D610F796E - -Count = 19 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = DB7882042686BBF608C625327809E1D1 - -Count = 20 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = C8A2FDF9C808E609370C080726DCFBFC - -Count = 21 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 014383A8876B66990D5406AC5E853A4C - -Count = 22 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = 2541B2F43B9362D0519D5631208CFC96 - -Count = 23 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = 3F46CE6449F7C2DE697215FA443620DD - -Count = 24 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = B338A31B1D5CF458B211C20375550B59 - -Count = 25 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = 8F1DB8B8BCC291FA105B6BF3859F0793 - -Count = 26 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 9ADBE9A75294B1F1B93775EE089F17BB - -Count = 27 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = 94338B82DCD560E0BE516AD2FF583295 - -Count = 28 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 99ADD0B128B25C0BD2455D8B01976055 - -Count = 29 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = E43FEEE48C4121FD0FFD0FDAD5350708 - -Count = 30 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = D41256AEE7EEF93AE28A062302E02F8B - -Count = 31 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = DF1CBB784F32BFA1787F004B0D837BEE - -Count = 32 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = F4115577312B06F60A8816DE47FBEBDB - -Count = 33 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = E95EE3E14DBF3C684433EE1ED971FF07 - -Count = 34 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00 -AD = -CT = 691D79158D739AD24A74EF427B9C771D2A - -Count = 35 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00 -AD = 00 -CT = 57DE8B2CBF781D9189A621A6C6B93390B8 - -Count = 36 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00 -AD = 0001 -CT = B5D44DCEB08896613F7B3EC8F70C930C1B - -Count = 37 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00 -AD = 000102 -CT = 13A8A9E9D79FF477540A8C082D7A296CAE - -Count = 38 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00 -AD = 00010203 -CT = 08B9C7A4DDF8FB7A6F1F92BDD97BA9010C - -Count = 39 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00 -AD = 0001020304 -CT = 4CD7237641242D0EF2885E1823101451C8 - -Count = 40 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00 -AD = 000102030405 -CT = 6F43046732289A84C27B26B698DBC68C34 - -Count = 41 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00 -AD = 00010203040506 -CT = 9F4CB7B8624C3C847C57C3BE4799C8D1B0 - -Count = 42 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00 -AD = 0001020304050607 -CT = D6DE596AFE8EE94E5FF58F8E414C208D2B - -Count = 43 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00 -AD = 000102030405060708 -CT = FC6648E76C747134CC735572787833E2A7 - -Count = 44 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00 -AD = 00010203040506070809 -CT = F99E65A1C010553B85CF9CAE016411F33C - -Count = 45 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00 -AD = 000102030405060708090A -CT = D0E7684679FC94CA4A85C06DF89F98C179 - -Count = 46 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00 -AD = 000102030405060708090A0B -CT = AA80F62D99B9518DF0253A078322A3C823 - -Count = 47 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00 -AD = 000102030405060708090A0B0C -CT = 8BB3A24084641F9AE744B13EE1E35F2241 - -Count = 48 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00 -AD = 000102030405060708090A0B0C0D -CT = D195133399C40009F23FFAFAEC88638D27 - -Count = 49 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00 -AD = 000102030405060708090A0B0C0D0E -CT = D85935B082494416AEA7D58F81ADEFF6D9 - -Count = 50 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00 -AD = 000102030405060708090A0B0C0D0E0F -CT = 0AFC5AB987F6916D255ACFDE26D0BB1FBD - -Count = 51 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 5C4C6FC39FC96868FD02D364E18C38F671 - -Count = 52 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = F3003ED2B425E99E59E58F89A00FC4E91B - -Count = 53 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = 6AE2FD15A20A9C7061E92B0E3E47A4705F - -Count = 54 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 4A7804CD959848297BEE90E11F7C4DDB2F - -Count = 55 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = 39F252498080336AE083BE7B81471317D7 - -Count = 56 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = 6B98FD77C2A7CA6B864A04DD0E73E2A1B1 - -Count = 57 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 04C00CB28C6B5595293767D9D73B9C38EE - -Count = 58 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = 9E1A5C1991537E37C94271DB40A88271A4 - -Count = 59 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 737F3B8AF7C14B51A44BCF59256B6D167E - -Count = 60 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = 4A35081F6241A5FEC6BF16C49C0D5711DB - -Count = 61 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 3507CCCFF975437173D69080CF454E2012 - -Count = 62 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = CB2C35BED467C0A47B2B79F4FE86D7DDAA - -Count = 63 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = C30287FF6C70678534918DA08D4B2644C1 - -Count = 64 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = D570256A610C264767D8688EDAC0E07752 - -Count = 65 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = 3AAF3AE6FFEA74374942BD0C74E65E65E9 - -Count = 66 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 2D69E79E1F555B393724A8C631DA257AEF - -Count = 67 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001 -AD = -CT = 6BF154A33F708E421529C751871B216B2825 - -Count = 68 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001 -AD = 00 -CT = 696DAA45B4E9953178F9C03FAEA541904137 - -Count = 69 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001 -AD = 0001 -CT = F32D7ADC8DF811AE19BE70C33484A705571C - -Count = 70 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001 -AD = 000102 -CT = 22E19904FC36821F98B4189AAE751713DDD5 - -Count = 71 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001 -AD = 00010203 -CT = E9EA346FCC4F5A57045BBE9B342C6092DACC - -Count = 72 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001 -AD = 0001020304 -CT = AB2BC72DAC71B50DB35D82AEA3BC370A7EE9 - -Count = 73 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001 -AD = 000102030405 -CT = F8966632C3872043F5A50E93616D87204EC5 - -Count = 74 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001 -AD = 00010203040506 -CT = 6084248DBFC957396591F4E4967EE6554246 - -Count = 75 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001 -AD = 0001020304050607 -CT = 78582279EA098B68DBA4F435D751923F8142 - -Count = 76 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001 -AD = 000102030405060708 -CT = 389BDF17160A00035A21A9018E279E4CE3A0 - -Count = 77 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001 -AD = 00010203040506070809 -CT = FA86439E8EC48171B5553C043B7404C202C6 - -Count = 78 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001 -AD = 000102030405060708090A -CT = 5362C9C38D4AFA39B1C460EC604BEDE6D6B4 - -Count = 79 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001 -AD = 000102030405060708090A0B -CT = B21FDECF6B7CBF09267B6CB251C83C60878D - -Count = 80 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001 -AD = 000102030405060708090A0B0C -CT = A2C5C635681D42F0ECCB84D75807FEAA5E03 - -Count = 81 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001 -AD = 000102030405060708090A0B0C0D -CT = 87BD7581A5F9C3538EA8CA974F9C71ED1CC5 - -Count = 82 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001 -AD = 000102030405060708090A0B0C0D0E -CT = 22DCF2E0EDC38B4583CFB7CE193E50D9D82B - -Count = 83 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001 -AD = 000102030405060708090A0B0C0D0E0F -CT = E313F5E4A257A0613B73CB30384799186914 - -Count = 84 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 168BD3424DA7C7607E21CAD3AFA5EE601A72 - -Count = 85 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 7C0ED55E620FE41431E53D5F123A63772CDE - -Count = 86 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = EBB65F57EB175248A1A358DFACF6C72866D5 - -Count = 87 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = AE59C5FFF2804A9D771D5F3A1971C96D08CC - -Count = 88 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = 75CB7390C1BEAB8E14A9E2078656763D8315 - -Count = 89 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = 4BA9A32074E87426C3A1E8778033FB7D98D6 - -Count = 90 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = ABD74D0B1CEC1BAC3D8F68C820B6BFD5FAC3 - -Count = 91 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = 3922B7D028D127210B515BA4526A15EEF7AE - -Count = 92 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = B3229E10230ED19E3115D8AAB2C2FF26C874 - -Count = 93 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = 01D5714473278DEF57D15935DFB3B3FE7876 - -Count = 94 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = A337944BA5A7CAA09FEF5E179BA3E2061E45 - -Count = 95 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 15E12F8205E6BD1CFC7A032D507DE132F889 - -Count = 96 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = 0F040999CF16A02720BB75F1526A5CC419E6 - -Count = 97 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 536E270591A2B18516795B517F56EC713697 - -Count = 98 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = 90E8833F25912DB60CAF3E9764715AAAE4C9 - -Count = 99 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 879FBF60C185BBFE90853C81325F21182B60 - -Count = 100 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102 -AD = -CT = DDB582B57A3577A876B2766C97590136C83BAB - -Count = 101 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102 -AD = 00 -CT = 825D560C794684C2E255A8EDF03AC13D604E6B - -Count = 102 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102 -AD = 0001 -CT = 43FC5E05814BFA2CF5F1F03DCFD170BBB6E592 - -Count = 103 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102 -AD = 000102 -CT = F7D5C0A3BC05FE176F4CE055F23065822976FE - -Count = 104 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102 -AD = 00010203 -CT = FC33EB148FCEE7678DBB172FD358692310EBA6 - -Count = 105 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102 -AD = 0001020304 -CT = 88B692D8E729F302F336DC454B7C3C9D8718E0 - -Count = 106 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102 -AD = 000102030405 -CT = CA7B86C98164E9DD0D728D8237080A36B856A9 - -Count = 107 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102 -AD = 00010203040506 -CT = 352EE404EE69AEBDBC2521BFCC9603AC064F62 - -Count = 108 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102 -AD = 0001020304050607 -CT = 2CC186B34A99170CC4C1AC132481979706A542 - -Count = 109 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102 -AD = 000102030405060708 -CT = 7549A468F7C000D3B99BDD89281CFAF52FE38E - -Count = 110 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102 -AD = 00010203040506070809 -CT = 6C02C03116E1F0DEE0FC5640122A4E8FB2C12C - -Count = 111 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102 -AD = 000102030405060708090A -CT = 7955239C25D6238FA1BB98C5D4C7E92C36896D - -Count = 112 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102 -AD = 000102030405060708090A0B -CT = A76AB94EC0202CCD49E60750C253924A2F3B88 - -Count = 113 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102 -AD = 000102030405060708090A0B0C -CT = 60EA7E28735A380499BF96F222E2B1CB3862A9 - -Count = 114 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102 -AD = 000102030405060708090A0B0C0D -CT = E8659015B8FD0B27A230F3A9D3E5D0845CF661 - -Count = 115 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102 -AD = 000102030405060708090A0B0C0D0E -CT = C41E8FEA5072744AE28BEF2DF69DA618236D24 - -Count = 116 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102 -AD = 000102030405060708090A0B0C0D0E0F -CT = 7473993FF6374FDEA46455E86C7E4445BB1224 - -Count = 117 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 01807D575B1FB8F37E06164B797D403B502E3A - -Count = 118 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 7A05166EFECDB16EB9F29A29D5E94699772EAF - -Count = 119 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = 31DE9E74F6C94837674A78F99187A1C491AA8C - -Count = 120 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 71D513C818BCB7DD05F8A4DF5A1C04EF4C8A96 - -Count = 121 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = F38604BE39C4E90FDCD64A591DCDBFBCA2B0CD - -Count = 122 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = 4FD79040A1DAFBDB7DC37B448E054F49DB0CE4 - -Count = 123 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 8782867EF352B07C3666A36C3E85BB76ED7F73 - -Count = 124 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = F3770FB618A261E198F1575BAFE22D708B178B - -Count = 125 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 7103019CD4CA7F098BD6A481DDF28CDDCF3B7B - -Count = 126 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = 7789A9A4A01C494EC4742B3775F4D63094C6BA - -Count = 127 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 112D0D190317BA7B3F21F4CEE24B1DCF32E0E0 - -Count = 128 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = C4A4B648393B3851217B84D3402A549C00C1ED - -Count = 129 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = 21841E79F59D58F97EE17F9241EA846EC2BF02 - -Count = 130 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 612D39456C0A8E44CE5390D17D0C8D10E0754F - -Count = 131 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = 04809FCEFE4235BE63D882F877A71AB27514A2 - -Count = 132 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = D9F98134BC3027D432B3A10BC925CEA785F3D4 - -Count = 133 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203 -AD = -CT = 4052A44120FD66ED59DACF9F2D5A492FC395A5D9 - -Count = 134 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203 -AD = 00 -CT = B6B62EADA547AD8F3785EA25368FA0ECA0E6DA95 - -Count = 135 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203 -AD = 0001 -CT = 65F2AD866FA9DD06EEE6A062FA4C4F65B736592D - -Count = 136 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203 -AD = 000102 -CT = E0B6AEB7D6F6CD47835F7BA0F4732045B43997D0 - -Count = 137 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203 -AD = 00010203 -CT = 70821BED5D7B290F081101AC8C73BADAB308F8E9 - -Count = 138 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203 -AD = 0001020304 -CT = 1CFAB8C559556AC42C1CCA285DFAA12D2FA9B17D - -Count = 139 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203 -AD = 000102030405 -CT = 3B34BD0F883DE083FAFD88C92890E93E84B30F65 - -Count = 140 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203 -AD = 00010203040506 -CT = 71BB4971A148769B5AF2EB077660F906B922399E - -Count = 141 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203 -AD = 0001020304050607 -CT = 35BA3E8ABAA0952F17357E5FEDCA907C24754BC5 - -Count = 142 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203 -AD = 000102030405060708 -CT = 6FE59A9742DC88E51060F0DB16FF999A5CA14F50 - -Count = 143 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203 -AD = 00010203040506070809 -CT = 0CB0AD34DEDAF63935EAAEDD882B0404CEC3A22C - -Count = 144 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203 -AD = 000102030405060708090A -CT = 8D45DCBDD737B6038C7E5CDAF5F9F794409E892E - -Count = 145 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203 -AD = 000102030405060708090A0B -CT = C0408E2CFE57A31B56EE940CED5D8F0EC83F4BDD - -Count = 146 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203 -AD = 000102030405060708090A0B0C -CT = F301063BA24577184E70EB5AF96B2DE0CF8FF998 - -Count = 147 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203 -AD = 000102030405060708090A0B0C0D -CT = AD939252BB86009E82CD37828DDFCEF5229BAE53 - -Count = 148 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203 -AD = 000102030405060708090A0B0C0D0E -CT = 95EE1A61B7F17432F694DEAEC784322D9EEE0A8D - -Count = 149 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203 -AD = 000102030405060708090A0B0C0D0E0F -CT = 41D85E6894F4E3D4910D717A291EF51DB70FB3A9 - -Count = 150 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 36674386D450FAE8F04172B5C03E6680754B828E - -Count = 151 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 6748AA8ECAA5D1A4115BBCB4FFA440605CC44467 - -Count = 152 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = C3991E5AD6862BC947B006A17EBE7717C14B6035 - -Count = 153 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = DE24B009AE8F32BD51C841A2D648323A1FA932B1 - -Count = 154 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = 3C342A457E9F75B09CF99C00F41A9270E30DF9C2 - -Count = 155 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = 67AE248FDEE52D38599690ABB139F1D6A64A89D5 - -Count = 156 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 8C5DF684E423EF78C81085CDEF74B33270E87179 - -Count = 157 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = C989BDB9533AEE746CEA375A5C4A29E9878E745C - -Count = 158 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 05ECAA004CF00169A52375BD37F90886EB2E52E0 - -Count = 159 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = 590A4026B6F0BA2960E93DBD5DB48986185BEEB3 - -Count = 160 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 9184D3983998DD7EB1B448E79714916B2962C304 - -Count = 161 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 8B5A00549B71D0A479CCD28C645EA08D833E430C - -Count = 162 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = 6016BD3A67707C7649A0A51BAE93509B3C6C8CB5 - -Count = 163 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 82351297F955EBAB844C0C8D762B0BDAB5EC27D9 - -Count = 164 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = 295A1EC209A99A77F9624A226E56BC205F856FFF - -Count = 165 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = E5180447FD41C0A2144E85177427AAC04B9677A6 - -Count = 166 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304 -AD = -CT = 6573E8C8F2123AA1C1043B6598AAC22119AB9EC040 - -Count = 167 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304 -AD = 00 -CT = 7D4430EB1F5EDB1F98F549B637B76A70B604F55B8F - -Count = 168 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304 -AD = 0001 -CT = 1EA7FC180F1FAC552A5C9BA72D8D4FFDBE7F264224 - -Count = 169 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304 -AD = 000102 -CT = 4A4FB4EC4481B720D651C8F40C67D925FEEFCC610F - -Count = 170 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304 -AD = 00010203 -CT = 073F3ABA591F3E14B35412B09A93C5E26B4945A11E - -Count = 171 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304 -AD = 0001020304 -CT = EB13C6B388A1E6BC9E907B2EF9F00B8EDCA4671ED9 - -Count = 172 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304 -AD = 000102030405 -CT = E62E0D6431BD1BE57D2DD2031DF36071FF7F4C1CAE - -Count = 173 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304 -AD = 00010203040506 -CT = AA4099E5D480BC26021E7D416AB99F59E80173A276 - -Count = 174 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304 -AD = 0001020304050607 -CT = 897B8E5DF1E3DF41BD15B79935B50A2678B02FBE42 - -Count = 175 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304 -AD = 000102030405060708 -CT = CB205C481C4B5AC27F3F3032C1A899136EA85FAE09 - -Count = 176 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304 -AD = 00010203040506070809 -CT = BEF4C88D8EF3BE19DA8AF050BA2C581E6D17DB4D47 - -Count = 177 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304 -AD = 000102030405060708090A -CT = 42AC22694CD242CF4B3D8775E99B66F6C138132091 - -Count = 178 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304 -AD = 000102030405060708090A0B -CT = 58BDFD0D1854D54CEDF2A9651255C396E8144804A2 - -Count = 179 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304 -AD = 000102030405060708090A0B0C -CT = DDA81596C3E86E11ADEE7FF1159B00FD32B5605D47 - -Count = 180 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304 -AD = 000102030405060708090A0B0C0D -CT = CB1570C431E22931183E88479B807EE1C8B8EF4343 - -Count = 181 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304 -AD = 000102030405060708090A0B0C0D0E -CT = 19DEF9EDF98381AFEA2FD50323D46A5CFF4A736EDA - -Count = 182 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304 -AD = 000102030405060708090A0B0C0D0E0F -CT = 679DF3C5E24CFA00CF895730985656E21E824A20CC - -Count = 183 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 499F9FA020A318C4ED3E18A6A4CFBA86F1E7BEA901 - -Count = 184 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 4F9094A8E5038AC19E124949F74503880BE0997C59 - -Count = 185 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = EF5F2375F045B01E7EC8FA9DB686B798AD54864BB8 - -Count = 186 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = D67CB7DDBA75A70806516179C7DF17D491624F970A - -Count = 187 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = 6D32B5A195E8E5424C22A1D0F74E97FBA8073D43FD - -Count = 188 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = F9DB7F8C4E60C9E3CB3A3179CE934E18BFDD1B16BF - -Count = 189 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 003BF3BAFC4D01F025E72DA0BB4AA1661C486D10F2 - -Count = 190 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = 5BC5A852D62FA1B1EEE33CE436943F163B8FE23DB2 - -Count = 191 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 3C7F3B77C64E8FE370F00103DF0291E9FEA7C9BBF7 - -Count = 192 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = A3AB300242A0CFDD791EC02431EE9E48AF8F78BEE9 - -Count = 193 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = E0F218DFB892FDF4FBD3860EABEF9605B7B128EA67 - -Count = 194 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 9997153DB72D3A0D5C9231911CE88B42C02C56B2A7 - -Count = 195 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = 2EBEA22D72D37388BBF16AB004AC4B9CA360A8E588 - -Count = 196 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 63B0482149FD9F159978006E2A969185BB1D9A3050 - -Count = 197 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = C0F3F430764504BD9ECF217543DDFB5F6862711C76 - -Count = 198 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = E292F15870CFFC52540BC4575ECA18EF7841DA0F23 - -Count = 199 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405 -AD = -CT = F8E71AB69663E6116FFEDA203C828BD2C8F2C0D5556A - -Count = 200 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405 -AD = 00 -CT = 5C3E6EFB651FF0B563B1117E57C53BEDAF11B927D332 - -Count = 201 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405 -AD = 0001 -CT = BF21452266B607E5BD5F636639809C9D263BF287600D - -Count = 202 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405 -AD = 000102 -CT = CEECF74E21F815A2C0E8451DC07F37155BC35F76E070 - -Count = 203 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405 -AD = 00010203 -CT = 92479B2EC749662B79B5DDFD483E2EEC7DED47B97C0A - -Count = 204 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405 -AD = 0001020304 -CT = B670025F3A4141F4E0C1C8DFE6AF59A87743CC9CD9F1 - -Count = 205 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405 -AD = 000102030405 -CT = CE8B0A2DDD877BAE24BA32A65D5284DB068E63FCB5BC - -Count = 206 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405 -AD = 00010203040506 -CT = 216FA57FD2E7A22E70598DF2FADE3E754565C16E0453 - -Count = 207 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405 -AD = 0001020304050607 -CT = DB80FA1B6FF03BE008CB1C33634C3DE0C5648B9F13E6 - -Count = 208 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405 -AD = 000102030405060708 -CT = 603625EFAC3A9FE3167556BE02F6A7DF7B83B217BB9C - -Count = 209 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405 -AD = 00010203040506070809 -CT = 0923D8FCAC83A4A9AF737515F10ED933354BDAD7EBEE - -Count = 210 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405 -AD = 000102030405060708090A -CT = BBC5F169ED2C0E30E0AAF0E74CA76DED82112ABCA88E - -Count = 211 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405 -AD = 000102030405060708090A0B -CT = 9C34095E8AEEAA2756895B63B49BE6FE80107C38F419 - -Count = 212 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405 -AD = 000102030405060708090A0B0C -CT = 8DEF11599C96C6FFB7AC41791E47AAEA80246FE7F261 - -Count = 213 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405 -AD = 000102030405060708090A0B0C0D -CT = 39A8FE9E1EAF0FEE8A518807D459510E46BC52804AA3 - -Count = 214 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405 -AD = 000102030405060708090A0B0C0D0E -CT = 40523AE8605CDC2232042258246FF10D8A96B3980D3D - -Count = 215 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405 -AD = 000102030405060708090A0B0C0D0E0F -CT = 710E298B5FC8C213D4E500ABA83AEE9A82B332DF72E9 - -Count = 216 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 09D88FCC7F9AC46A6295928CFA20D52C30FEBD5BB734 - -Count = 217 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 411AB45F4744B53415606EA152429D6A718A9A4C2149 - -Count = 218 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = 2C70F6520B78DE60D936D242CC5C295332676979FCBD - -Count = 219 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 2601F00F8B8D0E4AFB6EA1D62DBE670F76D0339E6706 - -Count = 220 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = DDBE54CADED50782F2B265670198A70813A75FCB33BE - -Count = 221 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = D59B1CF2A0AE142F7EF5E7760ED579E3B2FE6FC8F2F8 - -Count = 222 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 46972C28C355E0FC7DECBCE24B85BD11688858340B64 - -Count = 223 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = 829780C2999011919FDE507025D2EC9AA5E4BF314687 - -Count = 224 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 289F4823F891DD2C97E2B552281E61DFB259A991B8D0 - -Count = 225 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = 7AA067BDF3AD01F4010C2ED0241B0AA5E5B6AE4345CB - -Count = 226 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 29A25C2A80D5D74730F79886A8633D38421D0B757E21 - -Count = 227 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 422878202F778ACD92F485F5EE409EAC13F1FB4F88A8 - -Count = 228 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = D32023E7EA2C043C8EE1B6F8840A400BFB1604F19F19 - -Count = 229 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 79AB38828F0AD587EDE208EF5173F7815F5DD1582351 - -Count = 230 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = AB6BF440A8B4AB3F089A965984F61336F2513ECBFE14 - -Count = 231 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 9033F4E57D48A1B7D8F810115A4EBE82316BE0E97DA9 - -Count = 232 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506 -AD = -CT = 729B3B9E743BD0A795CB45DF73658FC21994161C684B1D - -Count = 233 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506 -AD = 00 -CT = 7522FEC3873A4DF846A9DA5AC1D28461B1962EBDD4FEB5 - -Count = 234 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506 -AD = 0001 -CT = 148809D7C17A90CC7D1D6B36A7795DC1DD0C83C8FA0148 - -Count = 235 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506 -AD = 000102 -CT = FB2D25C02E313F60BE3C7B30F6BE52DB1918215C791B9E - -Count = 236 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506 -AD = 00010203 -CT = DCB34AF67E7CDCD537502986F0C78CF5CBA999009BDA3D - -Count = 237 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506 -AD = 0001020304 -CT = 0ACA1BABF7C46B8225A96150B203CC9F2F8FEFA273B5C2 - -Count = 238 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506 -AD = 000102030405 -CT = 1583434E2C3B5E8853BA85070C736CDFFDB87650D50BC1 - -Count = 239 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506 -AD = 00010203040506 -CT = 78B1DDDE9511DA763BE6DAF18570A86D726BD831FC0E45 - -Count = 240 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506 -AD = 0001020304050607 -CT = 49C5999EE09D063642922754B02C3D81FA4D392A546436 - -Count = 241 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506 -AD = 000102030405060708 -CT = 7E15D24B95FAF3C4F966DECD29244B1018D6DA6B6DE56C - -Count = 242 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506 -AD = 00010203040506070809 -CT = 4EA954580DE70C65287795A6135A26EDF883FFA65DD419 - -Count = 243 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506 -AD = 000102030405060708090A -CT = 525276D22131280C79640ED5D3DD9E7ADDFBE14F5CF99F - -Count = 244 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506 -AD = 000102030405060708090A0B -CT = CA5EE0A9049E41DC61242F099B80376F6F8C055DF87E15 - -Count = 245 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506 -AD = 000102030405060708090A0B0C -CT = 697B3B9A775E07B2A6DB5ED9EF05F76A36B67778DA98BF - -Count = 246 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506 -AD = 000102030405060708090A0B0C0D -CT = 45A7E95D365C93AF25CD8F9611853C71D633BB86AE20D9 - -Count = 247 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506 -AD = 000102030405060708090A0B0C0D0E -CT = A8016C57D5593C6BEB167888789B497BCE857DAD38C2D2 - -Count = 248 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506 -AD = 000102030405060708090A0B0C0D0E0F -CT = 04A2D4BAA7D8E30FC6882E535A1BBBD5BDB440795ABBC0 - -Count = 249 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = AB0C054CAAB850E30DCCC28885347588933ED42DC17877 - -Count = 250 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = B6C018728EE5A37EF5D460AE7C4D029A674F013ACF121E - -Count = 251 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = 12F4AEFFD622EB161025CF18FF2E94C4232DE230A4DD82 - -Count = 252 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 401CECF463BBF2660499F2734B263CCE54DDD299860A63 - -Count = 253 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = B53FA9967E6A0B8FED9B93C597F728C6C1DFB43C03570C - -Count = 254 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = 157329404270B83E29BBA5CF6425F16CF8A8F0F68F15D4 - -Count = 255 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = EFE46E8E24604697228F992A2FF6AF6C1AB8CFC33CA911 - -Count = 256 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = 2CA77460B4E85E180F862B37A7048F9368EBE4486BEAC0 - -Count = 257 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = C683123DC8D5B8B86567DDA538289BF6A93E4C21DF5027 - -Count = 258 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = BD5DB9DB7FF6DBC2925D8B0357083AA7CE19531C1DF238 - -Count = 259 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 2EA62B67060EF62B9673BFC0E52BA339485DD11F3F7313 - -Count = 260 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 51ED1E5B59790C48ADA9D4382F3BA1B043ED65233F413F - -Count = 261 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = E2295DC6AA24FE9C2DFDBD0EB67AA8EA5C9D6F030D6868 - -Count = 262 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = C9A7D87C459B17275D10AE0786C6365D4C65B1273A3348 - -Count = 263 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = C6AA6F194BA28BF0A8362375B8899343767BE3425F08E9 - -Count = 264 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 4ECFBD8AA81A16C0A6394A785BE12ED48FE1E89CCAF3D3 - -Count = 265 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304050607 -AD = -CT = 00562D725FA4B26F2F57CD7629A380DC70FC469DB2A526EC - -Count = 266 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304050607 -AD = 00 -CT = 94ABC9FABECE2FF5FAEEBEEC4E59B56AEE414A15CA8049C2 - -Count = 267 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304050607 -AD = 0001 -CT = CB9B58B024B35218503A8DAF802443DAAEB417F79E73DCAF - -Count = 268 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304050607 -AD = 000102 -CT = 46B2893181A56B67B6959E6AD6A20113FDECF6053BECC35E - -Count = 269 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304050607 -AD = 00010203 -CT = C3286C49D09D6C854C9DAF13A6A0F1660C4698D92EF7AE5B - -Count = 270 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304050607 -AD = 0001020304 -CT = 3904423E1E27FDD32E1EE0AEC68C5C310240A1F2A731F830 - -Count = 271 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304050607 -AD = 000102030405 -CT = D920638A65999BA0AFB4F4F85C4B3B00A888BEF0FCEEECDD - -Count = 272 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304050607 -AD = 00010203040506 -CT = CF8322A1E1F163484A1C06E748494E41D23EB1CF0E8DF83F - -Count = 273 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304050607 -AD = 0001020304050607 -CT = 92B8C353F3189764D9049A2CE4285A23F6BE7C80AC1D2EAE - -Count = 274 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304050607 -AD = 000102030405060708 -CT = 95E5BAF8BAA44586DD6F9872E925486B5F4D6A62DE267ACC - -Count = 275 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304050607 -AD = 00010203040506070809 -CT = 86EC3C9EE7D47DB58BAE5080B13E096C2E27391DA5677F74 - -Count = 276 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304050607 -AD = 000102030405060708090A -CT = FD0AC22FCBD4FA7F24CCF48E722E6408AA9E747DA802DF20 - -Count = 277 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304050607 -AD = 000102030405060708090A0B -CT = 878B2DED3A349DA4E57E71F9D46A20897B052CEA9874B05A - -Count = 278 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304050607 -AD = 000102030405060708090A0B0C -CT = 229BB1090827F3F337B92D7585CACED0D2CBE41FF9649242 - -Count = 279 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304050607 -AD = 000102030405060708090A0B0C0D -CT = DE7B93C97A8B5AC7BD79BC730945A9230FC79C44613D4B24 - -Count = 280 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304050607 -AD = 000102030405060708090A0B0C0D0E -CT = 1B64F01EEF7D5D2F5F251B4DCA972300134D856939ECE695 - -Count = 281 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304050607 -AD = 000102030405060708090A0B0C0D0E0F -CT = B76A78C1675B168CEAFFF46B0EF34D795E16F4C196DFF63F - -Count = 282 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304050607 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 5458054D20B787BFD56C45C0AC9390CDFC4E163ED455238B - -Count = 283 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304050607 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 7A229D00F96D1A30DD858D2544C02C8E3A31AE06B123EF84 - -Count = 284 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304050607 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = B2ACDCFA044CA7A7503965496637C774037C00533B38CEC0 - -Count = 285 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304050607 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 3FA02BEBE3A1B27D10902FF144651F61D09DB77C475B4E77 - -Count = 286 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304050607 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = D2982A5492C8B8AFDDED31B310740B21EBF22D689FA2C4DC - -Count = 287 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304050607 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = D694571BE4AA851E58B0419DF4058A834714B4247F5E8561 - -Count = 288 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304050607 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = D5A14020CA29C703A9DAF5CF89A85B517DB084F11CFCE847 - -Count = 289 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304050607 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = E7BA73D72A32F3485AAE1673453C9F411BDEF5A6B5323777 - -Count = 290 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304050607 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 262E4331D1A386D6C9CF48C945ACE8CDC4BC6146BA5FE658 - -Count = 291 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304050607 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = 54F6886E9F0A72B69FAD73A605D3B2DDD1491F3D834204F6 - -Count = 292 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304050607 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 662100ECB5B654F53333A9F3800F0BBC172F40AF3C04EE9C - -Count = 293 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304050607 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = BA8CCAA866577D3A768DD3C6689A8F5DAF8C3AD8E1A6A578 - -Count = 294 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304050607 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = 58AC6C0F2506B7835E3C82446B0E73EC7D25778EDCDE9B8C - -Count = 295 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304050607 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 71279532624206781754D09BBC0087B5DDAD3D1B7977C4E9 - -Count = 296 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304050607 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = 70E6C7839E425F7D9FAD061F15C91066893822D23BF29FD5 - -Count = 297 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304050607 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 9DA8562B60DBC7030DBD56D56B7C3F2D1FFC6351E3A7A7F7 - -Count = 298 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708 -AD = -CT = 65B2390EE71A1E3C1CE35F517811BE8B66FAC4D0BBB948C767 - -Count = 299 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708 -AD = 00 -CT = 99B39F0E4B0F5B20FE246F85CA025F2BA225CBAA04B902C808 - -Count = 300 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708 -AD = 0001 -CT = 3229F7AD8A34539D7C20B2EE3CE909247E8EF79FCE2C158C6C - -Count = 301 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708 -AD = 000102 -CT = 9C9184A04EB5D8721B7D2E436C1EF0E53F5158733BCCEADABB - -Count = 302 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708 -AD = 00010203 -CT = A554CCFFCE67F990294801543EC0485EA1E5C061AE86E42073 - -Count = 303 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708 -AD = 0001020304 -CT = D214F5F59783BF8A3225D68D9121619E771858337CA2796CF2 - -Count = 304 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708 -AD = 000102030405 -CT = 9965C70A78FCA39B60103E4AB9FB5F5773DF2492B8B835ED2C - -Count = 305 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708 -AD = 00010203040506 -CT = 20992403696CD109A8C5B7AAA6116893285C2BC26AF9DA9C7F - -Count = 306 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708 -AD = 0001020304050607 -CT = 0277198CD629C0F724C93B8180BD1868ACDEE8C4E3CED839B8 - -Count = 307 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708 -AD = 000102030405060708 -CT = 9CB7DD376A998459F513A5F8811D9D16220E7665B4A12E2C15 - -Count = 308 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708 -AD = 00010203040506070809 -CT = EABFB38396B0F34D25557252430F61433E4C98ECA219457EE0 - -Count = 309 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708 -AD = 000102030405060708090A -CT = 05FD6871E4D4BC67C42F6E30F67C142F2846CE267E1E7DE969 - -Count = 310 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708 -AD = 000102030405060708090A0B -CT = D920D14508F84DC135217F976E57D2FC1A964A23EA1855FB42 - -Count = 311 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708 -AD = 000102030405060708090A0B0C -CT = E85AFC8033CE90A7DFD5B0852770ABEAB76542B457516B34EC - -Count = 312 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708 -AD = 000102030405060708090A0B0C0D -CT = 0B1CFCBACE3F9ACF07E62FD23A9B3F02C3EFE5FDC421494007 - -Count = 313 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708 -AD = 000102030405060708090A0B0C0D0E -CT = B70CEF38E5881DE4A3205B8F8FC6638E617EA0BE0DEDA569C2 - -Count = 314 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708 -AD = 000102030405060708090A0B0C0D0E0F -CT = 29FD01625B6CA9E684876007B46AA3CC24220EE553E892EDC4 - -Count = 315 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = CBF301F2FCAEEC30E8EF8E9A165D6CD621F31A95DC9E409919 - -Count = 316 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 21287B919454EED8E462BD951CCF55C5E42B621266A07333EF - -Count = 317 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = 1DE5FF722853B946C80A51AF99CBE7022AC99AA2BB9BE65594 - -Count = 318 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 1B1F17D8BBB4B4F6C8BE18B6EC48B252A6AB2353844A6BEA29 - -Count = 319 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = 05B8597CA52FEBA2F9FFCDB12C48BF3AA5007D6C83D5E873A5 - -Count = 320 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = D3B30988A82E57FB8E31CE8438442B8895E29E9605AA471984 - -Count = 321 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 2EDAD0440F6AE32D2DE683FBBA28882EF3DD7D6BA53A3A32F3 - -Count = 322 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = C901B2AB60422EEEFA901FB8A3472226CC86FD50A3143B48A3 - -Count = 323 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 3E20D2A2E564889E83CFCF98E45DF4781896864A758FACFB80 - -Count = 324 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = 70A46CB3E723BD4929AE27AD5D328423CE03B2DE1AFF9A22C1 - -Count = 325 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = A9B8B96FD872BBC86EDB750F0D8459D323BC82FDC34A005009 - -Count = 326 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 4F55746331A469BCFB8D81D212F4FEB436D642EF333BB2A3FE - -Count = 327 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = 518075931BCD087C6A09EBDDE10767C6251BE5A4FCC533DCFE - -Count = 328 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = B3131A8F163DACCC1B42AE79CA4326D65E9A972C69C98DE2CD - -Count = 329 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = 9E2386A05B967C112668D767930D2CA4E455FA4AD87D6048F6 - -Count = 330 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = A7D8A2A48210D8D4C171BC2E3B6191E9BD43072F6A60282B63 - -Count = 331 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506070809 -AD = -CT = 55AC6D75FCF952E1A8D2E0573F2AB3E15EFE2AE59F6B5A6C93B9 - -Count = 332 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506070809 -AD = 00 -CT = EA0C8CB86896C8370027F55E12A0C70BD9FBA989DBA70660E1A3 - -Count = 333 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506070809 -AD = 0001 -CT = 7BB888FE2837F6AF1D01C5A69A50B51157B493CC634A86C8EC9D - -Count = 334 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506070809 -AD = 000102 -CT = 035E952E827052A82BC1BAB33BC783D5D997CF141DE52F47FE00 - -Count = 335 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506070809 -AD = 00010203 -CT = 76F2245E2E17AF56F1C4E205A7DD05E11DD76B567AE256B13AE1 - -Count = 336 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506070809 -AD = 0001020304 -CT = 20714EAE061E5784A1392EB38C362EA36665E84E86BB3C817984 - -Count = 337 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506070809 -AD = 000102030405 -CT = D63BE61E6132D4C1DCFDA86AFCFE2B191214E5664AB341138184 - -Count = 338 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506070809 -AD = 00010203040506 -CT = A8571A698DC096C4901A84A7E173D48F50CEA54519D905DBB4F7 - -Count = 339 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506070809 -AD = 0001020304050607 -CT = 298209B0BD66A46DB19BA239FE23D43D17542595141DFAB34000 - -Count = 340 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506070809 -AD = 000102030405060708 -CT = E9604647885130C019D94A78472C003E947C5FE5723F08EAB3FB - -Count = 341 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506070809 -AD = 00010203040506070809 -CT = C18ABA4C5B647F7851BF3096B7C2AA7E050843C8CE037B4FEB32 - -Count = 342 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506070809 -AD = 000102030405060708090A -CT = FAF9245C9FCA5E2AFFB16B1C539EEF01804100F77DD02E6FCF1A - -Count = 343 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506070809 -AD = 000102030405060708090A0B -CT = D47ABAFEDCFB564A85536FC18A5E17F7E3CB2EFD6C6483D9A5B7 - -Count = 344 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C -CT = 72A4CE1F171851D17EADC87CCF9501B848BCD9431F47093E3510 - -Count = 345 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C0D -CT = C533936AD66B07229684EFA77386C412C61F33E1FF9D8878B4D1 - -Count = 346 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C0D0E -CT = 3DA31AE9A01CD24EA12C51AD1A01635C34855475400756BD5D2A - -Count = 347 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C0D0E0F -CT = B4CFFC51704741A1C71F87915EEFAA500603B96A735381740D6A - -Count = 348 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 198BDFABB6EFAF1112717F5A6BA846C1E2FA2AFA806F3439D4CA - -Count = 349 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 31D9CC1468AB2B18115D6DCC28DC31520D62A02201F79FBE1C9E - -Count = 350 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = 2A961BCA6E35232479AB2748EF331FDD104ACB5CACBBF1AB0AF0 - -Count = 351 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 81488B816042DF5F9A740664E7D80EE70D0F3C1A0A5425A9850E - -Count = 352 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = 90A752DE05C4ECC5E2800F074CAA9CA2BC7F2E1F6275256CF75E - -Count = 353 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = C771C9BAD21D39C819BD872ADE03D0CA6FC9E52A2895DE90090E - -Count = 354 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 09A64B3A859EB9F12E9F8E8B74C285027C5DC4B812E421F78A75 - -Count = 355 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = 23244C67BA6AC531131A0783C987622BA81032541036BEE1930C - -Count = 356 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = D3BC6760FDA39F93315F903D0C7ED300D45DEACCFA2380C92DC4 - -Count = 357 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = ED4B1EEB5C62B4C8089F91543F311D5585585D1E09D8787B5310 - -Count = 358 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 451AC0415863ED89630AF10F0AB54CDC28D0984AA90779554843 - -Count = 359 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 750BBF97654B40272F3A8AC540606BC9AEE53E0587E28CFEEC06 - -Count = 360 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = 0190D274B28FC5B1A60C3D609DA579A220FA14391B2F170200A3 - -Count = 361 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 3BDB857029C19E522BEB581B13FBF2841367858CDF2E26AEF0DB - -Count = 362 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = 023C89745D7ED2583BDC8B4041990CD2A514E1794360A3E9BDEB - -Count = 363 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = A4E97023B540D18641F5282F69363E7217714DC565B1429894AA - -Count = 364 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A -AD = -CT = 6738391299EF5C28BF8D5EB85E94DA2F9935DA680087318A42010F - -Count = 365 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A -AD = 00 -CT = 3482427DFDBF48333B215AC462C8F2A78FA8C8CC458A7BCC2DB420 - -Count = 366 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A -AD = 0001 -CT = 770312D13507B00AC52090649927D9BC259274199351982A8CFCC3 - -Count = 367 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A -AD = 000102 -CT = 358320132F901278740D5F16699063A0E630D4AF5CBAEE8A5D64C3 - -Count = 368 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A -AD = 00010203 -CT = 1F7B714EDE73A34E33CAFC7849D795C71C471F46531EE7C3A05343 - -Count = 369 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A -AD = 0001020304 -CT = E1137B620ED6CA77B102C3A806883EE82A4983F9AA1B426FDAD577 - -Count = 370 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A -AD = 000102030405 -CT = 51FBAF29FF5E4BC869C02FBC8AD4211D73272EC69A53334D09D453 - -Count = 371 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A -AD = 00010203040506 -CT = 1AE1D2C6F22D09FBC6C579D951E37085D6E594364970177003CC82 - -Count = 372 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A -AD = 0001020304050607 -CT = 93F548775C19EC74E3C20319B523CB9D6CCD73461D04D1AF118184 - -Count = 373 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A -AD = 000102030405060708 -CT = F11EC242F9516E52E51AB3727BAD561171C405489DD6829DEB5A3C - -Count = 374 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A -AD = 00010203040506070809 -CT = 0A10649BDFA0F8B6F1D8EE4CBD3BDA0AB60DB3043FEE6C1322A9DD - -Count = 375 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A -AD = 000102030405060708090A -CT = BFE2C9F86D8E90506616E2FF76F766906401D70AC165DB788D8C89 - -Count = 376 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A -AD = 000102030405060708090A0B -CT = 8B2093D96788227913947181996351AF80EAF87BB21B6F254627CD - -Count = 377 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C -CT = 8AADF340535E7F5706CB6563617844454F259B5EA34FDAF94AC03B - -Count = 378 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C0D -CT = B420C802624CB775A53AAC9A7AAE681729707EDDC96D468797D048 - -Count = 379 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C0D0E -CT = C3AB27CE94E7B6F6B7C79B16304770BE4FE1DA3679A26C5036C023 - -Count = 380 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C0D0E0F -CT = 733FC012331A2F66DE835036FA643A32D15CDBF86D3865315D6109 - -Count = 381 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C0D0E0F10 -CT = C80A72DC1374C6B25DD50FBF60571AF5ADDB266C97498BB19AE566 - -Count = 382 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 39FF0036DDAF3F9D3788E8B2DD900435207ED6BD4475C00E174A4E - -Count = 383 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = 3E4EE9C89FAD1924A34C5C4FA8D335089AA99BCF1A34B1348D0750 - -Count = 384 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 84BA4D4A46DC34B694496D5E21476E78040B25B636DC5154FF155C - -Count = 385 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = 3F4DF7A9A040756F3FD21C17C525E35DDF3F55FBAABD78F4767592 - -Count = 386 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = C2536EE152FFE0E9505E70EBE5B43DAF8B9EDFE8F6D7E0E1D44461 - -Count = 387 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = C524C74913991975404C78B32CB30470AF4728C28E18ADB4EC5822 - -Count = 388 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = E8EC62BAF466BC8C1503DD6D0F2F78C5A392B1BE78E88441B9C327 - -Count = 389 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = EC2DD0F1D2821770A65E6DD7A1FFED34442C9E318471AEA8E9393C - -Count = 390 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = 75CDC4C16C461A281899FCA31A5CB8D56CDAE406AA68F1969C7DE3 - -Count = 391 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = ABE6F9F78316E4C21B279DE608CA82FA9F92240B355BFBEF4164CD - -Count = 392 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 2AFCCE636A3FCF885E5C847D05B143C078F7B2EFF812AA16CF38EE - -Count = 393 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = 7999C7FF89FCAA300C455635433D282E63E2AEAD3DD236C5EF5C35 - -Count = 394 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = BF54E2F790E9F84D57556B0F38C4CE5064990D57965CA09449ECBD - -Count = 395 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = B67317962F3320F49DEA0732A7BB3733BE424D87FFC8DBF2A26C17 - -Count = 396 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 510966A0639BCD7F31421CFADF2597BEF82C48C68274BFBA740A9D - -Count = 397 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B -AD = -CT = 42AC0A598AEA03A366ACD7CBDAC5B4DE3BCAA28F55D8860B3BBFE103 - -Count = 398 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B -AD = 00 -CT = D7AB515BC1475DE44FE9A3DC88A01971486D03B270A1B827E53777F5 - -Count = 399 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B -AD = 0001 -CT = 81E4ED5ED4E8A05F47C6108BA917D944E1F886B9D0C4BA5B18F4CE78 - -Count = 400 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B -AD = 000102 -CT = 4C33175295338F13BFE879368FF60A64DE2B5F26F7C7883F9E72194D - -Count = 401 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B -AD = 00010203 -CT = C0C7EDABE392225212F1109B0EA071A355EF5A4B790B19F6A1D8B270 - -Count = 402 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B -AD = 0001020304 -CT = 9730D37D05C75A4621805BF6F74DDD277B44747EF66F9085B6525994 - -Count = 403 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B -AD = 000102030405 -CT = 83DA491A3704454403D721201E7EFE0410364DC114ECFBB8DE398F89 - -Count = 404 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B -AD = 00010203040506 -CT = 91094E14652D08834A1B1704865FE1AEF1DB0884DA2EC3C3F23D893E - -Count = 405 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B -AD = 0001020304050607 -CT = 49BA3FCB0818C6749AC3DC01B7F44A7C8A1FDB0D86A1122A556A1191 - -Count = 406 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B -AD = 000102030405060708 -CT = 4E8B38C2F44395E7F2CB3269EC3D6FE121ADC55E0907B47E3E9915BC - -Count = 407 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B -AD = 00010203040506070809 -CT = B7881A638A7E5FDCAE6DD3B88F6FC2160B2FD13032E5608BA2AE975B - -Count = 408 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B -AD = 000102030405060708090A -CT = 379FBD8D899F3A6463C308126867B062B0D60ABD5B93E17FCA9BD811 - -Count = 409 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B -CT = 79D42F39D25879F7B397E628CF30A16E552A393B220CCE18DBD86635 - -Count = 410 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C -CT = C344990B0D4DECAA95C7CF4826CACCCF470E6C7B37D01FF2A9E0349D - -Count = 411 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C0D -CT = 9141454D8867855A2CE7F6F1147DE65B262CF85A03F555782B3D1A29 - -Count = 412 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C0D0E -CT = A11670B033A07DB051D38C831879F446199482369B1DDD75D648044A - -Count = 413 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C0D0E0F -CT = 08207DD86929B508A61394BE41B7DAE1028C119A7577E50401875F4D - -Count = 414 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 881D1F8BEDA92D530C3AAFDE462C865FAA912493C9B72CC54A43E05B - -Count = 415 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 5435F5352EBCE41DD7751CF1A9BB9042BCFC2FF88E5555F037B44879 - -Count = 416 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = 5FFEEC63452BB29AD34A85CB08F0396FC841CFF947CFE8D127C5CE27 - -Count = 417 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 37FFA1CFF6E9A678F1BC877F56852A4752A52499CF80029C125FD94D - -Count = 418 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = 20E8A729B7F9D3F99E92F4A72D349AFBEB48B436AE5C9147AD73A996 - -Count = 419 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = 25178CA0D43A684EADFD7A64E4331E0F7094FE2487F97561CA82958F - -Count = 420 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 43BD07448CFA892BD8AFD42F53F6B84901D0F13198535B82CB7F8E36 - -Count = 421 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = 34D790A2F8B2E0F1A2552E16268AD7F8E4022772A7840988A0D3C422 - -Count = 422 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 65FCFD40A826EE0F6A9B85DA01B6A3CC86B41AC8AF93932E744ABDA4 - -Count = 423 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = 4224BF38BD80796605ACFA8B4E20FD85F4786072E815EF224BD2511D - -Count = 424 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 3E52FA947137D432C87CC141584AC48B5BF760A3239D2CDCFFC84DB7 - -Count = 425 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = DC2A63D9DE04C2F03B88008FB953BE7A1BD65C78E2B9796CBEC35616 - -Count = 426 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = 96F2579950EE97DA4A0FB9B37819A07880D6A7F3990087CE585D3B18 - -Count = 427 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = FB77C8A797F942451242C3E0B8AB125C080DB752D284558C5382A5EF - -Count = 428 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = 56F36726E38BB5C905C3652EB5C83D918330DB990CEC089A6138BA9E - -Count = 429 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = F8E214574F803E42718D8A43A2F222793DA7A8E01FA94C27CDBA13FD - -Count = 430 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C -AD = -CT = 6E7781AF6B13C3A69CE33D655D94ACAC2FA55175EC462BB5665A785464 - -Count = 431 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C -AD = 00 -CT = 66B2DAA3755382F97FAC5A98BD314676BC8648B6606858E80A7515B565 - -Count = 432 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C -AD = 0001 -CT = 96E1941C1A631E07F55402E977AE92B6CA7BA117E084BD0E459976DF4B - -Count = 433 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C -AD = 000102 -CT = F7201D4E43C92DE96C4184F6F0630EBB1DF6D2A555F691D5006793C802 - -Count = 434 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C -AD = 00010203 -CT = 754F5A55D4C83609CA22BCF3E303718AF3B55CCDFB0FD9DC1A2D5BDB73 - -Count = 435 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C -AD = 0001020304 -CT = 11B023EFF00CF1AC783CB6E79197B911D5A40DD165CA464D3D10A924B7 - -Count = 436 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C -AD = 000102030405 -CT = A8FEA54286FD95E437034C475A10388417C0B241C7AB481435DD56E3DC - -Count = 437 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C -AD = 00010203040506 -CT = 6EEDE78EE96418CE076EB945A0657BE2024BA27FF0E19E82DA0A9B8F22 - -Count = 438 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C -AD = 0001020304050607 -CT = F7BA6A081154C0E2319F4BF31B469FF4B30F953A54C8B57DF941C69109 - -Count = 439 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C -AD = 000102030405060708 -CT = 836E04742B93963E00319F6D1D6FDAEDBA17B5262FA7A1511D81050FF2 - -Count = 440 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C -AD = 00010203040506070809 -CT = 735EF70ED0F0FA6CA192976720BCAA8CDC96E654015C7CEEBC40B2C1A0 - -Count = 441 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A -CT = 28BE3CF48EF2A16E5EA128492DEEF2753868F879DB66A70728215E9ABF - -Count = 442 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B -CT = E64ECF630E37528F7EFEA099E5A7C4B78F6C126C969558062FFD42AA5F - -Count = 443 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C -CT = 9A3DB97DFAE3B7006568E40B420D18D6C06389BAB3550257A88355DDB9 - -Count = 444 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C0D -CT = A71B2523C05F7A2D68BFDFD8422C0D24CA67DA103513568C487A815396 - -Count = 445 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C0D0E -CT = C3AAAF130ABCA18B64723917760F614E2D64897F5A21C1FC99048024CD - -Count = 446 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C0D0E0F -CT = FF4B615D9DE037C24E6B4F178811BBBCFE43F55D676321EA9A30D42B6C - -Count = 447 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C0D0E0F10 -CT = C33171C69354870966887C3DB16B8CF1A9B23A5621C072267BD4F929DF - -Count = 448 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 0A3EF91D95CD396CE3AD1A3D01D6A8190C9C708AEC8D8B6C8307B05356 - -Count = 449 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = 89BC5450C801BBBB7F7033476A9E1CB6B880C93645F88879AF5D4416BB - -Count = 450 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = D77B58685DFC78ABBAF5AFCB46FBDE1B35A85049D4A0F56218C9DD8427 - -Count = 451 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = 5B2487AF428CB7BF8382E88E68828A4E1975B2956B6E371ED96AECC0EF - -Count = 452 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = 93CF9BB715C72CD11DB60D3440C5175E6959C8CCA3B60483089ACC612E - -Count = 453 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 16316CEBFD7B5B22185DD5B73CFF03F6DAE47417B7A4390EDFD5BB5366 - -Count = 454 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = 16D9648D18CB4C0EEBCA35A8F6AFD930FA6E2459BCF3FC2241DF57065D - -Count = 455 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 559AA4F21FC0E5D1DCEB83E8E066DFCC7D07A348F4915CAAD0B3312EE3 - -Count = 456 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = FFF7D239F32F76A07E4D8466AE5533DE16D15C90187E235BD3A0B86012 - -Count = 457 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 1E878D9B360192262FEFE57111E9B175CD08A301281BEFD387C9F92CC4 - -Count = 458 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = F6051CF672CBE89625042385A334D43D2008CCE5987FA06F5657A2B9AA - -Count = 459 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = FCC230C717A2724C0573946017DDF08DC57F29678B6C99D6046C582FE0 - -Count = 460 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 6DEA420EAF936A435C277C4282D00A417751F5DADAEBEA2D093B02724C - -Count = 461 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = 21D8226E60262DA1B690C47C966049C4A764180C9AAD8C987F631DC09B - -Count = 462 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 2E0B320C6C06252EF56E20CD5A5BCA538C13884AFE41BED4BCAA849C3A - -Count = 463 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D -AD = -CT = D32A025F741AC81E00F890A28EB084F87F763FAD3BFC89EB556125B20926 - -Count = 464 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D -AD = 00 -CT = CC174A631094E77EEFDCFDF113508FBEB66408FA89770BB1CF0C27C9A637 - -Count = 465 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D -AD = 0001 -CT = 47CC77F7911ED4EE926CACEE736CD0A050085243F5658338D3F825092637 - -Count = 466 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D -AD = 000102 -CT = 77F544737DCC2680439106C3163F9F5B0818B1E8F9A95529B794E65051E6 - -Count = 467 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D -AD = 00010203 -CT = F8C259812491ED24DE0C7AE83C408CB07902146C89DC6B2A35120B80C01C - -Count = 468 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D -AD = 0001020304 -CT = 242DFF307446032E7CC3736652808EC6990052A51755C2DD0C770B009C7E - -Count = 469 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D -AD = 000102030405 -CT = 99ABB101967E054D0C7C685DD92478513B20A50108AC702F206E0FD56678 - -Count = 470 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D -AD = 00010203040506 -CT = 0FAA2D999D771133651686FDC297F094CDDC0DAB565B53EFFA23F352E52C - -Count = 471 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D -AD = 0001020304050607 -CT = D28FCCEF2AA6BC48B9A7B37BC209ABDD11CA8E0B7E059AEE4D58AFC89691 - -Count = 472 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708 -CT = 2296F3F65905753A5E351B2A23B8712B9780050208DC0C46A4A2BBAB1FE0 - -Count = 473 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D -AD = 00010203040506070809 -CT = 09CBBCEE57E46A60DE27E2D019D8AEF806926402474BDC4738838EF8F42B - -Count = 474 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A -CT = 46CDA743178C65167DFF40995678DD66545DC91039961C0ED94E08066F85 - -Count = 475 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B -CT = EABA780D29C494216B0343F00B37565AFBF5F284ADBA1D5F22AB4D00986E - -Count = 476 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C -CT = B5FF25F148023F14A17A203B8AB7D98726C526F88836DB57D196BFB784AC - -Count = 477 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C0D -CT = D13CA054039357AD1E3625DB3D95B65437C04796AAF5D9068B387784E285 - -Count = 478 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C0D0E -CT = A577EF706793B6BBE0CFA9A9171E31128184FF1BEB5F9BBB29384A8C42ED - -Count = 479 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C0D0E0F -CT = E238B189791A2EB31182CE729979CB6436C75B6F597D0F8705738331C655 - -Count = 480 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 2AC8DB728E97BFC26D23EDA2E2FD50CFF171AC291D323264DAAA96C75CF2 - -Count = 481 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 19CA0366E91B6CBF367E041B6BDE770FB13827954CB9F324051E9F11255D - -Count = 482 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = 099CA88092B9401EA4B9FBE28EC25C534A122DC79F391476F8163FA5E23E - -Count = 483 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 30FA9AA5ACA1529CA2D4CB136FB5ECA5066F69711238908DD636EAEA28A4 - -Count = 484 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = BD8750FE4B1F835CDDF43FBA887F573F791490FAF0A4E476A1EF03D6EFC1 - -Count = 485 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = 3DDDA46134633EA29006205F90F8C5C38A77621D41D7231C76BB94E855BF - -Count = 486 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = FA7FABEC9A64E61110F70831E6A6FE861FC3F10A70F28377DBCAA9DCFFFD - -Count = 487 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = EF5A3511EDE91CBB11FA4105394A5115AD2C883753DAF2D0594F8C70EB50 - -Count = 488 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 160459779EEFCD5786E335CC1AC6F770E1F99D5401BE97D56A3EAC519C68 - -Count = 489 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = 8B8020CE1FA6FDA4A3CEB6722774869433A6C3BC9D03EE77330EE71DF708 - -Count = 490 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = D4AD2F7F3713FF57186449ADD701A233293A4389131309DFDBDD302EDFED - -Count = 491 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = D089187469A89C420A79718FC1F7526D79E0C5280BCC6DAB1B8B1695512C - -Count = 492 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = 3D2FC321394D14043A8AC796D53632798E4F905CB977A914314B1B57F2C7 - -Count = 493 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 75C68FA70E37BF95407FC09B8E6255AC2FA7B0C52D430627E79A6DD93AF3 - -Count = 494 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = 2BD934D70E842794B54E11151A0A1B914C92E9DA26CF2E160F046121CAC3 - -Count = 495 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = A04010C88123EC3BAC2EC1E8EDB8D2FA203695D0FBCDBE60549C22D3C4B4 - -Count = 496 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E -AD = -CT = 81753B47EF73FED880FB7E26D9B199B17762B14A2B943BC5E3EFDDC307F52F - -Count = 497 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E -AD = 00 -CT = 173A461A7DC07DE4D9C2813F8C94190F2115E3CE592E68C045CD71C55F3B6C - -Count = 498 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E -AD = 0001 -CT = B08E491A9BF89C1D1B6DE2E5B229271CF2DFBFAB607B5BF9304AC91E26BDF9 - -Count = 499 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E -AD = 000102 -CT = F5E9F38F137B11EEC401AE0D974138C65F2CE13B1783E99D976193318FB5C7 - -Count = 500 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E -AD = 00010203 -CT = C7D5F25EA5F8FCDE29080A838A5EE72891506A5EBBD8D6851A75DB7CE51081 - -Count = 501 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E -AD = 0001020304 -CT = D41D3A8E9C9C23FCCC25DA1F8B8C3B0A75FDA409F734AC8560567E6A71A611 - -Count = 502 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405 -CT = 7E056D8C28B53F9FD645F27A1029298C47022B5B110F20BE3C8C6CAB156EB6 - -Count = 503 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E -AD = 00010203040506 -CT = 40264F74638FA16F8A80CBBCD3A6DB00F44C9F6D37842B2691E1F9F30A5C63 - -Count = 504 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E -AD = 0001020304050607 -CT = 12F0EACB3703155FC699674925D9E9158536352D893974DCF7EE48EA80906A - -Count = 505 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708 -CT = 2113276A7BC1A8FFD1F4807322BA262B80160CBC0A493AD63AA1E14949B397 - -Count = 506 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E -AD = 00010203040506070809 -CT = 4AB030B52F71262D9ABC4DA089777580C5311A64E99D9916FF06193737E799 - -Count = 507 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A -CT = 48A782D28EA81749FD9C1EFAD8B9862AF0FD760604A3FED3FCDF8868B1EE5B - -Count = 508 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B -CT = 049F743FBCE3F48F383A3BBB90086B582FD68077D9D80019554BC4C3003253 - -Count = 509 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C -CT = 41E090907C703F0985809E8D0EB5840DC5B1CCCFFC96B8B7EE7F4E9DFF6E87 - -Count = 510 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C0D -CT = 830BFDB0FDA1C0503B59FD13B8AE92B63D3C407060218E58A413824D91CE12 - -Count = 511 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C0D0E -CT = 59A5DAE9305CBAAFF1B8C4BCEBDCC8C05D5C1C1879CAA3E38D9F67D3099C0C - -Count = 512 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C0D0E0F -CT = AC704FD8CAB008FE6986885ABE8BD6D9FE66AF992A3A0D17D4AD8F6D87AC95 - -Count = 513 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 7F633B5BD328989DF509E75D04E951B8C9AD1B3182CA33A8D1A03D65363660 - -Count = 514 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = E8ABF967817E981102D4DEC0AE1304A539A9747DB8362817A2A9B72E516B8A - -Count = 515 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = C75BCE9AAD48E9A5977A17EEC4DCF8A92413A84CA9961E65B73CC317EC597F - -Count = 516 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 9B51D640035C1F2D58C36F1E4AF0E98FDC84C42A20A2F4F8FA68349354A95C - -Count = 517 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = 239CE34ED29D1C289175AF088F2ADD5EFBFDEB11D6B695451E984BC5176E77 - -Count = 518 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = 934CBD026C0A594EBEB646726900E59AA17C21ECF2B27A65FCFE899C2326A4 - -Count = 519 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = D7F34596F307A034AC58910DDDB16EAA5682BEF4D7EF1E8661DC46510D47FF - -Count = 520 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = AA89478EB3C61D8BA75B48E3B49C927A348B9CA4FC30AF99869A9927D8AF6E - -Count = 521 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = B4EA8AC58C39E7D2AC50187D219528DD753EBDDA73CD8838D122558419BB11 - -Count = 522 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = C95E19CE1934D2005BF7F81FE42D78C8871CA271FD2E43A47D8BC03F822D0D - -Count = 523 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = D998F9D2EBDD3D6646EB8FC0B165F89D64AC4B028C2B6E7F217F683EF98745 - -Count = 524 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 62B3B90B6684C01A95DB2BD854E21E08BB3813632E9E4E0F37B98C08813900 - -Count = 525 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = 1A9C168BB119D27CC1C8048093EFCE50D4EC17D5C9013D65AC676301C73C8A - -Count = 526 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 9C4E8320FB7D3F1FCFA0254314EB74AEE3CD38A146B3DC1DBC9A8C8DBEF501 - -Count = 527 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = 6376561612EEBD6F15B78AD9E5428E7DED42B6693D99414DF5FD7D5F28D803 - -Count = 528 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = CFB6F55D3867B326428032C67FA2E3B54D8F04B9F61D317E3074ACE4560FD9 - -Count = 529 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F -AD = -CT = D19A9D1BE23CC54F810339EDD4E15C7039841C4802A94CBE2E16E8581E776CD4 - -Count = 530 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F -AD = 00 -CT = B229F2A40D4A0275B4D930690927F1F5DF24F10AD9EA0F5C15B074EDE29DE172 - -Count = 531 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F -AD = 0001 -CT = 21C4FF899502B969AD591D23641831AAFDB9F29B4A0976D854E6412F4FCE1387 - -Count = 532 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102 -CT = DCE5D6B6187E194CFBAC0F15FFC7371AA213FBA58FFA4B8C8205D7E0E80F2864 - -Count = 533 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F -AD = 00010203 -CT = 5E0CBFD0386F1F093C433891D7DB2F2206BA8089B790DB52857F9D20FE25D9ED - -Count = 534 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F -AD = 0001020304 -CT = AFD1FACF637BCE39848C2F86206C8B83BF00D7525E22724AD2C5F9313BF23B27 - -Count = 535 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405 -CT = 5D58F54F7864A3B2B3C35B82FC41C094D9A9AC699FE915D684BD03AF125F9DE7 - -Count = 536 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F -AD = 00010203040506 -CT = E6B27AB3868E9654140889E9CC78AD5FB482A0C3ECAD9D67557E1E52E966BFF1 - -Count = 537 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F -AD = 0001020304050607 -CT = 75EE1416329095B6975C556E46277F6B5A390203D0F94D98A9416D6080BB3DC7 - -Count = 538 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708 -CT = 0437554C5E7FC89F1EA2DBA4F4CE5956710DE120963E2AF99C15EF03FF0BF0DA - -Count = 539 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F -AD = 00010203040506070809 -CT = 4D1D544AE3EB10C29944A675F43D52517C6BE1BA964C884A906068CC6B6D2E58 - -Count = 540 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A -CT = A95AED7E615329B231B78D76778D76D9C5A82AB4B6BC9320B6B5A0D2CE5BE002 - -Count = 541 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B -CT = 1C8C37D8D2447718DA85C0B3732D5912647A3D1F26F41EDE72032CF6087846F5 - -Count = 542 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C -CT = A9BBCA855D5446D570543C3F07209C69165340A90C4EA99EC82D5644AF2AE4CA - -Count = 543 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C0D -CT = 7A4245969A6DE10189C4B83D62F04059CB0D6C61EE25996A0FAAA5391FD4FBD4 - -Count = 544 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C0D0E -CT = BFA06890B546744B74DE7CE7598F9A362B063C07A91D1B805F0290E65F0D89AA - -Count = 545 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C0D0E0F -CT = 2E0420E78E5D9124A4B11EAE2BF98BCDB46B94515F170AD559DD79EFFF808516 - -Count = 546 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C0D0E0F10 -CT = A96D0059BEE960418847817B9BCC7E768BE00ED3B5C5B7615141FE711095A627 - -Count = 547 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = F766E9CF8D4F0744C5EF061317179AF96B2A4B31902DC589DAAD3848743AEEBD - -Count = 548 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = EC55A0785A1509DAB3B1B26E2079CA225FAE46E7E2F86E8A31BCCBB8E463592D - -Count = 549 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 82847D7A430A645EEC8DD7C62761654AD484F7A68FB53801445E71A0BAB5AC8E - -Count = 550 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = D30BC3E62EA955953ADDA58AD69E821A5338714BCE55B36B6F4672600B4F6D61 - -Count = 551 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = 69B57622ECEE58AF0886818D56DEAD5552F03BA8BB5BFE103F966E67691B20B0 - -Count = 552 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 7C0D224B9BB027886FB78CFA195B88C73D5D1BC97B9855CBFBEAE87A6423EBCE - -Count = 553 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = D31062F289C9F682C43294F1117A854EC62DDEF67A65E35DF668EF8D6B2BE1B4 - -Count = 554 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = EB455781FF38E80B4698B5BF6ABF8B80331A7DDDEBB591FEAAF53AD26887CE29 - -Count = 555 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = 78B94D94758B3C63C6BAAB66E2AFB71977F967D0C56F0596ED9E165BEEE71FB0 - -Count = 556 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 58A62A65CB0708624D71C3CEA1966F03963E3529B112F24EABAD00C9B2D016E1 - -Count = 557 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 7CB60F2616CFE4C4B133130FC46F60C0649FB7D17B3B308592C42DB0B2544CCF - -Count = 558 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = 8C4B38841A2F74E663470A49453CE8F9B6FCC20514A32944ADD108E763699CB1 - -Count = 559 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 1FAD316BFBCA523D9ACF25A574F1629C031BBDE92271A8CB21F4C5076DC6F449 - -Count = 560 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = 2BF10401D161A15C5D2A528BC293B6FA0EB3CC0FEBA63CAE112FDB575A8E9876 - -Count = 561 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = CFB37931F8F32367B5215E7FB506E02CA219C12568EBFE91DFFD86751F7651BA - -Count = 562 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10 -AD = -CT = B384E6C5CF48A30778C972190B570320908307D9ECB4E078BCB1EF224EEF8966B6 - -Count = 563 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 00 -CT = 69B63E35490C2E68D66351332ECF134D36912787EE97E0A994C6F0DB98BA7446E0 - -Count = 564 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 0001 -CT = 19907ED5D526E966C886330E271D2AD36EDBA0F0269407E5A2AB0D908C6F6B0C35 - -Count = 565 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102 -CT = 1F2F65DD509EDA19B302C4D26EA9554F0E46F7F4C44C5223B9828D3C9E1BED0A0E - -Count = 566 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 00010203 -CT = E5DF7AD6A6E44605D2EDC1705BB206F9F2BB121DE64C1A6C7CD0128817EFE60AFD - -Count = 567 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 0001020304 -CT = A091CA4AEB121A3AAF5724DFDDBF08D13CB7A057A9725FCB35EE93B94E51F2C35D - -Count = 568 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405 -CT = 90206A6C657C0CC982AFB76EE3F1A343F4B5201783350384FFAFF3C8ADA7885AB3 - -Count = 569 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 00010203040506 -CT = A2489ADB4140C5A92E0295F0D997FBB560B2A06D3BBAADFE992492251AC5D5B788 - -Count = 570 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 0001020304050607 -CT = 1B98C2D9ED238C341183BF1D2A884C8D2264D4BC8950EEBC6C5B98B24A4E837480 - -Count = 571 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708 -CT = 87384C27F8170C36A87A65180D2342EC2CA66291AA38F0DF09943D455E5FAF4C30 - -Count = 572 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 00010203040506070809 -CT = 24D8A0E5C29724C62757F4FBFC566B92093CAAE327A457426171ACFCAC7DC68A67 - -Count = 573 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A -CT = AC389C7F205306B70D49DE2AB3C6D60BBF8A6BF5A610447E3EF02BE1FCB07E37BF - -Count = 574 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B -CT = 6C6FF07CA1A43E4B77E9F6D4C4BF1DDBA5B4C1738485D7FCE19DD9877D982F591D - -Count = 575 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C -CT = 50FDB6C1B64C267315AED54DF92197D4ED8DACD7D554D43D850017610DAB58C4C6 - -Count = 576 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C0D -CT = 433FB3CD0F6D484CE20B2E65C8A9E6E3C75340E81E1B0A57F36BCDD8F6EEE1D523 - -Count = 577 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C0D0E -CT = 9FF11D398F11129629456C8170C7E85AFB3688FA220ADDF48A5C78248A5A4D7237 - -Count = 578 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C0D0E0F -CT = EDF2F56C37629A219E8B361B723A313B379E58642846ADC96E8FFF9B0AFF8D7CDE - -Count = 579 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 83E795E8254A4199F9F17C2D5BDDD83DF2D538F029595FF72239031D31B171031D - -Count = 580 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 635889A6571DBF62F7760E314B010AD274AAEDC0E75F026A396EC355ADE289FE04 - -Count = 581 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = DC238BF560AB5D48B95F4C160B7D9BE7E184327DCCA9C9E0D1E17DD90519E7F1D6 - -Count = 582 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = E37CA2BCDFE734679EAE4F09FC6A189709B6AF1D5DB10C01FE3AA84A27C8974506 - -Count = 583 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = 3029C79B7BD156E9582569CB8A6084E8C176649AD6A878F0E2FB84E702DA15775B - -Count = 584 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = 9E6522D974C18D957D702C59076C81BFE64245978F8768AEA8C58C0F857B8B53D5 - -Count = 585 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = DE7AD120F30E33C51BA47F33C43390E228AAA0420559DB5E55A77406E01DFA0AD4 - -Count = 586 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = 376149ABA8317D30BD5D481A48CC5DCC0AC2AABFCFED1F6BA02FD3E81082BEC7BA - -Count = 587 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 7D5DAD4392DD1BEA1C2E2C85DC9959681B7423457C33ACF0E5ABBF0050B87261A7 - -Count = 588 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = CCEF81CCCCE43BDBC4CC82F6D59F55C7C43E392146F3B98137D797F13F42C68EBF - -Count = 589 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 96FFF869411C71A4EDD20DFD41B738E77858AA7CD4075748AF1EDA5C07018A3083 - -Count = 590 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = F54FD8252A6161938100BCFB1AC1B1C73DE4A8662706E4EE16721DD39F495CD488 - -Count = 591 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = FEEA9E2262C6C0A9D2A44F400FE57361024C5ACB0FACCD7CF20E4EF35705CE0A85 - -Count = 592 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = A35D64B33B06741AB5D3B746488818B37C4478D0F02B462426B4DF48A8DCCBECC6 - -Count = 593 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = 82A09DC07FE703A4D3679405451576116F79DF54478248FC6FE495DF41A05E56AB - -Count = 594 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = D0AD12024EF99DB762AC3A113A9CA0A49EE03B40F5C2373B87E88FF846180F2D37 - -Count = 595 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = -CT = AB74F27C928E11DDC6D2FD952C5417F24AFBA212ABB9007C4631F7E5EA65126DDA7F - -Count = 596 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 00 -CT = 9D67771D17B6F4AB35AF90E06341009C9828E7F9942FEC484BDD0C5EE9EB6D07D9AB - -Count = 597 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 0001 -CT = CD35E6549AF0F0DEC14B1220C7FB2818C4ECDF53AF87ED3E3DAFDDFB487D2C025539 - -Count = 598 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102 -CT = 86AB4B72DA9D6E2418435CCD8FEE0805F7FA00CDBE389BC86C4A577521A6C376EC9E - -Count = 599 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 00010203 -CT = 4BC78B0F330B5A8A08A78A4E3275486C4AAE0CA4E28388787C054AC7AE0BF71498A6 - -Count = 600 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 0001020304 -CT = CE10CBA14C7DD632C9481951C5B7BBDCB5237AB0ADF319CB8A054A7027D794D26F03 - -Count = 601 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405 -CT = 11C4093F4C1DCBD2F9C5534BE962178AA6F28EB7636C99E10C5CF4CB7AEDDD80807B - -Count = 602 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 00010203040506 -CT = 0BBC84622DE862CB25CEA9210D681C6E414BCB24216674AFDD5583983E8DF32E44AF - -Count = 603 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 0001020304050607 -CT = 07A072CDAA4D48B2F7A5BB5EF8D3C37F5CF81F0F0FB4C67FD93511360C4D52A73E6B - -Count = 604 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708 -CT = B8DB93A90FAAF9429E478D54B780B988B0B1C5B49EDE56993661E53E6AC244B1B92A - -Count = 605 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 00010203040506070809 -CT = 1BAA98E8FA882FE54EFB00F30BAB4A419E04FF59F9F8B77A74FF662F0D432D0461BE - -Count = 606 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A -CT = 09076ACFD8816269888CF1195BFFED1357D3FB7F41435B393A3957E9E094EA4AA635 - -Count = 607 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B -CT = 0FBD35EA6633C319A1AC859E28D9F340C7C9D3BA94974B78FCE105C9A11ADEA31A3C - -Count = 608 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C -CT = 0FB3CEB378EDC586A2653623361214716D42C5DB11B23F3B91ABF142F487D281D889 - -Count = 609 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C0D -CT = 8017E8118F4D32DD84DF2D8426C276068050760ADACCD83A88DC1DEA31A83AEA3CCE - -Count = 610 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C0D0E -CT = 763D2333331E6023D7758AD3C1905FBD2E45AE879791D3D0F38D841FC6686AF43498 - -Count = 611 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C0D0E0F -CT = 779DC12001DE7CC2191AB8E56819CFDE1B77968A5A77C7091354DF20C1CF3BBD592E - -Count = 612 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 72A533564A849FAC06CA2694C9BCF3220D9004C3B1ECF6B49866681AA1E73C39CBE0 - -Count = 613 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 468D7ED2B82BDF80CDF85A5C9EF421F18174C49922F9DA71135F1B3D9BCCB76EDCC5 - -Count = 614 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = D668A7A9772993F5872F6C99F2C4555DB68403A78C443FA1C2142E7A2CBEDE8987C3 - -Count = 615 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = D6798361F3A51129A9D8593B1848A6141147EB499EFF3C38C6D1D7F8C62DBBCB46D1 - -Count = 616 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = EE596EFB6E10AAF382FB0D63FDDCCAC58BD283C03C979349EA237B8EA2F4A3AA7A21 - -Count = 617 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = B831B2108BFEBD71B207FFC53EDD8F5FF901A6549356E0D48B2098BB5039232CA062 - -Count = 618 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = A4ABBE30DDF18990770E6E14C89374E3956E66261D7D3AF060CC05BD31D126C98A39 - -Count = 619 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = 9FE1245879787CCF66ACA7E50BC5E9707FC752E9D86BC0B4D51FF077DB794B3A05D7 - -Count = 620 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 52C0B13CDBBEDA5EF56FD822EFD8901AFD5F604A361D6CCDF0B037F829066733D3F4 - -Count = 621 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = 32E74898112C5FF60D3D6B2C5E170C7C2B146000ADE2F11EB927B7F1682F1C8F07F2 - -Count = 622 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 954447EE518A6883F3B040C834912680132FF938A6E7069DBEC3466303670C8DF407 - -Count = 623 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 199A3E02951C446C563D17CD4806400ABAC1099E62C01FCEFC7A9E6795B8BD06EC27 - -Count = 624 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = 1049DBB40D1AEFBD0540EEAD5D8D0BDA06C034A50E718F772D984C5ED5A3DFDCD9CE - -Count = 625 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 8A35BAA4DFDF5028FD943FE407729E6A5D24823D52D646D01A623A4898B43C6CADED - -Count = 626 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = F3530A6D139FCAAC3B52BD9A8C87F1004FEBEA2C1DF043E86F4BDC7DCBFD847CD1C4 - -Count = 627 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = ACB21FA7B1CFC381BA02B59A0A52ABF28DC4FCDFAA64B6CA7A8E1BC55714C53E3379 - -Count = 628 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = -CT = A28E0E9E47E97C2D8C32626722C90F11CD29CF04AAAEEFE8A4E124A13DA74F178E5DD2 - -Count = 629 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 00 -CT = 4D9E985AA7CCF2ED7715B4639770238042F4F41BD8E50A3E9D975121F43C517E930D6C - -Count = 630 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 0001 -CT = DA7530439A044FA6BF2404FE030EEF24E7CE499C026749F7A7F8A6B9CA2001C06CBD01 - -Count = 631 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102 -CT = D56608747A4B5E894872745C88DB0393041BE9453BE2BCCD2A058CEA1F76A7FFBC79FC - -Count = 632 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 00010203 -CT = C154F60CAF10054932F73397BB770D229F700774A922C075810FA0B6C9D347BB8C1008 - -Count = 633 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 0001020304 -CT = 99E2C70096790E2A7CF3FCD6D0B4CF9A15954F03A0CF49C1705BA822B2E28A4143AE06 - -Count = 634 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405 -CT = 1D234DA86B21195E8F4DE1E6E6B454389B05463F38BE610B8391DEAAD5D9F59CBC7EBC - -Count = 635 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 00010203040506 -CT = E007E5D564C90958349DE4A7A26DE9D04E36AC06ABC81E68347793CA0348FF05B885D9 - -Count = 636 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 0001020304050607 -CT = 9614540CC63EB1798507FBEAE6B141593C36C86752DE51ED13917F73DD13E1827085E1 - -Count = 637 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708 -CT = BCB058F77C0F851D856765E134D4B568368EC8FB2F53494AE6D313EECF0269B83C89C8 - -Count = 638 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 00010203040506070809 -CT = 500FF2DEA7AE7CBD85EB4ED5F96D7BE2E93604C3BC249797A7E29E3256EE8D9A8E0227 - -Count = 639 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A -CT = 46AD42F73072DD0B81F805AE4FFEAF77CD37B881F6C72DDFA64B735FC88BC296C44A3C - -Count = 640 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B -CT = B6FE9BCA44336472DFE3BE5D1589F4E7C02A132DC27AC153B418126E89464D4F0179F7 - -Count = 641 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C -CT = 5E9AFC21AA1F1CC066035308EDB876B51B9CA6D12474035890B08D85FC6D04D7EAA89E - -Count = 642 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C0D -CT = 355E87358CF9042FA10A1AA488FA0B8EEA3BBE89DF11A2C9BA14B93D08526DFB97AF66 - -Count = 643 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C0D0E -CT = 7899E693096B6F092ECF4813C47695181D2BFE03049D4AD49696F589CF3494DA19B70D - -Count = 644 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C0D0E0F -CT = 2908AEBF7274164CED90AD437C2984A4CD3ABB6BA13FFF66661D25891A48A27C0D2119 - -Count = 645 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 5CB458FB7A5F0F6A95AD49886C8E6165F60C472AE0E469D92C2E3CD021A6D7328FBF01 - -Count = 646 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 5F14CECD60CEF9D4C90B4CC849C32B2EE5DD8C93343EBFB9E1C1CF0D323FA19B5BDCBF - -Count = 647 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = 1B4384B74C4B486723F0D40BD4ABEC2A9369AC8CAAFC663A16EAA102B94530916558D3 - -Count = 648 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = D3722F23959277537B560A186749642ECE4984923298DB89D8E994605F2DF76F10F040 - -Count = 649 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = 0A2CE31C03DE5A30489987905D4445CBCD7B10E3EC6EEC6E7F1E8C81D2B44884DE71B4 - -Count = 650 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = A41D381D94AE0284C33C9A1D9178A36F01E715CDA2CED545F4A61D8FBD418820ED7786 - -Count = 651 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = BB14F6A5E3E07FE9B01899DDDFFFD234B165AD329F8A0898173F1F13557954171626C2 - -Count = 652 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = 837DFFBA250914F90AF7C2C1C33B618A2B2239214E4774657EE29CF09998F54D8220EA - -Count = 653 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 8D189B917264B2BD5AAA1B5DF542C5749B4B8E581D6B28E5A05FDA07EF935EBDB74904 - -Count = 654 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = 46D38B8848527102C33D5520A2B3F94F032BB1A1B473C54D6FBB016DC9428A4EAF6CE7 - -Count = 655 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = DBFEE90696093FFEC849782EFA4B8DF3A7DCE4BF6A3BF08CBEE3EA253AB438E8BD7422 - -Count = 656 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 6983EC3627A1A5144957F92AD3EF9EBD37E7940CA777424C65B56CB6C87F9A2612EE60 - -Count = 657 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = AB552C5D31FDBC92413C58FB6930CA4BD1AB5E7B2B0B8E33E3DC08D5C5289953E4CEA0 - -Count = 658 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 8CAD6A087E62124E474BEB93B10BA2351B9502B1B5B6401C2A622FF8952C513DA30AF2 - -Count = 659 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = 626715171D5C2D2335E59591BFB032A3F01A7F67D58852E84DCAD1F078FBF29B465A1C - -Count = 660 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = F726BE319E031EB8F785734111F7B2E4F2AE83960EA043A16A113F65069574F6D1C465 - -Count = 661 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = -CT = 44AB77ABD38C35AB98E5177DE3FF97F031C91BD37C73307A3611D14F6C0100F44FD8A85B - -Count = 662 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 00 -CT = 44013388DE35170E8D291879D2341FC08EC54C100FD6D1904983838E999EC4848B196869 - -Count = 663 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 0001 -CT = 843C352DF0EFBBADAEB8ECA4A895BE081781C4F3B0E2E4A58F45BEC087D22F9C3241E1DB - -Count = 664 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102 -CT = 29200065B0B32D06FD8CC55558EB694E8196E9AD9023C05843981B22E86B962F7D16272B - -Count = 665 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 00010203 -CT = CD066CE45F9B76FB44567659A748FF4C8B54865F3017BD7C2FE05597ED97C934CABA7408 - -Count = 666 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 0001020304 -CT = ABE52920F478A98F068A00E11A41B2C7467304820B2722ADC9B553A499C8F953439AF703 - -Count = 667 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405 -CT = D67BC5B8D03654CF05C27BA8A201B19B29C3F97DDA4F3EFECEFE2DA4B2908B3869DFC5D0 - -Count = 668 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 00010203040506 -CT = 68F24E76070DE0A6FED4AB230ABAA8329E3B90AB0FB99BD5368E06D6EEEA1DB701084731 - -Count = 669 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 0001020304050607 -CT = A18E47E2BE0557F602055756DF66BA6EB38AB396395E831675F9E086891399B4E6F20DF1 - -Count = 670 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708 -CT = 4752BEF596ADF41112C34736E00217E3EA5768678129CA56D0545B900CD927C0A8BCA433 - -Count = 671 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 00010203040506070809 -CT = B919DFA285A5A882BCD002EDEA7787D3751B0EB13D06E12AD3482099A091EDABF361E471 - -Count = 672 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A -CT = DDEEB9D55D41105B423C222E903C814E6D1A7592A354DE6714B84E75852C17EC3B76C439 - -Count = 673 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B -CT = 1F87AC13A609A1EE908D4DDA69E711DB123E63421357C2A645BD4DBE0D42780795B90DA3 - -Count = 674 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C -CT = 1E951B7BF2EF1202112DDC7BC2E15565DE92723153DACF85D6CFDC76B319EA4B4FB37FE5 - -Count = 675 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C0D -CT = CCFBEDF3B9501122C73C18DF370D59349716FA5E32A58721C85D51E0D3DB1B0C059430D3 - -Count = 676 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C0D0E -CT = 9F270C7196612E5C42E808DCA14890E355BB03D6BC23045FB4048562873F7F79B2C3C8A0 - -Count = 677 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C0D0E0F -CT = B4EBFEAAF33CAFCD2A7017F5D4D0638D8E41A8E9D8CC133F853A89C3560CC6E58FB0AA00 - -Count = 678 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 7ED4A4ACB07F5A11711E57CA77DF2B709C65A010E1C47EA830D471B35C875630A2D5FEA1 - -Count = 679 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 22C903463C5778B9B886B6EB95DD7A97EBA35BAEEF3FDC4F14509B6AA4F287A8EADB9A27 - -Count = 680 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = 043B62AF2F5F671F0A4464A18803CA15E6F488C5F2E3BD94D7CDE874C4FA08CC410CA53C - -Count = 681 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = C9CC114E946508AED4D9CDC95ADE1F88912E71F2537F04F1AF143D80FA86E3A4A866EFF4 - -Count = 682 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = 8D6668FBD31BAE1D869002A5F062AC744E0F384861811F5A366485C5CF42082ED3AA8C7F - -Count = 683 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = 575F7D33C817BCDC00D6083ABA5091461E6F7A58041A9987D5DB172E3D27BA10F675FE27 - -Count = 684 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = A96580FA8049757E6520757B5336334A1249DD80296C47F6F48835BF619A823D69116C7B - -Count = 685 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = C1293B1AC0DD751FBA52A85953F2D62C76744D834118CC2B00F6CA8F605F815CD47A9980 - -Count = 686 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 65F79A2B465E7F117C0244D3B51F545ACD653BD190A8A6D065EC9C42D75BE0BFF7C56550 - -Count = 687 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = 61823094B10FE08D7F51014255F9F4E331CDF1C1E51B45AB0E0D9A93A72061721CA0D316 - -Count = 688 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 2E7FE00EADF808D5425C71D4625F8076E447D1B342E3266092FC49D56769BD2E822BB3D9 - -Count = 689 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 3109850DCE8C33B5B4D3F9C24845A8804E0ACADFB54C42D5958B5631BA645D17EE32EE94 - -Count = 690 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = 5D419636B126307EE6DF150A74E4AD9776886AAFC7282599FD1AA3C5E413F2ECDF60ECCF - -Count = 691 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 2E709F53ABD724AE49D841EFA1131AAD706C57E4AC0CF7300F73B388FC9377DF154D2EB0 - -Count = 692 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = A37D03B9372081756D88C72B7BDC9312D2D37250E3EFD67784C906E9538A0BB3CF774CE0 - -Count = 693 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = FF3FD27D6AAE9632001881EE2F9493BDC0E64FF0D7DE7CFA482C309E0AD90E08515AEB79 - -Count = 694 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = -CT = 0C88355679DE6B44408B463EC690CC509D9BC6E166A88AB1177A829B8F93F2ECCA4AFDF822 - -Count = 695 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 00 -CT = F7FC713E8EACDA4011D564848CC7445CFE5755A78C800FCEBE3ABCC200378E15098B218D65 - -Count = 696 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 0001 -CT = C3EFC21880C6959305CB13ED806A96280FE22451F9E58BA72758B75C6560479F73B33D653F - -Count = 697 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102 -CT = C79A998054D6CE1844218CF9BAB1DFE410CB80F9A17925BDB34A7504758B2B04C59B733402 - -Count = 698 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 00010203 -CT = 64E7C2DD086B1D3DE95F1FCFFF4FC80704EF820A9613ECF57B5341576A530F9475AAA36E7F - -Count = 699 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 0001020304 -CT = 7BE72ED32265DFD1FA0F656CC19A1C53428694B71A444103B2F6813099EB765F8C1799B34A - -Count = 700 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405 -CT = 14AC7AC4CE525E7703C566C5C4CB5E733F557C68EAD66A8632A793BA8259B1CF7FC6FADD13 - -Count = 701 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 00010203040506 -CT = 758268000F7DFCB2313611713F8D715418938CF0D021455627DDE5F8F1978D2D216C95567F - -Count = 702 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 0001020304050607 -CT = 3C880A1145CE2E7B039E06D005CD5ADBF24380A5C543B54048B5091CB8BD113B443B520A00 - -Count = 703 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708 -CT = 8D0DC81DB2374669822C09B594535A570BC077474F614B42A947E928D1F9A8D9C40AA00302 - -Count = 704 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 00010203040506070809 -CT = 9A7C0F2CED63F5D11EA5EE6D3667AC3E7E757F93D9BBDF28F166723C1BE0212261BCE0B994 - -Count = 705 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A -CT = 0A49AD1A03E9CD47534A5E01B4C08C1BAE0E0390E3EB64C1ABA1B1C9C7727F9FE15714B24A - -Count = 706 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B -CT = C6793C10BC500654A53914B9AAF419A85CB3379A8E1B43E9B7DB9227B674B27A4B5D8191E5 - -Count = 707 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C -CT = 580F16DEC536D1C7923FC8ECBBB0419D267B5C6D06C884B77EC0329BC3239CC60876FBBDB4 - -Count = 708 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C0D -CT = DC817B27EF84E188A2B68462860F2E8C7C4E8EC7DC73CA462E457DFF1BEC5AEA64DA38F02F - -Count = 709 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C0D0E -CT = 535249D36968CE3318094537A3BB91545ABE05B7297E7744185A184A4C621ECB68320CAE6A - -Count = 710 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C0D0E0F -CT = 45E6C2E708B73CE902A93EEFD94304E641EEABF7F3BE394614D490505DD3085B674EE0ADC4 - -Count = 711 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 9301219E88626E553CCCC3FEAA3BF27CEDC6D3877D04680DC4531AD49369816EDE12A77B18 - -Count = 712 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 8FF6117A19626BFBA74ED189C7EA5751DDFB6A83CC4BCA99AFA0D40459D97A27302719A216 - -Count = 713 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = 4495DA67008D019E1E7C998D1F2EA9B87A33E4FBA2C427A6C5736729A4520AC3876BA59D39 - -Count = 714 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 83F573AA2A42F8F903B7D5B67C5E10D89BCEA5076647E5E53CC0DF43C3AC44A43146568AED - -Count = 715 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = 687B324B08D504C07FED48CA4CB33B962ABE9BEC1B1BF89B0D73D3070E64F4A732C0DA7803 - -Count = 716 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = ECA16AA73476E8957AC868AFB93D9463BEB7627997364D270952E7F6D743EC727C6B1FE700 - -Count = 717 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 7339F04816D9723FB6280CEB7E6C3CC32A861CFCE30B75B07D92DBD2F001A5F3ECAF9CB267 - -Count = 718 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = 3A14AA9F8E3513B03AF5B708916315D0B706D1B308D2B6214ABE51C33E9798EE078939C0FC - -Count = 719 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 3F20680604B2F50239D1839B227627AA0D4B8834D6F64702CC81E1983A66B790551134F927 - -Count = 720 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = AA23287E37C99C444D186C70F31282E1F59A3020F749358489847404D36AC2CF33D9DDB67F - -Count = 721 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 98535C31A74C8DFE2538A6742F43633CF3DBB20393187087296AB8982F443AC22F8F718204 - -Count = 722 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 1EEF0B0CB941D427B0CD42964884A3487E43C19734C72935186521FCEFDD889C8F0396AEC4 - -Count = 723 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = 6690D5758D0B948B3039A945A60EA95B0CEE6F58120B8BAA3B0B95A99D570B25DBF033ADCD - -Count = 724 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = F603618016D39C3CFE67892B5FB57596A2D93E9D51E0EB5273034D51D1D0B42843AEFFB89F - -Count = 725 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = DF4990BAF4F2E8976B3A7CB504C8EFBB5ED2C0B0FB3E7DE3E6DC1B2B856D4F8FC960BF0149 - -Count = 726 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = A8562A8F1339C1F8D6155C8579814D6D9D70BE9C7EA0539938EAAC39728E5CDCCC85646AE6 - -Count = 727 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = -CT = CAAAC3A199E5CF7B9E836C2E4E37CB2937244ED5769559BCE19979381D56EA6389DB423283E9 - -Count = 728 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 00 -CT = 4A52C49CFCFDD4627585D583667F78707550C2498DB3530DD1BC8FFCEEB287D4FB0FB6ECC5F1 - -Count = 729 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 0001 -CT = B1F993DB9371577D17DEC96FF27E72F1502073853F317966B6674E7938B50BA36DB69F315781 - -Count = 730 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102 -CT = FFF43DA707D0A764844B5F040F958447EBD582E4B8B0620CAB60D3E8921C4B6DD85E8F52EA4A - -Count = 731 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 00010203 -CT = 42436DF07A38739274ECC5D0C7BD9841778D4A87E65B46CCBC16F38EB1E267109389025E732A - -Count = 732 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 0001020304 -CT = A418653B3F6B8C0122A1DF277C14BCCA90294DC8887F85D91F6F597A86E8E0A9EBB40E86C37A - -Count = 733 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405 -CT = 0B473C7D75F3269BB29726E5013D9E9B1DEAE89E8BBBBBF63AE8D1224E1AFFC6BE4CC14E0822 - -Count = 734 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 00010203040506 -CT = 1CB009C8CE6CB1B02AF24DDCABA738748A8798667F9098A32A4E5F54B0F5197A01CA2037E761 - -Count = 735 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 0001020304050607 -CT = B8E486334FDB67D1318C06A365388331BF6064AD0127F2B07C30C4390BAEAFE8FE5220F77364 - -Count = 736 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708 -CT = 324CFCEE10FD1D5E5DB74D41C2C4C0A2B426A8971E5DAE9E6857D111F090551D8421E544D2C4 - -Count = 737 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 00010203040506070809 -CT = 4EF5A50560888E7165FC20E5F8216DDE3AF3124A696696BEB613926DD867044887A3DE82E84A - -Count = 738 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A -CT = C330CC9995A04E51F5E80FA81A6FD760A8AB069877337C8E6C29519D390C218A37454D692491 - -Count = 739 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B -CT = D8AD99AE058B96BF3F976957734D107520F07E546EFBFA326E0EB5778820B0FD888B16266823 - -Count = 740 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C -CT = 0459314DD16DD0F3F93017A67273BF62D02221BB22919EDBDE92F45005CF0D4B356AA0CDB30E - -Count = 741 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C0D -CT = 2F8EBFC8D7219789AA2D46AA7774CE0FCC214EFE3A0B540D7FA2E9E6F0C29FA56295AC67E8EB - -Count = 742 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C0D0E -CT = 1E546A7A3C9BEC3115A1C57B83434187DA39ECB8AF1EAB216CC21DE60D537CAAF879BC606FA1 - -Count = 743 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C0D0E0F -CT = 3F3026ACA27DE67286191147E3B31E543623F54E7C114E84D6B6A0A811B64644E3653388E50D - -Count = 744 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 81F61D5CF120623AA7A6080F7C382F87DB86D27F64EEB677B3FFC81689D1A551D32E129C6189 - -Count = 745 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = A5A8A9A2C8E0E064E29C91D67044D53A1B3A450ACC292CFB014DC620DC00BC340C2C3A595396 - -Count = 746 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = AA0A4CE54D2F7C216A1AFE16EBC682F67B636FBB83201DFEFBCF6530CDFA946E0AE10E267BD8 - -Count = 747 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 959D372BFB863FF1E940B190234ECB4CD964F3A0A841BA5C51D99B785BEC95967CF8650E5F95 - -Count = 748 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = 41C9F94B5A7BA17CA479C88175E2E85F8D29707FCDF4515583D4E783B4F3F3511C26F4D30382 - -Count = 749 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = D1BC71E61E870D9A2073326D162789F282F43B4ACCDE67118DE40868220DFBC09DC964FE164D - -Count = 750 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 0CD8D2AED8A20185CA8E81E1BAC1A097752A430C4809A534967335CC6597D86F34552B0F2F94 - -Count = 751 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = 4FBF939459AD906A1E9E70AF706013D5E607B62573619EEEBA0CC9D441FA0E74A5DD75E31CC4 - -Count = 752 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = C2CF6FBE8A78411CCDFE8CA6865E9D767DAB2CB1625AC844AA88540340B38C4EFDE5D9B494C2 - -Count = 753 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = 3334AAD3DB494976FF61B72EC1431B5063D458BE1DAC5A7CA8C5FAB1E9B2B87336B41A9F8A70 - -Count = 754 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = C4F6C4101EF1D1E58290E04127962D6C3C9D909C46F78BDA1752717891C42DA6CDDF8D8E67B7 - -Count = 755 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = A0CE2089082A59DA267FDC447C1D4ED1FE26313D4C6339CEFB3A824F3D7283EA9471F336F953 - -Count = 756 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = 0DEB99D4005FB661D8FA78116832FAC3B827E7C37BA2DEB266FEBC4C8AF58827475DF8077FE1 - -Count = 757 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 8DB0FEC8B4EA74961344EA5362681DAEC484C0A1D63D5B46B84B86F2BD998342D1F2C0045D48 - -Count = 758 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = B1EF6205887BC032D66C68EC597A22D340346485C9ED443CE6A193E2D6BF11425E471D403965 - -Count = 759 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 8C9D26D292D8C3510B3CC4ED49AEAEABFEF2D579DD0FC360246F34301EBC5BE3CB0CC9766CC7 - -Count = 760 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = -CT = 4342B6375CAEAFC042FDAD93B39F7AFDE1C78BB740EE4AA6CD635CBFB14110AF7267C26D2B13C0 - -Count = 761 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 00 -CT = A1B26FF68BE6CB69B88E75D6A346437DCA9936DABEAD8A0834AD1E193776C4DC19B82657D2D917 - -Count = 762 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 0001 -CT = 53CF2CF3C82A3B48D45F02E87A71763275F03C09052788D87C89CB9A864DB05E2505546E934D5B - -Count = 763 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102 -CT = E582974E0E029F0734AAA09DD05C1DA581E3D6E4914DEBCE67E57BC98F4D3CA94F2D61038A8A9B - -Count = 764 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 00010203 -CT = E4FE97658894428577EDED6B303366695522331097B5DF32FC4345E7DF6FD4733503C53FAE7B53 - -Count = 765 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 0001020304 -CT = FA7A4BF12C69B36F10FA8D358F8A4563222EE2587ACD979BAFBC3649502B050D52D1853D81D40A - -Count = 766 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405 -CT = 43E514F197282220CE4A54A37CCEC23C10691DBAC0FE2A4BFF55D9C87412A6330D075C1F28C5CD - -Count = 767 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 00010203040506 -CT = C7602A0AEF045F69FE42EA10B938C20E11E013A2D1DE573CD1B2089D8FA73572117095AE8B7F1D - -Count = 768 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 0001020304050607 -CT = 520AD11BD8DC2065F3FEECB4A123FFEC193951459121F8A101D7277EAC4722416BFBE82E09E422 - -Count = 769 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708 -CT = F444D35DEBF61E46EE9E1B2F6F67E36BD5D50717C74D81B0EC6876079B7FDA322F28504687123D - -Count = 770 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 00010203040506070809 -CT = 853B6F3CCEEB806BB7B9B54111EA9BDCB4A3B898D0953BBCD1B2ABFA0DE761D9E7111C31A6D845 - -Count = 771 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A -CT = 74B6744CA954E5BC680C9FADDEF33284222073FC806201891AEE33F83AFD49FB2411D613F7F20C - -Count = 772 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B -CT = 6E0E5015F169870EFC60062671187979E17B469CD02BCC90931954ABFF6138F54960543E41DF66 - -Count = 773 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C -CT = A99E0E4C88245066033AE8CF5FE22B1620ED25D8EC784FC89A04F1CB3709395EC2EA23B77DF7AF - -Count = 774 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C0D -CT = 80DE0A46DAFF779DB30525A4DD4B3E332C601AC3CC9B1D4BC172F1F1C1BBC92DEE5DBFBDBECDCA - -Count = 775 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C0D0E -CT = 2F5887BF2DC4C16030ED4D8156E8B0A586ADE223508FE24D11649C8542535B218454AE8C81BA1D - -Count = 776 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C0D0E0F -CT = 7242C157D5882934037CB11B21A4A4E66CE05D81FB5F274A78CCABC0DE7B9006C1781E37551643 - -Count = 777 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = F95DEC0A19B14E5ED0067A356F7B2A5FECF4DD69F3ACB5DD4348DDE32CF7D758F10061F612C748 - -Count = 778 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 3A3F1ED70D95D39323FBB34997234F28886179CDCBF870ADD09816F4124740418986654CF13B3F - -Count = 779 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = 3C08BE5EBB6FE3A9A1D37D3C5F55E904A0D1BDD4E1060ACD31E60F05372CB64CCDF3F383173CEF - -Count = 780 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 6899999441829004DC2DD3EAFB15BD6922D6280411FE956E8BB850D385A9BE25BCBF2BB32AEFD9 - -Count = 781 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = F0EED9C82B41735C7DA911484A5609AA88897FDF0EA74A5B5812EE5AC724B75B469572E597B126 - -Count = 782 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = CA95AB16423EA71AA4623D8CA880069E3742797CC3B549887518DEF1F2E0C1BDDC733B57A56A3F - -Count = 783 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 91C75C183FCAD10F57BCAB7AFE8EECA2EEF689593D9B8265536FDFBF47004E047A212EB02C51CF - -Count = 784 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = DE218B0190F1F432F361D395DE5F4ADAD5DFDAC217D35A63AA24557F976BF57EC53075C1FCF075 - -Count = 785 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = C95F875B7420920EC84B26404052097B27E2B740837DF3545533354DBE8903247A52B9A1F26DED - -Count = 786 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = ED4D76FE1AD326DD35D85D01BACBC756A73E09034AA353BB60CE13994AC7D0DF574EF937BFD478 - -Count = 787 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 07C53914DFD789739B99A61804935834454AA25E3F4C318F84D8973CEB36FF0824AB79F54854F2 - -Count = 788 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = B6FD97406DA3C9C2EEE032242CAC09C7B0F60764F810F2566D7BE58ACA30638D3C31BBEA193D1C - -Count = 789 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = 74E60A17AF502D85639D43EBF8EBE06472FBB2C8853DF2346380F609D753CD03059438CA282674 - -Count = 790 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 30F81E5BA360786675CFCC48E11F71A45055A6F91E5A2132D17FEC7B6D335926C3AFF6FFA1EEA7 - -Count = 791 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = E3885223FC36AE2C78B2346B58DE18FCDA28629575E312087D756B58D5FEE6D24F618A4FB85A13 - -Count = 792 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 681BB9999815EDEADF2C96E0817D2866B91321AC7818399D38DF5069DA7A9216B8FB1F1C957536 - -Count = 793 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = -CT = 0615B8133562E3312FCEE922057835C5EC588E8AA5253834FAFA480D2A5BE99BE5B7753730D4E3DD - -Count = 794 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 00 -CT = 86AFE5F3BD2944B08A0CF676BC3C54F75204DA02A6BF6AE2ADD461D7AD0A7AE6A8B70255A524DD89 - -Count = 795 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 0001 -CT = 14A02D8A82D6BD040DD3A04DC9AF2999D73BF95F625789A76996FDA2043F6EE4F9563203AC72A338 - -Count = 796 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102 -CT = 0BE26FB463D6069D1BD73D557AEE9B9E773853997998D1EE26F4270E9F7693DA76CBF7F4E675BE31 - -Count = 797 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 00010203 -CT = 9A6971EB40F743AE38DFB4B914658888A5BFFBE5B2416DCC20B601FDC113D317978F5B5C1838338E - -Count = 798 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 0001020304 -CT = 9671F33E3C157CC1E8296D40004A2DFAE2C9365369453302D710C73D902D46242F1504EBDEF8C89D - -Count = 799 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405 -CT = 06EDE6F7E7247C19B896EDE5FFE3A4525030BDABA071573BEB6BBECB409C58C5DDC7352F21CB2183 - -Count = 800 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 00010203040506 -CT = ED3067EF5982B36687F2AD61BD13C07BDF02FC869E24A22C488808AAD5A2B31A614F7A0919C3C180 - -Count = 801 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 0001020304050607 -CT = 4CECE31B3110D2102A19E3109195C289B6CA96B199CE1682466D7F3501DC9D1E9723B54F8117C858 - -Count = 802 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708 -CT = 97F496613A1A124B820621C1200F4C724170DFB26D61393334BE0E2AC62816AA22DA2FFB9BEB486E - -Count = 803 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 00010203040506070809 -CT = 8C60CF1F667208E116D55975A6BED8D96CF69964803EC4C6B0EDE9A37FEF559A7FDE8FDCE8C9BAC7 - -Count = 804 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A -CT = D7282C6F91C23FD67BE76EA23AC9EFFF509DE21474A0B618453BB6F5CF603003DF0D22B4816A68E3 - -Count = 805 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B -CT = FD8D1E8E2DBD73AB9FE6F10862D82B422C9FE1AF01444F4223BFBFC688E54292EC3DAACF42D903F8 - -Count = 806 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C -CT = 2EFC91520A3FC409D13EA36DAD72482034A0586BDC46E90DE51DCB35FB87719453B8199EA6F72498 - -Count = 807 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C0D -CT = 67F5200105C417F2BCDF6CDE54AE7C0E7DF4174633A93D865BDBBBA206D4AE73AA17DED5FB2ACCDC - -Count = 808 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C0D0E -CT = 2A8C1771A1E6C10FE86F1084BE206F756229613D7495792046170EEA7DD7E7B0D98BDCB8026EBD35 - -Count = 809 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C0D0E0F -CT = A663DD61BA1B75A74C8B80D5C757C2CD0F960BB49316805356F9308B06B7C5BACAB721EE3ADF8685 - -Count = 810 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 30F9FED27BBBFAD6FE7FB567673AAA552933A5880298A521675B0CCAF1675DB10CA012A31788B670 - -Count = 811 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 30D63F34648C29E4902FCC13B32B8925EE1093B66AB6C0BC252E6FB9694079BA48FAF206EB7614D7 - -Count = 812 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = A929BFEC0D472DFA55D8F0BDAE0700BE65177EA765F4A1683AD3388B7754202AF7F5FAE6A76B8C92 - -Count = 813 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 6A6CE5AAC8A04D8252680FC7640DEFCF251BF6DEA697EF8E26C09A7BA731AFD2B9B705CE47DD12CA - -Count = 814 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = 5732435ACDE3C04C217E9C45DCCA2E3ABDEDE740AFD4A75E73515769A7E89B4874286C8BE56CB85E - -Count = 815 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = 6CDA43C11AA9D5B01ACD7E83E335A95573B0AAEA96BABBBAC47FFF33BCF778753BA12EC07BA945A6 - -Count = 816 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 9D3851B4A1A41E608E3A50C8778FF7790B0F9A4D3E978887B4913E2C40B92B8FAAC7B5E082064A0E - -Count = 817 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = 61646F0407DE9F82F9B5C26C70CF9DAD8B96950CA5C0037F0D4BF54FCC8AFC6306587608A1104953 - -Count = 818 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = E90FCB520687191E71F9EDA5B1162DA6EC283DE659236683D123451DD179E4F11E9BE7ACD2F8CE39 - -Count = 819 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = D318AB27B078C6093A0C8789E5761104BCD647BC4E30B9423A84081C314E1D56075C29B42F455203 - -Count = 820 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 5A908B98706DE765F9C9EAB5D12D1F04ABF282F0AED78D7A5BF085CB9BF41D46B38673C3850CB54F - -Count = 821 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 8EF7484A2F414D4EAD3A0D07B2881DD89CAF8AB06AAB2CCDC041698842469A4592E8D2BD0840BA31 - -Count = 822 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = A370A47CC98F8C4EC91688C6447656845FECB9BC2832AD22F08B0371EF16A169CB22D4A73D82FF86 - -Count = 823 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = BC088329D60587A92B0CBC9D3AD730E1717C82929A4770552B77BD92813596A3DBB55516B1CA3EA9 - -Count = 824 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = 82F3C972603F474B80727BA5DACEC5ACE3ACE6E2608D51168D9D6E6C56E12E10BB363F23E59A45F1 - -Count = 825 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = FE26015666D51AE788688555CADE413FD64221F018E458961712AEB056386D824A1BF77B8DD12F26 - -Count = 826 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = -CT = 183D3D2D5FEBE8963DABC9DAE4F18D45099C7D88F43F2BB40CE537081CDDDFE1E5502805AA180F438A - -Count = 827 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 00 -CT = 5590318D7ADAD24B320567E46902B70ACE16D3035F7F8BFE02EEFD049C9118D340D1573608DAEDBC4D - -Count = 828 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 0001 -CT = B6836E78F9FADFFC76B770FB21283FD361260DD738507DFAD24B4B6D8B84D6FCC1444D923E3A2AA720 - -Count = 829 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102 -CT = CF6B9C3F706E3CD51E8396D625C78C4BAA0A7BCEAFFEEFA7205AFCF367D8827122603049E3B0568FA8 - -Count = 830 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 00010203 -CT = 9F4AB089CEA61CA3D95C58C1B189151E6B043BF7830FA58135FB6371CD8F06FE52BD21CC4EF2AFBAD0 - -Count = 831 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 0001020304 -CT = F306EEF72ECC7F380A54245D174FA5C29F71A342F5804E577B844DF4FB69526032490E83677B7E6597 - -Count = 832 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405 -CT = 8493958A6E129068A0FA9C1F8EA2D8B572896D07D4AFCA411DC38CA6E750457DC0DC2050DB8B78070C - -Count = 833 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 00010203040506 -CT = 0931D92CD32042FDB1CBFCF2A33241A8347E7812C9BEF7948FFE7CF942D06CAF2957C02CB4965A46F7 - -Count = 834 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 0001020304050607 -CT = 4A8158E15CA96C068332F7F31AE23DD90C722BDC29F73A31B829B730CAADD693CCED5D33EA3C98444B - -Count = 835 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708 -CT = 28B6C3BBB074A3AB5DD4FE18BCD9B1117AC5D2BEAC14B2BC39AB03EEA52041055DDBBE487CE74071B6 - -Count = 836 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 00010203040506070809 -CT = FBD9E3C1021FB6694D89F8199739E6067262A50F45D01C6E53FB6833EC035680A00644A53E1758845E - -Count = 837 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A -CT = 274E05A71CC879B8C2EDC484086D2700D88BCDEBD31087245C268A5151C8AE373948CB31DFB12A17B5 - -Count = 838 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B -CT = C1FC767D4DC1D57ADBF5650AB1B6ACF7A1AC61C801501C6D5DFB551E3568A261752B4FED2792F18B72 - -Count = 839 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C -CT = 2AFCD6D129FCB819A8EFE95D332D0F06950C8C12F4A398450B6E45F84AD86E698806B24313F9A0449C - -Count = 840 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C0D -CT = BB322631D99825F110143B161D87B6CBC2B7B558E5D3C78ADDA4819C6736E024D563AA50A2EDC144EF - -Count = 841 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C0D0E -CT = 06DC95589039D5C2A129E823569C15540B270054B6D3AD6105D139EEAC3715083387DD308A9C26E64C - -Count = 842 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C0D0E0F -CT = A94AC0DDF29C6D039B49586EEDABA16081948A03511F44E15ECC5FDBD557342D6308842A24683C587D - -Count = 843 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 57333273F7B80FBE88F0443891AF01EF3783BD952A19659AC13856A9E7124C95951DCFA4D4E71A6EC6 - -Count = 844 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = F3A2FDB8E5DB8BD85CE64B9351C603690DA7D26483A8E9E1F131ACB383665F74BE2630365C84BE65FB - -Count = 845 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = 5CBE12751CD85B9A7F78D3A196DC5E6F222BCE147DC07F68EB8ADB6C58E2B889C54C1D23E0A1157CCD - -Count = 846 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = E931D33F1597AEE5EE6402101581B3CE7C657AC199E123EE34A3524B96DB8715E6C053889A54F64920 - -Count = 847 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = 5AF822944B7A7FB2A58E4914C31A413B1EFE3126EAF82760CC34032BCBCBE0A6818E53D34491A99B40 - -Count = 848 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = D5CFD5BDDADD21500EDC0CB3CB8A861B531822F796ED14743793A98B3D164B4443ADEADE271309FABF - -Count = 849 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 2201CDFF44E52CB4CF67E057AA299FC31310FA8F22DE91685FE5F53D2FCDCEF2FC708796B1649B6BDE - -Count = 850 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = 4BFCB5FE133B0627CEB280F3E83919706A6F1D58DEBBE5AF3938048EAC780C9304B49B8D4A1C1190E9 - -Count = 851 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 3742C930228518219205F6E9F1AAFC88DC00D75836987A9FDCBD9B2D00AA4580E8DF0F0383C8D0A39F - -Count = 852 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = E7FC68EB0AF9842F940564DE6DED4BD955A1182927E274200AFD0CCA591F683B12E416D0F11BE2B66E - -Count = 853 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 9CE38D5BB8F6B098FE54C7BF1C273F7E17198CEBF99BDD2F742CE8A4089B79E6373C9FED5B6BE01B70 - -Count = 854 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 93D7149F4D6649F381B82A590ED1EBA6D7D9088884666562A8AC47E5DC654FB94E52C0773AAFE24A21 - -Count = 855 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = 0C7905B42A6A73C5A060B89D00706C5E241CEAEA0BCD8D168318817BC55E7B0A773B4A628F9E7F52D2 - -Count = 856 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 329BE51A1ED7BD56446D519C0131ABDCE2A3CFCD7C31D37CAED0D51D17A3C63C551EBE824BCE893904 - -Count = 857 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = A231DF8543E1BBA1A7291699A124D2CE6E6182602AF4831C81E3123235F16ED757238D69BE278C9CE6 - -Count = 858 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = DCE182FED93D60A0689EDBA9B493E0CFC76D70F3B275F9324F490C2C4C1EB90488544DF1E54D61680C - -Count = 859 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = -CT = 1F86AE25209C374046EB8ADAE47E0F15CE2BDEF98CF93B9B97EAA0D5D689126A9FE3C5972C9878AF1639 - -Count = 860 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 00 -CT = 8CDE4D55C4EBB3FF076C33539EBA0958B444378346F45916DCCC2253FC56B024FB8AE9501A0C21A8AA3F - -Count = 861 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 0001 -CT = CF1B8731F28C7DBD0A1AD66292DB360145BF25108E4CED95E22861AFD0A2D4D9F34D499E286D324E887A - -Count = 862 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102 -CT = EB6F677A4E3597290CAF6B77F4D0F12C91820B8E77832B8B2D0DF9D8C526B44351D514F2A6932FEA1E6A - -Count = 863 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 00010203 -CT = E0EA33F5AC6B34AA2EC10ABD4A73C497F4E08335F1B0F922B7672D29254B666BAFF5F72510A47016F34C - -Count = 864 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 0001020304 -CT = 62841CE65BB2EF9D2DBA11E54B1E17A8A629B4DED9EDCA82096BFAE660243D0D345E6427F30706B98E4D - -Count = 865 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405 -CT = CF3A8BA31A1084DA83F076F05059AAD7CE73CEA88C4F125E361E99B6A5AEF2E8EF384818F3AD5D26118D - -Count = 866 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 00010203040506 -CT = CBEE0F405DD0E7D059F76D1DE15EAFE1CF8CA25670E59F7F0FC6101E08DBF9E7162FE8466A02ABB14115 - -Count = 867 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 0001020304050607 -CT = 5403A1F61DBCAD6B2BEC374CD949B666F475C505A1D814A4CBF272262AD59EB4D6CFDC6C9825AD1D2245 - -Count = 868 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708 -CT = 686FF250F41AB6A3A88166DAFA53E0EDFDCE601B54A03C50D318D1DF4BA84190698E20334CEB20019642 - -Count = 869 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 00010203040506070809 -CT = 60EA776D6DE85422D84D5B617138F94FAF4086BC7AAF7700D8B0D5DDB94750CEBE41B524A2515BCE1AA3 - -Count = 870 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A -CT = 5326A35B427A77E0BAF0F4A8BF0F4C86861632AC00D9357F7FBDF2692CA610E80FF6C93282621F6A79C3 - -Count = 871 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B -CT = 412C6020B11A88012DF8517B5F57CBB2F0C052246CFE9021979DD8AB70C42A8FA2893B4D2A7CA1A4D297 - -Count = 872 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C -CT = 5FD9F2C4E55F3677795B7A41B5EED7FD10C6E0A5D4CF258313B36FA24494D24C7045BD58B433CC42DB61 - -Count = 873 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C0D -CT = B81593962144CBBFD0FB64A99D7112773FED1F68DB415600A8C7CD19EDA71113D377BF4E5DB1044FF34E - -Count = 874 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C0D0E -CT = 9B69AA217EA468A58D12409020E8DDAF636BDBEF58DD50CAEC71E3B9982763089EF0DB8061581AC7F488 - -Count = 875 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C0D0E0F -CT = C9DEF1A104C5067B7DEDAB341C980110FF98EBBBFCDB446F43E91ED2B39702B87BBE5ABB73DC4EE0302D - -Count = 876 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 42CE3EF0C7A5ADB37A36A614067CA65AA88B77AE4CC8063661D7779B937491265674609E922439792F2B - -Count = 877 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 93764F17CA4213CDDA76CE2255C29F136D02F2EBC70AADFE403E9C266326CEB49366DE337E9DF1447BAD - -Count = 878 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = 20CEC09A70C7F0E2B3B495340DA95F0D93BF70273806697123F2BD09F97001E3548CF4B753CCCDEAD3D4 - -Count = 879 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = E6C7A6DE3644D4FF8C08447B54D4B6B8FBF624041D7873E5ECDEF9058669BE39D85486056BDE8EBF6A14 - -Count = 880 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = 45DBF4E5EF54D694FA1707E9D9B884F39300DCC9039424C761730C74CBBAD2562FDCE11774755A585D2B - -Count = 881 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = 9C5649081A83D73AEB4022984573535CE28252C664C598B4E14F1FD4CA908D000558C6C3584DF9DB613E - -Count = 882 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 99EBAC00545DE97FEE5EBEA869C516B51220D72FAC2FE04F56C381A5C35D300A7364337A1B769DF0F159 - -Count = 883 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = D92A99988B977A26C79EA4F9263923A41C8BD37DD340C4F5CDECD75CA5C757DFD48E4F9FF0D43FDD5D6D - -Count = 884 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = D9599A0C88BF5E0D56299499DD00966F0DE4F7BFA31673A96FBC4BA67AEC816FD334D23972DCB57AB720 - -Count = 885 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = 0F4CCA2B0B8BED7BCC25BD20B10DC2DC299D80F057648F37AF8710136CB8274561DD312E00A1CFC9127F - -Count = 886 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = CC498D7E7F76AAAE7E8AB10E8755BF096CF7F2A87F9B62C562981E5B34542C2204E5265D3C39ABB29091 - -Count = 887 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 2A51C7F797612C15C1D1F119772F69AE88C13FFD95BCB04C2493A7527D300B08A022B9EBC6EA81C82020 - -Count = 888 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = BC6D2AAD04D9DB369DF09A1C6FCA0978DF0C4B68525470A894B21C5DC591BD02499B2FE0B17282DC0F01 - -Count = 889 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 66CFCCFC8F5A52E1C5B633AF2331B4FCD6FF177C4F516D596C4BE6002D7CCF433B65DE2114E059BF31DC - -Count = 890 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = 27A7E0B57F45D1C0977A530F724F52C76C7A5CA9001D0FAF51C075733C0AF2EF8AD6AAEA39579EDBD908 - -Count = 891 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 6853A80F352653E990098520006AA85F1D80FE831104D72330715FC78B3418375638561B8C55E5F56DFE - -Count = 892 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = -CT = 08A2740DC2C3FA64FEBA456EACFE70B9985922F57CB728B471E5CD2AF41904B234C272F6F76F8A9297F629 - -Count = 893 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 00 -CT = 62A05503437F4F4D6DD2517FBD06FE5E4FB4DE12917D421542102AD7A380F99151ADBD3C9FD9D1F8E56D8F - -Count = 894 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 0001 -CT = 9E52F49A2133B58F372CD456237829D6E3F03CD71C01132057C1874268E256ABCDA06FC1F3189674A43CD0 - -Count = 895 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102 -CT = CEDD44353C1CE8EDE2E2057E225A74EA80EA2DAD4BD2E17F6BF468A49E73930D15B51A8AE07EEEE17C0AA0 - -Count = 896 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 00010203 -CT = A1D08348644E5C05234E5134947F6C182CAEA78B51FB314705F97024ED0DCB1B84F1B1F72D4374A0D153F1 - -Count = 897 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 0001020304 -CT = 94CB24AC4957D9D8C28740E94D56F6BF40264111EC3EA9696BA83D567D1F182AF37E5AAF62E9E662C50A9E - -Count = 898 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405 -CT = 451BCB21949FC82BBCE0B7AE16B7D92B37A3C3E6EA597E0894160B12222C91F6732C8331C3ABE30B2BEA15 - -Count = 899 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 00010203040506 -CT = 5BF58730AEF9345AC66EB1801B5F4CEBBD59A1A66CC8F91A017FD0838888F56EFD820F392A285B6F53214E - -Count = 900 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 0001020304050607 -CT = 7DAA5B21CE98E96865EC37EA1BAB1322A41F31A18B201D41C6E4A16CA40746B619ACBB05E2803BAE76072B - -Count = 901 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708 -CT = 86C67F5D4604AB566D169CF658BA02355DA4F8FCD13A7551832E4968E62D061F1436FEF86D1AB8AC5560B3 - -Count = 902 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 00010203040506070809 -CT = D2A4C6BA8D3CBAE6371EAA2DF1689EDDAB8082B034A10B38C4DA8AE9172E6F1AFAA8E42DD6FEA8F0B33972 - -Count = 903 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A -CT = D9AF0EEBE2BDFF7895DE64063325E78FB357470A8D9F13666E77B0C7E20BEF4BB02AA56915C73D99F7E2DE - -Count = 904 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B -CT = 4C685321763EDEF2774D3EBFD05E2C26C1528B5C2DCFE179C22B773438F494E0A6D16AF01049271FEF9DA6 - -Count = 905 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C -CT = AAD3D4BC3E216590A979D559ADD142F5992ECD507040A861B95F81203D1934F554C8673EB7C865AD8AF669 - -Count = 906 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C0D -CT = E93ACD639E18067D60F459ADAFC2870E3DB1560A93B59EF9F8F7AFDC342512871B14EB852841FF97007FC4 - -Count = 907 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C0D0E -CT = F1F6FABBC34DAFACC6BAA943CFB782571F702C02B0CD76FBBA21461C0F844CAEF279F4B9D43C896EC5828E - -Count = 908 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C0D0E0F -CT = F7BC3F3440A14513CC0EE348FD5DE42948D3CA937F63C9EF4FA9ECB3BB40A5A35A067684BD0FF2E84F43A6 - -Count = 909 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C0D0E0F10 -CT = D4537583278AC690D196ECCEC8E93486F18FCEF496EA1FA5CF88F627F021D35D702F58E11D45084B03A6B4 - -Count = 910 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = E8CEA54DAC2E004E5819A3BBA0FB6242B81D4B8F7ADB149F3F3EC1C92C886B66F748A89187A665F1BE2E6C - -Count = 911 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = 0CA009A750296F87606DC314623BFA4E59155EE107D8E5AB6A563AE74E381A2171A154F7390D678667E0FC - -Count = 912 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = A115DD60D399184A85F975688C601D684FF5461B1A468F8EA47980EA6B58DD7AC846F4B8B190A4BCCE8EEB - -Count = 913 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = C490380F1DF1D24B1AE173F202AA1FD1805DB4F2AC19C76EE542FCBF40CE171EBD709EFE7A8AEBE090D58C - -Count = 914 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = C1E4F89A07325EF0543909F0F588CCA76981856D42209680A6A8E327B4D2D669122FAE7E4BBD908946FBDE - -Count = 915 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 4289BFD9FF4A098E91F79F8F1BF1A47A6D1E5AE4835E4EB0D951268A4DF7862CF432DEAF25FD33204D3274 - -Count = 916 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = 0B7211E464895F80C05FC18F90CAB23B2AA9B3E0B50353A8254A0F6A2B6CA1111141FDC5EEAFA6B71D770E - -Count = 917 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 3666B8B63169F8E180F1716AA71C651FC7620654C16935ED7B08FD429A28A9C0B99985DD384488374C1997 - -Count = 918 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = 0E40D3ADAC4523C93CC1E8CEB412F61A07E17089E9017AECDA289B3CA8084B77F3BA6412FD3BDF4E50FF2B - -Count = 919 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 31CE196F6F8E9F4522BC274C2AFC2BBCDDEC1A3DAFB962D5394A6A093F923C2B9D7A73D4E67E40D12C6FDD - -Count = 920 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = E38F5CB7F9DED5496506F87AA770D2C0FD79A982ED3A7E4AD92E14617F6C0E00A0B0D15FB3BA1FB2F7AA46 - -Count = 921 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = B85EA81EEE42E1D84646CC798F00ABE79604BFC84966333962566309940478CEF80CD33A62027FF0DF2C68 - -Count = 922 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 5B21F7448156546AF0D2222357C7A2F6371EF15E31BA2CA0AD5071783304665DF3257C7F25D98976D0131A - -Count = 923 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = 51FF5FE133617233FEA42101E732FC6DEC2CEB983C0E624B500E3CE5E94EBCC9B6F7AED1D8B943650398F7 - -Count = 924 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 101FADA14391AB8D0FC56B47014C1D08E80295FA30FF6701A241E8C09881C4D2CF0C840F81F86885A3B450 - -Count = 925 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = -CT = FE36809403CB90A1E8C1D534E0C434501DAA6C2521F234033E6AF84C548230B7B6B613FECBB8E448FA679278 - -Count = 926 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 00 -CT = C5A90DE55872AED1219A29D35BD740682282CF0EFAD9A91FAF29268129A9B42C183125E826D93FD199AE6C9A - -Count = 927 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 0001 -CT = 37EB2BC246F3098687CAE585D3D68EF0847D26827D2EFBCBBA192C2EAB26A1E4329FA6B16D5B83D41B78A8B6 - -Count = 928 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102 -CT = B5D24A5CF64AA7C4C9502AC7889176FC96FE9479CBAD69996B7E97F4D8E5AC70F778EE8BECF733A782FF64E1 - -Count = 929 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 00010203 -CT = 382268E402A3722A1C219DF4F0A87830943FDFC16562B4895CBC41606443F52712F7D7028243177296B3A53E - -Count = 930 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 0001020304 -CT = 2EF37C693C122EDA7F9DB400A195AC1F3DEF56A414EB0706591937303AB62B17F86FDC6035B2229E786E645C - -Count = 931 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405 -CT = 605307DED3DA28457A6D021D45AA3B5BD5A1BA70C333E0169541C4202E3517217D4DFEF277E8285AE0671942 - -Count = 932 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 00010203040506 -CT = 5BF982E1928B732E738A20C4BCAA17521F2A9753D58DD37D49E0BE9FAB3CBC81B63AA34B2879725C7B9AAB83 - -Count = 933 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 0001020304050607 -CT = D03D24539621E6519C79E8E1AABE13B06F1964B937CD8DA4432E87226BE89CC2537FCE600DEA04C811F7FD95 - -Count = 934 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708 -CT = 4A935E79BFD6919DA3C18D57B7C3AD30E9B5182780BE6D0F0E490E530B9518F1A789EFB1AF7C6E2CA4B1B0C8 - -Count = 935 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 00010203040506070809 -CT = 8BE2B8FD387673539A22B0777BD69AB2309C9FBF3B4FB50C770001371E4F45F08D6ACECDD058CBA7235B556E - -Count = 936 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A -CT = 7C32F2899723D3D25C42E06E75456F2C83EAD952B262178B49300089BE1F81910508AF865F2B07A27D856E57 - -Count = 937 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B -CT = 564E50F3CB3958DCD2757D1398540C8B41160B44C0554706E37CC28EC0C15409F3E4FB090FC7A467144D4CAA - -Count = 938 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C -CT = B39424B99426DAE367EBF413D5D60C832FADA6608D9C3182EAB8084BAA33496FAF4612C3D8B705A0774EA89D - -Count = 939 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C0D -CT = BE52103EDCE3A0E4CF228900071F9C6E88AE5E36C7344CC47954FCD2CAC0F32B4F6FB0D82298687E190478CD - -Count = 940 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C0D0E -CT = 5997D6AB52B3833002F1EEC129B2C8FA7AC1C5B81FE97F3241114C8D2A481E15A2F53FABA70BECDC5ED6365A - -Count = 941 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C0D0E0F -CT = DF608952FC0C41163CD8156C64CDE91D8C160048AC6A777FA052BB5D4991A4540A6829E33A6402D2464AF48B - -Count = 942 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 779A4C48AAF3D6D2A5C93AD506D761663ADD642694FFA135ECDEAD9A426682C7A1AB9CD2518B037C038260A7 - -Count = 943 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 92CF3A3D352971FD50642D438AF24C7EAD92EDEBC12E412B38B744DAC6F0BFB4C6E54C0F8451A83AFD79D790 - -Count = 944 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = B8D64C45B003F8B8C029CE5D454B59426E5C1E4122E2BE12A092B139284DAE4942F2F6629A15858A4F5801CB - -Count = 945 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = B2BB3AEB31CA0EB7ADB64168DFFFDBF52DA2929F443298A0AF380C0059725A27B52268C337EE8767605DE207 - -Count = 946 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = 04177B3270F941A0601BA55A95A0351281CDA34081A3391A9386EB90FAD153F8168C05C8FD43EC5C3C5F5C99 - -Count = 947 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = 890038E457E846F1C4715952D83C64E4784BE62852954DF1EE0885CB71664CEF944FC58302121E21AFBC604C - -Count = 948 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 508DBBD891FF56FA0D697D37AE25D452885F2C20DDFA9DCCAADD4CFB8ACC862E027A38CB47AA307CC8DE52D6 - -Count = 949 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = ECBD0EFD9AE886E37CED7338138E2CCC8372C2DC057F7C926CB60B60AA38D17C8CCA76CB87A799F054B4A343 - -Count = 950 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = A31FAF507C27DAD0865F79D8F0BEA714CB10E530152E81C78E9BAA69170090ADB17DE76B048D2AAE4563473F - -Count = 951 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = 31BDEF4AE4E6BFE2334F0543B4C22AE68264C575BD5E2906CFA1A157D5EAEEB7474A5427B843313303BA80F5 - -Count = 952 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = DA7EE32E0C65E8EC37AD5E84DFEB038E1E92E1F962F3D5F7748D925169F04F41B77FE6BFC4EF312F989FA506 - -Count = 953 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = D89F19991EACFEC917BA0A2279356114BEFE1755EC1B088BA64066AF3B20DD0F25A76C90B78CCBEC50F9B0FF - -Count = 954 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = 3C016F4921C3C154F4164C2531AB29AA12CCDF9EB3E2A066CEE0F221AF65F426E947AF2A26A0359B6743AB5E - -Count = 955 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = D3244004F6ECC317F6CF602BD61904B15CF1FCC09C200936C50065788706D8EFAF8F12ED26ED1D212141833C - -Count = 956 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = 5308273B7EDD1DC6A54C1B72B19EEEA30980B9BAE61ED1069AA5869B27F2E2B5E571EEF09CACC0F6A3BD128C - -Count = 957 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 8648080FE5BB17EEBC10F04CE8F425A6BE652610E2C0CA5B7B3DE3FBDD29835DC5A60D0D130FDA04B3B1829D - -Count = 958 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = -CT = D459C826D2CDCAB8F5BD685F81038EC2B477F3C8EBA6070D6BDDD7780062387D7404C638D5446FA94DC437539A - -Count = 959 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 00 -CT = 61A5E27D24F3DF68CA63C311B1211AAA43E6B29972ABBECF069BAD20709BBE6C06A1CC843DD053DF744AE121B7 - -Count = 960 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 0001 -CT = 9048B2000C50B278ACE21B3F06A5D88901B09EE955833F37BFAC594CEFA01986603E7344039655768A0CEE581D - -Count = 961 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102 -CT = 7CC61F11599339FD4439D5F13C28906AEA089C020BD16DA82AA5BD3E62B28DDD41456AE566B1CBE64971F8EE22 - -Count = 962 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 00010203 -CT = B07AD2B9CF30AC4D5FE4B8B3A0FCA59C960B75A81DFA96AE0FC07733190A424E15FCFFCB97C839BDCD7777879C - -Count = 963 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 0001020304 -CT = 1B59F8A68F192413E6BB5CD7612856E11A2D5980311A140D33F82AE71909DE7B79FFA66CC7FDADF8B7D20D9D67 - -Count = 964 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405 -CT = 33CA2AFCF941DD9C43C01E1686DC31127D95231A36011D81F21AC460BCF7992C218B92983B3C0D8F4F498546A6 - -Count = 965 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 00010203040506 -CT = 31E2AFB69583E88B8DC067916FA1B79CF22D7646D701CAFFC7AF91552A50550B110939A5DC443BA3B549B3D133 - -Count = 966 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 0001020304050607 -CT = 00DE09FDC9E828968FFA1A0D959008D26513A447A3EE5ECB13EFDE7EBE61FDD45B58CCDE954EBDA9DEB903404F - -Count = 967 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708 -CT = E099C23E462C176FC47FF291C6EE8297E1C9643F071B7A092D78C031FA0AB9F52799AF3E6FFDE7DAC068E476CF - -Count = 968 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 00010203040506070809 -CT = 729D93616969A5547CA61D6584339449DF4603BC6C1E297A10C159F0A51065E635535D01A732D5C1AFBC8D37F5 - -Count = 969 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A -CT = 8302AC34B179D9D7CE42EFBE26AB1F5086FE7695E5592B2A287F264F6BAF219A5494C191358A40CA1E5BAE13F8 - -Count = 970 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B -CT = 08A42703AFA618C06AAEF9ABDF45805549CDA63CC471BCD2257C1E7E2BF1B6B991D6EC09C1332F1C5FBCEBF6B2 - -Count = 971 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C -CT = 0BC847CDFFE7C464FE403DAB6BEA3F9FC5746108DF8FA4A6E7D2BCC84FCE3992A0F637699271299036962C65C9 - -Count = 972 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C0D -CT = 9BDEFE4C13117D686A02A470F715FDE2141B773BA5BB07492D29DDA6161F13530204A67D29921A3D2594E6CE2F - -Count = 973 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C0D0E -CT = 22A304E8D2649A0623FF90DC01D4180D7A43CE5F390EF576A778EC8EFEA82DAFA1C8E902D004A5CD86E2212F58 - -Count = 974 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C0D0E0F -CT = 9FE5A173199F1768613CBA6D55471BEA3B3F58E10620017FD1C1D973BEE2A2A0DD9E4EA403EE3F817BF852BB6A - -Count = 975 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C0D0E0F10 -CT = D1ACF937D3C9BBBC80ECF45E18397019195A8D3058D5B9F33A3062A79C7F986C5042F30192180C8F979ECE7105 - -Count = 976 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = ACC9FB613E8866F05F27E3C04BA12C3C7C763735C55A1D67AB35FBF33C24DF60CB534B5C1FA0585C17D3F9C957 - -Count = 977 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = 6C8EF1F20FEEF0490DD0F6CCB91B2C36EE180A398345F68EBB7B2E47A1A36128F67F3BFBB94F3661F1B6965110 - -Count = 978 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 2175FCAB2F43068EBC60A78241AC223AEFE89B604A400949F14D6BDD946390AD40E6030094ECBB1D7C1FC2C8D5 - -Count = 979 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = 906C721296F0C62C5AA21D025A9C10264C13876B3AFBA6FBD4A11E255971E013D68B25D9E200273892E8163327 - -Count = 980 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = F2F6E9B1A1E0617DAA2A806456131CDC9D7C86E5E967EE421F4F3362864C38C7A4EC9E592AE4C69C36E95BE6C7 - -Count = 981 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 4380A3F24E3346A2E497F37CCBA59719BD817DAB160EC977888ED7DE608B26AA4F9D0CE3301ADD55C9EBB9000A - -Count = 982 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = 91E9041DE3391C811936FF943869273334C2E39CA3070DECAF65F608417B2955B8B4A87A6B580EAF5E8D3E3141 - -Count = 983 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = ECF9D5B8CCBCC73B3688CFB9C4092C9D726B8DF8E9C5751190C85D942B0FA800762A06377F37A61BFBB497E3E7 - -Count = 984 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = 348F4EDA755893A25E3C9930647C83E0B371FE594DF789A2170C122DA441F3D2E822F4B516EA6A584FFA5EBAE4 - -Count = 985 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = DB011C264A58A3D3F6253923D26FA23F202E4A6742127F72E3A1FEEAB27A441A718B8945DE402350EFAD2B9600 - -Count = 986 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 87494CDD167876EBB2F6774AA57DA98A3B0EAC20A0299902F248FE6B559C0BB800CD6230632C2BB17492FD6BDC - -Count = 987 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = C19434AF56858861B1C29E0102AA7A26E77F460E725301809534357F27EE3683B484E882FA295550A67A626A65 - -Count = 988 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 1DE88F2D3A8E2305B80D396228B219CADADA1F65CBDEE50441664FC9186B7EB10FA4A3E136B4E1C2002DDEE086 - -Count = 989 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = E2664F8CD02FE6EAFA937A5104DE863C80E8ACD1B75E18B61196403D8E4C989B7A047A4CDCB56D8B3C1CD05147 - -Count = 990 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 447A73D6F93605738E1C167426E512649F16429D1F78459436A84173C5F2F745B4926C7E6E9872EA6306BB69B5 - -Count = 991 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = -CT = 8E994A9EB08E976429759873943E6B9BE852C33F9471E1E2C253CCD91876476E9FC52057170C71F784DF1E3F03E0 - -Count = 992 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 00 -CT = 38A80BD1841D2C460F393847AABBF010F57704CED1E6D9964940EB31BA7433663CECBC504B917DA4DC884166C283 - -Count = 993 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 0001 -CT = DC0414811711091D0973244600FB31291AEF3858F2DD12DDA866830AD1BAD06EE67855D41F91A022A58E57CEAE95 - -Count = 994 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102 -CT = 41BB49EF05A8A05525D2B1A01BA40E52AF93EF3BBFC819FC60DA086C8CC8D05E9DCA6B32F4C1823A3809968C9A65 - -Count = 995 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 00010203 -CT = 1472A1A7C9D64D38E2C7E82B49250B18500374C7A9D7AFD704369ADBEA95819324C92EE7853B885793CFE50E246F - -Count = 996 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 0001020304 -CT = 6C59B55E615096E4A9652B22C6629EE70C4869F0C0D85B5EA3ADFA1A0BCB99B5E7E92B479ACA93035FC89BCEE566 - -Count = 997 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405 -CT = 1D91D35A52782B590658B81F27C50FAAEB28840479B150C312C526C9EEF96525F191148669CCC8752EBFDD99425B - -Count = 998 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 00010203040506 -CT = 36E20C9206F142B2A8B2F0CB8C688683B2683D1B8AE5F85457EAF2E8A7A3DAF7DA7C34CBAEF3C2E5754AB3A4E1DC - -Count = 999 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 0001020304050607 -CT = 5DD0B71B40E19C5B99D7F414308C0C5833C926043592084E9060DC8FCD476743507E66328CD08A13303AC17192C4 - -Count = 1000 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708 -CT = C6C00123E72A60AE1098BF6933582CB0312B0F9D9E126DC964E5277745F7434E21F36ECA6147BD3EF6E7FBBCCA94 - -Count = 1001 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 00010203040506070809 -CT = B179B98E2636FC31124386D2D46E54018CE59E5B6B1466F25CF2173B8BF67948EFECAAFB0901BA282D162F5C5405 - -Count = 1002 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A -CT = 367D8BE55E8C0780F95577DFAE2437828240F0B344A22241DE2636E45D959E7EDB19A2AEF5439D5C45002A837A66 - -Count = 1003 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B -CT = 3FE4D221F9C37978AC8764AB1115C3044E557E75C63106203D98187C96479911959332E6EEECD14D2F559FCA1607 - -Count = 1004 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C -CT = D94CED8619D3EF5B649BCD84A4298B400130185A71D26C94F5BA9C75664722E230C9430C73EB458FCCA1EA66866F - -Count = 1005 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C0D -CT = 524AC9D4560658DD606AF20C9B5D80B4C35E150D0BC8FB86F9CAD82408A83CE32550531901F51A05C6A6DB99C7A2 - -Count = 1006 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C0D0E -CT = E073C45FE1C182394C06851EED8F73FB7471E7A1744118B57E9D22A03E5FE608D60BF87BB23437501E33F1819B38 - -Count = 1007 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C0D0E0F -CT = EF106C2E1A99C684E7B787E5ABE5150C9845D8C6BC7B2B8C7DBFB8844DB2AF7E5C193CAF5DD7AC7BFD432332FD0D - -Count = 1008 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 3A58CC4D78B5C8F52E0D070D6E6E205FE2834521983BEF90DA89F0EA80B338CA4A6313F762F0554CACF7A9786794 - -Count = 1009 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = B584B41D2164971979E6ED2230BC4434A2C0FDF7233D2D401FBE015478B7AA931DFCC46DB17919C1CC8257E42A8E - -Count = 1010 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = E527E836D1D10DBFDA0E725775B7874CD71BC850BE1DE7F25DCDD12B349B13563A463D28D4EA2E90C9818DB9F2B9 - -Count = 1011 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 81251D3AF80CCFABD024527840099C05B053048C46B1CE485B3AF8EC2F40B8B82DC20742D53E28D80D524C8E3018 - -Count = 1012 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = 5B9642D89E7BE5A52A6D130F91968C01F4BC16FCCDAD5734978F68795A12BC7D7C84E365D471F581BFF2957D69A7 - -Count = 1013 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = 7492CCDC4397299991DABD6A3F15731883BCBA473971295D11BDAFA07D135B96107D922A4E71DC14A2E796BE67F1 - -Count = 1014 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = F93C29056AA5B1F4D5B2A1E32CCCAB9D83C67B9823595E2861066B0203B204651B7E951ACB2D2BABE8DD97E55B47 - -Count = 1015 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = 893061B9611F71FA9DF0E9BC893635F6987952D9538E196B6200249290D0988736DB4C24C999F733468098D33E42 - -Count = 1016 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 1817887374B611ECAF30BE20E6B0CAA48EEE11CE07BA5E5DE806F65FFC63D15D6AD561E72A7ECF56030E9CB582DC - -Count = 1017 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = A621C52D3735AD5BEA497B9A7D8563EB9A032D96FCD851E770C93B035E0129756D2F02403661997BD9F48380467A - -Count = 1018 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 3D544DBF7F5D767102D2063E187B57F5092D4BADB61D04B8515CE748EE5409EB79D45818B12D542DC800286D376C - -Count = 1019 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 378CB93BE70D77161066CC0472EF7318BFA35F85D6AB86AB19AA9718A465D161AE57BD73178245E755F28EE33F11 - -Count = 1020 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = D2B058212E1BFD6543FDA7A75720F173A2B64B7FFDB9EDE3AA9DF31241C797A703B873DDBB0018D482681FB887F8 - -Count = 1021 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 835D2B7D717027AFC224669196FE7C8B812217017A64415EF617372FDE6F037E34DC96C5A722D44B06369B738EEC - -Count = 1022 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = DE1BEC74E1CB7EBCE87F717A9D255B111D44F83F33C2D0E7EE1CE1F4CBC5E293DD68FF47D8C5110D58CC90212386 - -Count = 1023 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 8B427E508FB8673159F7575D130B2B82C573F4DA761DE2F1C8562D1E78E099D5FEB64F1435FDCB300526E88179C6 - -Count = 1024 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = -CT = 65CCA173C045AB2535A41C50647B466583AE342BB8364D6C99CDBE4B4B747CF50D9240454E426A6E67A868E33FE614 - -Count = 1025 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 00 -CT = 3220BC1EE520A6C475D8C62495DC03123F79A806428BD107AC865755D13F151D1F94BB5CCFBEFDCD54C23F5F63C23A - -Count = 1026 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 0001 -CT = 99928D89012B30256A6087FCEE7F2177D0CB36455ADB3185F459BAB8F4758CF90CC4BEBEE20BD1C7F18214C99DCC10 - -Count = 1027 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102 -CT = 2388E8F93DA6372227077C73955E6FDF184F65B721480463CD0D91BCED9A63ABE1F5E88F09890C352E6236BED655A9 - -Count = 1028 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 00010203 -CT = E21DC0F95E94E001A24932FDC93E89CFBD1E67247F0DA43E5CF831822B3E34BAB60C2463B2AEF2E284DCDE563AD4BD - -Count = 1029 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 0001020304 -CT = D2910E5A2F35011FCA31EE6A615C658C78E6C66377ED8FBFF735DF778BFDEE91AE485F883175CC0E8B9245D97B065A - -Count = 1030 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405 -CT = C7BECC1A07ED276B2E87320D4942EC9B9F582C839DE23844D94B71C1B54050154C3E035485A5930CD854F83E4F2DFE - -Count = 1031 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 00010203040506 -CT = C35F6C2ADF7268DE666CFFBA99262A047E051A12714CA8683FEE77AAD1C6DE2F9A8BCF132F362BDEBDE2550A7FA59A - -Count = 1032 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 0001020304050607 -CT = 0F249F500DE2E406FD53752CE7CBD3A5DFCC676ED9A5BD532BE20AA66744B4A9A495DAB814882BC9EA00F5E056FFC7 - -Count = 1033 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708 -CT = 811D5D4029A9F4EE818AC51FBFE014EF70C136B78153A08B380448A4B296B26B954F498CE47E618DD0E6653F8C7BDF - -Count = 1034 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 00010203040506070809 -CT = B6CB7FD726E7A03268F9160E4FAF2254D0E187D3CB244776A2F7CE9DA52771BDB0BE8A3B67E4A5CF1CE6AA187A6BD1 - -Count = 1035 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A -CT = 3BF05999E87D72414FDF6D3912D5BF5AA1AEE1D5BA9DE3E8E19A171B8E4CCB8776FE6C263288B9D8A56460E44FC2CC - -Count = 1036 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B -CT = 009EA1BC50220120087A6C1CD3F8EA200CDB6B15561E43F39DD117FF313C20E877CF521A66D7A1EACE8944CFB90BCD - -Count = 1037 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C -CT = BA08CF6CBC1F30FD53CCDAC3320DA3327BB791B743A72F14E20A806BCA5A407EF86D755954BE0378A164234AFF26E1 - -Count = 1038 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C0D -CT = 6D58A28231AAF14E5FBAD9DFD37B60059F2F95A2C98E873B6429E29C3228E20CFE77558609982091E4F1CB69208880 - -Count = 1039 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C0D0E -CT = 4AAF25E0F2691A95C09DB32A832B2F33F07A2DBD740BF9AE2E921CF9D9D500A63E490FB04F63DC8BF64CFB2620DC8C - -Count = 1040 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C0D0E0F -CT = A2C73D79F5398D7069279D5C9886A65284AC160458FDF6AAB574F084DD39607E2305D80AA57FE301960F4AB573F750 - -Count = 1041 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C0D0E0F10 -CT = DDBEAE5FAF8E10CA5ACDCA36226EDE8C0BD096149C427AB107644F13D30C5AD6F4463B2F13394FE9E7F2812D139321 - -Count = 1042 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = FFC9D501881484346DDACF00B6163C2F7B505C54BA731F7F62EA6B80076DE5C0A82B646508ADE52CED708172C4409D - -Count = 1043 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = 45743E0AB03647A35B36D57881422F5B21185A4E357714F8349CF2539107BA2C7EB264A3B11FBAE866FEC4A728EE37 - -Count = 1044 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = F4E563EC13A6E7ADC5574D2021949D5A81876FA54FA206A841883742EDEEA994E7F03DD43A3FE5EA191C34D8A0CB09 - -Count = 1045 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = 3CE1EABD4FD3DA419407BBA542BF482E3C5B5E0779857ADDA056A6685A2EBEE9A008EA5F530B304C7EA67B6F7AED97 - -Count = 1046 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = 1DA494A6FA6D2D9FDFA4ADEEFE25DCAEF055C66D6414F0E29CA05E8F900EC2CC453669FDE897154AFD2B8A7AD4537A - -Count = 1047 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 14D99D277CCB54B8C05083325FA10E6F83CE185A24F725395DD912C60E70FF811325E8C616F88B9155D0FF33822DC9 - -Count = 1048 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = 0E32CE151B1400D4739E024C9214547CC7E4FE565ED3497A0B22DFC9CAE5A3F927845DE66729A818A50DCC385532EE - -Count = 1049 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 0CD7B685E00F5AADC75B47B82FDBFF0274012BBD24CC1DB394F578A18C0211F5A8A9DEDA7D3451233EACCBFC020875 - -Count = 1050 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = 756FBB9255CF78B9BEDE42B2F1EA0A6681AA96DDDCC0B9E0CF92A51BA74087EED0411E8820272CD66580E8869A07DF - -Count = 1051 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = CF4E96CE179E9BDC2A127D0667D67430E9B6E9B9B5469D837ED4751BBD623BBEF6633C98C218F988A4EF172A0EE39F - -Count = 1052 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 844AB703158FC1C928AE4D4AD75AFE754C7AA1933B3A40D5DA21ADE93EB77D9A40EA116C8F7FD8284FD01585769832 - -Count = 1053 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = 33C91E336BF8724F274B50F6AE48ECD8590594C4051E6A3F0DBA3A2DB99C94597181CE89C29CCF21227267D25B5C3A - -Count = 1054 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = BD4A1E9740A1A40D8862462920F80E8BA0B2D90099684A4B11AC99C1BA889DD4A1E0FA97602495371C0FFF625DE06C - -Count = 1055 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = E4922055952816D825BA9E5DA85F5AE28E72F36CE9090ECE2A7DC0E7BE62CD36A53D64B0A6375A7FB05D174EF4053C - -Count = 1056 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = CDEC5DBED829C1526002B9FAFD07CD38EA109CA552ED759FDDD4B2926890190646CFDDF71F4DDB44DE748D1A930739 - -Count = 1057 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = -CT = BD14F783056788BF8EE192F2A1A3ABC055F33792C0A581455CF9BDEE7D8324BC1C58387E91F15AFE31C506FB6FFFE25E - -Count = 1058 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 00 -CT = 80019A7582B0CD4F739DAEE7D2CF797F0E671FACF30E87B2A92E1916E8F60D43F0C722B22F1D39DF831FF941AB650E8E - -Count = 1059 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 0001 -CT = 26468F73B9E6C1888C6FC5799BEAC0F82AAA3E69EC4FFAC3FF5AD9E884D5AF5BC32B45BEE76AE1BB8A5ACEB67DB56551 - -Count = 1060 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102 -CT = 1C1F5BF152910EC036015F12C386718CEBE221C0935F594281E410E6417C0D4C2DF930E9D95758722664666791402033 - -Count = 1061 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 00010203 -CT = 4CDF2E8D07C9934746474BAE5140FCFC507281D238826A2BAFA0907A69C8B3696E6D664296562254834D93D822826B1A - -Count = 1062 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 0001020304 -CT = 59C341B359F76A83EE3AE52E4F40C0AC7DC5B389CB24E06BDB79F42AB84793FB84F299E7206703C0C1C2A7B2713F0F30 - -Count = 1063 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405 -CT = 0B71ADF8419F29A80AA585FE6968E0936FBDE9E46AFAD64921CA4BE95DB1306E600EC02497EDCADFD6E77D133FC20C66 - -Count = 1064 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 00010203040506 -CT = 9D913ED6324CB9AF2FDBF73ED020903809C4D16F5B4A237AEF5EE33531F37B40C440103E350BC7DBA51AA377A164359F - -Count = 1065 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 0001020304050607 -CT = 63E019E2BC65A730645DDB65086A6C6DD29DE0C6909BDCD5C49BBE6014C939A3FB720C784BEACE8ECD78A3E0FB65A298 - -Count = 1066 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708 -CT = 5927FDB0A1759F28F0CE1D3EE4BAE0E14B8A86A97D9F2D4B6C2792614507E1E26ED4274F561852562563EA0137238F78 - -Count = 1067 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 00010203040506070809 -CT = 38DBBD5BD9821CA9454F28C375D88798D4AE0267B2823D9EBE817454B08A43AFC64E92BA29319D5D648137199A8FB723 - -Count = 1068 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A -CT = D0ACEB19995C4A9AA98AACE39A773EDCEFC213F847C92323AFEB9903FD937DEB9E7D97FB98076D4C746EC6052061B885 - -Count = 1069 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B -CT = 3AE5DAD426FC419B99E198E8AA6590176353908C68A3D20E4BCE7079A34B7E36C4B602EBD1711E8824C2F672ABA96015 - -Count = 1070 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C -CT = FECF987B1DAD9A693234F346EC2695CA3E279A41CE2287751583C2A02CF10145729A0E4C5DFBFBAD7C321B206082C25A - -Count = 1071 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C0D -CT = B958392575871E0E5227BE112843835500C06FAB30F59298B45F376FCE72C6501F0C06C66D79F763DB027651E5568D52 - -Count = 1072 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C0D0E -CT = E7B4596612906D4EAD667AEA1D15EB27B0C2EAA79197256D1DD674E305C83271FE387F5BB47CB2730CFA9ECBF33B2196 - -Count = 1073 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C0D0E0F -CT = DA963AEE2A51656B08EDEAF54F58E7300891FA9B9866B0A45E37D30F1DA40E7F44D0D8333F32629620BC3006A4272C28 - -Count = 1074 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 8C70C9884FB915E1DA6AD8CA1A5876F8E2E71FFAEFB54043DFCEF43E001BC50A3D7FB78637A90A297D57DC720FD09C67 - -Count = 1075 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = F181D3D0725F6A125D0D00471EF2431371F010E4C5184B493D51336B784B1FFA66A186A64E45A0F84ABF42433FB22F7D - -Count = 1076 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = DB44720526D9D37F55922EE2BE385717B1E891EDA60F742249B63B6E35D29D8777E6F9D119200F1598FFED58CA119720 - -Count = 1077 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 9224ADE9C4AB82CC63840D14589BDC2D01BCB33FD1304F70FD1D3ED23987CCEC771C0F1AF26A384A6992E8DC9EC6AD1A - -Count = 1078 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = 3AB8C3E00953A352226F9501F1AAB74D22F8612B5D3019F61D9779F60AC343CAF2A9C64F1B6268FE301C0436987FBCEF - -Count = 1079 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = D9176344EBAAD298B88F9296E9C9966681C44224ABCE57A50A3AA081A9D8DE23239C20EFE55B35A8452E46CC24611D06 - -Count = 1080 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = D5B9566076DF4A4EAEFF46FF2B5D12CCD4DDE2E2B30CB8C3EB4E667207101A4B02C63D5E9E35A04140F75AD42BC5493E - -Count = 1081 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = C2A88C46E190CA4E746279ECA58E57E6822FA82D737FFF9763A5D3369B076E61C86E90B15E0E0C9904FEC1D0184A80A9 - -Count = 1082 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 8ED630E48204F2779F658090D08C050ECD2470EA3B99EA4F190E93A1DD6DE1547027611BC6E8D7E7CE1858F82B9C716F - -Count = 1083 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = 935A04EDB480C16B758907E5164FB038D6C58AC1A0F38E6631F2BDC861C8F912932E9FC9800FCCB5453FF5E24EA45AA5 - -Count = 1084 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = F76BCA9BEF86D34132C12B481CC4BB21D0607EF11AA5062DECC555341F77AAA35A756CBFF2E234E111B4384F3634D12D - -Count = 1085 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 4144F934DE79326409CA117E94E759A2310BDAFB06C23F88A08105EA98C834A55F3BAA8BA9D4B4A7BC41B10369470907 - -Count = 1086 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = 11CB6DE4F97F4973865B3FB7AC31A9D0FC8293AB368298C3A04A6CA9D9052A1240F73A426FD04638FD300BBF2DB0EAF6 - -Count = 1087 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 5DF040290D2CE9AE2D10FF377D317C04A1FCA5B51214A124AFABFEC4AB703B429B00607AB70F7B766813CFEA8E29A9ED - -Count = 1088 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = 7891A6A79BA6B68169E8969FEE7F857E8645582D22600F372B2F649FAF46126ABF0118D60B7A2A2C362C5B317A51EEE7 - -Count = 1089 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 033BD399095BAE09294C88AA8FDE508229A3AF401B95F8A27039DC03378BA740615D1AF2F4393868385E7CB175B2E665 - diff --git a/romulus/Implementations/crypto_aead/romulusm1v12/armcortexm/api.h b/romulus/Implementations/crypto_aead/romulusm1v12/armcortexm/api.h deleted file mode 100644 index a4aa567..0000000 --- a/romulus/Implementations/crypto_aead/romulusm1v12/armcortexm/api.h +++ /dev/null @@ -1,5 +0,0 @@ -#define CRYPTO_KEYBYTES 16 -#define CRYPTO_NSECBYTES 0 -#define CRYPTO_NPUBBYTES 16 -#define CRYPTO_ABYTES 16 -#define CRYPTO_NOOVERLAP 1 diff --git a/romulus/Implementations/crypto_aead/romulusm1v12/armcortexm/crypto_aead.h b/romulus/Implementations/crypto_aead/romulusm1v12/armcortexm/crypto_aead.h deleted file mode 100644 index 6f4ee42..0000000 --- a/romulus/Implementations/crypto_aead/romulusm1v12/armcortexm/crypto_aead.h +++ /dev/null @@ -1,13 +0,0 @@ -//API required by the NIST for the LWC competition -int crypto_aead_encrypt(unsigned char *c, unsigned long long *clen, - const unsigned char *m, unsigned long long mlen, - const unsigned char *ad, unsigned long long adlen, - const unsigned char *nsec, const unsigned char *npub, - const unsigned char *k); - -//API required by the NIST for the LWC competition -int crypto_aead_decrypt(unsigned char *m, unsigned long long *outputmlen, - unsigned char *nsec, - const unsigned char *c, unsigned long long clen, - const unsigned char *ad, unsigned long long adlen, - const unsigned char *npub, const unsigned char *k); diff --git a/romulus/Implementations/crypto_aead/romulusm1v12/armcortexm/encrypt.c b/romulus/Implementations/crypto_aead/romulusm1v12/armcortexm/encrypt.c deleted file mode 100644 index ade5211..0000000 --- a/romulus/Implementations/crypto_aead/romulusm1v12/armcortexm/encrypt.c +++ /dev/null @@ -1,383 +0,0 @@ -#include "skinny128.h" -#include "romulus.h" -#include - -u8 final_ad_domain (unsigned long long adlen, unsigned long long mlen) { - u8 domain = 0; - u32 leftover; - //Determine which domain bits we need based on the length of the ad - if (adlen == 0) { - domain ^= 0x02; // No message, so only 1 block with padding - } else { - leftover = (u32)(adlen % (2 * BLOCKBYTES)); - if (leftover == 0) { // Even or odd ad length? - domain ^= 0x08; // Even with a full double block at the end - } else if (leftover < BLOCKBYTES) { - domain ^= 0x02; // Odd with a partial single block at the end - } else if (leftover > BLOCKBYTES) { - domain ^= 0x0A; // Even with a partial double block at the end - } - } - //Determine which domain bits we need based on the length of the message - if (mlen == 0) { - domain ^= 0x01; // No message, so only 1 block with padding - } else { - leftover = (u32)(mlen % (2 * BLOCKBYTES)); - if (leftover == 0) { // Even or odd message length? - domain ^= 0x04; // Even with a full double block at the end - } else if (leftover < BLOCKBYTES) { - domain ^= 0x01; // Odd with a partial single block at the end - } else if (leftover > BLOCKBYTES) { - domain ^= 0x05; // Even with a partial double block at the end - } - } - return domain; -} - -//Encryption and authentication using Romulus-N1 -int crypto_aead_encrypt - (unsigned char *c, unsigned long long *clen, - const unsigned char *m, unsigned long long mlen, - const unsigned char *ad, unsigned long long adlen, - const unsigned char *nsec, - const unsigned char *npub, - const unsigned char *k) { - - u64 tmp_mlen = mlen; - u32 tmp; - const u8* m_auth = m; - u8 final_domain = 0x30; - skinny_128_384_tks tks; - u8 state[BLOCKBYTES], pad[BLOCKBYTES]; - (void)nsec; - - // ----------------- Initialization ----------------- - *clen = mlen + TAGBYTES; - memset(tks.tk1, 0x00, KEYBYTES); - memset(state, 0x00, BLOCKBYTES); - tks.tk1[0] = 0x01; // Init the 56-bit LFSR counter - // ----------------- Initialization ----------------- - - // ----------------- Process the associated data ----------------- - final_domain ^= final_ad_domain(adlen, mlen); - SET_DOMAIN(tks, 0x28); - while (adlen > 2*BLOCKBYTES) { // Process double blocks but the last - UPDATE_CTR(tks.tk1); - XOR_BLOCK(state, state, ad); - tkschedule_lfsr(tks.rtk, ad + BLOCKBYTES, k, SKINNY128_384_ROUNDS); - tkschedule_perm(tks.rtk); - tkschedule_perm_tk1(tks.rtk1, tks.tk1); - skinny128_384(state, tks.rtk, state, tks.rtk1); - UPDATE_CTR(tks.tk1); - ad += 2*BLOCKBYTES; - adlen -= 2*BLOCKBYTES; - } - // Pad and process the left-over blocks - if (adlen == 2*BLOCKBYTES) { // Left-over complete double block - UPDATE_CTR(tks.tk1); - XOR_BLOCK(state, state, ad); - tkschedule_lfsr(tks.rtk, ad + BLOCKBYTES, k, SKINNY128_384_ROUNDS); - tkschedule_perm(tks.rtk); - tkschedule_perm_tk1(tks.rtk1, tks.tk1); - skinny128_384(state, tks.rtk, state, tks.rtk1); - UPDATE_CTR(tks.tk1); - } else if (adlen > BLOCKBYTES) { // Left-over partial double block - adlen -= BLOCKBYTES; - UPDATE_CTR(tks.tk1); - XOR_BLOCK(state, state, ad); - memcpy(pad, ad + BLOCKBYTES, adlen); - memset(pad + adlen, 0x00, 15 - adlen); - pad[15] = adlen; // Padding - tkschedule_lfsr(tks.rtk, pad, k, SKINNY128_384_ROUNDS); - tkschedule_perm(tks.rtk); - tkschedule_perm_tk1(tks.rtk1, tks.tk1); - skinny128_384(state, tks.rtk, state, tks.rtk1); - UPDATE_CTR(tks.tk1); - } else { - SET_DOMAIN(tks, 0x2C); - UPDATE_CTR(tks.tk1); - if (adlen == BLOCKBYTES) { // Left-over complete single block - XOR_BLOCK(state, state, ad); - } else { // Left-over partial single block - for(int i =0; i < adlen; i++) - state[i] ^= ad[i]; - state[15] ^= adlen; // Padding - } - if (tmp_mlen >= BLOCKBYTES) { - tkschedule_lfsr(tks.rtk, m_auth, k, SKINNY128_384_ROUNDS); - tkschedule_perm(tks.rtk); - tkschedule_perm_tk1(tks.rtk1, tks.tk1); - skinny128_384(state, tks.rtk, state, tks.rtk1); - if (tmp_mlen > BLOCKBYTES) - UPDATE_CTR(tks.tk1); - m_auth += BLOCKBYTES; - tmp_mlen -= BLOCKBYTES; - } else { - memcpy(pad, m_auth, tmp_mlen); - memset(pad + tmp_mlen, 0x00, BLOCKBYTES - tmp_mlen - 1); - pad[15] = (u8)tmp_mlen; // Padding - tkschedule_lfsr(tks.rtk, pad, k, SKINNY128_384_ROUNDS); - tkschedule_perm(tks.rtk); - tkschedule_perm_tk1(tks.rtk1, tks.tk1); - skinny128_384(state, tks.rtk, state, tks.rtk1); - tmp_mlen = 0; - } - } - // Process all message double blocks except the last - SET_DOMAIN(tks, 0x2C); - while (tmp_mlen > 32) { - UPDATE_CTR(tks.tk1); - XOR_BLOCK(state, state, m_auth); - tkschedule_lfsr(tks.rtk, m_auth + BLOCKBYTES, k, SKINNY128_384_ROUNDS); - tkschedule_perm(tks.rtk); - tkschedule_perm_tk1(tks.rtk1, tks.tk1); - skinny128_384(state, tks.rtk, state, tks.rtk1); - UPDATE_CTR(tks.tk1); - m_auth += 2 * BLOCKBYTES; - tmp_mlen -= 2 * BLOCKBYTES; - } - // Process the last message double block - if (tmp_mlen == 2 * BLOCKBYTES) { // Last message double block is full - UPDATE_CTR(tks.tk1); - XOR_BLOCK(state, state, m_auth); - tkschedule_lfsr(tks.rtk, m_auth + BLOCKBYTES, k, SKINNY128_384_ROUNDS); - tkschedule_perm(tks.rtk); - tkschedule_perm_tk1(tks.rtk1, tks.tk1); - skinny128_384(state, tks.rtk, state, tks.rtk1); - } else if (tmp_mlen > BLOCKBYTES) { // Last message double block is partial - tmp_mlen -= BLOCKBYTES; - UPDATE_CTR(tks.tk1); - XOR_BLOCK(state, state, m_auth); - memcpy(pad, m_auth + BLOCKBYTES, tmp_mlen); - memset(pad + tmp_mlen, 0x00, BLOCKBYTES - tmp_mlen - 1); - pad[15] = (u8)tmp_mlen; // Padding - tkschedule_lfsr(tks.rtk, pad, k, SKINNY128_384_ROUNDS); - tkschedule_perm(tks.rtk); - tkschedule_perm_tk1(tks.rtk1, tks.tk1); - skinny128_384(state, tks.rtk, state, tks.rtk1); - } else if (tmp_mlen == BLOCKBYTES) { // Last message single block is full - XOR_BLOCK(state, state, m_auth); - } else if (tmp_mlen > 0) { // Last message single block is partial - for(int i =0; i < (int)tmp_mlen; i++) - state[i] ^= m_auth[i]; - state[15] ^= (u8)tmp_mlen; // Padding - } - // Process the last partial block - SET_DOMAIN(tks, final_domain); - UPDATE_CTR(tks.tk1); - tkschedule_lfsr(tks.rtk, npub, k, SKINNY128_384_ROUNDS); - tkschedule_perm(tks.rtk); - tkschedule_perm_tk1(tks.rtk1, tks.tk1); - skinny128_384(state, tks.rtk, state, tks.rtk1); - // ----------------- Process the associated data ----------------- - - - // ----------------- Generate the tag ----------------- - G(state,state); - memcpy(c + mlen, state, TAGBYTES); - // ----------------- Generate the tag ----------------- - - memset(tks.tk1, 0x00, KEYBYTES); - tks.tk1[0] = 0x01; // Init the 56-bit LFSR counter - if (mlen > 0) { - SET_DOMAIN(tks, 0x24); - while (mlen > BLOCKBYTES) { - tkschedule_perm_tk1(tks.rtk1, tks.tk1); - skinny128_384(state, tks.rtk, state, tks.rtk1); - RHO(state,c,m); - UPDATE_CTR(tks.tk1); - c += BLOCKBYTES; - m += BLOCKBYTES; - mlen -= BLOCKBYTES; - } - tkschedule_perm_tk1(tks.rtk1, tks.tk1); - skinny128_384(state, tks.rtk, state, tks.rtk1); - for(int i = 0; i < (int)mlen; i++) { - tmp = m[i]; // Use of tmp variable in case c = m - c[i] = m[i] ^ (state[i] >> 1) ^ (state[i] & 0x80) ^ (state[i] << 7); - state[i] ^= (u8)tmp; - } - state[15] ^= (u8)mlen; // Padding - } - - return 0; -} - -//Decryption and tag verification using Romulus-N1 -int crypto_aead_decrypt - (unsigned char *m, unsigned long long *mlen, - unsigned char *nsec, - const unsigned char *c, unsigned long long clen, - const unsigned char *ad, unsigned long long adlen, - const unsigned char *npub, - const unsigned char *k) { - - u32 tmp, tmp_mlen; - u8 final_domain = 0x30; - u8* m_auth = m; - const u8* c_tmp = c; - skinny_128_384_tks tks; - u8 state[BLOCKBYTES], pad[BLOCKBYTES]; - (void)nsec; - - if (clen < TAGBYTES) - return -1; - - // ----------------- Initialization ----------------- - *mlen = clen - TAGBYTES; - memset(tks.tk1, 0x00, KEYBYTES); - tks.tk1[0] = 0x01; // Init the 56-bit LFSR counter - // ----------------- Initialization ----------------- - - // ----------------- Process the ciphertext ----------------- - clen -= TAGBYTES; - memcpy(state, c + clen, TAGBYTES); - tmp_mlen = clen; - if (tmp_mlen > 0) { - tkschedule_lfsr(tks.rtk, npub, k, SKINNY128_384_ROUNDS); - tkschedule_perm(tks.rtk); - SET_DOMAIN(tks, 0x24); - while (tmp_mlen > BLOCKBYTES) { - tkschedule_perm_tk1(tks.rtk1, tks.tk1); - skinny128_384(state, tks.rtk, state, tks.rtk1); - RHO_INV(state, c, m); - UPDATE_CTR(tks.tk1); - c += BLOCKBYTES; - m += BLOCKBYTES; - tmp_mlen -= BLOCKBYTES; - } - tkschedule_perm_tk1(tks.rtk1, tks.tk1); - skinny128_384(state, tks.rtk, state, tks.rtk1); - for(int i = 0; i < (int)tmp_mlen; i++) { - m[i] = c[i] ^ (state[i] >> 1) ^ (state[i] & 0x80) ^ (state[i] << 7); - state[i] ^= m[i]; - } - state[15] ^= (u8)tmp_mlen; // Padding - } - // ----------------- Process the ciphertext ----------------- - - // ----------------- Process the associated data ----------------- - memset(tks.tk1, 0x00, KEYBYTES); - tks.tk1[0] = 0x01; // Init the 56-bit LFSR counter - memset(state, 0x00, BLOCKBYTES); - final_domain ^= final_ad_domain(adlen, clen); - SET_DOMAIN(tks, 0x28); - while (adlen > 2*BLOCKBYTES) { // Process double blocks but the last - UPDATE_CTR(tks.tk1); - XOR_BLOCK(state, state, ad); - tkschedule_lfsr(tks.rtk, ad + BLOCKBYTES, k, SKINNY128_384_ROUNDS); - tkschedule_perm(tks.rtk); - tkschedule_perm_tk1(tks.rtk1, tks.tk1); - skinny128_384(state, tks.rtk, state, tks.rtk1); - UPDATE_CTR(tks.tk1); - ad += 2*BLOCKBYTES; - adlen -= 2*BLOCKBYTES; - } - // Pad and process the left-over blocks - if (adlen == 2*BLOCKBYTES) { // Left-over complete double block - UPDATE_CTR(tks.tk1); - XOR_BLOCK(state, state, ad); - tkschedule_lfsr(tks.rtk, ad + BLOCKBYTES, k, SKINNY128_384_ROUNDS); - tkschedule_perm(tks.rtk); - tkschedule_perm_tk1(tks.rtk1, tks.tk1); - skinny128_384(state, tks.rtk, state, tks.rtk1); - UPDATE_CTR(tks.tk1); - } else if (adlen > BLOCKBYTES) { // Left-over partial double block - adlen -= BLOCKBYTES; - UPDATE_CTR(tks.tk1); - XOR_BLOCK(state, state, ad); - memcpy(pad, ad + BLOCKBYTES, adlen); - memset(pad + adlen, 0x00, 15 - adlen); - pad[15] = adlen; // Padding - tkschedule_lfsr(tks.rtk, pad, k, SKINNY128_384_ROUNDS); - tkschedule_perm(tks.rtk); - tkschedule_perm_tk1(tks.rtk1, tks.tk1); - skinny128_384(state, tks.rtk, state, tks.rtk1); - UPDATE_CTR(tks.tk1); - } else { - SET_DOMAIN(tks, 0x2C); - UPDATE_CTR(tks.tk1); - if (adlen == BLOCKBYTES) { // Left-over complete single block - XOR_BLOCK(state, state, ad); - } else { // Left-over partial single block - for(int i =0; i < (int)adlen; i++) - state[i] ^= ad[i]; - state[15] ^= adlen; // Padding - } - if (clen >= BLOCKBYTES) { - tkschedule_lfsr(tks.rtk, m_auth, k, SKINNY128_384_ROUNDS); - tkschedule_perm(tks.rtk); - tkschedule_perm_tk1(tks.rtk1, tks.tk1); - skinny128_384(state, tks.rtk, state, tks.rtk1); - if (clen > BLOCKBYTES) - UPDATE_CTR(tks.tk1); - m_auth += BLOCKBYTES; - clen -= BLOCKBYTES; - } else { - memcpy(pad, m_auth, clen); - memset(pad + clen, 0x00, BLOCKBYTES - clen - 1); - pad[15] = (u8)clen; // Padding - tkschedule_lfsr(tks.rtk, pad, k, SKINNY128_384_ROUNDS); - tkschedule_perm(tks.rtk); - tkschedule_perm_tk1(tks.rtk1, tks.tk1); - skinny128_384(state, tks.rtk, state, tks.rtk1); - clen = 0; - } - } - // Process all message double blocks except the last - SET_DOMAIN(tks, 0x2C); - while (clen > 32) { - UPDATE_CTR(tks.tk1); - XOR_BLOCK(state, state, m_auth); - tkschedule_lfsr(tks.rtk, m_auth + BLOCKBYTES, k, SKINNY128_384_ROUNDS); - tkschedule_perm(tks.rtk); - tkschedule_perm_tk1(tks.rtk1, tks.tk1); - skinny128_384(state, tks.rtk, state, tks.rtk1); - UPDATE_CTR(tks.tk1); - m_auth += 2 * BLOCKBYTES; - clen -= 2 * BLOCKBYTES; - } - // Process the last message double block - if (clen == 2 * BLOCKBYTES) { // Last message double block is full - UPDATE_CTR(tks.tk1); - XOR_BLOCK(state, state, m_auth); - tkschedule_lfsr(tks.rtk, m_auth + BLOCKBYTES, k, SKINNY128_384_ROUNDS); - tkschedule_perm(tks.rtk); - tkschedule_perm_tk1(tks.rtk1, tks.tk1); - skinny128_384(state, tks.rtk, state, tks.rtk1); - } else if (clen > BLOCKBYTES) { // Last message double block is partial - clen -= BLOCKBYTES; - UPDATE_CTR(tks.tk1); - XOR_BLOCK(state, state, m_auth); - memcpy(pad, m_auth + BLOCKBYTES, clen); - memset(pad + clen, 0x00, BLOCKBYTES - clen - 1); - pad[15] = (u8)clen; // Padding - tkschedule_lfsr(tks.rtk, pad, k, SKINNY128_384_ROUNDS); - tkschedule_perm(tks.rtk); - tkschedule_perm_tk1(tks.rtk1, tks.tk1); - skinny128_384(state, tks.rtk, state, tks.rtk1); - } else if (clen == BLOCKBYTES) { // Last message single block is full - XOR_BLOCK(state, state, m_auth); - } else if (clen > 0) { // Last message single block is partial - for(int i =0; i < (int)clen; i++) - state[i] ^= m[i]; - state[15] ^= (u8)clen; // Padding - } - // Process the last partial block - SET_DOMAIN(tks, final_domain); - UPDATE_CTR(tks.tk1); - tkschedule_lfsr(tks.rtk, npub, k, SKINNY128_384_ROUNDS); - tkschedule_perm(tks.rtk); - tkschedule_perm_tk1(tks.rtk1, tks.tk1); - skinny128_384(state, tks.rtk, state, tks.rtk1); - // ----------------- Process the associated data ----------------- - - // ----------------- Generate and check the tag ----------------- - G(state,state); - tmp = 0; - for(int i = 0; i < TAGBYTES; i++) - tmp |= state[i] ^ c_tmp[*mlen+i]; //constant-time tag comparison - // ----------------- Generate and check the tag ----------------- - - return tmp; -} \ No newline at end of file diff --git a/romulus/Implementations/crypto_aead/romulusm1v12/armcortexm/romulus.h b/romulus/Implementations/crypto_aead/romulusm1v12/armcortexm/romulus.h deleted file mode 100644 index 626a767..0000000 --- a/romulus/Implementations/crypto_aead/romulusm1v12/armcortexm/romulus.h +++ /dev/null @@ -1,69 +0,0 @@ -#ifndef ROMULUSN1_H_ -#define ROMULUSN1_H_ - -#include "skinny128.h" - -typedef unsigned char u8; -typedef unsigned int u32; -typedef unsigned int u64; -typedef struct { - u8 tk1[16]; //to manipulate tk1 byte-wise - u32 rtk1[4*16]; //to avoid tk schedule recomputations - u32 rtk[4*SKINNY128_384_ROUNDS]; //all round tweakeys -} skinny_128_384_tks; - -#define TAGBYTES 16 -#define KEYBYTES 16 -#define BLOCKBYTES 16 - -#define SET_DOMAIN(tks, domain) ((tks).tk1[7] = (domain)) - -//G as defined in the Romulus specification in a 32-bit word-wise manner -#define G(x,y) ({ \ - tmp = ((u32*)(y))[0]; \ - ((u32*)(x))[0] = (tmp >> 1 & 0x7f7f7f7f) ^ ((tmp ^ (tmp << 7)) & 0x80808080); \ - tmp = ((u32*)(y))[1]; \ - ((u32*)(x))[1] = (tmp >> 1 & 0x7f7f7f7f) ^ ((tmp ^ (tmp << 7)) & 0x80808080); \ - tmp = ((u32*)(y))[2]; \ - ((u32*)(x))[2] = (tmp >> 1 & 0x7f7f7f7f) ^ ((tmp ^ (tmp << 7)) & 0x80808080); \ - tmp = ((u32*)(y))[3]; \ - ((u32*)(x))[3] = (tmp >> 1 & 0x7f7f7f7f) ^ ((tmp ^ (tmp << 7)) & 0x80808080); \ -}) - -//update the counter in tk1 in a 32-bit word-wise manner -#define UPDATE_CTR(tk1) ({ \ - tmp = ((u32*)(tk1))[1]; \ - ((u32*)(tk1))[1] = (tmp << 1) & 0x00ffffff; \ - ((u32*)(tk1))[1] |= (((u32*)(tk1))[0] >> 31); \ - ((u32*)(tk1))[1] |= tmp & 0xff000000; \ - ((u32*)(tk1))[0] <<= 1; \ - if ((tmp >> 23) & 0x01) \ - ((u32*)(tk1))[0] ^= 0x95; \ -}) - -//x <- y ^ z for 128-bit blocks -#define XOR_BLOCK(x,y,z) ({ \ - ((u32*)(x))[0] = ((u32*)(y))[0] ^ ((u32*)(z))[0]; \ - ((u32*)(x))[1] = ((u32*)(y))[1] ^ ((u32*)(z))[1]; \ - ((u32*)(x))[2] = ((u32*)(y))[2] ^ ((u32*)(z))[2]; \ - ((u32*)(x))[3] = ((u32*)(y))[3] ^ ((u32*)(z))[3]; \ -}) - - -//Rho as defined in the Romulus specification -//use pad as a tmp variable in case y = z -#define RHO(x,y,z) ({ \ - G(pad,x); \ - XOR_BLOCK(y, pad, z); \ - XOR_BLOCK(x, x, z); \ -}) - -//Rho inverse as defined in the Romulus specification -//use pad as a tmp variable in case y = z -#define RHO_INV(x, y, z) ({ \ - G(pad, x); \ - XOR_BLOCK(z, pad, y); \ - XOR_BLOCK(x, x, z); \ -}) - -#endif // ROMULUSN1_H_ \ No newline at end of file diff --git a/romulus/Implementations/crypto_aead/romulusm1v12/armcortexm/skinny128.h b/romulus/Implementations/crypto_aead/romulusm1v12/armcortexm/skinny128.h deleted file mode 100644 index 4c8f956..0000000 --- a/romulus/Implementations/crypto_aead/romulusm1v12/armcortexm/skinny128.h +++ /dev/null @@ -1,17 +0,0 @@ -#ifndef SKINNY128_H_ -#define SKINNY128_H_ - -typedef unsigned char u8; -typedef unsigned int u32; - -#define SKINNY128_128_ROUNDS 40 -#define SKINNY128_256_ROUNDS 48 -#define SKINNY128_384_ROUNDS 56 - -extern void skinny128_384(u8* ctext, const u32* tk, const u8* ptext, const u32* rtk1); -extern void tkschedule_lfsr(u32* rtk, const u8* tk2, const u8* tk3, const int rounds); -extern void tkschedule_perm(u32* rtk); -extern void tkschedule_perm_tk1(u32* rtk1, const u8* tk1); - - -#endif // SKINNY128_H_ \ No newline at end of file diff --git a/romulus/Implementations/crypto_aead/romulusm1v12/armcortexm/skinny128.s b/romulus/Implementations/crypto_aead/romulusm1v12/armcortexm/skinny128.s deleted file mode 100644 index dcd4852..0000000 --- a/romulus/Implementations/crypto_aead/romulusm1v12/armcortexm/skinny128.s +++ /dev/null @@ -1,1974 +0,0 @@ -/******************************************************************************* -* ARM assembly implementation of fixsliced SKINNY-128-384. -* -* For more details, see the paper at: https:// -* -* @author Alexandre Adomnicai, Nanyang Technological University, -* alexandre.adomnicai@ntu.edu.sg -* -* @date May 2020 -*******************************************************************************/ - -.syntax unified -.thumb - -/******************************************************************************* -* applies P^2 on the tweakey state in a bitsliced manner -*******************************************************************************/ -.align 2 -p2: - movw r1, #0xcc00 - movt r1, #0xcc00 //r1 <- 0xcc00cc00 - movw r10, #0xcc00 - movt r10, #0x0033 //r10<- 0xcc000033 - and r11, r1, r6, ror #14 - bfi r11, r6, #16, #8 - and r12, r6, #0xcc000000 - orr r11, r11, r12, lsr #2 - and r12, r10, r6 - orr r11, r11, r12, lsr #8 - and r12, r6, #0x00cc0000 - orr r6, r11, r12, lsr #18 - and r11, r1, r7, ror #14 - bfi r11, r7, #16, #8 - and r12, r7, #0xcc000000 - orr r11, r11, r12, lsr #2 - and r12, r10, r7 - orr r11, r11, r12, lsr #8 - and r12, r7, #0x00cc0000 - orr r7, r11, r12, lsr #18 - and r11, r1, r8, ror #14 - bfi r11, r8, #16, #8 - and r12, r8, #0xcc000000 - orr r11, r11, r12, lsr #2 - and r12, r10, r8 - orr r11, r11, r12, lsr #8 - and r12, r8, #0x00cc0000 - orr r8, r11, r12, lsr #18 - and r11, r1, r9, ror #14 - bfi r11, r9, #16, #8 - and r12, r9, #0xcc000000 - orr r11, r11, r12, lsr #2 - and r12, r10, r9 - orr r11, r11, r12, lsr #8 - and r12, r9, #0x00cc0000 - orr r9, r11, r12, lsr #18 - bx lr - -/******************************************************************************* -* applies P^4 on the tweakey state in a bitsliced manner -*******************************************************************************/ -.align 2 -p4: - str.w r14, [sp] //store r14 on the stack - movw r14, #0x00cc - movt r14, #0xcc00 //r14<- 0xcc0000cc - movw r12, #0xcc00 - movt r12, #0x3300 //r12<- 0x3300cc00 - movw r11, #0x00cc - movt r11, #0x00cc //r11<- 0x00cc00cc - and r10, r14, r6, ror #22 - and r1, r12, r6, ror #16 - orr r10, r10, r1 - and r1, r6, r11 - orr r10, r10, r1, lsr #2 - movw r1, #0xcc33 //r1 <- 0x0000cc33 - and r6, r6, r1 - orr r6, r10, r6, ror #24 - and r10, r14, r7, ror #22 - and r1, r12, r7, ror #16 - orr r10, r10, r1 - and r1, r7, r11 - orr r10, r10, r1, lsr #2 - movw r1, #0xcc33 //r1 <- 0x0000cc33 - and r7, r7, r1 - orr r7, r10, r7, ror #24 - and r10, r14, r8, ror #22 - and r1, r12, r8, ror #16 - orr r10, r10, r1 - and r1, r8, r11 - orr r10, r10, r1, lsr #2 - movw r1, #0xcc33 //r1 <- 0x0000cc33 - and r8, r8, r1 - orr r8, r10, r8, ror #24 - and r10, r14, r9, ror #22 - ldr.w r14, [sp] //restore r14 - and r12, r12, r9, ror #16 - orr r10, r10, r12 - and r12, r9, r11 - orr r10, r10, r12, lsr #2 - movw r12, #0xcc33 //r1 <- 0x0000cc33 - and r9, r9, r12 - orr r9, r10, r9, ror #24 - bx lr - -/******************************************************************************* -* applies P^6 on the tweakey state in a bitsliced manner -*******************************************************************************/ -.align 2 -p6: - movw r1, #0x3333 //r1 <- 0x00003333 - movw r12, #0x00cc - movt r12, #0x3300 //r12<- 0x330000cc - and r10, r6, r1, ror #8 // --- permute r6 6 times - and r11, r12, r6, ror #24 - orr r11, r11, r10, ror #6 - and r10, r1, r6, ror #10 - orr r11, r11, r10 - and r10, r6, #0x000000cc - orr r11, r11, r10, lsl #14 - and r10, r6, #0x00003300 - orr r6, r11, r10, lsl #2 // permute r6 6 times --- - and r10, r7, r1, ror #8 // --- permute r7 6 times - and r11, r12, r7, ror #24 - orr r11, r11, r10, ror #6 - and r10, r1, r7, ror #10 - orr r11, r11, r10 - and r10, r7, #0x000000cc - orr r11, r11, r10, lsl #14 - and r10, r7, #0x00003300 - orr r7, r11, r10, lsl #2 // permute r7 6 times --- - and r10, r8, r1, ror #8 // --- permute r8 6 times - and r11, r12, r8, ror #24 - orr r11, r11, r10, ror #6 - and r10, r1, r8, ror #10 - orr r11, r11, r10 - and r10, r8, #0x000000cc - orr r11, r11, r10, lsl #14 - and r10, r8, #0x00003300 - orr r8, r11, r10, lsl #2 // permute r8 6 times --- - and r10, r9, r1, ror #8 // --- permute r9 6 times - and r11, r12, r9, ror #24 - orr r11, r11, r10, ror #6 - and r10, r1, r9, ror #10 - orr r11, r11, r10 - and r10, r9, #0x000000cc - orr r11, r11, r10, lsl #14 - and r10, r9, #0x00003300 // permute r9 6 times --- - orr r9, r11, r10, lsl #2 - bx lr - -/******************************************************************************* -* applies P^8 on the tweakey state in a bitsliced manner -*******************************************************************************/ -.align 2 -p8: - movw r12, #0x3333 //r12<- 0x00003333 - movw r1, #0x0000 - movt r1, #0x33cc //r1 <- 0x33cc0000 - and r10, r6, r1 // --- permute r6 8 times - and r11, r1, r6, ror #8 - orr r11, r11, r10, ror #24 - and r10, r6, r12, lsl #2 - orr r11, r11, r10, ror #26 - and r10, r6, r12, lsl #8 - orr r6, r11, r10, lsr #6 // permute r6 8 times --- - and r10, r7, r1 // --- permute r7 8 times - and r11, r1, r7, ror #8 - orr r11, r11, r10, ror #24 - and r10, r7, r12, lsl #2 - orr r11, r11, r10, ror #26 - and r10, r7, r12, lsl #8 - orr r7, r11, r10, lsr #6 // permute r7 8 times --- - and r10, r8, r1 // --- permute r8 8 times - and r11, r1, r8, ror #8 - orr r11, r11, r10, ror #24 - and r10, r8, r12, lsl #2 - orr r11, r11, r10, ror #26 - and r10, r8, r12, lsl #8 - orr r8, r11, r10, lsr #6 // permute r8 8 times --- - and r10, r9, r1 // --- permute r9 8 times - and r11, r1, r9, ror #8 - orr r11, r11, r10, ror #24 - and r10, r9, r12, lsl #2 - orr r11, r11, r10, ror #26 - and r10, r9, r12, lsl #8 - orr r9, r11, r10, lsr #6 // permute r9 8 times --- - bx lr - -/******************************************************************************* -* applies P^10 on the tweakey state in a bitsliced manner -*******************************************************************************/ -.align 2 -p10: - movw r12, #0x0033 - movt r12, #0x3300 //r12<- 0x33000033 - movw r1, #0xcc33 //r1 <- 0x0000cc33 - and r10, r6, r1, ror #8 // --- permute r6 10 times - and r11, r12, r6, ror #26 - orr r11, r11, r10, ror #8 - and r10, r6, r12, ror #24 - orr r11, r11, r10, ror #22 - and r10, r6, #0x00330000 - orr r11, r11, r10, lsr #14 - and r10, r6, #0x0000cc00 - orr r6, r11, r10, lsr #2 // permute r6 10 times --- - and r10, r7, r1, ror #8 // --- permute r6 10 times - and r11, r12, r7, ror #26 - orr r11, r11, r10, ror #8 - and r10, r7, r12, ror #24 - orr r11, r11, r10, ror #22 - and r10, r7, #0x00330000 - orr r11, r11, r10, lsr #14 - and r10, r7, #0x0000cc00 - orr r7, r11, r10, lsr #2 // permute r6 10 times --- - and r10, r8, r1, ror #8 // --- permute r6 10 times - and r11, r12, r8, ror #26 - orr r11, r11, r10, ror #8 - and r10, r8, r12, ror #24 - orr r11, r11, r10, ror #22 - and r10, r8, #0x00330000 - orr r11, r11, r10, lsr #14 - and r10, r8, #0x0000cc00 - orr r8, r11, r10, lsr #2 // permute r6 10 times --- - and r10, r9, r1, ror #8 // --- permute r6 10 times - and r11, r12, r9, ror #26 - orr r11, r11, r10, ror #8 - and r10, r9, r12, ror #24 - orr r11, r11, r10, ror #22 - and r10, r9, #0x00330000 - orr r11, r11, r10, lsr #14 - and r10, r9, #0x0000cc00 - orr r9, r11, r10, lsr #2 // permute r6 10 times --- - bx lr - -/******************************************************************************* -* applies P^12 on the tweakey state in a bitsliced manner -*******************************************************************************/ -.align 2 -p12: - str.w r14, [sp] //store r14 on the stack - movw r14, #0xcc33 //r14<- 0x0000cc33 - movw r12, #0x00cc - movt r12, #0x00cc //r12<- 0x00cc00cc - movw r1, #0x3300 - movt r1, #0xcc00 //r1 <- 0xcc003300 - and r10, r14, r6, ror #8 // --- permute r6 12 times - and r11, r12, r6, ror #30 - orr r11, r11, r10 - and r10, r1, r6, ror #16 - orr r11, r11, r10 - movw r10, #0xcccc //r10<- 0x0000cccc - and r10, r6, r10, ror #8 - orr r6, r11, r10, ror #10 // permute r6 12 times --- - and r10, r14, r7, ror #8 // --- permute r7 12 times - and r11, r12, r7, ror #30 - orr r11, r11, r10 - and r10, r1, r7, ror #16 - orr r11, r11, r10 - movw r10, #0xcccc //r10<- 0x0000cccc - and r10, r7, r10, ror #8 - orr r7, r11, r10, ror #10 // permute r7 12 times --- - and r10, r14, r8, ror #8 // --- permute r8 12 times - and r11, r12, r8, ror #30 - orr r11, r11, r10 - and r10, r1, r8, ror #16 - orr r11, r11, r10 - movw r10, #0xcccc //r10<- 0x0000cccc - and r10, r8, r10, ror #8 - orr r8, r11, r10, ror #10 // permute r8 12 times --- - and r10, r14, r9, ror #8 // --- permute r9 12 times - and r11, r12, r9, ror #30 - orr r11, r11, r10 - and r10, r1, r9, ror #16 - ldr.w r14, [sp] - orr r11, r11, r10 - movw r10, #0xcccc //r10<- 0x0000cccc - and r10, r9, r10, ror #8 - orr r9, r11, r10, ror #10 // permute r9 12 times --- - bx lr - -/******************************************************************************* -* applies P^14 on the tweakey state in a bitsliced manner -*******************************************************************************/ -.align 2 -p14: - movw r1, #0xcc00 - movt r1, #0x0033 //r1 <- 0x0033cc00 - movw r12, #0xcc00 - movt r12, #0xcc00 //r12<- 0x33003300 - and r10, r1, r6, ror #24 // --- permute r6 14 times - and r11, r6, #0x00000033 - orr r11, r10, r11, ror #14 - and r10, r6, #0x33000000 - orr r11, r11, r10, ror #30 - and r10, r6, #0x00ff0000 - orr r11, r11, r10, ror #16 - and r10, r6, r12 - orr r6, r11, r10, ror #18 // permute r6 14 times --- - and r10, r1, r7, ror #24 // --- permute r7 14 times - and r11, r7, #0x00000033 - orr r11, r10, r11, ror #14 - and r10, r7, #0x33000000 - orr r11, r11, r10, ror #30 - and r10, r7, #0x00ff0000 - orr r11, r11, r10, ror #16 - and r10, r7, r12 - orr r7, r11, r10, ror #18 // permute r7 14 times --- - and r10, r1, r8, ror #24 // --- permute r8 14 times - and r11, r8, #0x00000033 - orr r11, r10, r11, ror #14 - and r10, r8, #0x33000000 - orr r11, r11, r10, ror #30 - and r10, r8, #0x00ff0000 - orr r11, r11, r10, ror #16 - and r10, r8, r12 - orr r8, r11, r10, ror #18 // permute r8 14 times --- - and r10, r1, r9, ror #24 // --- permute r9 14 times - and r11, r9, #0x00000033 - orr r11, r10, r11, ror #14 - and r10, r9, #0x33000000 - orr r11, r11, r10, ror #30 - and r10, r9, #0x00ff0000 - orr r11, r11, r10, ror #16 - and r10, r9, r12 - orr r9, r11, r10, ror #18 // permute r9 14 times --- - bx lr - -.align 2 -packing: - eor r12, r2, r2, lsr #3 - and r12, r12, r10 - eor r2, r2, r12 - eor r2, r2, r12, lsl #3 //SWAPMOVE(r2, r2, 0x0a0a0a0a, 3) - eor r12, r3, r3, lsr #3 - and r12, r12, r10 - eor r3, r3, r12 - eor r3, r3, r12, lsl #3 //SWAPMOVE(r3, r3, 0x0a0a0a0a, 3) - eor r12, r4, r4, lsr #3 - and r12, r12, r10 - eor r4, r4, r12 - eor r4, r4, r12, lsl #3 //SWAPMOVE(r4, r4, 0x0a0a0a0a, 3) - eor r12, r5, r5, lsr #3 - and r12, r12, r10 - eor r5, r5, r12 - eor r5, r5, r12, lsl #3 //SWAPMOVE(r5, r5, 0x0a0a0a0a, 3) - eor r12, r2, r4, lsr #2 - and r12, r12, r11 - eor r2, r2, r12 - eor r4, r4, r12, lsl #2 //SWAPMOVE(r4, r2, 0x30303030, 2) - eor r12, r2, r3, lsr #4 - and r12, r12, r11, lsr #2 - eor r2, r2, r12 - eor r3, r3, r12, lsl #4 //SWAPMOVE(r3, r2, 0x0c0c0c0c, 4) - eor r12, r2, r5, lsr #6 - and r12, r12, r11, lsr #4 - eor r2, r2, r12 - eor r5, r5, r12, lsl #6 //SWAPMOVE(r5, r2, 0x03030303, 6) - eor r12, r4, r3, lsr #2 - and r12, r12, r11, lsr #2 - eor r4, r4, r12 - eor r3, r3, r12, lsl #2 //SWAPMOVE(r3, r4, 0x0c0c0c0c, 2) - eor r12, r4, r5, lsr #4 - and r12, r12, r11, lsr #4 - eor r4, r4, r12 - eor r5, r5, r12, lsl #4 //SWAPMOVE(r5, r4, 0x03030303, 4) - eor r12, r3, r5, lsr #2 - and r12, r12, r11, lsr #4 - eor r3, r3, r12 - eor r5, r5, r12, lsl #2 //SWAPMOVE(r5, r3, 0x03030303, 2) - bx lr - -/****************************************************************************** -* Compute LFSR2(TK2) ^ LFSR3(TK3) for all rounds. -* Performing both at the same time allows to save some memory accesses. -******************************************************************************/ -@ void tkschedule_lfsr(u32* tk, const u8* tk2, const u8* tk3, const int rounds) -.global tkschedule_lfsr -.type tkschedule_lfsr,%function -.align 2 -tkschedule_lfsr: - push {r0-r12, r14} - ldr.w r3, [r1, #8] //load tk2 (3rd word) - ldr.w r4, [r1, #4] //load tk2 (2nd word) - ldr.w r5, [r1, #12] //load tk2 (4th word) - ldr.w r12, [r1] //load tk2 (1st word) - mov r1, r2 //move tk3 address in r1 - mov r2, r12 //move 1st tk2 word in r2 - movw r10, #0x0a0a - movt r10, #0x0a0a //r10 <- 0x0a0a0a0a - movw r11, #0x3030 - movt r11, #0x3030 //r7 <- 0x30303030 - bl packing //pack tk2 - mov r6, r2 //move tk2 from r2-r5 to r6-r9 - mov r7, r3 //move tk2 from r2-r5 to r6-r9 - mov r8, r4 //move tk2 from r2-r5 to r6-r9 - mov r9, r5 //move tk2 from r2-r5 to r6-r9 - ldr.w r3, [r1, #8] //load tk3 (3rd word) - ldr.w r4, [r1, #4] //load tk3 (2nd word) - ldr.w r5, [r1, #12] //load tk3 (4th) word) - ldr.w r2, [r1] //load tk3 (1st) word) - bl packing //pack tk3 - eor r10, r10, r10, lsl #4 //r10<- 0xaaaaaaaa - ldr.w r1, [sp, #12] //load loop counter in r1 - eor r11, r2, r6 //tk2 ^ tk3 (1st word) - eor r12, r3, r7 //tk2 ^ tk3 (2nd word) - strd r11, r12, [r0], #8 //store in tk - eor r11, r4, r8 //tk2 ^ tk3 (3rd word) - eor r12, r5, r9 //tk2 ^ tk3 (4th word) - strd r11, r12, [r0], #8 //store in tk - loop: - and r12, r8, r10 // --- apply LFSR2 to tk2 - eor r12, r12, r6 - and r14, r10, r12, lsl #1 - and r12, r12, r10 - orr r6, r14, r12, lsr #1 // apply LFSR2 to tk2 --- - and r12, r3, r10 // --- apply LFSR3 to tk3 - eor r12, r5, r12, lsr #1 - and r14, r10, r12, lsl #1 - and r12, r12, r10 - orr r5, r14, r12, lsr #1 // apply LFSR3 to tk3 --- - eor r11, r5, r7 //tk2 ^ tk3 (1st word) - eor r12, r2, r8 //tk2 ^ tk3 (2nd word) - strd r11, r12, [r0], #8 //store in tk - eor r11, r3, r9 //tk2 ^ tk3 (3rd word) - eor r12, r4, r6 //tk2 ^ tk3 (4th word) - strd r11, r12, [r0], #24 //store in tk - and r12, r9, r10 // --- apply LFSR2 to tk2 - eor r12, r12, r7 - and r14, r10, r12, lsl #1 - and r12, r12, r10 - orr r7, r14, r12, lsr #1 // apply LFSR2 to tk2 --- - and r12, r2, r10 // --- apply LFSR3 to tk3 - eor r12, r4, r12, lsr #1 - and r14, r10, r12, lsl #1 - and r12, r12, r10 - orr r4, r14, r12, lsr #1 // apply LFSR3 to tk3 --- - eor r11, r4, r8 //tk2 ^ tk3 (1st word) - eor r12, r5, r9 //tk2 ^ tk3 (2nd word) - strd r11, r12, [r0], #8 //store in tk - eor r11, r2, r6 //tk2 ^ tk3 (3rd word) - eor r12, r3, r7 //tk2 ^ tk3 (4th word) - strd r11, r12, [r0], #24 //store in tk - and r12, r6, r10 // --- apply LFSR2 to tk2 - eor r12, r12, r8 - and r14, r10, r12, lsl #1 - and r12, r12, r10 - orr r8, r14, r12, lsr #1 // apply LFSR2 to tk2 --- - and r12, r5, r10 // --- apply LFSR3 to tk3 - eor r12, r3, r12, lsr #1 - and r14, r10, r12, lsl #1 - and r12, r12, r10 - orr r3, r14, r12, lsr #1 // apply LFSR3 to tk3 --- - eor r11, r3, r9 //tk2 ^ tk3 (1st word) - eor r12, r4, r6 //tk2 ^ tk3 (2nd word) - strd r11, r12, [r0], #8 //store in tk - eor r11, r5, r7 //tk2 ^ tk3 (3rd word) - eor r12, r2, r8 //tk2 ^ tk3 (4th word) - strd r11, r12, [r0], #24 //store in tk - and r12, r7, r10 // --- apply LFSR2 to tk2 - eor r12, r12, r9 - and r14, r10, r12, lsl #1 - and r12, r12, r10 - orr r9, r14, r12, lsr #1 // apply LFSR2 to tk2 --- - and r12, r4, r10 // --- apply LFSR3 to tk3 - eor r12, r2, r12, lsr #1 - and r14, r10, r12, lsl #1 - and r12, r12, r10 - orr r2, r14, r12, lsr #1 // apply LFSR3 to tk3 --- - eor r11, r2, r6 //tk2 ^ tk3 (1st word) - eor r12, r3, r7 //tk2 ^ tk3 (2nd word) - strd r11, r12, [r0], #8 //store in tk - eor r11, r4, r8 //tk2 ^ tk3 (3rd word) - eor r12, r5, r9 //tk2 ^ tk3 (4th word) - strd r11, r12, [r0], #24 //store in tk - subs.w r1, r1, #8 //decrease loop counter by 8 - bne loop - pop {r0-r12, r14} - bx lr - -/****************************************************************************** -* Applies the permutation P and add the round constants to all round tweakeys. -******************************************************************************/ -@ void tkschedule_perm(u32* tk) -.global tkschedule_perm -.type tkschedule_perm,%function -.align 2 -tkschedule_perm: - push {r0-r12, lr} - sub.w sp, #4 //to store r14 in subroutines - ldm r0, {r6-r9} //load tk - movw r10, #0xf0f0 - movt r10, #0xf0f0 //r10<- 0xf0f0f0f0 - and r6, r6, r10 //tk &= 0xf0f0f0f0 (1st word) - and r7, r7, r10 //tk &= 0xf0f0f0f0 (2nd word) - and r8, r8, r10 //tk &= 0xf0f0f0f0 (3rd word) - and r9, r9, r10 //tk &= 0xf0f0f0f0 (4th word) - eor r8, r8, #0x00000004 //add rconst - eor r9, r9, #0x00000040 //add rconst - mvn r9, r9 //to remove a NOT in sbox calculations - strd r8, r9, [r0], #8 //store 1st half tk for 1st round - strd r6, r7, [r0], #8 //store 2nd half tk for 1st round - ldm r0, {r6-r9} //load tk - bl p2 //apply the permutation twice - movw r10, #0xc3c3 - movt r10, #0xc3c3 //r10<- 0xc3c3c3c3 - and r11, r10, r6, ror #26 //ror and mask to match fixslicing - and r12, r10, r7, ror #26 //ror and mask to match fixslicing - strd r11, r12, [r0], #8 //store 1st half tk for 2nd round - and r11, r10, r8, ror #26 //ror and mask to match fixslicing - and r12, r10, r9, ror #26 //ror and mask to match fixslicing - eor r11, r11, #0x10000000 //add rconst - eor r11, r11, #0x00000100 //add rconst - eor r12, r12, #0x00000100 //add rconst - mvn r12, r12 //to save a NOT in sbox calculations - strd r11, r12, [r0], #8 //store 2nd half tk for 2nd round - and r10, r10, r10, lsr #6 //r10<- 0x03030303 - and r11, r10, r6, ror #28 //--- ror and masks to match fixslicing - and r6, r6, r10, lsl #6 - orr r6, r11, r6, ror #12 - and r11, r10, r7, ror #28 - and r7, r7, r10, lsl #6 - orr r7, r11, r7, ror #12 - and r11, r10, r8, ror #28 - and r8, r8, r10, lsl #6 - orr r8, r11, r8, ror #12 - and r11, r10, r9, ror #28 - and r9, r9, r10, lsl #6 - orr r9, r11, r9, ror #12 //ror and masks to match fixslicing --- - eor r7, r7, #0x04000000 //add rconst - eor r8, r8, #0x44000000 //add rconst - eor r9, r9, #0x04000000 //add rconst - mvn r9, r9 //to save a NOT in sbox calculations - strd r8, r9, [r0], #8 //store 1st half tk for 3rd round - strd r6, r7, [r0], #8 //store 2nd half tk for 3rd round - ldm r0, {r6-r9} //load tk - bl p4 //apply the permutation 4 times - movw r10, #0xf0f0 - movt r10, #0xf0f0 //r10<- 0xf0f0f0f0 - and r11, r10, r6, ror #16 //ror and mask to match fixslicing - and r12, r10, r7, ror #16 //ror and mask to match fixslicing - eor r11, r11, #0x00400000 //add rconst - eor r12, r12, #0x00400000 //add rconst - strd r11, r12, [r0, #24] //store 2nd half tk for 5th round - and r11, r10, r8, ror #16 //ror and mask to match fixslicing - and r12, r10, r9, ror #16 //ror and mask to match fixslicing - eor r11, r11, #0x00440000 //add rconst - eor r12, r12, #0x00500000 //add rconst - mvn r12, r12 //to save a NOT in sbox calculations - strd r11, r12, [r0, #16] //store 1st half tk for 5th round - and r10, r10, r10, lsr #2 //r10<- 0x30303030 - and r11, r10, r6, ror #14 //--- ror and masks to match fixslicing - and r6, r6, r10, ror #4 - orr r6, r11, r6, ror #6 - and r11, r10, r7, ror #14 - and r7, r7, r10, ror #4 - orr r7, r11, r7, ror #6 - and r11, r10, r8, ror #14 - and r8, r8, r10, ror #4 - orr r8, r11, r8, ror #6 - and r11, r10, r9, ror #14 - and r9, r9, r10, ror #4 - orr r9, r11, r9, ror #6 //ror and masks to match fixslicing --- - eor r6, r6, #0x00100000 //add rconst - eor r7, r7, #0x00100000 //add rconst - eor r8, r8, #0x00100000 //add rconst - eor r8, r8, #0x00000001 //add rconst - eor r9, r9, #0x00100000 //add rconst - mvn r9, r9 //to save a NOT in sbox calculations - strd r6, r7, [r0], #8 //store 1st half tk for 4th round - strd r8, r9, [r0], #24 //store 2nd half tk for 4th round - ldm r0, {r6-r9} //load tk - bl p6 //apply the permutation 6 times - movw r10, #0xc3c3 - movt r10, #0xc3c3 //r10<- 0xc3c3c3c3 - and r11, r10, r6, ror #10 //ror and mask to match fixslicing - and r12, r10, r7, ror #10 //ror and mask to match fixslicing - eor r11, r11, #0x01000000 //add rconst - eor r12, r12, #0x01000000 //add rconst - strd r11, r12, [r0], #8 //store 1st half tk for 6th round - and r11, r10, r8, ror #10 //ror and mask to match fixslicing - and r12, r10, r9, ror #10 //ror and mask to match fixslicing - eor r11, r11, #0x01400000 //add rconst - eor r11, r11, #0x00001000 //add rconst - eor r12, r12, #0x00400000 //add rconst - mvn r12, r12 //to save a NOT in sbox calculations - strd r11, r12, [r0], #8 //store 2nd half tk for 6th round - and r10, r10, r10, lsr #6 //r10<- 0x03030303 - and r11, r10, r6, ror #12 //--- ror and masks to match fixslicing - and r6, r6, r10, lsl #6 - orr r6, r11, r6, ror #28 - and r11, r10, r7, ror #12 - and r7, r7, r10, lsl #6 - orr r7, r11, r7, ror #28 - and r11, r10, r8, ror #12 - and r8, r8, r10, lsl #6 - orr r8, r11, r8, ror #28 - and r11, r10, r9, ror #12 - and r9, r9, r10, lsl #6 - orr r9, r11, r9, ror #28 //ror and masks to match fixslicing --- - eor r6, r6, #0x00000400 //add rconst - eor r7, r7, #0x00000400 //add rconst - eor r8, r8, #0x01000000 //add rconst - eor r8, r8, #0x00004000 //add rconst - eor r9, r9, #0x01000000 //add rconst - eor r9, r9, #0x00000400 //add rconst - mvn r9, r9 //to save a NOT in sbox calculations - strd r8, r9, [r0], #8 //store 1st half tk for 7th round - strd r6, r7, [r0], #8 //store 2nd half tk for 7th round - ldm r0, {r6-r9} //load tk - bl p8 //apply the permutation 8 times - movw r10, #0xf0f0 - movt r10, #0xf0f0 //r10<- 0xf0f0f0f0 - and r11, r10, r6 //ror and mask to match fixslicing - and r12, r10, r7 //ror and mask to match fixslicing - eor r12, r12, #0x00000040 //add rconst - strd r11, r12, [r0, #24] //store 2nd half tk for 9th round - and r11, r10, r8 //ror and mask to match fixslicing - and r12, r10, r9 //ror and mask to match fixslicing - eor r11, r11, #0x00000054 //add rconst - eor r12, r12, #0x00000050 //add rconst - mvn r12, r12 //to save a NOT in sbox calculations - strd r11, r12, [r0, #16] //store 1st half tk for 9th round - and r10, r10, r10, lsr #2 //r10<- 0x30303030 - and r11, r10, r6, ror #30 //--- ror and masks to match fixslicing - and r6, r6, r10, ror #4 - orr r6, r11, r6, ror #22 - and r11, r10, r7, ror #30 - and r7, r7, r10, ror #4 - orr r7, r11, r7, ror #22 - and r11, r10, r8, ror #30 - and r8, r8, r10, ror #4 - orr r8, r11, r8, ror #22 - and r11, r10, r9, ror #30 - and r9, r9, r10, ror #4 - orr r9, r11, r9, ror #22 //ror and masks to match fixslicing --- - eor r6 ,r6, #0x00000010 - eor r8, r8, #0x00010000 - eor r8, r8, #0x00000410 - eor r9, r9, #0x00000410 - mvn r9, r9 //to save a NOT in sbox calculations - strd r6, r7, [r0], #8 //store 1st half tk for 8th round - strd r8, r9, [r0], #24 //store 2nd half tk for 8th round - ldm r0, {r6-r9} //load tk - bl p10 //apply the permutation 10 times - movw r10, #0xc3c3 - movt r10, #0xc3c3 //r10<- 0xc3c3c3c3 - and r11, r10, r6, ror #26 //ror and mask to match fixslicing - and r12, r10, r7, ror #26 //ror and mask to match fixslicing - eor r11, r11, #0x00000100 //add rconst - eor r12, r12, #0x00000100 //add rconst - strd r11, r12, [r0], #8 //store 1st half tk for 10th round - and r11, r10, r8, ror #26 //ror and mask to match fixslicing - and r12, r10, r9, ror #26 //ror and mask to match fixslicing - eor r11, r11, #0x10000000 //add rconst - eor r11, r11, #0x00000140 //add rconst - eor r12, r12, #0x00000100 //add rconst - mvn r12, r12 //to save a NOT in sbox calculations - strd r11, r12, [r0], #8 //store 2nd half tk for 10th round - and r10, r10, r10, lsr #6 //r10<- 0x03030303 - and r11, r10, r6, ror #28 //--- ror and masks to match fixslicing - and r6, r6, r10, lsl #6 - orr r6, r11, r6, ror #12 - and r11, r10, r7, ror #28 - and r7, r7, r10, lsl #6 - orr r7, r11, r7, ror #12 - and r11, r10, r8, ror #28 - and r8, r8, r10, lsl #6 - orr r8, r11, r8, ror #12 - and r11, r10, r9, ror #28 - and r9, r9, r10, lsl #6 - orr r9, r11, r9, ror #12 //ror and masks to match fixslicing --- - eor r6, r6, #0x04000000 //add rconst - eor r7, r7, #0x04000000 //add rconst - eor r8, r8, #0x44000000 //add rconst - eor r9, r9, #0x00000100 //add rconst - mvn r9, r9 //to save a NOT in sbox calculations - strd r8, r9, [r0], #8 //store 1st half tk for 11th round - strd r6, r7, [r0], #8 //store 2nd half tk for 11th round - ldm r0, {r6-r9} //load tk - bl p12 //apply the permutation 4 times - movw r10, #0xf0f0 - movt r10, #0xf0f0 //r10<- 0xf0f0f0f0 - and r11, r10, r6, ror #16 //ror and mask to match fixslicing - and r12, r10, r7, ror #16 //ror and mask to match fixslicing - eor r11, r11, #0x00400000 //add rconst - strd r11, r12, [r0, #24] //store 2nd half tk for 13th round - and r11, r10, r8, ror #16 //ror and mask to match fixslicing - and r12, r10, r9, ror #16 //ror and mask to match fixslicing - eor r11, r11, #0x00140000 //add rconst - eor r12, r12, #0x00500000 //add rconst - mvn r12, r12 //to save a NOT in sbox calculations - strd r11, r12, [r0, #16] //store 1st half tk for 13th round - and r10, r10, r10, lsr #2 //r10<- 0x30303030 - and r11, r10, r6, ror #14 //--- ror and masks to match fixslicing - and r6, r6, r10, ror #4 - orr r6, r11, r6, ror #6 - and r11, r10, r7, ror #14 - and r7, r7, r10, ror #4 - orr r7, r11, r7, ror #6 - and r11, r10, r8, ror #14 - and r8, r8, r10, ror #4 - orr r8, r11, r8, ror #6 - and r11, r10, r9, ror #14 - and r9, r9, r10, ror #4 - orr r9, r11, r9, ror #6 //ror and masks to match fixslicing --- - eor r6, r6, #0x00100000 //add rconst - eor r7, r7, #0x00100000 //add rconst - eor r8, r8, #0x04000000 //add rconst - eor r8, r8, #0x00000001 //add rconst - eor r9, r9, #0x04000000 //add rconst - mvn r9, r9 //to save a NOT in sbox calculations - strd r6, r7, [r0], #8 //store 1st half tk for 12th round - strd r8, r9, [r0], #24 //store 2nd half tk for 12th round - ldm r0, {r6-r9} //load tk - bl p14 //apply the permutation 6 times - movw r10, #0xc3c3 - movt r10, #0xc3c3 //r10<- 0xc3c3c3c3 - and r11, r10, r6, ror #10 //ror and mask to match fixslicing - and r12, r10, r7, ror #10 //ror and mask to match fixslicing - strd r11, r12, [r0], #8 //store 1st half tk for 14th round - and r11, r10, r8, ror #10 //ror and mask to match fixslicing - and r12, r10, r9, ror #10 //ror and mask to match fixslicing - eor r11, r11, #0x01400000 //add rconst - eor r11, r11, #0x00001000 //add rconst - eor r12, r12, #0x01400000 //add rconst - mvn r12, r12 //to save a NOT in sbox calculations - strd r11, r12, [r0], #8 //store 2nd half tk for 14th round - and r10, r10, r10, lsr #6 //r10<- 0x03030303 - and r11, r10, r6, ror #12 //--- ror and masks to match fixslicing - and r6, r6, r10, lsl #6 - orr r6, r11, r6, ror #28 - and r11, r10, r7, ror #12 - and r7, r7, r10, lsl #6 - orr r7, r11, r7, ror #28 - and r11, r10, r8, ror #12 - and r8, r8, r10, lsl #6 - orr r8, r11, r8, ror #28 - and r11, r10, r9, ror #12 - and r9, r9, r10, lsl #6 - orr r9, r11, r9, ror #28 //ror and masks to match fixslicing --- - eor r7, r7, #0x00000400 //add rconst - eor r8, r8, #0x01000000 //add rconst - eor r8, r8, #0x00004400 //add rconst - eor r9, r9, #0x00000400 //add const - mvn r9, r9 //to save a NOT in sbox calculations - strd r8, r9, [r0], #8 //store 1st half tk for 15th round - strd r6, r7, [r0], #8 //store 2nd half tk for 15th round - ldm r0, {r6-r9} //load tk - movw r10, #0xf0f0 - movt r10, #0xf0f0 //r10<- 0xf0f0f0f0 - and r11, r10, r6 //ror and mask to match fixslicing - and r12, r10, r7 //ror and mask to match fixslicing - eor r11, r11, #0x00000040 //add rconst - eor r12, r12, #0x00000040 //add rconst - strd r11, r12, [r0, #24] //store 2nd half tk for 17th round - and r11, r10, r8 //ror and mask to match fixslicing - and r12, r10, r9 //ror and mask to match fixslicing - eor r11, r11, #0x00000004 //add rconst - eor r12, r12, #0x00000050 //add rconst - mvn r12, r12 //to save a NOT in sbox calculations - strd r11, r12, [r0, #16] //store 1st half tk for 17th round - and r10, r10, r10, lsr #2 //r10<- 0x30303030 - and r11, r10, r6, ror #30 //--- ror and masks to match fixslicing - and r6, r6, r10, ror #4 - orr r6, r11, r6, ror #22 - and r11, r10, r7, ror #30 - and r7, r7, r10, ror #4 - orr r7, r11, r7, ror #22 - and r11, r10, r8, ror #30 - and r8, r8, r10, ror #4 - orr r8, r11, r8, ror #22 - and r11, r10, r9, ror #30 - and r9, r9, r10, ror #4 - orr r9, r11, r9, ror #22 //ror and masks to match fixslicing --- - eor r6 ,r6, #0x00000010 - eor r7 ,r7, #0x00000010 - eor r8, r8, #0x00000010 - eor r8, r8, #0x00010000 - mvn r9, r9 //to save a NOT in sbox calculations - strd r6, r7, [r0], #8 //store 1st half tk for 16th round - strd r8, r9, [r0], #24 //store 2nd half tk for 16th round - ldm r0, {r6-r9} //load tk - bl p2 //apply the permutation twice - movw r10, #0xc3c3 - movt r10, #0xc3c3 //r10<- 0xc3c3c3c3 - and r11, r10, r6, ror #26 //ror and mask to match fixslicing - and r12, r10, r7, ror #26 //ror and mask to match fixslicing - eor r11, r11, #0x00000100 //add rconst - strd r11, r12, [r0], #8 //store 1st half tk for 18th round - and r11, r10, r8, ror #26 //ror and mask to match fixslicing - and r12, r10, r9, ror #26 //ror and mask to match fixslicing - eor r11, r11, #0x10000000 //add rconst - eor r11, r11, #0x00000140 //add rconst - eor r12, r12, #0x00000040 //add rconst - mvn r12, r12 //to save a NOT in sbox calculations - strd r11, r12, [r0], #8 //store 2nd half tk for 18th round - and r10, r10, r10, lsr #6 //r10<- 0x03030303 - and r11, r10, r6, ror #28 //--- ror and masks to match fixslicing - and r6, r6, r10, lsl #6 - orr r6, r11, r6, ror #12 - and r11, r10, r7, ror #28 - and r7, r7, r10, lsl #6 - orr r7, r11, r7, ror #12 - and r11, r10, r8, ror #28 - and r8, r8, r10, lsl #6 - orr r8, r11, r8, ror #12 - and r11, r10, r9, ror #28 - and r9, r9, r10, lsl #6 - orr r9, r11, r9, ror #12 //ror and masks to match fixslicing --- - eor r7, r7, #0x04000000 //add rconst - eor r8, r8, #0x40000000 //add rconst - eor r8, r8, #0x00000100 //add rconst - eor r9, r9, #0x04000000 //add rconst - eor r9, r9, #0x00000100 //add rconst - mvn r9, r9 //to save a NOT in sbox calculations - strd r8, r9, [r0], #8 //store 1st half tk for 19th round - strd r6, r7, [r0], #8 //store 2nd half tk for 19th round - ldm r0, {r6-r9} //load tk - bl p4 //apply the permutation 4 times - movw r10, #0xf0f0 - movt r10, #0xf0f0 //r10<- 0xf0f0f0f0 - and r11, r10, r6, ror #16 //ror and mask to match fixslicing - and r12, r10, r7, ror #16 //ror and mask to match fixslicing - eor r12, r12, #0x00400000 //add rconst - strd r11, r12, [r0, #24] //store 2nd half tk for 21th round - and r11, r10, r8, ror #16 //ror and mask to match fixslicing - and r12, r10, r9, ror #16 //ror and mask to match fixslicing - eor r11, r11, #0x00440000 //add rconst - eor r12, r12, #0x00100000 //add rconst - mvn r12, r12 //to save a NOT in sbox calculations - strd r11, r12, [r0, #16] //store 1st half tk for 21th round - and r10, r10, r10, lsr #2 //r10<- 0x30303030 - and r11, r10, r6, ror #14 //--- ror and masks to match fixslicing - and r6, r6, r10, ror #4 - orr r6, r11, r6, ror #6 - and r11, r10, r7, ror #14 - and r7, r7, r10, ror #4 - orr r7, r11, r7, ror #6 - and r11, r10, r8, ror #14 - and r8, r8, r10, ror #4 - orr r8, r11, r8, ror #6 - and r11, r10, r9, ror #14 - and r9, r9, r10, ror #4 - orr r9, r11, r9, ror #6 //ror and masks to match fixslicing --- - eor r6, r6, #0x00100000 //add rconst - eor r8, r8, #0x04100000 //add rconst - eor r8, r8, #0x00000001 //add rconst - eor r9, r9, #0x00100000 //add rconst - mvn r9, r9 //to save a NOT in sbox calculations - strd r6, r7, [r0], #8 //store 1st half tk for 20th round - strd r8, r9, [r0], #24 //store 2nd half tk for 20th round - ldm r0, {r6-r9} //load tk - bl p6 //apply the permutation 6 times - movw r10, #0xc3c3 - movt r10, #0xc3c3 //r10<- 0xc3c3c3c3 - and r11, r10, r6, ror #10 //ror and mask to match fixslicing - and r12, r10, r7, ror #10 //ror and mask to match fixslicing - eor r11, r11, #0x01000000 //add rconst - eor r12, r12, #0x01000000 //add rconst - strd r11, r12, [r0], #8 //store 1st half tk for 22th round - and r11, r10, r8, ror #10 //ror and mask to match fixslicing - and r12, r10, r9, ror #10 //ror and mask to match fixslicing - eor r11, r11, #0x00400000 //add rconst - eor r11, r11, #0x00001000 //add rconst - mvn r12, r12 //to save a NOT in sbox calculations - strd r11, r12, [r0], #8 //store 2nd half tk for 22th round - and r10, r10, r10, lsr #6 //r10<- 0x03030303 - and r11, r10, r6, ror #12 //--- ror and masks to match fixslicing - and r6, r6, r10, lsl #6 - orr r6, r11, r6, ror #28 - and r11, r10, r7, ror #12 - and r7, r7, r10, lsl #6 - orr r7, r11, r7, ror #28 - and r11, r10, r8, ror #12 - and r8, r8, r10, lsl #6 - orr r8, r11, r8, ror #28 - and r11, r10, r9, ror #12 - and r9, r9, r10, lsl #6 - orr r9, r11, r9, ror #28 //ror and masks to match fixslicing --- - eor r6, r6, #0x00000400 //add rconst - eor r8, r8, #0x00004000 //add rconst - eor r9, r9, #0x01000000 //add rconst - mvn r9, r9 //to save a NOT in sbox calculations - strd r8, r9, [r0], #8 //store 1st half tk for 23th round - strd r6, r7, [r0], #8 //store 2nd half tk for 23th round - ldm r0, {r6-r9} //load tk - bl p8 //apply the permutation 8 times - movw r10, #0xf0f0 - movt r10, #0xf0f0 //r10<- 0xf0f0f0f0 - and r11, r10, r6 //ror and mask to match fixslicing - and r12, r10, r7 //ror and mask to match fixslicing - strd r11, r12, [r0, #24] //store 2nd half tk for 25th round - and r11, r10, r8 //ror and mask to match fixslicing - and r12, r10, r9 //ror and mask to match fixslicing - eor r11, r11, #0x00000014 //add rconst - eor r12, r12, #0x00000040 //add rconst - mvn r12, r12 //to save a NOT in sbox calculations - strd r11, r12, [r0, #16] //store 1st half tk for 25th round - and r10, r10, r10, lsr #2 //r10<- 0x30303030 - and r11, r10, r6, ror #30 //--- ror and masks to match fixslicing - and r6, r6, r10, ror #4 - orr r6, r11, r6, ror #22 - and r11, r10, r7, ror #30 - and r7, r7, r10, ror #4 - orr r7, r11, r7, ror #22 - and r11, r10, r8, ror #30 - and r8, r8, r10, ror #4 - orr r8, r11, r8, ror #22 - and r11, r10, r9, ror #30 - and r9, r9, r10, ror #4 - orr r9, r11, r9, ror #22 //ror and masks to match fixslicing --- - eor r8, r8, #0x00010400 - eor r9, r9, #0x00000400 - mvn r9, r9 //to save a NOT in sbox calculations - strd r6, r7, [r0], #8 //store 1st half tk for 24th round - strd r8, r9, [r0], #24 //store 2nd half tk for 24th round - ldm r0, {r6-r9} //load tk - bl p10 //apply the permutation 10 times - movw r10, #0xc3c3 - movt r10, #0xc3c3 //r10<- 0xc3c3c3c3 - and r11, r10, r6, ror #26 //ror and mask to match fixslicing - and r12, r10, r7, ror #26 //ror and mask to match fixslicing - strd r11, r12, [r0], #8 //store 1st half tk for 26th round - and r11, r10, r8, ror #26 //ror and mask to match fixslicing - and r12, r10, r9, ror #26 //ror and mask to match fixslicing - eor r11, r11, #0x10000000 //add rconst - eor r11, r11, #0x00000100 //add rconst - mvn r12, r12 //to save a NOT in sbox calculations - strd r11, r12, [r0], #8 //store 2nd half tk for 26th round - and r10, r10, r10, lsr #6 //r10<- 0x03030303 - and r11, r10, r6, ror #28 //--- ror and masks to match fixslicing - and r6, r6, r10, lsl #6 - orr r6, r11, r6, ror #12 - and r11, r10, r7, ror #28 - and r7, r7, r10, lsl #6 - orr r7, r11, r7, ror #12 - and r11, r10, r8, ror #28 - and r8, r8, r10, lsl #6 - orr r8, r11, r8, ror #12 - and r11, r10, r9, ror #28 - and r9, r9, r10, lsl #6 - orr r9, r11, r9, ror #12 //ror and masks to match fixslicing --- - eor r7, r7, #0x04000000 //add rconst - eor r8, r8, #0x40000000 //add rconst - eor r9, r9, #0x04000000 //add rconst - mvn r9, r9 //to save a NOT in sbox calculations - strd r8, r9, [r0], #8 //store 1st half tk for 27th round - strd r6, r7, [r0], #8 //store 2nd half tk for 27th round - ldm r0, {r6-r9} //load tk - bl p12 //apply the permutation 4 times - movw r10, #0xf0f0 - movt r10, #0xf0f0 //r10<- 0xf0f0f0f0 - and r11, r10, r6, ror #16 //ror and mask to match fixslicing - and r12, r10, r7, ror #16 //ror and mask to match fixslicing - eor r12, r12, #0x00400000 //add rconst - strd r11, r12, [r0, #24] //store 2nd half tk for 29th round - and r11, r10, r8, ror #16 //ror and mask to match fixslicing - and r12, r10, r9, ror #16 //ror and mask to match fixslicing - eor r11, r11, #0x00440000 //add rconst - eor r12, r12, #0x00500000 //add rconst - mvn r12, r12 //to save a NOT in sbox calculations - strd r11, r12, [r0, #16] //store 1st half tk for 29th round - and r10, r10, r10, lsr #2 //r10<- 0x30303030 - and r11, r10, r6, ror #14 //--- ror and masks to match fixslicing - and r6, r6, r10, ror #4 - orr r6, r11, r6, ror #6 - and r11, r10, r7, ror #14 - and r7, r7, r10, ror #4 - orr r7, r11, r7, ror #6 - and r11, r10, r8, ror #14 - and r8, r8, r10, ror #4 - orr r8, r11, r8, ror #6 - and r11, r10, r9, ror #14 - and r9, r9, r10, ror #4 - orr r9, r11, r9, ror #6 //ror and masks to match fixslicing --- - eor r6, r6, #0x00100000 //add rconst - eor r8, r8, #0x00100000 //add rconst - eor r8, r8, #0x00000001 //add rconst - eor r9, r9, #0x00100000 //add rconst - mvn r9, r9 //to save a NOT in sbox calculations - strd r6, r7, [r0], #8 //store 1st half tk for 28th round - strd r8, r9, [r0], #24 //store 2nd half tk for 28th round - ldm r0, {r6-r9} //load tk - bl p14 //apply the permutation 6 times - movw r10, #0xc3c3 - movt r10, #0xc3c3 //r10<- 0xc3c3c3c3 - and r11, r10, r6, ror #10 //ror and mask to match fixslicing - and r12, r10, r7, ror #10 //ror and mask to match fixslicing - eor r11, r11, #0x01000000 //add rconst - eor r12, r12, #0x01000000 //add rconst - strd r11, r12, [r0], #8 //store 1st half tk for 30th round - and r11, r10, r8, ror #10 //ror and mask to match fixslicing - and r12, r10, r9, ror #10 //ror and mask to match fixslicing - eor r11, r11, #0x01400000 //add rconst - eor r11, r11, #0x00001000 //add rconst - mvn r12, r12 //to save a NOT in sbox calculations - strd r11, r12, [r0], #8 //store 2nd half tk for 30th round - and r10, r10, r10, lsr #6 //r10<- 0x03030303 - and r11, r10, r6, ror #12 //--- ror and masks to match fixslicing - and r6, r6, r10, lsl #6 - orr r6, r11, r6, ror #28 - and r11, r10, r7, ror #12 - and r7, r7, r10, lsl #6 - orr r7, r11, r7, ror #28 - and r11, r10, r8, ror #12 - and r8, r8, r10, lsl #6 - orr r8, r11, r8, ror #28 - and r11, r10, r9, ror #12 - and r9, r9, r10, lsl #6 - orr r9, r11, r9, ror #28 //ror and masks to match fixslicing --- - eor r6, r6, #0x00000400 //add rconst - eor r7, r7, #0x00000400 //add rconst - eor r8, r8, #0x00004000 //add rconst - eor r9, r9, #0x01000000 //add rconst - mvn r9, r9 //to save a NOT in sbox calculations - strd r8, r9, [r0], #8 //store 1st half tk for 31th round - strd r6, r7, [r0], #8 //store 2nd half tk for 31th round - ldm r0, {r6-r9} //load tk - movw r10, #0xf0f0 - movt r10, #0xf0f0 //r10<- 0xf0f0f0f0 - and r11, r10, r6 //ror and mask to match fixslicing - and r12, r10, r7 //ror and mask to match fixslicing - strd r11, r12, [r0, #24] //store 2nd half tk for 33th round - and r11, r10, r8 //ror and mask to match fixslicing - and r12, r10, r9 //ror and mask to match fixslicing - eor r11, r11, #0x00000014 //add rconst - eor r12, r12, #0x00000050 //add rconst - mvn r12, r12 //to save a NOT in sbox calculations - strd r11, r12, [r0, #16] //store 1st half tk for 33th round - and r10, r10, r10, lsr #2 //r10<- 0x30303030 - and r11, r10, r6, ror #30 //--- ror and masks to match fixslicing - and r6, r6, r10, ror #4 - orr r6, r11, r6, ror #22 - and r11, r10, r7, ror #30 - and r7, r7, r10, ror #4 - orr r7, r11, r7, ror #22 - and r11, r10, r8, ror #30 - and r8, r8, r10, ror #4 - orr r8, r11, r8, ror #22 - and r11, r10, r9, ror #30 - and r9, r9, r10, ror #4 - orr r9, r11, r9, ror #22 //ror and masks to match fixslicing --- - eor r6 ,r6, #0x00000010 - eor r8, r8, #0x00010400 - eor r9, r9, #0x00000400 - mvn r9, r9 //to save a NOT in sbox calculations - strd r6, r7, [r0], #8 //store 1st half tk for 32th round - strd r8, r9, [r0], #24 //store 2nd half tk for 32th round - ldm r0, {r6-r9} //load tk - bl p2 //apply the permutation twice - movw r10, #0xc3c3 - movt r10, #0xc3c3 //r10<- 0xc3c3c3c3 - and r11, r10, r6, ror #26 //ror and mask to match fixslicing - and r12, r10, r7, ror #26 //ror and mask to match fixslicing - strd r11, r12, [r0], #8 //store 1st half tk for 34th round - and r11, r10, r8, ror #26 //ror and mask to match fixslicing - and r12, r10, r9, ror #26 //ror and mask to match fixslicing - eor r11, r11, #0x10000000 //add rconst - eor r11, r11, #0x00000140 //add rconst - eor r12, r12, #0x00000100 //add rconst - mvn r12, r12 //to save a NOT in sbox calculations - strd r11, r12, [r0], #8 //store 2nd half tk for 34th round - and r10, r10, r10, lsr #6 //r10<- 0x03030303 - and r11, r10, r6, ror #28 //--- ror and masks to match fixslicing - and r6, r6, r10, lsl #6 - orr r6, r11, r6, ror #12 - and r11, r10, r7, ror #28 - and r7, r7, r10, lsl #6 - orr r7, r11, r7, ror #12 - and r11, r10, r8, ror #28 - and r8, r8, r10, lsl #6 - orr r8, r11, r8, ror #12 - and r11, r10, r9, ror #28 - and r9, r9, r10, lsl #6 - orr r9, r11, r9, ror #12 //ror and masks to match fixslicing --- - eor r7, r7, #0x04000000 //add rconst - eor r8, r8, #0x44000000 //add rconst - mvn r9, r9 //to save a NOT in sbox calculations - strd r8, r9, [r0], #8 //store 1st half tk for 35th round - strd r6, r7, [r0], #8 //store 2nd half tk for 35th round - ldm r0, {r6-r9} //load tk - bl p4 //apply the permutation 4 times - movw r10, #0xf0f0 - movt r10, #0xf0f0 //r10<- 0xf0f0f0f0 - and r11, r10, r6, ror #16 //ror and mask to match fixslicing - and r12, r10, r7, ror #16 //ror and mask to match fixslicing - eor r11, r11, #0x00400000 //add rconst - strd r11, r12, [r0, #24] //store 2nd half tk for 37th round - and r11, r10, r8, ror #16 //ror and mask to match fixslicing - and r12, r10, r9, ror #16 //ror and mask to match fixslicing - eor r11, r11, #0x00440000 //add rconst - eor r12, r12, #0x00500000 //add rconst - mvn r12, r12 //to save a NOT in sbox calculations - strd r11, r12, [r0, #16] //store 1st half tk for 37th round - and r10, r10, r10, lsr #2 //r10<- 0x30303030 - and r11, r10, r6, ror #14 //--- ror and masks to match fixslicing - and r6, r6, r10, ror #4 - orr r6, r11, r6, ror #6 - and r11, r10, r7, ror #14 - and r7, r7, r10, ror #4 - orr r7, r11, r7, ror #6 - and r11, r10, r8, ror #14 - and r8, r8, r10, ror #4 - orr r8, r11, r8, ror #6 - and r11, r10, r9, ror #14 - and r9, r9, r10, ror #4 - orr r9, r11, r9, ror #6 //ror and masks to match fixslicing --- - eor r6, r6, #0x00100000 //add rconst - eor r7, r7, #0x00100000 //add rconst - eor r8, r8, #0x00000001 //add rconst - eor r9, r9, #0x00100000 //add rconst - mvn r9, r9 //to save a NOT in sbox calculations - strd r6, r7, [r0], #8 //store 1st half tk for 36th round - strd r8, r9, [r0], #24 //store 2nd half tk for 36th round - ldm r0, {r6-r9} //load tk - bl p6 //apply the permutation 6 times - movw r10, #0xc3c3 - movt r10, #0xc3c3 //r10<- 0xc3c3c3c3 - and r11, r10, r6, ror #10 //ror and mask to match fixslicing - and r12, r10, r7, ror #10 //ror and mask to match fixslicing - eor r12, r12, #0x01000000 //add rconst - strd r11, r12, [r0], #8 //store 1st half tk for 38th round - and r11, r10, r8, ror #10 //ror and mask to match fixslicing - and r12, r10, r9, ror #10 //ror and mask to match fixslicing - eor r11, r11, #0x01400000 //add rconst - eor r11, r11, #0x00001000 //add rconst - eor r12, r12, #0x00400000 //add rconst - mvn r12, r12 //to save a NOT in sbox calculations - strd r11, r12, [r0], #8 //store 2nd half tk for 38th round - and r10, r10, r10, lsr #6 //r10<- 0x03030303 - and r11, r10, r6, ror #12 //--- ror and masks to match fixslicing - and r6, r6, r10, lsl #6 - orr r6, r11, r6, ror #28 - and r11, r10, r7, ror #12 - and r7, r7, r10, lsl #6 - orr r7, r11, r7, ror #28 - and r11, r10, r8, ror #12 - and r8, r8, r10, lsl #6 - orr r8, r11, r8, ror #28 - and r11, r10, r9, ror #12 - and r9, r9, r10, lsl #6 - orr r9, r11, r9, ror #28 //ror and masks to match fixslicing --- - eor r6, r6, #0x00000400 //add rconst - eor r7, r7, #0x00000400 //add rconst - eor r8, r8, #0x01000000 - eor r8, r8, #0x00004000 //add rconst - eor r9, r9, #0x00000400 //add rconst - mvn r9, r9 //to save a NOT in sbox calculations - strd r8, r9, [r0], #8 //store 1st half tk for 39th round - strd r6, r7, [r0], #8 //store 2nd half tk for 39th round - ldm r0, {r6-r9} //load tk - bl p8 //apply the permutation 8 times - movw r10, #0xf0f0 - movt r10, #0xf0f0 //r10<- 0xf0f0f0f0 - and r11, r10, r6 //ror and mask to match fixslicing - and r12, r10, r7 //ror and mask to match fixslicing - eor r12, r12, #0x00000040 //add rconst - strd r11, r12, [r0, #24] //store 2nd half tk for 41th round - and r11, r10, r8 //ror and mask to match fixslicing - and r12, r10, r9 //ror and mask to match fixslicing - eor r11, r11, #0x00000014 //add rconst - eor r12, r12, #0x00000010 //add rconst - mvn r12, r12 //to save a NOT in sbox calculations - strd r11, r12, [r0, #16] //store 1st half tk for 41th round - and r10, r10, r10, lsr #2 //r10<- 0x30303030 - and r11, r10, r6, ror #30 //--- ror and masks to match fixslicing - and r6, r6, r10, ror #4 - orr r6, r11, r6, ror #22 - and r11, r10, r7, ror #30 - and r7, r7, r10, ror #4 - orr r7, r11, r7, ror #22 - and r11, r10, r8, ror #30 - and r8, r8, r10, ror #4 - orr r8, r11, r8, ror #22 - and r11, r10, r9, ror #30 - and r9, r9, r10, ror #4 - orr r9, r11, r9, ror #22 //ror and masks to match fixslicing --- - eor r6, r6, #0x00000010 - eor r8, r8, #0x00010000 - eor r8, r8, #0x00000010 - eor r9, r9, #0x00000400 - mvn r9, r9 //to save a NOT in sbox calculations - strd r6, r7, [r0], #8 //store 1st half tk for 40th round - strd r8, r9, [r0], #24 //store 2nd half tk for 40th round - ldm r0, {r6-r9} //load tk - bl p10 //apply the permutation 10 times - movw r10, #0xc3c3 - movt r10, #0xc3c3 //r10<- 0xc3c3c3c3 - and r11, r10, r6, ror #26 //ror and mask to match fixslicing - and r12, r10, r7, ror #26 //ror and mask to match fixslicing - eor r11, r11, #0x00000100 //add rconst - strd r11, r12, [r0], #8 //store 1st half tk for 42th round - and r11, r10, r8, ror #26 //ror and mask to match fixslicing - and r12, r10, r9, ror #26 //ror and mask to match fixslicing - eor r11, r11, #0x10000000 //add rconst - eor r11, r11, #0x00000040 //add rconst - eor r12, r12, #0x00000100 //add rconst - mvn r12, r12 //to save a NOT in sbox calculations - strd r11, r12, [r0], #8 //store 2nd half tk for 42th round - and r10, r10, r10, lsr #6 //r10<- 0x03030303 - and r11, r10, r6, ror #28 //--- ror and masks to match fixslicing - and r6, r6, r10, lsl #6 - orr r6, r11, r6, ror #12 - and r11, r10, r7, ror #28 - and r7, r7, r10, lsl #6 - orr r7, r11, r7, ror #12 - and r11, r10, r8, ror #28 - and r8, r8, r10, lsl #6 - orr r8, r11, r8, ror #12 - and r11, r10, r9, ror #28 - and r9, r9, r10, lsl #6 - orr r9, r11, r9, ror #12 //ror and masks to match fixslicing --- - eor r8, r8, #0x44000000 //add rconst - eor r9, r9, #0x00000100 //add rconst - mvn r9, r9 //to save a NOT in sbox calculations - strd r8, r9, [r0], #8 //store 1st half tk for 43th round - strd r6, r7, [r0], #8 //store 2nd half tk for 43th round - ldm r0, {r6-r9} //load tk - bl p12 //apply the permutation 4 times - movw r10, #0xf0f0 - movt r10, #0xf0f0 //r10<- 0xf0f0f0f0 - and r11, r10, r6, ror #16 //ror and mask to match fixslicing - and r12, r10, r7, ror #16 //ror and mask to match fixslicing - eor r11, r11, #0x00400000 //add rconst - strd r11, r12, [r0, #24] //store 2nd half tk for 45th round - and r11, r10, r8, ror #16 //ror and mask to match fixslicing - and r12, r10, r9, ror #16 //ror and mask to match fixslicing - eor r11, r11, #0x00040000 //add rconst - mvn r12, r12 //to save a NOT in sbox calculations - strd r11, r12, [r0, #16] //store 1st half tk for 45th round - and r10, r10, r10, lsr #2 //r10<- 0x30303030 - and r11, r10, r6, ror #14 //--- ror and masks to match fixslicing - and r6, r6, r10, ror #4 - orr r6, r11, r6, ror #6 - and r11, r10, r7, ror #14 - and r7, r7, r10, ror #4 - orr r7, r11, r7, ror #6 - and r11, r10, r8, ror #14 - and r8, r8, r10, ror #4 - orr r8, r11, r8, ror #6 - and r11, r10, r9, ror #14 - and r9, r9, r10, ror #4 - orr r9, r11, r9, ror #6 //ror and masks to match fixslicing --- - eor r7, r7, #0x00100000 //add rconst - eor r8, r8, #0x04000000 //add rconst - eor r8, r8, #0x00000001 //add rconst - mvn r9, r9 //to save a NOT in sbox calculations - strd r6, r7, [r0], #8 //store 1st half tk for 44th round - strd r8, r9, [r0], #24 //store 2nd half tk for 44th round - ldm r0, {r6-r9} //load tk - bl p14 //apply the permutation 6 times - movw r10, #0xc3c3 - movt r10, #0xc3c3 //r10<- 0xc3c3c3c3 - and r11, r10, r6, ror #10 //ror and mask to match fixslicing - and r12, r10, r7, ror #10 //ror and mask to match fixslicing - strd r11, r12, [r0], #8 //store 1st half tk for 46th round - and r11, r10, r8, ror #10 //ror and mask to match fixslicing - and r12, r10, r9, ror #10 //ror and mask to match fixslicing - eor r11, r11, #0x00001000 //add rconst - eor r12, r12, #0x01400000 //add rconst - mvn r12, r12 //to save a NOT in sbox calculations - strd r11, r12, [r0], #8 //store 2nd half tk for 46th round - and r10, r10, r10, lsr #6 //r10<- 0x03030303 - and r11, r10, r6, ror #12 //--- ror and masks to match fixslicing - and r6, r6, r10, lsl #6 - orr r6, r11, r6, ror #28 - and r11, r10, r7, ror #12 - and r7, r7, r10, lsl #6 - orr r7, r11, r7, ror #28 - and r11, r10, r8, ror #12 - and r8, r8, r10, lsl #6 - orr r8, r11, r8, ror #28 - and r11, r10, r9, ror #12 - and r9, r9, r10, lsl #6 - orr r9, r11, r9, ror #28 //ror and masks to match fixslicing --- - eor r8, r8, #0x01000000 //add rconst - eor r8, r8, #0x00004400 //add rconst - mvn r9, r9 //to save a NOT in sbox calculations - strd r8, r9, [r0], #8 //store 1st half tk for 47th round - strd r6, r7, [r0], #8 //store 2nd half tk for 47th round - ldm r0, {r6-r9} //load tk - movw r10, #0xf0f0 - movt r10, #0xf0f0 //r10<- 0xf0f0f0f0 - and r11, r10, r6 //ror and mask to match fixslicing - and r12, r10, r7 //ror and mask to match fixslicing - eor r11, r11, #0x00000040 //add rconst - strd r11, r12, [r0, #24] //store 2nd half tk for 49th round - and r11, r10, r8 //ror and mask to match fixslicing - and r12, r10, r9 //ror and mask to match fixslicing - eor r11, r11, #0x00000004 //add rconst - eor r12, r12, #0x00000040 //add rconst - mvn r12, r12 //to save a NOT in sbox calculations - strd r11, r12, [r0, #16] //store 1st half tk for 49th round - and r10, r10, r10, lsr #2 //r10<- 0x30303030 - and r11, r10, r6, ror #30 //--- ror and masks to match fixslicing - and r6, r6, r10, ror #4 - orr r6, r11, r6, ror #22 - and r11, r10, r7, ror #30 - and r7, r7, r10, ror #4 - orr r7, r11, r7, ror #22 - and r11, r10, r8, ror #30 - and r8, r8, r10, ror #4 - orr r8, r11, r8, ror #22 - and r11, r10, r9, ror #30 - and r9, r9, r10, ror #4 - orr r9, r11, r9, ror #22 //ror and masks to match fixslicing --- - eor r7 ,r7, #0x00000010 - eor r8, r8, #0x00010000 - mvn r9, r9 //to save a NOT in sbox calculations - strd r6, r7, [r0], #8 //store 1st half tk for 48th round - strd r8, r9, [r0], #24 //store 2nd half tk for 48th round - ldm r0, {r6-r9} //load tk - bl p2 //apply the permutation twice - movw r10, #0xc3c3 - movt r10, #0xc3c3 //r10<- 0xc3c3c3c3 - and r11, r10, r6, ror #26 //ror and mask to match fixslicing - and r12, r10, r7, ror #26 //ror and mask to match fixslicing - strd r11, r12, [r0], #8 //store 1st half tk for 50th round - and r11, r10, r8, ror #26 //ror and mask to match fixslicing - and r12, r10, r9, ror #26 //ror and mask to match fixslicing - eor r11, r11, #0x10000000 //add rconst - eor r11, r11, #0x00000100 //add rconst - eor r12, r12, #0x00000140 //add rconst - mvn r12, r12 //to save a NOT in sbox calculations - strd r11, r12, [r0], #8 //store 2nd half tk for 50th round - and r10, r10, r10, lsr #6 //r10<- 0x03030303 - and r11, r10, r6, ror #28 //--- ror and masks to match fixslicing - and r6, r6, r10, lsl #6 - orr r6, r11, r6, ror #12 - and r11, r10, r7, ror #28 - and r7, r7, r10, lsl #6 - orr r7, r11, r7, ror #12 - and r11, r10, r8, ror #28 - and r8, r8, r10, lsl #6 - orr r8, r11, r8, ror #12 - and r11, r10, r9, ror #28 - and r9, r9, r10, lsl #6 - orr r9, r11, r9, ror #12 //ror and masks to match fixslicing --- - eor r7, r7, #0x04000000 //add rconst - eor r8, r8, #0x44000000 //add rconst - eor r8, r8, #0x00000100 //add rconst - mvn r9, r9 //to save a NOT in sbox calculations - strd r8, r9, [r0], #8 //store 1st half tk for 51th round - strd r6, r7, [r0], #8 //store 2nd half tk for 51th round - ldm r0, {r6-r9} //load tk - bl p4 //apply the permutation 4 times - movw r10, #0xf0f0 - movt r10, #0xf0f0 //r10<- 0xf0f0f0f0 - and r11, r10, r6, ror #16 //ror and mask to match fixslicing - and r12, r10, r7, ror #16 //ror and mask to match fixslicing - eor r11, r11, #0x00400000 //add rconst - strd r11, r12, [r0, #24] //store 2nd half tk for 53th round - and r11, r10, r8, ror #16 //ror and mask to match fixslicing - and r12, r10, r9, ror #16 //ror and mask to match fixslicing - eor r11, r11, #0x00040000 //add rconst - eor r12, r12, #0x00500000 //add rconst - mvn r12, r12 //to save a NOT in sbox calculations - strd r11, r12, [r0, #16] //store 1st half tk for 53th round - and r10, r10, r10, lsr #2 //r10<- 0x30303030 - and r11, r10, r6, ror #14 //--- ror and masks to match fixslicing - and r6, r6, r10, ror #4 - orr r6, r11, r6, ror #6 - and r11, r10, r7, ror #14 - and r7, r7, r10, ror #4 - orr r7, r11, r7, ror #6 - and r11, r10, r8, ror #14 - and r8, r8, r10, ror #4 - orr r8, r11, r8, ror #6 - and r11, r10, r9, ror #14 - and r9, r9, r10, ror #4 - orr r9, r11, r9, ror #6 //ror and masks to match fixslicing --- - eor r6, r6, #0x00100000 //add rconst - eor r7, r7, #0x00100000 //add rconst - eor r8, r8, #0x00000001 //add rconst - mvn r9, r9 //to save a NOT in sbox calculations - strd r6, r7, [r0], #8 //store 1st half tk for 52th round - strd r8, r9, [r0], #24 //store 2nd half tk for 52th round - ldm r0, {r6-r9} //load tk - bl p6 //apply the permutation 6 times - movw r10, #0xc3c3 - movt r10, #0xc3c3 //r10<- 0xc3c3c3c3 - and r11, r10, r6, ror #10 //ror and mask to match fixslicing - and r12, r10, r7, ror #10 //ror and mask to match fixslicing - strd r11, r12, [r0], #8 //store 1st half tk for 54th round - and r11, r10, r8, ror #10 //ror and mask to match fixslicing - and r12, r10, r9, ror #10 //ror and mask to match fixslicing - eor r11, r11, #0x01400000 //add rconst - eor r11, r11, #0x00001000 //add rconst - eor r12, r12, #0x00400000 //add rconst - mvn r12, r12 //to save a NOT in sbox calculations - strd r11, r12, [r0], #8 //store 2nd half tk for 54th round - and r10, r10, r10, lsr #6 //r10<- 0x03030303 - and r11, r10, r6, ror #12 //--- ror and masks to match fixslicing - and r6, r6, r10, lsl #6 - orr r6, r11, r6, ror #28 - and r11, r10, r7, ror #12 - and r7, r7, r10, lsl #6 - orr r7, r11, r7, ror #28 - and r11, r10, r8, ror #12 - and r8, r8, r10, lsl #6 - orr r8, r11, r8, ror #28 - and r11, r10, r9, ror #12 - and r9, r9, r10, lsl #6 - orr r9, r11, r9, ror #28 //ror and masks to match fixslicing --- - eor r7, r7, #0x00000400 //add rconst - eor r8, r8, #0x01000000 - eor r8, r8, #0x00004000 //add rconst - eor r9, r9, #0x00000400 //add rconst - mvn r9, r9 //to save a NOT in sbox calculations - strd r8, r9, [r0], #8 //store 1st half tk for 55th round - strd r6, r7, [r0], #8 //store 2nd half tk for 55th round - ldm r0, {r6-r9} //load tk - bl p8 //apply the permutation 8 times - movw r10, #0x3030 - movt r10, #0x3030 //r10<- 0x30303030 - and r11, r10, r6, ror #30 //--- ror and masks to match fixslicing - and r6, r6, r10, ror #4 - orr r6, r11, r6, ror #22 - and r11, r10, r7, ror #30 - and r7, r7, r10, ror #4 - orr r7, r11, r7, ror #22 - and r11, r10, r8, ror #30 - and r8, r8, r10, ror #4 - orr r8, r11, r8, ror #22 - and r11, r10, r9, ror #30 - and r9, r9, r10, ror #4 - orr r9, r11, r9, ror #22 //ror and masks to match fixslicing --- - eor r6, r6, #0x00000010 - eor r8, r8, #0x00010000 - eor r8, r8, #0x00000010 - mvn r9, r9 //to save a NOT in sbox calculations - strd r6, r7, [r0], #8 //store 1st half tk for 56th round - strd r8, r9, [r0], #24 //store 2nd half tk for 56th round - add.w sp, #4 - pop {r0-r12, lr} - bx lr - -/****************************************************************************** -* Applies the permutations P^2, ..., P^14 for rounds 0 to 16. Since P^16=Id, we -* don't need more calculations as no LFSR is applied to TK1. -******************************************************************************/ -@ void tkschedule_perm_tk1(u32* tk, const u8* key) -.global tkschedule_perm_tk1 -.type tkschedule_perm_tk1,%function -.align 2 -tkschedule_perm_tk1: - push {r0-r12, lr} - ldr.w r3, [r1, #8] //load tk1 (3rd word) - ldr.w r4, [r1, #4] //load tk1 (2nd word) - ldr.w r5, [r1, #12] //load tk1 (4th word) - ldr.w r2, [r1] //load tk1 (1st word) - movw r10, #0x0a0a - movt r10, #0x0a0a //r6 <- 0x0a0a0a0a - movw r11, #0x3030 - movt r11, #0x3030 //r7 <- 0x30303030 - bl packing //pack tk1 - mov r6, r2 //move tk1 from r2-r5 to r6-r9 - mov r7, r3 //move tk1 from r2-r5 to r6-r9 - mov r8, r4 //move tk1 from r2-r5 to r6-r9 - mov r9, r5 //move tk1 from r2-r5 to r6-r9 - movw r2, #0xf0f0 - movt r2, #0xf0f0 //r2<- 0xf0f0f0f0 - and r11, r8, r2 //tk &= 0xf0f0f0f0 (3rd word) - and r12, r9, r2 //tk &= 0xf0f0f0f0 (4th word) - strd r11, r12, [r0], #8 //store 1st half tk for 1st round - and r11, r6, r2 //tk &= 0xf0f0f0f0 (1st word) - and r12, r7, r2 //tk &= 0xf0f0f0f0 (2nd word) - strd r11, r12, [r0], #8 //store 2nd half tk for 1st round - - bl p2 //apply the permutation twice - movw r3, #0x0303 - movt r3, #0x0303 //r3<- 0x03030303 - and r11, r3, r6, ror #28 //--- ror and masks to match fixslicing - and r12, r6, r3, lsl #6 - orr r12, r11, r12, ror #12 - str.w r12, [r0, #8] - and r11, r3, r7, ror #28 - and r12, r7, r3, lsl #6 - orr r12, r11, r12, ror #12 - str.w r12, [r0, #12] - and r11, r3, r9, ror #28 - and r12, r9, r3, lsl #6 - orr r12, r11, r12, ror #12 - str.w r12, [r0, #4] - and r11, r3, r8, ror #28 - and r12, r8, r3, lsl #6 - orr r12, r11, r12, ror #12 - str.w r12, [r0], #16 //ror and masks to match fixslicing --- - bl p2 //apply the permutation 4 times - and r11, r2, r6, ror #16 //ror and mask to match fixslicing - and r12, r2, r7, ror #16 //ror and mask to match fixslicing - strd r11, r12, [r0, #8] //store 2nd half tk for 5th round - and r11, r2, r8, ror #16 //ror and mask to match fixslicing - and r12, r2, r9, ror #16 //ror and mask to match fixslicing - strd r11, r12, [r0], #16 //store 1st half tk for 5th round - bl p2 //apply the permutation 6 times - and r11, r3, r6, ror #12 //--- ror and masks to match fixslicing - and r12, r6, r3, lsl #6 - orr r12, r11, r12, ror #28 - str.w r12, [r0, #8] - and r11, r3, r7, ror #12 - and r12, r7, r3, lsl #6 - orr r12, r11, r12, ror #28 - str.w r12, [r0, #12] - and r11, r3, r9, ror #12 - and r12, r9, r3, lsl #6 - orr r12, r11, r12, ror #28 - str.w r12, [r0, #4] - and r11, r3, r8, ror #12 - and r12, r8, r3, lsl #6 - orr r12, r11, r12, ror #28 - str.w r12, [r0], #16 //ror and masks to match fixslicing --- - bl p2 //apply the permutation 8 times - and r11, r2, r6 //ror and mask to match fixslicing - and r12, r2, r7 //ror and mask to match fixslicing - strd r11, r12, [r0, #8] //store 2nd half tk for 9th round - and r11, r2, r8 //ror and mask to match fixslicing - and r12, r2, r9 //ror and mask to match fixslicing - strd r11, r12, [r0], #16 //store 1st half tk for 9th round - bl p2 //apply the permutation 10 - and r11, r3, r6, ror #28 //--- ror and masks to match fixslicing - and r12, r6, r3, lsl #6 - orr r12, r11, r12, ror #12 - str.w r12, [r0, #8] - and r11, r3, r7, ror #28 - and r12, r7, r3, lsl #6 - orr r12, r11, r12, ror #12 - str.w r12, [r0, #12] - and r11, r3, r9, ror #28 - and r12, r9, r3, lsl #6 - orr r12, r11, r12, ror #12 - str.w r12, [r0, #4] - and r11, r3, r8, ror #28 - and r12, r8, r3, lsl #6 - orr r12, r11, r12, ror #12 - str.w r12, [r0], #16 //ror and masks to match fixslicing --- - bl p2 //apply the permutation 12 times - and r11, r2, r6, ror #16 //ror and mask to match fixslicing - and r12, r2, r7, ror #16 //ror and mask to match fixslicing - strd r11, r12, [r0, #8] //store 2nd half tk for 5th round - and r11, r2, r8, ror #16 //ror and mask to match fixslicing - and r12, r2, r9, ror #16 //ror and mask to match fixslicing - strd r11, r12, [r0], #16 //store 1st half tk for 5th round - bl p2 //apply the permutation 14 times - and r11, r3, r6, ror #12 //--- ror and masks to match fixslicing - and r12, r6, r3, lsl #6 - orr r12, r11, r12, ror #28 - str.w r12, [r0, #8] - and r11, r3, r7, ror #12 - and r12, r7, r3, lsl #6 - orr r12, r11, r12, ror #28 - str.w r12, [r0, #12] - and r11, r3, r9, ror #12 - and r12, r9, r3, lsl #6 - orr r12, r11, r12, ror #28 - str.w r12, [r0, #4] - and r11, r3, r8, ror #12 - and r12, r8, r3, lsl #6 - orr r12, r11, r12, ror #28 - str.w r12, [r0] //ror and masks to match fixslicing --- - pop {r0-r12, lr} - bx lr - -.align 2 -quadruple_round: - orr r8, r2, r3 - eor r5, r5, r8 - mvn r5, r5 - eor r8, r3, r4, lsr #1 - and r8, r8, r6 - eor r3, r3, r8 - eor r4, r4, r8, lsl #1 //SWAPMOVE(r4, r3, 0x55555555, 1); - eor r8, r4, r5, lsr #1 - and r8, r8, r6 - eor r4, r4, r8 - eor r5, r5, r8, lsl #1 //SWAPMOVE(r5, r4, 0x55555555, 1); - orr r8, r4, r5 - eor r3, r3, r8 - mvn r3, r3 - eor r8, r2, r3, lsr #1 - and r8, r8, r6 - eor r2, r2, r8 - eor r3, r3, r8, lsl #1 //SWAPMOVE(r3, r2, 0x55555555, 1); - eor r8, r5, r2, lsr #1 - and r8, r8, r6 - eor r5, r5, r8 - eor r2, r2, r8, lsl #1 //SWAPMOVE(r2, r5, 0x55555555, 1); - orr r8, r2, r3 - eor r5, r5, r8 - mvn r5, r5 - eor r8, r3, r4, lsr #1 - and r8, r8, r6 - eor r3, r3, r8 - eor r4, r4, r8, lsl #1 //SWAPMOVE(r4, r3, 0x55555555, 1); - eor r8, r4, r5, lsr #1 - and r8, r8, r6 - eor r4, r4, r8 - eor r5, r5, r8, lsl #1 //SWAPMOVE(r5, r4, 0x55555555, 1); - orr r8, r4, r5 - eor r3, r3, r8 - eor r8, r2, r5 - and r8, r8, r6 - eor r2, r2, r8 - eor r5, r5, r8 //SWAPMOVE(r5, r2, 0x55555555, 0); - ldmia.w r1!, {r8-r11} //load rkeys in r8,...,r11 - eor r2, r2, r8 //add rtk_2_3 + rconst - eor r3, r3, r9 //add rtk_2_3 + rconst - eor r4, r4, r10 //add rtk_2_3 + rconst - eor r5, r5, r11 //add rtk_2_3 + rconst - ldmia.w r0!,{r8-r11} - eor r2, r2, r8 //add rtk_1 - eor r3, r3, r9 //add rtk_1 - eor r4, r4, r10 //add rtk_1 - eor r5, r5, r11 //add rtk_1 - and r8, r7, r2, ror #30 // --- mixcolumns 0 --- - eor r2, r2, r8, ror #24 - and r8, r7, r2, ror #18 - eor r2, r2, r8, ror #2 - and r8, r7, r2, ror #6 - eor r2, r2, r8, ror #4 - and r8, r7, r3, ror #30 - eor r3, r3, r8, ror #24 - and r8, r7, r3, ror #18 - eor r3, r3, r8, ror #2 - and r8, r7, r3, ror #6 - eor r3, r3, r8, ror #4 - and r8, r7, r4, ror #30 - eor r4, r4, r8, ror #24 - and r8, r7, r4, ror #18 - eor r4, r4, r8, ror #2 - and r8, r7, r4, ror #6 - eor r4, r4, r8, ror #4 - and r8, r7, r5, ror #30 - eor r5, r5, r8, ror #24 - and r8, r7, r5, ror #18 - eor r5, r5, r8, ror #2 - and r8, r7, r5, ror #6 - eor r5, r5, r8, ror #4 - orr r8, r4, r5 - eor r3, r3, r8 - mvn r3, r3 - eor r8, r2, r3, lsr #1 - and r8, r8, r6 - eor r2, r2, r8 - eor r3, r3, r8, lsl #1 //SWAPMOVE(r3, r2, 0x55555555, 1); - eor r8, r5, r2, lsr #1 - and r8, r8, r6 - eor r5, r5, r8 - eor r2, r2, r8, lsl #1 //SWAPMOVE(r2, r5, 0x55555555, 1); - orr r8, r2, r3 - eor r5, r5, r8 - mvn r5, r5 - eor r8, r3, r4, lsr #1 - and r8, r8, r6 - eor r3, r3, r8 - eor r4, r4, r8, lsl #1 //SWAPMOVE(r4, r3, 0x55555555, 1); - eor r8, r4, r5, lsr #1 - and r8, r8, r6 - eor r4, r4, r8 - eor r5, r5, r8, lsl #1 //SWAPMOVE(r5, r4, 0x55555555, 1); - orr r8, r4, r5 - eor r3, r3, r8 - mvn r3, r3 - eor r8, r2, r3, lsr #1 - and r8, r8, r6 - eor r2, r2, r8 - eor r3, r3, r8, lsl #1 //SWAPMOVE(r3, r2, 0x55555555, 1); - eor r8, r5, r2, lsr #1 - and r8, r8, r6 - eor r5, r5, r8 - eor r2, r2, r8, lsl #1 //SWAPMOVE(r2, r5, 0x55555555, 1); - orr r8, r2, r3 - eor r5, r5, r8 - eor r8, r3, r4 - and r8, r8, r6 - eor r3, r3, r8 - eor r4, r4, r8 //SWAPMOVE(r4, r3, 0x55555555, 0); - ldmia.w r1!, {r8-r11} //load rkeys in r8,...,r11 - eor r2, r2, r8 //add rkey + rconst - eor r3, r3, r9 //add rkey + rconst - eor r4, r4, r10 //add rkey + rconst - eor r5, r5, r11 //add rkey + rconst - and r8, r7, r2, ror #16 // --- mixcolumns 1 --- - eor r2, r2, r8, ror #30 - and r8, r7, r2, ror #28 - eor r2, r2, r8 - and r8, r7, r2, ror #16 - eor r2, r2, r8, ror #2 - and r8, r7, r3, ror #16 - eor r3, r3, r8, ror #30 - and r8, r7, r3, ror #28 - eor r3, r3, r8 - and r8, r7, r3, ror #16 - eor r3, r3, r8, ror #2 - and r8, r7, r4, ror #16 - eor r4, r4, r8, ror #30 - and r8, r7, r4, ror #28 - eor r4, r4, r8 - and r8, r7, r4, ror #16 - eor r4, r4, r8, ror #2 - and r8, r7, r5, ror #16 - eor r5, r5, r8, ror #30 - and r8, r7, r5, ror #28 - eor r5, r5, r8 - and r8, r7, r5, ror #16 - eor r5, r5, r8, ror #2 - orr r8, r2, r3 - eor r5, r5, r8 - mvn r5, r5 - eor r8, r3, r4, lsr #1 - and r8, r8, r6 - eor r3, r3, r8 - eor r4, r4, r8, lsl #1 //SWAPMOVE(r4, r3, 0x55555555, 1); - eor r8, r4, r5, lsr #1 - and r8, r8, r6 - eor r4, r4, r8 - eor r5, r5, r8, lsl #1 //SWAPMOVE(r5, r4, 0x55555555, 1); - orr r8, r4, r5 - eor r3, r3, r8 - mvn r3, r3 - eor r8, r2, r3, lsr #1 - and r8, r8, r6 - eor r2, r2, r8 - eor r3, r3, r8, lsl #1 //SWAPMOVE(r3, r2, 0x55555555, 1); - eor r8, r5, r2, lsr #1 - and r8, r8, r6 - eor r5, r5, r8 - eor r2, r2, r8, lsl #1 //SWAPMOVE(r2, r5, 0x55555555, 1); - orr r8, r2, r3 - eor r5, r5, r8 - mvn r5, r5 - eor r8, r3, r4, lsr #1 - and r8, r8, r6 - eor r3, r3, r8 - eor r4, r4, r8, lsl #1 //SWAPMOVE(r4, r3, 0x55555555, 1); - eor r8, r4, r5, lsr #1 - and r8, r8, r6 - eor r4, r4, r8 - eor r5, r5, r8, lsl #1 //SWAPMOVE(r5, r4, 0x55555555, 1); - orr r8, r4, r5 - eor r3, r3, r8 - eor r8, r2, r5 - and r8, r8, r6 - eor r2, r2, r8 - eor r5, r5, r8 //SWAPMOVE(r5, r2, 0x55555555, 0); - ldmia.w r1!, {r8-r11} //load rkeys in r8,...,r11 - eor r2, r2, r8 //add rtk_2_3 + rconst - eor r3, r3, r9 //add rtk_2_3 + rconst - eor r4, r4, r10 //add rtk_2_3 + rconst - eor r5, r5, r11 //add rtk_2_3 + rconst - ldmia.w r0!,{r8-r11} - eor r2, r2, r8 //add rtk_1 - eor r3, r3, r9 //add rtk_1 - eor r4, r4, r10 //add rtk_1 - eor r5, r5, r11 //add rtk_1 - and r8, r7, r2, ror #10 // --- mixcolumns 2 --- - eor r2, r2, r8, ror #4 - and r8, r7, r2, ror #6 - eor r2, r2, r8, ror #6 - and r8, r7, r2, ror #26 - eor r2, r2, r8 - and r8, r7, r3, ror #10 - eor r3, r3, r8, ror #4 - and r8, r7, r3, ror #6 - eor r3, r3, r8, ror #6 - and r8, r7, r3, ror #26 - eor r3, r3, r8 - and r8, r7, r4, ror #10 - eor r4, r4, r8, ror #4 - and r8, r7, r4, ror #6 - eor r4, r4, r8, ror #6 - and r8, r7, r4, ror #26 - eor r4, r4, r8 - and r8, r7, r5, ror #10 - eor r5, r5, r8, ror #4 - and r8, r7, r5, ror #6 - eor r5, r5, r8, ror #6 - and r8, r7, r5, ror #26 - eor r5, r5, r8 - orr r8, r4, r5 - eor r3, r3, r8 - mvn r3, r3 - eor r8, r2, r3, lsr #1 - and r8, r8, r6 - eor r2, r2, r8 - eor r3, r3, r8, lsl #1 //SWAPMOVE(r3, r2, 0x55555555, 1); - eor r8, r5, r2, lsr #1 - and r8, r8, r6 - eor r5, r5, r8 - eor r2, r2, r8, lsl #1 //SWAPMOVE(r2, r5, 0x55555555, 1); - orr r8, r2, r3 - eor r5, r5, r8 - mvn r5, r5 - eor r8, r3, r4, lsr #1 - and r8, r8, r6 - eor r3, r3, r8 - eor r4, r4, r8, lsl #1 //SWAPMOVE(r4, r3, 0x55555555, 1); - eor r8, r4, r5, lsr #1 - and r8, r8, r6 - eor r4, r4, r8 - eor r5, r5, r8, lsl #1 //SWAPMOVE(r5, r4, 0x55555555, 1); - orr r8, r4, r5 - eor r3, r3, r8 - mvn r3, r3 - eor r8, r2, r3, lsr #1 - and r8, r8, r6 - eor r2, r2, r8 - eor r3, r3, r8, lsl #1 //SWAPMOVE(r3, r2, 0x55555555, 1); - eor r8, r5, r2, lsr #1 - and r8, r8, r6 - eor r5, r5, r8 - eor r2, r2, r8, lsl #1 //SWAPMOVE(r2, r5, 0x55555555, 1); - orr r8, r2, r3 - eor r5, r5, r8 - eor r8, r3, r4 - and r8, r8, r6 - eor r3, r3, r8 - eor r4, r4, r8 //SWAPMOVE(r4, r3, 0x55555555, 0); - ldmia r1!, {r8-r11} //load rkeys in r8,...,r11 - eor r2, r2, r8 //add rkey + rconst - eor r3, r3, r9 //add rkey + rconst - eor r4, r4, r10 //add rkey + rconst - eor r5, r5, r11 //add rkey + rconst - and r8, r7, r2, ror #4 // --- mixcolumns 3 --- - eor r2, r2, r8, ror #26 - and r8, r7, r2 - eor r2, r2, r8, ror #4 - and r8, r7, r2, ror #4 - eor r2, r2, r8, ror #22 - and r8, r7, r3, ror #4 - eor r3, r3, r8, ror #26 - and r8, r7, r3 - eor r3, r3, r8, ror #4 - and r8, r7, r3, ror #4 - eor r3, r3, r8, ror #22 - and r8, r7, r4, ror #4 - eor r4, r4, r8, ror #26 - and r8, r7, r4 - eor r4, r4, r8, ror #4 - and r8, r7, r4, ror #4 - eor r4, r4, r8, ror #22 - and r8, r7, r5, ror #4 - eor r5, r5, r8, ror #26 - and r8, r7, r5 - eor r5, r5, r8, ror #4 - and r8, r7, r5, ror #4 - eor r5, r5, r8, ror #22 - bx lr - -/****************************************************************************** -* Encrypt a single block using fixsliced SKINNY-128-128. -******************************************************************************/ -@ void skinny128_384(u8* ctext, const u32* tk, const u8* ptext, const u32* rtk1) -.global skinny128_384 -.type skinny128_384,%function -.align 2 -skinny128_384: - push {r0-r12, r14} - mov.w r0, r3 - ldr.w r3, [r2, #8] - ldr.w r4, [r2, #4] - ldr.w r5, [r2, #12] - ldr.w r2, [r2] - movw r6, #0x0a0a - movt r6, #0x0a0a //r6 <- 0x0a0a0a0a - movw r7, #0x3030 - movt r7, #0x3030 //r7 <- 0x30303030 - eor r12, r2, r2, lsr #3 - and r12, r12, r6 - eor r2, r2, r12 - eor r2, r2, r12, lsl #3 //SWAPMOVE(r2, r2, 0x0a0a0a0a, 3) - eor r12, r3, r3, lsr #3 - and r12, r12, r6 - eor r3, r3, r12 - eor r3, r3, r12, lsl #3 //SWAPMOVE(r3, r3, 0x0a0a0a0a, 3) - eor r12, r4, r4, lsr #3 - and r12, r12, r6 - eor r4, r4, r12 - eor r4, r4, r12, lsl #3 //SWAPMOVE(r4, r4, 0x0a0a0a0a, 3) - eor r12, r5, r5, lsr #3 - and r12, r12, r6 - eor r5, r5, r12 - eor r5, r5, r12, lsl #3 //SWAPMOVE(r5, r5, 0x0a0a0a0a, 3) - eor r12, r2, r4, lsr #2 - and r12, r12, r7 - eor r2, r2, r12 - eor r4, r4, r12, lsl #2 //SWAPMOVE(r4, r2, 0x30303030, 2) - eor r12, r2, r3, lsr #4 - and r12, r12, r7, lsr #2 - eor r2, r2, r12 - eor r3, r3, r12, lsl #4 //SWAPMOVE(r3, r2, 0x0c0c0c0c, 4) - eor r12, r2, r5, lsr #6 - and r12, r12, r7, lsr #4 - eor r2, r2, r12 - eor r5, r5, r12, lsl #6 //SWAPMOVE(r5, r2, 0x03030303, 6) - eor r12, r4, r3, lsr #2 - and r12, r12, r7, lsr #2 - eor r4, r4, r12 - eor r3, r3, r12, lsl #2 //SWAPMOVE(r3, r4, 0x0c0c0c0c, 2) - eor r12, r4, r5, lsr #4 - and r12, r12, r7, lsr #4 - eor r4, r4, r12 - eor r5, r5, r12, lsl #4 //SWAPMOVE(r5, r4, 0x03030303, 4) - eor r12, r3, r5, lsr #2 - and r12, r12, r7, lsr #4 - eor r3, r3, r12 - eor r5, r5, r12, lsl #2 //SWAPMOVE(r5, r3, 0x03030303, 2) - movw r6, #0x5555 - movt r6, #0x5555 //r6 <- 0x55555555 - bl quadruple_round - bl quadruple_round - bl quadruple_round - bl quadruple_round - sub.w r0, #128 // rtk1 repeats every 16 rounds - bl quadruple_round - bl quadruple_round - bl quadruple_round - bl quadruple_round - sub.w r0, #128 // rtk1 repeats every 16 rounds - bl quadruple_round - bl quadruple_round - bl quadruple_round - bl quadruple_round - sub.w r0, #128 // rtk1 repeats every 16 rounds - bl quadruple_round - bl quadruple_round - movw r6, #0x0a0a - movt r6, #0x0a0a //r6 <- 0x0a0a0a0a - eor r10, r3, r5, lsr #2 - and r10, r10, r7, lsr #4 - eor r3, r3, r10 - eor r5, r5, r10, lsl #2 //SWAPMOVE(r5, r3, 0x03030303, 2) - eor r10, r4, r5, lsr #4 - and r10, r10, r7, lsr #4 - eor r4, r4, r10 - eor r5, r5, r10, lsl #4 //SWAPMOVE(r5, r4, 0x03030303, 4) - eor r10, r4, r3, lsr #2 - and r10, r10, r7, lsr #2 - eor r4, r4, r10 - eor r3, r3, r10, lsl #2 //SWAPMOVE(r3, r4, 0x0c0c0c0c, 2) - eor r10, r2, r5, lsr #6 - and r10, r10, r7, lsr #4 - eor r2, r2, r10 - eor r5, r5, r10, lsl #6 //SWAPMOVE(r5, r2, 0x03030303, 6) - eor r10, r2, r3, lsr #4 - and r10, r10, r7, lsr #2 - eor r2, r2, r10 - eor r3, r3, r10, lsl #4 //SWAPMOVE(r3, r2, 0x0c0c0c0c, 4) - eor r10, r2, r4, lsr #2 - and r10, r10, r7 - eor r2, r2, r10 - eor r4, r4, r10, lsl #2 //SWAPMOVE(r4, r2, 0x30303030, 2) - eor r10, r5, r5, lsr #3 - and r10, r10, r6 - eor r5, r5, r10 - eor r5, r5, r10, lsl #3 //SWAPMOVE(r5, r5, 0x0a0a0a0a, 3) - eor r10, r4, r4, lsr #3 - and r10, r10, r6 - eor r4, r4, r10 - eor r4, r4, r10, lsl #3 //SWAPMOVE(r4, r4, 0x0a0a0a0a, 3) - eor r10, r3, r3, lsr #3 - and r10, r10, r6 - eor r3, r3, r10 - eor r3, r3, r10, lsl #3 //SWAPMOVE(r3, r3, 0x0a0a0a0a, 3) - eor r10, r2, r2, lsr #3 - and r10, r10, r6 - eor r2, r2, r10 - eor r2, r2, r10, lsl #3 //SWAPMOVE(r2, r2, 0x0a0a0a0a, 3) - ldr.w r0, [sp], #4 - strd r2, r4, [r0] - strd r3, r5, [r0, #8] - pop {r1-r12,r14} - bx lr - \ No newline at end of file diff --git a/romulus/Implementations/crypto_aead/romulusm1v12/armsrc_NEC/api.h b/romulus/Implementations/crypto_aead/romulusm1v12/armsrc_NEC/api.h deleted file mode 100644 index a4aa567..0000000 --- a/romulus/Implementations/crypto_aead/romulusm1v12/armsrc_NEC/api.h +++ /dev/null @@ -1,5 +0,0 @@ -#define CRYPTO_KEYBYTES 16 -#define CRYPTO_NSECBYTES 0 -#define CRYPTO_NPUBBYTES 16 -#define CRYPTO_ABYTES 16 -#define CRYPTO_NOOVERLAP 1 diff --git a/romulus/Implementations/crypto_aead/romulusm1v12/armsrc_NEC/crypto_aead.h b/romulus/Implementations/crypto_aead/romulusm1v12/armsrc_NEC/crypto_aead.h deleted file mode 100644 index cfc09d6..0000000 --- a/romulus/Implementations/crypto_aead/romulusm1v12/armsrc_NEC/crypto_aead.h +++ /dev/null @@ -1,11 +0,0 @@ -int crypto_aead_encrypt(unsigned char *c, unsigned long long *clen, - const unsigned char *m, unsigned long long mlen, - const unsigned char *ad, unsigned long long adlen, - const unsigned char *nsec, const unsigned char *npub, - const unsigned char *k); - -int crypto_aead_decrypt(unsigned char *m, unsigned long long *outputmlen, - unsigned char *nsec, - const unsigned char *c, unsigned long long clen, - const unsigned char *ad, unsigned long long adlen, - const unsigned char *npub, const unsigned char *k); diff --git a/romulus/Implementations/crypto_aead/romulusm1v12/armsrc_NEC/encrypt.c b/romulus/Implementations/crypto_aead/romulusm1v12/armsrc_NEC/encrypt.c deleted file mode 100644 index 91d0e6e..0000000 --- a/romulus/Implementations/crypto_aead/romulusm1v12/armsrc_NEC/encrypt.c +++ /dev/null @@ -1,738 +0,0 @@ -/* - * Date: 29 November 2018 - * Contact: Thomas Peyrin - thomas.peyrin@gmail.com - * Mustafa Khairallah - mustafam001@e.ntu.edu.sg - */ - -#include "crypto_aead.h" -#include "api.h" -#include "skinny.h" -#include -#include - -void pad (const unsigned char* m, unsigned char* mp, int l, int len8) { - int i; - - for (i = 0; i < l; i++) { - if (i < len8) { - mp[i] = m[i]; - } - else if (i == l - 1) { - mp[i] = (len8 & 0x0f); - } - else { - mp[i] = 0x00; - } - } - -} - -void g8A (unsigned char* s, unsigned char* c) { - unsigned int tmps[4]; - unsigned int tmpc[4]; - - tmps[0] = *((unsigned int *)&s[0]); - tmps[1] = *((unsigned int *)&s[4]); - tmps[2] = *((unsigned int *)&s[8]); - tmps[3] = *((unsigned int *)&s[12]); - - // c[i] = (s[i] >> 1) ^ (s[i] & 0x80) ^ ((s[i] & 0x01) << 7); - // - // (s[i] >> 1) -> ((s[i]>>1)&0x7f) - // (s[i] & 0x80) -> (s[i])&0x80) not changed - // ((s[i] & 0x01) << 7) -> ((s[i]<<7)&0x80) - - // use word access because of speeding up - tmpc[0] = ((tmps[0]>>1) & 0x7f7f7f7f) ^ (tmps[0] & 0x80808080) ^ ((tmps[0]<<7) & 0x80808080); - tmpc[1] = ((tmps[1]>>1) & 0x7f7f7f7f) ^ (tmps[1] & 0x80808080) ^ ((tmps[1]<<7) & 0x80808080); - tmpc[2] = ((tmps[2]>>1) & 0x7f7f7f7f) ^ (tmps[2] & 0x80808080) ^ ((tmps[2]<<7) & 0x80808080); - tmpc[3] = ((tmps[3]>>1) & 0x7f7f7f7f) ^ (tmps[3] & 0x80808080) ^ ((tmps[3]<<7) & 0x80808080); - - *((unsigned int *)&c[0]) = tmpc[0]; - *((unsigned int *)&c[4]) = tmpc[1]; - *((unsigned int *)&c[8]) = tmpc[2]; - *((unsigned int *)&c[12]) = tmpc[3]; -} - -void g8A_for_Tag_Generation (unsigned char* s, unsigned char* c) { - unsigned int tmps[4]; - unsigned int tmpc[4]; - - tmps[0] = *((unsigned int *)&s[0]); - tmps[1] = *((unsigned int *)&s[4]); - tmps[2] = *((unsigned int *)&s[8]); - tmps[3] = *((unsigned int *)&s[12]); - - // c[i] = (s[i] >> 1) ^ (s[i] & 0x80) ^ ((s[i] & 0x01) << 7); - // - // (s[i] >> 1) -> ((s[i]>>1)&0x7f) - // (s[i] & 0x80) -> (s[i])&0x80) not changed - // ((s[i] & 0x01) << 7) -> ((s[i]<<7)&0x80) - - // use word access because of speeding up - tmpc[0] = ((tmps[0]>>1) & 0x7f7f7f7f) ^ (tmps[0] & 0x80808080) ^ ((tmps[0]<<7) & 0x80808080); - tmpc[1] = ((tmps[1]>>1) & 0x7f7f7f7f) ^ (tmps[1] & 0x80808080) ^ ((tmps[1]<<7) & 0x80808080); - tmpc[2] = ((tmps[2]>>1) & 0x7f7f7f7f) ^ (tmps[2] & 0x80808080) ^ ((tmps[2]<<7) & 0x80808080); - tmpc[3] = ((tmps[3]>>1) & 0x7f7f7f7f) ^ (tmps[3] & 0x80808080) ^ ((tmps[3]<<7) & 0x80808080); - - // use byte access because of memory alignment. - // c is not always in word(4 byte) alignment. - c[0] = tmpc[0] &0xFF; - c[1] = (tmpc[0]>>8) &0xFF; - c[2] = (tmpc[0]>>16)&0xFF; - c[3] = (tmpc[0]>>24)&0xFF; - c[4] = tmpc[1] &0xFF; - c[5] = (tmpc[1]>>8) &0xFF; - c[6] = (tmpc[1]>>16)&0xFF; - c[7] = (tmpc[1]>>24)&0xFF; - c[8] = tmpc[2] &0xFF; - c[9] = (tmpc[2]>>8) &0xFF; - c[10] = (tmpc[2]>>16)&0xFF; - c[11] = (tmpc[2]>>24)&0xFF; - c[12] = tmpc[3] &0xFF; - c[13] = (tmpc[3]>>8) &0xFF; - c[14] = (tmpc[3]>>16)&0xFF; - c[15] = (tmpc[3]>>24)&0xFF; -} - -void rho_ad_eqov16 (const unsigned char* m, - unsigned char* s) { - *((unsigned int *)&s[0]) ^= *((unsigned int *)&m[0]); - *((unsigned int *)&s[4]) ^= *((unsigned int *)&m[4]); - *((unsigned int *)&s[8]) ^= *((unsigned int *)&m[8]); - *((unsigned int *)&s[12]) ^= *((unsigned int *)&m[12]); -} - -void rho_ad_ud16 (const unsigned char* m, - unsigned char* s, - int len8) { - unsigned char mp [16]; - - pad(m,mp,16,len8); - *((unsigned int *)&s[0]) ^= *((unsigned int *)&mp[0]); - *((unsigned int *)&s[4]) ^= *((unsigned int *)&mp[4]); - *((unsigned int *)&s[8]) ^= *((unsigned int *)&mp[8]); - *((unsigned int *)&s[12]) ^= *((unsigned int *)&mp[12]); -} - -void rho_eqov16 (const unsigned char* m, - unsigned char* c, - unsigned char* s) { - g8A(s,c); - - *((unsigned int *)&s[0]) ^= *((unsigned int *)&m[0]); - *((unsigned int *)&s[4]) ^= *((unsigned int *)&m[4]); - *((unsigned int *)&s[8]) ^= *((unsigned int *)&m[8]); - *((unsigned int *)&s[12]) ^= *((unsigned int *)&m[12]); - - *((unsigned int *)&c[0]) ^= *((unsigned int *)&m[0]); - *((unsigned int *)&c[4]) ^= *((unsigned int *)&m[4]); - *((unsigned int *)&c[8]) ^= *((unsigned int *)&m[8]); - *((unsigned int *)&c[12]) ^= *((unsigned int *)&m[12]); -} - -void rho_ud16 (const unsigned char* m, - unsigned char* c, - unsigned char* s, - int len8, - int ver) { - int i; - unsigned char mp [16]; - - pad(m,mp,ver,len8); - - g8A(s,c); - *((unsigned int *)&s[0]) ^= *((unsigned int *)&mp[0]); - *((unsigned int *)&s[4]) ^= *((unsigned int *)&mp[4]); - *((unsigned int *)&s[8]) ^= *((unsigned int *)&mp[8]); - *((unsigned int *)&s[12]) ^= *((unsigned int *)&mp[12]); - for (i = 0; i < ver; i++) { - if (i < len8) { - c[i] = c[i] ^ mp[i]; - } - else { - c[i] = 0; - } - } -} - -void irho (unsigned char* m, - const unsigned char* c, - unsigned char* s, - int len8, - int ver) { - int i; - unsigned char cp [16]; - - pad(c,cp,ver,len8); - - g8A(s,m); - for (i = 0; i < ver; i++) { - if (i < len8) { - s[i] = s[i] ^ cp[i] ^ m[i]; - } - else { - s[i] = s[i] ^ cp[i]; - } - if (i < len8) { - m[i] = m[i] ^ cp[i]; - } - else { - m[i] = 0; - } - } -} - -void reset_lfsr_gf56 (unsigned char* CNT) { - *((unsigned int *)&CNT[0]) = 0x00000001; - *((unsigned int *)&CNT[4]) = 0x00000000; -} - -void lfsr_gf56 (unsigned char* CNT) { - unsigned int tmpCNT[2]; - unsigned int fb0; - - tmpCNT[0] = *((unsigned int *)&CNT[0]); // CNT3 CNT2 CNT1 CNT0 - tmpCNT[1] = *((unsigned int *)&CNT[4]); // CNT7 CNT6 CNT5 CNT4 - - fb0 = 0; - if ((tmpCNT[1] >> 23)&0x01) { - fb0 = 0x95; - } - - tmpCNT[1] = tmpCNT[1] << 1 | tmpCNT[0] >> 31; - tmpCNT[0] = tmpCNT[0] << 1 ^ fb0; - - *((unsigned int *)&CNT[0]) = tmpCNT[0]; - *((unsigned int *)&CNT[4]) = tmpCNT[1]; -} - -void block_cipher(unsigned char* s, - const unsigned char* k, unsigned char* T, - unsigned char* CNT, - skinny_ctrl* p_skinny_ctrl) { - p_skinny_ctrl->func_skinny_128_384_enc (s,p_skinny_ctrl,CNT,T,k); -} - -void nonce_encryption (const unsigned char* N, - unsigned char* CNT, - unsigned char*s, const unsigned char* k, - unsigned char D, - skinny_ctrl* p_skinny_ctrl) { - unsigned char T [16]; - *((unsigned int *)&T[0]) = *((unsigned int *)&N[0]); - *((unsigned int *)&T[4]) = *((unsigned int *)&N[4]); - *((unsigned int *)&T[8]) = *((unsigned int *)&N[8]); - *((unsigned int *)&T[12]) = *((unsigned int *)&N[12]); - CNT[7] = D; - block_cipher(s,k,T,CNT,p_skinny_ctrl); - -} - -void generate_tag (unsigned char** c, unsigned char* s, - int n, unsigned long long* clen) { - - g8A_for_Tag_Generation(s, *c); - *c = *c + n; - *c = *c - *clen; - -} - -unsigned long long msg_encryption (const unsigned char** M, unsigned char** c, - const unsigned char* N, - unsigned char* CNT, - unsigned char*s, const unsigned char* k, - unsigned char D, - unsigned long long mlen, - skinny_ctrl* p_skinny_ctrl) { - int len8; - - if (mlen >= 16) { - len8 = 16; - mlen = mlen - 16; - rho_eqov16(*M, *c, s); - } - else { - len8 = mlen; - mlen = 0; - rho_ud16(*M, *c, s, len8, 16); - } - *c = *c + len8; - *M = *M + len8; - lfsr_gf56(CNT); - if (mlen != 0) { - nonce_encryption(N,CNT,s,k,D,p_skinny_ctrl); - } - return mlen; -} - - - -unsigned long long msg_decryption (unsigned char** M, const unsigned char** c, - const unsigned char* N, - unsigned char* CNT, - unsigned char*s, const unsigned char* k, - unsigned char D, - unsigned long long clen, - skinny_ctrl* p_skinny_ctrl) { - int len8; - - if (clen >= 16) { - len8 = 16; - clen = clen - 16; - } - else { - len8 = clen; - clen = 0; - } - irho(*M, *c, s, len8, 16); - *c = *c + len8; - *M = *M + len8; - lfsr_gf56(CNT); - nonce_encryption(N,CNT,s,k,D,p_skinny_ctrl); - return clen; -} - -unsigned long long ad2msg_encryption (const unsigned char** M, - unsigned char* CNT, - unsigned char*s, const unsigned char* k, - unsigned char D, - unsigned long long mlen, - skinny_ctrl* p_skinny_ctrl) { - unsigned char T [16]; - int len8; - - if (mlen <= 16) { - len8 = mlen; - mlen = 0; - - pad (*M,T,16,len8); - } - else { - len8 = 16; - mlen = mlen - 16; - - unsigned char *pM = (unsigned char *)(*M); - *((unsigned int *)&T[0]) = *((unsigned int *)&pM[0]); - *((unsigned int *)&T[4]) = *((unsigned int *)&pM[4]); - *((unsigned int *)&T[8]) = *((unsigned int *)&pM[8]); - *((unsigned int *)&T[12]) = *((unsigned int *)&pM[12]); - } - - CNT[7] = D; - block_cipher(s,k,T,CNT,p_skinny_ctrl); - lfsr_gf56(CNT); - *M = *M + len8; - - return mlen; - -} - - -unsigned long long ad_encryption (const unsigned char** A, unsigned char* s, - const unsigned char* k, unsigned long long adlen, - unsigned char* CNT, - unsigned char D, - skinny_ctrl* p_skinny_ctrl) { - - unsigned char T [16]; - int len8; - - if (adlen >= 16) { - len8 = 16; - adlen = adlen - 16; - rho_ad_eqov16(*A, s); - } - else { - len8 = adlen; - adlen = 0; - rho_ad_ud16(*A, s, len8); - } - *A = *A + len8; - lfsr_gf56(CNT); - if (adlen != 0) { - if (adlen >= 16) { - len8 = 16; - adlen = adlen - 16; - - unsigned char *pA = (unsigned char *)(*A); - *((unsigned int *)&T[0]) = *((unsigned int *)&pA[0]); - *((unsigned int *)&T[4]) = *((unsigned int *)&pA[4]); - *((unsigned int *)&T[8]) = *((unsigned int *)&pA[8]); - *((unsigned int *)&T[12]) = *((unsigned int *)&pA[12]); - } - else { - len8 = adlen; - adlen = 0; - - pad(*A, T, 16, len8); - } - *A = *A + len8; - CNT[7] = D; - block_cipher(s,k,T,CNT,p_skinny_ctrl); - lfsr_gf56(CNT); - } - - return adlen; -} - -int crypto_aead_encrypt ( - unsigned char* c, unsigned long long* clen, - const unsigned char* m, unsigned long long mlen, - const unsigned char* ad, unsigned long long adlen, - const unsigned char* nsec, - const unsigned char* npub, - const unsigned char* k - ) -{ - unsigned char s[16]; - unsigned char CNT[8]; // size 7 -> 8 for word access - unsigned char T[16]; - const unsigned char* N; - unsigned char w; - unsigned long long xlen; - - skinny_ctrl l_skinny_ctrl; - l_skinny_ctrl.func_skinny_128_384_enc = skinny_128_384_enc123_12; - - (void)nsec; - N = npub; - - xlen = mlen; - - *((unsigned int *)&s[0]) = 0x00000000; - *((unsigned int *)&s[4]) = 0x00000000; - *((unsigned int *)&s[8]) = 0x00000000; - *((unsigned int *)&s[12]) = 0x00000000; - reset_lfsr_gf56(CNT); - - w = 48; - - if (adlen == 0) { - w = w ^ 2; - if (xlen == 0) { - w =w ^ 1; - } - else if (xlen%(32) == 0) { - w = w ^ 4; - } - else if (xlen%(32) < 16) { - w = w ^ 1; - } - else if (xlen%(32) == 16) { - w = w ^ 0; - } - else { - w = w ^ 5; - } - } - else if (adlen%(32) == 0) { - w = w ^ 8; - if (xlen == 0) { - w =w ^ 1; - } - else if (xlen%(32) == 0) { - w = w ^ 4; - } - else if (xlen%(32) < 16) { - w = w ^ 1; - } - else if (xlen%(32) == 16) { - w = w ^ 0; - } - else { - w = w ^ 5; - } - } - else if (adlen%(32) < 16) { - w = w ^ 2; - if (xlen == 0) { - w =w ^ 1; - } - else if (xlen%(32) == 0) { - w = w ^ 4; - } - else if (xlen%(32) < 16) { - w = w ^ 1; - } - else if (xlen%(32) == 16) { - w = w ^ 0; - } - else { - w = w ^ 5; - } - } - else if (adlen%(32) == 16) { - w = w ^ 0; - if (xlen == 0) { - w =w ^ 1; - } - else if (xlen%(32) == 0) { - w = w ^ 4; - } - else if (xlen%(32) < 16) { - w = w ^ 1; - } - else if (xlen%(32) == 16) { - w = w ^ 0; - } - else { - w = w ^ 5; - } - } - else { - w = w ^ 10; - if (xlen == 0) { - w =w ^ 1; - } - else if (xlen%(32) == 0) { - w = w ^ 4; - } - else if (xlen%(32) < 16) { - w = w ^ 1; - } - else if (xlen%(32) == 16) { - w = w ^ 0; - } - else { - w = w ^ 5; - } - } - - if (adlen == 0) { // AD is an empty string - lfsr_gf56(CNT); - } - else while (adlen > 0) { - adlen = ad_encryption(&ad,s,k,adlen,CNT,40,&l_skinny_ctrl); - } - - if ((w & 8) == 0) { - xlen = ad2msg_encryption (&m,CNT,s,k,44,xlen,&l_skinny_ctrl); - } - else if (mlen == 0) { - lfsr_gf56(CNT); - } - while (xlen > 0) { - xlen = ad_encryption(&m,s,k,xlen,CNT,44,&l_skinny_ctrl); - } - nonce_encryption(N,CNT,s,k,w,&l_skinny_ctrl); - - // because, nonce_encryption is called at the last block of AD encryption - l_skinny_ctrl.func_skinny_128_384_enc = skinny_128_384_enc1_1; - - // Tag generation - g8A(s, T); - - m = m - mlen; - - reset_lfsr_gf56(CNT); - - *((unsigned int *)&s[0]) = *((unsigned int *)&T[0]); - *((unsigned int *)&s[4]) = *((unsigned int *)&T[4]); - *((unsigned int *)&s[8]) = *((unsigned int *)&T[8]); - *((unsigned int *)&s[12]) = *((unsigned int *)&T[12]); - - *clen = mlen + 16; - - if (mlen > 0) { - nonce_encryption(N,CNT,s,k,36,&l_skinny_ctrl); - while (mlen > 16) { - mlen = msg_encryption(&m,&c,N,CNT,s,k,36,mlen,&l_skinny_ctrl); - } - rho_ud16(m, c, s, mlen, 16); - c = c + mlen; - m = m + mlen; - } - - // Tag Concatenation - - // use byte access because of memory alignment. - // c is not always in word(4 byte) alignment. - - for (int i = 0; i < 16; i = i + 1) { - *(c + i) = T[i]; - } - - c = c - *clen; - - return 0; -} - -int crypto_aead_decrypt( -unsigned char *m,unsigned long long *mlen, -unsigned char *nsec, -const unsigned char *c,unsigned long long clen, -const unsigned char *ad,unsigned long long adlen, -const unsigned char *npub, -const unsigned char *k -) -{ - unsigned char s[16]; - unsigned char CNT[8]; // size 7 -> 8 for word access - unsigned char T[16]; - const unsigned char* N; - unsigned char w; - unsigned long long xlen; - const unsigned char* mauth; - - skinny_ctrl l_skinny_ctrl; - l_skinny_ctrl.func_skinny_128_384_enc = skinny_128_384_enc123_12; - - (void)nsec; - mauth = m; - - N = npub; - - xlen = clen-16; - - reset_lfsr_gf56(CNT); - - for (int i = 0; i < 16; i++) { - T[i] = *(c + clen - 16 + i); - } - - *((unsigned int *)&s[0]) = *((unsigned int *)&T[0]); - *((unsigned int *)&s[4]) = *((unsigned int *)&T[4]); - *((unsigned int *)&s[8]) = *((unsigned int *)&T[8]); - *((unsigned int *)&s[12]) = *((unsigned int *)&T[12]); - - clen = clen - 16; - *mlen = clen; - - if (clen > 0) { - nonce_encryption(N,CNT,s,k,36,&l_skinny_ctrl); - while (clen > 16) { - clen = msg_decryption(&m,&c,N,CNT,s,k,36,clen,&l_skinny_ctrl); - } - irho(m, c, s, clen, 16); - c = c + clen; - m = m + clen; - } - - *((unsigned int *)&s[0]) = 0x00000000; - *((unsigned int *)&s[4]) = 0x00000000; - *((unsigned int *)&s[8]) = 0x00000000; - *((unsigned int *)&s[12]) = 0x00000000; - reset_lfsr_gf56(CNT); - - w = 48; - - if (adlen == 0) { - w = w ^ 2; - if (xlen == 0) { - w =w ^ 1; - } - else if (xlen%(32) == 0) { - w = w ^ 4; - } - else if (xlen%(32) < 16) { - w = w ^ 1; - } - else if (xlen%(32) == 16) { - w = w ^ 0; - } - else { - w = w ^ 5; - } - } - else if (adlen%(32) == 0) { - w = w ^ 8; - if (xlen == 0) { - w =w ^ 1; - } - else if (xlen%(32) == 0) { - w = w ^ 4; - } - else if (xlen%(32) < 16) { - w = w ^ 1; - } - else if (xlen%(32) == 16) { - w = w ^ 0; - } - else { - w = w ^ 5; - } - } - else if (adlen%(32) < 16) { - w = w ^ 2; - if (xlen == 0) { - w =w ^ 1; - } - else if (xlen%(32) == 0) { - w = w ^ 4; - } - else if (xlen%(32) < 16) { - w = w ^ 1; - } - else if (xlen%(32) == 16) { - w = w ^ 0; - } - else { - w = w ^ 5; - } - } - else if (adlen%(32) == 16) { - w = w ^ 0; - if (xlen == 0) { - w =w ^ 1; - } - else if (xlen%(32) == 0) { - w = w ^ 4; - } - else if (xlen%(32) < 16) { - w = w ^ 1; - } - else if (xlen%(32) == 16) { - w = w ^ 0; - } - else { - w = w ^ 5; - } - } - else { - w = w ^ 10; - if (xlen == 0) { - w =w ^ 1; - } - else if (xlen%(32) == 0) { - w = w ^ 4; - } - else if (xlen%(32) < 16) { - w = w ^ 1; - } - else if (xlen%(32) == 16) { - w = w ^ 0; - } - else { - w = w ^ 5; - } - } - - if (adlen == 0) { // AD is an empty string - lfsr_gf56(CNT); - } - else while (adlen > 0) { - adlen = ad_encryption(&ad,s,k,adlen,CNT,40,&l_skinny_ctrl); - } - - if ((w & 8) == 0) { - xlen = ad2msg_encryption (&mauth,CNT,s,k,44,xlen,&l_skinny_ctrl); - } - else if (clen == 0) { - lfsr_gf56(CNT); - } - while (xlen > 0) { - xlen = ad_encryption(&mauth,s,k,xlen,CNT,44,&l_skinny_ctrl); - } - nonce_encryption(N,CNT,s,k,w,&l_skinny_ctrl); - - // Tag generation - g8A_for_Tag_Generation(s, T); - for (int i = 0; i < 16; i++) { - if (T[i] != (*(c+i))) { - return -1; - } - } - - return 0; -} diff --git a/romulus/Implementations/crypto_aead/romulusm1v12/armsrc_NEC/genkat_aead.c b/romulus/Implementations/crypto_aead/romulusm1v12/armsrc_NEC/genkat_aead.c deleted file mode 100644 index 21f840f..0000000 --- a/romulus/Implementations/crypto_aead/romulusm1v12/armsrc_NEC/genkat_aead.c +++ /dev/null @@ -1,161 +0,0 @@ -// -// NIST-developed software is provided by NIST as a public service. -// You may use, copy and distribute copies of the software in any medium, -// provided that you keep intact this entire notice. You may improve, -// modify and create derivative works of the software or any portion of -// the software, and you may copy and distribute such modifications or -// works. Modified works should carry a notice stating that you changed -// the software and should note the date and nature of any such change. -// Please explicitly acknowledge the National Institute of Standards and -// Technology as the source of the software. -// -// NIST-developed software is expressly provided "AS IS." NIST MAKES NO -// WARRANTY OF ANY KIND, EXPRESS, IMPLIED, IN FACT OR ARISING BY OPERATION -// OF LAW, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTY OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT AND DATA ACCURACY. NIST -// NEITHER REPRESENTS NOR WARRANTS THAT THE OPERATION OF THE SOFTWARE WILL BE -// UNINTERRUPTED OR ERROR-FREE, OR THAT ANY DEFECTS WILL BE CORRECTED. NIST -// DOES NOT WARRANT OR MAKE ANY REPRESENTATIONS REGARDING THE USE OF THE SOFTWARE -// OR THE RESULTS THEREOF, INCLUDING BUT NOT LIMITED TO THE CORRECTNESS, ACCURACY, -// RELIABILITY, OR USEFULNESS OF THE SOFTWARE. -// -// You are solely responsible for determining the appropriateness of using and -// distributing the software and you assume all risks associated with its use, -// including but not limited to the risks and costs of program errors, compliance -// with applicable laws, damage to or loss of data, programs or equipment, and -// the unavailability or interruption of operation. This software is not intended -// to be used in any situation where a failure could cause risk of injury or -// damage to property. The software developed by NIST employees is not subject to -// copyright protection within the United States. -// - -// disable deprecation for sprintf and fopen -#ifdef _MSC_VER -#define _CRT_SECURE_NO_WARNINGS -#endif - -#include -#include - -#include "crypto_aead.h" -#include "api.h" - -#define KAT_SUCCESS 0 -#define KAT_FILE_OPEN_ERROR -1 -#define KAT_DATA_ERROR -3 -#define KAT_CRYPTO_FAILURE -4 - -#define MAX_FILE_NAME 256 -#define MAX_MESSAGE_LENGTH 32 -#define MAX_ASSOCIATED_DATA_LENGTH 32 - -void init_buffer(unsigned char *buffer, unsigned long long numbytes); - -void fprint_bstr(FILE *fp, const char *label, const unsigned char *data, unsigned long long length); - -int generate_test_vectors(); - -int main() -{ - int ret = generate_test_vectors(); - - if (ret != KAT_SUCCESS) { - fprintf(stderr, "test vector generation failed with code %d\n", ret); - } - - return ret; -} - -int generate_test_vectors() -{ - FILE *fp; - char fileName[MAX_FILE_NAME]; - unsigned char key[CRYPTO_KEYBYTES]; - unsigned char nonce[CRYPTO_NPUBBYTES]; - unsigned char msg[MAX_MESSAGE_LENGTH]; - unsigned char msg2[MAX_MESSAGE_LENGTH]; - unsigned char ad[MAX_ASSOCIATED_DATA_LENGTH]; - unsigned char ct[MAX_MESSAGE_LENGTH + CRYPTO_ABYTES]; - unsigned long long clen, mlen2; - int count = 1; - int func_ret, ret_val = KAT_SUCCESS; - - init_buffer(key, sizeof(key)); - init_buffer(nonce, sizeof(nonce)); - init_buffer(msg, sizeof(msg)); - init_buffer(ad, sizeof(ad)); - - sprintf(fileName, "LWC_AEAD_KAT_%d_%d.txt", (CRYPTO_KEYBYTES * 8), (CRYPTO_NPUBBYTES * 8)); - - if ((fp = fopen(fileName, "w")) == NULL) { - fprintf(stderr, "Couldn't open <%s> for write\n", fileName); - return KAT_FILE_OPEN_ERROR; - } - - for (unsigned long long mlen = 0; (mlen <= MAX_MESSAGE_LENGTH) && (ret_val == KAT_SUCCESS); mlen++) { - for (unsigned long long adlen = 0; adlen <= MAX_ASSOCIATED_DATA_LENGTH; adlen++) { - - printf("%0d\n", (int)clen); - - fprintf(fp, "Count = %d\n", count++); - printf("Count = %d\n", count - 1); - - fprint_bstr(fp, "Key = ", key, CRYPTO_KEYBYTES); - - fprint_bstr(fp, "Nonce = ", nonce, CRYPTO_NPUBBYTES); - - fprint_bstr(fp, "PT = ", msg, mlen); - - fprint_bstr(fp, "AD = ", ad, adlen); - - if ((func_ret = crypto_aead_encrypt(ct, &clen, msg, mlen, ad, adlen, NULL, nonce, key)) != 0) { - fprintf(fp, "crypto_aead_encrypt returned <%d>\n", func_ret); - ret_val = KAT_CRYPTO_FAILURE; - break; - } - - fprint_bstr(fp, "CT = ", ct, clen); - - fprintf(fp, "\n"); - - if ((func_ret = crypto_aead_decrypt(msg2, &mlen2, NULL, ct, clen, ad, adlen, nonce, key)) != 0) { - fprintf(fp, "crypto_aead_decrypt returned <%d>\n", func_ret); - ret_val = KAT_CRYPTO_FAILURE; - break; - } - - if (mlen != mlen2) { - fprintf(fp, "crypto_aead_decrypt returned bad 'mlen': Got <%llu>, expected <%llu>\n", mlen2, mlen); - ret_val = KAT_CRYPTO_FAILURE; - break; - } - - if (memcmp(msg, msg2, mlen)) { - fprintf(fp, "crypto_aead_decrypt did not recover the plaintext\n"); - ret_val = KAT_CRYPTO_FAILURE; - break; - } - } - } - - fclose(fp); - - return ret_val; -} - - -void fprint_bstr(FILE *fp, const char *label, const unsigned char *data, unsigned long long length) -{ - fprintf(fp, "%s", label); - - for (unsigned long long i = 0; i < length; i++) - fprintf(fp, "%02X", data[i]); - - fprintf(fp, "\n"); -} - -void init_buffer(unsigned char *buffer, unsigned long long numbytes) -{ - for (unsigned long long i = 0; i < numbytes; i++) - buffer[i] = (unsigned char)i; -} diff --git a/romulus/Implementations/crypto_aead/romulusm1v12/armsrc_NEC/skinny.h b/romulus/Implementations/crypto_aead/romulusm1v12/armsrc_NEC/skinny.h deleted file mode 100644 index 6392b0f..0000000 --- a/romulus/Implementations/crypto_aead/romulusm1v12/armsrc_NEC/skinny.h +++ /dev/null @@ -1,8 +0,0 @@ -typedef struct ___skinny_ctrl { - unsigned char roundKeys[960]; // number of round : 56 - void (*func_skinny_128_384_enc)(unsigned char*, struct ___skinny_ctrl*, unsigned char* CNT, unsigned char* T, const unsigned char* K); -} skinny_ctrl; - -extern void skinny_128_384_enc123_12 (unsigned char* input, skinny_ctrl* pskinny_ctrl, unsigned char* CNT, unsigned char* T, const unsigned char* K); -extern void skinny_128_384_enc12_12 (unsigned char* input, skinny_ctrl* pskinny_ctrl, unsigned char* CNT, unsigned char* T, const unsigned char* K); -extern void skinny_128_384_enc1_1 (unsigned char* input, skinny_ctrl* pskinny_ctrl, unsigned char* CNT, unsigned char* T, const unsigned char* K); diff --git a/romulus/Implementations/crypto_aead/romulusm1v12/armsrc_NEC/skinny_key_schedule2.c b/romulus/Implementations/crypto_aead/romulusm1v12/armsrc_NEC/skinny_key_schedule2.c deleted file mode 100644 index 58006f2..0000000 --- a/romulus/Implementations/crypto_aead/romulusm1v12/armsrc_NEC/skinny_key_schedule2.c +++ /dev/null @@ -1,3027 +0,0 @@ -/****************************************************************************** - * Copyright (c) 2020, NEC Corporation. - * - * THIS CODE IS FURNISHED TO YOU "AS IS" WITHOUT WARRANTY OF ANY KIND. - * - *****************************************************************************/ - -/* - * SKINNY-128-384 - * - * load * AC(c0 c1) ^ TK3 - * calc AC(c0 c1) ^ TK2 -> store - * ART(TK2) - * - * number of rounds : 56 - */ - -__attribute__((aligned(4))) -void RunEncryptionKeyScheduleTK2(unsigned char *roundKeys) -{ - // r0 : points to roundKeys(& masterKey) - // r1-r4 : key state - // r5-r6 : temp use - // r7 : constant(0xfefefefe) - // r8 : constant(0x01010101) - // r9 : temp use - // r10 : temp use - asm volatile( - "stmdb sp!, {r4-r10} \n\t" - "ldr.w r1, [r0,#16] \n\t" // load master key - "ldr.w r2, [r0,#20] \n\t" // load master key - "ldr.w r3, [r0,#24] \n\t" // load master key - "ldr.w r4, [r0,#28] \n\t" // load master key - "mov.w r7, #0xfefefefe \n\t" - "mov.w r8, #0x01010101 \n\t" - - // round 1 - - "ldr.w r9, [r0,#512] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#516] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#64] \n\t" - "str.w r10, [r0,#68] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 2 - - "ldr.w r9, [r0,#520] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#524] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#72] \n\t" - "str.w r10, [r0,#76] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 3 - - "ldr.w r9, [r0,#528] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#532] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#80] \n\t" - "str.w r10, [r0,#84] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 4 - - "ldr.w r9, [r0,#536] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#540] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#88] \n\t" - "str.w r10, [r0,#92] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 5 - - "ldr.w r9, [r0,#544] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#548] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#96] \n\t" - "str.w r10, [r0,#100] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 6 - - "ldr.w r9, [r0,#552] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#556] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#104] \n\t" - "str.w r10, [r0,#108] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 7 - - "ldr.w r9, [r0,#560] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#564] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#112] \n\t" - "str.w r10, [r0,#116] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 8 - - "ldr.w r9, [r0,#568] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#572] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#120] \n\t" - "str.w r10, [r0,#124] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 9 - - "ldr.w r9, [r0,#576] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#580] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#128] \n\t" - "str.w r10, [r0,#132] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 10 - - "ldr.w r9, [r0,#584] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#588] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#136] \n\t" - "str.w r10, [r0,#140] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 11 - - "ldr.w r9, [r0,#592] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#596] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#144] \n\t" - "str.w r10, [r0,#148] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 12 - - "ldr.w r9, [r0,#600] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#604] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#152] \n\t" - "str.w r10, [r0,#156] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 13 - - "ldr.w r9, [r0,#608] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#612] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#160] \n\t" - "str.w r10, [r0,#164] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 14 - - "ldr.w r9, [r0,#616] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#620] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#168] \n\t" - "str.w r10, [r0,#172] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 15 - - "ldr.w r9, [r0,#624] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#628] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#176] \n\t" - "str.w r10, [r0,#180] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 16 - - "ldr.w r9, [r0,#632] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#636] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#184] \n\t" - "str.w r10, [r0,#188] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 17 - - "ldr.w r9, [r0,#640] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#644] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#192] \n\t" - "str.w r10, [r0,#196] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 18 - - "ldr.w r9, [r0,#648] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#652] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#200] \n\t" - "str.w r10, [r0,#204] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 19 - - "ldr.w r9, [r0,#656] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#660] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#208] \n\t" - "str.w r10, [r0,#212] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 20 - - "ldr.w r9, [r0,#664] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#668] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#216] \n\t" - "str.w r10, [r0,#220] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 21 - - "ldr.w r9, [r0,#672] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#676] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#224] \n\t" - "str.w r10, [r0,#228] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 22 - - "ldr.w r9, [r0,#680] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#684] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#232] \n\t" - "str.w r10, [r0,#236] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 23 - - "ldr.w r9, [r0,#688] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#692] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#240] \n\t" - "str.w r10, [r0,#244] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 24 - - "ldr.w r9, [r0,#696] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#700] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#248] \n\t" - "str.w r10, [r0,#252] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 25 - - "ldr.w r9, [r0,#704] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#708] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#256] \n\t" - "str.w r10, [r0,#260] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 26 - - "ldr.w r9, [r0,#712] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#716] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#264] \n\t" - "str.w r10, [r0,#268] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 27 - - "ldr.w r9, [r0,#720] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#724] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#272] \n\t" - "str.w r10, [r0,#276] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 28 - - "ldr.w r9, [r0,#728] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#732] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#280] \n\t" - "str.w r10, [r0,#284] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 29 - - "ldr.w r9, [r0,#736] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#740] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#288] \n\t" - "str.w r10, [r0,#292] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 30 - - "ldr.w r9, [r0,#744] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#748] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#296] \n\t" - "str.w r10, [r0,#300] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 31 - - "ldr.w r9, [r0,#752] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#756] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#304] \n\t" - "str.w r10, [r0,#308] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 32 - - "ldr.w r9, [r0,#760] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#764] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#312] \n\t" - "str.w r10, [r0,#316] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 33 - - "ldr.w r9, [r0,#768] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#772] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#320] \n\t" - "str.w r10, [r0,#324] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 34 - - "ldr.w r9, [r0,#776] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#780] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#328] \n\t" - "str.w r10, [r0,#332] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 35 - - "ldr.w r9, [r0,#784] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#788] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#336] \n\t" - "str.w r10, [r0,#340] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 36 - - "ldr.w r9, [r0,#792] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#796] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#344] \n\t" - "str.w r10, [r0,#348] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 37 - - "ldr.w r9, [r0,#800] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#804] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#352] \n\t" - "str.w r10, [r0,#356] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 38 - - "ldr.w r9, [r0,#808] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#812] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#360] \n\t" - "str.w r10, [r0,#364] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 39 - - "ldr.w r9, [r0,#816] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#820] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#368] \n\t" - "str.w r10, [r0,#372] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 40 - - "ldr.w r9, [r0,#824] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#828] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#376] \n\t" - "str.w r10, [r0,#380] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 41 - - "ldr.w r9, [r0,#832] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#836] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#384] \n\t" - "str.w r10, [r0,#388] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 42 - - "ldr.w r9, [r0,#840] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#844] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#392] \n\t" - "str.w r10, [r0,#396] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 43 - - "ldr.w r9, [r0,#848] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#852] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#400] \n\t" - "str.w r10, [r0,#404] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 44 - - "ldr.w r9, [r0,#856] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#860] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#408] \n\t" - "str.w r10, [r0,#412] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 45 - - "ldr.w r9, [r0,#864] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#868] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#416] \n\t" - "str.w r10, [r0,#420] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 46 - - "ldr.w r9, [r0,#872] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#876] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#424] \n\t" - "str.w r10, [r0,#428] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 47 - - "ldr.w r9, [r0,#880] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#884] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#432] \n\t" - "str.w r10, [r0,#436] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 48 - - "ldr.w r9, [r0,#888] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#892] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#440] \n\t" - "str.w r10, [r0,#444] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 49 - - "ldr.w r9, [r0,#896] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#900] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#448] \n\t" - "str.w r10, [r0,#452] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 50 - - "ldr.w r9, [r0,#904] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#908] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#456] \n\t" - "str.w r10, [r0,#460] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 51 - - "ldr.w r9, [r0,#912] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#916] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#464] \n\t" - "str.w r10, [r0,#468] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 52 - - "ldr.w r9, [r0,#920] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#924] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#472] \n\t" - "str.w r10, [r0,#476] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 53 - - "ldr.w r9, [r0,#928] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#932] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#480] \n\t" - "str.w r10, [r0,#484] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 54 - - "ldr.w r9, [r0,#936] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#940] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#488] \n\t" - "str.w r10, [r0,#492] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 55 - - "ldr.w r9, [r0,#944] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#948] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#496] \n\t" - "str.w r10, [r0,#500] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 56 - - "ldr.w r9, [r0,#952] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#956] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#504] \n\t" - "str.w r10, [r0,#508] \n\t" - - // permutation - - // not need to calculate (not used) - - "ldmia.w sp!, {r4-r10} \n\t" - : - : [roundKeys] "r" (roundKeys) - : "cc"); -} diff --git a/romulus/Implementations/crypto_aead/romulusm1v12/armsrc_NEC/skinny_key_schedule3.c b/romulus/Implementations/crypto_aead/romulusm1v12/armsrc_NEC/skinny_key_schedule3.c deleted file mode 100644 index 81c4406..0000000 --- a/romulus/Implementations/crypto_aead/romulusm1v12/armsrc_NEC/skinny_key_schedule3.c +++ /dev/null @@ -1,2898 +0,0 @@ -/****************************************************************************** - * Copyright (c) 2020, NEC Corporation. - * - * THIS CODE IS FURNISHED TO YOU "AS IS" WITHOUT WARRANTY OF ANY KIND. - * - *****************************************************************************/ - -/* - * SKINNY-128-384 - * - * AC(c0 c1) ^ TK3 -> store - * ART(TK3) - * - * number of rounds : 56 - */ - -__attribute__((aligned(4))) -void RunEncryptionKeyScheduleTK3(unsigned char *roundKeys, unsigned char *pRC) -{ - // r0 : points to roundKeys(& masterKey) - // r1 : points to RC - // r2-r5 : key state - // r6-r7 : temp use - // r8 : constant(0x7f7f7f7f) - // r9 : constant(0x80808080) - asm volatile( - "stmdb sp!, {r4-r9} \n\t" - "ldr.w r2, [r0,#32] \n\t" // load master key - "ldr.w r3, [r0,#36] \n\t" // load master key - "ldr.w r4, [r0,#40] \n\t" // load master key - "ldr.w r5, [r0,#44] \n\t" // load master key - "mov.w r8, #0x7f7f7f7f \n\t" - "mov.w r9, #0x80808080 \n\t" - - // round 1 - - // AC(c0 c1) - "eor.w r6, r2, #0x1 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#512] \n\t" - "str.w r3, [r0,#516] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 2 - - // AC(c0 c1) - "eor.w r6, r2, #0x3 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#520] \n\t" - "str.w r3, [r0,#524] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 3 - - // AC(c0 c1) - "eor.w r6, r2, #0x7 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#528] \n\t" - "str.w r3, [r0,#532] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 4 - - // AC(c0 c1) - "eor.w r6, r2, #0xf \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#536] \n\t" - "str.w r3, [r0,#540] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 5 - - // AC(c0 c1) - "eor.w r6, r2, #0xf \n\t" // k0^rc - "eor.w r7, r3, #0x1 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#544] \n\t" - "str.w r7, [r0,#548] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 6 - - // AC(c0 c1) - "eor.w r7, r3, #0x3 \n\t" // k0^rc - "eor.w r6, r2, #0xe \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#552] \n\t" - "str.w r7, [r0,#556] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 7 - - // AC(c0 c1) - "eor.w r7, r3, #0x3 \n\t" // k0^rc - "eor.w r6, r2, #0xd \n\t" // k0^rc - - - // round key store - "str.w r6, [r0,#560] \n\t" - "str.w r7, [r0,#564] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 8 - - // AC(c0 c1) - "eor.w r7, r3, #0x3 \n\t" // k0^rc - "eor.w r6, r2, #0xb \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#568] \n\t" - "str.w r7, [r0,#572] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 9 - - // AC(c0 c1) - "eor.w r7, r3, #0x3 \n\t" // k0^rc - "eor.w r6, r2, #0x7 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#576] \n\t" - "str.w r7, [r0,#580] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 10 - - // AC(c0 c1) - "eor.w r7, r3, #0x2 \n\t" // k0^rc - "eor.w r6, r2, #0xf \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#584] \n\t" - "str.w r7, [r0,#588] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 11 - - // AC(c0 c1) - "eor.w r7, r3, #0x1 \n\t" // k0^rc - "eor.w r6, r2, #0xe \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#592] \n\t" - "str.w r7, [r0,#596] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 12 - - // AC(c0 c1) - "eor.w r7, r3, #0x3 \n\t" // k0^rc - "eor.w r6, r2, #0xc \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#600] \n\t" - "str.w r7, [r0,#604] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 13 - - // AC(c0 c1) - "eor.w r7, r3, #0x3 \n\t" // k0^rc - "eor.w r6, r2, #0x9 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#608] \n\t" - "str.w r7, [r0,#612] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 14 - - // AC(c0 c1) - "eor.w r7, r3, #0x3 \n\t" // k0^rc - "eor.w r6, r2, #0x3 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#616] \n\t" - "str.w r7, [r0,#620] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 15 - - // AC(c0 c1) - "eor.w r7, r3, #0x2 \n\t" // k0^rc - "eor.w r6, r2, #0x7 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#624] \n\t" - "str.w r7, [r0,#628] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 16 - - // AC(c0 c1) - "eor.w r6, r2, #0xe \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#632] \n\t" - "str.w r3, [r0,#636] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 17 - - // AC(c0 c1) - "eor.w r7, r3, #0x1 \n\t" // k0^rc - "eor.w r6, r2, #0xd \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#640] \n\t" - "str.w r7, [r0,#644] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 18 - - // AC(c0 c1) - "eor.w r7, r3, #0x3 \n\t" // k0^rc - "eor.w r6, r2, #0xa \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#648] \n\t" - "str.w r7, [r0,#652] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 19 - - // AC(c0 c1) - "eor.w r7, r3, #0x3 \n\t" // k0^rc - "eor.w r6, r2, #0x5 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#656] \n\t" - "str.w r7, [r0,#660] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 20 - - // AC(c0 c1) - "eor.w r7, r3, #0x2 \n\t" // k0^rc - "eor.w r6, r2, #0xb \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#664] \n\t" - "str.w r7, [r0,#668] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 21 - - // AC(c0 c1) - "eor.w r7, r3, #0x1 \n\t" // k0^rc - "eor.w r6, r2, #0x6 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#672] \n\t" - "str.w r7, [r0,#676] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 22 - - // AC(c0 c1) - "eor.w r7, r3, #0x2 \n\t" // k0^rc - "eor.w r6, r2, #0xc \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#680] \n\t" - "str.w r7, [r0,#684] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 23 - - // AC(c0 c1) - "eor.w r7, r3, #0x1 \n\t" // k0^rc - "eor.w r6, r2, #0x8 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#688] \n\t" - "str.w r7, [r0,#692] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 24 - - // AC(c0 c1) - "eor.w r7, r3, #0x3 \n\t" // k0^rc - "eor.w r6, r2, #0x0 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#696] \n\t" - "str.w r7, [r0,#700] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 25 - - // AC(c0 c1) - "eor.w r7, r3, #0x2 \n\t" // k0^rc - "eor.w r6, r2, #0x1 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#704] \n\t" - "str.w r7, [r0,#708] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 26 - - // AC(c0 c1) - "eor.w r6, r2, #0x2 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#712] \n\t" - "str.w r3, [r0,#716] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 27 - - // AC(c0 c1) - "eor.w r6, r2, #0x5 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#720] \n\t" - "str.w r3, [r0,#724] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 28 - - // AC(c0 c1) - "eor.w r6, r2, #0xb \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#728] \n\t" - "str.w r3, [r0,#732] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 29 - - // AC(c0 c1) - "eor.w r7, r3, #0x1 \n\t" // k0^rc - "eor.w r6, r2, #0x7 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#736] \n\t" - "str.w r7, [r0,#740] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 30 - - // AC(c0 c1) - "eor.w r7, r3, #0x2 \n\t" // k0^rc - "eor.w r6, r2, #0xe \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#744] \n\t" - "str.w r7, [r0,#748] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 31 - - // AC(c0 c1) - "eor.w r7, r3, #0x1 \n\t" // k0^rc - "eor.w r6, r2, #0xc \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#752] \n\t" - "str.w r7, [r0,#756] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 32 - - // AC(c0 c1) - "eor.w r7, r3, #0x3 \n\t" // k0^rc - "eor.w r6, r2, #0x8 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#760] \n\t" - "str.w r7, [r0,#764] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 33 - - // AC(c0 c1) - "eor.w r7, r3, #0x3 \n\t" // k0^rc - "eor.w r6, r2, #0x1 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#768] \n\t" - "str.w r7, [r0,#772] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 34 - - // AC(c0 c1) - "eor.w r7, r3, #0x2 \n\t" // k0^rc - "eor.w r6, r2, #0x3 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#776] \n\t" - "str.w r7, [r0,#780] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 35 - - // AC(c0 c1) - "eor.w r6, r2, #0x6 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#784] \n\t" - "str.w r3, [r0,#788] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 36 - - // AC(c0 c1) - "eor.w r6, r2, #0xd \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#792] \n\t" - "str.w r3, [r0,#796] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 37 - - // AC(c0 c1) - "eor.w r7, r3, #0x1 \n\t" // k0^rc - "eor.w r6, r2, #0xb \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#800] \n\t" - "str.w r7, [r0,#804] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 38 - - // AC(c0 c1) - "eor.w r7, r3, #0x3 \n\t" // k0^rc - "eor.w r6, r2, #0x6 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#808] \n\t" - "str.w r7, [r0,#812] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 39 - - // AC(c0 c1) - "eor.w r7, r3, #0x2 \n\t" // k0^rc - "eor.w r6, r2, #0xd \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#816] \n\t" - "str.w r7, [r0,#820] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 40 - - // AC(c0 c1) - "eor.w r7, r3, #0x1 \n\t" // k0^rc - "eor.w r6, r2, #0xa \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#824] \n\t" - "str.w r7, [r0,#828] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 41 - - // AC(c0 c1) - "eor.w r7, r3, #0x3 \n\t" // k0^rc - "eor.w r6, r2, #0x4 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#832] \n\t" - "str.w r7, [r0,#836] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 42 - - // AC(c0 c1) - "eor.w r7, r3, #0x2 \n\t" // k0^rc - "eor.w r6, r2, #0x9 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#840] \n\t" - "str.w r7, [r0,#844] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 43 - - // AC(c0 c1) - "eor.w r7, r3, #0x1 \n\t" // k0^rc - "eor.w r6, r2, #0x2 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#848] \n\t" - "str.w r7, [r0,#852] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 44 - - // AC(c0 c1) - "eor.w r7, r3, #0x2 \n\t" // k0^rc - "eor.w r6, r2, #0x4 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#856] \n\t" - "str.w r7, [r0,#860] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 45 - - // AC(c0 c1) - "eor.w r6, r2, #0x8 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#864] \n\t" - "str.w r3, [r0,#868] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 46 - - // AC(c0 c1) - "eor.w r7, r3, #0x1 \n\t" // k0^rc - "eor.w r6, r2, #0x1 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#872] \n\t" - "str.w r7, [r0,#876] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 47 - - // AC(c0 c1) - "eor.w r7, r3, #0x2 \n\t" // k0^rc - "eor.w r6, r2, #0x2 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#880] \n\t" - "str.w r7, [r0,#884] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 48 - - // AC(c0 c1) - "eor.w r6, r2, #0x4 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#888] \n\t" - "str.w r3, [r0,#892] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 49 - - // AC(c0 c1) - "eor.w r6, r2, #0x9 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#896] \n\t" - "str.w r3, [r0,#900] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 50 - - // AC(c0 c1) - "eor.w r7, r3, #0x1 \n\t" // k0^rc - "eor.w r6, r2, #0x3 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#904] \n\t" - "str.w r7, [r0,#908] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 51 - - // AC(c0 c1) - "eor.w r7, r3, #0x2 \n\t" // k0^rc - "eor.w r6, r2, #0x6 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#912] \n\t" - "str.w r7, [r0,#916] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 52 - - // AC(c0 c1) - "eor.w r6, r2, #0xc \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#920] \n\t" - "str.w r3, [r0,#924] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 53 - - // AC(c0 c1) - "eor.w r7, r3, #0x1 \n\t" // k0^rc - "eor.w r6, r2, #0x9 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#928] \n\t" - "str.w r7, [r0,#932] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 54 - - // AC(c0 c1) - "eor.w r7, r3, #0x3 \n\t" // k0^rc - "eor.w r6, r2, #0x2 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#936] \n\t" - "str.w r7, [r0,#940] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 55 - - // AC(c0 c1) - "eor.w r7, r3, #0x2 \n\t" // k0^rc - "eor.w r6, r2, #0x5 \n\t" // k0^rc - // round key store - "str.w r6, [r0,#944] \n\t" - "str.w r7, [r0,#948] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 56 - - // AC(c0 c1) - "eor.w r6, r2, #0xa \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#952] \n\t" - "str.w r3, [r0,#956] \n\t" - - // permutation - - // not need to calculate (not used) - - "ldmia.w sp!, {r4-r9} \n\t" - : - : [roundKeys] "r" (roundKeys), [pRC] "r" (pRC) - : "cc"); -} diff --git a/romulus/Implementations/crypto_aead/romulusm1v12/armsrc_NEC/skinny_main.c b/romulus/Implementations/crypto_aead/romulusm1v12/armsrc_NEC/skinny_main.c deleted file mode 100644 index 217b8a6..0000000 --- a/romulus/Implementations/crypto_aead/romulusm1v12/armsrc_NEC/skinny_main.c +++ /dev/null @@ -1,4687 +0,0 @@ -/****************************************************************************** - * Copyright (c) 2020, NEC Corporation. - * - * THIS CODE IS FURNISHED TO YOU "AS IS" WITHOUT WARRANTY OF ANY KIND. - * - *****************************************************************************/ - -/* - * SKINNY-128-384 - * - * ART(TK1) -> store - * load AC(c0 c1) ^ TK3 ^ TK2 - * load TK1 - * calc AC(c0 c1) ^ TK3 ^ TK2 ^ TK1 -> use at (AC->ART) - * SC->SR->(AC->ART)->MC - * - * number of rounds : 56 - */ - -#include "skinny.h" - -/* - * S-BOX - */ -unsigned char SBOX[512] -= { - // Original - 0x65, 0x4c, 0x6a, 0x42, 0x4b, 0x63, 0x43, 0x6b, 0x55, 0x75, 0x5a, 0x7a, 0x53, 0x73, 0x5b, 0x7b, - 0x35, 0x8c, 0x3a, 0x81, 0x89, 0x33, 0x80, 0x3b, 0x95, 0x25, 0x98, 0x2a, 0x90, 0x23, 0x99, 0x2b, - 0xe5, 0xcc, 0xe8, 0xc1, 0xc9, 0xe0, 0xc0, 0xe9, 0xd5, 0xf5, 0xd8, 0xf8, 0xd0, 0xf0, 0xd9, 0xf9, - 0xa5, 0x1c, 0xa8, 0x12, 0x1b, 0xa0, 0x13, 0xa9, 0x05, 0xb5, 0x0a, 0xb8, 0x03, 0xb0, 0x0b, 0xb9, - 0x32, 0x88, 0x3c, 0x85, 0x8d, 0x34, 0x84, 0x3d, 0x91, 0x22, 0x9c, 0x2c, 0x94, 0x24, 0x9d, 0x2d, - 0x62, 0x4a, 0x6c, 0x45, 0x4d, 0x64, 0x44, 0x6d, 0x52, 0x72, 0x5c, 0x7c, 0x54, 0x74, 0x5d, 0x7d, - 0xa1, 0x1a, 0xac, 0x15, 0x1d, 0xa4, 0x14, 0xad, 0x02, 0xb1, 0x0c, 0xbc, 0x04, 0xb4, 0x0d, 0xbd, - 0xe1, 0xc8, 0xec, 0xc5, 0xcd, 0xe4, 0xc4, 0xed, 0xd1, 0xf1, 0xdc, 0xfc, 0xd4, 0xf4, 0xdd, 0xfd, - 0x36, 0x8e, 0x38, 0x82, 0x8b, 0x30, 0x83, 0x39, 0x96, 0x26, 0x9a, 0x28, 0x93, 0x20, 0x9b, 0x29, - 0x66, 0x4e, 0x68, 0x41, 0x49, 0x60, 0x40, 0x69, 0x56, 0x76, 0x58, 0x78, 0x50, 0x70, 0x59, 0x79, - 0xa6, 0x1e, 0xaa, 0x11, 0x19, 0xa3, 0x10, 0xab, 0x06, 0xb6, 0x08, 0xba, 0x00, 0xb3, 0x09, 0xbb, - 0xe6, 0xce, 0xea, 0xc2, 0xcb, 0xe3, 0xc3, 0xeb, 0xd6, 0xf6, 0xda, 0xfa, 0xd3, 0xf3, 0xdb, 0xfb, - 0x31, 0x8a, 0x3e, 0x86, 0x8f, 0x37, 0x87, 0x3f, 0x92, 0x21, 0x9e, 0x2e, 0x97, 0x27, 0x9f, 0x2f, - 0x61, 0x48, 0x6e, 0x46, 0x4f, 0x67, 0x47, 0x6f, 0x51, 0x71, 0x5e, 0x7e, 0x57, 0x77, 0x5f, 0x7f, - 0xa2, 0x18, 0xae, 0x16, 0x1f, 0xa7, 0x17, 0xaf, 0x01, 0xb2, 0x0e, 0xbe, 0x07, 0xb7, 0x0f, 0xbf, - 0xe2, 0xca, 0xee, 0xc6, 0xcf, 0xe7, 0xc7, 0xef, 0xd2, 0xf2, 0xde, 0xfe, 0xd7, 0xf7, 0xdf, 0xff, - - // Original ^ c2(0x02) - 0x67, 0x4e, 0x68, 0x40, 0x49, 0x61, 0x41, 0x69, 0x57, 0x77, 0x58, 0x78, 0x51, 0x71, 0x59, 0x79, - 0x37, 0x8e, 0x38, 0x83, 0x8b, 0x31, 0x82, 0x39, 0x97, 0x27, 0x9a, 0x28, 0x92, 0x21, 0x9b, 0x29, - 0xe7, 0xce, 0xea, 0xc3, 0xcb, 0xe2, 0xc2, 0xeb, 0xd7, 0xf7, 0xda, 0xfa, 0xd2, 0xf2, 0xdb, 0xfb, - 0xa7, 0x1e, 0xaa, 0x10, 0x19, 0xa2, 0x11, 0xab, 0x07, 0xb7, 0x08, 0xba, 0x01, 0xb2, 0x09, 0xbb, - 0x30, 0x8a, 0x3e, 0x87, 0x8f, 0x36, 0x86, 0x3f, 0x93, 0x20, 0x9e, 0x2e, 0x96, 0x26, 0x9f, 0x2f, - 0x60, 0x48, 0x6e, 0x47, 0x4f, 0x66, 0x46, 0x6f, 0x50, 0x70, 0x5e, 0x7e, 0x56, 0x76, 0x5f, 0x7f, - 0xa3, 0x18, 0xae, 0x17, 0x1f, 0xa6, 0x16, 0xaf, 0x00, 0xb3, 0x0e, 0xbe, 0x06, 0xb6, 0x0f, 0xbf, - 0xe3, 0xca, 0xee, 0xc7, 0xcf, 0xe6, 0xc6, 0xef, 0xd3, 0xf3, 0xde, 0xfe, 0xd6, 0xf6, 0xdf, 0xff, - 0x34, 0x8c, 0x3a, 0x80, 0x89, 0x32, 0x81, 0x3b, 0x94, 0x24, 0x98, 0x2a, 0x91, 0x22, 0x99, 0x2b, - 0x64, 0x4c, 0x6a, 0x43, 0x4b, 0x62, 0x42, 0x6b, 0x54, 0x74, 0x5a, 0x7a, 0x52, 0x72, 0x5b, 0x7b, - 0xa4, 0x1c, 0xa8, 0x13, 0x1b, 0xa1, 0x12, 0xa9, 0x04, 0xb4, 0x0a, 0xb8, 0x02, 0xb1, 0x0b, 0xb9, - 0xe4, 0xcc, 0xe8, 0xc0, 0xc9, 0xe1, 0xc1, 0xe9, 0xd4, 0xf4, 0xd8, 0xf8, 0xd1, 0xf1, 0xd9, 0xf9, - 0x33, 0x88, 0x3c, 0x84, 0x8d, 0x35, 0x85, 0x3d, 0x90, 0x23, 0x9c, 0x2c, 0x95, 0x25, 0x9d, 0x2d, - 0x63, 0x4a, 0x6c, 0x44, 0x4d, 0x65, 0x45, 0x6d, 0x53, 0x73, 0x5c, 0x7c, 0x55, 0x75, 0x5d, 0x7d, - 0xa0, 0x1a, 0xac, 0x14, 0x1d, 0xa5, 0x15, 0xad, 0x03, 0xb0, 0x0c, 0xbc, 0x05, 0xb5, 0x0d, 0xbd, - 0xe0, 0xc8, 0xec, 0xc4, 0xcd, 0xe5, 0xc5, 0xed, 0xd0, 0xf0, 0xdc, 0xfc, 0xd5, 0xf5, 0xdd, 0xfd, -}; - -/* - * Round Constants - */ -unsigned char RC[56] -= { - 0x01, 0x03, 0x07, 0x0F, 0x1F, 0x3E, 0x3D, 0x3B, - 0x37, 0x2F, 0x1E, 0x3C, 0x39, 0x33, 0x27, 0x0E, - 0x1D, 0x3A, 0x35, 0x2B, 0x16, 0x2C, 0x18, 0x30, - 0x21, 0x02, 0x05, 0x0B, 0x17, 0x2E, 0x1C, 0x38, - 0x31, 0x23, 0x06, 0x0D, 0x1B, 0x36, 0x2D, 0x1A, - 0x34, 0x29, 0x12, 0x24, 0x08, 0x11, 0x22, 0x04, - 0x09, 0x13, 0x26, 0x0c, 0x19, 0x32, 0x25, 0x0a,}; - -extern void Encrypt(unsigned char *block, unsigned char *roundKeys, unsigned char *pSBOX) __attribute__((noinline)); -extern void RunEncryptionKeyScheduleTK2(unsigned char *roundKeys) __attribute__((noinline)); -extern void RunEncryptionKeyScheduleTK3(unsigned char *roundKeys, unsigned char *pRC) __attribute__((noinline)); - -void skinny_128_384_enc123_12 (unsigned char* input, skinny_ctrl* pskinny_ctrl, unsigned char* CNT, unsigned char* T, const unsigned char* K) -{ - *((unsigned int *)&pskinny_ctrl->roundKeys[0] ) = *((unsigned int *)&CNT[0]); - *((unsigned int *)&pskinny_ctrl->roundKeys[4] ) = *((unsigned int *)&CNT[4]); - *((unsigned int *)&pskinny_ctrl->roundKeys[16]) = *((unsigned int *)&T[0]); - *((unsigned int *)&pskinny_ctrl->roundKeys[20]) = *((unsigned int *)&T[4]); - *((unsigned int *)&pskinny_ctrl->roundKeys[24]) = *((unsigned int *)&T[8]); - *((unsigned int *)&pskinny_ctrl->roundKeys[28]) = *((unsigned int *)&T[12]); - *((unsigned int *)&pskinny_ctrl->roundKeys[32]) = *((unsigned int *)&K[0]); - *((unsigned int *)&pskinny_ctrl->roundKeys[36]) = *((unsigned int *)&K[4]); - *((unsigned int *)&pskinny_ctrl->roundKeys[40]) = *((unsigned int *)&K[8]); - *((unsigned int *)&pskinny_ctrl->roundKeys[44]) = *((unsigned int *)&K[12]); - - RunEncryptionKeyScheduleTK3(pskinny_ctrl->roundKeys, RC); - RunEncryptionKeyScheduleTK2(pskinny_ctrl->roundKeys); - Encrypt(input, pskinny_ctrl->roundKeys, SBOX); - - pskinny_ctrl->func_skinny_128_384_enc = skinny_128_384_enc12_12; -} - -void skinny_128_384_enc12_12 (unsigned char* input, skinny_ctrl* pskinny_ctrl, unsigned char* CNT, unsigned char* T, const unsigned char* K) -{ - (void)K; - - *((unsigned int *)&pskinny_ctrl->roundKeys[0] ) = *((unsigned int *)&CNT[0]); - *((unsigned int *)&pskinny_ctrl->roundKeys[4] ) = *((unsigned int *)&CNT[4]); - *((unsigned int *)&pskinny_ctrl->roundKeys[16]) = *((unsigned int *)&T[0]); - *((unsigned int *)&pskinny_ctrl->roundKeys[20]) = *((unsigned int *)&T[4]); - *((unsigned int *)&pskinny_ctrl->roundKeys[24]) = *((unsigned int *)&T[8]); - *((unsigned int *)&pskinny_ctrl->roundKeys[28]) = *((unsigned int *)&T[12]); - - RunEncryptionKeyScheduleTK2(pskinny_ctrl->roundKeys); - Encrypt(input, pskinny_ctrl->roundKeys, SBOX); -} - -extern void skinny_128_384_enc1_1 (unsigned char* input, skinny_ctrl* pskinny_ctrl, unsigned char* CNT, unsigned char* T, const unsigned char* K) -{ - (void)T; - (void)K; - - *((unsigned int *)&pskinny_ctrl->roundKeys[0] ) = *((unsigned int *)&CNT[0]); - *((unsigned int *)&pskinny_ctrl->roundKeys[4] ) = *((unsigned int *)&CNT[4]); - - Encrypt(input, pskinny_ctrl->roundKeys, SBOX); -} - -__attribute__((aligned(4))) -void Encrypt(unsigned char *block, unsigned char *roundKeys, unsigned char *pSBOX) -{ - // r0 : ponits to plaintext - // r1 : points to roundKeys(& masterKey) - // r2 : points to SBOX - // r3-r6 : cipher state - // r7-r12: temp use - // r14 : temp use - asm volatile( - "stmdb sp!, {r4-r12,r14} \n\t" - "stmdb.w sp!, {r0} \n\t" // push store pointer - -// ART(TK1) - - "ldm.w r1, {r3-r4} \n\t" // load master key - - // round 1-2 - -// // round key store(do not need) -// "str.w r3, [r1,#0] \n\t" -// "str.w r4, [r1,#4] \n\t" - - // premutation - - // r3 ( k3 k2 k1 k0) --- --- --- --- - // r4 ( k7 k6 k5 k4) --- --- --- --- - // r5 (--- --- --- ---) -----> k5 k0 k7 k1 - // r6 (--- --- --- ---) k3 k4 k6 k2 -#ifdef STM32F4 // for Cortex-M4 - "ror.w r5,r4, #16 \n\t" // r5( k5 k4 k7 k6) - "bfi.w r5,r3, #16,#8 \n\t" // r5( k5 k0 k7 k6) - "pkhtb.w r6,r3, r3, asr #16 \n\t" // r6( k3 k2 k3 k2) - "ror.w r3, #8 \n\t" // r3( k0 k3 k2 k1) - "bfi.w r5,r3, #0,#8 \n\t" // r5( k5 k4 k2 k6) - "bfi.w r6,r4, #16,#8 \n\t" // r6( k3 k4 k3 k2) - "ror.w r4,#16 \n\t" // r4( k5 k4 k7 k6) - "bfi.w r6,r4, #8,#8 \n\t" // r6( k3 k4 k6 k2) -#else // for Cortex-M3 - "rev.w r5, r4 \n\t" // r5( k4 k5 k6 k7) - "lsl.w r5, r5, #8 \n\t" // r5( k5 k6 k7 ---) - "bfi.w r5,r3, #16,#8 \n\t" // r5( k5 k0 k7 ---) - "lsr.w r3, r3, #8 \n\t" // r3(--- k3 k2 k1) - "bfi.w r5,r3, #0, #8 \n\t" // r5( k5 k0 k7 k1) - "rev16.w r6, r3 \n\t" // r6( k3 --- k1 k2) - "bfi.w r6,r4, #16,#8 \n\t" // r6( k3 k4 k1 k2) - "lsr.w r4, r4, #16 \n\t" // r4(-- --- k7 k6) - "bfi.w r6,r4, #8, #8 \n\t" // r6( k3 k4 k6 k2) -#endif - // round 3-4 - - // round key store - "str.w r5, [r1,#8] \n\t" - "str.w r6, [r1,#12] \n\t" - - // premutation - - // r3 (--- --- --- ---) k5 k0 k7 k1 - // r4 (--- --- --- ---) k3 k4 k6 k2 - // r5 ( k3 k2 k1 k0) -----> --- --- --- --- - // r6 ( k7 k6 k5 k4) --- --- --- --- -#ifdef STM32F4 // for Cortex-M4 - "ror.w r3,r6, #16 \n\t" // r3( k5 k4 k7 k6) - "bfi.w r3,r5, #16,#8 \n\t" // r3( k5 k0 k7 k6) - "pkhtb.w r4,r5, r5, asr #16 \n\t" // r4( k3 k2 k3 k2) - "ror.w r5, #8 \n\t" // r5( k0 k3 k2 k1) - "bfi.w r3,r5, #0,#8 \n\t" // r3( k5 k4 k2 k6) - "bfi.w r4,r6, #16,#8 \n\t" // r4( k3 k4 k3 k2) - "ror.w r6,#16 \n\t" // r6( k5 k4 k7 k6) - "bfi.w r4,r6, #8,#8 \n\t" // r4( k3 k4 k6 k2) -#else // for Cortex-M3 - "rev.w r3, r6 \n\t" // r3( k4 k5 k6 k7) - "lsl.w r3, r3, #8 \n\t" // r3( k5 k6 k7 ---) - "bfi.w r3,r5, #16,#8 \n\t" // r3( k5 k0 k7 ---) - "lsr.w r5, r5, #8 \n\t" // r5(--- k3 k2 k1) - "bfi.w r3,r5, #0, #8 \n\t" // r3( k5 k0 k7 k1) - "rev16.w r4, r5 \n\t" // r4( k3 --- k1 k2) - "bfi.w r4,r6, #16,#8 \n\t" // r4( k3 k4 k1 k2) - "lsr.w r6, r6, #16 \n\t" // r6(-- --- k7 k6) - "bfi.w r4,r6, #8, #8 \n\t" // r4( k3 k4 k6 k2) -#endif - - // round 5-6 - - // round key store - "str.w r3, [r1,#16] \n\t" - "str.w r4, [r1,#20] \n\t" - - // premutation - - // r3 ( k3 k2 k1 k0) --- --- --- --- - // r4 ( k7 k6 k5 k4) --- --- --- --- - // r5 (--- --- --- ---) -----> k5 k0 k7 k1 - // r6 (--- --- --- ---) k3 k4 k6 k2 -#ifdef STM32F4 // for Cortex-M4 - "ror.w r5,r4, #16 \n\t" // r5( k5 k4 k7 k6) - "bfi.w r5,r3, #16,#8 \n\t" // r5( k5 k0 k7 k6) - "pkhtb.w r6,r3, r3, asr #16 \n\t" // r6( k3 k2 k3 k2) - "ror.w r3, #8 \n\t" // r3( k0 k3 k2 k1) - "bfi.w r5,r3, #0,#8 \n\t" // r5( k5 k4 k2 k6) - "bfi.w r6,r4, #16,#8 \n\t" // r6( k3 k4 k3 k2) - "ror.w r4,#16 \n\t" // r4( k5 k4 k7 k6) - "bfi.w r6,r4, #8,#8 \n\t" // r6( k3 k4 k6 k2) -#else // for Cortex-M3 - "rev.w r5, r4 \n\t" // r5( k4 k5 k6 k7) - "lsl.w r5, r5, #8 \n\t" // r5( k5 k6 k7 ---) - "bfi.w r5,r3, #16,#8 \n\t" // r5( k5 k0 k7 ---) - "lsr.w r3, r3, #8 \n\t" // r3(--- k3 k2 k1) - "bfi.w r5,r3, #0, #8 \n\t" // r5( k5 k0 k7 k1) - "rev16.w r6, r3 \n\t" // r6( k3 --- k1 k2) - "bfi.w r6,r4, #16,#8 \n\t" // r6( k3 k4 k1 k2) - "lsr.w r4, r4, #16 \n\t" // r4(-- --- k7 k6) - "bfi.w r6,r4, #8, #8 \n\t" // r6( k3 k4 k6 k2) -#endif - // round 7-8 - - // round key store - "str.w r5, [r1,#24] \n\t" - "str.w r6, [r1,#28] \n\t" - - // premutation - - // r3 (--- --- --- ---) k5 k0 k7 k1 - // r4 (--- --- --- ---) k3 k4 k6 k2 - // r5 ( k3 k2 k1 k0) -----> --- --- --- --- - // r6 ( k7 k6 k5 k4) --- --- --- --- -#ifdef STM32F4 // for Cortex-M4 - "ror.w r3,r6, #16 \n\t" // r3( k5 k4 k7 k6) - "bfi.w r3,r5, #16,#8 \n\t" // r3( k5 k0 k7 k6) - "pkhtb.w r4,r5, r5, asr #16 \n\t" // r4( k3 k2 k3 k2) - "ror.w r5, #8 \n\t" // r5( k0 k3 k2 k1) - "bfi.w r3,r5, #0,#8 \n\t" // r3( k5 k4 k2 k6) - "bfi.w r4,r6, #16,#8 \n\t" // r4( k3 k4 k3 k2) - "ror.w r6,#16 \n\t" // r6( k5 k4 k7 k6) - "bfi.w r4,r6, #8,#8 \n\t" // r4( k3 k4 k6 k2) -#else // for Cortex-M3 - "rev.w r3, r6 \n\t" // r3( k4 k5 k6 k7) - "lsl.w r3, r3, #8 \n\t" // r3( k5 k6 k7 ---) - "bfi.w r3,r5, #16,#8 \n\t" // r3( k5 k0 k7 ---) - "lsr.w r5, r5, #8 \n\t" // r5(--- k3 k2 k1) - "bfi.w r3,r5, #0, #8 \n\t" // r3( k5 k0 k7 k1) - "rev16.w r4, r5 \n\t" // r4( k3 --- k1 k2) - "bfi.w r4,r6, #16,#8 \n\t" // r4( k3 k4 k1 k2) - "lsr.w r6, r6, #16 \n\t" // r6(-- --- k7 k6) - "bfi.w r4,r6, #8, #8 \n\t" // r4( k3 k4 k6 k2) -#endif - - // round 9-10 - - // round key store - "str.w r3, [r1,#32] \n\t" - "str.w r4, [r1,#36] \n\t" - - // premutation - - // r3 ( k3 k2 k1 k0) --- --- --- --- - // r4 ( k7 k6 k5 k4) --- --- --- --- - // r5 (--- --- --- ---) -----> k5 k0 k7 k1 - // r6 (--- --- --- ---) k3 k4 k6 k2 -#ifdef STM32F4 // for Cortex-M4 - "ror.w r5,r4, #16 \n\t" // r5( k5 k4 k7 k6) - "bfi.w r5,r3, #16,#8 \n\t" // r5( k5 k0 k7 k6) - "pkhtb.w r6,r3, r3, asr #16 \n\t" // r6( k3 k2 k3 k2) - "ror.w r3, #8 \n\t" // r3( k0 k3 k2 k1) - "bfi.w r5,r3, #0,#8 \n\t" // r5( k5 k4 k2 k6) - "bfi.w r6,r4, #16,#8 \n\t" // r6( k3 k4 k3 k2) - "ror.w r4,#16 \n\t" // r4( k5 k4 k7 k6) - "bfi.w r6,r4, #8,#8 \n\t" // r6( k3 k4 k6 k2) -#else // for Cortex-M3 - "rev.w r5, r4 \n\t" // r5( k4 k5 k6 k7) - "lsl.w r5, r5, #8 \n\t" // r5( k5 k6 k7 ---) - "bfi.w r5,r3, #16,#8 \n\t" // r5( k5 k0 k7 ---) - "lsr.w r3, r3, #8 \n\t" // r3(--- k3 k2 k1) - "bfi.w r5,r3, #0, #8 \n\t" // r5( k5 k0 k7 k1) - "rev16.w r6, r3 \n\t" // r6( k3 --- k1 k2) - "bfi.w r6,r4, #16,#8 \n\t" // r6( k3 k4 k1 k2) - "lsr.w r4, r4, #16 \n\t" // r4(-- --- k7 k6) - "bfi.w r6,r4, #8, #8 \n\t" // r6( k3 k4 k6 k2) -#endif - // round 11-12 - - // round key store - "str.w r5, [r1,#40] \n\t" - "str.w r6, [r1,#44] \n\t" - - // premutation - - // r3 (--- --- --- ---) k5 k0 k7 k1 - // r4 (--- --- --- ---) k3 k4 k6 k2 - // r5 ( k3 k2 k1 k0) -----> --- --- --- --- - // r6 ( k7 k6 k5 k4) --- --- --- --- -#ifdef STM32F4 // for Cortex-M4 - "ror.w r3,r6, #16 \n\t" // r3( k5 k4 k7 k6) - "bfi.w r3,r5, #16,#8 \n\t" // r3( k5 k0 k7 k6) - "pkhtb.w r4,r5, r5, asr #16 \n\t" // r4( k3 k2 k3 k2) - "ror.w r5, #8 \n\t" // r5( k0 k3 k2 k1) - "bfi.w r3,r5, #0,#8 \n\t" // r3( k5 k4 k2 k6) - "bfi.w r4,r6, #16,#8 \n\t" // r4( k3 k4 k3 k2) - "ror.w r6,#16 \n\t" // r6( k5 k4 k7 k6) - "bfi.w r4,r6, #8,#8 \n\t" // r4( k3 k4 k6 k2) -#else // for Cortex-M3 - "rev.w r3, r6 \n\t" // r3( k4 k5 k6 k7) - "lsl.w r3, r3, #8 \n\t" // r3( k5 k6 k7 ---) - "bfi.w r3,r5, #16,#8 \n\t" // r3( k5 k0 k7 ---) - "lsr.w r5, r5, #8 \n\t" // r5(--- k3 k2 k1) - "bfi.w r3,r5, #0, #8 \n\t" // r3( k5 k0 k7 k1) - "rev16.w r4, r5 \n\t" // r4( k3 --- k1 k2) - "bfi.w r4,r6, #16,#8 \n\t" // r4( k3 k4 k1 k2) - "lsr.w r6, r6, #16 \n\t" // r6(-- --- k7 k6) - "bfi.w r4,r6, #8, #8 \n\t" // r4( k3 k4 k6 k2) -#endif - - // round 13-14 - - // round key store - "str.w r3, [r1,#48] \n\t" - "str.w r4, [r1,#52] \n\t" - - // premutation - - // r3 ( k3 k2 k1 k0) --- --- --- --- - // r4 ( k7 k6 k5 k4) --- --- --- --- - // r5 (--- --- --- ---) -----> k5 k0 k7 k1 - // r6 (--- --- --- ---) k3 k4 k6 k2 -#ifdef STM32F4 // for Cortex-M4 - "ror.w r5,r4, #16 \n\t" // r5( k5 k4 k7 k6) - "bfi.w r5,r3, #16,#8 \n\t" // r5( k5 k0 k7 k6) - "pkhtb.w r6,r3, r3, asr #16 \n\t" // r6( k3 k2 k3 k2) - "ror.w r3, #8 \n\t" // r3( k0 k3 k2 k1) - "bfi.w r5,r3, #0,#8 \n\t" // r5( k5 k4 k2 k6) - "bfi.w r6,r4, #16,#8 \n\t" // r6( k3 k4 k3 k2) - "ror.w r4,#16 \n\t" // r4( k5 k4 k7 k6) - "bfi.w r6,r4, #8,#8 \n\t" // r6( k3 k4 k6 k2) -#else // for Cortex-M3 - "rev.w r5, r4 \n\t" // r5( k4 k5 k6 k7) - "lsl.w r5, r5, #8 \n\t" // r5( k5 k6 k7 ---) - "bfi.w r5,r3, #16,#8 \n\t" // r5( k5 k0 k7 ---) - "lsr.w r3, r3, #8 \n\t" // r3(--- k3 k2 k1) - "bfi.w r5,r3, #0, #8 \n\t" // r5( k5 k0 k7 k1) - "rev16.w r6, r3 \n\t" // r6( k3 --- k1 k2) - "bfi.w r6,r4, #16,#8 \n\t" // r6( k3 k4 k1 k2) - "lsr.w r4, r4, #16 \n\t" // r4(-- --- k7 k6) - "bfi.w r6,r4, #8, #8 \n\t" // r6( k3 k4 k6 k2) -#endif - // round 15-16 - - // round key store - "str.w r5, [r1,#56] \n\t" - "str.w r6, [r1,#60] \n\t" - - // premutation - - // not need to calculate (not used) - -// SC->(AC->ART)->SR->MC - - "add.w r14, r2, #256 \n\t" // point to SBOX ^ c2(0x02) - - "ldm.w r0, {r3-r6} \n\t" // load plaintext - // r0 now free to overwrite - - // round 1 - - // SubCell+ShiftRow+AC(c2) - // r3 (s3 s2 s1 s0) - // r4 (s7 s6 s5 s4) - // r5 (s11 s10 s9 s8) - // r6 (s15 s14 s13 s12) - - // 1st-2nd line - // r3(s3 s2 s1 s0) - "uxtb.w r9, r3, ror #24 \n\t" // s3 - "uxtb.w r8, r3, ror #16 \n\t" // s2 - "uxtb.w r7, r3, ror #8 \n\t" // s1 - "uxtb.w r3, r3 \n\t" // s0 - // r4(s6 s5 s4 s7) - "uxtb.w r12, r4, ror #16 \n\t" // s6 - "uxtb.w r11, r4, ror #8 \n\t" // s5 - "uxtb.w r10, r4 \n\t" // s4 - "uxtb.w r4, r4, ror #24 \n\t" // s7 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "eor.w r3, r3, r7, lsl #8 \n\t" - "eor.w r3, r3, r8, lsl #16 \n\t" - "eor.w r3, r3, r9, lsl #24 \n\t" - "eor.w r4, r4, r10, lsl #8 \n\t" - "eor.w r4, r4, r11, lsl #16 \n\t" - "eor.w r4, r4, r12, lsl #24 \n\t" - - // 3rd-4th line - // r5(s9 s8 s11 s10) - "uxtb.w r9, r5, ror #8 \n\t" // s9 - "uxtb.w r8, r5 \n\t" // s8 - "uxtb.w r7, r5, ror #24 \n\t" // s11 - "uxtb.w r5, r5, ror #16 \n\t" // s10 - // r6(s12 s15 s14 s13) - "uxtb.w r12, r6 \n\t" // s12 - "uxtb.w r11, r6, ror #24 \n\t" // s15 - "uxtb.w r10, r6, ror #16 \n\t" // s14 - "uxtb.w r6, r6, ror #8 \n\t" // s13 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "eor.w r5, r5, r7, lsl #8 \n\t" - "eor.w r5, r5, r8, lsl #16 \n\t" - "eor.w r5, r5, r9, lsl #24 \n\t" - "eor.w r6, r6, r10, lsl #8 \n\t" - "eor.w r6, r6, r11, lsl #16 \n\t" - "eor.w r6, r6, r12, lsl #24 \n\t" - - // AddRoundKey and AddRoundConst(from roundKeys) - "ldr.w r9, [r1,#0] \n\t" // load TK1 - "ldr.w r10, [r1,#4] \n\t" // load TK1 - "ldr.w r11, [r1,#64] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "ldr.w r12, [r1,#68] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - - "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) - "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) - // r8( s9 s8 s11 s10) - // r6(s12 s14 s14 s13) - - // MixColumn - "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 - "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 - "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 - // r8 ----------------> r8 - - // round 2 - - // SubCell+ShiftRow+AC(c2) - // r7 (s3 s2 s1 s0) - // r8 (s7 s6 s5 s4) - // r9 (s11 s10 s9 s8) - // r10(s15 s14 s13 s12) - - // 1st-2nd line - // r7(s3 s2 s1 s0) - "uxtb.w r5, r7, ror #24 \n\t" // s3 - "uxtb.w r4, r7, ror #16 \n\t" // s2 - "uxtb.w r3, r7, ror #8 \n\t" // s1 - "uxtb.w r7, r7 \n\t" // s0 - // r8(s6 s5 s4 s7) - "uxtb.w r12, r8, ror #16 \n\t" // s6 - "uxtb.w r11, r8, ror #8 \n\t" // s5 - "uxtb.w r6, r8 \n\t" // s4 - "uxtb.w r8, r8, ror #24 \n\t" // s7 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldr.w r0, [r1,#72] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r7, r7, r3, lsl #8 \n\t" - "eor.w r7, r7, r4, lsl #16 \n\t" - "eor.w r7, r7, r5, lsl #24 \n\t" - "eor.w r8, r8, r6, lsl #8 \n\t" - "eor.w r8, r8, r11, lsl #16 \n\t" - "eor.w r8, r8, r12, lsl #24 \n\t" - "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) - - // 3rd-4th line - // r9(s9 s8 s11 s10) - "uxtb.w r5, r9, ror #8 \n\t" // s9 - "uxtb.w r7, r9 \n\t" // s8 - "uxtb.w r3, r9, ror #24 \n\t" // s11 - "uxtb.w r9, r9, ror #16 \n\t" // s10 - // r10(s12 s15 s14 s13) - "uxtb.w r12, r10 \n\t" // s12 - "uxtb.w r11, r10, ror #24 \n\t" // s15 - "uxtb.w r6, r10, ror #16 \n\t" // s14 - "uxtb.w r10, r10, ror #8 \n\t" // s13 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldr.w r0, [r1,#76] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r9, r9, r3, lsl #8 \n\t" - "eor.w r9, r9, r7, lsl #16 \n\t" - "eor.w r9, r9, r5, lsl #24 \n\t" - "eor.w r10, r10, r6, lsl #8 \n\t" - "eor.w r10, r10, r11, lsl #16 \n\t" - "eor.w r10, r10, r12, lsl #24 \n\t" - "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) - - // AddRoundKey and AddRoundConst(from roundKeys) - - // r9( s9 s8 s11 s10) - // r10(s12 s14 s14 s13) - - // MixColumn - "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 - "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 - "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 - // r4 ----------------> r4 - // round 3 - - // SubCell+ShiftRow+AC(c2) - // r3 (s3 s2 s1 s0) - // r4 (s7 s6 s5 s4) - // r5 (s11 s10 s9 s8) - // r6 (s15 s14 s13 s12) - - // 1st-2nd line - // r3(s3 s2 s1 s0) - "uxtb.w r9, r3, ror #24 \n\t" // s3 - "uxtb.w r8, r3, ror #16 \n\t" // s2 - "uxtb.w r7, r3, ror #8 \n\t" // s1 - "uxtb.w r3, r3 \n\t" // s0 - // r4(s6 s5 s4 s7) - "uxtb.w r12, r4, ror #16 \n\t" // s6 - "uxtb.w r11, r4, ror #8 \n\t" // s5 - "uxtb.w r10, r4 \n\t" // s4 - "uxtb.w r4, r4, ror #24 \n\t" // s7 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "eor.w r3, r3, r7, lsl #8 \n\t" - "eor.w r3, r3, r8, lsl #16 \n\t" - "eor.w r3, r3, r9, lsl #24 \n\t" - "eor.w r4, r4, r10, lsl #8 \n\t" - "eor.w r4, r4, r11, lsl #16 \n\t" - "eor.w r4, r4, r12, lsl #24 \n\t" - - // 3rd-4th line - // r5(s9 s8 s11 s10) - "uxtb.w r9, r5, ror #8 \n\t" // s9 - "uxtb.w r8, r5 \n\t" // s8 - "uxtb.w r7, r5, ror #24 \n\t" // s11 - "uxtb.w r5, r5, ror #16 \n\t" // s10 - // r6(s12 s15 s14 s13) - "uxtb.w r12, r6 \n\t" // s12 - "uxtb.w r11, r6, ror #24 \n\t" // s15 - "uxtb.w r10, r6, ror #16 \n\t" // s14 - "uxtb.w r6, r6, ror #8 \n\t" // s13 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "eor.w r5, r5, r7, lsl #8 \n\t" - "eor.w r5, r5, r8, lsl #16 \n\t" - "eor.w r5, r5, r9, lsl #24 \n\t" - "eor.w r6, r6, r10, lsl #8 \n\t" - "eor.w r6, r6, r11, lsl #16 \n\t" - "eor.w r6, r6, r12, lsl #24 \n\t" - - // AddRoundKey and AddRoundConst(from roundKeys) - "ldr.w r9, [r1,#8] \n\t" // load TK1 - "ldr.w r10, [r1,#12] \n\t" // load TK1 - "ldr.w r11, [r1,#80] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "ldr.w r12, [r1,#84] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - - "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) - "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) - // r8( s9 s8 s11 s10) - // r6(s12 s14 s14 s13) - - // MixColumn - "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 - "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 - "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 - // r8 ----------------> r8 - - // round 4 - - // SubCell+ShiftRow+AC(c2) - // r7 (s3 s2 s1 s0) - // r8 (s7 s6 s5 s4) - // r9 (s11 s10 s9 s8) - // r10(s15 s14 s13 s12) - - // 1st-2nd line - // r7(s3 s2 s1 s0) - "uxtb.w r5, r7, ror #24 \n\t" // s3 - "uxtb.w r4, r7, ror #16 \n\t" // s2 - "uxtb.w r3, r7, ror #8 \n\t" // s1 - "uxtb.w r7, r7 \n\t" // s0 - // r8(s6 s5 s4 s7) - "uxtb.w r12, r8, ror #16 \n\t" // s6 - "uxtb.w r11, r8, ror #8 \n\t" // s5 - "uxtb.w r6, r8 \n\t" // s4 - "uxtb.w r8, r8, ror #24 \n\t" // s7 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldr.w r0, [r1,#88] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r7, r7, r3, lsl #8 \n\t" - "eor.w r7, r7, r4, lsl #16 \n\t" - "eor.w r7, r7, r5, lsl #24 \n\t" - "eor.w r8, r8, r6, lsl #8 \n\t" - "eor.w r8, r8, r11, lsl #16 \n\t" - "eor.w r8, r8, r12, lsl #24 \n\t" - "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) - - // 3rd-4th line - // r9(s9 s8 s11 s10) - "uxtb.w r5, r9, ror #8 \n\t" // s9 - "uxtb.w r7, r9 \n\t" // s8 - "uxtb.w r3, r9, ror #24 \n\t" // s11 - "uxtb.w r9, r9, ror #16 \n\t" // s10 - // r10(s12 s15 s14 s13) - "uxtb.w r12, r10 \n\t" // s12 - "uxtb.w r11, r10, ror #24 \n\t" // s15 - "uxtb.w r6, r10, ror #16 \n\t" // s14 - "uxtb.w r10, r10, ror #8 \n\t" // s13 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldr.w r0, [r1,#92] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r9, r9, r3, lsl #8 \n\t" - "eor.w r9, r9, r7, lsl #16 \n\t" - "eor.w r9, r9, r5, lsl #24 \n\t" - "eor.w r10, r10, r6, lsl #8 \n\t" - "eor.w r10, r10, r11, lsl #16 \n\t" - "eor.w r10, r10, r12, lsl #24 \n\t" - "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) - - // AddRoundKey and AddRoundConst(from roundKeys) - - // r9( s9 s8 s11 s10) - // r10(s12 s14 s14 s13) - - // MixColumn - "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 - "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 - "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 - // r4 ----------------> r4 - // round 5 - - // SubCell+ShiftRow+AC(c2) - // r3 (s3 s2 s1 s0) - // r4 (s7 s6 s5 s4) - // r5 (s11 s10 s9 s8) - // r6 (s15 s14 s13 s12) - - // 1st-2nd line - // r3(s3 s2 s1 s0) - "uxtb.w r9, r3, ror #24 \n\t" // s3 - "uxtb.w r8, r3, ror #16 \n\t" // s2 - "uxtb.w r7, r3, ror #8 \n\t" // s1 - "uxtb.w r3, r3 \n\t" // s0 - // r4(s6 s5 s4 s7) - "uxtb.w r12, r4, ror #16 \n\t" // s6 - "uxtb.w r11, r4, ror #8 \n\t" // s5 - "uxtb.w r10, r4 \n\t" // s4 - "uxtb.w r4, r4, ror #24 \n\t" // s7 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "eor.w r3, r3, r7, lsl #8 \n\t" - "eor.w r3, r3, r8, lsl #16 \n\t" - "eor.w r3, r3, r9, lsl #24 \n\t" - "eor.w r4, r4, r10, lsl #8 \n\t" - "eor.w r4, r4, r11, lsl #16 \n\t" - "eor.w r4, r4, r12, lsl #24 \n\t" - - // 3rd-4th line - // r5(s9 s8 s11 s10) - "uxtb.w r9, r5, ror #8 \n\t" // s9 - "uxtb.w r8, r5 \n\t" // s8 - "uxtb.w r7, r5, ror #24 \n\t" // s11 - "uxtb.w r5, r5, ror #16 \n\t" // s10 - // r6(s12 s15 s14 s13) - "uxtb.w r12, r6 \n\t" // s12 - "uxtb.w r11, r6, ror #24 \n\t" // s15 - "uxtb.w r10, r6, ror #16 \n\t" // s14 - "uxtb.w r6, r6, ror #8 \n\t" // s13 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "eor.w r5, r5, r7, lsl #8 \n\t" - "eor.w r5, r5, r8, lsl #16 \n\t" - "eor.w r5, r5, r9, lsl #24 \n\t" - "eor.w r6, r6, r10, lsl #8 \n\t" - "eor.w r6, r6, r11, lsl #16 \n\t" - "eor.w r6, r6, r12, lsl #24 \n\t" - - // AddRoundKey and AddRoundConst(from roundKeys) - "ldr.w r9, [r1,#16] \n\t" // load TK1 - "ldr.w r10, [r1,#20] \n\t" // load TK1 - "ldr.w r11, [r1,#96] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "ldr.w r12, [r1,#100] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - - "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) - "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) - // r8( s9 s8 s11 s10) - // r6(s12 s14 s14 s13) - - // MixColumn - "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 - "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 - "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 - // r8 ----------------> r8 - - // round 6 - - // SubCell+ShiftRow+AC(c2) - // r7 (s3 s2 s1 s0) - // r8 (s7 s6 s5 s4) - // r9 (s11 s10 s9 s8) - // r10(s15 s14 s13 s12) - - // 1st-2nd line - // r7(s3 s2 s1 s0) - "uxtb.w r5, r7, ror #24 \n\t" // s3 - "uxtb.w r4, r7, ror #16 \n\t" // s2 - "uxtb.w r3, r7, ror #8 \n\t" // s1 - "uxtb.w r7, r7 \n\t" // s0 - // r8(s6 s5 s4 s7) - "uxtb.w r12, r8, ror #16 \n\t" // s6 - "uxtb.w r11, r8, ror #8 \n\t" // s5 - "uxtb.w r6, r8 \n\t" // s4 - "uxtb.w r8, r8, ror #24 \n\t" // s7 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldr.w r0, [r1,#104] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r7, r7, r3, lsl #8 \n\t" - "eor.w r7, r7, r4, lsl #16 \n\t" - "eor.w r7, r7, r5, lsl #24 \n\t" - "eor.w r8, r8, r6, lsl #8 \n\t" - "eor.w r8, r8, r11, lsl #16 \n\t" - "eor.w r8, r8, r12, lsl #24 \n\t" - "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) - - // 3rd-4th line - // r9(s9 s8 s11 s10) - "uxtb.w r5, r9, ror #8 \n\t" // s9 - "uxtb.w r7, r9 \n\t" // s8 - "uxtb.w r3, r9, ror #24 \n\t" // s11 - "uxtb.w r9, r9, ror #16 \n\t" // s10 - // r10(s12 s15 s14 s13) - "uxtb.w r12, r10 \n\t" // s12 - "uxtb.w r11, r10, ror #24 \n\t" // s15 - "uxtb.w r6, r10, ror #16 \n\t" // s14 - "uxtb.w r10, r10, ror #8 \n\t" // s13 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldr.w r0, [r1,#108] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r9, r9, r3, lsl #8 \n\t" - "eor.w r9, r9, r7, lsl #16 \n\t" - "eor.w r9, r9, r5, lsl #24 \n\t" - "eor.w r10, r10, r6, lsl #8 \n\t" - "eor.w r10, r10, r11, lsl #16 \n\t" - "eor.w r10, r10, r12, lsl #24 \n\t" - "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) - - // AddRoundKey and AddRoundConst(from roundKeys) - - // r9( s9 s8 s11 s10) - // r10(s12 s14 s14 s13) - - // MixColumn - "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 - "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 - "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 - // r4 ----------------> r4 - // round 7 - - // SubCell+ShiftRow+AC(c2) - // r3 (s3 s2 s1 s0) - // r4 (s7 s6 s5 s4) - // r5 (s11 s10 s9 s8) - // r6 (s15 s14 s13 s12) - - // 1st-2nd line - // r3(s3 s2 s1 s0) - "uxtb.w r9, r3, ror #24 \n\t" // s3 - "uxtb.w r8, r3, ror #16 \n\t" // s2 - "uxtb.w r7, r3, ror #8 \n\t" // s1 - "uxtb.w r3, r3 \n\t" // s0 - // r4(s6 s5 s4 s7) - "uxtb.w r12, r4, ror #16 \n\t" // s6 - "uxtb.w r11, r4, ror #8 \n\t" // s5 - "uxtb.w r10, r4 \n\t" // s4 - "uxtb.w r4, r4, ror #24 \n\t" // s7 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "eor.w r3, r3, r7, lsl #8 \n\t" - "eor.w r3, r3, r8, lsl #16 \n\t" - "eor.w r3, r3, r9, lsl #24 \n\t" - "eor.w r4, r4, r10, lsl #8 \n\t" - "eor.w r4, r4, r11, lsl #16 \n\t" - "eor.w r4, r4, r12, lsl #24 \n\t" - - // 3rd-4th line - // r5(s9 s8 s11 s10) - "uxtb.w r9, r5, ror #8 \n\t" // s9 - "uxtb.w r8, r5 \n\t" // s8 - "uxtb.w r7, r5, ror #24 \n\t" // s11 - "uxtb.w r5, r5, ror #16 \n\t" // s10 - // r6(s12 s15 s14 s13) - "uxtb.w r12, r6 \n\t" // s12 - "uxtb.w r11, r6, ror #24 \n\t" // s15 - "uxtb.w r10, r6, ror #16 \n\t" // s14 - "uxtb.w r6, r6, ror #8 \n\t" // s13 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "eor.w r5, r5, r7, lsl #8 \n\t" - "eor.w r5, r5, r8, lsl #16 \n\t" - "eor.w r5, r5, r9, lsl #24 \n\t" - "eor.w r6, r6, r10, lsl #8 \n\t" - "eor.w r6, r6, r11, lsl #16 \n\t" - "eor.w r6, r6, r12, lsl #24 \n\t" - - // AddRoundKey and AddRoundConst(from roundKeys) - "ldr.w r9, [r1,#24] \n\t" // load TK1 - "ldr.w r10, [r1,#28] \n\t" // load TK1 - "ldr.w r11, [r1,#112] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "ldr.w r12, [r1,#116] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - - "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) - "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) - // r8( s9 s8 s11 s10) - // r6(s12 s14 s14 s13) - - // MixColumn - "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 - "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 - "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 - // r8 ----------------> r8 - - // round 8 - - // SubCell+ShiftRow+AC(c2) - // r7 (s3 s2 s1 s0) - // r8 (s7 s6 s5 s4) - // r9 (s11 s10 s9 s8) - // r10(s15 s14 s13 s12) - - // 1st-2nd line - // r7(s3 s2 s1 s0) - "uxtb.w r5, r7, ror #24 \n\t" // s3 - "uxtb.w r4, r7, ror #16 \n\t" // s2 - "uxtb.w r3, r7, ror #8 \n\t" // s1 - "uxtb.w r7, r7 \n\t" // s0 - // r8(s6 s5 s4 s7) - "uxtb.w r12, r8, ror #16 \n\t" // s6 - "uxtb.w r11, r8, ror #8 \n\t" // s5 - "uxtb.w r6, r8 \n\t" // s4 - "uxtb.w r8, r8, ror #24 \n\t" // s7 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldr.w r0, [r1,#120] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r7, r7, r3, lsl #8 \n\t" - "eor.w r7, r7, r4, lsl #16 \n\t" - "eor.w r7, r7, r5, lsl #24 \n\t" - "eor.w r8, r8, r6, lsl #8 \n\t" - "eor.w r8, r8, r11, lsl #16 \n\t" - "eor.w r8, r8, r12, lsl #24 \n\t" - "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) - - // 3rd-4th line - // r9(s9 s8 s11 s10) - "uxtb.w r5, r9, ror #8 \n\t" // s9 - "uxtb.w r7, r9 \n\t" // s8 - "uxtb.w r3, r9, ror #24 \n\t" // s11 - "uxtb.w r9, r9, ror #16 \n\t" // s10 - // r10(s12 s15 s14 s13) - "uxtb.w r12, r10 \n\t" // s12 - "uxtb.w r11, r10, ror #24 \n\t" // s15 - "uxtb.w r6, r10, ror #16 \n\t" // s14 - "uxtb.w r10, r10, ror #8 \n\t" // s13 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldr.w r0, [r1,#124] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r9, r9, r3, lsl #8 \n\t" - "eor.w r9, r9, r7, lsl #16 \n\t" - "eor.w r9, r9, r5, lsl #24 \n\t" - "eor.w r10, r10, r6, lsl #8 \n\t" - "eor.w r10, r10, r11, lsl #16 \n\t" - "eor.w r10, r10, r12, lsl #24 \n\t" - "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) - - // AddRoundKey and AddRoundConst(from roundKeys) - - // r9( s9 s8 s11 s10) - // r10(s12 s14 s14 s13) - - // MixColumn - "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 - "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 - "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 - // r4 ----------------> r4 - // round 9 - - // SubCell+ShiftRow+AC(c2) - // r3 (s3 s2 s1 s0) - // r4 (s7 s6 s5 s4) - // r5 (s11 s10 s9 s8) - // r6 (s15 s14 s13 s12) - - // 1st-2nd line - // r3(s3 s2 s1 s0) - "uxtb.w r9, r3, ror #24 \n\t" // s3 - "uxtb.w r8, r3, ror #16 \n\t" // s2 - "uxtb.w r7, r3, ror #8 \n\t" // s1 - "uxtb.w r3, r3 \n\t" // s0 - // r4(s6 s5 s4 s7) - "uxtb.w r12, r4, ror #16 \n\t" // s6 - "uxtb.w r11, r4, ror #8 \n\t" // s5 - "uxtb.w r10, r4 \n\t" // s4 - "uxtb.w r4, r4, ror #24 \n\t" // s7 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "eor.w r3, r3, r7, lsl #8 \n\t" - "eor.w r3, r3, r8, lsl #16 \n\t" - "eor.w r3, r3, r9, lsl #24 \n\t" - "eor.w r4, r4, r10, lsl #8 \n\t" - "eor.w r4, r4, r11, lsl #16 \n\t" - "eor.w r4, r4, r12, lsl #24 \n\t" - - // 3rd-4th line - // r5(s9 s8 s11 s10) - "uxtb.w r9, r5, ror #8 \n\t" // s9 - "uxtb.w r8, r5 \n\t" // s8 - "uxtb.w r7, r5, ror #24 \n\t" // s11 - "uxtb.w r5, r5, ror #16 \n\t" // s10 - // r6(s12 s15 s14 s13) - "uxtb.w r12, r6 \n\t" // s12 - "uxtb.w r11, r6, ror #24 \n\t" // s15 - "uxtb.w r10, r6, ror #16 \n\t" // s14 - "uxtb.w r6, r6, ror #8 \n\t" // s13 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "eor.w r5, r5, r7, lsl #8 \n\t" - "eor.w r5, r5, r8, lsl #16 \n\t" - "eor.w r5, r5, r9, lsl #24 \n\t" - "eor.w r6, r6, r10, lsl #8 \n\t" - "eor.w r6, r6, r11, lsl #16 \n\t" - "eor.w r6, r6, r12, lsl #24 \n\t" - - // AddRoundKey and AddRoundConst(from roundKeys) - "ldr.w r9, [r1,#32] \n\t" // load TK1 - "ldr.w r10, [r1,#36] \n\t" // load TK1 - "ldr.w r11, [r1,#128] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "ldr.w r12, [r1,#132] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - - "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) - "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) - // r8( s9 s8 s11 s10) - // r6(s12 s14 s14 s13) - - // MixColumn - "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 - "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 - "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 - // r8 ----------------> r8 - - // round 10 - - // SubCell+ShiftRow+AC(c2) - // r7 (s3 s2 s1 s0) - // r8 (s7 s6 s5 s4) - // r9 (s11 s10 s9 s8) - // r10(s15 s14 s13 s12) - - // 1st-2nd line - // r7(s3 s2 s1 s0) - "uxtb.w r5, r7, ror #24 \n\t" // s3 - "uxtb.w r4, r7, ror #16 \n\t" // s2 - "uxtb.w r3, r7, ror #8 \n\t" // s1 - "uxtb.w r7, r7 \n\t" // s0 - // r8(s6 s5 s4 s7) - "uxtb.w r12, r8, ror #16 \n\t" // s6 - "uxtb.w r11, r8, ror #8 \n\t" // s5 - "uxtb.w r6, r8 \n\t" // s4 - "uxtb.w r8, r8, ror #24 \n\t" // s7 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldr.w r0, [r1,#136] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r7, r7, r3, lsl #8 \n\t" - "eor.w r7, r7, r4, lsl #16 \n\t" - "eor.w r7, r7, r5, lsl #24 \n\t" - "eor.w r8, r8, r6, lsl #8 \n\t" - "eor.w r8, r8, r11, lsl #16 \n\t" - "eor.w r8, r8, r12, lsl #24 \n\t" - "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) - - // 3rd-4th line - // r9(s9 s8 s11 s10) - "uxtb.w r5, r9, ror #8 \n\t" // s9 - "uxtb.w r7, r9 \n\t" // s8 - "uxtb.w r3, r9, ror #24 \n\t" // s11 - "uxtb.w r9, r9, ror #16 \n\t" // s10 - // r10(s12 s15 s14 s13) - "uxtb.w r12, r10 \n\t" // s12 - "uxtb.w r11, r10, ror #24 \n\t" // s15 - "uxtb.w r6, r10, ror #16 \n\t" // s14 - "uxtb.w r10, r10, ror #8 \n\t" // s13 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldr.w r0, [r1,#140] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r9, r9, r3, lsl #8 \n\t" - "eor.w r9, r9, r7, lsl #16 \n\t" - "eor.w r9, r9, r5, lsl #24 \n\t" - "eor.w r10, r10, r6, lsl #8 \n\t" - "eor.w r10, r10, r11, lsl #16 \n\t" - "eor.w r10, r10, r12, lsl #24 \n\t" - "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) - - // AddRoundKey and AddRoundConst(from roundKeys) - - // r9( s9 s8 s11 s10) - // r10(s12 s14 s14 s13) - - // MixColumn - "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 - "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 - "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 - // r4 ----------------> r4 - // round 11 - - // SubCell+ShiftRow+AC(c2) - // r3 (s3 s2 s1 s0) - // r4 (s7 s6 s5 s4) - // r5 (s11 s10 s9 s8) - // r6 (s15 s14 s13 s12) - - // 1st-2nd line - // r3(s3 s2 s1 s0) - "uxtb.w r9, r3, ror #24 \n\t" // s3 - "uxtb.w r8, r3, ror #16 \n\t" // s2 - "uxtb.w r7, r3, ror #8 \n\t" // s1 - "uxtb.w r3, r3 \n\t" // s0 - // r4(s6 s5 s4 s7) - "uxtb.w r12, r4, ror #16 \n\t" // s6 - "uxtb.w r11, r4, ror #8 \n\t" // s5 - "uxtb.w r10, r4 \n\t" // s4 - "uxtb.w r4, r4, ror #24 \n\t" // s7 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "eor.w r3, r3, r7, lsl #8 \n\t" - "eor.w r3, r3, r8, lsl #16 \n\t" - "eor.w r3, r3, r9, lsl #24 \n\t" - "eor.w r4, r4, r10, lsl #8 \n\t" - "eor.w r4, r4, r11, lsl #16 \n\t" - "eor.w r4, r4, r12, lsl #24 \n\t" - - // 3rd-4th line - // r5(s9 s8 s11 s10) - "uxtb.w r9, r5, ror #8 \n\t" // s9 - "uxtb.w r8, r5 \n\t" // s8 - "uxtb.w r7, r5, ror #24 \n\t" // s11 - "uxtb.w r5, r5, ror #16 \n\t" // s10 - // r6(s12 s15 s14 s13) - "uxtb.w r12, r6 \n\t" // s12 - "uxtb.w r11, r6, ror #24 \n\t" // s15 - "uxtb.w r10, r6, ror #16 \n\t" // s14 - "uxtb.w r6, r6, ror #8 \n\t" // s13 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "eor.w r5, r5, r7, lsl #8 \n\t" - "eor.w r5, r5, r8, lsl #16 \n\t" - "eor.w r5, r5, r9, lsl #24 \n\t" - "eor.w r6, r6, r10, lsl #8 \n\t" - "eor.w r6, r6, r11, lsl #16 \n\t" - "eor.w r6, r6, r12, lsl #24 \n\t" - - // AddRoundKey and AddRoundConst(from roundKeys) - "ldr.w r9, [r1,#40] \n\t" // load TK1 - "ldr.w r10, [r1,#44] \n\t" // load TK1 - "ldr.w r11, [r1,#144] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "ldr.w r12, [r1,#148] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - - "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) - "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) - // r8( s9 s8 s11 s10) - // r6(s12 s14 s14 s13) - - // MixColumn - "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 - "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 - "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 - // r8 ----------------> r8 - - // round 12 - - // SubCell+ShiftRow+AC(c2) - // r7 (s3 s2 s1 s0) - // r8 (s7 s6 s5 s4) - // r9 (s11 s10 s9 s8) - // r10(s15 s14 s13 s12) - - // 1st-2nd line - // r7(s3 s2 s1 s0) - "uxtb.w r5, r7, ror #24 \n\t" // s3 - "uxtb.w r4, r7, ror #16 \n\t" // s2 - "uxtb.w r3, r7, ror #8 \n\t" // s1 - "uxtb.w r7, r7 \n\t" // s0 - // r8(s6 s5 s4 s7) - "uxtb.w r12, r8, ror #16 \n\t" // s6 - "uxtb.w r11, r8, ror #8 \n\t" // s5 - "uxtb.w r6, r8 \n\t" // s4 - "uxtb.w r8, r8, ror #24 \n\t" // s7 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldr.w r0, [r1,#152] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r7, r7, r3, lsl #8 \n\t" - "eor.w r7, r7, r4, lsl #16 \n\t" - "eor.w r7, r7, r5, lsl #24 \n\t" - "eor.w r8, r8, r6, lsl #8 \n\t" - "eor.w r8, r8, r11, lsl #16 \n\t" - "eor.w r8, r8, r12, lsl #24 \n\t" - "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) - - // 3rd-4th line - // r9(s9 s8 s11 s10) - "uxtb.w r5, r9, ror #8 \n\t" // s9 - "uxtb.w r7, r9 \n\t" // s8 - "uxtb.w r3, r9, ror #24 \n\t" // s11 - "uxtb.w r9, r9, ror #16 \n\t" // s10 - // r10(s12 s15 s14 s13) - "uxtb.w r12, r10 \n\t" // s12 - "uxtb.w r11, r10, ror #24 \n\t" // s15 - "uxtb.w r6, r10, ror #16 \n\t" // s14 - "uxtb.w r10, r10, ror #8 \n\t" // s13 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldr.w r0, [r1,#156] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r9, r9, r3, lsl #8 \n\t" - "eor.w r9, r9, r7, lsl #16 \n\t" - "eor.w r9, r9, r5, lsl #24 \n\t" - "eor.w r10, r10, r6, lsl #8 \n\t" - "eor.w r10, r10, r11, lsl #16 \n\t" - "eor.w r10, r10, r12, lsl #24 \n\t" - "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) - - // AddRoundKey and AddRoundConst(from roundKeys) - - // r9( s9 s8 s11 s10) - // r10(s12 s14 s14 s13) - - // MixColumn - "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 - "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 - "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 - // r4 ----------------> r4 - // round 13 - - // SubCell+ShiftRow+AC(c2) - // r3 (s3 s2 s1 s0) - // r4 (s7 s6 s5 s4) - // r5 (s11 s10 s9 s8) - // r6 (s15 s14 s13 s12) - - // 1st-2nd line - // r3(s3 s2 s1 s0) - "uxtb.w r9, r3, ror #24 \n\t" // s3 - "uxtb.w r8, r3, ror #16 \n\t" // s2 - "uxtb.w r7, r3, ror #8 \n\t" // s1 - "uxtb.w r3, r3 \n\t" // s0 - // r4(s6 s5 s4 s7) - "uxtb.w r12, r4, ror #16 \n\t" // s6 - "uxtb.w r11, r4, ror #8 \n\t" // s5 - "uxtb.w r10, r4 \n\t" // s4 - "uxtb.w r4, r4, ror #24 \n\t" // s7 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "eor.w r3, r3, r7, lsl #8 \n\t" - "eor.w r3, r3, r8, lsl #16 \n\t" - "eor.w r3, r3, r9, lsl #24 \n\t" - "eor.w r4, r4, r10, lsl #8 \n\t" - "eor.w r4, r4, r11, lsl #16 \n\t" - "eor.w r4, r4, r12, lsl #24 \n\t" - - // 3rd-4th line - // r5(s9 s8 s11 s10) - "uxtb.w r9, r5, ror #8 \n\t" // s9 - "uxtb.w r8, r5 \n\t" // s8 - "uxtb.w r7, r5, ror #24 \n\t" // s11 - "uxtb.w r5, r5, ror #16 \n\t" // s10 - // r6(s12 s15 s14 s13) - "uxtb.w r12, r6 \n\t" // s12 - "uxtb.w r11, r6, ror #24 \n\t" // s15 - "uxtb.w r10, r6, ror #16 \n\t" // s14 - "uxtb.w r6, r6, ror #8 \n\t" // s13 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "eor.w r5, r5, r7, lsl #8 \n\t" - "eor.w r5, r5, r8, lsl #16 \n\t" - "eor.w r5, r5, r9, lsl #24 \n\t" - "eor.w r6, r6, r10, lsl #8 \n\t" - "eor.w r6, r6, r11, lsl #16 \n\t" - "eor.w r6, r6, r12, lsl #24 \n\t" - - // AddRoundKey and AddRoundConst(from roundKeys) - "ldr.w r9, [r1,#48] \n\t" // load TK1 - "ldr.w r10, [r1,#52] \n\t" // load TK1 - "ldr.w r11, [r1,#160] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "ldr.w r12, [r1,#164] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - - "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) - "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) - // r8( s9 s8 s11 s10) - // r6(s12 s14 s14 s13) - - // MixColumn - "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 - "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 - "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 - // r8 ----------------> r8 - - // round 14 - - // SubCell+ShiftRow+AC(c2) - // r7 (s3 s2 s1 s0) - // r8 (s7 s6 s5 s4) - // r9 (s11 s10 s9 s8) - // r10(s15 s14 s13 s12) - - // 1st-2nd line - // r7(s3 s2 s1 s0) - "uxtb.w r5, r7, ror #24 \n\t" // s3 - "uxtb.w r4, r7, ror #16 \n\t" // s2 - "uxtb.w r3, r7, ror #8 \n\t" // s1 - "uxtb.w r7, r7 \n\t" // s0 - // r8(s6 s5 s4 s7) - "uxtb.w r12, r8, ror #16 \n\t" // s6 - "uxtb.w r11, r8, ror #8 \n\t" // s5 - "uxtb.w r6, r8 \n\t" // s4 - "uxtb.w r8, r8, ror #24 \n\t" // s7 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldr.w r0, [r1,#168] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r7, r7, r3, lsl #8 \n\t" - "eor.w r7, r7, r4, lsl #16 \n\t" - "eor.w r7, r7, r5, lsl #24 \n\t" - "eor.w r8, r8, r6, lsl #8 \n\t" - "eor.w r8, r8, r11, lsl #16 \n\t" - "eor.w r8, r8, r12, lsl #24 \n\t" - "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) - - // 3rd-4th line - // r9(s9 s8 s11 s10) - "uxtb.w r5, r9, ror #8 \n\t" // s9 - "uxtb.w r7, r9 \n\t" // s8 - "uxtb.w r3, r9, ror #24 \n\t" // s11 - "uxtb.w r9, r9, ror #16 \n\t" // s10 - // r10(s12 s15 s14 s13) - "uxtb.w r12, r10 \n\t" // s12 - "uxtb.w r11, r10, ror #24 \n\t" // s15 - "uxtb.w r6, r10, ror #16 \n\t" // s14 - "uxtb.w r10, r10, ror #8 \n\t" // s13 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldr.w r0, [r1,#172] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r9, r9, r3, lsl #8 \n\t" - "eor.w r9, r9, r7, lsl #16 \n\t" - "eor.w r9, r9, r5, lsl #24 \n\t" - "eor.w r10, r10, r6, lsl #8 \n\t" - "eor.w r10, r10, r11, lsl #16 \n\t" - "eor.w r10, r10, r12, lsl #24 \n\t" - "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) - - // AddRoundKey and AddRoundConst(from roundKeys) - - // r9( s9 s8 s11 s10) - // r10(s12 s14 s14 s13) - - // MixColumn - "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 - "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 - "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 - // r4 ----------------> r4 - // round 15 - - // SubCell+ShiftRow+AC(c2) - // r3 (s3 s2 s1 s0) - // r4 (s7 s6 s5 s4) - // r5 (s11 s10 s9 s8) - // r6 (s15 s14 s13 s12) - - // 1st-2nd line - // r3(s3 s2 s1 s0) - "uxtb.w r9, r3, ror #24 \n\t" // s3 - "uxtb.w r8, r3, ror #16 \n\t" // s2 - "uxtb.w r7, r3, ror #8 \n\t" // s1 - "uxtb.w r3, r3 \n\t" // s0 - // r4(s6 s5 s4 s7) - "uxtb.w r12, r4, ror #16 \n\t" // s6 - "uxtb.w r11, r4, ror #8 \n\t" // s5 - "uxtb.w r10, r4 \n\t" // s4 - "uxtb.w r4, r4, ror #24 \n\t" // s7 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "eor.w r3, r3, r7, lsl #8 \n\t" - "eor.w r3, r3, r8, lsl #16 \n\t" - "eor.w r3, r3, r9, lsl #24 \n\t" - "eor.w r4, r4, r10, lsl #8 \n\t" - "eor.w r4, r4, r11, lsl #16 \n\t" - "eor.w r4, r4, r12, lsl #24 \n\t" - - // 3rd-4th line - // r5(s9 s8 s11 s10) - "uxtb.w r9, r5, ror #8 \n\t" // s9 - "uxtb.w r8, r5 \n\t" // s8 - "uxtb.w r7, r5, ror #24 \n\t" // s11 - "uxtb.w r5, r5, ror #16 \n\t" // s10 - // r6(s12 s15 s14 s13) - "uxtb.w r12, r6 \n\t" // s12 - "uxtb.w r11, r6, ror #24 \n\t" // s15 - "uxtb.w r10, r6, ror #16 \n\t" // s14 - "uxtb.w r6, r6, ror #8 \n\t" // s13 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "eor.w r5, r5, r7, lsl #8 \n\t" - "eor.w r5, r5, r8, lsl #16 \n\t" - "eor.w r5, r5, r9, lsl #24 \n\t" - "eor.w r6, r6, r10, lsl #8 \n\t" - "eor.w r6, r6, r11, lsl #16 \n\t" - "eor.w r6, r6, r12, lsl #24 \n\t" - - // AddRoundKey and AddRoundConst(from roundKeys) - "ldr.w r9, [r1,#56] \n\t" // load TK1 - "ldr.w r10, [r1,#60] \n\t" // load TK1 - "ldr.w r11, [r1,#176] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "ldr.w r12, [r1,#180] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - - "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) - "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) - // r8( s9 s8 s11 s10) - // r6(s12 s14 s14 s13) - - // MixColumn - "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 - "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 - "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 - // r8 ----------------> r8 - - // round 16 - - // SubCell+ShiftRow+AC(c2) - // r7 (s3 s2 s1 s0) - // r8 (s7 s6 s5 s4) - // r9 (s11 s10 s9 s8) - // r10(s15 s14 s13 s12) - - // 1st-2nd line - // r7(s3 s2 s1 s0) - "uxtb.w r5, r7, ror #24 \n\t" // s3 - "uxtb.w r4, r7, ror #16 \n\t" // s2 - "uxtb.w r3, r7, ror #8 \n\t" // s1 - "uxtb.w r7, r7 \n\t" // s0 - // r8(s6 s5 s4 s7) - "uxtb.w r12, r8, ror #16 \n\t" // s6 - "uxtb.w r11, r8, ror #8 \n\t" // s5 - "uxtb.w r6, r8 \n\t" // s4 - "uxtb.w r8, r8, ror #24 \n\t" // s7 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldr.w r0, [r1,#184] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r7, r7, r3, lsl #8 \n\t" - "eor.w r7, r7, r4, lsl #16 \n\t" - "eor.w r7, r7, r5, lsl #24 \n\t" - "eor.w r8, r8, r6, lsl #8 \n\t" - "eor.w r8, r8, r11, lsl #16 \n\t" - "eor.w r8, r8, r12, lsl #24 \n\t" - "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) - - // 3rd-4th line - // r9(s9 s8 s11 s10) - "uxtb.w r5, r9, ror #8 \n\t" // s9 - "uxtb.w r7, r9 \n\t" // s8 - "uxtb.w r3, r9, ror #24 \n\t" // s11 - "uxtb.w r9, r9, ror #16 \n\t" // s10 - // r10(s12 s15 s14 s13) - "uxtb.w r12, r10 \n\t" // s12 - "uxtb.w r11, r10, ror #24 \n\t" // s15 - "uxtb.w r6, r10, ror #16 \n\t" // s14 - "uxtb.w r10, r10, ror #8 \n\t" // s13 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldr.w r0, [r1,#188] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r9, r9, r3, lsl #8 \n\t" - "eor.w r9, r9, r7, lsl #16 \n\t" - "eor.w r9, r9, r5, lsl #24 \n\t" - "eor.w r10, r10, r6, lsl #8 \n\t" - "eor.w r10, r10, r11, lsl #16 \n\t" - "eor.w r10, r10, r12, lsl #24 \n\t" - "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) - - // AddRoundKey and AddRoundConst(from roundKeys) - - // r9( s9 s8 s11 s10) - // r10(s12 s14 s14 s13) - - // MixColumn - "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 - "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 - "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 - // r4 ----------------> r4 - // round 17 - - // SubCell+ShiftRow+AC(c2) - // r3 (s3 s2 s1 s0) - // r4 (s7 s6 s5 s4) - // r5 (s11 s10 s9 s8) - // r6 (s15 s14 s13 s12) - - // 1st-2nd line - // r3(s3 s2 s1 s0) - "uxtb.w r9, r3, ror #24 \n\t" // s3 - "uxtb.w r8, r3, ror #16 \n\t" // s2 - "uxtb.w r7, r3, ror #8 \n\t" // s1 - "uxtb.w r3, r3 \n\t" // s0 - // r4(s6 s5 s4 s7) - "uxtb.w r12, r4, ror #16 \n\t" // s6 - "uxtb.w r11, r4, ror #8 \n\t" // s5 - "uxtb.w r10, r4 \n\t" // s4 - "uxtb.w r4, r4, ror #24 \n\t" // s7 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "eor.w r3, r3, r7, lsl #8 \n\t" - "eor.w r3, r3, r8, lsl #16 \n\t" - "eor.w r3, r3, r9, lsl #24 \n\t" - "eor.w r4, r4, r10, lsl #8 \n\t" - "eor.w r4, r4, r11, lsl #16 \n\t" - "eor.w r4, r4, r12, lsl #24 \n\t" - - // 3rd-4th line - // r5(s9 s8 s11 s10) - "uxtb.w r9, r5, ror #8 \n\t" // s9 - "uxtb.w r8, r5 \n\t" // s8 - "uxtb.w r7, r5, ror #24 \n\t" // s11 - "uxtb.w r5, r5, ror #16 \n\t" // s10 - // r6(s12 s15 s14 s13) - "uxtb.w r12, r6 \n\t" // s12 - "uxtb.w r11, r6, ror #24 \n\t" // s15 - "uxtb.w r10, r6, ror #16 \n\t" // s14 - "uxtb.w r6, r6, ror #8 \n\t" // s13 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "eor.w r5, r5, r7, lsl #8 \n\t" - "eor.w r5, r5, r8, lsl #16 \n\t" - "eor.w r5, r5, r9, lsl #24 \n\t" - "eor.w r6, r6, r10, lsl #8 \n\t" - "eor.w r6, r6, r11, lsl #16 \n\t" - "eor.w r6, r6, r12, lsl #24 \n\t" - - // AddRoundKey and AddRoundConst(from roundKeys) - "ldr.w r9, [r1,#0] \n\t" // load TK1 - "ldr.w r10, [r1,#4] \n\t" // load TK1 - "ldr.w r11, [r1,#192] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "ldr.w r12, [r1,#196] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - - "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) - "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) - // r8( s9 s8 s11 s10) - // r6(s12 s14 s14 s13) - - // MixColumn - "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 - "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 - "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 - // r8 ----------------> r8 - - // round 18 - - // SubCell+ShiftRow+AC(c2) - // r7 (s3 s2 s1 s0) - // r8 (s7 s6 s5 s4) - // r9 (s11 s10 s9 s8) - // r10(s15 s14 s13 s12) - - // 1st-2nd line - // r7(s3 s2 s1 s0) - "uxtb.w r5, r7, ror #24 \n\t" // s3 - "uxtb.w r4, r7, ror #16 \n\t" // s2 - "uxtb.w r3, r7, ror #8 \n\t" // s1 - "uxtb.w r7, r7 \n\t" // s0 - // r8(s6 s5 s4 s7) - "uxtb.w r12, r8, ror #16 \n\t" // s6 - "uxtb.w r11, r8, ror #8 \n\t" // s5 - "uxtb.w r6, r8 \n\t" // s4 - "uxtb.w r8, r8, ror #24 \n\t" // s7 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldr.w r0, [r1,#200] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r7, r7, r3, lsl #8 \n\t" - "eor.w r7, r7, r4, lsl #16 \n\t" - "eor.w r7, r7, r5, lsl #24 \n\t" - "eor.w r8, r8, r6, lsl #8 \n\t" - "eor.w r8, r8, r11, lsl #16 \n\t" - "eor.w r8, r8, r12, lsl #24 \n\t" - "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) - - // 3rd-4th line - // r9(s9 s8 s11 s10) - "uxtb.w r5, r9, ror #8 \n\t" // s9 - "uxtb.w r7, r9 \n\t" // s8 - "uxtb.w r3, r9, ror #24 \n\t" // s11 - "uxtb.w r9, r9, ror #16 \n\t" // s10 - // r10(s12 s15 s14 s13) - "uxtb.w r12, r10 \n\t" // s12 - "uxtb.w r11, r10, ror #24 \n\t" // s15 - "uxtb.w r6, r10, ror #16 \n\t" // s14 - "uxtb.w r10, r10, ror #8 \n\t" // s13 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldr.w r0, [r1,#204] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r9, r9, r3, lsl #8 \n\t" - "eor.w r9, r9, r7, lsl #16 \n\t" - "eor.w r9, r9, r5, lsl #24 \n\t" - "eor.w r10, r10, r6, lsl #8 \n\t" - "eor.w r10, r10, r11, lsl #16 \n\t" - "eor.w r10, r10, r12, lsl #24 \n\t" - "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) - - // AddRoundKey and AddRoundConst(from roundKeys) - - // r9( s9 s8 s11 s10) - // r10(s12 s14 s14 s13) - - // MixColumn - "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 - "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 - "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 - // r4 ----------------> r4 - // round 19 - - // SubCell+ShiftRow+AC(c2) - // r3 (s3 s2 s1 s0) - // r4 (s7 s6 s5 s4) - // r5 (s11 s10 s9 s8) - // r6 (s15 s14 s13 s12) - - // 1st-2nd line - // r3(s3 s2 s1 s0) - "uxtb.w r9, r3, ror #24 \n\t" // s3 - "uxtb.w r8, r3, ror #16 \n\t" // s2 - "uxtb.w r7, r3, ror #8 \n\t" // s1 - "uxtb.w r3, r3 \n\t" // s0 - // r4(s6 s5 s4 s7) - "uxtb.w r12, r4, ror #16 \n\t" // s6 - "uxtb.w r11, r4, ror #8 \n\t" // s5 - "uxtb.w r10, r4 \n\t" // s4 - "uxtb.w r4, r4, ror #24 \n\t" // s7 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "eor.w r3, r3, r7, lsl #8 \n\t" - "eor.w r3, r3, r8, lsl #16 \n\t" - "eor.w r3, r3, r9, lsl #24 \n\t" - "eor.w r4, r4, r10, lsl #8 \n\t" - "eor.w r4, r4, r11, lsl #16 \n\t" - "eor.w r4, r4, r12, lsl #24 \n\t" - - // 3rd-4th line - // r5(s9 s8 s11 s10) - "uxtb.w r9, r5, ror #8 \n\t" // s9 - "uxtb.w r8, r5 \n\t" // s8 - "uxtb.w r7, r5, ror #24 \n\t" // s11 - "uxtb.w r5, r5, ror #16 \n\t" // s10 - // r6(s12 s15 s14 s13) - "uxtb.w r12, r6 \n\t" // s12 - "uxtb.w r11, r6, ror #24 \n\t" // s15 - "uxtb.w r10, r6, ror #16 \n\t" // s14 - "uxtb.w r6, r6, ror #8 \n\t" // s13 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "eor.w r5, r5, r7, lsl #8 \n\t" - "eor.w r5, r5, r8, lsl #16 \n\t" - "eor.w r5, r5, r9, lsl #24 \n\t" - "eor.w r6, r6, r10, lsl #8 \n\t" - "eor.w r6, r6, r11, lsl #16 \n\t" - "eor.w r6, r6, r12, lsl #24 \n\t" - - // AddRoundKey and AddRoundConst(from roundKeys) - "ldr.w r9, [r1,#8] \n\t" // load TK1 - "ldr.w r10, [r1,#12] \n\t" // load TK1 - "ldr.w r11, [r1,#208] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "ldr.w r12, [r1,#212] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - - "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) - "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) - // r8( s9 s8 s11 s10) - // r6(s12 s14 s14 s13) - - // MixColumn - "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 - "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 - "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 - // r8 ----------------> r8 - - // round 20 - - // SubCell+ShiftRow+AC(c2) - // r7 (s3 s2 s1 s0) - // r8 (s7 s6 s5 s4) - // r9 (s11 s10 s9 s8) - // r10(s15 s14 s13 s12) - - // 1st-2nd line - // r7(s3 s2 s1 s0) - "uxtb.w r5, r7, ror #24 \n\t" // s3 - "uxtb.w r4, r7, ror #16 \n\t" // s2 - "uxtb.w r3, r7, ror #8 \n\t" // s1 - "uxtb.w r7, r7 \n\t" // s0 - // r8(s6 s5 s4 s7) - "uxtb.w r12, r8, ror #16 \n\t" // s6 - "uxtb.w r11, r8, ror #8 \n\t" // s5 - "uxtb.w r6, r8 \n\t" // s4 - "uxtb.w r8, r8, ror #24 \n\t" // s7 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldr.w r0, [r1,#216] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r7, r7, r3, lsl #8 \n\t" - "eor.w r7, r7, r4, lsl #16 \n\t" - "eor.w r7, r7, r5, lsl #24 \n\t" - "eor.w r8, r8, r6, lsl #8 \n\t" - "eor.w r8, r8, r11, lsl #16 \n\t" - "eor.w r8, r8, r12, lsl #24 \n\t" - "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) - - // 3rd-4th line - // r9(s9 s8 s11 s10) - "uxtb.w r5, r9, ror #8 \n\t" // s9 - "uxtb.w r7, r9 \n\t" // s8 - "uxtb.w r3, r9, ror #24 \n\t" // s11 - "uxtb.w r9, r9, ror #16 \n\t" // s10 - // r10(s12 s15 s14 s13) - "uxtb.w r12, r10 \n\t" // s12 - "uxtb.w r11, r10, ror #24 \n\t" // s15 - "uxtb.w r6, r10, ror #16 \n\t" // s14 - "uxtb.w r10, r10, ror #8 \n\t" // s13 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldr.w r0, [r1,#220] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r9, r9, r3, lsl #8 \n\t" - "eor.w r9, r9, r7, lsl #16 \n\t" - "eor.w r9, r9, r5, lsl #24 \n\t" - "eor.w r10, r10, r6, lsl #8 \n\t" - "eor.w r10, r10, r11, lsl #16 \n\t" - "eor.w r10, r10, r12, lsl #24 \n\t" - "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) - - // AddRoundKey and AddRoundConst(from roundKeys) - - // r9( s9 s8 s11 s10) - // r10(s12 s14 s14 s13) - - // MixColumn - "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 - "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 - "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 - // r4 ----------------> r4 - // round 21 - - // SubCell+ShiftRow+AC(c2) - // r3 (s3 s2 s1 s0) - // r4 (s7 s6 s5 s4) - // r5 (s11 s10 s9 s8) - // r6 (s15 s14 s13 s12) - - // 1st-2nd line - // r3(s3 s2 s1 s0) - "uxtb.w r9, r3, ror #24 \n\t" // s3 - "uxtb.w r8, r3, ror #16 \n\t" // s2 - "uxtb.w r7, r3, ror #8 \n\t" // s1 - "uxtb.w r3, r3 \n\t" // s0 - // r4(s6 s5 s4 s7) - "uxtb.w r12, r4, ror #16 \n\t" // s6 - "uxtb.w r11, r4, ror #8 \n\t" // s5 - "uxtb.w r10, r4 \n\t" // s4 - "uxtb.w r4, r4, ror #24 \n\t" // s7 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "eor.w r3, r3, r7, lsl #8 \n\t" - "eor.w r3, r3, r8, lsl #16 \n\t" - "eor.w r3, r3, r9, lsl #24 \n\t" - "eor.w r4, r4, r10, lsl #8 \n\t" - "eor.w r4, r4, r11, lsl #16 \n\t" - "eor.w r4, r4, r12, lsl #24 \n\t" - - // 3rd-4th line - // r5(s9 s8 s11 s10) - "uxtb.w r9, r5, ror #8 \n\t" // s9 - "uxtb.w r8, r5 \n\t" // s8 - "uxtb.w r7, r5, ror #24 \n\t" // s11 - "uxtb.w r5, r5, ror #16 \n\t" // s10 - // r6(s12 s15 s14 s13) - "uxtb.w r12, r6 \n\t" // s12 - "uxtb.w r11, r6, ror #24 \n\t" // s15 - "uxtb.w r10, r6, ror #16 \n\t" // s14 - "uxtb.w r6, r6, ror #8 \n\t" // s13 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "eor.w r5, r5, r7, lsl #8 \n\t" - "eor.w r5, r5, r8, lsl #16 \n\t" - "eor.w r5, r5, r9, lsl #24 \n\t" - "eor.w r6, r6, r10, lsl #8 \n\t" - "eor.w r6, r6, r11, lsl #16 \n\t" - "eor.w r6, r6, r12, lsl #24 \n\t" - - // AddRoundKey and AddRoundConst(from roundKeys) - "ldr.w r9, [r1,#16] \n\t" // load TK1 - "ldr.w r10, [r1,#20] \n\t" // load TK1 - "ldr.w r11, [r1,#224] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "ldr.w r12, [r1,#228] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - - "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) - "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) - // r8( s9 s8 s11 s10) - // r6(s12 s14 s14 s13) - - // MixColumn - "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 - "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 - "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 - // r8 ----------------> r8 - - // round 22 - - // SubCell+ShiftRow+AC(c2) - // r7 (s3 s2 s1 s0) - // r8 (s7 s6 s5 s4) - // r9 (s11 s10 s9 s8) - // r10(s15 s14 s13 s12) - - // 1st-2nd line - // r7(s3 s2 s1 s0) - "uxtb.w r5, r7, ror #24 \n\t" // s3 - "uxtb.w r4, r7, ror #16 \n\t" // s2 - "uxtb.w r3, r7, ror #8 \n\t" // s1 - "uxtb.w r7, r7 \n\t" // s0 - // r8(s6 s5 s4 s7) - "uxtb.w r12, r8, ror #16 \n\t" // s6 - "uxtb.w r11, r8, ror #8 \n\t" // s5 - "uxtb.w r6, r8 \n\t" // s4 - "uxtb.w r8, r8, ror #24 \n\t" // s7 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldr.w r0, [r1,#232] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r7, r7, r3, lsl #8 \n\t" - "eor.w r7, r7, r4, lsl #16 \n\t" - "eor.w r7, r7, r5, lsl #24 \n\t" - "eor.w r8, r8, r6, lsl #8 \n\t" - "eor.w r8, r8, r11, lsl #16 \n\t" - "eor.w r8, r8, r12, lsl #24 \n\t" - "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) - - // 3rd-4th line - // r9(s9 s8 s11 s10) - "uxtb.w r5, r9, ror #8 \n\t" // s9 - "uxtb.w r7, r9 \n\t" // s8 - "uxtb.w r3, r9, ror #24 \n\t" // s11 - "uxtb.w r9, r9, ror #16 \n\t" // s10 - // r10(s12 s15 s14 s13) - "uxtb.w r12, r10 \n\t" // s12 - "uxtb.w r11, r10, ror #24 \n\t" // s15 - "uxtb.w r6, r10, ror #16 \n\t" // s14 - "uxtb.w r10, r10, ror #8 \n\t" // s13 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldr.w r0, [r1,#236] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r9, r9, r3, lsl #8 \n\t" - "eor.w r9, r9, r7, lsl #16 \n\t" - "eor.w r9, r9, r5, lsl #24 \n\t" - "eor.w r10, r10, r6, lsl #8 \n\t" - "eor.w r10, r10, r11, lsl #16 \n\t" - "eor.w r10, r10, r12, lsl #24 \n\t" - "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) - - // AddRoundKey and AddRoundConst(from roundKeys) - - // r9( s9 s8 s11 s10) - // r10(s12 s14 s14 s13) - - // MixColumn - "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 - "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 - "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 - // r4 ----------------> r4 - // round 23 - - // SubCell+ShiftRow+AC(c2) - // r3 (s3 s2 s1 s0) - // r4 (s7 s6 s5 s4) - // r5 (s11 s10 s9 s8) - // r6 (s15 s14 s13 s12) - - // 1st-2nd line - // r3(s3 s2 s1 s0) - "uxtb.w r9, r3, ror #24 \n\t" // s3 - "uxtb.w r8, r3, ror #16 \n\t" // s2 - "uxtb.w r7, r3, ror #8 \n\t" // s1 - "uxtb.w r3, r3 \n\t" // s0 - // r4(s6 s5 s4 s7) - "uxtb.w r12, r4, ror #16 \n\t" // s6 - "uxtb.w r11, r4, ror #8 \n\t" // s5 - "uxtb.w r10, r4 \n\t" // s4 - "uxtb.w r4, r4, ror #24 \n\t" // s7 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "eor.w r3, r3, r7, lsl #8 \n\t" - "eor.w r3, r3, r8, lsl #16 \n\t" - "eor.w r3, r3, r9, lsl #24 \n\t" - "eor.w r4, r4, r10, lsl #8 \n\t" - "eor.w r4, r4, r11, lsl #16 \n\t" - "eor.w r4, r4, r12, lsl #24 \n\t" - - // 3rd-4th line - // r5(s9 s8 s11 s10) - "uxtb.w r9, r5, ror #8 \n\t" // s9 - "uxtb.w r8, r5 \n\t" // s8 - "uxtb.w r7, r5, ror #24 \n\t" // s11 - "uxtb.w r5, r5, ror #16 \n\t" // s10 - // r6(s12 s15 s14 s13) - "uxtb.w r12, r6 \n\t" // s12 - "uxtb.w r11, r6, ror #24 \n\t" // s15 - "uxtb.w r10, r6, ror #16 \n\t" // s14 - "uxtb.w r6, r6, ror #8 \n\t" // s13 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "eor.w r5, r5, r7, lsl #8 \n\t" - "eor.w r5, r5, r8, lsl #16 \n\t" - "eor.w r5, r5, r9, lsl #24 \n\t" - "eor.w r6, r6, r10, lsl #8 \n\t" - "eor.w r6, r6, r11, lsl #16 \n\t" - "eor.w r6, r6, r12, lsl #24 \n\t" - - // AddRoundKey and AddRoundConst(from roundKeys) - "ldr.w r9, [r1,#24] \n\t" // load TK1 - "ldr.w r10, [r1,#28] \n\t" // load TK1 - "ldr.w r11, [r1,#240] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "ldr.w r12, [r1,#244] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - - "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) - "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) - // r8( s9 s8 s11 s10) - // r6(s12 s14 s14 s13) - - // MixColumn - "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 - "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 - "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 - // r8 ----------------> r8 - - // round 24 - - // SubCell+ShiftRow+AC(c2) - // r7 (s3 s2 s1 s0) - // r8 (s7 s6 s5 s4) - // r9 (s11 s10 s9 s8) - // r10(s15 s14 s13 s12) - - // 1st-2nd line - // r7(s3 s2 s1 s0) - "uxtb.w r5, r7, ror #24 \n\t" // s3 - "uxtb.w r4, r7, ror #16 \n\t" // s2 - "uxtb.w r3, r7, ror #8 \n\t" // s1 - "uxtb.w r7, r7 \n\t" // s0 - // r8(s6 s5 s4 s7) - "uxtb.w r12, r8, ror #16 \n\t" // s6 - "uxtb.w r11, r8, ror #8 \n\t" // s5 - "uxtb.w r6, r8 \n\t" // s4 - "uxtb.w r8, r8, ror #24 \n\t" // s7 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldr.w r0, [r1,#248] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r7, r7, r3, lsl #8 \n\t" - "eor.w r7, r7, r4, lsl #16 \n\t" - "eor.w r7, r7, r5, lsl #24 \n\t" - "eor.w r8, r8, r6, lsl #8 \n\t" - "eor.w r8, r8, r11, lsl #16 \n\t" - "eor.w r8, r8, r12, lsl #24 \n\t" - "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) - - // 3rd-4th line - // r9(s9 s8 s11 s10) - "uxtb.w r5, r9, ror #8 \n\t" // s9 - "uxtb.w r7, r9 \n\t" // s8 - "uxtb.w r3, r9, ror #24 \n\t" // s11 - "uxtb.w r9, r9, ror #16 \n\t" // s10 - // r10(s12 s15 s14 s13) - "uxtb.w r12, r10 \n\t" // s12 - "uxtb.w r11, r10, ror #24 \n\t" // s15 - "uxtb.w r6, r10, ror #16 \n\t" // s14 - "uxtb.w r10, r10, ror #8 \n\t" // s13 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldr.w r0, [r1,#252] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r9, r9, r3, lsl #8 \n\t" - "eor.w r9, r9, r7, lsl #16 \n\t" - "eor.w r9, r9, r5, lsl #24 \n\t" - "eor.w r10, r10, r6, lsl #8 \n\t" - "eor.w r10, r10, r11, lsl #16 \n\t" - "eor.w r10, r10, r12, lsl #24 \n\t" - "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) - - // AddRoundKey and AddRoundConst(from roundKeys) - - // r9( s9 s8 s11 s10) - // r10(s12 s14 s14 s13) - - // MixColumn - "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 - "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 - "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 - // r4 ----------------> r4 - // round 25 - - // SubCell+ShiftRow+AC(c2) - // r3 (s3 s2 s1 s0) - // r4 (s7 s6 s5 s4) - // r5 (s11 s10 s9 s8) - // r6 (s15 s14 s13 s12) - - // 1st-2nd line - // r3(s3 s2 s1 s0) - "uxtb.w r9, r3, ror #24 \n\t" // s3 - "uxtb.w r8, r3, ror #16 \n\t" // s2 - "uxtb.w r7, r3, ror #8 \n\t" // s1 - "uxtb.w r3, r3 \n\t" // s0 - // r4(s6 s5 s4 s7) - "uxtb.w r12, r4, ror #16 \n\t" // s6 - "uxtb.w r11, r4, ror #8 \n\t" // s5 - "uxtb.w r10, r4 \n\t" // s4 - "uxtb.w r4, r4, ror #24 \n\t" // s7 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "eor.w r3, r3, r7, lsl #8 \n\t" - "eor.w r3, r3, r8, lsl #16 \n\t" - "eor.w r3, r3, r9, lsl #24 \n\t" - "eor.w r4, r4, r10, lsl #8 \n\t" - "eor.w r4, r4, r11, lsl #16 \n\t" - "eor.w r4, r4, r12, lsl #24 \n\t" - - // 3rd-4th line - // r5(s9 s8 s11 s10) - "uxtb.w r9, r5, ror #8 \n\t" // s9 - "uxtb.w r8, r5 \n\t" // s8 - "uxtb.w r7, r5, ror #24 \n\t" // s11 - "uxtb.w r5, r5, ror #16 \n\t" // s10 - // r6(s12 s15 s14 s13) - "uxtb.w r12, r6 \n\t" // s12 - "uxtb.w r11, r6, ror #24 \n\t" // s15 - "uxtb.w r10, r6, ror #16 \n\t" // s14 - "uxtb.w r6, r6, ror #8 \n\t" // s13 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "eor.w r5, r5, r7, lsl #8 \n\t" - "eor.w r5, r5, r8, lsl #16 \n\t" - "eor.w r5, r5, r9, lsl #24 \n\t" - "eor.w r6, r6, r10, lsl #8 \n\t" - "eor.w r6, r6, r11, lsl #16 \n\t" - "eor.w r6, r6, r12, lsl #24 \n\t" - - // AddRoundKey and AddRoundConst(from roundKeys) - "ldr.w r9, [r1,#32] \n\t" // load TK1 - "ldr.w r10, [r1,#36] \n\t" // load TK1 - "ldr.w r11, [r1,#256] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "ldr.w r12, [r1,#260] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - - "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) - "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) - // r8( s9 s8 s11 s10) - // r6(s12 s14 s14 s13) - - // MixColumn - "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 - "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 - "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 - // r8 ----------------> r8 - - // round 26 - - // SubCell+ShiftRow+AC(c2) - // r7 (s3 s2 s1 s0) - // r8 (s7 s6 s5 s4) - // r9 (s11 s10 s9 s8) - // r10(s15 s14 s13 s12) - - // 1st-2nd line - // r7(s3 s2 s1 s0) - "uxtb.w r5, r7, ror #24 \n\t" // s3 - "uxtb.w r4, r7, ror #16 \n\t" // s2 - "uxtb.w r3, r7, ror #8 \n\t" // s1 - "uxtb.w r7, r7 \n\t" // s0 - // r8(s6 s5 s4 s7) - "uxtb.w r12, r8, ror #16 \n\t" // s6 - "uxtb.w r11, r8, ror #8 \n\t" // s5 - "uxtb.w r6, r8 \n\t" // s4 - "uxtb.w r8, r8, ror #24 \n\t" // s7 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldr.w r0, [r1,#264] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r7, r7, r3, lsl #8 \n\t" - "eor.w r7, r7, r4, lsl #16 \n\t" - "eor.w r7, r7, r5, lsl #24 \n\t" - "eor.w r8, r8, r6, lsl #8 \n\t" - "eor.w r8, r8, r11, lsl #16 \n\t" - "eor.w r8, r8, r12, lsl #24 \n\t" - "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) - - // 3rd-4th line - // r9(s9 s8 s11 s10) - "uxtb.w r5, r9, ror #8 \n\t" // s9 - "uxtb.w r7, r9 \n\t" // s8 - "uxtb.w r3, r9, ror #24 \n\t" // s11 - "uxtb.w r9, r9, ror #16 \n\t" // s10 - // r10(s12 s15 s14 s13) - "uxtb.w r12, r10 \n\t" // s12 - "uxtb.w r11, r10, ror #24 \n\t" // s15 - "uxtb.w r6, r10, ror #16 \n\t" // s14 - "uxtb.w r10, r10, ror #8 \n\t" // s13 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldr.w r0, [r1,#268] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r9, r9, r3, lsl #8 \n\t" - "eor.w r9, r9, r7, lsl #16 \n\t" - "eor.w r9, r9, r5, lsl #24 \n\t" - "eor.w r10, r10, r6, lsl #8 \n\t" - "eor.w r10, r10, r11, lsl #16 \n\t" - "eor.w r10, r10, r12, lsl #24 \n\t" - "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) - - // AddRoundKey and AddRoundConst(from roundKeys) - - // r9( s9 s8 s11 s10) - // r10(s12 s14 s14 s13) - - // MixColumn - "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 - "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 - "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 - // r4 ----------------> r4 - // round 27 - - // SubCell+ShiftRow+AC(c2) - // r3 (s3 s2 s1 s0) - // r4 (s7 s6 s5 s4) - // r5 (s11 s10 s9 s8) - // r6 (s15 s14 s13 s12) - - // 1st-2nd line - // r3(s3 s2 s1 s0) - "uxtb.w r9, r3, ror #24 \n\t" // s3 - "uxtb.w r8, r3, ror #16 \n\t" // s2 - "uxtb.w r7, r3, ror #8 \n\t" // s1 - "uxtb.w r3, r3 \n\t" // s0 - // r4(s6 s5 s4 s7) - "uxtb.w r12, r4, ror #16 \n\t" // s6 - "uxtb.w r11, r4, ror #8 \n\t" // s5 - "uxtb.w r10, r4 \n\t" // s4 - "uxtb.w r4, r4, ror #24 \n\t" // s7 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "eor.w r3, r3, r7, lsl #8 \n\t" - "eor.w r3, r3, r8, lsl #16 \n\t" - "eor.w r3, r3, r9, lsl #24 \n\t" - "eor.w r4, r4, r10, lsl #8 \n\t" - "eor.w r4, r4, r11, lsl #16 \n\t" - "eor.w r4, r4, r12, lsl #24 \n\t" - - // 3rd-4th line - // r5(s9 s8 s11 s10) - "uxtb.w r9, r5, ror #8 \n\t" // s9 - "uxtb.w r8, r5 \n\t" // s8 - "uxtb.w r7, r5, ror #24 \n\t" // s11 - "uxtb.w r5, r5, ror #16 \n\t" // s10 - // r6(s12 s15 s14 s13) - "uxtb.w r12, r6 \n\t" // s12 - "uxtb.w r11, r6, ror #24 \n\t" // s15 - "uxtb.w r10, r6, ror #16 \n\t" // s14 - "uxtb.w r6, r6, ror #8 \n\t" // s13 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "eor.w r5, r5, r7, lsl #8 \n\t" - "eor.w r5, r5, r8, lsl #16 \n\t" - "eor.w r5, r5, r9, lsl #24 \n\t" - "eor.w r6, r6, r10, lsl #8 \n\t" - "eor.w r6, r6, r11, lsl #16 \n\t" - "eor.w r6, r6, r12, lsl #24 \n\t" - - // AddRoundKey and AddRoundConst(from roundKeys) - "ldr.w r9, [r1,#40] \n\t" // load TK1 - "ldr.w r10, [r1,#44] \n\t" // load TK1 - "ldr.w r11, [r1,#272] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "ldr.w r12, [r1,#276] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - - "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) - "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) - // r8( s9 s8 s11 s10) - // r6(s12 s14 s14 s13) - - // MixColumn - "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 - "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 - "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 - // r8 ----------------> r8 - - // round 28 - - // SubCell+ShiftRow+AC(c2) - // r7 (s3 s2 s1 s0) - // r8 (s7 s6 s5 s4) - // r9 (s11 s10 s9 s8) - // r10(s15 s14 s13 s12) - - // 1st-2nd line - // r7(s3 s2 s1 s0) - "uxtb.w r5, r7, ror #24 \n\t" // s3 - "uxtb.w r4, r7, ror #16 \n\t" // s2 - "uxtb.w r3, r7, ror #8 \n\t" // s1 - "uxtb.w r7, r7 \n\t" // s0 - // r8(s6 s5 s4 s7) - "uxtb.w r12, r8, ror #16 \n\t" // s6 - "uxtb.w r11, r8, ror #8 \n\t" // s5 - "uxtb.w r6, r8 \n\t" // s4 - "uxtb.w r8, r8, ror #24 \n\t" // s7 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldr.w r0, [r1,#280] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r7, r7, r3, lsl #8 \n\t" - "eor.w r7, r7, r4, lsl #16 \n\t" - "eor.w r7, r7, r5, lsl #24 \n\t" - "eor.w r8, r8, r6, lsl #8 \n\t" - "eor.w r8, r8, r11, lsl #16 \n\t" - "eor.w r8, r8, r12, lsl #24 \n\t" - "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) - - // 3rd-4th line - // r9(s9 s8 s11 s10) - "uxtb.w r5, r9, ror #8 \n\t" // s9 - "uxtb.w r7, r9 \n\t" // s8 - "uxtb.w r3, r9, ror #24 \n\t" // s11 - "uxtb.w r9, r9, ror #16 \n\t" // s10 - // r10(s12 s15 s14 s13) - "uxtb.w r12, r10 \n\t" // s12 - "uxtb.w r11, r10, ror #24 \n\t" // s15 - "uxtb.w r6, r10, ror #16 \n\t" // s14 - "uxtb.w r10, r10, ror #8 \n\t" // s13 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldr.w r0, [r1,#284] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r9, r9, r3, lsl #8 \n\t" - "eor.w r9, r9, r7, lsl #16 \n\t" - "eor.w r9, r9, r5, lsl #24 \n\t" - "eor.w r10, r10, r6, lsl #8 \n\t" - "eor.w r10, r10, r11, lsl #16 \n\t" - "eor.w r10, r10, r12, lsl #24 \n\t" - "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) - - // AddRoundKey and AddRoundConst(from roundKeys) - - // r9( s9 s8 s11 s10) - // r10(s12 s14 s14 s13) - - // MixColumn - "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 - "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 - "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 - // r4 ----------------> r4 - // round 29 - - // SubCell+ShiftRow+AC(c2) - // r3 (s3 s2 s1 s0) - // r4 (s7 s6 s5 s4) - // r5 (s11 s10 s9 s8) - // r6 (s15 s14 s13 s12) - - // 1st-2nd line - // r3(s3 s2 s1 s0) - "uxtb.w r9, r3, ror #24 \n\t" // s3 - "uxtb.w r8, r3, ror #16 \n\t" // s2 - "uxtb.w r7, r3, ror #8 \n\t" // s1 - "uxtb.w r3, r3 \n\t" // s0 - // r4(s6 s5 s4 s7) - "uxtb.w r12, r4, ror #16 \n\t" // s6 - "uxtb.w r11, r4, ror #8 \n\t" // s5 - "uxtb.w r10, r4 \n\t" // s4 - "uxtb.w r4, r4, ror #24 \n\t" // s7 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "eor.w r3, r3, r7, lsl #8 \n\t" - "eor.w r3, r3, r8, lsl #16 \n\t" - "eor.w r3, r3, r9, lsl #24 \n\t" - "eor.w r4, r4, r10, lsl #8 \n\t" - "eor.w r4, r4, r11, lsl #16 \n\t" - "eor.w r4, r4, r12, lsl #24 \n\t" - - // 3rd-4th line - // r5(s9 s8 s11 s10) - "uxtb.w r9, r5, ror #8 \n\t" // s9 - "uxtb.w r8, r5 \n\t" // s8 - "uxtb.w r7, r5, ror #24 \n\t" // s11 - "uxtb.w r5, r5, ror #16 \n\t" // s10 - // r6(s12 s15 s14 s13) - "uxtb.w r12, r6 \n\t" // s12 - "uxtb.w r11, r6, ror #24 \n\t" // s15 - "uxtb.w r10, r6, ror #16 \n\t" // s14 - "uxtb.w r6, r6, ror #8 \n\t" // s13 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "eor.w r5, r5, r7, lsl #8 \n\t" - "eor.w r5, r5, r8, lsl #16 \n\t" - "eor.w r5, r5, r9, lsl #24 \n\t" - "eor.w r6, r6, r10, lsl #8 \n\t" - "eor.w r6, r6, r11, lsl #16 \n\t" - "eor.w r6, r6, r12, lsl #24 \n\t" - - // AddRoundKey and AddRoundConst(from roundKeys) - "ldr.w r9, [r1,#48] \n\t" // load TK1 - "ldr.w r10, [r1,#52] \n\t" // load TK1 - "ldr.w r11, [r1,#288] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "ldr.w r12, [r1,#292] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - - "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) - "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) - // r8( s9 s8 s11 s10) - // r6(s12 s14 s14 s13) - - // MixColumn - "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 - "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 - "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 - // r8 ----------------> r8 - - // round 30 - - // SubCell+ShiftRow+AC(c2) - // r7 (s3 s2 s1 s0) - // r8 (s7 s6 s5 s4) - // r9 (s11 s10 s9 s8) - // r10(s15 s14 s13 s12) - - // 1st-2nd line - // r7(s3 s2 s1 s0) - "uxtb.w r5, r7, ror #24 \n\t" // s3 - "uxtb.w r4, r7, ror #16 \n\t" // s2 - "uxtb.w r3, r7, ror #8 \n\t" // s1 - "uxtb.w r7, r7 \n\t" // s0 - // r8(s6 s5 s4 s7) - "uxtb.w r12, r8, ror #16 \n\t" // s6 - "uxtb.w r11, r8, ror #8 \n\t" // s5 - "uxtb.w r6, r8 \n\t" // s4 - "uxtb.w r8, r8, ror #24 \n\t" // s7 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldr.w r0, [r1,#296] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r7, r7, r3, lsl #8 \n\t" - "eor.w r7, r7, r4, lsl #16 \n\t" - "eor.w r7, r7, r5, lsl #24 \n\t" - "eor.w r8, r8, r6, lsl #8 \n\t" - "eor.w r8, r8, r11, lsl #16 \n\t" - "eor.w r8, r8, r12, lsl #24 \n\t" - "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) - - // 3rd-4th line - // r9(s9 s8 s11 s10) - "uxtb.w r5, r9, ror #8 \n\t" // s9 - "uxtb.w r7, r9 \n\t" // s8 - "uxtb.w r3, r9, ror #24 \n\t" // s11 - "uxtb.w r9, r9, ror #16 \n\t" // s10 - // r10(s12 s15 s14 s13) - "uxtb.w r12, r10 \n\t" // s12 - "uxtb.w r11, r10, ror #24 \n\t" // s15 - "uxtb.w r6, r10, ror #16 \n\t" // s14 - "uxtb.w r10, r10, ror #8 \n\t" // s13 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldr.w r0, [r1,#300] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r9, r9, r3, lsl #8 \n\t" - "eor.w r9, r9, r7, lsl #16 \n\t" - "eor.w r9, r9, r5, lsl #24 \n\t" - "eor.w r10, r10, r6, lsl #8 \n\t" - "eor.w r10, r10, r11, lsl #16 \n\t" - "eor.w r10, r10, r12, lsl #24 \n\t" - "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) - - // AddRoundKey and AddRoundConst(from roundKeys) - - // r9( s9 s8 s11 s10) - // r10(s12 s14 s14 s13) - - // MixColumn - "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 - "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 - "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 - // r4 ----------------> r4 - // round 31 - - // SubCell+ShiftRow+AC(c2) - // r3 (s3 s2 s1 s0) - // r4 (s7 s6 s5 s4) - // r5 (s11 s10 s9 s8) - // r6 (s15 s14 s13 s12) - - // 1st-2nd line - // r3(s3 s2 s1 s0) - "uxtb.w r9, r3, ror #24 \n\t" // s3 - "uxtb.w r8, r3, ror #16 \n\t" // s2 - "uxtb.w r7, r3, ror #8 \n\t" // s1 - "uxtb.w r3, r3 \n\t" // s0 - // r4(s6 s5 s4 s7) - "uxtb.w r12, r4, ror #16 \n\t" // s6 - "uxtb.w r11, r4, ror #8 \n\t" // s5 - "uxtb.w r10, r4 \n\t" // s4 - "uxtb.w r4, r4, ror #24 \n\t" // s7 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "eor.w r3, r3, r7, lsl #8 \n\t" - "eor.w r3, r3, r8, lsl #16 \n\t" - "eor.w r3, r3, r9, lsl #24 \n\t" - "eor.w r4, r4, r10, lsl #8 \n\t" - "eor.w r4, r4, r11, lsl #16 \n\t" - "eor.w r4, r4, r12, lsl #24 \n\t" - - // 3rd-4th line - // r5(s9 s8 s11 s10) - "uxtb.w r9, r5, ror #8 \n\t" // s9 - "uxtb.w r8, r5 \n\t" // s8 - "uxtb.w r7, r5, ror #24 \n\t" // s11 - "uxtb.w r5, r5, ror #16 \n\t" // s10 - // r6(s12 s15 s14 s13) - "uxtb.w r12, r6 \n\t" // s12 - "uxtb.w r11, r6, ror #24 \n\t" // s15 - "uxtb.w r10, r6, ror #16 \n\t" // s14 - "uxtb.w r6, r6, ror #8 \n\t" // s13 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "eor.w r5, r5, r7, lsl #8 \n\t" - "eor.w r5, r5, r8, lsl #16 \n\t" - "eor.w r5, r5, r9, lsl #24 \n\t" - "eor.w r6, r6, r10, lsl #8 \n\t" - "eor.w r6, r6, r11, lsl #16 \n\t" - "eor.w r6, r6, r12, lsl #24 \n\t" - - // AddRoundKey and AddRoundConst(from roundKeys) - "ldr.w r9, [r1,#56] \n\t" // load TK1 - "ldr.w r10, [r1,#60] \n\t" // load TK1 - "ldr.w r11, [r1,#304] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "ldr.w r12, [r1,#308] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - - "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) - "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) - // r8( s9 s8 s11 s10) - // r6(s12 s14 s14 s13) - - // MixColumn - "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 - "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 - "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 - // r8 ----------------> r8 - - // round 32 - - // SubCell+ShiftRow+AC(c2) - // r7 (s3 s2 s1 s0) - // r8 (s7 s6 s5 s4) - // r9 (s11 s10 s9 s8) - // r10(s15 s14 s13 s12) - - // 1st-2nd line - // r7(s3 s2 s1 s0) - "uxtb.w r5, r7, ror #24 \n\t" // s3 - "uxtb.w r4, r7, ror #16 \n\t" // s2 - "uxtb.w r3, r7, ror #8 \n\t" // s1 - "uxtb.w r7, r7 \n\t" // s0 - // r8(s6 s5 s4 s7) - "uxtb.w r12, r8, ror #16 \n\t" // s6 - "uxtb.w r11, r8, ror #8 \n\t" // s5 - "uxtb.w r6, r8 \n\t" // s4 - "uxtb.w r8, r8, ror #24 \n\t" // s7 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldr.w r0, [r1,#312] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r7, r7, r3, lsl #8 \n\t" - "eor.w r7, r7, r4, lsl #16 \n\t" - "eor.w r7, r7, r5, lsl #24 \n\t" - "eor.w r8, r8, r6, lsl #8 \n\t" - "eor.w r8, r8, r11, lsl #16 \n\t" - "eor.w r8, r8, r12, lsl #24 \n\t" - "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) - - // 3rd-4th line - // r9(s9 s8 s11 s10) - "uxtb.w r5, r9, ror #8 \n\t" // s9 - "uxtb.w r7, r9 \n\t" // s8 - "uxtb.w r3, r9, ror #24 \n\t" // s11 - "uxtb.w r9, r9, ror #16 \n\t" // s10 - // r10(s12 s15 s14 s13) - "uxtb.w r12, r10 \n\t" // s12 - "uxtb.w r11, r10, ror #24 \n\t" // s15 - "uxtb.w r6, r10, ror #16 \n\t" // s14 - "uxtb.w r10, r10, ror #8 \n\t" // s13 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldr.w r0, [r1,#316] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r9, r9, r3, lsl #8 \n\t" - "eor.w r9, r9, r7, lsl #16 \n\t" - "eor.w r9, r9, r5, lsl #24 \n\t" - "eor.w r10, r10, r6, lsl #8 \n\t" - "eor.w r10, r10, r11, lsl #16 \n\t" - "eor.w r10, r10, r12, lsl #24 \n\t" - "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) - - // AddRoundKey and AddRoundConst(from roundKeys) - - // r9( s9 s8 s11 s10) - // r10(s12 s14 s14 s13) - - // MixColumn - "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 - "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 - "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 - // r4 ----------------> r4 - // round 33 - - // SubCell+ShiftRow+AC(c2) - // r3 (s3 s2 s1 s0) - // r4 (s7 s6 s5 s4) - // r5 (s11 s10 s9 s8) - // r6 (s15 s14 s13 s12) - - // 1st-2nd line - // r3(s3 s2 s1 s0) - "uxtb.w r9, r3, ror #24 \n\t" // s3 - "uxtb.w r8, r3, ror #16 \n\t" // s2 - "uxtb.w r7, r3, ror #8 \n\t" // s1 - "uxtb.w r3, r3 \n\t" // s0 - // r4(s6 s5 s4 s7) - "uxtb.w r12, r4, ror #16 \n\t" // s6 - "uxtb.w r11, r4, ror #8 \n\t" // s5 - "uxtb.w r10, r4 \n\t" // s4 - "uxtb.w r4, r4, ror #24 \n\t" // s7 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "eor.w r3, r3, r7, lsl #8 \n\t" - "eor.w r3, r3, r8, lsl #16 \n\t" - "eor.w r3, r3, r9, lsl #24 \n\t" - "eor.w r4, r4, r10, lsl #8 \n\t" - "eor.w r4, r4, r11, lsl #16 \n\t" - "eor.w r4, r4, r12, lsl #24 \n\t" - - // 3rd-4th line - // r5(s9 s8 s11 s10) - "uxtb.w r9, r5, ror #8 \n\t" // s9 - "uxtb.w r8, r5 \n\t" // s8 - "uxtb.w r7, r5, ror #24 \n\t" // s11 - "uxtb.w r5, r5, ror #16 \n\t" // s10 - // r6(s12 s15 s14 s13) - "uxtb.w r12, r6 \n\t" // s12 - "uxtb.w r11, r6, ror #24 \n\t" // s15 - "uxtb.w r10, r6, ror #16 \n\t" // s14 - "uxtb.w r6, r6, ror #8 \n\t" // s13 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "eor.w r5, r5, r7, lsl #8 \n\t" - "eor.w r5, r5, r8, lsl #16 \n\t" - "eor.w r5, r5, r9, lsl #24 \n\t" - "eor.w r6, r6, r10, lsl #8 \n\t" - "eor.w r6, r6, r11, lsl #16 \n\t" - "eor.w r6, r6, r12, lsl #24 \n\t" - - // AddRoundKey and AddRoundConst(from roundKeys) - "ldr.w r9, [r1,#0] \n\t" // load TK1 - "ldr.w r10, [r1,#4] \n\t" // load TK1 - "ldr.w r11, [r1,#320] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "ldr.w r12, [r1,#324] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - - "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) - "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) - // r8( s9 s8 s11 s10) - // r6(s12 s14 s14 s13) - - // MixColumn - "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 - "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 - "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 - // r8 ----------------> r8 - - // round 34 - - // SubCell+ShiftRow+AC(c2) - // r7 (s3 s2 s1 s0) - // r8 (s7 s6 s5 s4) - // r9 (s11 s10 s9 s8) - // r10(s15 s14 s13 s12) - - // 1st-2nd line - // r7(s3 s2 s1 s0) - "uxtb.w r5, r7, ror #24 \n\t" // s3 - "uxtb.w r4, r7, ror #16 \n\t" // s2 - "uxtb.w r3, r7, ror #8 \n\t" // s1 - "uxtb.w r7, r7 \n\t" // s0 - // r8(s6 s5 s4 s7) - "uxtb.w r12, r8, ror #16 \n\t" // s6 - "uxtb.w r11, r8, ror #8 \n\t" // s5 - "uxtb.w r6, r8 \n\t" // s4 - "uxtb.w r8, r8, ror #24 \n\t" // s7 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldr.w r0, [r1,#328] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r7, r7, r3, lsl #8 \n\t" - "eor.w r7, r7, r4, lsl #16 \n\t" - "eor.w r7, r7, r5, lsl #24 \n\t" - "eor.w r8, r8, r6, lsl #8 \n\t" - "eor.w r8, r8, r11, lsl #16 \n\t" - "eor.w r8, r8, r12, lsl #24 \n\t" - "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) - - // 3rd-4th line - // r9(s9 s8 s11 s10) - "uxtb.w r5, r9, ror #8 \n\t" // s9 - "uxtb.w r7, r9 \n\t" // s8 - "uxtb.w r3, r9, ror #24 \n\t" // s11 - "uxtb.w r9, r9, ror #16 \n\t" // s10 - // r10(s12 s15 s14 s13) - "uxtb.w r12, r10 \n\t" // s12 - "uxtb.w r11, r10, ror #24 \n\t" // s15 - "uxtb.w r6, r10, ror #16 \n\t" // s14 - "uxtb.w r10, r10, ror #8 \n\t" // s13 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldr.w r0, [r1,#332] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r9, r9, r3, lsl #8 \n\t" - "eor.w r9, r9, r7, lsl #16 \n\t" - "eor.w r9, r9, r5, lsl #24 \n\t" - "eor.w r10, r10, r6, lsl #8 \n\t" - "eor.w r10, r10, r11, lsl #16 \n\t" - "eor.w r10, r10, r12, lsl #24 \n\t" - "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) - - // AddRoundKey and AddRoundConst(from roundKeys) - - // r9( s9 s8 s11 s10) - // r10(s12 s14 s14 s13) - - // MixColumn - "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 - "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 - "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 - // r4 ----------------> r4 - // round 35 - - // SubCell+ShiftRow+AC(c2) - // r3 (s3 s2 s1 s0) - // r4 (s7 s6 s5 s4) - // r5 (s11 s10 s9 s8) - // r6 (s15 s14 s13 s12) - - // 1st-2nd line - // r3(s3 s2 s1 s0) - "uxtb.w r9, r3, ror #24 \n\t" // s3 - "uxtb.w r8, r3, ror #16 \n\t" // s2 - "uxtb.w r7, r3, ror #8 \n\t" // s1 - "uxtb.w r3, r3 \n\t" // s0 - // r4(s6 s5 s4 s7) - "uxtb.w r12, r4, ror #16 \n\t" // s6 - "uxtb.w r11, r4, ror #8 \n\t" // s5 - "uxtb.w r10, r4 \n\t" // s4 - "uxtb.w r4, r4, ror #24 \n\t" // s7 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "eor.w r3, r3, r7, lsl #8 \n\t" - "eor.w r3, r3, r8, lsl #16 \n\t" - "eor.w r3, r3, r9, lsl #24 \n\t" - "eor.w r4, r4, r10, lsl #8 \n\t" - "eor.w r4, r4, r11, lsl #16 \n\t" - "eor.w r4, r4, r12, lsl #24 \n\t" - - // 3rd-4th line - // r5(s9 s8 s11 s10) - "uxtb.w r9, r5, ror #8 \n\t" // s9 - "uxtb.w r8, r5 \n\t" // s8 - "uxtb.w r7, r5, ror #24 \n\t" // s11 - "uxtb.w r5, r5, ror #16 \n\t" // s10 - // r6(s12 s15 s14 s13) - "uxtb.w r12, r6 \n\t" // s12 - "uxtb.w r11, r6, ror #24 \n\t" // s15 - "uxtb.w r10, r6, ror #16 \n\t" // s14 - "uxtb.w r6, r6, ror #8 \n\t" // s13 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "eor.w r5, r5, r7, lsl #8 \n\t" - "eor.w r5, r5, r8, lsl #16 \n\t" - "eor.w r5, r5, r9, lsl #24 \n\t" - "eor.w r6, r6, r10, lsl #8 \n\t" - "eor.w r6, r6, r11, lsl #16 \n\t" - "eor.w r6, r6, r12, lsl #24 \n\t" - - // AddRoundKey and AddRoundConst(from roundKeys) - "ldr.w r9, [r1,#8] \n\t" // load TK1 - "ldr.w r10, [r1,#12] \n\t" // load TK1 - "ldr.w r11, [r1,#336] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "ldr.w r12, [r1,#340] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - - "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) - "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) - // r8( s9 s8 s11 s10) - // r6(s12 s14 s14 s13) - - // MixColumn - "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 - "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 - "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 - // r8 ----------------> r8 - - // round 36 - - // SubCell+ShiftRow+AC(c2) - // r7 (s3 s2 s1 s0) - // r8 (s7 s6 s5 s4) - // r9 (s11 s10 s9 s8) - // r10(s15 s14 s13 s12) - - // 1st-2nd line - // r7(s3 s2 s1 s0) - "uxtb.w r5, r7, ror #24 \n\t" // s3 - "uxtb.w r4, r7, ror #16 \n\t" // s2 - "uxtb.w r3, r7, ror #8 \n\t" // s1 - "uxtb.w r7, r7 \n\t" // s0 - // r8(s6 s5 s4 s7) - "uxtb.w r12, r8, ror #16 \n\t" // s6 - "uxtb.w r11, r8, ror #8 \n\t" // s5 - "uxtb.w r6, r8 \n\t" // s4 - "uxtb.w r8, r8, ror #24 \n\t" // s7 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldr.w r0, [r1,#344] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r7, r7, r3, lsl #8 \n\t" - "eor.w r7, r7, r4, lsl #16 \n\t" - "eor.w r7, r7, r5, lsl #24 \n\t" - "eor.w r8, r8, r6, lsl #8 \n\t" - "eor.w r8, r8, r11, lsl #16 \n\t" - "eor.w r8, r8, r12, lsl #24 \n\t" - "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) - - // 3rd-4th line - // r9(s9 s8 s11 s10) - "uxtb.w r5, r9, ror #8 \n\t" // s9 - "uxtb.w r7, r9 \n\t" // s8 - "uxtb.w r3, r9, ror #24 \n\t" // s11 - "uxtb.w r9, r9, ror #16 \n\t" // s10 - // r10(s12 s15 s14 s13) - "uxtb.w r12, r10 \n\t" // s12 - "uxtb.w r11, r10, ror #24 \n\t" // s15 - "uxtb.w r6, r10, ror #16 \n\t" // s14 - "uxtb.w r10, r10, ror #8 \n\t" // s13 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldr.w r0, [r1,#348] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r9, r9, r3, lsl #8 \n\t" - "eor.w r9, r9, r7, lsl #16 \n\t" - "eor.w r9, r9, r5, lsl #24 \n\t" - "eor.w r10, r10, r6, lsl #8 \n\t" - "eor.w r10, r10, r11, lsl #16 \n\t" - "eor.w r10, r10, r12, lsl #24 \n\t" - "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) - - // AddRoundKey and AddRoundConst(from roundKeys) - - // r9( s9 s8 s11 s10) - // r10(s12 s14 s14 s13) - - // MixColumn - "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 - "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 - "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 - // r4 ----------------> r4 - // round 37 - - // SubCell+ShiftRow+AC(c2) - // r3 (s3 s2 s1 s0) - // r4 (s7 s6 s5 s4) - // r5 (s11 s10 s9 s8) - // r6 (s15 s14 s13 s12) - - // 1st-2nd line - // r3(s3 s2 s1 s0) - "uxtb.w r9, r3, ror #24 \n\t" // s3 - "uxtb.w r8, r3, ror #16 \n\t" // s2 - "uxtb.w r7, r3, ror #8 \n\t" // s1 - "uxtb.w r3, r3 \n\t" // s0 - // r4(s6 s5 s4 s7) - "uxtb.w r12, r4, ror #16 \n\t" // s6 - "uxtb.w r11, r4, ror #8 \n\t" // s5 - "uxtb.w r10, r4 \n\t" // s4 - "uxtb.w r4, r4, ror #24 \n\t" // s7 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "eor.w r3, r3, r7, lsl #8 \n\t" - "eor.w r3, r3, r8, lsl #16 \n\t" - "eor.w r3, r3, r9, lsl #24 \n\t" - "eor.w r4, r4, r10, lsl #8 \n\t" - "eor.w r4, r4, r11, lsl #16 \n\t" - "eor.w r4, r4, r12, lsl #24 \n\t" - - // 3rd-4th line - // r5(s9 s8 s11 s10) - "uxtb.w r9, r5, ror #8 \n\t" // s9 - "uxtb.w r8, r5 \n\t" // s8 - "uxtb.w r7, r5, ror #24 \n\t" // s11 - "uxtb.w r5, r5, ror #16 \n\t" // s10 - // r6(s12 s15 s14 s13) - "uxtb.w r12, r6 \n\t" // s12 - "uxtb.w r11, r6, ror #24 \n\t" // s15 - "uxtb.w r10, r6, ror #16 \n\t" // s14 - "uxtb.w r6, r6, ror #8 \n\t" // s13 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "eor.w r5, r5, r7, lsl #8 \n\t" - "eor.w r5, r5, r8, lsl #16 \n\t" - "eor.w r5, r5, r9, lsl #24 \n\t" - "eor.w r6, r6, r10, lsl #8 \n\t" - "eor.w r6, r6, r11, lsl #16 \n\t" - "eor.w r6, r6, r12, lsl #24 \n\t" - - // AddRoundKey and AddRoundConst(from roundKeys) - "ldr.w r9, [r1,#16] \n\t" // load TK1 - "ldr.w r10, [r1,#20] \n\t" // load TK1 - "ldr.w r11, [r1,#352] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "ldr.w r12, [r1,#356] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - - "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) - "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) - // r8( s9 s8 s11 s10) - // r6(s12 s14 s14 s13) - - // MixColumn - "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 - "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 - "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 - // r8 ----------------> r8 - - // round 38 - - // SubCell+ShiftRow+AC(c2) - // r7 (s3 s2 s1 s0) - // r8 (s7 s6 s5 s4) - // r9 (s11 s10 s9 s8) - // r10(s15 s14 s13 s12) - - // 1st-2nd line - // r7(s3 s2 s1 s0) - "uxtb.w r5, r7, ror #24 \n\t" // s3 - "uxtb.w r4, r7, ror #16 \n\t" // s2 - "uxtb.w r3, r7, ror #8 \n\t" // s1 - "uxtb.w r7, r7 \n\t" // s0 - // r8(s6 s5 s4 s7) - "uxtb.w r12, r8, ror #16 \n\t" // s6 - "uxtb.w r11, r8, ror #8 \n\t" // s5 - "uxtb.w r6, r8 \n\t" // s4 - "uxtb.w r8, r8, ror #24 \n\t" // s7 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldr.w r0, [r1,#360] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r7, r7, r3, lsl #8 \n\t" - "eor.w r7, r7, r4, lsl #16 \n\t" - "eor.w r7, r7, r5, lsl #24 \n\t" - "eor.w r8, r8, r6, lsl #8 \n\t" - "eor.w r8, r8, r11, lsl #16 \n\t" - "eor.w r8, r8, r12, lsl #24 \n\t" - "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) - - // 3rd-4th line - // r9(s9 s8 s11 s10) - "uxtb.w r5, r9, ror #8 \n\t" // s9 - "uxtb.w r7, r9 \n\t" // s8 - "uxtb.w r3, r9, ror #24 \n\t" // s11 - "uxtb.w r9, r9, ror #16 \n\t" // s10 - // r10(s12 s15 s14 s13) - "uxtb.w r12, r10 \n\t" // s12 - "uxtb.w r11, r10, ror #24 \n\t" // s15 - "uxtb.w r6, r10, ror #16 \n\t" // s14 - "uxtb.w r10, r10, ror #8 \n\t" // s13 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldr.w r0, [r1,#364] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r9, r9, r3, lsl #8 \n\t" - "eor.w r9, r9, r7, lsl #16 \n\t" - "eor.w r9, r9, r5, lsl #24 \n\t" - "eor.w r10, r10, r6, lsl #8 \n\t" - "eor.w r10, r10, r11, lsl #16 \n\t" - "eor.w r10, r10, r12, lsl #24 \n\t" - "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) - - // AddRoundKey and AddRoundConst(from roundKeys) - - // r9( s9 s8 s11 s10) - // r10(s12 s14 s14 s13) - - // MixColumn - "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 - "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 - "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 - // r4 ----------------> r4 - // round 39 - - // SubCell+ShiftRow+AC(c2) - // r3 (s3 s2 s1 s0) - // r4 (s7 s6 s5 s4) - // r5 (s11 s10 s9 s8) - // r6 (s15 s14 s13 s12) - - // 1st-2nd line - // r3(s3 s2 s1 s0) - "uxtb.w r9, r3, ror #24 \n\t" // s3 - "uxtb.w r8, r3, ror #16 \n\t" // s2 - "uxtb.w r7, r3, ror #8 \n\t" // s1 - "uxtb.w r3, r3 \n\t" // s0 - // r4(s6 s5 s4 s7) - "uxtb.w r12, r4, ror #16 \n\t" // s6 - "uxtb.w r11, r4, ror #8 \n\t" // s5 - "uxtb.w r10, r4 \n\t" // s4 - "uxtb.w r4, r4, ror #24 \n\t" // s7 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "eor.w r3, r3, r7, lsl #8 \n\t" - "eor.w r3, r3, r8, lsl #16 \n\t" - "eor.w r3, r3, r9, lsl #24 \n\t" - "eor.w r4, r4, r10, lsl #8 \n\t" - "eor.w r4, r4, r11, lsl #16 \n\t" - "eor.w r4, r4, r12, lsl #24 \n\t" - - // 3rd-4th line - // r5(s9 s8 s11 s10) - "uxtb.w r9, r5, ror #8 \n\t" // s9 - "uxtb.w r8, r5 \n\t" // s8 - "uxtb.w r7, r5, ror #24 \n\t" // s11 - "uxtb.w r5, r5, ror #16 \n\t" // s10 - // r6(s12 s15 s14 s13) - "uxtb.w r12, r6 \n\t" // s12 - "uxtb.w r11, r6, ror #24 \n\t" // s15 - "uxtb.w r10, r6, ror #16 \n\t" // s14 - "uxtb.w r6, r6, ror #8 \n\t" // s13 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "eor.w r5, r5, r7, lsl #8 \n\t" - "eor.w r5, r5, r8, lsl #16 \n\t" - "eor.w r5, r5, r9, lsl #24 \n\t" - "eor.w r6, r6, r10, lsl #8 \n\t" - "eor.w r6, r6, r11, lsl #16 \n\t" - "eor.w r6, r6, r12, lsl #24 \n\t" - - // AddRoundKey and AddRoundConst(from roundKeys) - "ldr.w r9, [r1,#24] \n\t" // load TK1 - "ldr.w r10, [r1,#28] \n\t" // load TK1 - "ldr.w r11, [r1,#368] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "ldr.w r12, [r1,#372] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - - "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) - "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) - // r8( s9 s8 s11 s10) - // r6(s12 s14 s14 s13) - - // MixColumn - "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 - "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 - "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 - // r8 ----------------> r8 - - // round 40 - - // SubCell+ShiftRow+AC(c2) - // r7 (s3 s2 s1 s0) - // r8 (s7 s6 s5 s4) - // r9 (s11 s10 s9 s8) - // r10(s15 s14 s13 s12) - - // 1st-2nd line - // r7(s3 s2 s1 s0) - "uxtb.w r5, r7, ror #24 \n\t" // s3 - "uxtb.w r4, r7, ror #16 \n\t" // s2 - "uxtb.w r3, r7, ror #8 \n\t" // s1 - "uxtb.w r7, r7 \n\t" // s0 - // r8(s6 s5 s4 s7) - "uxtb.w r12, r8, ror #16 \n\t" // s6 - "uxtb.w r11, r8, ror #8 \n\t" // s5 - "uxtb.w r6, r8 \n\t" // s4 - "uxtb.w r8, r8, ror #24 \n\t" // s7 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldr.w r0, [r1,#376] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r7, r7, r3, lsl #8 \n\t" - "eor.w r7, r7, r4, lsl #16 \n\t" - "eor.w r7, r7, r5, lsl #24 \n\t" - "eor.w r8, r8, r6, lsl #8 \n\t" - "eor.w r8, r8, r11, lsl #16 \n\t" - "eor.w r8, r8, r12, lsl #24 \n\t" - "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) - - // 3rd-4th line - // r9(s9 s8 s11 s10) - "uxtb.w r5, r9, ror #8 \n\t" // s9 - "uxtb.w r7, r9 \n\t" // s8 - "uxtb.w r3, r9, ror #24 \n\t" // s11 - "uxtb.w r9, r9, ror #16 \n\t" // s10 - // r10(s12 s15 s14 s13) - "uxtb.w r12, r10 \n\t" // s12 - "uxtb.w r11, r10, ror #24 \n\t" // s15 - "uxtb.w r6, r10, ror #16 \n\t" // s14 - "uxtb.w r10, r10, ror #8 \n\t" // s13 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldr.w r0, [r1,#380] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r9, r9, r3, lsl #8 \n\t" - "eor.w r9, r9, r7, lsl #16 \n\t" - "eor.w r9, r9, r5, lsl #24 \n\t" - "eor.w r10, r10, r6, lsl #8 \n\t" - "eor.w r10, r10, r11, lsl #16 \n\t" - "eor.w r10, r10, r12, lsl #24 \n\t" - "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) - - // AddRoundKey and AddRoundConst(from roundKeys) - - // r9( s9 s8 s11 s10) - // r10(s12 s14 s14 s13) - - // MixColumn - "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 - "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 - "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 - // r4 ----------------> r4 - - // round 41 - - // SubCell+ShiftRow+AC(c2) - // r3 (s3 s2 s1 s0) - // r4 (s7 s6 s5 s4) - // r5 (s11 s10 s9 s8) - // r6 (s15 s14 s13 s12) - - // 1st-2nd line - // r3(s3 s2 s1 s0) - "uxtb.w r9, r3, ror #24 \n\t" // s3 - "uxtb.w r8, r3, ror #16 \n\t" // s2 - "uxtb.w r7, r3, ror #8 \n\t" // s1 - "uxtb.w r3, r3 \n\t" // s0 - // r4(s6 s5 s4 s7) - "uxtb.w r12, r4, ror #16 \n\t" // s6 - "uxtb.w r11, r4, ror #8 \n\t" // s5 - "uxtb.w r10, r4 \n\t" // s4 - "uxtb.w r4, r4, ror #24 \n\t" // s7 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "eor.w r3, r3, r7, lsl #8 \n\t" - "eor.w r3, r3, r8, lsl #16 \n\t" - "eor.w r3, r3, r9, lsl #24 \n\t" - "eor.w r4, r4, r10, lsl #8 \n\t" - "eor.w r4, r4, r11, lsl #16 \n\t" - "eor.w r4, r4, r12, lsl #24 \n\t" - - // 3rd-4th line - // r5(s9 s8 s11 s10) - "uxtb.w r9, r5, ror #8 \n\t" // s9 - "uxtb.w r8, r5 \n\t" // s8 - "uxtb.w r7, r5, ror #24 \n\t" // s11 - "uxtb.w r5, r5, ror #16 \n\t" // s10 - // r6(s12 s15 s14 s13) - "uxtb.w r12, r6 \n\t" // s12 - "uxtb.w r11, r6, ror #24 \n\t" // s15 - "uxtb.w r10, r6, ror #16 \n\t" // s14 - "uxtb.w r6, r6, ror #8 \n\t" // s13 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "eor.w r5, r5, r7, lsl #8 \n\t" - "eor.w r5, r5, r8, lsl #16 \n\t" - "eor.w r5, r5, r9, lsl #24 \n\t" - "eor.w r6, r6, r10, lsl #8 \n\t" - "eor.w r6, r6, r11, lsl #16 \n\t" - "eor.w r6, r6, r12, lsl #24 \n\t" - - // AddRoundKey and AddRoundConst(from roundKeys) - "ldr.w r9, [r1,#32] \n\t" // load TK1 - "ldr.w r10, [r1,#36] \n\t" // load TK1 - "ldr.w r11, [r1,#384] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "ldr.w r12, [r1,#388] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - - "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) - "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) - // r8( s9 s8 s11 s10) - // r6(s12 s14 s14 s13) - - // MixColumn - "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 - "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 - "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 - // r8 ----------------> r8 - - // round 42 - - // SubCell+ShiftRow+AC(c2) - // r7 (s3 s2 s1 s0) - // r8 (s7 s6 s5 s4) - // r9 (s11 s10 s9 s8) - // r10(s15 s14 s13 s12) - - // 1st-2nd line - // r7(s3 s2 s1 s0) - "uxtb.w r5, r7, ror #24 \n\t" // s3 - "uxtb.w r4, r7, ror #16 \n\t" // s2 - "uxtb.w r3, r7, ror #8 \n\t" // s1 - "uxtb.w r7, r7 \n\t" // s0 - // r8(s6 s5 s4 s7) - "uxtb.w r12, r8, ror #16 \n\t" // s6 - "uxtb.w r11, r8, ror #8 \n\t" // s5 - "uxtb.w r6, r8 \n\t" // s4 - "uxtb.w r8, r8, ror #24 \n\t" // s7 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldr.w r0, [r1,#392] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r7, r7, r3, lsl #8 \n\t" - "eor.w r7, r7, r4, lsl #16 \n\t" - "eor.w r7, r7, r5, lsl #24 \n\t" - "eor.w r8, r8, r6, lsl #8 \n\t" - "eor.w r8, r8, r11, lsl #16 \n\t" - "eor.w r8, r8, r12, lsl #24 \n\t" - "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) - - // 3rd-4th line - // r9(s9 s8 s11 s10) - "uxtb.w r5, r9, ror #8 \n\t" // s9 - "uxtb.w r7, r9 \n\t" // s8 - "uxtb.w r3, r9, ror #24 \n\t" // s11 - "uxtb.w r9, r9, ror #16 \n\t" // s10 - // r10(s12 s15 s14 s13) - "uxtb.w r12, r10 \n\t" // s12 - "uxtb.w r11, r10, ror #24 \n\t" // s15 - "uxtb.w r6, r10, ror #16 \n\t" // s14 - "uxtb.w r10, r10, ror #8 \n\t" // s13 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldr.w r0, [r1,#396] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r9, r9, r3, lsl #8 \n\t" - "eor.w r9, r9, r7, lsl #16 \n\t" - "eor.w r9, r9, r5, lsl #24 \n\t" - "eor.w r10, r10, r6, lsl #8 \n\t" - "eor.w r10, r10, r11, lsl #16 \n\t" - "eor.w r10, r10, r12, lsl #24 \n\t" - "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) - - // AddRoundKey and AddRoundConst(from roundKeys) - - // r9( s9 s8 s11 s10) - // r10(s12 s14 s14 s13) - - // MixColumn - "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 - "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 - "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 - // r4 ----------------> r4 - // round 43 - - // SubCell+ShiftRow+AC(c2) - // r3 (s3 s2 s1 s0) - // r4 (s7 s6 s5 s4) - // r5 (s11 s10 s9 s8) - // r6 (s15 s14 s13 s12) - - // 1st-2nd line - // r3(s3 s2 s1 s0) - "uxtb.w r9, r3, ror #24 \n\t" // s3 - "uxtb.w r8, r3, ror #16 \n\t" // s2 - "uxtb.w r7, r3, ror #8 \n\t" // s1 - "uxtb.w r3, r3 \n\t" // s0 - // r4(s6 s5 s4 s7) - "uxtb.w r12, r4, ror #16 \n\t" // s6 - "uxtb.w r11, r4, ror #8 \n\t" // s5 - "uxtb.w r10, r4 \n\t" // s4 - "uxtb.w r4, r4, ror #24 \n\t" // s7 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "eor.w r3, r3, r7, lsl #8 \n\t" - "eor.w r3, r3, r8, lsl #16 \n\t" - "eor.w r3, r3, r9, lsl #24 \n\t" - "eor.w r4, r4, r10, lsl #8 \n\t" - "eor.w r4, r4, r11, lsl #16 \n\t" - "eor.w r4, r4, r12, lsl #24 \n\t" - - // 3rd-4th line - // r5(s9 s8 s11 s10) - "uxtb.w r9, r5, ror #8 \n\t" // s9 - "uxtb.w r8, r5 \n\t" // s8 - "uxtb.w r7, r5, ror #24 \n\t" // s11 - "uxtb.w r5, r5, ror #16 \n\t" // s10 - // r6(s12 s15 s14 s13) - "uxtb.w r12, r6 \n\t" // s12 - "uxtb.w r11, r6, ror #24 \n\t" // s15 - "uxtb.w r10, r6, ror #16 \n\t" // s14 - "uxtb.w r6, r6, ror #8 \n\t" // s13 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "eor.w r5, r5, r7, lsl #8 \n\t" - "eor.w r5, r5, r8, lsl #16 \n\t" - "eor.w r5, r5, r9, lsl #24 \n\t" - "eor.w r6, r6, r10, lsl #8 \n\t" - "eor.w r6, r6, r11, lsl #16 \n\t" - "eor.w r6, r6, r12, lsl #24 \n\t" - - // AddRoundKey and AddRoundConst(from roundKeys) - "ldr.w r9, [r1,#40] \n\t" // load TK1 - "ldr.w r10, [r1,#44] \n\t" // load TK1 - "ldr.w r11, [r1,#400] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "ldr.w r12, [r1,#404] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - - "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) - "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) - // r8( s9 s8 s11 s10) - // r6(s12 s14 s14 s13) - - // MixColumn - "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 - "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 - "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 - // r8 ----------------> r8 - - // round 44 - - // SubCell+ShiftRow+AC(c2) - // r7 (s3 s2 s1 s0) - // r8 (s7 s6 s5 s4) - // r9 (s11 s10 s9 s8) - // r10(s15 s14 s13 s12) - - // 1st-2nd line - // r7(s3 s2 s1 s0) - "uxtb.w r5, r7, ror #24 \n\t" // s3 - "uxtb.w r4, r7, ror #16 \n\t" // s2 - "uxtb.w r3, r7, ror #8 \n\t" // s1 - "uxtb.w r7, r7 \n\t" // s0 - // r8(s6 s5 s4 s7) - "uxtb.w r12, r8, ror #16 \n\t" // s6 - "uxtb.w r11, r8, ror #8 \n\t" // s5 - "uxtb.w r6, r8 \n\t" // s4 - "uxtb.w r8, r8, ror #24 \n\t" // s7 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldr.w r0, [r1,#408] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r7, r7, r3, lsl #8 \n\t" - "eor.w r7, r7, r4, lsl #16 \n\t" - "eor.w r7, r7, r5, lsl #24 \n\t" - "eor.w r8, r8, r6, lsl #8 \n\t" - "eor.w r8, r8, r11, lsl #16 \n\t" - "eor.w r8, r8, r12, lsl #24 \n\t" - "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) - - // 3rd-4th line - // r9(s9 s8 s11 s10) - "uxtb.w r5, r9, ror #8 \n\t" // s9 - "uxtb.w r7, r9 \n\t" // s8 - "uxtb.w r3, r9, ror #24 \n\t" // s11 - "uxtb.w r9, r9, ror #16 \n\t" // s10 - // r10(s12 s15 s14 s13) - "uxtb.w r12, r10 \n\t" // s12 - "uxtb.w r11, r10, ror #24 \n\t" // s15 - "uxtb.w r6, r10, ror #16 \n\t" // s14 - "uxtb.w r10, r10, ror #8 \n\t" // s13 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldr.w r0, [r1,#412] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r9, r9, r3, lsl #8 \n\t" - "eor.w r9, r9, r7, lsl #16 \n\t" - "eor.w r9, r9, r5, lsl #24 \n\t" - "eor.w r10, r10, r6, lsl #8 \n\t" - "eor.w r10, r10, r11, lsl #16 \n\t" - "eor.w r10, r10, r12, lsl #24 \n\t" - "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) - - // AddRoundKey and AddRoundConst(from roundKeys) - - // r9( s9 s8 s11 s10) - // r10(s12 s14 s14 s13) - - // MixColumn - "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 - "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 - "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 - // r4 ----------------> r4 - // round 45 - - // SubCell+ShiftRow+AC(c2) - // r3 (s3 s2 s1 s0) - // r4 (s7 s6 s5 s4) - // r5 (s11 s10 s9 s8) - // r6 (s15 s14 s13 s12) - - // 1st-2nd line - // r3(s3 s2 s1 s0) - "uxtb.w r9, r3, ror #24 \n\t" // s3 - "uxtb.w r8, r3, ror #16 \n\t" // s2 - "uxtb.w r7, r3, ror #8 \n\t" // s1 - "uxtb.w r3, r3 \n\t" // s0 - // r4(s6 s5 s4 s7) - "uxtb.w r12, r4, ror #16 \n\t" // s6 - "uxtb.w r11, r4, ror #8 \n\t" // s5 - "uxtb.w r10, r4 \n\t" // s4 - "uxtb.w r4, r4, ror #24 \n\t" // s7 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "eor.w r3, r3, r7, lsl #8 \n\t" - "eor.w r3, r3, r8, lsl #16 \n\t" - "eor.w r3, r3, r9, lsl #24 \n\t" - "eor.w r4, r4, r10, lsl #8 \n\t" - "eor.w r4, r4, r11, lsl #16 \n\t" - "eor.w r4, r4, r12, lsl #24 \n\t" - - // 3rd-4th line - // r5(s9 s8 s11 s10) - "uxtb.w r9, r5, ror #8 \n\t" // s9 - "uxtb.w r8, r5 \n\t" // s8 - "uxtb.w r7, r5, ror #24 \n\t" // s11 - "uxtb.w r5, r5, ror #16 \n\t" // s10 - // r6(s12 s15 s14 s13) - "uxtb.w r12, r6 \n\t" // s12 - "uxtb.w r11, r6, ror #24 \n\t" // s15 - "uxtb.w r10, r6, ror #16 \n\t" // s14 - "uxtb.w r6, r6, ror #8 \n\t" // s13 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "eor.w r5, r5, r7, lsl #8 \n\t" - "eor.w r5, r5, r8, lsl #16 \n\t" - "eor.w r5, r5, r9, lsl #24 \n\t" - "eor.w r6, r6, r10, lsl #8 \n\t" - "eor.w r6, r6, r11, lsl #16 \n\t" - "eor.w r6, r6, r12, lsl #24 \n\t" - - // AddRoundKey and AddRoundConst(from roundKeys) - "ldr.w r9, [r1,#48] \n\t" // load TK1 - "ldr.w r10, [r1,#52] \n\t" // load TK1 - "ldr.w r11, [r1,#416] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "ldr.w r12, [r1,#420] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - - "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) - "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) - // r8( s9 s8 s11 s10) - // r6(s12 s14 s14 s13) - - // MixColumn - "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 - "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 - "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 - // r8 ----------------> r8 - - // round 46 - - // SubCell+ShiftRow+AC(c2) - // r7 (s3 s2 s1 s0) - // r8 (s7 s6 s5 s4) - // r9 (s11 s10 s9 s8) - // r10(s15 s14 s13 s12) - - // 1st-2nd line - // r7(s3 s2 s1 s0) - "uxtb.w r5, r7, ror #24 \n\t" // s3 - "uxtb.w r4, r7, ror #16 \n\t" // s2 - "uxtb.w r3, r7, ror #8 \n\t" // s1 - "uxtb.w r7, r7 \n\t" // s0 - // r8(s6 s5 s4 s7) - "uxtb.w r12, r8, ror #16 \n\t" // s6 - "uxtb.w r11, r8, ror #8 \n\t" // s5 - "uxtb.w r6, r8 \n\t" // s4 - "uxtb.w r8, r8, ror #24 \n\t" // s7 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldr.w r0, [r1,#424] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r7, r7, r3, lsl #8 \n\t" - "eor.w r7, r7, r4, lsl #16 \n\t" - "eor.w r7, r7, r5, lsl #24 \n\t" - "eor.w r8, r8, r6, lsl #8 \n\t" - "eor.w r8, r8, r11, lsl #16 \n\t" - "eor.w r8, r8, r12, lsl #24 \n\t" - "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) - - // 3rd-4th line - // r9(s9 s8 s11 s10) - "uxtb.w r5, r9, ror #8 \n\t" // s9 - "uxtb.w r7, r9 \n\t" // s8 - "uxtb.w r3, r9, ror #24 \n\t" // s11 - "uxtb.w r9, r9, ror #16 \n\t" // s10 - // r10(s12 s15 s14 s13) - "uxtb.w r12, r10 \n\t" // s12 - "uxtb.w r11, r10, ror #24 \n\t" // s15 - "uxtb.w r6, r10, ror #16 \n\t" // s14 - "uxtb.w r10, r10, ror #8 \n\t" // s13 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldr.w r0, [r1,#428] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r9, r9, r3, lsl #8 \n\t" - "eor.w r9, r9, r7, lsl #16 \n\t" - "eor.w r9, r9, r5, lsl #24 \n\t" - "eor.w r10, r10, r6, lsl #8 \n\t" - "eor.w r10, r10, r11, lsl #16 \n\t" - "eor.w r10, r10, r12, lsl #24 \n\t" - "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) - - // AddRoundKey and AddRoundConst(from roundKeys) - - // r9( s9 s8 s11 s10) - // r10(s12 s14 s14 s13) - - // MixColumn - "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 - "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 - "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 - // r4 ----------------> r4 - // round 47 - - // SubCell+ShiftRow+AC(c2) - // r3 (s3 s2 s1 s0) - // r4 (s7 s6 s5 s4) - // r5 (s11 s10 s9 s8) - // r6 (s15 s14 s13 s12) - - // 1st-2nd line - // r3(s3 s2 s1 s0) - "uxtb.w r9, r3, ror #24 \n\t" // s3 - "uxtb.w r8, r3, ror #16 \n\t" // s2 - "uxtb.w r7, r3, ror #8 \n\t" // s1 - "uxtb.w r3, r3 \n\t" // s0 - // r4(s6 s5 s4 s7) - "uxtb.w r12, r4, ror #16 \n\t" // s6 - "uxtb.w r11, r4, ror #8 \n\t" // s5 - "uxtb.w r10, r4 \n\t" // s4 - "uxtb.w r4, r4, ror #24 \n\t" // s7 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "eor.w r3, r3, r7, lsl #8 \n\t" - "eor.w r3, r3, r8, lsl #16 \n\t" - "eor.w r3, r3, r9, lsl #24 \n\t" - "eor.w r4, r4, r10, lsl #8 \n\t" - "eor.w r4, r4, r11, lsl #16 \n\t" - "eor.w r4, r4, r12, lsl #24 \n\t" - - // 3rd-4th line - // r5(s9 s8 s11 s10) - "uxtb.w r9, r5, ror #8 \n\t" // s9 - "uxtb.w r8, r5 \n\t" // s8 - "uxtb.w r7, r5, ror #24 \n\t" // s11 - "uxtb.w r5, r5, ror #16 \n\t" // s10 - // r6(s12 s15 s14 s13) - "uxtb.w r12, r6 \n\t" // s12 - "uxtb.w r11, r6, ror #24 \n\t" // s15 - "uxtb.w r10, r6, ror #16 \n\t" // s14 - "uxtb.w r6, r6, ror #8 \n\t" // s13 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "eor.w r5, r5, r7, lsl #8 \n\t" - "eor.w r5, r5, r8, lsl #16 \n\t" - "eor.w r5, r5, r9, lsl #24 \n\t" - "eor.w r6, r6, r10, lsl #8 \n\t" - "eor.w r6, r6, r11, lsl #16 \n\t" - "eor.w r6, r6, r12, lsl #24 \n\t" - - // AddRoundKey and AddRoundConst(from roundKeys) - "ldr.w r9, [r1,#56] \n\t" // load TK1 - "ldr.w r10, [r1,#60] \n\t" // load TK1 - "ldr.w r11, [r1,#432] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "ldr.w r12, [r1,#436] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - - "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) - "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) - // r8( s9 s8 s11 s10) - // r6(s12 s14 s14 s13) - - // MixColumn - "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 - "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 - "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 - // r8 ----------------> r8 - - // round 48 - - // SubCell+ShiftRow+AC(c2) - // r7 (s3 s2 s1 s0) - // r8 (s7 s6 s5 s4) - // r9 (s11 s10 s9 s8) - // r10(s15 s14 s13 s12) - - // 1st-2nd line - // r7(s3 s2 s1 s0) - "uxtb.w r5, r7, ror #24 \n\t" // s3 - "uxtb.w r4, r7, ror #16 \n\t" // s2 - "uxtb.w r3, r7, ror #8 \n\t" // s1 - "uxtb.w r7, r7 \n\t" // s0 - // r8(s6 s5 s4 s7) - "uxtb.w r12, r8, ror #16 \n\t" // s6 - "uxtb.w r11, r8, ror #8 \n\t" // s5 - "uxtb.w r6, r8 \n\t" // s4 - "uxtb.w r8, r8, ror #24 \n\t" // s7 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldr.w r0, [r1,#440] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r7, r7, r3, lsl #8 \n\t" - "eor.w r7, r7, r4, lsl #16 \n\t" - "eor.w r7, r7, r5, lsl #24 \n\t" - "eor.w r8, r8, r6, lsl #8 \n\t" - "eor.w r8, r8, r11, lsl #16 \n\t" - "eor.w r8, r8, r12, lsl #24 \n\t" - "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) - - // 3rd-4th line - // r9(s9 s8 s11 s10) - "uxtb.w r5, r9, ror #8 \n\t" // s9 - "uxtb.w r7, r9 \n\t" // s8 - "uxtb.w r3, r9, ror #24 \n\t" // s11 - "uxtb.w r9, r9, ror #16 \n\t" // s10 - // r10(s12 s15 s14 s13) - "uxtb.w r12, r10 \n\t" // s12 - "uxtb.w r11, r10, ror #24 \n\t" // s15 - "uxtb.w r6, r10, ror #16 \n\t" // s14 - "uxtb.w r10, r10, ror #8 \n\t" // s13 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldr.w r0, [r1,#444] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r9, r9, r3, lsl #8 \n\t" - "eor.w r9, r9, r7, lsl #16 \n\t" - "eor.w r9, r9, r5, lsl #24 \n\t" - "eor.w r10, r10, r6, lsl #8 \n\t" - "eor.w r10, r10, r11, lsl #16 \n\t" - "eor.w r10, r10, r12, lsl #24 \n\t" - "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) - - // AddRoundKey and AddRoundConst(from roundKeys) - - // r9( s9 s8 s11 s10) - // r10(s12 s14 s14 s13) - - // MixColumn - "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 - "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 - "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 - // r4 ----------------> r4 - // round 49 - - // SubCell+ShiftRow+AC(c2) - // r3 (s3 s2 s1 s0) - // r4 (s7 s6 s5 s4) - // r5 (s11 s10 s9 s8) - // r6 (s15 s14 s13 s12) - - // 1st-2nd line - // r3(s3 s2 s1 s0) - "uxtb.w r9, r3, ror #24 \n\t" // s3 - "uxtb.w r8, r3, ror #16 \n\t" // s2 - "uxtb.w r7, r3, ror #8 \n\t" // s1 - "uxtb.w r3, r3 \n\t" // s0 - // r4(s6 s5 s4 s7) - "uxtb.w r12, r4, ror #16 \n\t" // s6 - "uxtb.w r11, r4, ror #8 \n\t" // s5 - "uxtb.w r10, r4 \n\t" // s4 - "uxtb.w r4, r4, ror #24 \n\t" // s7 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "eor.w r3, r3, r7, lsl #8 \n\t" - "eor.w r3, r3, r8, lsl #16 \n\t" - "eor.w r3, r3, r9, lsl #24 \n\t" - "eor.w r4, r4, r10, lsl #8 \n\t" - "eor.w r4, r4, r11, lsl #16 \n\t" - "eor.w r4, r4, r12, lsl #24 \n\t" - - // 3rd-4th line - // r5(s9 s8 s11 s10) - "uxtb.w r9, r5, ror #8 \n\t" // s9 - "uxtb.w r8, r5 \n\t" // s8 - "uxtb.w r7, r5, ror #24 \n\t" // s11 - "uxtb.w r5, r5, ror #16 \n\t" // s10 - // r6(s12 s15 s14 s13) - "uxtb.w r12, r6 \n\t" // s12 - "uxtb.w r11, r6, ror #24 \n\t" // s15 - "uxtb.w r10, r6, ror #16 \n\t" // s14 - "uxtb.w r6, r6, ror #8 \n\t" // s13 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "eor.w r5, r5, r7, lsl #8 \n\t" - "eor.w r5, r5, r8, lsl #16 \n\t" - "eor.w r5, r5, r9, lsl #24 \n\t" - "eor.w r6, r6, r10, lsl #8 \n\t" - "eor.w r6, r6, r11, lsl #16 \n\t" - "eor.w r6, r6, r12, lsl #24 \n\t" - - // AddRoundKey and AddRoundConst(from roundKeys) - "ldr.w r9, [r1,#0] \n\t" // load TK1 - "ldr.w r10, [r1,#4] \n\t" // load TK1 - "ldr.w r11, [r1,#448] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "ldr.w r12, [r1,#452] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - - "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) - "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) - // r8( s9 s8 s11 s10) - // r6(s12 s14 s14 s13) - - // MixColumn - "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 - "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 - "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 - // r8 ----------------> r8 - - // round 50 - - // SubCell+ShiftRow+AC(c2) - // r7 (s3 s2 s1 s0) - // r8 (s7 s6 s5 s4) - // r9 (s11 s10 s9 s8) - // r10(s15 s14 s13 s12) - - // 1st-2nd line - // r7(s3 s2 s1 s0) - "uxtb.w r5, r7, ror #24 \n\t" // s3 - "uxtb.w r4, r7, ror #16 \n\t" // s2 - "uxtb.w r3, r7, ror #8 \n\t" // s1 - "uxtb.w r7, r7 \n\t" // s0 - // r8(s6 s5 s4 s7) - "uxtb.w r12, r8, ror #16 \n\t" // s6 - "uxtb.w r11, r8, ror #8 \n\t" // s5 - "uxtb.w r6, r8 \n\t" // s4 - "uxtb.w r8, r8, ror #24 \n\t" // s7 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldr.w r0, [r1,#456] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r7, r7, r3, lsl #8 \n\t" - "eor.w r7, r7, r4, lsl #16 \n\t" - "eor.w r7, r7, r5, lsl #24 \n\t" - "eor.w r8, r8, r6, lsl #8 \n\t" - "eor.w r8, r8, r11, lsl #16 \n\t" - "eor.w r8, r8, r12, lsl #24 \n\t" - "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) - - // 3rd-4th line - // r9(s9 s8 s11 s10) - "uxtb.w r5, r9, ror #8 \n\t" // s9 - "uxtb.w r7, r9 \n\t" // s8 - "uxtb.w r3, r9, ror #24 \n\t" // s11 - "uxtb.w r9, r9, ror #16 \n\t" // s10 - // r10(s12 s15 s14 s13) - "uxtb.w r12, r10 \n\t" // s12 - "uxtb.w r11, r10, ror #24 \n\t" // s15 - "uxtb.w r6, r10, ror #16 \n\t" // s14 - "uxtb.w r10, r10, ror #8 \n\t" // s13 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldr.w r0, [r1,#460] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r9, r9, r3, lsl #8 \n\t" - "eor.w r9, r9, r7, lsl #16 \n\t" - "eor.w r9, r9, r5, lsl #24 \n\t" - "eor.w r10, r10, r6, lsl #8 \n\t" - "eor.w r10, r10, r11, lsl #16 \n\t" - "eor.w r10, r10, r12, lsl #24 \n\t" - "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) - - // AddRoundKey and AddRoundConst(from roundKeys) - - // r9( s9 s8 s11 s10) - // r10(s12 s14 s14 s13) - - // MixColumn - "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 - "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 - "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 - // r4 ----------------> r4 - // round 51 - - // SubCell+ShiftRow+AC(c2) - // r3 (s3 s2 s1 s0) - // r4 (s7 s6 s5 s4) - // r5 (s11 s10 s9 s8) - // r6 (s15 s14 s13 s12) - - // 1st-2nd line - // r3(s3 s2 s1 s0) - "uxtb.w r9, r3, ror #24 \n\t" // s3 - "uxtb.w r8, r3, ror #16 \n\t" // s2 - "uxtb.w r7, r3, ror #8 \n\t" // s1 - "uxtb.w r3, r3 \n\t" // s0 - // r4(s6 s5 s4 s7) - "uxtb.w r12, r4, ror #16 \n\t" // s6 - "uxtb.w r11, r4, ror #8 \n\t" // s5 - "uxtb.w r10, r4 \n\t" // s4 - "uxtb.w r4, r4, ror #24 \n\t" // s7 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "eor.w r3, r3, r7, lsl #8 \n\t" - "eor.w r3, r3, r8, lsl #16 \n\t" - "eor.w r3, r3, r9, lsl #24 \n\t" - "eor.w r4, r4, r10, lsl #8 \n\t" - "eor.w r4, r4, r11, lsl #16 \n\t" - "eor.w r4, r4, r12, lsl #24 \n\t" - - // 3rd-4th line - // r5(s9 s8 s11 s10) - "uxtb.w r9, r5, ror #8 \n\t" // s9 - "uxtb.w r8, r5 \n\t" // s8 - "uxtb.w r7, r5, ror #24 \n\t" // s11 - "uxtb.w r5, r5, ror #16 \n\t" // s10 - // r6(s12 s15 s14 s13) - "uxtb.w r12, r6 \n\t" // s12 - "uxtb.w r11, r6, ror #24 \n\t" // s15 - "uxtb.w r10, r6, ror #16 \n\t" // s14 - "uxtb.w r6, r6, ror #8 \n\t" // s13 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "eor.w r5, r5, r7, lsl #8 \n\t" - "eor.w r5, r5, r8, lsl #16 \n\t" - "eor.w r5, r5, r9, lsl #24 \n\t" - "eor.w r6, r6, r10, lsl #8 \n\t" - "eor.w r6, r6, r11, lsl #16 \n\t" - "eor.w r6, r6, r12, lsl #24 \n\t" - - // AddRoundKey and AddRoundConst(from roundKeys) - "ldr.w r9, [r1,#8] \n\t" // load TK1 - "ldr.w r10, [r1,#12] \n\t" // load TK1 - "ldr.w r11, [r1,#464] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "ldr.w r12, [r1,#468] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - - "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) - "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) - // r8( s9 s8 s11 s10) - // r6(s12 s14 s14 s13) - - // MixColumn - "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 - "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 - "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 - // r8 ----------------> r8 - - // round 52 - - // SubCell+ShiftRow+AC(c2) - // r7 (s3 s2 s1 s0) - // r8 (s7 s6 s5 s4) - // r9 (s11 s10 s9 s8) - // r10(s15 s14 s13 s12) - - // 1st-2nd line - // r7(s3 s2 s1 s0) - "uxtb.w r5, r7, ror #24 \n\t" // s3 - "uxtb.w r4, r7, ror #16 \n\t" // s2 - "uxtb.w r3, r7, ror #8 \n\t" // s1 - "uxtb.w r7, r7 \n\t" // s0 - // r8(s6 s5 s4 s7) - "uxtb.w r12, r8, ror #16 \n\t" // s6 - "uxtb.w r11, r8, ror #8 \n\t" // s5 - "uxtb.w r6, r8 \n\t" // s4 - "uxtb.w r8, r8, ror #24 \n\t" // s7 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldr.w r0, [r1,#472] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r7, r7, r3, lsl #8 \n\t" - "eor.w r7, r7, r4, lsl #16 \n\t" - "eor.w r7, r7, r5, lsl #24 \n\t" - "eor.w r8, r8, r6, lsl #8 \n\t" - "eor.w r8, r8, r11, lsl #16 \n\t" - "eor.w r8, r8, r12, lsl #24 \n\t" - "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) - - // 3rd-4th line - // r9(s9 s8 s11 s10) - "uxtb.w r5, r9, ror #8 \n\t" // s9 - "uxtb.w r7, r9 \n\t" // s8 - "uxtb.w r3, r9, ror #24 \n\t" // s11 - "uxtb.w r9, r9, ror #16 \n\t" // s10 - // r10(s12 s15 s14 s13) - "uxtb.w r12, r10 \n\t" // s12 - "uxtb.w r11, r10, ror #24 \n\t" // s15 - "uxtb.w r6, r10, ror #16 \n\t" // s14 - "uxtb.w r10, r10, ror #8 \n\t" // s13 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldr.w r0, [r1,#476] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r9, r9, r3, lsl #8 \n\t" - "eor.w r9, r9, r7, lsl #16 \n\t" - "eor.w r9, r9, r5, lsl #24 \n\t" - "eor.w r10, r10, r6, lsl #8 \n\t" - "eor.w r10, r10, r11, lsl #16 \n\t" - "eor.w r10, r10, r12, lsl #24 \n\t" - "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) - - // AddRoundKey and AddRoundConst(from roundKeys) - - // r9( s9 s8 s11 s10) - // r10(s12 s14 s14 s13) - - // MixColumn - "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 - "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 - "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 - // r4 ----------------> r4 - // round 53 - - // SubCell+ShiftRow+AC(c2) - // r3 (s3 s2 s1 s0) - // r4 (s7 s6 s5 s4) - // r5 (s11 s10 s9 s8) - // r6 (s15 s14 s13 s12) - - // 1st-2nd line - // r3(s3 s2 s1 s0) - "uxtb.w r9, r3, ror #24 \n\t" // s3 - "uxtb.w r8, r3, ror #16 \n\t" // s2 - "uxtb.w r7, r3, ror #8 \n\t" // s1 - "uxtb.w r3, r3 \n\t" // s0 - // r4(s6 s5 s4 s7) - "uxtb.w r12, r4, ror #16 \n\t" // s6 - "uxtb.w r11, r4, ror #8 \n\t" // s5 - "uxtb.w r10, r4 \n\t" // s4 - "uxtb.w r4, r4, ror #24 \n\t" // s7 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "eor.w r3, r3, r7, lsl #8 \n\t" - "eor.w r3, r3, r8, lsl #16 \n\t" - "eor.w r3, r3, r9, lsl #24 \n\t" - "eor.w r4, r4, r10, lsl #8 \n\t" - "eor.w r4, r4, r11, lsl #16 \n\t" - "eor.w r4, r4, r12, lsl #24 \n\t" - - // 3rd-4th line - // r5(s9 s8 s11 s10) - "uxtb.w r9, r5, ror #8 \n\t" // s9 - "uxtb.w r8, r5 \n\t" // s8 - "uxtb.w r7, r5, ror #24 \n\t" // s11 - "uxtb.w r5, r5, ror #16 \n\t" // s10 - // r6(s12 s15 s14 s13) - "uxtb.w r12, r6 \n\t" // s12 - "uxtb.w r11, r6, ror #24 \n\t" // s15 - "uxtb.w r10, r6, ror #16 \n\t" // s14 - "uxtb.w r6, r6, ror #8 \n\t" // s13 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "eor.w r5, r5, r7, lsl #8 \n\t" - "eor.w r5, r5, r8, lsl #16 \n\t" - "eor.w r5, r5, r9, lsl #24 \n\t" - "eor.w r6, r6, r10, lsl #8 \n\t" - "eor.w r6, r6, r11, lsl #16 \n\t" - "eor.w r6, r6, r12, lsl #24 \n\t" - - // AddRoundKey and AddRoundConst(from roundKeys) - "ldr.w r9, [r1,#16] \n\t" // load TK1 - "ldr.w r10, [r1,#20] \n\t" // load TK1 - "ldr.w r11, [r1,#480] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "ldr.w r12, [r1,#484] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - - "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) - "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) - // r8( s9 s8 s11 s10) - // r6(s12 s14 s14 s13) - - // MixColumn - "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 - "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 - "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 - // r8 ----------------> r8 - - // round 54 - - // SubCell+ShiftRow+AC(c2) - // r7 (s3 s2 s1 s0) - // r8 (s7 s6 s5 s4) - // r9 (s11 s10 s9 s8) - // r10(s15 s14 s13 s12) - - // 1st-2nd line - // r7(s3 s2 s1 s0) - "uxtb.w r5, r7, ror #24 \n\t" // s3 - "uxtb.w r4, r7, ror #16 \n\t" // s2 - "uxtb.w r3, r7, ror #8 \n\t" // s1 - "uxtb.w r7, r7 \n\t" // s0 - // r8(s6 s5 s4 s7) - "uxtb.w r12, r8, ror #16 \n\t" // s6 - "uxtb.w r11, r8, ror #8 \n\t" // s5 - "uxtb.w r6, r8 \n\t" // s4 - "uxtb.w r8, r8, ror #24 \n\t" // s7 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldr.w r0, [r1,#488] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r7, r7, r3, lsl #8 \n\t" - "eor.w r7, r7, r4, lsl #16 \n\t" - "eor.w r7, r7, r5, lsl #24 \n\t" - "eor.w r8, r8, r6, lsl #8 \n\t" - "eor.w r8, r8, r11, lsl #16 \n\t" - "eor.w r8, r8, r12, lsl #24 \n\t" - "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) - - // 3rd-4th line - // r9(s9 s8 s11 s10) - "uxtb.w r5, r9, ror #8 \n\t" // s9 - "uxtb.w r7, r9 \n\t" // s8 - "uxtb.w r3, r9, ror #24 \n\t" // s11 - "uxtb.w r9, r9, ror #16 \n\t" // s10 - // r10(s12 s15 s14 s13) - "uxtb.w r12, r10 \n\t" // s12 - "uxtb.w r11, r10, ror #24 \n\t" // s15 - "uxtb.w r6, r10, ror #16 \n\t" // s14 - "uxtb.w r10, r10, ror #8 \n\t" // s13 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldr.w r0, [r1,#492] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r9, r9, r3, lsl #8 \n\t" - "eor.w r9, r9, r7, lsl #16 \n\t" - "eor.w r9, r9, r5, lsl #24 \n\t" - "eor.w r10, r10, r6, lsl #8 \n\t" - "eor.w r10, r10, r11, lsl #16 \n\t" - "eor.w r10, r10, r12, lsl #24 \n\t" - "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) - - // AddRoundKey and AddRoundConst(from roundKeys) - - // r9( s9 s8 s11 s10) - // r10(s12 s14 s14 s13) - - // MixColumn - "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 - "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 - "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 - // r4 ----------------> r4 - // round 55 - - // SubCell+ShiftRow+AC(c2) - // r3 (s3 s2 s1 s0) - // r4 (s7 s6 s5 s4) - // r5 (s11 s10 s9 s8) - // r6 (s15 s14 s13 s12) - - // 1st-2nd line - // r3(s3 s2 s1 s0) - "uxtb.w r9, r3, ror #24 \n\t" // s3 - "uxtb.w r8, r3, ror #16 \n\t" // s2 - "uxtb.w r7, r3, ror #8 \n\t" // s1 - "uxtb.w r3, r3 \n\t" // s0 - // r4(s6 s5 s4 s7) - "uxtb.w r12, r4, ror #16 \n\t" // s6 - "uxtb.w r11, r4, ror #8 \n\t" // s5 - "uxtb.w r10, r4 \n\t" // s4 - "uxtb.w r4, r4, ror #24 \n\t" // s7 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "eor.w r3, r3, r7, lsl #8 \n\t" - "eor.w r3, r3, r8, lsl #16 \n\t" - "eor.w r3, r3, r9, lsl #24 \n\t" - "eor.w r4, r4, r10, lsl #8 \n\t" - "eor.w r4, r4, r11, lsl #16 \n\t" - "eor.w r4, r4, r12, lsl #24 \n\t" - - // 3rd-4th line - // r5(s9 s8 s11 s10) - "uxtb.w r9, r5, ror #8 \n\t" // s9 - "uxtb.w r8, r5 \n\t" // s8 - "uxtb.w r7, r5, ror #24 \n\t" // s11 - "uxtb.w r5, r5, ror #16 \n\t" // s10 - // r6(s12 s15 s14 s13) - "uxtb.w r12, r6 \n\t" // s12 - "uxtb.w r11, r6, ror #24 \n\t" // s15 - "uxtb.w r10, r6, ror #16 \n\t" // s14 - "uxtb.w r6, r6, ror #8 \n\t" // s13 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "eor.w r5, r5, r7, lsl #8 \n\t" - "eor.w r5, r5, r8, lsl #16 \n\t" - "eor.w r5, r5, r9, lsl #24 \n\t" - "eor.w r6, r6, r10, lsl #8 \n\t" - "eor.w r6, r6, r11, lsl #16 \n\t" - "eor.w r6, r6, r12, lsl #24 \n\t" - - // AddRoundKey and AddRoundConst(from roundKeys) - "ldr.w r9, [r1,#24] \n\t" // load TK1 - "ldr.w r10, [r1,#28] \n\t" // load TK1 - "ldr.w r11, [r1,#496] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "ldr.w r12, [r1,#500] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - - "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) - "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) - // r8( s9 s8 s11 s10) - // r6(s12 s14 s14 s13) - - // MixColumn - "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 - "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 - "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 - // r8 ----------------> r8 - - // round 56 - - // SubCell+ShiftRow+AC(c2) - // r7 (s3 s2 s1 s0) - // r8 (s7 s6 s5 s4) - // r9 (s11 s10 s9 s8) - // r10(s15 s14 s13 s12) - - // 1st-2nd line - // r7(s3 s2 s1 s0) - "uxtb.w r5, r7, ror #24 \n\t" // s3 - "uxtb.w r4, r7, ror #16 \n\t" // s2 - "uxtb.w r3, r7, ror #8 \n\t" // s1 - "uxtb.w r7, r7 \n\t" // s0 - // r8(s6 s5 s4 s7) - "uxtb.w r12, r8, ror #16 \n\t" // s6 - "uxtb.w r11, r8, ror #8 \n\t" // s5 - "uxtb.w r6, r8 \n\t" // s4 - "uxtb.w r8, r8, ror #24 \n\t" // s7 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldr.w r0, [r1,#504] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r7, r7, r3, lsl #8 \n\t" - "eor.w r7, r7, r4, lsl #16 \n\t" - "eor.w r7, r7, r5, lsl #24 \n\t" - "eor.w r8, r8, r6, lsl #8 \n\t" - "eor.w r8, r8, r11, lsl #16 \n\t" - "eor.w r8, r8, r12, lsl #24 \n\t" - "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) - - // 3rd-4th line - // r9(s9 s8 s11 s10) - "uxtb.w r5, r9, ror #8 \n\t" // s9 - "uxtb.w r7, r9 \n\t" // s8 - "uxtb.w r3, r9, ror #24 \n\t" // s11 - "uxtb.w r9, r9, ror #16 \n\t" // s10 - // r10(s12 s15 s14 s13) - "uxtb.w r12, r10 \n\t" // s12 - "uxtb.w r11, r10, ror #24 \n\t" // s15 - "uxtb.w r6, r10, ror #16 \n\t" // s14 - "uxtb.w r10, r10, ror #8 \n\t" // s13 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldr.w r0, [r1,#508] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r9, r9, r3, lsl #8 \n\t" - "eor.w r9, r9, r7, lsl #16 \n\t" - "eor.w r9, r9, r5, lsl #24 \n\t" - "eor.w r10, r10, r6, lsl #8 \n\t" - "eor.w r10, r10, r11, lsl #16 \n\t" - "eor.w r10, r10, r12, lsl #24 \n\t" - "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) - - // AddRoundKey and AddRoundConst(from roundKeys) - - // r9( s9 s8 s11 s10) - // r10(s12 s14 s14 s13) - - // MixColumn - "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 - "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 - "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 - // r4 ----------------> r4 - - "ldmia.w sp!, {r0} \n\t" // pop store pointer - // r0 reload - - "str.w r3, [r0,#0] \n\t" // store ciphertext - "str.w r4, [r0,#4] \n\t" // store ciphertext - "str.w r5, [r0,#8] \n\t" // store ciphertext - "str.w r6, [r0,#12] \n\t" // store ciphertext - - "ldmia.w sp!, {r4-r12,r14} \n\t" - : - : [block] "r" (block), [roundKeys] "r" (roundKeys), [pSBOX] "" (pSBOX) - : "cc"); -} - diff --git a/romulus/Implementations/crypto_aead/romulusm1v12/opt32/api.h b/romulus/Implementations/crypto_aead/romulusm1v12/opt32/api.h deleted file mode 100644 index a4aa567..0000000 --- a/romulus/Implementations/crypto_aead/romulusm1v12/opt32/api.h +++ /dev/null @@ -1,5 +0,0 @@ -#define CRYPTO_KEYBYTES 16 -#define CRYPTO_NSECBYTES 0 -#define CRYPTO_NPUBBYTES 16 -#define CRYPTO_ABYTES 16 -#define CRYPTO_NOOVERLAP 1 diff --git a/romulus/Implementations/crypto_aead/romulusm1v12/opt32/crypto_aead.h b/romulus/Implementations/crypto_aead/romulusm1v12/opt32/crypto_aead.h deleted file mode 100644 index e2ca9b0..0000000 --- a/romulus/Implementations/crypto_aead/romulusm1v12/opt32/crypto_aead.h +++ /dev/null @@ -1,18 +0,0 @@ - -int crypto_aead_encrypt( - unsigned char *c, unsigned long long *clen, - const unsigned char *m, unsigned long long mlen, - const unsigned char *ad, unsigned long long adlen, - const unsigned char *nsec, - const unsigned char *npub, - const unsigned char *k -); - -int crypto_aead_decrypt( - unsigned char *m, unsigned long long *mlen, - unsigned char *nsec, - const unsigned char *c, unsigned long long clen, - const unsigned char *ad, unsigned long long adlen, - const unsigned char *npub, - const unsigned char *k -); \ No newline at end of file diff --git a/romulus/Implementations/crypto_aead/romulusm1v12/opt32/encrypt.c b/romulus/Implementations/crypto_aead/romulusm1v12/opt32/encrypt.c deleted file mode 100644 index ab1b9cb..0000000 --- a/romulus/Implementations/crypto_aead/romulusm1v12/opt32/encrypt.c +++ /dev/null @@ -1,367 +0,0 @@ -#include "skinny128.h" -#include "tk_schedule.h" -#include "romulus.h" -#include -#include - -static u8 final_ad_domain (unsigned long long adlen, unsigned long long mlen) { - u8 domain = 0; - u32 leftover; - //Determine which domain bits we need based on the length of the ad - if (adlen == 0) { - domain ^= 0x02; // No message, so only 1 block with padding - } else { - leftover = (u32)(adlen % (2 * BLOCKBYTES)); - if (leftover == 0) { // Even or odd ad length? - domain ^= 0x08; // Even with a full double block at the end - } else if (leftover < BLOCKBYTES) { - domain ^= 0x02; // Odd with a partial single block at the end - } else if (leftover > BLOCKBYTES) { - domain ^= 0x0A; // Even with a partial double block at the end - } - } - //Determine which domain bits we need based on the length of the message - if (mlen == 0) { - domain ^= 0x01; // No message, so only 1 block with padding - } else { - leftover = (unsigned)(mlen % (2 * BLOCKBYTES)); - if (leftover == 0) { // Even or odd message length? - domain ^= 0x04; // Even with a full double block at the end - } else if (leftover < BLOCKBYTES) { - domain ^= 0x01; // Odd with a partial single block at the end - } else if (leftover > BLOCKBYTES) { - domain ^= 0x05; // Even with a partial double block at the end - } - } - return domain; -} - -//Encryption and authentication using Romulus-N1 -int crypto_aead_encrypt - (unsigned char *c, unsigned long long *clen, - const unsigned char *m, unsigned long long mlen, - const unsigned char *ad, unsigned long long adlen, - const unsigned char *nsec, - const unsigned char *npub, - const unsigned char *k) { - - u32 tmp; - u64 tmp_mlen = mlen; - const u8* m_auth = m; - u8 final_domain = 0x30; - skinny_128_384_tks tks; - u8 state[BLOCKBYTES], pad[BLOCKBYTES]; - (void)nsec; - - // ----------------- Initialization ----------------- - *clen = mlen + TAGBYTES; - memset(tks.tk1, 0x00, KEYBYTES); - memset(state, 0x00, BLOCKBYTES); - tks.tk1[0] = 0x01; // Init the 56-bit LFSR counter - // ----------------- Initialization ----------------- - - // ----------------- Process the associated data ----------------- - final_domain ^= final_ad_domain(adlen, mlen); - SET_DOMAIN(tks, 0x28); - while (adlen > 2*BLOCKBYTES) { // Process double blocks but the last - UPDATE_CTR(tks.tk1); - XOR_BLOCK(state, state, ad); - precompute_rtk2_3(tks.rtk2_3, npub, k); - precompute_rtk1(tks.rtk1, tks.tk1); - skinny128_384(state, state, tks.rtk1, tks.rtk2_3); - UPDATE_CTR(tks.tk1); - ad += 2*BLOCKBYTES; - adlen -= 2*BLOCKBYTES; - } - // Pad and process the left-over blocks - if (adlen == 2*BLOCKBYTES) { // Left-over complete double block - UPDATE_CTR(tks.tk1); - XOR_BLOCK(state, state, ad); - precompute_rtk2_3(tks.rtk2_3, ad + BLOCKBYTES, k); - precompute_rtk1(tks.rtk1, tks.tk1); - skinny128_384(state, state, tks.rtk1, tks.rtk2_3); - UPDATE_CTR(tks.tk1); - } else if (adlen > BLOCKBYTES) { // Left-over partial double block - adlen -= BLOCKBYTES; - UPDATE_CTR(tks.tk1); - XOR_BLOCK(state, state, ad); - memcpy(pad, ad + BLOCKBYTES, adlen); - memset(pad + adlen, 0x00, 15 - adlen); - pad[15] = adlen; // Padding - precompute_rtk2_3(tks.rtk2_3, pad, k); - precompute_rtk1(tks.rtk1, tks.tk1); - skinny128_384(state, state, tks.rtk1, tks.rtk2_3); - UPDATE_CTR(tks.tk1); - } else { - SET_DOMAIN(tks, 0x2C); - UPDATE_CTR(tks.tk1); - if (adlen == BLOCKBYTES) { // Left-over complete single block - XOR_BLOCK(state, state, ad); - } else { // Left-over partial single block - for(int i =0; i < (int)adlen; i++) - state[i] ^= ad[i]; - state[15] ^= adlen; // Padding - } - if (tmp_mlen >= BLOCKBYTES) { - precompute_rtk2_3(tks.rtk2_3, m_auth, k); - precompute_rtk1(tks.rtk1, tks.tk1); - skinny128_384(state, state, tks.rtk1, tks.rtk2_3); - if (tmp_mlen > BLOCKBYTES) - UPDATE_CTR(tks.tk1); - tmp_mlen -= BLOCKBYTES; - m_auth += BLOCKBYTES; - } else { - memcpy(pad, m_auth, tmp_mlen); - memset(pad + tmp_mlen, 0x00, BLOCKBYTES - tmp_mlen - 1); - pad[15] = (u8)tmp_mlen; // Padding - precompute_rtk2_3(tks.rtk2_3, pad, k); - precompute_rtk1(tks.rtk1, tks.tk1); - skinny128_384(state, state, tks.rtk1, tks.rtk2_3); - tmp_mlen = 0; - } - } - // Process all message double blocks except the last - SET_DOMAIN(tks, 0x2C); - while (tmp_mlen > 32) { - UPDATE_CTR(tks.tk1); - XOR_BLOCK(state, state, m_auth); - precompute_rtk2_3(tks.rtk2_3, m_auth + BLOCKBYTES, k); - precompute_rtk1(tks.rtk1, tks.tk1); - skinny128_384(state, state, tks.rtk1, tks.rtk2_3); - UPDATE_CTR(tks.tk1); - m_auth += 2 * BLOCKBYTES; - tmp_mlen -= 2 * BLOCKBYTES; - } - // Process the last message double block - if (tmp_mlen == 2 * BLOCKBYTES) { // Last message double block is full - UPDATE_CTR(tks.tk1); - XOR_BLOCK(state, state, m_auth); - precompute_rtk2_3(tks.rtk2_3, m_auth + BLOCKBYTES, k); - precompute_rtk1(tks.rtk1, tks.tk1); - skinny128_384(state, state, tks.rtk1, tks.rtk2_3); - } else if (tmp_mlen > BLOCKBYTES) { // Last message double block is partial - tmp_mlen -= BLOCKBYTES; - UPDATE_CTR(tks.tk1); - XOR_BLOCK(state, state, m_auth); - memcpy(pad, m_auth + BLOCKBYTES, tmp_mlen); - memset(pad + tmp_mlen, 0x00, BLOCKBYTES - tmp_mlen - 1); - pad[15] = (u8)tmp_mlen; // Padding - precompute_rtk2_3(tks.rtk2_3, pad, k); - precompute_rtk1(tks.rtk1, tks.tk1); - skinny128_384(state, state, tks.rtk1, tks.rtk2_3); - } else if (tmp_mlen == BLOCKBYTES) { // Last message single block is full - XOR_BLOCK(state, state, m_auth); - } else if (tmp_mlen > 0) { // Last message single block is partial - for(int i =0; i < (int)tmp_mlen; i++) - state[i] ^= m_auth[i]; - state[15] ^= (u8)tmp_mlen; // Padding - } - // Process the last partial block - SET_DOMAIN(tks, final_domain); - UPDATE_CTR(tks.tk1); - precompute_rtk2_3(tks.rtk2_3, npub, k); - precompute_rtk1(tks.rtk1, tks.tk1); - skinny128_384(state, state, tks.rtk1, tks.rtk2_3); - // ----------------- Process the associated data ----------------- - - - // ----------------- Generate the tag ----------------- - G(state,state); - memcpy(c + mlen, state, TAGBYTES); - // ----------------- Generate the tag ----------------- - - memset(tks.tk1, 0x00, KEYBYTES); - tks.tk1[0] = 0x01; // Init the 56-bit LFSR counter - if (mlen > 0) { - SET_DOMAIN(tks, 0x24); - while (mlen > BLOCKBYTES) { - precompute_rtk1(tks.rtk1, tks.tk1); - skinny128_384(state, state, tks.rtk1, tks.rtk2_3); - RHO(state,c,m); - UPDATE_CTR(tks.tk1); - c += BLOCKBYTES; - m += BLOCKBYTES; - mlen -= BLOCKBYTES; - } - precompute_rtk1(tks.rtk1, tks.tk1); - skinny128_384(state, state, tks.rtk1, tks.rtk2_3); - for(int i = 0; i < (int)mlen; i++) { - tmp = m[i]; // Use of tmp variable in case c = m - c[i] = m[i] ^ (state[i] >> 1) ^ (state[i] & 0x80) ^ (state[i] << 7); - state[i] ^= (u8)tmp; - } - state[15] ^= (u8)mlen; // Padding - } - - return 0; -} - -//Decryption and tag verification using Romulus-N1 -int crypto_aead_decrypt - (unsigned char *m, unsigned long long *mlen, - unsigned char *nsec, - const unsigned char *c, unsigned long long clen, - const unsigned char *ad, unsigned long long adlen, - const unsigned char *npub, - const unsigned char *k) { - - u32 tmp; - u64 tmp_mlen; - u8 final_domain = 0x30; - u8* m_auth = m; - const u8* c_tmp = c; - skinny_128_384_tks tks; - u8 state[BLOCKBYTES], pad[BLOCKBYTES]; - (void)nsec; - - if (clen < TAGBYTES) - return -1; - - // ----------------- Initialization ----------------- - *mlen = clen - TAGBYTES; - memset(tks.tk1, 0x00, KEYBYTES); - tks.tk1[0] = 0x01; // Init the 56-bit LFSR counter - // ----------------- Initialization ----------------- - - // ----------------- Process the ciphertext ----------------- - clen -= TAGBYTES; - memcpy(state, c + clen, TAGBYTES); - tmp_mlen = clen; - if (tmp_mlen > 0) { - SET_DOMAIN(tks, 0x24); - precompute_rtk2_3(tks.rtk2_3, npub, k); - while (tmp_mlen > BLOCKBYTES) { - precompute_rtk1(tks.rtk1, tks.tk1); - skinny128_384(state, state, tks.rtk1, tks.rtk2_3); - RHO_INV(state, c, m); - UPDATE_CTR(tks.tk1); - c += BLOCKBYTES; - m += BLOCKBYTES; - tmp_mlen -= BLOCKBYTES; - } - precompute_rtk1(tks.rtk1, tks.tk1); - skinny128_384(state, state, tks.rtk1, tks.rtk2_3); - for(int i = 0; i < (int)tmp_mlen; i++) { - m[i] = c[i] ^ (state[i] >> 1) ^ (state[i] & 0x80) ^ (state[i] << 7); - state[i] ^= m[i]; - } - state[15] ^= (u8)tmp_mlen; // Padding - } - // ----------------- Process the ciphertext ----------------- - - // ----------------- Process the associated data ----------------- - memset(tks.tk1, 0x00, KEYBYTES); - tks.tk1[0] = 0x01; // Init the 56-bit LFSR counter - memset(state, 0x00, BLOCKBYTES); - final_domain ^= final_ad_domain(adlen, clen); - SET_DOMAIN(tks, 0x28); - while (adlen > 2*BLOCKBYTES) { // Process double blocks but the last - UPDATE_CTR(tks.tk1); - XOR_BLOCK(state, state, ad); - precompute_rtk2_3(tks.rtk2_3, ad + BLOCKBYTES, k); - precompute_rtk1(tks.rtk1, tks.tk1); - skinny128_384(state, state, tks.rtk1, tks.rtk2_3); - UPDATE_CTR(tks.tk1); - ad += 2*BLOCKBYTES; - adlen -= 2*BLOCKBYTES; - } - // Pad and process the left-over blocks - if (adlen == 2*BLOCKBYTES) { // Left-over complete double block - UPDATE_CTR(tks.tk1); - XOR_BLOCK(state, state, ad); - precompute_rtk2_3(tks.rtk2_3, ad + BLOCKBYTES, k); - precompute_rtk1(tks.rtk1, tks.tk1); - skinny128_384(state, state, tks.rtk1, tks.rtk2_3); - UPDATE_CTR(tks.tk1); - } else if (adlen > BLOCKBYTES) { // Left-over partial double block - adlen -= BLOCKBYTES; - UPDATE_CTR(tks.tk1); - XOR_BLOCK(state, state, ad); - memcpy(pad, ad + BLOCKBYTES, adlen); - memset(pad + adlen, 0x00, 15 - adlen); - pad[15] = adlen; // Padding - precompute_rtk2_3(tks.rtk2_3, pad, k); - precompute_rtk1(tks.rtk1, tks.tk1); - skinny128_384(state, state, tks.rtk1, tks.rtk2_3); - UPDATE_CTR(tks.tk1); - } else { - SET_DOMAIN(tks, 0x2C); - UPDATE_CTR(tks.tk1); - if (adlen == BLOCKBYTES) { // Left-over complete single block - XOR_BLOCK(state, state, ad); - } else { // Left-over partial single block - for(int i =0; i < (int)adlen; i++) - state[i] ^= ad[i]; - state[15] ^= adlen; // Padding - } - if (clen >= BLOCKBYTES) { - precompute_rtk2_3(tks.rtk2_3, m_auth, k); - precompute_rtk1(tks.rtk1, tks.tk1); - skinny128_384(state, state, tks.rtk1, tks.rtk2_3); - if (clen > BLOCKBYTES) - UPDATE_CTR(tks.tk1); - m_auth += BLOCKBYTES; - clen -= BLOCKBYTES; - } else { - memcpy(pad, m_auth, clen); - memset(pad + clen, 0x00, BLOCKBYTES - clen - 1); - pad[15] = (u8)clen; // Padding - precompute_rtk2_3(tks.rtk2_3, pad, k); - precompute_rtk1(tks.rtk1, tks.tk1); - skinny128_384(state, state, tks.rtk1, tks.rtk2_3); - clen = 0; - } - } - // Process all message double blocks except the last - SET_DOMAIN(tks, 0x2C); - while (clen > 32) { - UPDATE_CTR(tks.tk1); - XOR_BLOCK(state, state, m_auth); - precompute_rtk2_3(tks.rtk2_3, m_auth + BLOCKBYTES, k); - precompute_rtk1(tks.rtk1, tks.tk1); - skinny128_384(state, state, tks.rtk1, tks.rtk2_3); - UPDATE_CTR(tks.tk1); - m_auth += 2 * BLOCKBYTES; - clen -= 2 * BLOCKBYTES; - } - // Process the last message double block - if (clen == 2 * BLOCKBYTES) { // Last message double block is full - UPDATE_CTR(tks.tk1); - XOR_BLOCK(state, state, m_auth); - precompute_rtk2_3(tks.rtk2_3, m_auth + BLOCKBYTES, k); - precompute_rtk1(tks.rtk1, tks.tk1); - skinny128_384(state, state, tks.rtk1, tks.rtk2_3); - } else if (clen > BLOCKBYTES) { // Last message double block is partial - clen -= BLOCKBYTES; - UPDATE_CTR(tks.tk1); - XOR_BLOCK(state, state, m_auth); - memcpy(pad, m_auth + BLOCKBYTES, clen); - memset(pad + clen, 0x00, BLOCKBYTES - clen - 1); - pad[15] = (u8)clen; // Padding - precompute_rtk2_3(tks.rtk2_3, pad, k); - precompute_rtk1(tks.rtk1, tks.tk1); - skinny128_384(state, state, tks.rtk1, tks.rtk2_3); - } else if (clen == BLOCKBYTES) { // Last message single block is full - XOR_BLOCK(state, state, m_auth); - } else if (clen > 0) { // Last message single block is partial - for(int i =0; i < (int)clen; i++) - state[i] ^= m[i]; - state[15] ^= (u8)clen; // Padding - } - // Process the last partial block - SET_DOMAIN(tks, final_domain); - UPDATE_CTR(tks.tk1); - precompute_rtk2_3(tks.rtk2_3, npub, k); - precompute_rtk1(tks.rtk1, tks.tk1); - skinny128_384(state, state, tks.rtk1, tks.rtk2_3); - // ----------------- Process the associated data ----------------- - - // ----------------- Generate and check the tag ----------------- - G(state,state); - tmp = 0; - for(int i = 0; i < TAGBYTES; i++) - tmp |= state[i] ^ c_tmp[*mlen+i]; //constant-time tag comparison - // ----------------- Generate and check the tag ----------------- - - return tmp; -} \ No newline at end of file diff --git a/romulus/Implementations/crypto_aead/romulusm1v12/opt32/romulus.h b/romulus/Implementations/crypto_aead/romulusm1v12/opt32/romulus.h deleted file mode 100644 index b254e2a..0000000 --- a/romulus/Implementations/crypto_aead/romulusm1v12/opt32/romulus.h +++ /dev/null @@ -1,69 +0,0 @@ -#ifndef ROMULUSN1_H_ -#define ROMULUSN1_H_ - -#include "skinny128.h" - -typedef unsigned char u8; -typedef unsigned int u32; -typedef unsigned int u64; -typedef struct { - u8 tk1[16]; //to manipulate tk1 byte-wise - u32 rtk1[4*16]; //to avoid tk schedule recomputations - u32 rtk2_3[4*SKINNY128_384_ROUNDS]; //all round tweakeys -} skinny_128_384_tks; - -#define TAGBYTES 16 -#define KEYBYTES 16 -#define BLOCKBYTES 16 - -#define SET_DOMAIN(tks, domain) ((tks).tk1[7] = (domain)) - -//G as defined in the Romulus specification in a 32-bit word-wise manner -#define G(x,y) ({ \ - tmp = ((u32*)(y))[0]; \ - ((u32*)(x))[0] = (tmp >> 1 & 0x7f7f7f7f) ^ ((tmp ^ (tmp << 7)) & 0x80808080); \ - tmp = ((u32*)(y))[1]; \ - ((u32*)(x))[1] = (tmp >> 1 & 0x7f7f7f7f) ^ ((tmp ^ (tmp << 7)) & 0x80808080); \ - tmp = ((u32*)(y))[2]; \ - ((u32*)(x))[2] = (tmp >> 1 & 0x7f7f7f7f) ^ ((tmp ^ (tmp << 7)) & 0x80808080); \ - tmp = ((u32*)(y))[3]; \ - ((u32*)(x))[3] = (tmp >> 1 & 0x7f7f7f7f) ^ ((tmp ^ (tmp << 7)) & 0x80808080); \ -}) - -//update the counter in tk1 in a 32-bit word-wise manner -#define UPDATE_CTR(tk1) ({ \ - tmp = ((u32*)(tk1))[1]; \ - ((u32*)(tk1))[1] = (tmp << 1) & 0x00ffffff; \ - ((u32*)(tk1))[1] |= (((u32*)(tk1))[0] >> 31); \ - ((u32*)(tk1))[1] |= tmp & 0xff000000; \ - ((u32*)(tk1))[0] <<= 1; \ - if ((tmp >> 23) & 0x01) \ - ((u32*)(tk1))[0] ^= 0x95; \ -}) - -//x <- y ^ z for 128-bit blocks -#define XOR_BLOCK(x,y,z) ({ \ - ((u32*)(x))[0] = ((u32*)(y))[0] ^ ((u32*)(z))[0]; \ - ((u32*)(x))[1] = ((u32*)(y))[1] ^ ((u32*)(z))[1]; \ - ((u32*)(x))[2] = ((u32*)(y))[2] ^ ((u32*)(z))[2]; \ - ((u32*)(x))[3] = ((u32*)(y))[3] ^ ((u32*)(z))[3]; \ -}) - - -//Rho as defined in the Romulus specification -//use pad as a tmp variable in case y = z -#define RHO(x,y,z) ({ \ - G(pad,x); \ - XOR_BLOCK(y, pad, z); \ - XOR_BLOCK(x, x, z); \ -}) - -//Rho inverse as defined in the Romulus specification -//use pad as a tmp variable in case y = z -#define RHO_INV(x, y, z) ({ \ - G(pad, x); \ - XOR_BLOCK(z, pad, y); \ - XOR_BLOCK(x, x, z); \ -}) - -#endif // ROMULUSN1_H_ \ No newline at end of file diff --git a/romulus/Implementations/crypto_aead/romulusm1v12/opt32/skinny128.c b/romulus/Implementations/crypto_aead/romulusm1v12/opt32/skinny128.c deleted file mode 100644 index 87718e3..0000000 --- a/romulus/Implementations/crypto_aead/romulusm1v12/opt32/skinny128.c +++ /dev/null @@ -1,110 +0,0 @@ -/****************************************************************************** -* Constant-time implementation of the SKINNY tweakable block ciphers. -* -* This implementation doesn't compute the ShiftRows operation. Some masks and -* shifts are applied during the MixColumns operation so that the proper bits -* are XORed together. Moreover, the row permutation within the MixColumns -* is omitted, as well as the bit permutation at the end of the Sbox. The rows -* are synchronized with the classical after only 4 rounds. Therefore, this -* implementation relies on a "QUADRUPLE_ROUND" routine. -* -* The Sbox computation takes advantage of some symmetry in the 8-bit Sbox to -* turn it into a 4-bit S-box computation. Although the last bit permutation -* within the Sbox is not computed, the bit ordering is synchronized with the -* classical representation after 2 calls. -* -* @author Alexandre Adomnicai, Nanyang Technological University, -* alexandre.adomnicai@ntu.edu.sg -* -* @date May 2020 -******************************************************************************/ -#include -#include -#include "skinny128.h" -#include "tk_schedule.h" - -/****************************************************************************** -* The MixColumns computation for rounds i such that (i % 4) == 0 -******************************************************************************/ -void mixcolumns_0(u32* state) { - u32 tmp; - for(int i = 0; i < 4; i++) { - tmp = ROR(state[i],24) & 0x0c0c0c0c; - state[i] ^= ROR(tmp,30); - tmp = ROR(state[i],16) & 0xc0c0c0c0; - state[i] ^= ROR(tmp,4); - tmp = ROR(state[i],8) & 0x0c0c0c0c; - state[i] ^= ROR(tmp,2); - } -} - -/****************************************************************************** -* The MixColumns computation for rounds i such that (i % 4) == 1 -******************************************************************************/ -void mixcolumns_1(u32* state) { - u32 tmp; - for(int i = 0; i < 4; i++) { - tmp = ROR(state[i],16) & 0x30303030; - state[i] ^= ROR(tmp,30); - tmp = state[i] & 0x03030303; - state[i] ^= ROR(tmp,28); - tmp = ROR(state[i],16) & 0x30303030; - state[i] ^= ROR(tmp,2); - } -} - -/****************************************************************************** -* The MixColumns computation for rounds i such that (i % 4) == 2 -******************************************************************************/ -void mixcolumns_2(u32* state) { - u32 tmp; - for(int i = 0; i < 4; i++) { - tmp = ROR(state[i],8) & 0xc0c0c0c0; - state[i] ^= ROR(tmp,6); - tmp = ROR(state[i],16) & 0x0c0c0c0c; - state[i] ^= ROR(tmp,28); - tmp = ROR(state[i],24) & 0xc0c0c0c0; - state[i] ^= ROR(tmp,2); - } -} - -/****************************************************************************** -* The MixColumns computation for rounds i such that (i % 4) == 3 -******************************************************************************/ -void mixcolumns_3(u32* state) { - u32 tmp; - for(int i = 0; i < 4; i++) { - tmp = state[i] & 0x03030303; - state[i] ^= ROR(tmp,30); - tmp = state[i] & 0x30303030; - state[i] ^= ROR(tmp,4); - tmp = state[i] & 0x03030303; - state[i] ^= ROR(tmp,26); - } -} - -/****************************************************************************** -* Encryption of a single block without any operation mode using SKINNY-128-384. -* RTK1 and RTK2_3 are given separately to take advantage of the fact that -* TK2 and TK3 remains the same through the entire data encryption/decryption. -******************************************************************************/ -void skinny128_384(u8* ctext, const u8* ptext, const u32* rtk1, const u32* rtk2_3) { - u32 tmp; // used in SWAPMOVE macro - u32 state[4]; // 128-bit state - packing(state, ptext); // from byte to bitsliced representation - QUADRUPLE_ROUND(state, rtk1, rtk2_3); - QUADRUPLE_ROUND(state, rtk1+16, rtk2_3+16); - QUADRUPLE_ROUND(state, rtk1+32, rtk2_3+32); - QUADRUPLE_ROUND(state, rtk1+48, rtk2_3+48); - QUADRUPLE_ROUND(state, rtk1, rtk2_3+64); - QUADRUPLE_ROUND(state, rtk1+16, rtk2_3+80); - QUADRUPLE_ROUND(state, rtk1+32, rtk2_3+96); - QUADRUPLE_ROUND(state, rtk1+48, rtk2_3+112); - QUADRUPLE_ROUND(state, rtk1, rtk2_3+128); - QUADRUPLE_ROUND(state, rtk1+16, rtk2_3+144); - QUADRUPLE_ROUND(state, rtk1+32, rtk2_3+160); - QUADRUPLE_ROUND(state, rtk1+48, rtk2_3+176); - QUADRUPLE_ROUND(state, rtk1, rtk2_3+192); - QUADRUPLE_ROUND(state, rtk1+16, rtk2_3+208); - unpacking(ctext, state); // from bitsliced to byte representation -} \ No newline at end of file diff --git a/romulus/Implementations/crypto_aead/romulusm1v12/opt32/skinny128.h b/romulus/Implementations/crypto_aead/romulusm1v12/opt32/skinny128.h deleted file mode 100644 index dab6338..0000000 --- a/romulus/Implementations/crypto_aead/romulusm1v12/opt32/skinny128.h +++ /dev/null @@ -1,94 +0,0 @@ -#ifndef SKINNY128_H_ -#define SKINNY128_H_ - -typedef unsigned char u8; -typedef unsigned int u32; - -#define SKINNY128_384_ROUNDS 56 - -#define QUADRUPLE_ROUND(state, rtk1, rtk2_3) ({ \ - state[3] ^= ~(state[0] | state[1]); \ - SWAPMOVE(state[2], state[1], 0x55555555, 1); \ - SWAPMOVE(state[3], state[2], 0x55555555, 1); \ - state[1] ^= ~(state[2] | state[3]); \ - SWAPMOVE(state[1], state[0], 0x55555555, 1); \ - SWAPMOVE(state[0], state[3], 0x55555555, 1); \ - state[3] ^= ~(state[0] | state[1]); \ - SWAPMOVE(state[2], state[1], 0x55555555, 1); \ - SWAPMOVE(state[3], state[2], 0x55555555, 1); \ - state[1] ^= (state[2] | state[3]); \ - SWAPMOVE(state[3], state[0], 0x55555555, 0); \ - state[0] ^= (rtk1)[0]; \ - state[1] ^= (rtk1)[1]; \ - state[2] ^= (rtk1)[2]; \ - state[3] ^= (rtk1)[3]; \ - state[0] ^= (rtk2_3)[0]; \ - state[1] ^= (rtk2_3)[1]; \ - state[2] ^= (rtk2_3)[2]; \ - state[3] ^= (rtk2_3)[3]; \ - mixcolumns_0(state); \ - state[1] ^= ~(state[2] | state[3]); \ - SWAPMOVE(state[1], state[0], 0x55555555, 1); \ - SWAPMOVE(state[0], state[3], 0x55555555, 1); \ - state[3] ^= ~(state[0] | state[1]); \ - SWAPMOVE(state[2], state[1], 0x55555555, 1); \ - SWAPMOVE(state[3], state[2], 0x55555555, 1); \ - state[1] ^= ~(state[2] | state[3]); \ - SWAPMOVE(state[1], state[0], 0x55555555, 1); \ - SWAPMOVE(state[0], state[3], 0x55555555, 1); \ - state[3] ^= (state[0] | state[1]); \ - SWAPMOVE(state[1], state[2], 0x55555555, 0); \ - state[0] ^= (rtk1)[4]; \ - state[1] ^= (rtk1)[5]; \ - state[2] ^= (rtk1)[6]; \ - state[3] ^= (rtk1)[7]; \ - state[0] ^= (rtk2_3)[4]; \ - state[1] ^= (rtk2_3)[5]; \ - state[2] ^= (rtk2_3)[6]; \ - state[3] ^= (rtk2_3)[7]; \ - mixcolumns_1(state); \ - state[3] ^= ~(state[0] | state[1]); \ - SWAPMOVE(state[2], state[1], 0x55555555, 1); \ - SWAPMOVE(state[3], state[2], 0x55555555, 1); \ - state[1] ^= ~(state[2] | state[3]); \ - SWAPMOVE(state[1], state[0], 0x55555555, 1); \ - SWAPMOVE(state[0], state[3], 0x55555555, 1); \ - state[3] ^= ~(state[0] | state[1]); \ - SWAPMOVE(state[2], state[1], 0x55555555, 1); \ - SWAPMOVE(state[3], state[2], 0x55555555, 1); \ - state[1] ^= (state[2] | state[3]); \ - SWAPMOVE(state[3], state[0], 0x55555555, 0); \ - state[0] ^= (rtk1)[8]; \ - state[1] ^= (rtk1)[9]; \ - state[2] ^= (rtk1)[10]; \ - state[3] ^= (rtk1)[11]; \ - state[0] ^= (rtk2_3)[8]; \ - state[1] ^= (rtk2_3)[9]; \ - state[2] ^= (rtk2_3)[10]; \ - state[3] ^= (rtk2_3)[11]; \ - mixcolumns_2(state); \ - state[1] ^= ~(state[2] | state[3]); \ - SWAPMOVE(state[1], state[0], 0x55555555, 1); \ - SWAPMOVE(state[0], state[3], 0x55555555, 1); \ - state[3] ^= ~(state[0] | state[1]); \ - SWAPMOVE(state[2], state[1], 0x55555555, 1); \ - SWAPMOVE(state[3], state[2], 0x55555555, 1); \ - state[1] ^= ~(state[2] | state[3]); \ - SWAPMOVE(state[1], state[0], 0x55555555, 1); \ - SWAPMOVE(state[0], state[3], 0x55555555, 1); \ - state[3] ^= (state[0] | state[1]); \ - SWAPMOVE(state[1], state[2], 0x55555555, 0); \ - state[0] ^= (rtk1)[12]; \ - state[1] ^= (rtk1)[13]; \ - state[2] ^= (rtk1)[14]; \ - state[3] ^= (rtk1)[15]; \ - state[0] ^= (rtk2_3)[12]; \ - state[1] ^= (rtk2_3)[13]; \ - state[2] ^= (rtk2_3)[14]; \ - state[3] ^= (rtk2_3)[15]; \ - mixcolumns_3(state); \ -}) - -void skinny128_384(u8* ctext, const u8* ptext, const u32* rtk1, const u32* rtk2_3); - -#endif // SKINNY128_H_ \ No newline at end of file diff --git a/romulus/Implementations/crypto_aead/romulusm1v12/opt32/tk_schedule.c b/romulus/Implementations/crypto_aead/romulusm1v12/opt32/tk_schedule.c deleted file mode 100644 index c818cf2..0000000 --- a/romulus/Implementations/crypto_aead/romulusm1v12/opt32/tk_schedule.c +++ /dev/null @@ -1,379 +0,0 @@ -/****************************************************************************** -* Implementation of the SKINNY tweakey schedule to match fixslicing. -* -* @author Alexandre Adomnicai, Nanyang Technological University, -* alexandre.adomnicai@ntu.edu.sg -* -* @date May 2020 -******************************************************************************/ -#include -#include //for memcmp -#include "tk_schedule.h" -#include "skinny128.h" - -typedef unsigned char u8; -typedef unsigned int u32; - -/****************************************************************************** -* The round constants according to the new representation. -******************************************************************************/ -u32 rconst_32_bs[224] = { - 0x00000004, 0xffffffbf, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x10000100, 0xfffffeff, 0x44000000, 0xfbffffff, 0x00000000, 0x04000000, - 0x00100000, 0x00100000, 0x00100001, 0xffefffff, 0x00440000, 0xffafffff, - 0x00400000, 0x00400000, 0x01000000, 0x01000000, 0x01401000, 0xffbfffff, - 0x01004000, 0xfefffbff, 0x00000400, 0x00000400, 0x00000010, 0x00000000, - 0x00010410, 0xfffffbef, 0x00000054, 0xffffffaf, 0x00000000, 0x00000040, - 0x00000100, 0x00000100, 0x10000140, 0xfffffeff, 0x44000000, 0xfffffeff, - 0x04000000, 0x04000000, 0x00100000, 0x00100000, 0x04000001, 0xfbffffff, - 0x00140000, 0xffafffff, 0x00400000, 0x00000000, 0x00000000, 0x00000000, - 0x01401000, 0xfebfffff, 0x01004400, 0xfffffbff, 0x00000000, 0x00000400, - 0x00000010, 0x00000010, 0x00010010, 0xffffffff, 0x00000004, 0xffffffaf, - 0x00000040, 0x00000040, 0x00000100, 0x00000000, 0x10000140, 0xffffffbf, - 0x40000100, 0xfbfffeff, 0x00000000, 0x04000000, 0x00100000, 0x00000000, - 0x04100001, 0xffefffff, 0x00440000, 0xffefffff, 0x00000000, 0x00400000, - 0x01000000, 0x01000000, 0x00401000, 0xffffffff, 0x00004000, 0xfeffffff, - 0x00000400, 0x00000000, 0x00000000, 0x00000000, 0x00010400, 0xfffffbff, - 0x00000014, 0xffffffbf, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x10000100, 0xffffffff, 0x40000000, 0xfbffffff, 0x00000000, 0x04000000, - 0x00100000, 0x00000000, 0x00100001, 0xffefffff, 0x00440000, 0xffafffff, - 0x00000000, 0x00400000, 0x01000000, 0x01000000, 0x01401000, 0xffffffff, - 0x00004000, 0xfeffffff, 0x00000400, 0x00000400, 0x00000010, 0x00000000, - 0x00010400, 0xfffffbff, 0x00000014, 0xffffffaf, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x10000140, 0xfffffeff, 0x44000000, 0xffffffff, - 0x00000000, 0x04000000, 0x00100000, 0x00100000, 0x00000001, 0xffefffff, - 0x00440000, 0xffafffff, 0x00400000, 0x00000000, 0x00000000, 0x01000000, - 0x01401000, 0xffbfffff, 0x01004000, 0xfffffbff, 0x00000400, 0x00000400, - 0x00000010, 0x00000000, 0x00010010, 0xfffffbff, 0x00000014, 0xffffffef, - 0x00000000, 0x00000040, 0x00000100, 0x00000000, 0x10000040, 0xfffffeff, - 0x44000000, 0xfffffeff, 0x00000000, 0x00000000, 0x00000000, 0x00100000, - 0x04000001, 0xffffffff, 0x00040000, 0xffffffff, 0x00400000, 0x00000000, - 0x00000000, 0x00000000, 0x00001000, 0xfebfffff, 0x01004400, 0xffffffff, - 0x00000000, 0x00000000, 0x00000000, 0x00000010, 0x00010000, 0xffffffff, - 0x00000004, 0xffffffbf, 0x00000040, 0x00000000, 0x00000000, 0x00000000, - 0x10000100, 0xfffffebf, 0x44000100, 0xffffffff, 0x00000000, 0x04000000, - 0x00100000, 0x00100000, 0x00000001, 0xffffffff, 0x00040000, 0xffafffff, - 0x00400000, 0x00000000, 0x00000000, 0x00000000, 0x01401000, 0xffbfffff, - 0x01004000, 0xfffffbff, 0x00000000, 0x00000400, 0x00000010, 0x00000000, - 0x00010010, 0xffffffff -}; - -/****************************************************************************** -* Pack the input into the bitsliced representation -* 24 28 56 60 88 92 120 124 | ... | 0 4 32 36 64 68 96 100 -* 25 29 57 61 89 93 121 125 | ... | 1 5 33 37 65 69 97 101 -* 26 30 58 62 90 94 122 126 | ... | 2 6 34 38 66 70 98 102 -* 27 31 59 63 91 95 123 127 | ... | 3 7 35 39 67 71 99 103 -******************************************************************************/ -void packing(u32* out, const u8* in) { - u32 tmp; - LE_LOAD(out, in); - LE_LOAD(out + 1, in + 8); - LE_LOAD(out + 2, in + 4); - LE_LOAD(out + 3, in + 12); - SWAPMOVE(out[0], out[0], 0x0a0a0a0a, 3); - SWAPMOVE(out[1], out[1], 0x0a0a0a0a, 3); - SWAPMOVE(out[2], out[2], 0x0a0a0a0a, 3); - SWAPMOVE(out[3], out[3], 0x0a0a0a0a, 3); - SWAPMOVE(out[2], out[0], 0x30303030, 2); - SWAPMOVE(out[1], out[0], 0x0c0c0c0c, 4); - SWAPMOVE(out[3], out[0], 0x03030303, 6); - SWAPMOVE(out[1], out[2], 0x0c0c0c0c, 2); - SWAPMOVE(out[3], out[2], 0x03030303, 4); - SWAPMOVE(out[3], out[1], 0x03030303, 2); -} - -/****************************************************************************** -* Unpack the input to a byte-wise representation -******************************************************************************/ -void unpacking(u8* out, u32 *in) { - u32 tmp; - SWAPMOVE(in[3], in[1], 0x03030303, 2); - SWAPMOVE(in[3], in[2], 0x03030303, 4); - SWAPMOVE(in[1], in[2], 0x0c0c0c0c, 2); - SWAPMOVE(in[3], in[0], 0x03030303, 6); - SWAPMOVE(in[1], in[0], 0x0c0c0c0c, 4); - SWAPMOVE(in[2], in[0], 0x30303030, 2); - SWAPMOVE(in[0], in[0], 0x0a0a0a0a, 3); - SWAPMOVE(in[1], in[1], 0x0a0a0a0a, 3); - SWAPMOVE(in[2], in[2], 0x0a0a0a0a, 3); - SWAPMOVE(in[3], in[3], 0x0a0a0a0a, 3); - LE_STORE(out, in[0]); - LE_STORE(out + 8, in[1]); - LE_STORE(out + 4, in[2]); - LE_STORE(out + 12, in[3]); -} - -/****************************************************************************** -* 0 4 1 5 -* 1 5 ---> 2 6 -* 2 6 3 7 -* 3 7 4 0 -******************************************************************************/ -void lfsr2_bs(u32* tk) { - u32 tmp; - tmp = tk[0] ^ (tk[2] & 0xaaaaaaaa); - tmp = ((tmp & 0xaaaaaaaa) >> 1) | ((tmp << 1) & 0xaaaaaaaa); - tk[0] = tk[1]; - tk[1] = tk[2]; - tk[2] = tk[3]; - tk[3] = tmp; -} - -/****************************************************************************** -* 0 4 7 3 -* 1 5 ---> 0 4 -* 2 6 1 5 -* 3 7 2 6 -******************************************************************************/ -void lfsr3_bs(u32* tk) { - u32 tmp; - tmp = tk[3] ^ ((tk[1] & 0xaaaaaaaa) >> 1); - tmp = ((tmp & 0xaaaaaaaa) >> 1) | ((tmp << 1) & 0xaaaaaaaa); - tk[3] = tk[2]; - tk[2] = tk[1]; - tk[1] = tk[0]; - tk[0] = tmp; -} - -/****************************************************************************** -* Apply the permutation in a bitsliced manner, twice -******************************************************************************/ -void permute_tk_2(u32* tk) { - u32 tmp; - for(int i =0; i < 4; i++) { - tmp = tk[i]; - tk[i] = ROR(tmp,14) & 0xcc00cc00; - tk[i] |= (tmp & 0x000000ff) << 16; - tk[i] |= (tmp & 0xcc000000)>> 2; - tk[i] |= (tmp & 0x0033cc00) >> 8; - tk[i] |= (tmp & 0x00cc0000) >>18; - } -} - -/****************************************************************************** -* Apply the permutation in a bitsliced manner, 4 times -******************************************************************************/ -void permute_tk_4(u32* tk) { - u32 tmp; - for(int i =0; i < 4; i++) { - tmp = tk[i]; - tk[i] = ROR(tmp,22) & 0xcc0000cc; - tk[i] |= ROR(tmp,16) & 0x3300cc00; - tk[i] |= ROR(tmp, 24) & 0x00cc3300; - tk[i] |= (tmp & 0x00cc00cc) >> 2; - } -} - -/****************************************************************************** -* Apply the permutation in a bitsliced manner, 6 times -******************************************************************************/ -void permute_tk_6(u32* tk) { - u32 tmp; - for(int i =0; i < 4; i++) { - tmp = tk[i]; - tk[i] = ROR(tmp,6) & 0xcccc0000; - tk[i] |= ROR(tmp,24) & 0x330000cc; - tk[i] |= ROR(tmp,10) & 0x3333; - tk[i] |= (tmp & 0xcc) << 14; - tk[i] |= (tmp & 0x3300) << 2; - } -} - -/****************************************************************************** -* Apply the permutation in a bitsliced manner, 8 times -******************************************************************************/ -void permute_tk_8(u32* tk) { - u32 tmp; - for(int i =0; i < 4; i++) { - tmp = tk[i]; - tk[i] = ROR(tmp,24) & 0xcc000033; - tk[i] |= ROR(tmp,8) & 0x33cc0000; - tk[i] |= ROR(tmp,26) & 0x00333300; - tk[i] |= (tmp & 0x00333300) >> 6; - } -} - -/****************************************************************************** -* Apply the permutation in a bitsliced manner, 10 times -******************************************************************************/ -void permute_tk_10(u32* tk) { - u32 tmp; - for(int i =0; i < 4; i++) { - tmp = tk[i]; - tk[i] = ROR(tmp,8) & 0xcc330000; - tk[i] |= ROR(tmp,26) & 0x33000033; - tk[i] |= ROR(tmp,22) & 0x00cccc00; - tk[i] |= (tmp & 0x00330000) >> 14; - tk[i] |= (tmp & 0xcc00) >> 2; - } -} - -/****************************************************************************** -* Apply the permutation in a bitsliced manner, 12 times -******************************************************************************/ -void permute_tk_12(u32* tk) { - u32 tmp; - for(int i =0; i < 4; i++) { - tmp = tk[i]; - tk[i] = ROR(tmp,8) & 0xcc33; - tk[i] |= ROR(tmp,30) & 0x00cc00cc; - tk[i] |= ROR(tmp,10) & 0x33330000; - tk[i] |= ROR(tmp,16) & 0xcc003300; - } -} - -/****************************************************************************** -* Apply the permutation in a bitsliced manner, 14 times -******************************************************************************/ -void permute_tk_14(u32* tk) { - u32 tmp; - for(int i =0; i < 4; i++) { - tmp = tk[i]; - tk[i] = ROR(tmp,24) & 0x0033cc00; - tk[i] |= ROR(tmp,14) & 0x00cc0000; - tk[i] |= ROR(tmp,30) & 0xcc000000; - tk[i] |= ROR(tmp,16) & 0x000000ff; - tk[i] |= ROR(tmp,18) & 0x33003300; - } -} - -/****************************************************************************** -* Precompute all LFSRs on TK2 -******************************************************************************/ -void precompute_lfsr_tk2(u32* tk, const u8* key, const int rounds) { - u32 tk2[4]; - packing(tk2, key); - memcpy(tk, tk2, 16); - for(int i = 0 ; i < rounds; i+=2) { - lfsr2_bs(tk2); - memcpy(tk+i*4+4, tk2, 16); - } -} - -/****************************************************************************** -* Precompute all LFSRs on TK3 -******************************************************************************/ -void precompute_lfsr_tk3(u32* tk, const u8* key, const int rounds) { - u32 tk3[4]; - packing(tk3, key); - tk[0] ^= tk3[0]; - tk[1] ^= tk3[1]; - tk[2] ^= tk3[2]; - tk[3] ^= tk3[3]; - for(int i = 0 ; i < rounds; i+=2) { - lfsr3_bs(tk3); - tk[i*4+4] ^= tk3[0]; - tk[i*4+5] ^= tk3[1]; - tk[i*4+6] ^= tk3[2]; - tk[i*4+7] ^= tk3[3]; - } -} - -/****************************************************************************** -* XOR TK with TK1 before applying the permutations. -* The key is then rearranged to match the barrel shiftrows representation. -******************************************************************************/ -void permute_tk(u32* tk, const u8* key, const int rounds) { - u32 test; - u32 tk1[4], tmp[4]; - packing(tk1, key); - memcpy(tmp, tk, 16); - tmp[0] ^= tk1[0]; - tmp[1] ^= tk1[1]; - tmp[2] ^= tk1[2]; - tmp[3] ^= tk1[3]; - for(int i = 0 ; i < rounds; i += 8) { - test = (i % 16 < 8) ? 1 : 0; //to apply the right power of P - tk[i*4] = tmp[2] & 0xf0f0f0f0; - tk[i*4+1] = tmp[3] & 0xf0f0f0f0; - tk[i*4+2] = tmp[0] & 0xf0f0f0f0; - tk[i*4+3] = tmp[1] & 0xf0f0f0f0; - memcpy(tmp, tk+i*4+4, 16); - XOR_BLOCKS(tmp, tk1); - if (test) - permute_tk_2(tmp); // applies P^2 - else - permute_tk_10(tmp); // applies P^10 - tk[i*4+4] = ROR(tmp[0],26) & 0xc3c3c3c3; - tk[i*4+5] = ROR(tmp[1],26) & 0xc3c3c3c3; - tk[i*4+6] = ROR(tmp[2],26) & 0xc3c3c3c3; - tk[i*4+7] = ROR(tmp[3],26) & 0xc3c3c3c3; - tk[i*4+8] = ROR(tmp[2],28) & 0x03030303; - tk[i*4+8] |= ROR(tmp[2],12) & 0x0c0c0c0c; - tk[i*4+9] = ROR(tmp[3],28) & 0x03030303; - tk[i*4+9] |= ROR(tmp[3],12) & 0x0c0c0c0c; - tk[i*4+10] = ROR(tmp[0],28) & 0x03030303; - tk[i*4+10] |= ROR(tmp[0],12) & 0x0c0c0c0c; - tk[i*4+11] = ROR(tmp[1],28) & 0x03030303; - tk[i*4+11] |= ROR(tmp[1],12) & 0x0c0c0c0c; - memcpy(tmp, tk+i*4+12, 16); - XOR_BLOCKS(tmp, tk1); - if (test) - permute_tk_4(tmp); // applies P^4 - else - permute_tk_12(tmp); // applies P^12 - for(int j = 0; j < 4; j++) { - tk[i*4+12+j] = ROR(tmp[j],14) & 0x30303030; - tk[i*4+12+j] |= ROR(tmp[j],6) & 0x0c0c0c0c; - } - tk[i*4+16] = ROR(tmp[2], 16) & 0xf0f0f0f0; - tk[i*4+17] = ROR(tmp[3], 16) & 0xf0f0f0f0; - tk[i*4+18] = ROR(tmp[0], 16) & 0xf0f0f0f0; - tk[i*4+19] = ROR(tmp[1], 16) & 0xf0f0f0f0; - memcpy(tmp, tk+i*4+20, 16); - XOR_BLOCKS(tmp, tk1); - if (test) - permute_tk_6(tmp); // applies P^6 - else - permute_tk_14(tmp); // applies P^14 - tk[i*4+20] = ROR(tmp[0], 10) & 0xc3c3c3c3; - tk[i*4+21] = ROR(tmp[1], 10) & 0xc3c3c3c3; - tk[i*4+22] = ROR(tmp[2], 10) & 0xc3c3c3c3; - tk[i*4+23] = ROR(tmp[3], 10) & 0xc3c3c3c3; - tk[i*4+24] = ROR(tmp[2],12) & 0x03030303; - tk[i*4+24] |= ROR(tmp[2],28) & 0x0c0c0c0c; - tk[i*4+25] = ROR(tmp[3],12) & 0x03030303; - tk[i*4+25] |= ROR(tmp[3],28) & 0x0c0c0c0c; - tk[i*4+26] = ROR(tmp[0],12) & 0x03030303; - tk[i*4+26] |= ROR(tmp[0],28) & 0x0c0c0c0c; - tk[i*4+27] = ROR(tmp[1],12) & 0x03030303; - tk[i*4+27] |= ROR(tmp[1],28) & 0x0c0c0c0c; - memcpy(tmp, tk+i*4+28, 16); - XOR_BLOCKS(tmp, tk1); - if (test) - permute_tk_8(tmp); // applies P^8 - for(int j = 0; j < 4; j++) { - tk[i*4+28+j] = ROR(tmp[j],30) & 0x30303030; - tk[i*4+28+j] |= ROR(tmp[j],22) & 0x0c0c0c0c; - } - if (test && (i+8 < rounds)) { //only if next loop iteration - tk[i*4+32] = tmp[2] & 0xf0f0f0f0; - tk[i*4+33] = tmp[3] & 0xf0f0f0f0; - tk[i*4+34] = tmp[0] & 0xf0f0f0f0; - tk[i*4+35] = tmp[1] & 0xf0f0f0f0; - } - } -} - -/****************************************************************************** -* Precompute LFSR2(TK2) ^ LFSR3(TK3) ^ rconst. -******************************************************************************/ -void precompute_rtk2_3(u32* rtk, const u8* tk2, const u8 * tk3) { - memset(rtk, 0x00, 16*SKINNY128_384_ROUNDS); - precompute_lfsr_tk2(rtk, tk2, SKINNY128_384_ROUNDS); - precompute_lfsr_tk3(rtk, tk3, SKINNY128_384_ROUNDS); - permute_tk(rtk, (u8*)(rtk+8), SKINNY128_384_ROUNDS); // rtk+8 is NULL - for(int i = 0; i < SKINNY128_384_ROUNDS; i++) { // add rconsts - for(int j = 0; j < 4; j++) - rtk[i*4+j] ^= rconst_32_bs[i*4+j]; - } -} - -/****************************************************************************** -* Precompute RTK1. -******************************************************************************/ -void precompute_rtk1(u32* rtk1, const u8* tk1) { - memset(rtk1, 0x00, 16*16); - permute_tk(rtk1, tk1, 16); -} \ No newline at end of file diff --git a/romulus/Implementations/crypto_aead/romulusm1v12/opt32/tk_schedule.h b/romulus/Implementations/crypto_aead/romulusm1v12/opt32/tk_schedule.h deleted file mode 100644 index 5615cbd..0000000 --- a/romulus/Implementations/crypto_aead/romulusm1v12/opt32/tk_schedule.h +++ /dev/null @@ -1,39 +0,0 @@ -#ifndef TK_SCHEDULE_H_ -#define TK_SCHEDULE_H_ - -typedef unsigned char u8; -typedef unsigned int u32; - -void packing(u32* out, const u8* in); -void unpacking(u8* out, u32 *in); -void precompute_rtk2_3(u32* rtk, const u8* tk2, const u8* tk3); -void precompute_rtk1(u32* rtk1, const u8* tk1); - -#define ROR(x,y) (((x) >> (y)) | ((x) << (32 - (y)))) - -#define XOR_BLOCKS(x,y) ({ \ - (x)[0] ^= (y)[0]; \ - (x)[1] ^= (y)[1]; \ - (x)[2] ^= (y)[2]; \ - (x)[3] ^= (y)[3]; \ -}) - -#define SWAPMOVE(a, b, mask, n) ({ \ - tmp = (b ^ (a >> n)) & mask; \ - b ^= tmp; \ - a ^= (tmp << n); \ -}) - -#define LE_LOAD(x, y) \ - *(x) = (((u32)(y)[3] << 24) | \ - ((u32)(y)[2] << 16) | \ - ((u32)(y)[1] << 8) | \ - (y)[0]); - -#define LE_STORE(x, y) \ - (x)[0] = (y) & 0xff; \ - (x)[1] = ((y) >> 8) & 0xff; \ - (x)[2] = ((y) >> 16) & 0xff; \ - (x)[3] = (y) >> 24; - -#endif // TK_SCHEDULE_H_ \ No newline at end of file diff --git a/romulus/Implementations/crypto_aead/romulusm1v12/ref/api.h b/romulus/Implementations/crypto_aead/romulusm1v12/ref/api.h deleted file mode 100644 index a4aa567..0000000 --- a/romulus/Implementations/crypto_aead/romulusm1v12/ref/api.h +++ /dev/null @@ -1,5 +0,0 @@ -#define CRYPTO_KEYBYTES 16 -#define CRYPTO_NSECBYTES 0 -#define CRYPTO_NPUBBYTES 16 -#define CRYPTO_ABYTES 16 -#define CRYPTO_NOOVERLAP 1 diff --git a/romulus/Implementations/crypto_aead/romulusm1v12/ref/encrypt.c b/romulus/Implementations/crypto_aead/romulusm1v12/ref/encrypt.c deleted file mode 100644 index 5542509..0000000 --- a/romulus/Implementations/crypto_aead/romulusm1v12/ref/encrypt.c +++ /dev/null @@ -1,711 +0,0 @@ -/* - * Date: 29 November 2018 - * Contact: Thomas Peyrin - thomas.peyrin@gmail.com - * Mustafa Khairallah - mustafam001@e.ntu.edu.sg - */ - -#include "crypto_aead.h" -#include "api.h" -#include "variant.h" -#include "skinny.h" -#include -#include - -/*void display_vector (const unsigned char* x, int lenx) { - int i; - - for (i = 0; i < lenx; i++) { - //printf("%02x",x[i]); - } - //printf("\n"); - - }*/ - -void pad (const unsigned char* m, unsigned char* mp, int l, int len8) { - int i; - - for (i = 0; i < l; i++) { - if (i < len8) { - mp[i] = m[i]; - } - else if (i == l - 1) { - mp[i] = (len8 & 0x0f); - } - else { - mp[i] = 0x00; - } - } - -} - -void g8A (unsigned char* s, unsigned char* c) { - int i; - - for (i = 0; i < 16; i++) { - c[i] = (s[i] >> 1) ^ (s[i] & 0x80) ^ ((s[i] & 0x01) << 7); - } - -} - -void rho_ad (const unsigned char* m, - unsigned char* s, - int len8, - int ver) { - int i; - unsigned char mp [16]; - - //printf("rho in m = ");display_vector(m,len8); - pad(m,mp,ver,len8); - //printf("rho in mp = ");display_vector(mp,16); - //printf("rho in s = ");display_vector(s,16); - for (i = 0; i < ver; i++) { - s[i] = s[i] ^ mp[i]; - } - //printf("rho out s = ");display_vector(s,16); - -} - -void rho (const unsigned char* m, - unsigned char* c, - unsigned char* s, - int len8, - int ver) { - int i; - unsigned char mp [16]; - - //printf("rho in m = ");display_vector(m,len8); - pad(m,mp,ver,len8); - //printf("rho in mp = ");display_vector(mp,16); - //printf("rho in s = ");display_vector(s,16); - - g8A(s,c); - for (i = 0; i < ver; i++) { - s[i] = s[i] ^ mp[i]; - if (i < len8) { - c[i] = c[i] ^ mp[i]; - } - else { - c[i] = 0; - } - } - //printf("rho out s = ");display_vector(s,16); - //printf("rho out c = ");display_vector(c,16); - -} - -void irho (unsigned char* m, - const unsigned char* c, - unsigned char* s, - int len8, - int ver) { - int i; - unsigned char cp [16]; - - //printf("irho in c = ");display_vector(c,len8); - pad(c,cp,ver,len8); - //printf("irho in cp = ");display_vector(cp,16); - //printf("irho in s = ");display_vector(s,16); - - g8A(s,m); - for (i = 0; i < ver; i++) { - if (i < len8) { - s[i] = s[i] ^ cp[i] ^ m[i]; - } - else { - s[i] = s[i] ^ cp[i]; - } - if (i < len8) { - m[i] = m[i] ^ cp[i]; - } - else { - m[i] = 0; - } - } - //printf("irho out s = ");display_vector(s,16); - //printf("irho out m = ");display_vector(c,16); - -} - -void reset_lfsr_gf56 (unsigned char* CNT) { - CNT[0] = 0x01; - CNT[1] = 0x00; - CNT[2] = 0x00; - CNT[3] = 0x00; - CNT[4] = 0x00; - CNT[5] = 0x00; - CNT[6] = 0x00; -} - -void lfsr_gf56 (unsigned char* CNT) { - unsigned char fb0; - - fb0 = CNT[6] >> 7; - - CNT[6] = (CNT[6] << 1) | (CNT[5] >> 7); - CNT[5] = (CNT[5] << 1) | (CNT[4] >> 7); - CNT[4] = (CNT[4] << 1) | (CNT[3] >> 7); - CNT[3] = (CNT[3] << 1) | (CNT[2] >> 7); - CNT[2] = (CNT[2] << 1) | (CNT[1] >> 7); - CNT[1] = (CNT[1] << 1) | (CNT[0] >> 7); - if (fb0 == 1) { - CNT[0] = (CNT[0] << 1) ^ 0x95; - } - else { - CNT[0] = (CNT[0] << 1); - } -} - -void compose_tweakey (unsigned char* KT, - const unsigned char* K, - unsigned char* T, - unsigned char* CNT, - unsigned char D, - int t) { - - int i; - - for (i = 0; i < 7; i++) { - KT[i] = CNT[i]; - } - KT[i] = D; - for (i = 8; i < 16; i++) { - KT[i] = 0x00; - } - for (i = 0; i < t; i++) { - KT[i+16] = T[i]; - } - for (i = 0; i < 16; i++) { - KT[i+16+t] = K[i]; - } - -} - -void block_cipher(unsigned char* s, - const unsigned char* k, unsigned char* T, - unsigned char* CNT, unsigned char D, int t, int n) { - unsigned char KT [48]; - - (void)n; - compose_tweakey(KT,k,T,CNT,D,t); - //printf("BC in kt = ");display_vector(KT,3*n); - //printf("BC in s = ");display_vector(s,n); - skinny_128_384_enc (s,KT); - //printf("BC out s = ");display_vector(s,n); - -} - -void nonce_encryption (const unsigned char* N, - unsigned char* CNT, - unsigned char*s, const unsigned char* k, - int t, int n, unsigned char D) { - unsigned char T [16]; - int i; - - for (i = 0; i < t; i++) { - T[i] = N[i]; - } - //printf("nonce cnt = ");display_vector(CNT,7); - block_cipher(s,k,T,CNT,D,t,n); - -} - -void generate_tag (unsigned char** c, unsigned char* s, - int n, unsigned long long* clen) { - - g8A(s, *c); - *c = *c + n; - *c = *c - *clen; - -} - -unsigned long long msg_encryption (const unsigned char** M, unsigned char** c, - const unsigned char* N, - unsigned char* CNT, - unsigned char*s, const unsigned char* k, - unsigned int n, unsigned int t, unsigned char D, - unsigned long long mlen) { - int len8; - - - if (mlen >= n) { - len8 = n; - mlen = mlen - n; - } - else { - len8 = mlen; - mlen = 0; - } - rho(*M, *c, s, len8, n); - *c = *c + len8; - *M = *M + len8; - lfsr_gf56(CNT); - if (mlen != 0) { - nonce_encryption(N,CNT,s,k,t,n,D); - } - return mlen; -} - - - -unsigned long long msg_decryption (unsigned char** M, const unsigned char** c, - const unsigned char* N, - unsigned char* CNT, - unsigned char*s, const unsigned char* k, - unsigned int n, unsigned int t, unsigned char D, - unsigned long long clen) { - int len8; - - if (clen >= n) { - len8 = n; - clen = clen - n; - } - else { - len8 = clen; - clen = 0; - } - irho(*M, *c, s, len8, n); - *c = *c + len8; - *M = *M + len8; - lfsr_gf56(CNT); - nonce_encryption(N,CNT,s,k,t,n,D); - return clen; -} - -unsigned long long ad2msg_encryption (const unsigned char** M, - unsigned char* CNT, - unsigned char*s, const unsigned char* k, - unsigned int t, unsigned int n, unsigned char D, - unsigned long long mlen) { - unsigned char T [16]; - int len8; - - if (mlen <= t) { - len8 = mlen; - mlen = 0; - } - else { - len8 = t; - mlen = mlen - t; - } - - pad (*M,T,t,len8); - //printf("ad2msg nonce cnt = ");display_vector(CNT,7); - block_cipher(s,k,T,CNT,D,t,n); - lfsr_gf56(CNT); - *M = *M + len8; - - return mlen; - -} - - -unsigned long long ad_encryption (const unsigned char** A, unsigned char* s, - const unsigned char* k, unsigned long long adlen, - unsigned char* CNT, - unsigned char D, - unsigned int n, unsigned int t) { - - unsigned char T [16]; - int len8; - - if (adlen >= n) { - len8 = n; - adlen = adlen - n; - } - else { - len8 = adlen; - adlen = 0; - } - //printf("AD in = ");display_vector(*A,len8); - rho_ad(*A, s, len8, n); - *A = *A + len8; - lfsr_gf56(CNT); - //printf("AD cnt = ");display_vector(CNT,7); - if (adlen != 0) { - if (adlen >= t) { - len8 = t; - adlen = adlen - t; - } - else { - len8 = adlen; - adlen = 0; - } - pad(*A, T, t, len8); - *A = *A + len8; - block_cipher(s,k,T,CNT,D,t,n); - lfsr_gf56(CNT); - } - - return adlen; -} - -int crypto_aead_encrypt ( - unsigned char* c, unsigned long long* clen, - const unsigned char* m, unsigned long long mlen, - const unsigned char* ad, unsigned long long adlen, - const unsigned char* nsec, - const unsigned char* npub, - const unsigned char* k - ) -{ - unsigned char s[16]; - unsigned char CNT[7]; - unsigned char T[16]; - const unsigned char* N; - unsigned int n, t, i; - unsigned char w; - unsigned long long xlen; - - (void)nsec; - N = npub; - - n = AD_BLK_LEN_ODD; - t = AD_BLK_LEN_EVN; - - xlen = mlen; - - for (i = 0; i < n; i++) { - s[i] = 0; - } - reset_lfsr_gf56(CNT); - //printf("s = ");display_vector(s,16); - //printf("cnt = ");display_vector(CNT,7); - - w = 48; - - if (adlen == 0) { - w = w ^ 2; - if (xlen == 0) { - w =w ^ 1; - } - else if (xlen%(n+t) == 0) { - w = w ^ 4; - } - else if (xlen%(n+t) < t) { - w = w ^ 1; - } - else if (xlen%(n+t) == t) { - w = w ^ 0; - } - else { - w = w ^ 5; - } - } - else if (adlen%(n+t) == 0) { - w = w ^ 8; - if (xlen == 0) { - w =w ^ 1; - } - else if (xlen%(n+t) == 0) { - w = w ^ 4; - } - else if (xlen%(n+t) < n) { - w = w ^ 1; - } - else if (xlen%(n+t) == n) { - w = w ^ 0; - } - else { - w = w ^ 5; - } - } - else if (adlen%(n+t) < n) { - w = w ^ 2; - if (xlen == 0) { - w =w ^ 1; - } - else if (xlen%(n+t) == 0) { - w = w ^ 4; - } - else if (xlen%(n+t) < t) { - w = w ^ 1; - } - else if (xlen%(n+t) == t) { - w = w ^ 0; - } - else { - w = w ^ 5; - } - } - else if (adlen%(n+t) == n) { - w = w ^ 0; - if (xlen == 0) { - w =w ^ 1; - } - else if (xlen%(n+t) == 0) { - w = w ^ 4; - } - else if (xlen%(n+t) < t) { - w = w ^ 1; - } - else if (xlen%(n+t) == t) { - w = w ^ 0; - } - else { - w = w ^ 5; - } - } - else { - w = w ^ 10; - if (xlen == 0) { - w =w ^ 1; - } - else if (xlen%(n+t) == 0) { - w = w ^ 4; - } - else if (xlen%(n+t) < n) { - w = w ^ 1; - } - else if (xlen%(n+t) == n) { - w = w ^ 0; - } - else { - w = w ^ 5; - } - } - - if (adlen == 0) { // AD is an empty string - lfsr_gf56(CNT); - //xlen = ad2msg_encryption (&m,CNT,s,k,t,n,44,xlen); - } - else while (adlen > 0) { - adlen = ad_encryption(&ad,s,k,adlen,CNT,40,n,t); - } - - if ((w & 8) == 0) { - xlen = ad2msg_encryption (&m,CNT,s,k,t,n,44,xlen); - } - else if (mlen == 0) { - lfsr_gf56(CNT); - } - while (xlen > 0) { - xlen = ad_encryption(&m,s,k,xlen,CNT,44,n,t); - } - nonce_encryption(N,CNT,s,k,t,n,w); - - - // Tag generation - g8A(s, T); - //printf("T = ");display_vector(T,n); - - m = m - mlen; - - reset_lfsr_gf56(CNT); - - for (i = 0; i < n; i = i + 1) { - s[i] = T[i]; - } - - n = MSG_BLK_LEN; - *clen = mlen + n; - - - - if (mlen > 0) { - nonce_encryption(N,CNT,s,k,t,n,36); - while (mlen > n) { - mlen = msg_encryption(&m,&c,N,CNT,s,k,n,t,36,mlen); - } - rho(m, c, s, mlen, 16); - c = c + mlen; - m = m + mlen; - } - - // Tag Concatenation - for (i = 0; i < 16; i = i + 1) { - *(c + i) = T[i]; - } - - c = c - *clen; - - - - return 0; -} - -int crypto_aead_decrypt( -unsigned char *m,unsigned long long *mlen, -unsigned char *nsec, -const unsigned char *c,unsigned long long clen, -const unsigned char *ad,unsigned long long adlen, -const unsigned char *npub, -const unsigned char *k -) -{ - unsigned char s[16]; - unsigned char CNT[7]; - unsigned char T[16]; - const unsigned char* N; - unsigned int n, t, i; - unsigned char w; - unsigned long long xlen; - const unsigned char* mauth; - - (void)nsec; - mauth = m; - - N = npub; - - n = AD_BLK_LEN_ODD; - t = AD_BLK_LEN_EVN; - - xlen = clen-16; - - reset_lfsr_gf56(CNT); - - for (i = 0; i < 16; i++) { - T[i] = *(c + clen - 16 + i); - } - - for (i = 0; i < n; i = i + 1) { - s[i] = T[i]; - } - - n = MSG_BLK_LEN; - clen = clen - 16; - *mlen = clen; - - - if (clen > 0) { - nonce_encryption(N,CNT,s,k,t,n,36); - while (clen > n) { - clen = msg_decryption(&m,&c,N,CNT,s,k,n,t,36,clen); - } - irho(m, c, s, clen, 16); - c = c + clen; - m = m + clen; - } - - - for (i = 0; i < n; i++) { - s[i] = 0; - } - reset_lfsr_gf56(CNT); - //printf("s = ");display_vector(s,16); - //printf("cnt = ");display_vector(CNT,7); - - w = 48; - - if (adlen == 0) { - w = w ^ 2; - if (xlen == 0) { - w =w ^ 1; - } - else if (xlen%(n+t) == 0) { - w = w ^ 4; - } - else if (xlen%(n+t) < t) { - w = w ^ 1; - } - else if (xlen%(n+t) == t) { - w = w ^ 0; - } - else { - w = w ^ 5; - } - } - else if (adlen%(n+t) == 0) { - w = w ^ 8; - if (xlen == 0) { - w =w ^ 1; - } - else if (xlen%(n+t) == 0) { - w = w ^ 4; - } - else if (xlen%(n+t) < n) { - w = w ^ 1; - } - else if (xlen%(n+t) == n) { - w = w ^ 0; - } - else { - w = w ^ 5; - } - } - else if (adlen%(n+t) < n) { - w = w ^ 2; - if (xlen == 0) { - w =w ^ 1; - } - else if (xlen%(n+t) == 0) { - w = w ^ 4; - } - else if (xlen%(n+t) < t) { - w = w ^ 1; - } - else if (xlen%(n+t) == t) { - w = w ^ 0; - } - else { - w = w ^ 5; - } - } - else if (adlen%(n+t) == n) { - w = w ^ 0; - if (xlen == 0) { - w =w ^ 1; - } - else if (xlen%(n+t) == 0) { - w = w ^ 4; - } - else if (xlen%(n+t) < t) { - w = w ^ 1; - } - else if (xlen%(n+t) == t) { - w = w ^ 0; - } - else { - w = w ^ 5; - } - } - else { - w = w ^ 10; - if (xlen == 0) { - w =w ^ 1; - } - else if (xlen%(n+t) == 0) { - w = w ^ 4; - } - else if (xlen%(n+t) < n) { - w = w ^ 1; - } - else if (xlen%(n+t) == n) { - w = w ^ 0; - } - else { - w = w ^ 5; - } - } - - if (adlen == 0) { // AD is an empty string - lfsr_gf56(CNT); - //xlen = ad2msg_encryption (&mauth,CNT,s,k,t,n,44,xlen); - } - else while (adlen > 0) { - adlen = ad_encryption(&ad,s,k,adlen,CNT,40,n,t); - } - - - if ((w & 8) == 0) { - xlen = ad2msg_encryption (&mauth,CNT,s,k,t,n,44,xlen); - } - else if (clen == 0) { - lfsr_gf56(CNT); - } - while (xlen > 0) { - xlen = ad_encryption(&mauth,s,k,xlen,CNT,44,n,t); - } - nonce_encryption(N,CNT,s,k,t,n,w); - - // Tag generation - g8A(s, T); - //printf("T = ");display_vector(T,16); - //printf("t = ");display_vector(c,16); - for (i = 0; i < 16; i++) { - if (T[i] != (*(c+i))) { - return -1; - } - } - - return 0; -} diff --git a/romulus/Implementations/crypto_aead/romulusm1v12/ref/genkat_aead.c b/romulus/Implementations/crypto_aead/romulusm1v12/ref/genkat_aead.c deleted file mode 100644 index ecee146..0000000 --- a/romulus/Implementations/crypto_aead/romulusm1v12/ref/genkat_aead.c +++ /dev/null @@ -1,163 +0,0 @@ -// -// NIST-developed software is provided by NIST as a public service. -// You may use, copy and distribute copies of the software in any medium, -// provided that you keep intact this entire notice. You may improve, -// modify and create derivative works of the software or any portion of -// the software, and you may copy and distribute such modifications or -// works. Modified works should carry a notice stating that you changed -// the software and should note the date and nature of any such change. -// Please explicitly acknowledge the National Institute of Standards and -// Technology as the source of the software. -// -// NIST-developed software is expressly provided "AS IS." NIST MAKES NO -// WARRANTY OF ANY KIND, EXPRESS, IMPLIED, IN FACT OR ARISING BY OPERATION -// OF LAW, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTY OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT AND DATA ACCURACY. NIST -// NEITHER REPRESENTS NOR WARRANTS THAT THE OPERATION OF THE SOFTWARE WILL BE -// UNINTERRUPTED OR ERROR-FREE, OR THAT ANY DEFECTS WILL BE CORRECTED. NIST -// DOES NOT WARRANT OR MAKE ANY REPRESENTATIONS REGARDING THE USE OF THE SOFTWARE -// OR THE RESULTS THEREOF, INCLUDING BUT NOT LIMITED TO THE CORRECTNESS, ACCURACY, -// RELIABILITY, OR USEFULNESS OF THE SOFTWARE. -// -// You are solely responsible for determining the appropriateness of using and -// distributing the software and you assume all risks associated with its use, -// including but not limited to the risks and costs of program errors, compliance -// with applicable laws, damage to or loss of data, programs or equipment, and -// the unavailability or interruption of operation. This software is not intended -// to be used in any situation where a failure could cause risk of injury or -// damage to property. The software developed by NIST employees is not subject to -// copyright protection within the United States. -// - -// disable deprecation for sprintf and fopen -#ifdef _MSC_VER -#define _CRT_SECURE_NO_WARNINGS -#endif - -#include -#include - -#include "crypto_aead.h" -#include "api.h" - -#define KAT_SUCCESS 0 -#define KAT_FILE_OPEN_ERROR -1 -#define KAT_DATA_ERROR -3 -#define KAT_CRYPTO_FAILURE -4 - -#define MAX_FILE_NAME 256 -#define MAX_MESSAGE_LENGTH 32 -#define MAX_ASSOCIATED_DATA_LENGTH 32 - -void init_buffer(unsigned char *buffer, unsigned long long numbytes); - -void fprint_bstr(FILE *fp, const char *label, const unsigned char *data, unsigned long long length); - -int generate_test_vectors(); - -int main() -{ - int ret = generate_test_vectors(); - - if (ret != KAT_SUCCESS) { - fprintf(stderr, "test vector generation failed with code %d\n", ret); - } - - return ret; -} - -int generate_test_vectors() -{ - FILE *fp; - char fileName[MAX_FILE_NAME]; - unsigned char key[CRYPTO_KEYBYTES]; - unsigned char nonce[CRYPTO_NPUBBYTES]; - unsigned char msg[MAX_MESSAGE_LENGTH]; - unsigned char msg2[MAX_MESSAGE_LENGTH]; - unsigned char ad[MAX_ASSOCIATED_DATA_LENGTH]; - unsigned char ct[MAX_MESSAGE_LENGTH + CRYPTO_ABYTES]; - unsigned long long clen, mlen2; - int count = 1; - int func_ret, ret_val = KAT_SUCCESS; - - init_buffer(key, sizeof(key)); - init_buffer(nonce, sizeof(nonce)); - init_buffer(msg, sizeof(msg)); - init_buffer(ad, sizeof(ad)); - - sprintf(fileName, "LWC_AEAD_KAT_%d_%d.txt", (CRYPTO_KEYBYTES * 8), (CRYPTO_NPUBBYTES * 8)); - - if ((fp = fopen(fileName, "w")) == NULL) { - fprintf(stderr, "Couldn't open <%s> for write\n", fileName); - return KAT_FILE_OPEN_ERROR; - } - - for (unsigned long long mlen = 0; (mlen <= MAX_MESSAGE_LENGTH) && (ret_val == KAT_SUCCESS); mlen++) { - //for (unsigned long long mlen = 0; (mlen <= 32) && (ret_val == KAT_SUCCESS); mlen++) { - for (unsigned long long adlen = 0; adlen <= MAX_ASSOCIATED_DATA_LENGTH; adlen++) { - //for (unsigned long long adlen = 0; adlen <= 32; adlen++) { - - printf("%0d\n", (int)clen); - - fprintf(fp, "Count = %d\n", count++); - printf("Count = %d\n", count - 1); - - fprint_bstr(fp, "Key = ", key, CRYPTO_KEYBYTES); - - fprint_bstr(fp, "Nonce = ", nonce, CRYPTO_NPUBBYTES); - - fprint_bstr(fp, "PT = ", msg, mlen); - - fprint_bstr(fp, "AD = ", ad, adlen); - - if ((func_ret = crypto_aead_encrypt(ct, &clen, msg, mlen, ad, adlen, NULL, nonce, key)) != 0) { - fprintf(fp, "crypto_aead_encrypt returned <%d>\n", func_ret); - ret_val = KAT_CRYPTO_FAILURE; - break; - } - - fprint_bstr(fp, "CT = ", ct, clen); - - fprintf(fp, "\n"); - - if ((func_ret = crypto_aead_decrypt(msg2, &mlen2, NULL, ct, clen, ad, adlen, nonce, key)) != 0) { - fprintf(fp, "crypto_aead_decrypt returned <%d>\n", func_ret); - ret_val = KAT_CRYPTO_FAILURE; - break; - } - - if (mlen != mlen2) { - fprintf(fp, "crypto_aead_decrypt returned bad 'mlen': Got <%llu>, expected <%llu>\n", mlen2, mlen); - ret_val = KAT_CRYPTO_FAILURE; - break; - } - - if (memcmp(msg, msg2, mlen)) { - fprintf(fp, "crypto_aead_decrypt did not recover the plaintext\n"); - ret_val = KAT_CRYPTO_FAILURE; - break; - } - } - } - - fclose(fp); - - return ret_val; -} - - -void fprint_bstr(FILE *fp, const char *label, const unsigned char *data, unsigned long long length) -{ - fprintf(fp, "%s", label); - - for (unsigned long long i = 0; i < length; i++) - fprintf(fp, "%02X", data[i]); - - fprintf(fp, "\n"); -} - -void init_buffer(unsigned char *buffer, unsigned long long numbytes) -{ - for (unsigned long long i = 0; i < numbytes; i++) - buffer[i] = (unsigned char)i; -} diff --git a/romulus/Implementations/crypto_aead/romulusm1v12/ref/skinny.h b/romulus/Implementations/crypto_aead/romulusm1v12/ref/skinny.h deleted file mode 100644 index 70c4421..0000000 --- a/romulus/Implementations/crypto_aead/romulusm1v12/ref/skinny.h +++ /dev/null @@ -1 +0,0 @@ -extern void skinny_128_384_enc (unsigned char* input, const unsigned char* userkey); diff --git a/romulus/Implementations/crypto_aead/romulusm1v12/ref/skinny_reference.c b/romulus/Implementations/crypto_aead/romulusm1v12/ref/skinny_reference.c deleted file mode 100644 index ec59a31..0000000 --- a/romulus/Implementations/crypto_aead/romulusm1v12/ref/skinny_reference.c +++ /dev/null @@ -1,547 +0,0 @@ -/* - * Date: 11 December 2015 - * Contact: Thomas Peyrin - thomas.peyrin@gmail.com - */ - -#include -#include -#include -#include -#include "skinny.h" - -#define DEBUG 0 - -// Table that encodes the parameters of the various Skinny versions: -// (block size, key size, number of rounds) -//Skinny-64-64: 32 rounds -//Skinny-64-128: 36 rounds -//Skinny-64-192: 40 rounds -//Skinny-128-128: 40 rounds -//Skinny-128-256: 48 rounds -//Skinny-128-384: 56 rounds -int versions[6][3]={{64,64,32},{64,128,36},{64,192,40},{128,128,40},{128,256,48},{128,384,56}}; - -// Packing of data is done as follows (state[i][j] stands for row i and column j): -// 0 1 2 3 -// 4 5 6 7 -// 8 9 10 11 -//12 13 14 15 - -// 4-bit Sbox -const unsigned char sbox_4[16] = {12,6,9,0,1,10,2,11,3,8,5,13,4,14,7,15}; -const unsigned char sbox_4_inv[16] = {3,4,6,8,12,10,1,14,9,2,5,7,0,11,13,15}; - -// 8-bit Sbox -const unsigned char sbox_8[256] = {0x65 , 0x4c , 0x6a , 0x42 , 0x4b , 0x63 , 0x43 , 0x6b , 0x55 , 0x75 , 0x5a , 0x7a , 0x53 , 0x73 , 0x5b , 0x7b ,0x35 , 0x8c , 0x3a , 0x81 , 0x89 , 0x33 , 0x80 , 0x3b , 0x95 , 0x25 , 0x98 , 0x2a , 0x90 , 0x23 , 0x99 , 0x2b ,0xe5 , 0xcc , 0xe8 , 0xc1 , 0xc9 , 0xe0 , 0xc0 , 0xe9 , 0xd5 , 0xf5 , 0xd8 , 0xf8 , 0xd0 , 0xf0 , 0xd9 , 0xf9 ,0xa5 , 0x1c , 0xa8 , 0x12 , 0x1b , 0xa0 , 0x13 , 0xa9 , 0x05 , 0xb5 , 0x0a , 0xb8 , 0x03 , 0xb0 , 0x0b , 0xb9 ,0x32 , 0x88 , 0x3c , 0x85 , 0x8d , 0x34 , 0x84 , 0x3d , 0x91 , 0x22 , 0x9c , 0x2c , 0x94 , 0x24 , 0x9d , 0x2d ,0x62 , 0x4a , 0x6c , 0x45 , 0x4d , 0x64 , 0x44 , 0x6d , 0x52 , 0x72 , 0x5c , 0x7c , 0x54 , 0x74 , 0x5d , 0x7d ,0xa1 , 0x1a , 0xac , 0x15 , 0x1d , 0xa4 , 0x14 , 0xad , 0x02 , 0xb1 , 0x0c , 0xbc , 0x04 , 0xb4 , 0x0d , 0xbd ,0xe1 , 0xc8 , 0xec , 0xc5 , 0xcd , 0xe4 , 0xc4 , 0xed , 0xd1 , 0xf1 , 0xdc , 0xfc , 0xd4 , 0xf4 , 0xdd , 0xfd ,0x36 , 0x8e , 0x38 , 0x82 , 0x8b , 0x30 , 0x83 , 0x39 , 0x96 , 0x26 , 0x9a , 0x28 , 0x93 , 0x20 , 0x9b , 0x29 ,0x66 , 0x4e , 0x68 , 0x41 , 0x49 , 0x60 , 0x40 , 0x69 , 0x56 , 0x76 , 0x58 , 0x78 , 0x50 , 0x70 , 0x59 , 0x79 ,0xa6 , 0x1e , 0xaa , 0x11 , 0x19 , 0xa3 , 0x10 , 0xab , 0x06 , 0xb6 , 0x08 , 0xba , 0x00 , 0xb3 , 0x09 , 0xbb ,0xe6 , 0xce , 0xea , 0xc2 , 0xcb , 0xe3 , 0xc3 , 0xeb , 0xd6 , 0xf6 , 0xda , 0xfa , 0xd3 , 0xf3 , 0xdb , 0xfb ,0x31 , 0x8a , 0x3e , 0x86 , 0x8f , 0x37 , 0x87 , 0x3f , 0x92 , 0x21 , 0x9e , 0x2e , 0x97 , 0x27 , 0x9f , 0x2f ,0x61 , 0x48 , 0x6e , 0x46 , 0x4f , 0x67 , 0x47 , 0x6f , 0x51 , 0x71 , 0x5e , 0x7e , 0x57 , 0x77 , 0x5f , 0x7f ,0xa2 , 0x18 , 0xae , 0x16 , 0x1f , 0xa7 , 0x17 , 0xaf , 0x01 , 0xb2 , 0x0e , 0xbe , 0x07 , 0xb7 , 0x0f , 0xbf ,0xe2 , 0xca , 0xee , 0xc6 , 0xcf ,0xe7 , 0xc7 , 0xef , 0xd2 , 0xf2 , 0xde , 0xfe , 0xd7 , 0xf7 , 0xdf , 0xff}; -const unsigned char sbox_8_inv[256] = {0xac , 0xe8 , 0x68 , 0x3c , 0x6c , 0x38 , 0xa8 , 0xec , 0xaa , 0xae , 0x3a , 0x3e , 0x6a , 0x6e , 0xea , 0xee ,0xa6 , 0xa3 , 0x33 , 0x36 , 0x66 , 0x63 , 0xe3 , 0xe6 , 0xe1 , 0xa4 , 0x61 , 0x34 , 0x31 , 0x64 , 0xa1 , 0xe4 ,0x8d , 0xc9 , 0x49 , 0x1d , 0x4d , 0x19 , 0x89 , 0xcd , 0x8b , 0x8f , 0x1b , 0x1f , 0x4b , 0x4f , 0xcb , 0xcf ,0x85 , 0xc0 , 0x40 , 0x15 , 0x45 , 0x10 , 0x80 , 0xc5 , 0x82 , 0x87 , 0x12 , 0x17 , 0x42 , 0x47 , 0xc2 , 0xc7 ,0x96 , 0x93 , 0x03 , 0x06 , 0x56 , 0x53 , 0xd3 , 0xd6 , 0xd1 , 0x94 , 0x51 , 0x04 , 0x01 , 0x54 , 0x91 , 0xd4 ,0x9c , 0xd8 , 0x58 , 0x0c , 0x5c , 0x08 , 0x98 , 0xdc , 0x9a , 0x9e , 0x0a , 0x0e , 0x5a , 0x5e , 0xda , 0xde ,0x95 , 0xd0 , 0x50 , 0x05 , 0x55 , 0x00 , 0x90 , 0xd5 , 0x92 , 0x97 , 0x02 , 0x07 , 0x52 , 0x57 , 0xd2 , 0xd7 ,0x9d , 0xd9 , 0x59 , 0x0d , 0x5d , 0x09 , 0x99 , 0xdd , 0x9b , 0x9f , 0x0b , 0x0f , 0x5b , 0x5f , 0xdb , 0xdf ,0x16 , 0x13 , 0x83 , 0x86 , 0x46 , 0x43 , 0xc3 , 0xc6 , 0x41 , 0x14 , 0xc1 , 0x84 , 0x11 , 0x44 , 0x81 , 0xc4 ,0x1c , 0x48 , 0xc8 , 0x8c , 0x4c , 0x18 , 0x88 , 0xcc , 0x1a , 0x1e , 0x8a , 0x8e , 0x4a , 0x4e , 0xca , 0xce ,0x35 , 0x60 , 0xe0 , 0xa5 , 0x65 , 0x30 , 0xa0 , 0xe5 , 0x32 , 0x37 , 0xa2 , 0xa7 , 0x62 , 0x67 , 0xe2 , 0xe7 ,0x3d , 0x69 , 0xe9 , 0xad , 0x6d , 0x39 , 0xa9 , 0xed , 0x3b , 0x3f , 0xab , 0xaf , 0x6b , 0x6f , 0xeb , 0xef ,0x26 , 0x23 , 0xb3 , 0xb6 , 0x76 , 0x73 , 0xf3 , 0xf6 , 0x71 , 0x24 , 0xf1 , 0xb4 , 0x21 , 0x74 , 0xb1 , 0xf4 ,0x2c , 0x78 , 0xf8 , 0xbc , 0x7c , 0x28 , 0xb8 , 0xfc , 0x2a , 0x2e , 0xba , 0xbe , 0x7a , 0x7e , 0xfa , 0xfe ,0x25 , 0x70 , 0xf0 , 0xb5 , 0x75 , 0x20 , 0xb0 , 0xf5 , 0x22 , 0x27 , 0xb2 , 0xb7 , 0x72 , 0x77 , 0xf2 , 0xf7 ,0x2d , 0x79 , 0xf9 , 0xbd , 0x7d , 0x29 , 0xb9 , 0xfd , 0x2b , 0x2f , 0xbb , 0xbf , 0x7b , 0x7f , 0xfb , 0xff}; - -// ShiftAndSwitchRows permutation -const unsigned char P[16] = {0,1,2,3,7,4,5,6,10,11,8,9,13,14,15,12}; -const unsigned char P_inv[16] = {0,1,2,3,5,6,7,4,10,11,8,9,15,12,13,14}; - -// Tweakey permutation -const unsigned char TWEAKEY_P[16] = {9,15,8,13,10,14,12,11,0,1,2,3,4,5,6,7}; -const unsigned char TWEAKEY_P_inv[16] = {8,9,10,11,12,13,14,15,2,0,4,7,6,3,5,1}; - -// round constants -const unsigned char RC[62] = { - 0x01, 0x03, 0x07, 0x0F, 0x1F, 0x3E, 0x3D, 0x3B, 0x37, 0x2F, - 0x1E, 0x3C, 0x39, 0x33, 0x27, 0x0E, 0x1D, 0x3A, 0x35, 0x2B, - 0x16, 0x2C, 0x18, 0x30, 0x21, 0x02, 0x05, 0x0B, 0x17, 0x2E, - 0x1C, 0x38, 0x31, 0x23, 0x06, 0x0D, 0x1B, 0x36, 0x2D, 0x1A, - 0x34, 0x29, 0x12, 0x24, 0x08, 0x11, 0x22, 0x04, 0x09, 0x13, - 0x26, 0x0c, 0x19, 0x32, 0x25, 0x0a, 0x15, 0x2a, 0x14, 0x28, - 0x10, 0x20}; - -FILE* fic; - - -// Extract and apply the subtweakey to the internal state (must be the two top rows XORed together), then update the tweakey state -void AddKey(unsigned char state[4][4], unsigned char keyCells[3][4][4], int ver) -{ - int i, j, k; - unsigned char pos; - unsigned char keyCells_tmp[3][4][4]; - - // apply the subtweakey to the internal state - for(i = 0; i <= 1; i++) - { - for(j = 0; j < 4; j++) - { - state[i][j] ^= keyCells[0][i][j]; - if (2*versions[ver][0]==versions[ver][1]) - state[i][j] ^= keyCells[1][i][j]; - else if (3*versions[ver][0]==versions[ver][1]) - state[i][j] ^= keyCells[1][i][j] ^ keyCells[2][i][j]; - } - } - - // update the subtweakey states with the permutation - for(k = 0; k <(int)(versions[ver][1]/versions[ver][0]); k++){ - for(i = 0; i < 4; i++){ - for(j = 0; j < 4; j++){ - //application of the TWEAKEY permutation - pos=TWEAKEY_P[j+4*i]; - keyCells_tmp[k][i][j]=keyCells[k][pos>>2][pos&0x3]; - } - } - } - - // update the subtweakey states with the LFSRs - for(k = 0; k <(int)(versions[ver][1]/versions[ver][0]); k++){ - for(i = 0; i <= 1; i++){ - for(j = 0; j < 4; j++){ - //application of LFSRs for TK updates - if (k==1) - { - if (versions[ver][0]==64) - keyCells_tmp[k][i][j]=((keyCells_tmp[k][i][j]<<1)&0xE)^((keyCells_tmp[k][i][j]>>3)&0x1)^((keyCells_tmp[k][i][j]>>2)&0x1); - else - keyCells_tmp[k][i][j]=((keyCells_tmp[k][i][j]<<1)&0xFE)^((keyCells_tmp[k][i][j]>>7)&0x01)^((keyCells_tmp[k][i][j]>>5)&0x01); - } - else if (k==2) - { - if (versions[ver][0]==64) - keyCells_tmp[k][i][j]=((keyCells_tmp[k][i][j]>>1)&0x7)^((keyCells_tmp[k][i][j])&0x8)^((keyCells_tmp[k][i][j]<<3)&0x8); - else - keyCells_tmp[k][i][j]=((keyCells_tmp[k][i][j]>>1)&0x7F)^((keyCells_tmp[k][i][j]<<7)&0x80)^((keyCells_tmp[k][i][j]<<1)&0x80); - } - } - } - } - - for(k = 0; k <(int)(versions[ver][1]/versions[ver][0]); k++){ - for(i = 0; i < 4; i++){ - for(j = 0; j < 4; j++){ - keyCells[k][i][j]=keyCells_tmp[k][i][j]; - } - } - } -} - - -// Extract and apply the subtweakey to the internal state (must be the two top rows XORed together), then update the tweakey state (inverse function} -void AddKey_inv(unsigned char state[4][4], unsigned char keyCells[3][4][4], int ver) -{ - int i, j, k; - unsigned char pos; - unsigned char keyCells_tmp[3][4][4]; - - // update the subtweakey states with the permutation - for(k = 0; k <(int)(versions[ver][1]/versions[ver][0]); k++){ - for(i = 0; i < 4; i++){ - for(j = 0; j < 4; j++){ - //application of the inverse TWEAKEY permutation - pos=TWEAKEY_P_inv[j+4*i]; - keyCells_tmp[k][i][j]=keyCells[k][pos>>2][pos&0x3]; - } - } - } - - // update the subtweakey states with the LFSRs - for(k = 0; k <(int)(versions[ver][1]/versions[ver][0]); k++){ - for(i = 2; i <= 3; i++){ - for(j = 0; j < 4; j++){ - //application of inverse LFSRs for TK updates - if (k==1) - { - if (versions[ver][0]==64) - keyCells_tmp[k][i][j]=((keyCells_tmp[k][i][j]>>1)&0x7)^((keyCells_tmp[k][i][j]<<3)&0x8)^((keyCells_tmp[k][i][j])&0x8); - else - keyCells_tmp[k][i][j]=((keyCells_tmp[k][i][j]>>1)&0x7F)^((keyCells_tmp[k][i][j]<<7)&0x80)^((keyCells_tmp[k][i][j]<<1)&0x80); - } - else if (k==2) - { - if (versions[ver][0]==64) - keyCells_tmp[k][i][j]=((keyCells_tmp[k][i][j]<<1)&0xE)^((keyCells_tmp[k][i][j]>>3)&0x1)^((keyCells_tmp[k][i][j]>>2)&0x1); - else - keyCells_tmp[k][i][j]=((keyCells_tmp[k][i][j]<<1)&0xFE)^((keyCells_tmp[k][i][j]>>7)&0x01)^((keyCells_tmp[k][i][j]>>5)&0x01); - } - } - } - } - - for(k = 0; k <(int)(versions[ver][1]/versions[ver][0]); k++){ - for(i = 0; i < 4; i++){ - for(j = 0; j < 4; j++){ - keyCells[k][i][j]=keyCells_tmp[k][i][j]; - } - } - } - - - // apply the subtweakey to the internal state - for(i = 0; i <= 1; i++) - { - for(j = 0; j < 4; j++) - { - state[i][j] ^= keyCells[0][i][j]; - if (2*versions[ver][0]==versions[ver][1]) - state[i][j] ^= keyCells[1][i][j]; - else if (3*versions[ver][0]==versions[ver][1]) - state[i][j] ^= keyCells[1][i][j] ^ keyCells[2][i][j]; - } - } -} - - -// Apply the constants: using a LFSR counter on 6 bits, we XOR the 6 bits to the first 6 bits of the internal state -void AddConstants(unsigned char state[4][4], int r) -{ - state[0][0] ^= (RC[r] & 0xf); - state[1][0] ^= ((RC[r]>>4) & 0x3); - state[2][0] ^= 0x2; -} - -// apply the 4-bit Sbox -void SubCell4(unsigned char state[4][4]) -{ - int i,j; - for(i = 0; i < 4; i++) - for(j = 0; j < 4; j++) - state[i][j] = sbox_4[state[i][j]]; -} - -// apply the 4-bit inverse Sbox -void SubCell4_inv(unsigned char state[4][4]) -{ - int i,j; - for(i = 0; i < 4; i++) - for(j = 0; j < 4; j++) - state[i][j] = sbox_4_inv[state[i][j]]; -} - -// apply the 8-bit Sbox -void SubCell8(unsigned char state[4][4]) -{ - int i,j; - for(i = 0; i < 4; i++) - for(j = 0; j < 4; j++) - state[i][j] = sbox_8[state[i][j]]; -} - -// apply the 8-bit inverse Sbox -void SubCell8_inv(unsigned char state[4][4]) -{ - int i,j; - for(i = 0; i < 4; i++) - for(j = 0; j < 4; j++) - state[i][j] = sbox_8_inv[state[i][j]]; -} - -// Apply the ShiftRows function -void ShiftRows(unsigned char state[4][4]) -{ - int i, j, pos; - - unsigned char state_tmp[4][4]; - for(i = 0; i < 4; i++) - { - for(j = 0; j < 4; j++) - { - //application of the ShiftRows permutation - pos=P[j+4*i]; - state_tmp[i][j]=state[pos>>2][pos&0x3]; - } - } - - for(i = 0; i < 4; i++) - { - for(j = 0; j < 4; j++) - { - state[i][j]=state_tmp[i][j]; - } - } -} - -// Apply the inverse ShiftRows function -void ShiftRows_inv(unsigned char state[4][4]) -{ - int i, j, pos; - - unsigned char state_tmp[4][4]; - for(i = 0; i < 4; i++) - { - for(j = 0; j < 4; j++) - { - //application of the inverse ShiftRows permutation - pos=P_inv[j+4*i]; - state_tmp[i][j]=state[pos>>2][pos&0x3]; - } - } - - for(i = 0; i < 4; i++) - { - for(j = 0; j < 4; j++) - { - state[i][j]=state_tmp[i][j]; - } - } -} - -// Apply the linear diffusion matrix -//M = -//1 0 1 1 -//1 0 0 0 -//0 1 1 0 -//1 0 1 0 -void MixColumn(unsigned char state[4][4]) -{ - int j; - unsigned char temp; - - for(j = 0; j < 4; j++){ - state[1][j]^=state[2][j]; - state[2][j]^=state[0][j]; - state[3][j]^=state[2][j]; - - temp=state[3][j]; - state[3][j]=state[2][j]; - state[2][j]=state[1][j]; - state[1][j]=state[0][j]; - state[0][j]=temp; - } -} - -// Apply the inverse linear diffusion matrix -void MixColumn_inv(unsigned char state[4][4]) -{ - int j; - unsigned char temp; - - for(j = 0; j < 4; j++){ - temp=state[3][j]; - state[3][j]=state[0][j]; - state[0][j]=state[1][j]; - state[1][j]=state[2][j]; - state[2][j]=temp; - - state[3][j]^=state[2][j]; - state[2][j]^=state[0][j]; - state[1][j]^=state[2][j]; - } -} - -// decryption function of Skinny -void dec(unsigned char* input, const unsigned char* userkey, int ver) -{ - unsigned char state[4][4]; - unsigned char dummy[4][4]={{0}}; - unsigned char keyCells[3][4][4]; - int i; - - memset(keyCells, 0, 48); - for(i = 0; i < 16; i++) { - if (versions[ver][0]==64){ - if(i&1) - { - state[i>>2][i&0x3] = input[i>>1]&0xF; - keyCells[0][i>>2][i&0x3] = userkey[i>>1]&0xF; - if (versions[ver][1]>=128) - keyCells[1][i>>2][i&0x3] = userkey[(i+16)>>1]&0xF; - if (versions[ver][1]>=192) - keyCells[2][i>>2][i&0x3] = userkey[(i+32)>>1]&0xF; - } - else - { - state[i>>2][i&0x3] = (input[i>>1]>>4)&0xF; - keyCells[0][i>>2][i&0x3] = (userkey[i>>1]>>4)&0xF; - if (versions[ver][1]>=128) - keyCells[1][i>>2][i&0x3] = (userkey[(i+16)>>1]>>4)&0xF; - if (versions[ver][1]>=192) - keyCells[2][i>>2][i&0x3] = (userkey[(i+32)>>1]>>4)&0xF; - } - } - else if (versions[ver][0]==128){ - state[i>>2][i&0x3] = input[i]&0xFF; - - keyCells[0][i>>2][i&0x3] = userkey[i]&0xFF; - if (versions[ver][1]>=256) - keyCells[1][i>>2][i&0x3] = userkey[i+16]&0xFF; - if (versions[ver][1]>=384) - keyCells[2][i>>2][i&0x3] = userkey[i+32]&0xFF; - } - } - - for(i = versions[ver][2]-1; i >=0 ; i--){ - AddKey(dummy, keyCells, ver); - } - - #ifdef DEBUG - //f//printf(fic,"DEC - initial state: ");display_cipher_state(state,keyCells,ver);//f//printf(fic,"\n"); - #endif - - for(i = versions[ver][2]-1; i >=0 ; i--){ - MixColumn_inv(state); - #ifdef DEBUG - //f//printf(fic,"DEC - round %.2i - after MixColumn_inv: ",i);display_cipher_state(state,keyCells,ver);//f//printf(fic,"\n"); - #endif - ShiftRows_inv(state); - #ifdef DEBUG - //f//printf(fic,"DEC - round %.2i - after ShiftRows_inv: ",i);display_cipher_state(state,keyCells,ver);//f//printf(fic,"\n"); - #endif - AddKey_inv(state, keyCells, ver); - #ifdef DEBUG - //f//printf(fic,"DEC - round %.2i - after AddKey_inv: ",i);display_cipher_state(state,keyCells,ver);//f//printf(fic,"\n"); - #endif - AddConstants(state, i); - #ifdef DEBUG - //f//printf(fic,"DEC - round %.2i - after AddConstants_inv: ",i);display_cipher_state(state,keyCells,ver);//f//printf(fic,"\n"); - #endif - if (versions[ver][0]==64) - SubCell4_inv(state); - else - SubCell8_inv(state); - #ifdef DEBUG - //f//printf(fic,"DEC - round %.2i - after SubCell_inv: ",i);display_cipher_state(state,keyCells,ver);//f//printf(fic,"\n"); - #endif - } - - #ifdef DEBUG - //f//printf(fic,"DEC - final state: ");display_cipher_state(state,keyCells,ver);//f//printf(fic,"\n"); - #endif - - if (versions[ver][0]==64) - { - for(i = 0; i < 8; i++) - input[i] = ((state[(2*i)>>2][(2*i)&0x3] & 0xF) << 4) | (state[(2*i+1)>>2][(2*i+1)&0x3] & 0xF); - } - else if (versions[ver][0]==128) - { - for(i = 0; i < 16; i++) - input[i] = state[i>>2][i&0x3] & 0xFF; - } -} - -// encryption function of Skinny -void enc(unsigned char* input, const unsigned char* userkey, int ver) -{ - unsigned char state[4][4]; - unsigned char keyCells[3][4][4]; - int i; - - memset(keyCells, 0, 48); - for(i = 0; i < 16; i++) { - if (versions[ver][0]==64){ - if(i&1) - { - state[i>>2][i&0x3] = input[i>>1]&0xF; - keyCells[0][i>>2][i&0x3] = userkey[i>>1]&0xF; - if (versions[ver][1]>=128) - keyCells[1][i>>2][i&0x3] = userkey[(i+16)>>1]&0xF; - if (versions[ver][1]>=192) - keyCells[2][i>>2][i&0x3] = userkey[(i+32)>>1]&0xF; - } - else - { - state[i>>2][i&0x3] = (input[i>>1]>>4)&0xF; - keyCells[0][i>>2][i&0x3] = (userkey[i>>1]>>4)&0xF; - if (versions[ver][1]>=128) - keyCells[1][i>>2][i&0x3] = (userkey[(i+16)>>1]>>4)&0xF; - if (versions[ver][1]>=192) - keyCells[2][i>>2][i&0x3] = (userkey[(i+32)>>1]>>4)&0xF; - } - } - else if (versions[ver][0]==128){ - state[i>>2][i&0x3] = input[i]&0xFF; - keyCells[0][i>>2][i&0x3] = userkey[i]&0xFF; - if (versions[ver][1]>=256) - keyCells[1][i>>2][i&0x3] = userkey[i+16]&0xFF; - if (versions[ver][1]>=384) - keyCells[2][i>>2][i&0x3] = userkey[i+32]&0xFF; - } - } - - #ifdef DEBUG - //printf("ENC - initial state: ");display_cipher_state(state,keyCells,ver);//printf("\n"); - #endif - for(i = 0; i < versions[ver][2]; i++){ - if (versions[ver][0]==64) - SubCell4(state); - else - SubCell8(state); - #ifdef DEBUG - //printf("ENC - round %.2i - after SubCell: ",i);display_cipher_state(state,keyCells,ver);//printf("\n"); - #endif - AddConstants(state, i); - #ifdef DEBUG - //printf("ENC - round %.2i - after AddConstants: ",i);display_cipher_state(state,keyCells,ver);//printf("\n"); - #endif - AddKey(state, keyCells, ver); - #ifdef DEBUG - //printf("ENC - round %.2i - after AddKey: ",i);display_cipher_state(state,keyCells,ver);//printf("\n"); - #endif - ShiftRows(state); - #ifdef DEBUG - //printf("ENC - round %.2i - after ShiftRows: ",i);display_cipher_state(state,keyCells,ver);//printf("\n"); - #endif - MixColumn(state); - #ifdef DEBUG - //printf("ENC - round %.2i - after MixColumn: ",i);display_cipher_state(state,keyCells,ver);//printf("\n"); - #endif - } //The last subtweakey should not be added - - #ifdef DEBUG - //printf("ENC - final state: ");display_cipher_state(state,keyCells,ver);//printf("\n"); - #endif - - if (versions[ver][0]==64) - { - for(i = 0; i < 8; i++) - input[i] = ((state[(2*i)>>2][(2*i)&0x3] & 0xF) << 4) | (state[(2*i+1)>>2][(2*i+1)&0x3] & 0xF); - } - else if (versions[ver][0]==128) - { - for(i = 0; i < 16; i++) - input[i] = state[i>>2][i&0x3] & 0xFF; - } -} - -void skinny_128_384_enc (unsigned char* input, const unsigned char* userkey) { - enc(input,userkey,5); -} - -// generate test vectors for all the versions of Skinny -void TestVectors(int ver) -{ - unsigned char p[16]; - unsigned char c[16]; - unsigned char k[48]; - int n; - - for(n = 1; n < 10; n++) - { - int i; - for(i = 0; i < (versions[ver][0]>>3); i++) c[i] = p[i] = rand() & 0xff; - for(i = 0; i < (versions[ver][1]>>3); i++) k[i] = rand() & 0xff; - //printf("TK = "); for(i = 0; i < (versions[ver][1]>>3); i++) //printf("%02x", k[i]); //printf("\n"); - //printf("P = "); for(i = 0; i < (versions[ver][0]>>3); i++) //printf("%02x", p[i]); //printf("\n"); - enc(c,k,ver); - //printf("C = "); for(i = 0; i < (versions[ver][0]>>3); i++) //printf("%02x", c[i]); //printf("\n"); - dec(c,k,ver); - //printf("P' = "); for(i = 0; i < (versions[ver][0]>>3); i++) //printf("%02x", c[i]); //printf("\n\n"); - } -} - -/* int main() { */ -/* unsigned int i; */ -/* char name[30]; */ - -/* srand((unsigned) time (NULL)); */ - -/* //test all versions of Skinny */ -/* for (i=0; i<(sizeof(versions)/sizeof(*versions));i++) */ -/* { */ -/* s//printf(name, "test_vectors_%i_%i.txt", versions[i][0], versions[i][1]); */ -/* fic=fopen(name,"w"); */ -/* //printf("\n\nSkinny-%i/%i: \n",versions[i][0],versions[i][1]); */ -/* TestVectors(i); */ -/* fclose(fic); */ -/* //printf("Generating test vectors for Skinny-%i/%i - saved in file test_vectors_%i_%i.txt \n",versions[i][0],versions[i][1],versions[i][0],versions[i][1]); */ -/* } */ - -/* return 0; */ -/* } */ - - - diff --git a/romulus/Implementations/crypto_aead/romulusm1v12/ref/variant.h b/romulus/Implementations/crypto_aead/romulusm1v12/ref/variant.h deleted file mode 100644 index 71b0405..0000000 --- a/romulus/Implementations/crypto_aead/romulusm1v12/ref/variant.h +++ /dev/null @@ -1,3 +0,0 @@ -#define MSG_BLK_LEN 16 -#define AD_BLK_LEN_ODD 16 -#define AD_BLK_LEN_EVN 16 diff --git a/romulus/Implementations/crypto_aead/romulusm2/LWC_AEAD_KAT_128_96.txt b/romulus/Implementations/crypto_aead/romulusm2/LWC_AEAD_KAT_128_96.txt new file mode 100644 index 0000000..a76f18a --- /dev/null +++ b/romulus/Implementations/crypto_aead/romulusm2/LWC_AEAD_KAT_128_96.txt @@ -0,0 +1,7623 @@ +Count = 1 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = +AD = +CT = C90F619FF363B13D980EA3B28D620BAA + +Count = 2 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = +AD = 00 +CT = 3A971D74FD7D8966300A5EC5C6A4443D + +Count = 3 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = +AD = 0001 +CT = 03D3D92EF92F2D640A4403D6818860E7 + +Count = 4 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = +AD = 000102 +CT = 318347822348F7DDAA2565A32F7ECF65 + +Count = 5 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = +AD = 00010203 +CT = 691061001FD1BDC3484DD36C9CD05489 + +Count = 6 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = +AD = 0001020304 +CT = 2108DBAADB255728213C69F0332B8A89 + +Count = 7 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = +AD = 000102030405 +CT = 4970AC0B3B98F2A0C2C5349DC72069A5 + +Count = 8 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = +AD = 00010203040506 +CT = 5AD88D12EB9E781798C3F690CA59004F + +Count = 9 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = +AD = 0001020304050607 +CT = ECB8878035AE951E50D4075DCF5322F5 + +Count = 10 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = +AD = 000102030405060708 +CT = F0705D93267C3A31DA5E1455BADAA9E3 + +Count = 11 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = +AD = 00010203040506070809 +CT = BA412D9E8FADDE475EE50F7140B4F843 + +Count = 12 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = +AD = 000102030405060708090A +CT = AB8AB194023840ADEE7361E96F0A53EC + +Count = 13 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = +AD = 000102030405060708090A0B +CT = 83AC9930113086A8571359A409CB8EF8 + +Count = 14 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = +AD = 000102030405060708090A0B0C +CT = 0E8892EAFF82194F6B785F1F748C9F3B + +Count = 15 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = +AD = 000102030405060708090A0B0C0D +CT = D58AA27FF4BC5617401BFC54F46E25CC + +Count = 16 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = +AD = 000102030405060708090A0B0C0D0E +CT = D47FC2FECD330EB9519C90C4CCC4812D + +Count = 17 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = +AD = 000102030405060708090A0B0C0D0E0F +CT = FD581C69F162D108C8E67F0B0433E80D + +Count = 18 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = +AD = 000102030405060708090A0B0C0D0E0F10 +CT = B3DCE3FA402520C92F0D6CC4F0764262 + +Count = 19 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 7AF4AC00266D4F0D763175698A48E8AD + +Count = 20 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = 604DAE08C1E382E495CFF1F148D952A1 + +Count = 21 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 4A1339D6A88D492676D7BD400FDA35F5 + +Count = 22 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = 8E81C6F415F076CE79FDFAFAF6145A2E + +Count = 23 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = 2E3A3671805CD343421E95B5FE3E2BCE + +Count = 24 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = E5FB1B7FFF5354A016D998616B975123 + +Count = 25 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = 8472730C63B3C7C770E9290D4AB9B3EA + +Count = 26 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = A638452E5E87190570B756A14F6B9BB4 + +Count = 27 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = BB00D7FCFD54CA07940F45C926338E85 + +Count = 28 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 22320A53DFE2502A0FCD6FF45AD81364 + +Count = 29 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = B442BD5667863F2568B9D3EC334158A1 + +Count = 30 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = B460B18EDA4D2756F527BE162CF1A6BA + +Count = 31 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 51E8F720B9D27CE185637DA30DEF3557 + +Count = 32 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = AE003733A8BE94A14E3C8D4BF8D1F0A8 + +Count = 33 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 08F4551396C23AEC8CC154B0001B6497 + +Count = 34 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00 +AD = +CT = 203F668C50FED0D8ADB163A6E686AFCBD4 + +Count = 35 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00 +AD = 00 +CT = 5043F7EA1C56BC0D23E9676D58E3D28730 + +Count = 36 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00 +AD = 0001 +CT = CD0E9915B27A6E184ED2BD13D2D206E1C7 + +Count = 37 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00 +AD = 000102 +CT = C7ED4BE3D6C49307681D6E45FA2CC8AB26 + +Count = 38 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00 +AD = 00010203 +CT = AB1940D5BC9EB9C25BF4A46AE95DF5C3C6 + +Count = 39 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00 +AD = 0001020304 +CT = 49B92563A9A9DE25E57B82758B87006D36 + +Count = 40 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00 +AD = 000102030405 +CT = E70FA64EEFC22DA92246D0F2932B081278 + +Count = 41 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00 +AD = 00010203040506 +CT = 686DCBCBB222EA7EFD9600057A1DC2415D + +Count = 42 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00 +AD = 0001020304050607 +CT = D7B1ADCF336EE05F5053F70291DC404CAE + +Count = 43 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00 +AD = 000102030405060708 +CT = CE4384BCBACE1B6F1AA458BC4F27772421 + +Count = 44 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00 +AD = 00010203040506070809 +CT = D6CBC8CB06C9806BAB250A82B54DB4C0CD + +Count = 45 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00 +AD = 000102030405060708090A +CT = 941090A93CC99493D39C1C08558868E505 + +Count = 46 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00 +AD = 000102030405060708090A0B +CT = 73DCA0EF238C65F1115811EE02765E9AB0 + +Count = 47 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00 +AD = 000102030405060708090A0B0C +CT = F0799D1DFC63EBF0BD3DE15C2A7E6CFDE7 + +Count = 48 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00 +AD = 000102030405060708090A0B0C0D +CT = 9F7DB492C3F393B9098E6D5438A689FEBC + +Count = 49 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00 +AD = 000102030405060708090A0B0C0D0E +CT = 05B80037582902CBD6AA8AA151CAE666FD + +Count = 50 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00 +AD = 000102030405060708090A0B0C0D0E0F +CT = 89ABF93A2F5C782C98260D340854DF5AF6 + +Count = 51 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = B77470491F183DF6372F4D8268C24F5231 + +Count = 52 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 7D24FA2A748A122D22411D2AD5FF184F24 + +Count = 53 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = 2C3CABD03C8C002481C4718F7952B9D209 + +Count = 54 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 6C7FDA12A77D92C7CEF320A73BE4D60FA4 + +Count = 55 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = EB614D7BAAB4159EB1801FDB0AA03E6981 + +Count = 56 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = 61E286FBC34372A609B660C40DA486EF5B + +Count = 57 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 2B412379419FEA937DAD9BAFC4FC10F75D + +Count = 58 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = 914A7D8B560CFD03E80D179FB40E30BB5F + +Count = 59 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 12908BC5B8817E733AAE435C66F029231F + +Count = 60 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = D3ADEABAA26A3CF208B4BBBDE47E286046 + +Count = 61 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 2725409A7C796AEB74375ED0077DAA5F7E + +Count = 62 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = F131C58A47218BB7E36A73BC7CAB3F2116 + +Count = 63 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = 39F0D9EEFAAD5EC8F475D7C856B0483675 + +Count = 64 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 920CCCB809F35720166D7B0380EDD34DE7 + +Count = 65 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = E99E7B55DA5377ADF3A8603289BAE8702B + +Count = 66 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 32C330F88B418E1215FC60CC042E042D93 + +Count = 67 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001 +AD = +CT = C870D5AFEA02A98C3DF9CD425C560F87F489 + +Count = 68 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001 +AD = 00 +CT = 6F8F38A7CCF66BFBED3BEB0B81489E39BA94 + +Count = 69 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001 +AD = 0001 +CT = 6F577F79CED8A0F43AEAE141647DE364DB8B + +Count = 70 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001 +AD = 000102 +CT = B8B27D101937CDCAD2043BF5F0A471D92B6C + +Count = 71 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001 +AD = 00010203 +CT = 0F778CC2BBC9F3E1D91FF6563EA397E7937A + +Count = 72 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001 +AD = 0001020304 +CT = 010E1BC779120078E3CDC4581FC51CE5A401 + +Count = 73 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001 +AD = 000102030405 +CT = 6FD6B26705D8FC2A9C0AD876C67623E93C30 + +Count = 74 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001 +AD = 00010203040506 +CT = 16E265EE7C6938A5EAEF5EA254EFC7475BD4 + +Count = 75 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001 +AD = 0001020304050607 +CT = 7EB312B6E8B5D843BD3BEB5ACF99A86C65E9 + +Count = 76 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001 +AD = 000102030405060708 +CT = 49B722EC0C6C68AD6D9640FF7FC8336D5C42 + +Count = 77 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001 +AD = 00010203040506070809 +CT = 9CB1BDC62460D9EFB65D97E34081C4CE45FA + +Count = 78 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001 +AD = 000102030405060708090A +CT = 43A5374D0CE5DB2B3F811E55340E499FB92F + +Count = 79 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001 +AD = 000102030405060708090A0B +CT = 8F8506755C8E3A72BADCC1F53DBABFAA05C3 + +Count = 80 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001 +AD = 000102030405060708090A0B0C +CT = 2171A1FC875F8F3AEFAB19CE0BC73BE0AB71 + +Count = 81 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001 +AD = 000102030405060708090A0B0C0D +CT = 0C3C26F606C17AA66B08EC26BCE5857E6CF4 + +Count = 82 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001 +AD = 000102030405060708090A0B0C0D0E +CT = D48D0E75E5EF1DEB04122A169CB783607607 + +Count = 83 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001 +AD = 000102030405060708090A0B0C0D0E0F +CT = 11590B4787A695ED3B3E56E4C4EACB436C63 + +Count = 84 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 201EDB0AE82B38AD26BE884E7E47BDE2595B + +Count = 85 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 8279376F5626A231D7115A0E012E358A1451 + +Count = 86 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = E93C95DA933692196A0E15251CE1DF054DA8 + +Count = 87 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 8C0667AEE4AAE384B681ED1B55C25C63BE47 + +Count = 88 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = 150F17BCFBD0084773E24AA4B6E21FD91FB7 + +Count = 89 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = E79D0D77A6A92083CF13B063C8692761C979 + +Count = 90 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 38F62D10BB97EC5AD6B9D4EACAEA43D4E053 + +Count = 91 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = 2938AF85EF14068FBA585B8A61EE1E92102B + +Count = 92 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 2E2C21E01EFABC158C396CCD280A5239B216 + +Count = 93 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = 9FE03B7440D5BA75566F8B814BE710765210 + +Count = 94 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = F7C3F09DD62A9295300E4D2F9B62BF480517 + +Count = 95 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 696F25612C61FD4F2C744ED4517C3410F20E + +Count = 96 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = 9BA8225FDD0D51BDC49F13DF6D592ED7A62F + +Count = 97 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 01D90BEC35AE4B58F482BCD1E562C588D6D0 + +Count = 98 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = 6E893441E998D5F3270A6249B3AF6BD8F656 + +Count = 99 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = F6369CDD6BC136B36BD395A3AA448671D5FD + +Count = 100 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102 +AD = +CT = F2201A53A00B281941FE24385DB76155668998 + +Count = 101 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102 +AD = 00 +CT = C704570442BA4E958440CD13974C3D86544BF7 + +Count = 102 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102 +AD = 0001 +CT = 1AD5043D28BA6A8923254D390A5B6FA0CF9AD9 + +Count = 103 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102 +AD = 000102 +CT = 5D35408BD39E801644B4F517D44CE0ED5088A9 + +Count = 104 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102 +AD = 00010203 +CT = 6F6BAA554E44C46E61B986EE2961C88FF8F070 + +Count = 105 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102 +AD = 0001020304 +CT = E81A31CE8C65F1920FBCDF5C8D55A32DB6D48A + +Count = 106 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102 +AD = 000102030405 +CT = CBE8243E96727232DBCBCDBFFCB9E6D8D50106 + +Count = 107 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102 +AD = 00010203040506 +CT = ECF527A6E98539C81339367EB467345CD000DB + +Count = 108 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102 +AD = 0001020304050607 +CT = AE04D7A44398B4070A00355563CB417EF40248 + +Count = 109 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102 +AD = 000102030405060708 +CT = 3477D085E61CECBC7141E218FE4FD976CA6D98 + +Count = 110 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102 +AD = 00010203040506070809 +CT = F27824B1B85C0123FCD9FF9A9CF3D1DFCC0771 + +Count = 111 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102 +AD = 000102030405060708090A +CT = BE36B261E5E4D9D347E2985F2C4DA29A54C0E2 + +Count = 112 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102 +AD = 000102030405060708090A0B +CT = 19FD20FE5689A76764FEC25330B5FEF67BA72A + +Count = 113 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102 +AD = 000102030405060708090A0B0C +CT = 5F811DCEA8CFA715C867AC5A5E5672EB40EDDB + +Count = 114 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102 +AD = 000102030405060708090A0B0C0D +CT = EF765F95CCD9E1340D8A0EFC75E451533E7D6E + +Count = 115 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102 +AD = 000102030405060708090A0B0C0D0E +CT = F7ACD5914E70EB68664D589B4C4E04EAC33E90 + +Count = 116 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102 +AD = 000102030405060708090A0B0C0D0E0F +CT = 567F510D4970BF619478C6D5A6875FF37BFD80 + +Count = 117 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 7231A29EC7233809C7D7D437A0FBA6856AB195 + +Count = 118 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 3295094B15B8EB1F51D70E1F5315C3C0FA309E + +Count = 119 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = CF668AF6C3222F29BF64B4F192BCFAFEE0642B + +Count = 120 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 2AA402283189861279D5CF6A98EAFE82AA4B4A + +Count = 121 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = 2A08D05FD16BFC3DFD16D4DAB464EF9744FCA4 + +Count = 122 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = 95627D5738500E47A4A31EC3CCE61508A09426 + +Count = 123 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = C48EDD2811EA2D0EFFACD6F4F7E8FFCDB8408E + +Count = 124 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = 373823CA19E177F84EB6175B7CF066D2C2D858 + +Count = 125 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 0DD3CBE77224C061132DCFA4985C476E8E1C7F + +Count = 126 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = 554E25639BC88454F07ED4A9DDEBFC85311B90 + +Count = 127 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = DD34C6F315E3E0C204DE7AB25CE888876C77AA + +Count = 128 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 84FA1773D470A6CAA781131492BDDC8F215BA3 + +Count = 129 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = B8AB12A07CFA16CB7EF7DEFC55FDCB87DFF964 + +Count = 130 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 4694A232C2967401AF5308E3BD104455DB7A7F + +Count = 131 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = 2BC38BEA358E2B9CC55BED510C269A0D0B3B86 + +Count = 132 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 4E12FC02CD120CC566DFE9F2237820F76FC4D8 + +Count = 133 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203 +AD = +CT = C24A8E8331E9560D2FDB6D6A9E57FF37A954D95E + +Count = 134 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203 +AD = 00 +CT = 539BD4667566E30D4B7C8EBCA19EE1D485B36520 + +Count = 135 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203 +AD = 0001 +CT = E6B5FD64C402728F1C55DFE7AA0C974618ADF3C8 + +Count = 136 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203 +AD = 000102 +CT = 07E9B819117A06F9552159A6781616EB33EA1B73 + +Count = 137 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203 +AD = 00010203 +CT = C1606C15467E903C1130C605AA7438A253D83005 + +Count = 138 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203 +AD = 0001020304 +CT = 6958DA985FB2E1CCFC5CBC7AB48EBB5C74F434DF + +Count = 139 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203 +AD = 000102030405 +CT = 6E91F665ABDCCFCAFC1C6CF9EDFB16C497B2A9D5 + +Count = 140 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203 +AD = 00010203040506 +CT = E28BE514123DAAB74F10C175672478561B936863 + +Count = 141 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203 +AD = 0001020304050607 +CT = 94FB82BC66F7A56DA2AEE8FB49F33E8B7F702C00 + +Count = 142 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203 +AD = 000102030405060708 +CT = B5F024D2D49C453F39D80C1372A0777D6A8CE04C + +Count = 143 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203 +AD = 00010203040506070809 +CT = 68FF6D948FCAC97243DA0AA17300DC073C501D72 + +Count = 144 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203 +AD = 000102030405060708090A +CT = 5D1DF5A2B9CBBE951B0D4476D541AAFC57D97D90 + +Count = 145 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203 +AD = 000102030405060708090A0B +CT = 3D0BF9C15DF6A5BAA04B5691B5C28E4B7E51224D + +Count = 146 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203 +AD = 000102030405060708090A0B0C +CT = 3BFFEF82DD4F80524C10EE0D13DA0950838220D4 + +Count = 147 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203 +AD = 000102030405060708090A0B0C0D +CT = FAF26684C8A2EE3A6B4F428616BCD3C2CA745675 + +Count = 148 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203 +AD = 000102030405060708090A0B0C0D0E +CT = 12928F1F381ECDBDAA7CADD8A86C846433541D12 + +Count = 149 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203 +AD = 000102030405060708090A0B0C0D0E0F +CT = 263E299F2CE04110FA94F2A3585951E7CD8D027F + +Count = 150 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 09DB59179B31301A9DD1D3ACB9752DF01820F8C7 + +Count = 151 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = D48307BD927FEBC105DE350BB97A414300B9927D + +Count = 152 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = F57FF1DEA5DDC7D5644C6B2168ECBFE1EA9D211F + +Count = 153 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 60F5C9796A7D295F6CD22DD1B2DC7292A4686A16 + +Count = 154 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = 467BF70E5F4081288D828A0159FDEFB0577EBE5B + +Count = 155 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = F777597E78B4FC2F45121DDA943460D7786BAB14 + +Count = 156 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 94E293006EB9C0374FBF759A0A72FD66E6A1B756 + +Count = 157 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = D877E00CBE2728265429A6C5B5A80338207CAB12 + +Count = 158 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 65CEB32DC4453002C980016583410CFE20CED159 + +Count = 159 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = ED2A80CF29DA14B1F04E47517CAAAA512410EC82 + +Count = 160 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = E81D994F9B39295D16FB3CD95BE20BABB8B27485 + +Count = 161 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 5D78DF931111629805D3560AD4EDD812FE0FC0EF + +Count = 162 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = 4661C632E2A5FCCF287F9F661910592BE6EBDF0A + +Count = 163 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 577AF5F85D117936CB10CE8C0347772AF1B3B928 + +Count = 164 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = 715BE74284D14C53F1165A41312894BE63097596 + +Count = 165 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 12BFE4AEB7CC486D60BCC711B881DDC8744BCBEE + +Count = 166 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304 +AD = +CT = 70BD29CF42E67143FB997F18F0554C78B6CCB5B728 + +Count = 167 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304 +AD = 00 +CT = 34A642EA6EF6741CC8717391CF6D9DA8AC46BB4294 + +Count = 168 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304 +AD = 0001 +CT = F592E04B5C305633A3025671063CDB9411CD9698EE + +Count = 169 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304 +AD = 000102 +CT = 6E6B2EFA562A7D6628A825D99E4251C119C4032F04 + +Count = 170 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304 +AD = 00010203 +CT = A3A4AF89CE2094387B6C5414E076E7742AB9A74E27 + +Count = 171 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304 +AD = 0001020304 +CT = DA53B0272C8474428E94F6083F89160CB16E6778A0 + +Count = 172 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304 +AD = 000102030405 +CT = B1F303DAA781123E600051BC71B32BEDB700071479 + +Count = 173 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304 +AD = 00010203040506 +CT = F592901B2E645F2A4838F3B832CFDD98805794FB77 + +Count = 174 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304 +AD = 0001020304050607 +CT = FE47055C9B28A74E02888B05B8964EA2A0D153ED82 + +Count = 175 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304 +AD = 000102030405060708 +CT = 9ECF478B4BFBE4FE960538CBB344AE5935E472E32A + +Count = 176 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304 +AD = 00010203040506070809 +CT = 3FF471F23DD2C12343A55838C2625514C64CA53551 + +Count = 177 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304 +AD = 000102030405060708090A +CT = 4F7253BB77F404D21D58F69D169386290FCF94033D + +Count = 178 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304 +AD = 000102030405060708090A0B +CT = D17BB2A6830C1855F3A7870214A8E83C200DD16337 + +Count = 179 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304 +AD = 000102030405060708090A0B0C +CT = 41079E29A2E672E46DEB5F696C574CCADE57ADD1D0 + +Count = 180 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304 +AD = 000102030405060708090A0B0C0D +CT = 7621D519ED09F1094498418163CDAB65A9B4C72B26 + +Count = 181 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304 +AD = 000102030405060708090A0B0C0D0E +CT = 56AA2956955E98026E5961FCD27F38D7733EE4205E + +Count = 182 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304 +AD = 000102030405060708090A0B0C0D0E0F +CT = 6E052F0DE29CC69D4F0F24B1F49622072AC9B6C8D3 + +Count = 183 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = F8843830990F00D5188DC0C73308F73DCF2624F634 + +Count = 184 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = FEA28547BBDF0AC95B37FD2480E28C20B182883DD3 + +Count = 185 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = C3BB848AAC4CFD5FB6BA6EE5537302F9E323A9E1DF + +Count = 186 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = C02BCFAB84E5A9481EB006E66EAF803DA12321A008 + +Count = 187 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = 664FACB9D5EA3EAFC0CF262464491BD0D4C3309E1E + +Count = 188 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = 6DCAA46A6D39AFB0C763AC093A65114BDF9721283F + +Count = 189 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 6F9E9D9D2D29985E693D418D7A80810E14C7854027 + +Count = 190 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = AF938C0F462961329D456CE6F4ECCBDBA6D144D88D + +Count = 191 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 1870B9654E6ED47910AC62101157410EE97262990A + +Count = 192 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = 2AE6A207134B21847DA686836E4DA69E79911B7B86 + +Count = 193 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 826872EC29C622C3ADDA0C82422748C77E8108D2AA + +Count = 194 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = EBB8F99E00F61DA0696AA43B993FDE64221CB4E038 + +Count = 195 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = D63C99B442B93016165C3D9CC39C6830FC12D72033 + +Count = 196 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 54CE1683CAF718504AAA1EB106BCF1CA6B6EEFE0EF + +Count = 197 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = E90EC973DA089E04BA6CCC0556E6B3D30B33486A4B + +Count = 198 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = B08875F46F035F449AE8E5A10FE9ECC894A0EDFD6F + +Count = 199 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405 +AD = +CT = 7EEFD20825D30A83A49F3C80EF5CB32067AABD27A515 + +Count = 200 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405 +AD = 00 +CT = 55896480F1C2E8AFFAC6DA5DD4499C15DF21DF8F0EE9 + +Count = 201 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405 +AD = 0001 +CT = 6824D9CBFFC272754C499DFB52C0185E884DE2EF8761 + +Count = 202 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405 +AD = 000102 +CT = 49C627C43C8B2366DB05B5A8A42C549286AB379639A8 + +Count = 203 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405 +AD = 00010203 +CT = CD542B0DBA4A4CDD9C99B7674D2D27D57F1BD1E34188 + +Count = 204 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405 +AD = 0001020304 +CT = DA1029BBA548E5375BA2DFFA5A9605020CA8DE6F5ADE + +Count = 205 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405 +AD = 000102030405 +CT = 84C767B3FD080930C8E77CFCFB339A6523EC4E2D84E8 + +Count = 206 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405 +AD = 00010203040506 +CT = 5922DADC27F5EA348B8571689D2275C77996B2D4F55B + +Count = 207 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405 +AD = 0001020304050607 +CT = 439A9E295BFDF38D00201EF98D119A22605443760942 + +Count = 208 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405 +AD = 000102030405060708 +CT = E61C13B9863AF431FB080044BA089AC9F225BA2B33D3 + +Count = 209 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405 +AD = 00010203040506070809 +CT = F64437793E97A4FC0EEB4B12AC73D95AD80BE9411574 + +Count = 210 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405 +AD = 000102030405060708090A +CT = 701DA9B5250F7E3007842B9B36037F3B58085351951C + +Count = 211 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405 +AD = 000102030405060708090A0B +CT = 29F5872B850B243DD801D7474A1C033DB3F46CB66915 + +Count = 212 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405 +AD = 000102030405060708090A0B0C +CT = 80621F813A0E9803271C0428FD815CF22FCFA0D09EFE + +Count = 213 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405 +AD = 000102030405060708090A0B0C0D +CT = 687ADAF4B5506CD77C977E66446B90BC8F2A5BEE1E04 + +Count = 214 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405 +AD = 000102030405060708090A0B0C0D0E +CT = 78FD73747777EDFB553358FE22994C60930AABEE338C + +Count = 215 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405 +AD = 000102030405060708090A0B0C0D0E0F +CT = AB47A068D1D97B336AB0339F599F5F9EF0BF4544A44B + +Count = 216 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = F26B2EBCF8C0556AFB327E642E28C7AC986741C57051 + +Count = 217 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 360183F3B27684493226DFE624E5381B16C02413E254 + +Count = 218 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = F222D4D8B0660E982BB6222B8C1613EC4474EB195C8E + +Count = 219 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = DF354784692E67343453941C8E35DC9BEF693C2A0ECF + +Count = 220 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = 571BD3F757CFF181955979E3C006FEB541CE55CA341A + +Count = 221 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = 18B9AE86587CC95BD111ED20071EB089529D6B0BA54E + +Count = 222 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = C63A2B84D057453289B668316986E8793219B149A3A7 + +Count = 223 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = 52F16488A082C6FEFF1F5990DABB9F7D57303CBF7F43 + +Count = 224 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = CBBDC61A9C2CEE00158B40C05250DE274BB4E95B312E + +Count = 225 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = 3DE3F8A37EF0223CF8994E997BB1FAFBABA022667410 + +Count = 226 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 8E4EFC8786E23CC023CEE1D73E93A7CF5A129430C6FC + +Count = 227 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 271EB9FF40534634B1278FDE8CE22F79096AB299D91D + +Count = 228 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = 1A8370FE8717BD3ACC0E53C07CDAF3556A0B1FE3DC53 + +Count = 229 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = B7A28845B7971CB7765361EEDF2241DE85FABA5798BC + +Count = 230 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = 1A45EF0F8690804DD17D95959E578672F0379682AB86 + +Count = 231 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 0A27B380D6697A6BD2E59763FA355E949D4E4E692D62 + +Count = 232 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506 +AD = +CT = F263183D7CE6B0CD6920E1A5756664A95143EC033A4621 + +Count = 233 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506 +AD = 00 +CT = F30E5ACE835921A16282E9B407D2D6AAD6AA0FE5191E36 + +Count = 234 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506 +AD = 0001 +CT = 4AE9AED506C9C9467FDFC015252BDE017D5C58498B33D5 + +Count = 235 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506 +AD = 000102 +CT = BBC51FE591BC31DF5A4879DC8CF35B9CBAF0708F0B6FF0 + +Count = 236 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506 +AD = 00010203 +CT = 15FFEFBEBE178EEE3BB190BD39EBC79AF52142CEC547CF + +Count = 237 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506 +AD = 0001020304 +CT = B2C67FF3545303A2662801F4D7C5B492E173AB2320BF07 + +Count = 238 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506 +AD = 000102030405 +CT = 442695149D8164359958D5B6A7461656D5A730C7F022A3 + +Count = 239 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506 +AD = 00010203040506 +CT = 6BF0EAB03D7822B3FC7EA26824A67D0B7FFFAE239B613D + +Count = 240 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506 +AD = 0001020304050607 +CT = 27F7279F2FCE13773445FE07E78ED9DD6F385E62099C7D + +Count = 241 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506 +AD = 000102030405060708 +CT = FD2F6F7B08DC305D6666086886625270C357D160A5142B + +Count = 242 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506 +AD = 00010203040506070809 +CT = E3B58D361A1012E734925F4BBCD19C4381EA150E2B4C8F + +Count = 243 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506 +AD = 000102030405060708090A +CT = DF3C0AAE758F3FF48E2E72E050861935A5ECFFFF7C4715 + +Count = 244 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506 +AD = 000102030405060708090A0B +CT = CDCC67C3A207B8FDD7CD9EF7A21DEC7BCB0A3FF14B0D94 + +Count = 245 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506 +AD = 000102030405060708090A0B0C +CT = 97823CA19A310838678BBD5CB481CD9AAA2F16AB8DDF56 + +Count = 246 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506 +AD = 000102030405060708090A0B0C0D +CT = DE23460C1D0640DCC35B75D74A6BB4FAD4A355F2B93255 + +Count = 247 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506 +AD = 000102030405060708090A0B0C0D0E +CT = 6E6E579A48FDA79242B0DF68763E9B437388C5AAF30441 + +Count = 248 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506 +AD = 000102030405060708090A0B0C0D0E0F +CT = 89192E965D06CF08D5F4E2AFB2B5AFE6F9B67B049CD03C + +Count = 249 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = C8E02A670FA3DA3130792B3EB3DB21340B60C3AD300135 + +Count = 250 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = F0D2D74F4BD25DBBE7BCFD615CCC793D7E9260C89A69BD + +Count = 251 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = 30F9BE26A07D53BD2ACF3E861B6942ADF0F4F098E5457E + +Count = 252 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 9753F45F76583654CA7D4CA45127B41C9EB9CCFE5AA4D4 + +Count = 253 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = 59D4C6F8D143A7DC6AE6674F0D8592D05EF78068DD0554 + +Count = 254 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = 4FA8D80449CB7996389FB1F22F0FB8464159B24CDB3626 + +Count = 255 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 102E7114C54D7E777D0ACD126B914F88D80B0AB44A0E4E + +Count = 256 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = 6C11ADB5377332FA479EDA1907191D81F0B07550DF0B84 + +Count = 257 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 893677BF78FCC4A6DE561E52B62DF5161031AA95EF7CF9 + +Count = 258 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = 8EECE711DF9043F42E1485B295441440551ABBBA1E2864 + +Count = 259 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = BE9AB3EE61517DA2B72ADC678067636780732BF14589E7 + +Count = 260 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 95CAF1B9F8C92C6AD337563C14D4673C1B4508EB61E81D + +Count = 261 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = 8BA0187DFA8F22C0B6180CF2E9F5FE472D5700417F1C2C + +Count = 262 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 208D3C39842EB3B4DF4296AEDD545AC80A41CE615C47EA + +Count = 263 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = 755CA8BD215C55A3E289F46046DCE2BEC1360E8DBF88BF + +Count = 264 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = E682D263A63BCBF02C583E659E084D255A7A4FE3C80999 + +Count = 265 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304050607 +AD = +CT = 345322B40B6ECCCA402B05239AD31E82781362D6D37463A0 + +Count = 266 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304050607 +AD = 00 +CT = 867D83CC200DCFBECB063A706F935C0870F1404BBB44A474 + +Count = 267 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304050607 +AD = 0001 +CT = 9E36CB2CFE8CD4F47E157B4F4897FEB721AEB2DD606DDB04 + +Count = 268 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304050607 +AD = 000102 +CT = D9CD3232C0A7212886816CBF477739865526A1CDDD650494 + +Count = 269 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304050607 +AD = 00010203 +CT = AD89D37D9B44793A9CC16BB690E8CDA1AAF1C2890DD450D0 + +Count = 270 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304050607 +AD = 0001020304 +CT = C31B5A7688C18E690A44802F3BD81FBDCAFE9570A3664838 + +Count = 271 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304050607 +AD = 000102030405 +CT = 1D58867F615BF10DBAAAB41A87FEED9F87F3992E9FF2B970 + +Count = 272 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304050607 +AD = 00010203040506 +CT = EE963EB10E97D9B615322C4772CA3BEFCF47FFB0850B37B1 + +Count = 273 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304050607 +AD = 0001020304050607 +CT = 60BE7448B317015CB67A5AFB1D6D0D684ED8669F05661143 + +Count = 274 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304050607 +AD = 000102030405060708 +CT = 56453B7B59DF4A21733943ECD4DD20267672086AA7DEE028 + +Count = 275 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304050607 +AD = 00010203040506070809 +CT = A4E9C7FFA43D696CD17D0C47CCC283790A3826D68CA06435 + +Count = 276 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304050607 +AD = 000102030405060708090A +CT = 51B204C1CB5375668A934827A3FA25EF188347294F5223D7 + +Count = 277 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304050607 +AD = 000102030405060708090A0B +CT = F1834200E5A7C763BB04149F6AFB3C93A05B2E0E80E30A75 + +Count = 278 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304050607 +AD = 000102030405060708090A0B0C +CT = C788C24DFDFB66BF98570F69C0477799B6C9106F8CAB7513 + +Count = 279 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304050607 +AD = 000102030405060708090A0B0C0D +CT = BEB004382E89514CCBD3C33C5331D95D96BE285EFEEA9E9D + +Count = 280 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304050607 +AD = 000102030405060708090A0B0C0D0E +CT = B5B97D75F484D18642BE94ECFEC3A873D3593E8C8EDD9C57 + +Count = 281 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304050607 +AD = 000102030405060708090A0B0C0D0E0F +CT = BF70FA81DAA0BEABA0C49273E67F673D538820D8542616CE + +Count = 282 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304050607 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 27FC2C50FAAA9E4C230EB8C6F0260E8132372403367D8100 + +Count = 283 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304050607 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = F2E0BCC398161C5F0087B6FD194C32F66A146BC9104C4F01 + +Count = 284 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304050607 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = 45BC907CC477CEDCA182A30A3C12FD4085F540850B9E26D0 + +Count = 285 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304050607 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 9AF7E0F3DB1FD362CD579FF0DAE7EE04462EC84B4DF49584 + +Count = 286 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304050607 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = 20FFC7DF7B5DDEF766662798F709DFD44A58C53E29777EB6 + +Count = 287 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304050607 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = 53E63A616D13F11146EC8CB40C511D1BAF6838E5047AFB33 + +Count = 288 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304050607 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 8566784987F8948468E9C512062A0811CFE738E2BAF0350D + +Count = 289 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304050607 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = BFC96EE0F4DA979DC84353733B0D60DA290726CCB3233A6F + +Count = 290 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304050607 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 63DB689257192C58DFC985137FB8F2AD33156C63503782F2 + +Count = 291 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304050607 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = 6CBD0D12809D6AF7E4DFAC048C42066B34507B705BC9726D + +Count = 292 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304050607 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 5B45C740257B97054DAB31D8564B0E568AACA784CF6A7E6B + +Count = 293 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304050607 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 39FA4083B5B65DFFE0765E5EE830B246533691AF84E363D4 + +Count = 294 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304050607 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = CD53843F6BE9BA119067F14F3431192FCA873E514F521C5A + +Count = 295 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304050607 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 64425959F9147E7B5DF65B885AE3E9D31B2BF539F30BADF5 + +Count = 296 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304050607 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = E89283627104F98E8B8D4953485DE5C1152366B90B33E122 + +Count = 297 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304050607 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = C42ABB98B2A9A8B8D60DC5A806BC4740032B61071FB9385B + +Count = 298 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708 +AD = +CT = 347E8C22BFBE1A02974A51E257334399A618F66DA5CAE539CB + +Count = 299 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708 +AD = 00 +CT = 813796E99F05180D2ECCC9967704F09240208ED1A74F6038C9 + +Count = 300 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708 +AD = 0001 +CT = D56C55D7D7AF0CC9FE49FD1D6D99392655B9A5E0C26836C180 + +Count = 301 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708 +AD = 000102 +CT = 26D92ABB8197BD19230804894656D086339B86AA2E8EBD6569 + +Count = 302 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708 +AD = 00010203 +CT = 77FB3EADBAAA1F105EB83BA0F77A3B0C68C1A036EAD08169A4 + +Count = 303 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708 +AD = 0001020304 +CT = 7918123BCF403C118DA2AC5352C0E8D21712BFF017028CC2FF + +Count = 304 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708 +AD = 000102030405 +CT = 122EB811CC499826C20B4A6F3DB5CCE1004CBD221C8BB1462B + +Count = 305 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708 +AD = 00010203040506 +CT = F7DD8B3AB1F10A1AF96B0B41E6DD30D360F6B5547160EAD20D + +Count = 306 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708 +AD = 0001020304050607 +CT = 7A8EADE73C1F230CA4F4997E772ABC17C4DBBF50DD3ADC0EC1 + +Count = 307 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708 +AD = 000102030405060708 +CT = DA95A170077C537F772AC91CABC378D7D59CED99E23FC8DE42 + +Count = 308 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708 +AD = 00010203040506070809 +CT = 61E009F42F5B34CAF4C36548A126259886B9BFF700F46D118D + +Count = 309 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708 +AD = 000102030405060708090A +CT = 144BC1AAD6C4DA83A2481DD7F9EE4C9881B9F616C2A4163E14 + +Count = 310 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708 +AD = 000102030405060708090A0B +CT = DF5E5472B5A5C57F8F6DC13DEEA16AE2C23DF638DFB65BA454 + +Count = 311 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708 +AD = 000102030405060708090A0B0C +CT = 68D4FEE9800814B0290875E183FBAB7EA22794F001BA82BA53 + +Count = 312 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708 +AD = 000102030405060708090A0B0C0D +CT = 192197BC698D397B01A9F196DFC7ADA56EB24894E038FAF0E4 + +Count = 313 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708 +AD = 000102030405060708090A0B0C0D0E +CT = DDA00B1554A43DE98CF107C488C44DE826E9BFFF46B5E5BF20 + +Count = 314 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708 +AD = 000102030405060708090A0B0C0D0E0F +CT = DE85AC2556CE65EA8AC68AC96D67F9AB7141DF614836186EC6 + +Count = 315 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = F32ABA45543E02514C8552E0A7C5CC8C808F9B3CECAF2F3C57 + +Count = 316 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 23F740F4E202F0C570010403701CC27AD620C6F62BF9DC26E9 + +Count = 317 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = 5C2A342C5ACAA4EB24FAC5221F8AA81545E83C4767F1E57B3B + +Count = 318 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = F2F5A97A0E3F2AD771C9535F01C0809A40D8965353FE2B4F07 + +Count = 319 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = 7B95A2BDFD8A86AFD35BAE46D6BA8C5C81B10A3E4BC488441A + +Count = 320 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = 4FFF2F80604F3366DC4A86F9BC6159F09644F935636FA076A9 + +Count = 321 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 0366959BAC5C7167650A63528974DE731A66A361C1E45305F0 + +Count = 322 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = A61994C9370B650BF8F3D3B9412BC48F441B6688CC46DE0EAB + +Count = 323 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = C36FC5E3EF88F85C0D54C519370E5DD1C301150D229A433AA4 + +Count = 324 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = F718BE808F5F92DE87DA61F88A4EAC11A0DBAF74E59F1C9216 + +Count = 325 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 1852A46E1CE2CB78D69C80E68C86652BC704115DE83516107D + +Count = 326 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 4CC574614FB6F1FF13F1A492F0851DF892DBD2BDBD8B9382DF + +Count = 327 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = 16A3391807EC2C206E4FE468C4ABAC3CACF4ECD0E9C90CAF5B + +Count = 328 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = B6777E54D3EC36AAD98576ECA389E1445AC02C5894ED07C34B + +Count = 329 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = D3B379E63836282B1D66F9F8D3FB27223C6C6E5E45ECA0E0F4 + +Count = 330 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 494BCF39EC608C2DAB3F508E10108E42C6D8F6DF6879ABCF6D + +Count = 331 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506070809 +AD = +CT = 9D6CC8C770DBC4135CF6D6033D609496EEC59ED3CA3B31F84564 + +Count = 332 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506070809 +AD = 00 +CT = F66B20C74C43A7D6184CB0EA240B6943214B9C768B73D58DB50B + +Count = 333 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506070809 +AD = 0001 +CT = 3E97D70F258CE3B3BDB621A78CB755498C36BDBB62070A87C13C + +Count = 334 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506070809 +AD = 000102 +CT = 9AB0E22DB57AC781DB4278B5EB741068BC2D281E315DCE840E73 + +Count = 335 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506070809 +AD = 00010203 +CT = 3CBCDACBA34A2CBD5D53080BA52531AB9155C970777A8F553DB9 + +Count = 336 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506070809 +AD = 0001020304 +CT = 64E4D03279EE87F1517FEAF19DF89A032DF8D39C25D5187F2585 + +Count = 337 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506070809 +AD = 000102030405 +CT = 8723CFCC657580C051E524964CCECE7F9FDCC95D74DB4E927008 + +Count = 338 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506070809 +AD = 00010203040506 +CT = BA23E8570F01E0E39842259CFDDF2CF036A14F6980AFF5BA11B2 + +Count = 339 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506070809 +AD = 0001020304050607 +CT = 4407DCF03039E923472EB938148D53D6CD4C0E8ACF739F2336E4 + +Count = 340 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506070809 +AD = 000102030405060708 +CT = 3DD3F7C21F2349CD6705EBBD86B807E85C07DC3B563520AC1505 + +Count = 341 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506070809 +AD = 00010203040506070809 +CT = FB52FDFF12803F938AD18EA2FBE544D3FB1F0D14C67167C4D5AD + +Count = 342 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506070809 +AD = 000102030405060708090A +CT = 3D7774582EAE81133C24D59AB811C87A44E65E822A2CD0F60BBA + +Count = 343 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506070809 +AD = 000102030405060708090A0B +CT = F3975B46722E23E4A3991E5F43C66692561FA66A59E4ACE94B18 + +Count = 344 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C +CT = 58705F880660C47364A65B31FB88E28ED30CA92CFF9D3B1EE8EE + +Count = 345 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C0D +CT = 5C933A027A467B04593788B06FAF7DD3B22D03BC776A0E078C6B + +Count = 346 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C0D0E +CT = 19B0A87789964A72F995763C47F58E3F3FE9F5574E35FF89AC2C + +Count = 347 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C0D0E0F +CT = ACDEA875E21F95AE17EBB7B0AD0EBB812C81407ECE57A611509D + +Count = 348 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 3D25F9D1550B659EABACD4349BEEB85E6DCD0BDA9B8B739B42C6 + +Count = 349 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = AD28DAA73402437285EDB0742F6E445918F4E626D68A6FB5B64B + +Count = 350 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = 21126A02A9E2EDE62FE0B17A451636781E0BB9FDB3B7D942B4DD + +Count = 351 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = C754BB83D17C76B02547DF1AF9DEE8C16CB630D36D929DFFA63D + +Count = 352 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = B592944653277D014FFED76A2864513B1EF72F057B1470FA1AAC + +Count = 353 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = 57EED3DA870AEEAEBCF92A092024CECDCF9B3087F8909C6A08AD + +Count = 354 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = F54F5B686F53CAE3944901FA6B7B9E0379157CCA4BD3A236B2CE + +Count = 355 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = E56E45C4E6F11D5CF78313CCE7CFED5FC83B1F4620686B6C5897 + +Count = 356 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 7227BCCFD935F2CA53908E7C4FA4C8662F1CA2916C74407B6107 + +Count = 357 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = 48B0E904473C977C0E983C5CAAA31521207221177533946B7BB0 + +Count = 358 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 9C8B27FA6402ACAB1410BE82A1B2CF0872C3DB23F5AB9B388C11 + +Count = 359 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 857DEFD50F383056F123833B20080A8B7D50AD335EEF7DCAD2CA + +Count = 360 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = A7152E836AD6F1A69C52462075F7D2D4CDB5E775520E45B8FB39 + +Count = 361 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 02F337DD380FA43354967EED42A635CAEC3C76BE7665F0C687CD + +Count = 362 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = CDB358A1CE565A18F68052079E43F4A792638E289BD96E90CB70 + +Count = 363 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 6ACE5734637A2FE34993D85B0B55F80B6664E5A9EC1F3470D883 + +Count = 364 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A +AD = +CT = 4AF14B99B418A6475EB4BAA759C82A1C74B89572796086E9D04F5D + +Count = 365 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A +AD = 00 +CT = D121FD3D5F959B23499A5F3778EA36B483DAC225C622613D68F275 + +Count = 366 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A +AD = 0001 +CT = 228EC2EE40102E97FD53D43FBE8819EA45DE530DAC6813D48ADEA6 + +Count = 367 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A +AD = 000102 +CT = 51A6CF44C9025173FF5F301F4F95869B15E89C69B7B29B971CC7F8 + +Count = 368 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A +AD = 00010203 +CT = 8934416119BA4DD57DFCDAE85F7C0AB7BF0CB116810A3373DDB7CF + +Count = 369 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A +AD = 0001020304 +CT = 8CB437A843A0D24BF4DE425A6D5876A735FC846E8E7D840E0D3E20 + +Count = 370 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A +AD = 000102030405 +CT = 895353CF7F29EA4789D2EE4D566E04D42B0276895E27BB75608D1A + +Count = 371 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A +AD = 00010203040506 +CT = D114255D1AAA58541A1EE2997EDCA3BDE27B0CB386A4082DF4F2E0 + +Count = 372 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A +AD = 0001020304050607 +CT = 1E95D6EECC1C2DC1DF5B77181F88F812B792BD1D9B9AB18E61AD91 + +Count = 373 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A +AD = 000102030405060708 +CT = C42BAE846950933EC267A4B82932B8709F62284A7F3DBFD64E9E37 + +Count = 374 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A +AD = 00010203040506070809 +CT = 76E3D61FCFEB1DFC88A74832E4E5482FF01CDA75DC5425EC21C6AE + +Count = 375 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A +AD = 000102030405060708090A +CT = 13DCD57C766735152E3D981F23E5E268B056F874E9DF396220F1F9 + +Count = 376 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A +AD = 000102030405060708090A0B +CT = 46D192356055FB8C3BB4218E1200F4B1EDC7FBF8BEEE257D7A2B3E + +Count = 377 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C +CT = 31CA8C7B9B1FAAEDD158C828824B6FE22124911D37CFDC3B141099 + +Count = 378 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C0D +CT = E5374017F2C0A1795152287E6E2EA243AF4158F498C98F83A3AB01 + +Count = 379 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C0D0E +CT = CB1FA104466E1CEDBCCF05752C8A82C1E58A9D4EB91E690B58E6BC + +Count = 380 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C0D0E0F +CT = F1A57034E12551E2D16CDA212344EBD0B579267A0C37F4DAC88698 + +Count = 381 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 9FF8464E311EECECCD6225A7342F7AE1A9544640EF70D35EA0AF04 + +Count = 382 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = CA469F62FA5881B2F23655C77DB7CEB4A28F68D3BCA477CD3E4EF8 + +Count = 383 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = 1BF74DBE34A5BC07AD4D4124FEEEE4914EA50CADB03930A640CBB4 + +Count = 384 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 33D607A7B0F76C0472278CA7D370DB85D26680F4EB3BD9D6E9DB07 + +Count = 385 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = 938F5E8E1B2CB0A03840BD694C60095420C9E6B0EEA53652D68122 + +Count = 386 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = ADA939040F19F2D83A52A520DCD900B454453646A57D934B77FB73 + +Count = 387 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 25755B74489367E152657A9CA918F10367DBFEE20344DB179D8C21 + +Count = 388 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = 0FF3DEED5EE07566179477E5DC5E8A424871E36F5E160FF7FAE5AC + +Count = 389 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 121EA90C481EE72077AC3FC1EFFF02D84D5B660D2872375330229A + +Count = 390 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = 03CF5AD81897C9F81F7C758C2FA94FA3643CAB0AC0A25899EC00DF + +Count = 391 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = DF4AA159DF587B63B116489C5D9A2124DDC48A95F5FE8FB2AF0998 + +Count = 392 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 6D25CEB89AE43B11698249B6E2D2F044E8181BC97EE8ED039B48D8 + +Count = 393 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = 5AFD962498236132D85DA1B8C18658D20CB65351AA4AE2F361AE00 + +Count = 394 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = E02AB9E07B94922CC75E74686EBFE8974B922B6DE8997E19A3EF7A + +Count = 395 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = AF15A6B9528EA7C151ADA499239B9F0347840BF7155FBF38A07943 + +Count = 396 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = EC1C68C4747D84282A50B39DC94DE5005702CDA703347E1D7BAB85 + +Count = 397 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B +AD = +CT = B6072CA9BE4C5B5F12663DE3B3D59D8B737A768C8ECDD632C6ED8C58 + +Count = 398 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B +AD = 00 +CT = 096E3D4C7625977B638F72F6B581EA31D598D5499E351DB6EC14BB34 + +Count = 399 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B +AD = 0001 +CT = DE6907C0F3687EBEAFF48B080D70CF31176CB44A944E00B23C6167D3 + +Count = 400 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B +AD = 000102 +CT = 89DEE939CC1E2CFB61EE6BE3D457746236AA9BDDF9CB359C377163B7 + +Count = 401 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B +AD = 00010203 +CT = B970E33B329CB2718EE1EB446747072DD56836A3D72C21100BB00AC5 + +Count = 402 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B +AD = 0001020304 +CT = 30D098A4048FB96BD37DBD2A69491177555D7E60013F16B0F332E64C + +Count = 403 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B +AD = 000102030405 +CT = 8372334B2BACA04ED5091BE34E6294CA4F10F374180D1579DFA18590 + +Count = 404 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B +AD = 00010203040506 +CT = 45AEF48D63A969A2234B20A30F6B460B46DB6E4074DBB8B0D9EC72B0 + +Count = 405 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B +AD = 0001020304050607 +CT = 384C288F2FE7ECEE416C0C2DE4081CE357B4A4AD2766FEE203A25587 + +Count = 406 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B +AD = 000102030405060708 +CT = 19A34F3DF21959A4A6C07DB5C14FC408735DC10845405C824831A1AE + +Count = 407 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B +AD = 00010203040506070809 +CT = F756E90A71A58645231B0CA0940F5A71379971438F4AE3FE6D35E85D + +Count = 408 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B +AD = 000102030405060708090A +CT = AD3F6A3EA96D3FD9D8D4AF6B282CDF4AFBFF546D4C30D1A0B71421B3 + +Count = 409 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B +CT = ABB13CBE268767A6B2BBA4ADD02D7C358F8732DE707D1976EA74A3B6 + +Count = 410 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C +CT = F51CBA59B5FE18425D4D95F06538D805D5AD0575DB01D34EF87C0849 + +Count = 411 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C0D +CT = D53EC39C3DE1CBE1A8FD511832CEC17C76BE141289B926DE1E03491B + +Count = 412 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C0D0E +CT = EE918777CD7BAA142CA24D75D240E7AF22C001F9BD71CE5FD722B19F + +Count = 413 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C0D0E0F +CT = 04C39FBE8836E3AA0CD6C1EE424FD0BF84064D120548BEF493D365FC + +Count = 414 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 265D382078DD9DDAFFC17D6D8A227B15DB9B5D4BAE925C282A4B753D + +Count = 415 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 1EFAB7BE5373E45A4A50B445A7B926B248BF6220CFA8680D8526F573 + +Count = 416 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = 0B39A73B2AE94459946CA031D1E8D8EE0C2B13864ADEF24A119DA319 + +Count = 417 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 5461A06CBDEAB90F0CD57474FEDD958E5F8AB8F0C35DCEE714CCC4F5 + +Count = 418 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = 2884760AE8465AE66FF360C77828CA9912F829C6CA74C59D1C9FA6EE + +Count = 419 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = E8D60CD75A37B3B8D3306C58406F0AEF169BCD0413A0DC2261DBBD21 + +Count = 420 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = C27FAA41B816D056E078993D9BD87E064D91A2A78B41D54B0F28107F + +Count = 421 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = 2BE382C1603D14DC6B4862ECA72001B3E856CCC1EFE07DAFAD768179 + +Count = 422 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 1110EA2BB02F941A0DE8EC74EE91778CE2FE9A48F00D6FDE72E1C425 + +Count = 423 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = 5AC43D0BB83720133B4C8E8E44509B5AB0EABEAF01A91563724F6824 + +Count = 424 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 778050B10DDAF53226037C27FBD090D73A37EFA5ECCA8B26AC8DF12D + +Count = 425 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 09981F3516C22CD0875973393EDBE12420A917B70A0296F2BEE9C70D + +Count = 426 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = FC93630AA9864AC69A10699935186CDC49C1250B485BB70E36D6BFD3 + +Count = 427 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 34F49D0CD7F8296E4A9BA3B0E7825146FE1C3A375DD4B144371BCBBE + +Count = 428 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = 5C1427C6A55F4FA0481CABE5FB4BD54EC5E55388D0320FFD10F318D0 + +Count = 429 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 64401FD9AF003BE89B7CA87FC5F663DCEB033254507258724F3E3B7C + +Count = 430 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C +AD = +CT = F9B3152B17C536AD9A68DA1D9F71334063DC81E548AC9FA69F0ACBA53D + +Count = 431 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C +AD = 00 +CT = 005D23922DAB4D15115B07C1DEE45FD9FB6DB267E337AE0482543945BD + +Count = 432 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C +AD = 0001 +CT = C28B412EA1D372AB63CD5DECF599606758660F74910D93C18E49644747 + +Count = 433 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C +AD = 000102 +CT = A85F71278FD0E1F0D32FD523A49CBC5B45716B127AE420497344EC8795 + +Count = 434 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C +AD = 00010203 +CT = E2FC92998C44625C62061E8185BE9051A8DF573D6239F2CCA718CD10F3 + +Count = 435 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C +AD = 0001020304 +CT = B2F3966C2BA5DF5094E939021EF702CAFC25F84EBD8290BD9F328041ED + +Count = 436 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C +AD = 000102030405 +CT = 46866A83B7ABF6753D8C26EC574CA5DD8116D353D7A00060350D386267 + +Count = 437 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C +AD = 00010203040506 +CT = 0FFE3F038C26BD91BE8C49B4EAEEBAB864AA437AAF456AC5361265EA57 + +Count = 438 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C +AD = 0001020304050607 +CT = E93039E41172C918A902F2A0FB211078B3F8E1015EA7AFEC19A39508CC + +Count = 439 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C +AD = 000102030405060708 +CT = BCA28C0BC6EBB463969B1497C2D7B0C1749D4774E8BCF849E0EDB4B37A + +Count = 440 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C +AD = 00010203040506070809 +CT = B964A367954137AFF1A0378FF701868C1D6B9CB056467ACCE1B0B52986 + +Count = 441 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A +CT = D81319B96238D8856EAA1CDCD2B6235CFE8E315B02147ECAE16F2E5D7F + +Count = 442 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B +CT = D1686E0F1BD0803F19820364EDCE770B6AA3927C2F6712B7F1242040CB + +Count = 443 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C +CT = 80858398ABF6D8B17BFD7C5414AD22ECD6724B6CE8D58948E2DD0B1D1F + +Count = 444 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C0D +CT = BBF43E0ED99CD35E9E0ACCB8808E3ADFE0F972EF51315993B7B47D24CE + +Count = 445 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C0D0E +CT = DE8A39DB464936AED7A2D3C0E47203C9A473F684C98A063C4CB529C7AE + +Count = 446 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C0D0E0F +CT = 0FD75349954275CB9FEEABAAC92D1F536FA8E9A939F3301CB7520D4324 + +Count = 447 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 1D5F1D7CD1DB0B2A5AF9315A5BCFC62AF47A6BC2A8448AE6245C3589B5 + +Count = 448 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 46E98F6BE94E2A3738D300C83E11CD9CA455F162BDA43E2D54ACE610BC + +Count = 449 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = 94F561AB87A6A3610EC4495A44287CDE2A3F28E8FC3E38B691FA968BB5 + +Count = 450 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 36ED481F96CC39C0984923EE7503428D0085678CAB98D5F6A0A0438D29 + +Count = 451 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = F03AB2521FC7FF994A4D7B666EE00FEEB905943F4635D49349E63BA2DF + +Count = 452 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = A4861E3871F413EEBEB84493BBC2BF31D9493DDA46AC3352DB9539FD65 + +Count = 453 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = E300E7000C9FEFF89D0CBF5737811451337B2C0B57BBFF16765E017104 + +Count = 454 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = 5AC5D9987D8AAB2918B5B84EE99277630815D33F485E12ABE37AAF6568 + +Count = 455 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = ACC5765F9DA9B5BBE1FC8406C3085FAF746D22BE2CDA08C120DF8714A2 + +Count = 456 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = 7F23271862D80F5D374381C070CD9D12642B34FE400349940174DDCC55 + +Count = 457 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 484C50B37D1D148E0283DF665829A62D47FBE629E76485580DA596926D + +Count = 458 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = A20C9084D02C068B1AB1E575E7C0A02B15706DC199805C781AFDA1A9C7 + +Count = 459 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = 765371DE14E4DE1F23603E4A2B364633BA8DDF56C5A8F5D59F0C208F5F + +Count = 460 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 83FC24A84A6E99887C8169FC07AB8EA8515EF3371E0449475D0809EFEC + +Count = 461 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = 44A98404CB9B41E572C9834D6BF67F3EB8D4C7C5D85B6C9538DFF11464 + +Count = 462 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 1208E7347F87E7A737A619E6EB4C288F2E4B202A7E1813A04361872D33 + +Count = 463 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D +AD = +CT = 1F3012B52089F3479F6AF8B21C917092684EB2F6B39972FCD1B38F0896A7 + +Count = 464 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D +AD = 00 +CT = B3634D04B813AB6D97692968044B5C88917B03982B201B15D3E7FE3A2530 + +Count = 465 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D +AD = 0001 +CT = E8F3118E9E6AF0A536A3C1A2449DE7457E7C3F78B065A22FED069D996373 + +Count = 466 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D +AD = 000102 +CT = 005424D2634C12007DC6487A7C5C24787BE5D0EA31E74A2973CBD727A2BD + +Count = 467 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D +AD = 00010203 +CT = 4BCB8407A9E103CBA66AD3551B75C969C17C225C38E2107C90B6BDDF154A + +Count = 468 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D +AD = 0001020304 +CT = BDDDEAF9E52B406B743C1CD432B8F8765D989B1C6048CAC1E49D14DD121F + +Count = 469 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D +AD = 000102030405 +CT = C5D9FA87B4C6234A156BB50427D28144E839B14B9F65B58AE03D02472F66 + +Count = 470 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D +AD = 00010203040506 +CT = E6A27D8D62E3DDBD2C69C43438C4D55190D4D5B6DAAC8ED67D8FC566C182 + +Count = 471 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D +AD = 0001020304050607 +CT = F087A43CF9403AF4F553A2958E1ABB0AFC559CCD2950AF3233EE89FDBA04 + +Count = 472 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708 +CT = 6BD9D955CB4BCBB8FD3FECB87732893A667F9C280935F8A8DDE724400842 + +Count = 473 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D +AD = 00010203040506070809 +CT = CBC0ED6D06E272D8836F10446E3BB9C0B0851E1B077D37DF69C27F9469B1 + +Count = 474 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A +CT = 51B70ADC89AF65F6C7BEC984FC349113FBA9304D1B0C4657ED1D590675EB + +Count = 475 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B +CT = 9D27F21D3F393605EF308E307F79C73C020F9DBAD27EE09F2DC2CF9F43A2 + +Count = 476 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C +CT = 14BC5A426127E8A26375CCA18A8CC39B9369519699DCDFA3185A584F29B8 + +Count = 477 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C0D +CT = 8B454240021DFD52EA3AB9342D60709DA131EA92F7B5E8B3B67FAC390006 + +Count = 478 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C0D0E +CT = 02A33BCC03093C1BA3C3F8B841734170244135AF63AD18C6F050D6BD042D + +Count = 479 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C0D0E0F +CT = 796213FBE5D757574FA71C9591DCF8D42B981092A9CD7D1B93FD6DB2F8A3 + +Count = 480 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 64CA5A53A2DA0F19772201EF78319E54D79F0BCBDA73D6F4FDE688F17DDE + +Count = 481 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = B7CBCAAE6C9D6517AB1EFD2F6498C71675FB2972D68B42A0A47A60584653 + +Count = 482 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = 7C01FBF9F0AF62CBFBA437403B73AB5558B35BFB4CEF213A646EFCB145A8 + +Count = 483 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 57FA21919ACEED8B57FD6FE5DDCD749A6EAD0E455CF348FAA8B0E125FD87 + +Count = 484 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = 41D1B1AAD4449E978859BFBFA9752B53516210FDC6BFBE416E14EF8A06AB + +Count = 485 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = 859BDFA9A518C0CD67C0269DBF90CF019874ACE8D798EB9A89966044E847 + +Count = 486 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 19AE4D1FA96DE4C4FABE0868216A9549523A098F7397D45666BD67DC1D47 + +Count = 487 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = 612606C66D9DDEF44EB0148655908C7ABE0079F3BA9921B0A6B1E2F2FB5D + +Count = 488 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = CD5D2544F3C11D33D7C75F501E45B040D41B3800236D7D5551725D045C4E + +Count = 489 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = 051F77A86CA9B62185C47792E3188B37DF290A9B55A5F84FBF8456AE4E4E + +Count = 490 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 3C06C4AA7C46DFD1CC3EB41265A626D6874AC61DC4674789342D4EB12600 + +Count = 491 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = A74355139BD7476DB7D2C5493CF2BFB206CCC4B832D6996538A818FEEBFD + +Count = 492 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = FEFEBC10E0E8C3747F787DB170C7710B62A458C018A1B4AA7D5370FED334 + +Count = 493 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 392F674514389D45A77206A1418300BE4C10824AE943C4F9F8D653F2C59C + +Count = 494 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = DE2CC941349120C6A8BAFE74DC32C5DD3C51170F63BF2FB7486461B08407 + +Count = 495 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = E832F83D8116DC9F972594CCC6B3093EF5998061DD278DC080B4AE521E05 + +Count = 496 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E +AD = +CT = 0814268761BE7796DEE293441604141A6F2174E840F987375AE9FBDE8C1C98 + +Count = 497 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E +AD = 00 +CT = 41C84D79F5E1A1438B74E3CC599F5DE404B87AC525A2A9052A2738E855A6A3 + +Count = 498 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E +AD = 0001 +CT = 4FE77DCBC52AABDDA342E94120ECF8C52319DE15CCF0935EE7B199DAC5F320 + +Count = 499 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E +AD = 000102 +CT = 1BB1915400683FC451151791759CA771790D47582273B2C2B27E8F51158489 + +Count = 500 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E +AD = 00010203 +CT = A7130D3F87C7016C054813DD56DACFBC6C6DEC3552B0A37833F581B9D85A92 + +Count = 501 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E +AD = 0001020304 +CT = EEEAAAACD30FACB9B7D2B6F937484AFC7D492FCE4B500E987C6D08737D6DFB + +Count = 502 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405 +CT = 1525933905783909F68DEAE8266035DC4D21ACAA94921FCA75B9D61C0728DF + +Count = 503 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E +AD = 00010203040506 +CT = 93C1E45781F138953053892F94FD9CEF514F01ED12FECC6818C7F3C028741B + +Count = 504 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E +AD = 0001020304050607 +CT = 2CCF4FEDEA8847D2D73C774BB84D98D89C526EC2CC8F478E2313C9FAA76DAB + +Count = 505 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708 +CT = A6744A09C45FF18C7481E85D16844BBBAA8200BE79EBDF86F9464B1B781267 + +Count = 506 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E +AD = 00010203040506070809 +CT = 3FA059DB7448BF67980101BAD175CDCB402613DF1F8B88279AA6ED09D4F324 + +Count = 507 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A +CT = 00CC449AD60D5C98E93C1630736C04C53BF47E5AD90F07BD5B531DB46D55C6 + +Count = 508 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B +CT = 3727D45FEC60AEAB66EBF1FF4D3744306504B097ACE45485E3C3AFD26B2D01 + +Count = 509 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C +CT = 63C88BDB2786E9DC97F248C37F57AB22DE05B909EBE216EEECAC2B11B4F4FC + +Count = 510 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C0D +CT = 8A9404A346FDF035C1ABBA3E2EEF2AEA51B276A918D948356AF267E39CE4FC + +Count = 511 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C0D0E +CT = B99E3E630384B46F9AFB43FDA70ADE4C8163A4BF27E942AECCDB8019CF2BB0 + +Count = 512 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C0D0E0F +CT = B88C03E9F8241B7245271283B4EACE275B365B5E3A751A7896EC0AE219AA76 + +Count = 513 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 74F329880D222750DD6A89FE9FF92790B9A9D91987BA07F9C083DBCE46F4E9 + +Count = 514 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 779604D1E1B78E6420C9742446CCED3CAA572A44EAF16B7F2FB208D89ED143 + +Count = 515 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = 68EB3E163540DBD526DA8D69FEEF6E68ACFBF174AF2CC09085DC9123D692D8 + +Count = 516 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 997F8259C68B9599CFCF659B18209653F3F084F84362B7EBDF8864A6C261E3 + +Count = 517 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = 8B31E8CA648DF587E926D4396EB5AE4A939D9B8D378CC4519D826486D17EB2 + +Count = 518 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = EFD952E4E926B97F8E20F0182F978BB79221C03A456968C438E1D981424D1A + +Count = 519 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 6E33A72FA1F260A54F6A05EBD9A28311B1DD725B29D76F5BB5CA263C8D9C8E + +Count = 520 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = B421E3552721890907B9BF4D2DD77B5381CC3B57C4F848A76A1FA871131609 + +Count = 521 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = E86E185713238A2ED4EC687C831CBE82F7E4AD3B56DE1AB200F6E843A2CBA2 + +Count = 522 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = 3F723DBBF8C6B70D8E38600F03BDAC2D5A60AA67C0AF2D72346F5708061E2C + +Count = 523 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 2075BED4C0D10FF8F251E1EFD62914AF49445C0DD4E3C7BBF6097508D232FE + +Count = 524 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = B487540196CA00A2252C6212BD11871C10EB205AF78D4EC359CD3A52A103D7 + +Count = 525 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = DA66F80644098248912BB1887FAE94C4158FA362E3A3DAFB3B899F074D56D0 + +Count = 526 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 0F846437746D1ABAECA44628335BC345E71BAE8E039770B226D9C5A5E83719 + +Count = 527 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = AA8D5499F2FF60DF5B97BF86C560FE1C0CE733EE802C37C488D20751FCCE3E + +Count = 528 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = EF35D807A587391EA3CA82875B840ECE60A452083A254DE72BF025DE0CB361 + +Count = 529 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F +AD = +CT = 72B69AA8E5E938270F5A833F9C6189FE3D6A8B91FBF30B57274C57A712BC6D56 + +Count = 530 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F +AD = 00 +CT = F4E46141D6FB67C7278AB9038D220478D764CD694EF091F72AC66CD461E18089 + +Count = 531 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F +AD = 0001 +CT = 964E12006779D9B2EB6FC03B0FAC275A73AFC163268F71029A7A06FC3A7AA23F + +Count = 532 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102 +CT = 9FD7D531CAFB79B2D287418E6A6D84E921621D1A64619FF95AC692587F7011CE + +Count = 533 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F +AD = 00010203 +CT = 63C67AB15D00F77563DEE6D8D171959A106B8DDD2717704AB27373C3CC25B1A7 + +Count = 534 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F +AD = 0001020304 +CT = 4364A07D3793816CF069E327B5B360B03B15152F04CB3F3552C5870B6E42FA25 + +Count = 535 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405 +CT = 43885FA7F5C9BF1718B23FE7C92C364B326E215289760DB0A7B11973305A7FEA + +Count = 536 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F +AD = 00010203040506 +CT = F7E42781AED9FEBDD652D3A7020FFD943FB9DE6DEC0CDC4F697CBD2C181FECF5 + +Count = 537 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F +AD = 0001020304050607 +CT = 55B16E6C5785F6674831DEFA02E304162960483512829762F36B15683DAA0833 + +Count = 538 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708 +CT = 5E78505B86FAB32ACC44E9661A33EE32A23EC33BC5A8D14D59BFDFE5232CD8F8 + +Count = 539 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F +AD = 00010203040506070809 +CT = 1909F7DC70A95B298A64C1FF0BAACC08AD5D99051BEB9D49CF2EDDA275E6D1B8 + +Count = 540 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A +CT = 7C5EC1B0E56B2D2F05C2E2FAD4E94E3494DCB7F953216EE73272FC1FB542BC99 + +Count = 541 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B +CT = BAE58B9006C8AA4CBB4F5457BE016F6F93911DA93D90B93182BBD3BAC0AC0306 + +Count = 542 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C +CT = E9060841AB42221AB03243D26DB0286A07BA86A0A4A7AE5D7318054748E03BB5 + +Count = 543 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C0D +CT = 7DC6E1C99954E9E4FD73196B40D90E477650C154E55A5913C1A242F44839A743 + +Count = 544 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C0D0E +CT = 5FBF55900596129676F01594255E34E89157D8FE97AD2D688599EAF5A1A8A442 + +Count = 545 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C0D0E0F +CT = 0E624BEF8292E8FF3ADE05C6772EE60D1AC055795B3496D65548342A689D2E3B + +Count = 546 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 81B97A2CA864AEB0A0C1CA3858172C649F8883FEF9031FF0EC24D1B42124E3B3 + +Count = 547 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 8CE9790161A74786B0C33BD10F61006B00090F3F8E8022D89579A88203DC161E + +Count = 548 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = 91F17000828C2E2D05FA7E03FAE242DFB7E96504280ADCB348AA345531C0FE0C + +Count = 549 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = C551742082D49A7DD18F52E98A53C61A77F4D551B82F24F41527BEB02BC83B13 + +Count = 550 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = 6604D40D48F7A37FE09659480820F9E25672A7353E83A2665F384E42EDC01B44 + +Count = 551 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = F9FE9CA66FAE49C69441B60DACEDF789CC81A647B35938877FB8052530944A13 + +Count = 552 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 45EF0DB34038D84BB862275780CB5E1BB4D648D4D10B911D128DBE8597D8342D + +Count = 553 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = A08E019D13D706A5D22E42D09318A799BFA512646F4C86FA1116E89FD88EBB43 + +Count = 554 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 5FFB5B7E1E002A07B5FA4B1C72AB120281C1FED2187314475D8230FCD4347F13 + +Count = 555 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = EE0821EF0A01E3B88594EFE771FBE650D91DE5BFCD5D53459FFAD905106C2615 + +Count = 556 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 4AD176AB1F0793C890BAE4D02698526144B41358AE5765AC416C183DE1F1B7A0 + +Count = 557 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 42684FA8B9D91A27F5C47D290B2414FC2158B848BE015E9C8D785E7E8453AA93 + +Count = 558 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = 48B802C68F0A2B808A4FCDA2DBED47C673B5FEFB06B2B89F0B6615213A39AE9A + +Count = 559 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 82E89598CA017800FF30B7CF55A058D01B511565332605866A487853FAA75FC3 + +Count = 560 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = A441FECC7B67796ADE538AD911FDB7F2EE4B8B9868FC0BED1ABDFF55B955C9D8 + +Count = 561 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 889DDAC3ECCA8F9DBF511BFB8525C39844150CA528A2D1F4C59E5B1EF15C0AC7 + +Count = 562 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10 +AD = +CT = FC64EF2EBBE93E1FE7509EB857E131554D46CD635DBEE699208E4D9D4903078035 + +Count = 563 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 00 +CT = 690B7142586015689C63A2A48EF02734BCC7B17CCD00F291C3382C12F63C49C58D + +Count = 564 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 0001 +CT = 95F3B1709AE415CACE82A2E06C9A66C59F5D39EE14A369419AE40FADA1B3ABEB27 + +Count = 565 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102 +CT = 148AAC31E7C298F28FF99FA4E4438A512131CCEF80740DDC47A19EEDADF73151FB + +Count = 566 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 00010203 +CT = 8B8A8D0EB11A6143CF65574BF82789DC39BB8CD84EC038B9024E28532C61F0E688 + +Count = 567 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 0001020304 +CT = 6AE3C28426314E5138873999A245C45D39FEC3C7D5EEA2D8D2AFEE33FE8EA145EA + +Count = 568 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405 +CT = 54F676E7536251D7736201EA3F2C6B6345F24570AB643E65B9DCEB11EC27873DF8 + +Count = 569 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 00010203040506 +CT = 07E3FA0DC5FF8B6C99450F1C8B8466E316D44E1BC1A3C97C5E07DBB1F1A7F9F6AA + +Count = 570 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 0001020304050607 +CT = 49AFF38D0C667675B3550D6C8488B0BB9ACB84F86930172BCEEDBC2DA2BB7ACB6B + +Count = 571 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708 +CT = B39D27380C76E8CC5AA2D5026FB10641DDDEEC3B8F7FF7987587DDE9B5845B34C6 + +Count = 572 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 00010203040506070809 +CT = 952CD59D4DE61263898EB96121248C415E0B28140A887C8599A672F13CD6E88583 + +Count = 573 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A +CT = 2442D51A723EA2C44752C8378FB1416E40B32AF3C88AFD05CC097AE6716AC6B560 + +Count = 574 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B +CT = 79A705324C67E977351BA526F1FB1619878E7A833D0D7EEC743AE3165843DB46DA + +Count = 575 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C +CT = 47D507DE7E66B6CF56B962FFC831231C4F071B1675A9ED5F7144DCE4C59979CDE0 + +Count = 576 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C0D +CT = C67A2B9CF2438FFF46E4E502E89D929DAA86896016A263B2AE0E27EC87EC112B8E + +Count = 577 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C0D0E +CT = 0D86EC289A42443815D45593A38C659195762348ABE92B2CB35E68C414E83BEAFC + +Count = 578 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C0D0E0F +CT = 88B0FE04A52B4D0452013914ECC21B1DE9C0A4E93CFF17A34F0F4CD979C1056C33 + +Count = 579 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = EAE814B305EB0EFC4D88D47999234100C9B52640618AE066B1A7D30AEB191EB87E + +Count = 580 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 0E4F7D29A6B51B78F588C86195AC9883750B34D807B39F0EB4D701F4A5BAE80210 + +Count = 581 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = C25089DD525F35EF255E49BA0ABF890B3DB2138B4459C7C418425B1248ED6CC15E + +Count = 582 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 69E529B6BA5627E422A40EC0C5319FB86E3AC99782F1946A6412539C1904B697B4 + +Count = 583 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = A9327A10D1CC83AA836B3C7CD26211BE13D17B9CC5BC64BE0ED9E5C450D6EAC365 + +Count = 584 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = 7DC2E4A7DAAA5765D3662718E5D37BED57378865C750BE05D09DC8B0FC548A17C7 + +Count = 585 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 5FDDA50D00D4199D940EEDEF1D656F9F6DC5C8793F4CC654E8DECE1EFF79CAC050 + +Count = 586 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = 4E234F912E2EA773A22DFE062AF0DBDC1205E14CDF12058C1C2E54635A0109979F + +Count = 587 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = C7372856BDAEA8F82D91D6C99AF3ECCAD1A2594F940C3CB44FFB3284C7A394F766 + +Count = 588 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = CEBB002340C98B1A329822B7EC872F2F637A641FD1A05853E8A9C3451C9C09F520 + +Count = 589 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 22D0B9DFC94E27338C0022FC855B3E92977C1B166E377802EA6608FF16C2734F41 + +Count = 590 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 50F94C234B6380EA85A237F7055E4B4E51DEBA3869337D009F9F52B0D01C3BE45F + +Count = 591 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = B1B3F16CD4E682B222C313B061341CAE4511A146C15D8F8FCB7CBE8FE98359AEDD + +Count = 592 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = F143604A0AF6811E807C51E09039BB46078E4D8862195D0F46ACCC836DBBC5A3C4 + +Count = 593 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = 4A0A305F754F60051B16B6B5940B7304BD4B819B3D55E87BAD19B6A1B10B8F5632 + +Count = 594 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = B9B1FF125786537D3CFD02B8DE7FC4F1C178C7CF0D7ABD19E7F3C11B9CAAF4CB49 + +Count = 595 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = +CT = 2109B93660A3ACA0FE3D557E78DEF1B6B1530B0ADE7E19517055BE1D51A82371CFC1 + +Count = 596 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 00 +CT = 2D167B6895769ADED9F3B7A918D29977B0FE0C7BFEA25FBA45527F3066F35E4BFAAD + +Count = 597 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 0001 +CT = 9F65D199BC84040075C28374B1B778A28C1375ABE9A01388258675AFC77D5C9D32B1 + +Count = 598 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102 +CT = F1F62FE5B991596EC655B40C6297F6D8D6A361690D8643E42BB91F5876BA67282DA0 + +Count = 599 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 00010203 +CT = 0CDBCCCF61C6FC2A873408F86A9019B89483DB9FB591D67141E5338D4919E5FA9781 + +Count = 600 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 0001020304 +CT = 90B1ADF266F912F8A8570D2F20A7640FA5B67A01FAF5CBEF5F06C50EB33786555072 + +Count = 601 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405 +CT = 6323C22371B994931DA525C063DFEF2FA884BB27A3DEA360300A21863EDB9E75B62B + +Count = 602 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 00010203040506 +CT = 41A832B631F8BB0EECB2C643EAD5190FB51A65BF105CC26ED00FA07D87D4295499B5 + +Count = 603 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 0001020304050607 +CT = 12C84F7E0E27B1E03753057977372A959D35DD1B450EDC6F2F8B2E2D3D586AA7DBE7 + +Count = 604 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708 +CT = 01AF8D86A68FE4070460D0C23EA3A0E8734265E185B86D3694CA1EAAFD8E9338906A + +Count = 605 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 00010203040506070809 +CT = C2D7CB46D268AEE9F350EBBDC769C333F1CD4D859903DE5BFEB51DE3CA40507D910E + +Count = 606 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A +CT = 0B80BD48387C2773D57056C8141F69B31D11971E0E4E0877D85E7A0F638AE3B8B4C5 + +Count = 607 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B +CT = 2C61EBA6A10DB92A2E7AD2986DD9518B964EEEEF5EA6718FB9CC1A65925608FF1759 + +Count = 608 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C +CT = 7B519E9CA25291828D0F4534C8DD644854A93801143DD28FC84EEE9297821DF76B60 + +Count = 609 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C0D +CT = 6EB1EC631DF0E3CFFB5C70121C0E63F06B27B78DCCB19767AB350BAC6863A1E6FC34 + +Count = 610 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C0D0E +CT = 640E77B30A8CC4FBE1F7AC67F565069A6FA7A8253E4DD7248CDC9F8D25D7D3200820 + +Count = 611 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C0D0E0F +CT = 5612698AB3FABBCA4C097D023A15E66369422A8AA58799B8E51D040CADA36B3EADDF + +Count = 612 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 356BAC1422E02753211AD6A9EA77FDF2AAB4676C3361EAC2272FE45BC48526D12404 + +Count = 613 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = D7C2A44871F203BF47F812E49F28FE18FA25CB777AC0B98DD3A96DEDF95CF33E4ACC + +Count = 614 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = 31E0E09260F67C64A7EE7CA18BAEB13762114CACBC5C99049ED677899FEC4A691B34 + +Count = 615 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 4E461FC84B53BC73630AD42BA8D37A2A3BD8F91E5ACEA64194EC82B702E70353E2BC + +Count = 616 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = D18CDB50BA2F8CD6E2EFC958F1B96753A78CFCA08143F3C3DFD75248F62DDAB1565C + +Count = 617 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = 82FDF9595A36C525893FA635C4F7FD9777B21EC3D3E976A9D9E2BBF848335B6D6840 + +Count = 618 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 2287DB0DA63EF24BAACDE2D6F60C4720CD6BD2A882F15048AC1CC4045B5E699D1F69 + +Count = 619 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = 7605BDC67FC6695D343E3905DB4C04D4CFDD41C1F171F72C3C62F6A4C40FB3ACBDDB + +Count = 620 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 662D1DBDFB7ECD31205ED82F9B83E4766973B370374CDEE13D26702F35EF234393D2 + +Count = 621 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = C3C95C978FFBC97216BC4B9261A5E715AB898AAF0B46D3B59881659A5B3E03764D33 + +Count = 622 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 4192053DDD9B0F591F3565E2AC3CEEFC1D539B6C0D503F8CE58D9DE782F9A9F14933 + +Count = 623 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 9C20969A274D61E54E8B582429D66EF4DF4F9AF99B14ABD2380D0B4AACBC31FF9DDC + +Count = 624 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = EAE3FC0F9280A80157F4BD471A3CE25C1AD22142EF3791AADE311404521D1546F9A5 + +Count = 625 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 82926E7053B8E7B2E72F5D960EAA54051D5C05797DE0A53F28D8B395BE95D890F647 + +Count = 626 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = 9B69C22291AA9C74EBE6AACEDF32388426BFB1FD3DD70AF955204928A2B6043B6451 + +Count = 627 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = A70D17D3963607BAA2696DC07F7C6D2DA00D315465210631F223283307160424C1A1 + +Count = 628 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = +CT = A9009293A68B5A59DA7B43E96E075DACC834061B7B50F5E836A0D57A39A3AAA6080AA8 + +Count = 629 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 00 +CT = 7D7FE7550CB243BABC80C6C05A5EB22EA054E32B90F437A8D1B408AE54AB11748930E7 + +Count = 630 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 0001 +CT = 51E803DDD0B93DF44D0301CA81449599945542FD28E03B51807FFD9C0CD970E341195B + +Count = 631 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102 +CT = BE09316B04C023AC12C2F4349F1CA51E4129FD84420960065A175C0B956F24C203C38A + +Count = 632 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 00010203 +CT = 7EB92200583DE87CE9E24F43F7F888BBBD91AB6FC408509646C22A6FA1A5818173BF53 + +Count = 633 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 0001020304 +CT = FE961E4F7A2518CA3A76A52F769DA9B6D33FEA448508C666CFB8F29D34BD6CDC718A7A + +Count = 634 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405 +CT = E64300C9AC7FB4308ACB210598B6D0D182B393D8200D3C185781EB7439AAC57760A13A + +Count = 635 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 00010203040506 +CT = 6762A37C68D44EB444E88AB48D44D45DC8A05FD09636FF3DE5DA40B998622A4C9F1043 + +Count = 636 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 0001020304050607 +CT = 57345848EB5015B0E98FAC5E24EF532C17E24121AA7ED6184C08D8ACF83FB3AC9DCA98 + +Count = 637 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708 +CT = 1E5E405C6349A9422D8D4671EB4506BEB0F7408466EBE6730EF9208B5C23FE73DCEA12 + +Count = 638 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 00010203040506070809 +CT = 7FFFBA7908CA5DF5F3F732D939826B74E0D023F11F460B83228858499F25D0F1B9FDA5 + +Count = 639 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A +CT = F7BD559B6D92D5D0597A940C5B28FEC9A7C576C210150AC1AE5ADF387BC5AA424712C8 + +Count = 640 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B +CT = DCEF0CB82F4EC40A011F7651F62909060AAEF57B20DA269D114EA842109AD044B1104F + +Count = 641 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C +CT = D9134324725D92ECD4D9299F9DE4B1FAE363D1792D2F8D1688B780B4671A3377AE9B32 + +Count = 642 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C0D +CT = 4732C7969BF9C758D4607EC50CCA108ABC8E76B02F2515CF7C1514324105F788691962 + +Count = 643 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C0D0E +CT = C7FD5B01ABF298E92CF8F90ED3A23288AE03D898EB594C9D33313A3A9A1D01219DD769 + +Count = 644 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C0D0E0F +CT = 302ED2ACF21772661043EE4D78308343FAD8AB7C94DCA5E41736C5DFC5A4E6B60FAC7A + +Count = 645 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = DA073347500725FF38A60B9355E44BD137A0F6C9523FA3212047D7841334BCBEE331C4 + +Count = 646 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 8C3B02E8938178A58882DB7F3D8B4C745F87C6E7089BADC7DDC56C2DAB038F56520DB4 + +Count = 647 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = 3EC5B6ECBCC0C91F622C58E30A5658D65A8724F4D1925B8217C2084B053FB2C17AE4C5 + +Count = 648 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 03FBA11327591EC3F88DE962A1A84E42C9CA41A4868E88185F0B93B495BDA5A242E0D2 + +Count = 649 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = F6E6D627920F1E7D325FD33DBFC8DD9AE21BEAA8769D00299C0DE04060AF41DA2F0B5B + +Count = 650 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = EBC8AD957142673981D02B35DDBF7543B845C4DDBD9FE37DB680B422375B9B4B343056 + +Count = 651 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = C9B3D604598F4805BFAB39E37FB24882E74E8308E99C436033B3F9EF38FCCE0FE027B8 + +Count = 652 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = 3A9931C19BBAC8643BB8D9E58195BB9B9FD779A96C538750F72BCD3F1853339C715333 + +Count = 653 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = D0A516935FE7C093D245B862C573D179159E5D1689EB943677B1BD79C4AC662FDC3790 + +Count = 654 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = 3E1A24CCB4588EF79D3C6E62925E180CCE3EF1C29BE9775561C9DBAF8B10682A575755 + +Count = 655 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 2557F9F943B507AB7671F63732339D3AA866AA5D682C8B88A8E5F42B3DD430F1D9C12F + +Count = 656 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 9E3258E43E6269EDAF1EB9F51BDE4F8811995D2B45C4D4996A98E08E75B242518A4224 + +Count = 657 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = 2B5D0D3A22FAB3521F4F26FDCD1AEE1315DAEFAA3123CA942F23AE2D39C5ABE9CD5DCB + +Count = 658 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 0EBBCB0BBA52E11B3B34B989574F9F4C1B426AC605EED9865763855F4CCFE27E82EDE8 + +Count = 659 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = B34A0808C6FF7E33EC9EA9AF9C2FD14318835C422AF0FE7055721DCD7C1C6C7EC1F8BE + +Count = 660 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 7B5B90541831B9988DB34BD0F4DA91254E3C16393744624951F1269C1C82B5A56A7F8D + +Count = 661 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = +CT = ED82385EA382EFE8F9957DA7BB88D5C84ACEA709C9CC71307EA8E0E5291565A898537CBD + +Count = 662 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 00 +CT = F3730E618FC9ED48E6191F29511152239CFBFD5421DF9FF8A472434B4CD550568AD5226B + +Count = 663 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 0001 +CT = E51970FC61A895151D891ADCCA180CE3766FA30A5F3C5D5CD58F7086908472CA90226DBE + +Count = 664 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102 +CT = 86AD6F80251CA7552396218A6B25706F534FF25270AAFAD29C7674DE49AD5711FFE1F9B2 + +Count = 665 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 00010203 +CT = 4A068CA16C7405E848BD5426AEBE21F937BF6281C535CA519DED0FEE874BE9DF8765E59B + +Count = 666 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 0001020304 +CT = B2636F0545BAAFD956E94536596994DB5711097E11B01D0EA449F4E1269CE9AF113A95A2 + +Count = 667 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405 +CT = F217EABBFD9AC13C348EEB089519EAF53955F1CFA7793E48AE85F2E66973803318BCC091 + +Count = 668 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 00010203040506 +CT = B9A4C9649E776D000B0709F040D7E4DB854DB6D08ECEDAE0B0CDA29F782CDA2403257BAC + +Count = 669 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 0001020304050607 +CT = 2828E0B105F4622E61FF15251EF574784BE7D54B8E7394E432BBDDCD425E4E196B5F98AC + +Count = 670 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708 +CT = B65D55ED310957C6B9B03863A607BDF320145A660791F219C76BA95F14F8D6FB6D2816F2 + +Count = 671 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 00010203040506070809 +CT = 42CF6A3060D30D1F50C5AEB4EDC44A4BF59E131A887371561E53601997921D70298A4D69 + +Count = 672 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A +CT = A61603A543DDF18FA1B4BD5FC70952AC1DD8CB42F09F156D72BC37633CC774615266AA65 + +Count = 673 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B +CT = 14563B852C22D02E3658D8DEECFED8979B5180218A964630E33ECAA8AA32E11C546C72ED + +Count = 674 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C +CT = AEAA9603FED294CACDC321A81356FBF763EB19B752EEEB9194DC1E35803A4DCEBD2C6FFB + +Count = 675 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C0D +CT = 823749200D2135BAE8FC90F06B9F5B472C4B2D2AB1B097B9FD4151B6CACC20D6CB5F3748 + +Count = 676 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C0D0E +CT = 19099816EAE5452A41D5E08418FA3747A8A858623E280ED1B644C56CD267995F7D890E0A + +Count = 677 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C0D0E0F +CT = 656045252C14381BE01E34A109C486774E81C2D4FC8D0694E23447406D9EE174F08D4036 + +Count = 678 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = CEC6D8A72DE2C23A58FB303DD89B987A05FEE20B3EA11439824FDB17F159BFDCA95E0B4D + +Count = 679 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = D11F9D7E45B8C08B5A1AB294CB4054899E13D2DBCA9C128FDDC41DAB559850576F16FF2D + +Count = 680 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = E7F62FC3A0CEEECE48B690D293F8F700AD6916240B9528274222FE45FE2381D1FE56417F + +Count = 681 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = CB1100568D66D0B40FFC1A1E35EFD1B9E7199DF1F516A3BBA035ECEC9B0073F765A1BE87 + +Count = 682 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = E3BBCCAC13030E915D831DD1C074F683592C0D4B0E36565C2EB23D0FD47AFDB5D11360B2 + +Count = 683 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = 238875FD3AAFC766F9EAFFE758C51530F7A718B280EDF17A4D356D981E53E836A212D136 + +Count = 684 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = EA77ACD103169223EEC0A882CDBD808D94EB742BF50CCBE17FDA9846199A4E873BA332F3 + +Count = 685 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = 847D209E7CF996053D736716332C73A38B39C092F3DF9960DDEDE3E3910751D62A261281 + +Count = 686 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = C6D9BB5BC926B5BC740F2ACBB76244DA0CBDF6403E6F824CBAE95718C5B274938960BBA4 + +Count = 687 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = 8AD6BC35AA3B93994008F910701DDA9EF0732A5E9ADB521C0C564F4B7DDD368E5E87B5D2 + +Count = 688 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 1D81EC648F3F104223E41DEBADA888D5D713DACD1D7117DBC80228DAA5EA48BF0191533E + +Count = 689 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = A49288476825994A2E3F655F1F38E1443DD916AF56638EE9172C3F99F06E9C3E3D041298 + +Count = 690 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = 4951EE5FD41EBAD1C6CA225265918D8019573504A3FA4D9A24C77E4AFE0588378BEA6F65 + +Count = 691 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 9AD3B2DDF34FDF6724E976720F6C160A09E473FEF2060F4847C25110D3245B890561BAAE + +Count = 692 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = 00C2CB1FA34E5CD9F1868EC892DFAF3E251FEE161836BFBD832CAE02EFA0B22298844DC5 + +Count = 693 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 9586C83155B0E31D050DCDB048EF06B69BB90FDF74B7A74050F644048FB4F3004FC48002 + +Count = 694 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = +CT = 9BB37D7058B01DA6FA7B992BCE258B47270050583C55B612321B69B8D71139A8345F457F31 + +Count = 695 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 00 +CT = E275F91080B8FA468A68DE02B1C5E8E4F48D42F1F863F30C16D1749F9F5E58CCDE8339295C + +Count = 696 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 0001 +CT = C5FB4D8E49F7E0306F38B3202F2EF215EB7071EA2B806374B7BB07C76AACE744E54DCE85D1 + +Count = 697 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102 +CT = 40EB16AA662342F4D05C4D040F912B5DC55A03FC13E0F673028C241929AC9ACD6AA1394592 + +Count = 698 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 00010203 +CT = BA1F2C9139B93393CFF6E1677D86AE955D54CAD2650F2BFA0875D86837078481C14EE807EB + +Count = 699 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 0001020304 +CT = CB14A587730B647794F6312E6E7FA9F87E6BC545CF30274287733A766A51CB6EF018A55CE7 + +Count = 700 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405 +CT = 86D1231F72854CB57DE877A4BF3CBD77CA9A2AEEE0CF8EC7D851CE18C38456B21E31FD6AD3 + +Count = 701 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 00010203040506 +CT = 14D4367232642174F772F4201E9F91AD7AA92B7357D2AF044CD3660B64275C2C7FE1CCEA6A + +Count = 702 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 0001020304050607 +CT = 7317A19B762D3983F500F67DC0864BA7FE9E4363EBD8A15F6D947BE6DF52C4D145057BD64E + +Count = 703 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708 +CT = D9C55DF19E3BFCD46CBEF3E90D3D82329DCDB8F2BEF046A00005EA22FC7BC91F0FF451F8D6 + +Count = 704 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 00010203040506070809 +CT = 9E098CB02AB7C1A4E59CC821D6BDE19591A18B94D8EDF3452FB5F0ECA4AA431872F4B490E1 + +Count = 705 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A +CT = F43BAC87065A0940F2A55F884AF7FC3EF6FF6E246E4034ED376C0DE0F664D03C4F674B33D1 + +Count = 706 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B +CT = CFC7DC26D524E4C15C636E37B85B1285D3B76AF9B44C8AA0B8DF8F04B9A174B57CF96827BE + +Count = 707 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C +CT = 146A4FB92BE45E12A9F2B8D508B29D1E6F0BC77922436FA20A7DE63B9861AD9F31EB16A040 + +Count = 708 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C0D +CT = BD49AB6EA0CD509D10D5630C2CE5E69839EBC60CF231C2A6C22379D6E5A394986E08653AF6 + +Count = 709 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C0D0E +CT = 507492E6161CB4B6803BF879988BD53F5AD73DC1C2498B7B0499B2EA4D033152552F584FAC + +Count = 710 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C0D0E0F +CT = 0686FFA439B029F0234AB5FAAD70A8ECF8D363AE3E1DB52AD3A77A880740C04779C25E2F33 + +Count = 711 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 8E8CA3D6E8297A0DA943D207EC6FADFE75F77A446A50134228B26620343589391A4DE25D5E + +Count = 712 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = BCE3D05355A35437860A90A9DD378ED723B1F29C7228B160DFDB074433197AB8BBCB2567F0 + +Count = 713 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = 0B162FAA766245514414EFA48D95C4FD2FCACB629F64F2C123B50CD857BDA34CAD4D482598 + +Count = 714 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 37BE0B8CA65A9BCFBE12AF7B6D9E9F97416B7B41FE74E4BC47CBA2D82D78E5159BC0083F4C + +Count = 715 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = C8BDC76D02F1F101920B37A91BC9F8D49A3BC5012B0CAE54DBAF29A8F1409B9C7DB801A318 + +Count = 716 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = A1924CD8DCB71B9BF0B114D45FCAA994BA2167D7C76E80E7A40EC04451AC56EAB480EF1E1A + +Count = 717 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 2E4E1AB9C75000FC5A80A5768CD7DDB548DAAD4530D991D0B35CA97803F0A33F4A0BD396F9 + +Count = 718 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = 6017AA6C67E778A9979CBC4EFF6BB964CF50AAC2649A13D8F18F321FA0DDC564C25AE91521 + +Count = 719 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = F0135BA3D3129805DEEB5DE4B193A99B557C05C0F68D50666EFC32371AF3D34BEB9851B641 + +Count = 720 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = 0794A2B14D9D389E090B779275850F663EBE24E6D455F94BB200D404022A09A90D25231686 + +Count = 721 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 985EA1180C37D38ABB72932C0620C699BFD8132868CF8CCDD5CE4F97E34C86D084F3CC8581 + +Count = 722 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = FAEEFCDF8EA3EEFA43D4AFD12636F9CEA6B5576CB74FA6D7EC06767F3BDFB2362CF57A4ADE + +Count = 723 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = 8E1864848E3D92DD9512FB6695C6FFC17DF078FA71CEDF9F70203FFBC53B55C5CA4C0276B3 + +Count = 724 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 267F4A12F5512E5F82E24BBAE96E6DC6A79D8FE4F28110EE530731BFACFD5AF5FC30D91E54 + +Count = 725 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = 5E66A83960CB350E69C400DEA5D7DB57D876B00EADA99DBEC81A740E14B0931ACD133B1DCC + +Count = 726 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = F85B90E4D0D23F5707F47B7EC6D65CFFA7CE1393AA3CDF7BEEB1E6CFB0EF77C0152BFF68F2 + +Count = 727 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = +CT = 5FC4826B64837502F3B593C289392A973D2AC71C5722BAB46E3932CAF476AA846E7D216F715D + +Count = 728 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 00 +CT = 3FAE90176C37AB7321784FB467EF57331275FD24A27D4FF58043BD4BDA9DCC7686208563F3F9 + +Count = 729 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 0001 +CT = 1E1D36B227CBA5969F26886CEF323E6F5272B7A77391B522406C6E742E8D1239C15C199CFD82 + +Count = 730 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102 +CT = 3D2636B34EE5507A8F0A35F121EE74CDF8F6CD096C22548D9B27A34A2D47DE85482A7CF95A26 + +Count = 731 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 00010203 +CT = E2D5D6A4A6643FF2C6900E609C657EF34BD8E6D02D2CEEB6D3FE1784FE0CB8E9E896CCF2AECA + +Count = 732 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 0001020304 +CT = 8D8EC4E01210D856413636986F75583EB25161A0F05C6348D32CB0628BE141F12DD1CBC714ED + +Count = 733 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405 +CT = 15E45D14C7B98E9F13B787430FDFE68473F2D8FF8F9AECB230179CDFE1C5B29B4E18E3231622 + +Count = 734 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 00010203040506 +CT = 773EB6E7FAEA1F44FDEE0E86F5709146BDBC490CF32820C82CD538A97F5072C4B3E37BC862DA + +Count = 735 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 0001020304050607 +CT = 2D7F438C17EA189D63E6ECCCA892C30A5DC6AD8CF55BC207885DC982F159483C3C85261E4204 + +Count = 736 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708 +CT = F76EBFB0DC3281795FA7D06A5CE2B74EE15ADC1AA874BD9402D4B8591A29FE8258E72396B579 + +Count = 737 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 00010203040506070809 +CT = 2A26BCCC67D1D8E8CE69CB569F571D90175A2C503CAEC3F627B0D4FF2A0C9ED769F2B539EAE1 + +Count = 738 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A +CT = AAC979ED0C5D763501224B08C726F92A4A9AEC6A5DF02CBC1803960B585D1D90DD77CC6BD5B4 + +Count = 739 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B +CT = 452EB3522B204DDCFD7FEB7740EF7B16CE92C8C143C3DCDABB878C2D33A879E11DA0D48D889E + +Count = 740 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C +CT = 2B04B52AC6180675235240EE6D9A1F642AFB21DC9D5BB0189F61BFE3AE93169D9C186E8B3BEC + +Count = 741 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C0D +CT = 2A525604AC34109B7EFB1D5F7558B1EAD1BA5D3F9F6081880641202484F6606D4FBD0627956F + +Count = 742 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C0D0E +CT = 4C87B46BE6EB178E591EA076AEF399CABC118FC2A602CF24BD3C4858C18124731DD5D6F4F20D + +Count = 743 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C0D0E0F +CT = D8462DE0756588820CD242147BA1EB8DDDB24520E047217FE6B47F7C8A11F527DCFA88D69E5E + +Count = 744 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 390DBF4AE3C92BD3747DF49F55C4917C9C71154179596F222B6BE901593FA7E9403AB93C5011 + +Count = 745 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 25F235255068CBEDC576ED4A3B8E95FF757421A8A65688DCD6C5626F31A48F93942FCDB0054B + +Count = 746 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = 4C206A4025D71B4A2988EDFB865064A6C421FBA8D5C4E1E518DB19F9743B066C3BC46EE86A77 + +Count = 747 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 4818BA127D8394B6B2BC787B5120C444934A35DE13BD8A65EC4152A122480100E58FFF5425E3 + +Count = 748 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = 305D9CE2A85EF6AB8A953906D33D5798033C2145AB1B4990F959382232B79C5402A6E52E8389 + +Count = 749 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = 5503B82895C79BCB9E895C34BD0FFE35342C1113F15E15B803BBEF00733FC0A6D8D04FC4A95F + +Count = 750 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = C6E75F053759F1037FCA880587F45B44321819EE2E5005381257E132099277436FFCF0584C25 + +Count = 751 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = 55D9EFCACF60DB52883AB82A7D731CEC05A0CEC74D1702812B113213C696749EDCDFBA2E0053 + +Count = 752 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 6047835DEF5B98DA6A7609691A65F37075947A12FFDF797FFC3F57F5DCCF40E3433C55E8BDF7 + +Count = 753 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = 66B19C6856DEC0A771FA117B1E4BEE3AA80B0A131F87F8D58C68BB0A836B1EF8296E714C3180 + +Count = 754 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 2DD57F2961B8B277430783C604AB25858CAE8322AC4B7B185DBE03157195EA686E937E86D227 + +Count = 755 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 5946351E33676502C725B07E1C153017E510618F4D707441531C8396CF33B053FFFC22142A5C + +Count = 756 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = 58390F4A6326414F535DA23A42F7C7C8ACB4485A3F31F6F6A35578C5B2004543D97CB81783B4 + +Count = 757 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = F640108847E206256319F3B5FE5AA8FBC946CF0A49146848E852346326C5E0DB274A1B8A6903 + +Count = 758 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = 1E17CE00073B5E6F111F6B56A2FAB3BBB2A87E51B9054C86F64A9D7F615D733AD2D6988186A7 + +Count = 759 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 31416B5E5BF7D1555CF101B8B7DA0F1030C774EE8472FB5E298DF79AD1D3469932148AB996A7 + +Count = 760 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = +CT = 372F56ED07A98F83C59591C46D8DE64EB376984932D4E2B9F89159E5BB75976FDAE09144628DEC + +Count = 761 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 00 +CT = 375745B3ED52BAA9648BE93CA35CB4E9859C1AE88C6643439F6472ECD771E75403F3F6DD6FA086 + +Count = 762 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 0001 +CT = 43EAAC515BE8489D4A6C9B1C169F53118430CF19AB32279EB633360A56BB4327ED16FE59291EB4 + +Count = 763 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102 +CT = 959F570870E40542C2AAD504692BF5FEFB1DA7E01A769033104859972ABEEF292A9877D16BB401 + +Count = 764 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 00010203 +CT = DD9135BB8899794C1B118FCD0C8141C46F004543EE73C18FF646670613EA4CB1201B96073F8023 + +Count = 765 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 0001020304 +CT = 38071CFA03EAB7F7B8511594FF61F46816970AA77C907E3CC0843A608F2B73A56F972BAEA66DF6 + +Count = 766 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405 +CT = E159769095AC4B221730E3D02C5A0E7505CEE4A1A9CDD947A8E1EF544706C2DA277F17340E2E4A + +Count = 767 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 00010203040506 +CT = 2C676E11C36F4F53E5AF1F2D7BE57200538C00F4CA3DF05ADB1A1CCAB457F3FF16BE7AC850BFF0 + +Count = 768 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 0001020304050607 +CT = 8F7EF84CF998B35B5BE0D93DDE22D4D8CA8B9B007279D1801298A7C639D30F8A9F689F8F707471 + +Count = 769 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708 +CT = 18C796BBD0106E0B2B9C2BA40650CAE0FA99A07BE2499216E5800D8D16AD77CAD650255170E657 + +Count = 770 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 00010203040506070809 +CT = 7C78C0884D2CA4ED9C4F3E33F7946FAC67A85E49C42E825302222667D33812CF30ED483BF1F02D + +Count = 771 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A +CT = 859550F2794B692B33C67F88EC68F9FD324873619B67FE012A9A047B6F37F202F9EBDCA7476C49 + +Count = 772 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B +CT = D3D93C368E98B45E609BACD6E41281172B34216701D735C4A41E48EC03F7B7E3108CE0C90C74EB + +Count = 773 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C +CT = 4BFB0993152581DF9742C54478A972D9A12D2C91BA163E844CD7525ED5CD3B404CDA90DEB2AECC + +Count = 774 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C0D +CT = 2BB53E9880007AF850D5EE4FBA6D86E0F01C9582493F6F59765C6ED900DC0E7D5678F6B026E69D + +Count = 775 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C0D0E +CT = CC94F9E0E981B78ED2C03C3F0D393A6A743F2488A3045C03CEE694AB7733355F38BAC22441C5DB + +Count = 776 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C0D0E0F +CT = 5766F58DBB9ADFA23016D7627EF22326DF57FA37A5E8D1D9962D2E4B68632060EC96AF16EAA3F0 + +Count = 777 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 62EFBD348B4BB3007C0A2468D5218A572AFF1DCBEADAFB6BFF236A586BCBACCB73F2B1CE57F6F6 + +Count = 778 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 6E4B4D4E3AD5671900BC7F89730777DD868EDBF12F127DFCE28FDF5EA4D95BE94CB307A5CBF62D + +Count = 779 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = DF00A3D14EBEB2410A58B9D9ADF9E7D71D6C5B0A1B1BFC5B6AEBB7265C7EAD13B891D3E489E14A + +Count = 780 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 0E15E40E9A7B78952DA167508E053A51FD8C283F596CB686731B838A5CD1350BBB2403C28DE804 + +Count = 781 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = 30C41612BB25EE55D395074ADD57AA57ADEF2E81E2CAE910E84536655F373320FD2E90618AFFE9 + +Count = 782 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = B19FAB4DDE7DEB05359091FD613D706A47E1281EEC25AB8E4C95AF42BCF767996A86BFDF9A3828 + +Count = 783 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 1699337240BC0DF09490B7872EDD133CD9030A1AC295C16536E4E924181CD8F68D6326A2F0F8D4 + +Count = 784 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = 0AEC1B4DE82A2C40589F277751950A5BF7B172A77A012F6BDD4F4DB45C297AE1CBB54CD8911303 + +Count = 785 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = B76B1EC9C91A779E35270AF748501D4A23ECA97037626857A0FB6786E21EF8A1F7397DF8AD8CFF + +Count = 786 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = 0EE0F8DA7AE3035E32613827843D821CE786036A389A13518904183E7BCB8034D51D72D8F0B347 + +Count = 787 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = CF0450871F93B92592C56783081FC72665E8232ACDD20E68EBBF549F8AF59A95EE233681D55789 + +Count = 788 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = FCD241EA4270F6BB2D4D7E4F107D064D7C1BA2BC3D502146F1884DB766947F3FFCC93F2590932E + +Count = 789 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = 977171F2583078D10C62FFADFED83EFAF4FAE9C82D20A674983ECD7EDF90C2D856043B2DE51545 + +Count = 790 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 71A6AFC98216B4373FD486047BEF72F14846DD1FD471A21994AAA57BB06B290B4F5A83AE9B3818 + +Count = 791 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = F4DCD183B1AC3023BF1FACBB9D4B9031FCCDEDAEBC460C69EE747A9A2C6D9B422F907030CE5348 + +Count = 792 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 32990B59C5E6A60FAF34F8D4C2F76EC024AFC648ED8C792690A4060D129FAF6479C5A5B41A7738 + +Count = 793 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = +CT = BBED36565FB21419D44AF5BD1D4196E13C7E0BF7F2B1A954B30CECD729CF966B859242F70501BEF2 + +Count = 794 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 00 +CT = D02265CA65394C81C4EA3B0196E188CD97847489BA0A2E516E4093ECD69EBC393CC32C3602915FCF + +Count = 795 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 0001 +CT = 4FB5B4493424097284C98C9E480CA0E231C7116D9092AE7C585588CC2D9F38CCD9991EA2A0BBBEE4 + +Count = 796 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102 +CT = 8BD0AEF3CDC9403B90EC193051D853DA21097BEDEE1A7D4ED7F3DC0F56EE718C1BB1E14185398385 + +Count = 797 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 00010203 +CT = 593D99A27AA9AA005C801EE5B51850895E52D196CCFC8893E973B03C02B70E661E5500EAE99DDF27 + +Count = 798 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 0001020304 +CT = 7EC65C7786235C8110D098971043656D62775E094410805255A3F75910128FCC38225409EDB1E3DF + +Count = 799 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405 +CT = E5DD87BD6C3E6AB888F9306C93690F010DEC86D79080426CEED291BDE100FFD8EBAEB2CEB4811C7B + +Count = 800 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 00010203040506 +CT = B9DFF546BA861DADE2ADA631A32CDA641639196383F2A9E64AA93594F00B8D6F9515878059921772 + +Count = 801 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 0001020304050607 +CT = 0134B264009FCC9C95E8611B61CDA1FC086842998F9673EC657F8367F4ED7C4C59BE9E52D693D927 + +Count = 802 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708 +CT = EAFA877C3CCB0844DE2035BD0BB4F90E7EAEE0A2A881A3D0DD0B94D798B7566502DEBB886FFC2579 + +Count = 803 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 00010203040506070809 +CT = FFEB29FDB200C1F2DC0FBF02DEFCA3C2F3CABFEEFE3AAB2CB2A4652D3D084454F3A1F354A726010E + +Count = 804 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A +CT = 1C941D2578CDC9E2A2FE93A7D1219AF33B83384F61F5569CDDC21982AA7A25C948CFF0A75D0B9A90 + +Count = 805 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B +CT = 8C208CEBB7D9C17E0FF9586CEFEBEA18EF79AE63401F01BDB7D9E69C7940A56B799CA53F460BA59A + +Count = 806 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C +CT = 2DCC1D7092309E1D84666B2C09ED17B08105DF0E1DE16D31134CEB4B78DB878B120222C27E3082ED + +Count = 807 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C0D +CT = A5538A401ECE748EB53730547B7C0EB54C46A505E14343241617CC9FAEA541D4C6B15AC84B78E88A + +Count = 808 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C0D0E +CT = 3E622A7DB6828AE4A47473D7D17CEEAC841B3CA71DF72FDF5DEF9311B74BBE729A7A26CC913B4DEA + +Count = 809 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C0D0E0F +CT = 147C521935014AE03C86098A81F581484989546E5B53D4B4F082E05DCE9B50AC72CC5D7F97CEB568 + +Count = 810 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 568D6FEF09465EA135B307A562A0422309240B9065A3CB2C1061C8C009080E8D9F64AD5FC9C2E8C2 + +Count = 811 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 539BCC87F58848CC475AA43FB674817B6C5511BA744F71184A33CC50725405E089BD1A4461663350 + +Count = 812 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = B9389527BDF9042C82BCA8EC9891617F4603E3DE65A7242D4EB833AB30646090FA740685608463C9 + +Count = 813 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 6BAC714B43C564296D4EB9DFCB94DDCA34FE3CBD6EC4282780E9818C9008BD9A10BFFE2530EC8E30 + +Count = 814 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = 2164F8BE69F2A8E7615805DBF91116C8AB5E7A5E5655BCF565E114003CBA0413F4E5457A7FB7515D + +Count = 815 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = 16B5040BD362D3F816AD892B8C9A1621F0E0D89358D120960E202D106EC709C56F7429A8946A1B07 + +Count = 816 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = DFD959C2A11D981181571A1D9AC7C4727FF73D3F1F69960877559AFA1CC2D09E1DDC6518C47451DD + +Count = 817 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = CE418C3ECC5858CADA2D1FC96B3205560372D3A1607E8C117CBE09A9E6D74BB16BD1EA7A633E8290 + +Count = 818 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = ECC97503825E8E600FEBEE3FBD76FA614059B726609BA9A2C42FE6D8D416BB7FA0C786E3D4F57D69 + +Count = 819 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = 111399E561EF3471C65D48EDCD30780BD1C2C32D24CCB76BB0786C52FA6DBED33DF9830B42A37F47 + +Count = 820 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = BBF2763ABC17D6454DB3BE3A46126C69AA3DC587C3EACBCC4ACFDC52779897BB94AFDF7D723FAE0C + +Count = 821 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 94CE4A36D478C4A08643E9C1B56096CE8F92BF03BADB4DDD83DED88334282E9D70840ACDEE5260F5 + +Count = 822 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = 1240B07C77CD65F5893BCCA816D909F470A83974A8ABBB5370813EC5FC7F2BF9D35A987F9C49C43D + +Count = 823 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 01E02E80A6D2C6F7BDFFF63AAB46FE7B9DEEC7D84733057C4A034B28F22EBECF5154115786C518FA + +Count = 824 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = 17AD7239C8736369BCA2E2B1B52D6EF966E613B8B553FDA717AA122911D9FEE4A0642D4E891AFC5A + +Count = 825 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 7B8EA576A021F7849F0FFBAD95B785257B9D642778D8F103BCD37E5F61B192564EA96950CA9401CE + +Count = 826 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = +CT = EDC6101DAFD80953BC8F95F993027EA345BA4BD5E8FF26ED2D6EBA1046765239AE839DB2D1740D8AFF + +Count = 827 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 00 +CT = 6E8A9C5348728DC592CC3F58F73F96658119402F7E4504014186EF8002D26231D5874FE37A9AFA2313 + +Count = 828 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 0001 +CT = 1C256370B8CAE6DD9EE8B732ABE6AECCBABB876E392A42CFC956AFA46A21A4613B657951E446941920 + +Count = 829 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102 +CT = 43AC5AAFC00EBADC2D5234C251818888D9AA63A6FA16ACBCB5AFB7ADB2C2FE2F245BD77F4994246549 + +Count = 830 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 00010203 +CT = D4E50759EEF9ECE78C9F27D8981F32855255F284EEDC1C6BD5A74DA63053B8DCF5182506CDCD8F69C6 + +Count = 831 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 0001020304 +CT = 813F745D70EBC8C0D17B7904E33D7ADDAF15A30764C8B23C389F5A3EF859BB51063234C0DBCA0CB2E4 + +Count = 832 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405 +CT = BDCAB37F106065A3319588A42FCB41439C02E06F4C83A9583F76729C478DCDA54F79B638FAE845BFF5 + +Count = 833 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 00010203040506 +CT = A3ED8795EB4DB7796ACADC49D6BB59184F06AE5D8A3B29CCDC436A68F62D2A1B09E411B958E8C29DDD + +Count = 834 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 0001020304050607 +CT = 704984B64D554BF80B0A383CA8C46AEF4B94F581D53CA0912A41EADF04ED95838FB5E3F42C1220810A + +Count = 835 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708 +CT = EE109B91832F4BF040C015962A34A5D6847E62A0209429B90F0401DB5B30A3648D9CCEA71B6133FFEB + +Count = 836 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 00010203040506070809 +CT = FEBC1AE5D92D2F571A405ED5A6CBAF84DAD9EAC07BA59B6162E92B848C2987BDF1B369E7BA516ACB27 + +Count = 837 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A +CT = 582D0566943E1EE80EF684DCD76D2AC378BFE213C26BED590FAEDBD2ADD081AEF5B4FFE23CA92CDB93 + +Count = 838 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B +CT = 1DE450F5BF76B588F6181AA1F3BB722F518B066E1ED174AE4B9714335B698BF327035D1174450A84A2 + +Count = 839 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C +CT = 653D991BC5FB2A083B40AF4AB41438B8640F5EA7BC3290E2CBEBC1815B9BCCDC16486A012651F5BC31 + +Count = 840 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C0D +CT = 2900E814A4D67C5CED6916CF4BCDF54C0AAB225F38A5142C46382A4713E3CC8043810769EBB1D3D68B + +Count = 841 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C0D0E +CT = A7766E8511DBBE35BE868FD62BB58414F2EE5E2C1558A7BABE45484104A42881FC834CC56E26D15FEB + +Count = 842 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C0D0E0F +CT = 9F1F769F80AA675630AE9F5FCED9CAEF9E7D5E6FF51CCABC135EC17D94805C89D0AF366FC83F5C9EB4 + +Count = 843 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 16384072681731B9780A8930770BB06E5BC601A9B81FE0EB9BEFBC76A068F82A1002000A475131F522 + +Count = 844 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 7F79FD52D40687DD3BF2134BC661AC777856ECA833193832A512562085A4265F33291C223ED372611A + +Count = 845 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = 181B17149059DD82CEB7F8D31E569084161BB8D6BBF3A66812E469FBDBDF6017D68A541C39671420DF + +Count = 846 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 4CF5932EF3D2339577B39C415CD326529FFC6A920C621C069E333C4DD4518D3069A9860FA6E94DD6E3 + +Count = 847 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = 52BA65E030E8AFF9433EA37467F8CC732616F2335DF870905B1A1AF9E674CF3BA75700DEB31B12DE85 + +Count = 848 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = B678656BEFAEC72FEEBC4E425464C48831523A47C0FA7E97CCA7B7EB9B29D1AAF3F8A0A9548279167E + +Count = 849 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 819589AF5AE6DF84AAD85A80063C32D3A5A2150604806CF4509553BA6329FF4C01559ADB3D56C3269B + +Count = 850 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = 36D80A75EFD1E09EDE2FDFADCFD65B9C925C35FB94759A67030FD2A6D5F42514543EFBAF89D9324B44 + +Count = 851 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = A64F2609052D05FD9279EB9A60A02592CC8CA4F685BAFE0DB71C6A6FE9F858AD5252F674BAF77CF34A + +Count = 852 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = 167DEC1AC8CF6E8E952288E863395E927F43B934D72B9EAF52755A5011B7BA681D679EA5AEDFED571B + +Count = 853 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 54D44FD56E1B0FCB8FE4231AD037DE7E0C046BB60265C7076C43848E0A5EAD0E1A8663328386736A47 + +Count = 854 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 0EAD3AF655936C4CDB97C73530F001049B7C5049C43BD8443009D971E28F2DED9397A67954CA39DEB7 + +Count = 855 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = C95BCD76C839F0B2DF1DB3C7566F609135C317CA81BA573C8CA1CA2EAA18BD1451815FB65933CF9066 + +Count = 856 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = F18F205D5DFA24605B6DC7AE9259A19BDDBFE5556A0CD891341D43C35E570144B02C858B1CF52FB608 + +Count = 857 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = 2E3DD32824474D8312E11464B5C537A5E07BE37B28BE5AC096ABF1DE56FD8A765FAF6D159E09AE68AB + +Count = 858 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 40FFEE56CBFF6743DF331717031152417A41D463C87CA1A2AFB09F596B00A6EBE3858A2FCD1DA6A349 + +Count = 859 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = +CT = 81F5F4C4A453899BD1B7ADC8EE2FD0AA2200603AFB4273FD6F27BE68BDDC9F9205C6CAF752FB8972E807 + +Count = 860 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 00 +CT = 6695C0B85C665904A08B780DDDD17853F3267EA9BCB6BEA3A022A64CD314C5E88C4EE9A1E1AF2BDD3B68 + +Count = 861 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 0001 +CT = AB0373817C0A608B73BADBA3C5B913495E89AF49110D466988A5EE5219B81A0927278B0506C203D9BDBF + +Count = 862 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102 +CT = 9BAFCAA01E664612049734D67BB0FC98162075966089421B8E547D90D5AD8AC219D8B39DF98662BF779A + +Count = 863 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 00010203 +CT = DF11AEA5195DC43156B2DEBF9C2E8B7FCB8FEDBF1500D072BF8B7FB0A39495B13262DBB1FDAB968D132F + +Count = 864 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 0001020304 +CT = DA653CAB5CBC5C562A246CDCF00E8761E7BFA694C1F660FB61F3FD0754A9A79218369F7139E536445C33 + +Count = 865 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405 +CT = B9BE7C405E46AA8DDD6EF515F2DE1C520920298F501A1C40AB42BFF2E30BDD808525496117E30B6EC73D + +Count = 866 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 00010203040506 +CT = 0B1BB3A7BC5ECAD8F8928DFFB4DB968F629C6AF115CE84596DF195208303066A26D32C25E3B68E052A4E + +Count = 867 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 0001020304050607 +CT = 03F9B336D2B8B4B8BD5A454D67CF9C58CB735C50E2972EA8BD8C87DA4E5377F4AC4DC6E052FA8588632A + +Count = 868 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708 +CT = 5CE6E68F3BEAEDE45F5EA178EE86BD52E6A148885A04F8A37D945A28DEA04707054AA939E02BDE53E674 + +Count = 869 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 00010203040506070809 +CT = E17EB9C1C4A3B6A107C4202E14F7BEABE6C0DB7E844C706151DC1E8748F9859BB76EDB9AA2E039773444 + +Count = 870 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A +CT = 80A1435403AABD5D3D74034FD5AADDAFCE211FFB5BFE577A27FAEFA97FAC1FDE3E15BD837CECB2C6771A + +Count = 871 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B +CT = 8006E5B932B42C069E2CF3E7F5B1D7278AB9F7377812600049AAC3A838062C5F337574EACE53C2379E06 + +Count = 872 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C +CT = DEC516D4C7A49FBC547165347E9B35720C695E0F3A01FFF85814E6E40678FA1021173B40A13E2173BAA2 + +Count = 873 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C0D +CT = EE4937F71527ACF5F79FA7C628B42F1EB59B4FE976A8E9C1219195611EF5A5B79053D99DCB4F792B1E74 + +Count = 874 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C0D0E +CT = 40651B5549F00E4AA600EBDC084DBFE22D44702F1C088BA3A673091060E2C8B853091A8CACA7928CDA44 + +Count = 875 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C0D0E0F +CT = 7F8449D09C57C805461724FB90FAAAE56E5270C3632DE11677296714568747BFDFEF4C4FA35580181EC8 + +Count = 876 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = B2B9FC09D0E7E440E0734735713F5D8DBA1C0D54737A57C775B5670ACE753117D19AB1E23E37FA17377F + +Count = 877 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 73B1F70AF74939536C8DACE5B5EABC2D1E182D84072361831AA9C9845F7C7F68785A6D594D6851B504FE + +Count = 878 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = 0DCBC196343A258086A3F1900562C8235BFDEB46D789C56EAB5746BFDF3DD919219E4426D9EDFDFEDEBE + +Count = 879 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = B499B54225D61583556FB5BC24EF6A726CF050F31CB32F2490CC505CA6ADEAD1635CE07764887D1C55C8 + +Count = 880 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = 694B1AF30B2B0E7B23E11902E72CFCA9DBFBF2F39534A1CE0BF736DAE509CCE019707E8A7F3089EFC6EF + +Count = 881 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = CF5B5B7C6E96C30828FDFF9A739E974D30D127FDE75B8DAED52290D263615A9E63AA581DA45B8E1CACD6 + +Count = 882 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = C81F22A79A34B484AA37BB6DCDD38BF9A139B1A20C97E1F9EDCF77ACA5D809723A0F3381A56E291D7732 + +Count = 883 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = AF42B782E11C8113288DF8A23117C2E3292B814478C61E7DC4E120A72580C4793746C9AC4359812D5C7C + +Count = 884 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = E5BDA8B42F736D07A2264CB4D147B78B1C0FA5CDC0893B8FF2D49017D4A7CAC70F2D64091D71106E5354 + +Count = 885 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = 8EB71C6483E1EB796AE2F53874D1E77A7B8A45D02C25D694F79C190C8D527BD48A7CDC2C1F9BB9F43842 + +Count = 886 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 80FC07C47C5DD07C28475E55241881CA5C7D7182A4467393315F9FC13CF4B41F18E16784B18BB1BBB9FC + +Count = 887 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 7CFA4B3F9266C6A2598EE4684275EE2DB259B1FFE16C8F727B4BE30B6D2E44B4A30C3055D277780B7C4E + +Count = 888 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = DA0353C1742B56818403DB4DCD83B1CD3FC0EBC0ACBCD36C253114CE0408A02F7F35D0F3EEE0E0536C12 + +Count = 889 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = D09D2CD6155924C3B7DF2BE65DDE2546B2049E4FA816129DBC5104F057774861C6D59E029DC43CBA8DA2 + +Count = 890 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = 7A239EA0F1AE132C1B58FD65077B39698FB821FD0ECDBDF5FF4D257CA18F8B75BC534736A8A83DDE42FA + +Count = 891 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = A9E84087C2C91608D5FF1B91690D707A3C6BE4E39DB10D1B05B35578D5BF48EF89BC03C909A378773EA3 + +Count = 892 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = +CT = 05F4E3F6CCB665BAF3843AD2F5069936164B843C8F1A517FE7521FA789975C729929CDCE3667FBF8F35C3C + +Count = 893 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 00 +CT = EF05411BA67A2E7455089E87FCD3EECFD6749F6E342E5027EE11383FCFAC4DCCA45D74983AC1C55A8A3D13 + +Count = 894 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 0001 +CT = 01DCCB18AC84E5ADDA78CC797927BD7ADC7C1A65929A7729D7D863EDBC08ED9F0F24544C6105D4F87037F2 + +Count = 895 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102 +CT = DDAA64DC9A1410CE44ECD4399E223BA7B8D70333FC4B5D3A94ACC069C272BC2D17ED8DD1A14E05DE1B9121 + +Count = 896 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 00010203 +CT = 051D69BAF8E6FC1CBEE5AAD21EDE772EB0F4DA01449BE495139A684657BC16F35CAAC29913A4F13F3B5B90 + +Count = 897 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 0001020304 +CT = 90599C68C93505A6D2FB797EF68FA0F267A9CEE47FF32EEF8E24F301DC3853B5392B7A77F8BAEE4F4DE498 + +Count = 898 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405 +CT = 17A8ED855D5C43A2B9901F0A5DCF3B1DD2FB2434E71E4427031CE76CB8B92F815C1BF24F1CA577CAFE6A4A + +Count = 899 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 00010203040506 +CT = 5E55479EC3B8904E71D70C171135C4E6076456D15C63727622B4D2492BC872D3BA622028DC8A14C4A00DEA + +Count = 900 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 0001020304050607 +CT = 5B0C9D1F42F812EA8ED7A49154A054483515E0713CB55FF68CD1BB42BF0FDB428C86729C199244F36F88B4 + +Count = 901 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708 +CT = D179B029A9C4F3DE62A461E8BAB3EB5D0B24F8A74096462505340018B67FB93441FFC96CC1359C79ADC088 + +Count = 902 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 00010203040506070809 +CT = D8B4457516347D704083913375000C21F6D68FBD9DEA230AD1A328C0322E73BA9713A1C4A03B024C936C64 + +Count = 903 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A +CT = BBD44836F4A418032D052E7529F3A9DD61AF6CE149C6E5CC2093D554217B752FF10B618EFA7DE502DFB1BA + +Count = 904 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B +CT = 79438D46012BC7C87385C8D15B7221CDE706865A2D90A651F771A566CFBD22A16501A82A7723AC8A9FF47E + +Count = 905 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C +CT = D894F978BCF780570468CF1A8A14AFC4A414EED960C5DA99F4E485C6046F8B323591084147DA7F0C5448E2 + +Count = 906 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C0D +CT = D93FBA2B18CF0E820C9542C9C4DBD9E3FCCC92200094B169BA8F4D6A05AC92BDAA8DE8E009982D2E938226 + +Count = 907 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C0D0E +CT = 9A9FF7175E5C467D0F018EF37A9074AAB27E2B250A6886BFE9F3006775AB8B0AC03372D22834C0DE0AC692 + +Count = 908 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C0D0E0F +CT = 4017E20B0B665FFC4734752C8699C3DCDB5DA5FA29440E37CF2D8AB7C8D912FEB258696AE8CD57F4F9159A + +Count = 909 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C0D0E0F10 +CT = C79FDBFBEE4B79341168B55E8E61E4FEE1AF10F358B26E6C720E813F72CFBE81CEF8D78F6E3BCE8F1F0BCE + +Count = 910 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 7C26DF33CE8AB573DAB843142D5A8BE79E9D93986EFCBC019ED9E3987690F556FF7B6AC2623094D7CA68E6 + +Count = 911 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = BBAC6B110BE8662F943A0141B43350659C200655BC97020C6BB043D7C8CCF07EFE898E13821D97D49EBBD1 + +Count = 912 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = C3A096093BE34E0C5EFD4EC7ED94665A2CDEF6BD06BD71CFB3CE00CF38DC9C7FCAF16F3C5B369BF3D505A1 + +Count = 913 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = 311811EDA33084D328063065EABF83885A5DCB4CB9FFA478043431F608C31F431B2C23C70EE3E6AA7B5740 + +Count = 914 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = E62E4CD339DA8BA3CC3F994BEBE41D9101470CA6FABF66707BB4C1FA607B9E7ADA790393776D81C1AF1B5F + +Count = 915 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 1F4DE86F00101203D3F056A0A96E66C3253CA98DBB9938B8AE33A2F886317CED26A6615D92B3219647CBD1 + +Count = 916 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = 08808095035D463D2EF3942C077F638C3A69C0A07B47C6DE4D86C16EDF33654FA8990926298CCD779BB16E + +Count = 917 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = FF3D60E162E9674AD52A202E9FCF7B43172D3DE62A0F6C0194EFBD43F669DECD191A1B785EDF7F6047E182 + +Count = 918 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = 5B002DD4A100F92794E1AC7556D4444F5E46647B2C77FF9EAC7DDE7E14619CB7B820920E5733AED8AE576F + +Count = 919 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = DE211C9D8E74C108EDB7698C44CE54779B77A000304F25D52646524F949E11E9F4D74AC5EE6F503EE2FD66 + +Count = 920 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 6FC3F24FB680B31BE436CBE21DFC15E284F3C26DFAD414058E236558EFEEB79B77324C4296F50842988A70 + +Count = 921 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = 3BB2BF72F42879B8D7390A2DEFC066C3A27CF355E9FE8ACA0D555E2D6EB53CB15D1D3CC8F2B5E9C8EE1FF3 + +Count = 922 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = F127DAAFDF8954A416862754DE0CBFE92850A6D2DDAA921F9C0D778BB4F64D1766F6673008C3CA897661B4 + +Count = 923 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = E5E5981CD94AFA5B9834A5C277CB625E951869FEDE6A91A9F32EA3D4440D46B987BEA984C599A6B8A8AF2A + +Count = 924 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 8DD1DBAB0060FD994A3C90030419017A51F59D647403B50765411B6F0F97AB0FA1BB716FF65CF0A7FC94AE + +Count = 925 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = +CT = DF6466461750F74DFD9782C77209AC60609B985D81581B0521DE503BE2BAE0F18EB2D6BFE979F27EF6D5CBCC + +Count = 926 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 00 +CT = B95E6B427CAB953FB6BFB613608AC22BF3A425F01E6A1F1FAB21928908AD1684E47C316530AAE2A4D7C87731 + +Count = 927 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 0001 +CT = CF8A8CC01B6453545E057C5FBDFBB14539341325050C2DE3431C0AF1C578C358FCB7CCD36E2EBEE292FE28B5 + +Count = 928 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102 +CT = F2AEDBBA2DC854CC0CF42D0D15ECD4B80DAD78FB4D9F46C4319672F566D6469566B0BB45EBA98DBEEF813049 + +Count = 929 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 00010203 +CT = 60877069322844C1039843C4BEBB3BD1D16A0E95B2673ABD8E47C42625886AF9F129BD8A195C125056A1A82E + +Count = 930 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 0001020304 +CT = 9657FF61EE932B877F108FDC03E3543F7C65702148F4EA4EB84C7CF238F5069E43D760F1999AA701A8FB4401 + +Count = 931 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405 +CT = A91FBA8DC667753202248FA136B8962503AD09D5399D105666F9CF9DB5959A0126849D08468A2026F5AC0331 + +Count = 932 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 00010203040506 +CT = E921D615C10DC29B9B082C3693AEA2E4D6CA6CBDE0563490E67E414632EEFE90E7FD1C2B49D666993D0240E1 + +Count = 933 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 0001020304050607 +CT = C1933E76E12F778C68FB816E8431E20BC06FABB52874A179F88127BB9EF15486A4E0D6FB116D73A33B9CCAF4 + +Count = 934 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708 +CT = 1C0258B530257DBABB9EFEAF67FB544BD967FC366C8944C88937E040A7C883B3ABFDC62B9324CAE315BD662D + +Count = 935 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 00010203040506070809 +CT = 5CC2D6058C87A4ADFD957F884884C8F5BB0AEA97EB995AC44B3E8D8AC3E21CA41EB74211573E8AAD1D72A7F3 + +Count = 936 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A +CT = 6879A2AA05E96D9B9566D7B4348B4718A6AEE8A3D3A3F6D43CF8BC8D0CAEFABBDC9DBBD6D9B541082DEA3050 + +Count = 937 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B +CT = 31778534C8FC769C272D01BFC2FFBBBD179E2DAC566F5DFE8750098971EA34A04700C33A81D32756EB9A8384 + +Count = 938 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C +CT = 7E20F7F302CB55D957378088DDC435B31534D5209AF08FA64AEBC373D95C65833667284EFFD3C72DB14F4A12 + +Count = 939 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C0D +CT = 5344DEEA770F53161BACEC4EE804A8C5AAB795C0E57995A08AD4D14DA8679F2267CDCB04452263ACFC931B52 + +Count = 940 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C0D0E +CT = D03BA1949CC9276887DD4DD6B64B1F6DF48BAA2AC6F587B019A87CBDB2BEC08EBBE413B23679A4036A25A002 + +Count = 941 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C0D0E0F +CT = C229E9D0C7DA772029DC0C0F4A9257B9017FC5D0D4C45C0E769B20EB1B744AA21B4C4D80A48115A2CFD734EF + +Count = 942 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 08F3F21A902D28E1C3837EB629EF69BDBF256E9F9AFAA04E7AF3A79738A3A13C835E44CFB74A303C576396B4 + +Count = 943 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = D7A8D02511D1920153E48E65B7E234D7C5C0E4D2C99EDE86D89C2530F0CBECD902A4397BDA12A6D4EE45E235 + +Count = 944 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = A2BD0B27A64FE1BD1E3C30FCF6CCDD2E99BEEE8238F869E7DBD2E69F3EA8D71173AF169AF1C13E1155C89893 + +Count = 945 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = D9A91A1B30828D8B915DCB9E9351DA3CB79CDD8637D420D38924942FE25EAB8E346ECABCDB265006DE5BD96A + +Count = 946 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = 4134B2515C0F31E1DF0AFF00BF86989FB1FA9140074C1219349431EC15F9659504C400B74100E8DCF93FDDA5 + +Count = 947 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = 81AB398D120D8E490F37935C34E40EC442E2597EBE3346E8A70BF5683522F30A80F2E313DC4CC1027523C1F7 + +Count = 948 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 126BC1C5151CA7F67F31AC5C15E4E3B2285F28A2387826DA5F3E26B32BAF0063DB4BDF4AE57D046024A08FC7 + +Count = 949 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = D0551F9592C076D4BC8F450B4163F35727A59D52A307E2D4D9BF37AC67BCD2097749BC247C74415DD71BDEF1 + +Count = 950 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = BACE8658B20184C2535D8F989840BEB1E85394E06A8F23724F97E072EA2BDFF8D1D67D60689FB161F9465E6F + +Count = 951 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = 219D8C32E0BB96A5B35C254D6A3AC4CFBF030352AC5B1A59EE6091332DF42E324D7970BC08DDCA37887FA0E9 + +Count = 952 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 72AC930BB3C3E030236FEBA78185D334434EA7B912A658E9B81376BB7E2DC4D357CD809441791D8CB4AB94A2 + +Count = 953 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = D02D887B22765805537E1760CFC56EEB3B23765D25FC7D9981405BA2AE141D2AE6B2FF32CA280D3DD2B0A197 + +Count = 954 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = BAEDA17A297F86ECEE55DE00DB20005E5FA1720F9D57F7787F610F90095E5D85BF04868EC98A6C493E863EE3 + +Count = 955 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = BEE00AA93935B6DCC4E54F60B080773E74DB6D32E99CC9809FF39E15917C63ECFC4E4EB00DBD9539F9365887 + +Count = 956 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = 13C62EE6A96D6FDBF70FDB9533949D9F9E9517F0711157C2BCAC23143D797474C20097EB93CD01A50E51CFCC + +Count = 957 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = B7BBD46473178BC1598AF95E49671C5A7D28F87101F7767D564568A6AB683848E607F01D9A79048A467DCAAA + +Count = 958 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = +CT = 4FBCB9BD14BEFF24DD2FA755D50F8F2DF80DF49983531FE3FC150237F63648E07EB5B4447A7E38FA20F8D4F879 + +Count = 959 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 00 +CT = 86A20414960776AAB9FA1D31B3F749DAA5619A5B30A24A3B95EAFD1A762B3D219075F888390EA2F47DF9743EE7 + +Count = 960 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 0001 +CT = 47654FE7978EA3E84182B69EAE92BBDC85D2909B97505BF2A238010251EF8293DDFCB5273FB4426694D10C7C52 + +Count = 961 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102 +CT = 26011F8CE709DAF6FBBA3A43A0F750B9F5EF137101E20025868D0C652CA759643C1A737D2606A8F8B8A5A3ADFB + +Count = 962 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 00010203 +CT = 2F20080EADB02BC9116C509C7FD0F32DE279F133BA23EC7A927BFD208A5B9EFBEA12F8BAF6199E0A822340011E + +Count = 963 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 0001020304 +CT = 8EE87761C6782BD7CA776E72C173E880D47D1FB0736DC98B06C7F7F80571AA252549EF3924F27422C7E9AB89D4 + +Count = 964 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405 +CT = CC48D7D1917532682B522E35BDB43805537802921C1DEDAABDC6B1F99E424F980A06689B0B516EFB29919A1F5E + +Count = 965 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 00010203040506 +CT = 847E5ABE716D49B4263C1D8FCFA7EFF82B637A4CACEF74EFF67D0E33D8388062ABB9D30EAB7BBBE5CEE3EBEDEC + +Count = 966 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 0001020304050607 +CT = A92550FC3C601AF9A81DF47CF42B3557BECF5AD81AC0ACD862A8FB5F751A1736C6C7DC243BFA96AC4478CC6F1A + +Count = 967 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708 +CT = 2BAB268C7EE4616A58508ECADF51876D7A543AF80CD2732F2B08AE5CD9A931934A1BED54C8002B96D71B72DED3 + +Count = 968 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 00010203040506070809 +CT = FE1AA94FDF279F379114CECDC14655EA1B67983D4FEEAF70EDE87872FFFBA304888F8B2E793F5DB525BC0F3A65 + +Count = 969 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A +CT = 1055E8B6110A0E6C91704B203D692F08FCDDB4E3D42DC4E51537B5DF1D9FED2BC906DFAC99F3BC2CCFCE014F8F + +Count = 970 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B +CT = F3553F9320586E4237945A9626C6CA7659B8650B7592C0F2587FA9B42D6D648A8539F4E7430640B264B73E82DE + +Count = 971 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C +CT = 3FE9A53397DD37D5B606165E47837718E1E6CD18610968DEBE10D9BC2ABE272189C1B22D2C1674C0577E090BBB + +Count = 972 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C0D +CT = 5E304F032DCF2523CF64D991F64E0258BEBD7DB7DAFDBC68624BCA6EC6A1F5D2EF612E213F569E653C2B72F9CD + +Count = 973 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C0D0E +CT = 906712C6357A76A01F2F8A6FCA05881538C8ACBE9A9A9C5E18FE016E55B404AB1ACA2311A0F8D2458F323703BD + +Count = 974 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C0D0E0F +CT = EFCAF427C6C3BC5A40C836790195994F224405F8F4B8AFB51EDB732E8724A13D8FA28F60FBFD0E4D0AD4CC92F0 + +Count = 975 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C0D0E0F10 +CT = AE35127AFC6BFE75DFCA1FFB8EC88667093E361042D43AC6B75A4739E5DDB4DAC61F8089DE15A04652F9B240B8 + +Count = 976 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = A081C0DAFFA043D4592DC0BA150F86B40B13705DF287814F13266F1CCFFEFFB781362B73CB0EC74B7BFB4033D2 + +Count = 977 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = 609DBFCA8C2DEEE0E3C6E754D8FC9383833C02D322038134185C917C6B3159B1E93C51C81F6292243CB2D2EEFD + +Count = 978 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 14F7EA1074B74E28F10523D6850CBEC5D52E967410707F88E2E4A4A75B9952FB9E38A5F7A4BC44B7D7CE0683BB + +Count = 979 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = 61CA06337C634FFDADE00F89B34CC817E7B970A749EE61E936C95CB5793B69C7477FAB08B8C9888EDD868BAE5C + +Count = 980 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = 173B7A932F68247353E5E953E2540123F0CB7D008FB5C6C521AC28E018E33368E737DAFCF27BE6D3E170B657FF + +Count = 981 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 9ED2E8A6DCE64925A9D7A6A133E755DB3C2C15695C544E254C48B01E20AF8DDD064A39059E66BE2F86292355DC + +Count = 982 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = 6A363EEBECEF98C88E056564F5F0403686C5369D81CCFBD3A52A75794949912C070F6CAFBB31B0276CFF43A770 + +Count = 983 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 66A53774634446E00393110B4E8BED574DE406FB203323157DF3322F668B13255381A69FE53C9C8CFD79EB3442 + +Count = 984 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = C77A6191C16E81C75D4CAC41B7F56278D3FBAB63856D8DD397A4F2AB1AA7ED7286660A4E48ED2E4C83363EAB34 + +Count = 985 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = EFAFA35D8B3F88E3A9505038F31154FDF8DDAB5ACE792263326D147F1E375344DED18AD372FC1EEE119B60478C + +Count = 986 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = DE6BD6378FE95E7378C84B8D1AA23AB520684DA0BB89B5AE9E4C2587E0440ECD7F94E4E5FC453E11DD80F2807E + +Count = 987 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = 58A229A7387324C714659FF3564AC1F3EE80714583CA2C6ECEDCEA3176C16186D1BF61837C5955ECAD02D0A450 + +Count = 988 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = F031E2AFFAE2B95BE598977BA0673B7E900A4729D0E6F70B41298E8ACB65498F421E97D39E3BCC7CAE1EAFE31A + +Count = 989 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = 7D1230E3FCC5C4C467898F23C63183E92E4FA8C61F187DAA7A5D2257D6CFAEB049BAD5A6928C7A48D1E7465D92 + +Count = 990 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = C61885163BDF7731CB5D35F548C00A3D16AA7332655EE2D6F18726727B99A09639D5D6110A2AE7499D260D243B + +Count = 991 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = +CT = 51F2D4A1833F6DB28ADB483425770D171871F224619F871F619D07CDB868C7892A9C8157358F8D070E7417CE6D94 + +Count = 992 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 00 +CT = A654B900AD8C4AAEC839D25085603EC71D383553279B0504C53323CE6FB1E0E6B8D7BFE336402185D895477C2FA2 + +Count = 993 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 0001 +CT = 404D50EE73E5466D11265F658201C63A4D9AB5066438B741E91B24228F6C1B7D95E89FF07B55576D7C8148ED25E2 + +Count = 994 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102 +CT = A951BB13C588FD79087BB9C84AF93F7268AFB2021B767670916C7AE8862F91C56F7D19A79B697AE458ABDFB41404 + +Count = 995 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 00010203 +CT = ADB1A2AE1C3998E777D1D0FDF4789F3872CA08E644F478CF3283E94E1AE3C4B9931FF7145FBBF6650DFA3B65EAB5 + +Count = 996 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 0001020304 +CT = DE2A4FA444AD20F43273302F70F07BFD41E7E56E3903991739BEB8590DDE9C5004A93DBD0BE1B3A1A65A22F78D4A + +Count = 997 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405 +CT = B17D7E9B4A2FE3FA474D900C8ADBDDBABE8985B911E1580137FB541F525154DC32172ADAAE35F103F94174070F9D + +Count = 998 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 00010203040506 +CT = 689271679E4BC4E41964FC17F9E00B9082FB42CA3937D9B3F75A263EB5699BDC984E73441AEC149B1234E5581C0E + +Count = 999 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 0001020304050607 +CT = DF98D778D38C8BBACA7BD596B7762315D15C200FC6E9611D3F64DA30D396BC1648B0274B00A3C8DA7B97D6B13F67 + +Count = 1000 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708 +CT = 2149D68E424B8C6C1EB8D9CDED3FC3DC728711976DB04F9DECFDC221606306658B45FD4E9CF594B011AD3B0578C6 + +Count = 1001 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 00010203040506070809 +CT = 62EB80586170A73F0A440B03CD61DDA7B3AC0604038158F16F0926E73B058EE58E69924BFB22B7EDDD82B62F3902 + +Count = 1002 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A +CT = 9BA62E608F82D27C37E62ADB8D610B00D0AFA9434143DE866C9E52671DE9740A35286363504CB431917871C87FFB + +Count = 1003 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B +CT = 0B31D9BC0C575562F5A5A89E45C53F1819B69B34A325050641CC0DBF780B2163B6208ADE968E0CC55BBAF1447249 + +Count = 1004 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C +CT = 1CBC2B9AC054C1E88829321BF5F6D31A0E4E6BE577584E4A0ACB63B6BD9D178073EAEA40BC5A360A671B0525A895 + +Count = 1005 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C0D +CT = 9DF66C673D76625127E9AEBD82AB013409856D182E51E25D7D3DD812F4AAE4420D99FD543914CDC44A2CA5331890 + +Count = 1006 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C0D0E +CT = 2118E7FE1B4387675F0479636850316EB8C7A9A1886112E0D8C482DCF1C7B19ECA5200E2952638D17E2C817B90CB + +Count = 1007 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C0D0E0F +CT = 21C34DA22BA44F0D47762C220C03DF7D6384BF3D42D13C68B08518198268F76FF0AF90011FEE6AA496E7680BF278 + +Count = 1008 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 60E01C596E0DB486FE9536E6948E0424B7A1F408A7595BD843BB0A6548D3C8E7882A80762F9558DB303C9569AEF2 + +Count = 1009 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 06AC984D5174501ED431ABC6A4C5BA069D16EADB80978FA23F2A2983F6A0562B6545AFA9564669CFACEB44D2B1EF + +Count = 1010 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = 2BD10B5E808BA6343FDCA7699046E493BF6CD063F9A10D6C93C57E4774B970CB460DC25958F0551DA95FF7F0828D + +Count = 1011 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = E524DCB91A2460DA6B663C08590C5EE857DD18C1FF82DD44DD090B2CBF1615BC1E08C3FEC10EA570B286713C2FF6 + +Count = 1012 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = 570CF9837BDD660D6D7D5D80013E120D2AA5474C563D8F2BE3A3462DC0B53A3A176ECCB1A75E4A7A66795FF312D0 + +Count = 1013 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = 6B8FB311EC5FF4C7D875D82B79BE3606A06B4E5ABDCA2D03C3FA01E4B1243542D050EAF1BD42B9E9CD0D26EBA1DA + +Count = 1014 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = EBF85FB14E180EF602F6FB10B7BB9117A98CF7BDB4B6B3AD40F921B3706E631526D69702F21E88B2D2E2A0023B77 + +Count = 1015 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = 80641D078A25C68979DE27378258F13048ED1ED0B79684B525D7DC25768F6BA276E2E5CC84D294C05A65B631C196 + +Count = 1016 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 766171856BDB401536179120E91D63FD63A4A92BBF4A28CDAA346D63349A9DC6D405942FE2132B74D23D6AC91CED + +Count = 1017 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = ECFB9908EFB8B36F48F5E53C1CE20FBFEE0ECFD48AA603C715A029910511EB1E3FC514EC8324B26FB123684DE3A6 + +Count = 1018 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = A9280475A07B70E0225932E818116011EDF1BE192CBB87F6D6194206E7610A6BE040797DE46F553B1A7FB02E4582 + +Count = 1019 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 485279BFF3AF11933AD571C8779FCF886B7D406827D971769524004CF62A4C3DEC6390C4FBA05CB310C0182B5617 + +Count = 1020 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = 607D49812DED10925D460CB3F876C92A45A6EC56201FD8770A27DF9BF320BF1BFC0C103398189EEFF43914201386 + +Count = 1021 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = D6378D14869DAE9275829D767881E7B85AFD7B40865CF0E2D158810E0F6467FDDF50063BEC5F8B8B893690F41884 + +Count = 1022 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = A96BAF0958F0AAB33A88E49FA31C6A1E65F958BBE5794D07A6E16AFCFC7D293D68596AF2EC0974A6EA47D2388E41 + +Count = 1023 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 362C887DC0294C1AB9A61AC6159A460F9717D6B3843C87C465AD982A0CBA810DC64A14CCCC376DF1729CF73C9D1C + +Count = 1024 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = +CT = 21CA6F37BB154D7E026D906ABBC087040B0B397D5370C947C992EFC1129A2416B03A46FC45D80A770E68CD787A26EB + +Count = 1025 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 00 +CT = 68A6ED4B17F9B3AADBC2793F64940F1FDAA2A4268ADC530C00D0BF9A92A1B175C528CB949FFD846A85399ED6F439DC + +Count = 1026 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 0001 +CT = AEEB0323FEBF2957096CD6EEFBE51DD791C2226B6166D8E5BA96452AADDCCB01DDAFBA3DBD482E1FAFD5C1907653E8 + +Count = 1027 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102 +CT = 0B78AB33D8B79CF1B3B159AF07F92AF3110D26A1F581DF92D893CE6F9028438FDC5BA205084794F2A0491FF91D0396 + +Count = 1028 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 00010203 +CT = B945525A7C05CE22E72337B93D299038D8B78F3ED2BB9B92E4E0734F610BA716B2506C00127BC589A08E22235986FB + +Count = 1029 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 0001020304 +CT = 576F137D98007679D7BC363102A5CABA783A05B0959A6F141647340A99F5C8CE902B7E0DEC280CA87E5B6A6E19A076 + +Count = 1030 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405 +CT = 71556EE5E93BEAE81A59373A60BE143A323E8638728196B3F9009E40E4FD823DBC6E05588AF298AA1A80D92C61D1D8 + +Count = 1031 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 00010203040506 +CT = 4925148ABB8ED25ABFCE68A650753538E82629401938D76D66AF429DD3E2AA4A9FD17C6E94EAE06DD095ECDA932857 + +Count = 1032 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 0001020304050607 +CT = 1C4A2E31025727D7667E08890542ECBE7BD0140AF96581020691F462228118CF89C9EB41CD5B625F8E0FF537D86992 + +Count = 1033 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708 +CT = 626311BA7656065064B5CC72711D51DAD8CF88484FCA0DD7DF7981007118EEB2DF91A9DB5A9D14FA34B592FA7A4A84 + +Count = 1034 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 00010203040506070809 +CT = 03DC988E1689BF89DF08585DDDC45997BC6CEB760DF69D74EAD73573A88825AC52B970CE3F6C7143A84DBF6B29EFA0 + +Count = 1035 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A +CT = 3E9C01A34E4A3D8C34864E5070C681F62E309B46610E98C3108C073D66315F002929670232B5EA4412B562AA9B0473 + +Count = 1036 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B +CT = D177F79543B35217B3D9CDF3F9035DA8D331AE4D56BA6E8F2F90F764E163BC3940FDAD2CE19F2D7C5F967BFE277249 + +Count = 1037 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C +CT = A2FF008898B8B6374B03C568E5E9F7EB7949068A31E5B6B2E0161E133037ED927BF30DD19D858C89901A049F791F26 + +Count = 1038 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C0D +CT = D15A167870C586C0448F2971D951DF7618D26361EB6E4F05BBB653BF3F045859443FA80C5C4F2603E22620714AEC7C + +Count = 1039 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C0D0E +CT = 9E279D789E13F5308C068FE5370F29A58A49B20D626FC7EFE1B4EFAF1AE659DA4D3769BC273ACE43028CE693A58DD1 + +Count = 1040 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C0D0E0F +CT = C1FC616EE2E0A81CF28D5CDA6819421802A21BFDA53BB69332D6850FB024840FCA7602ED4647A5E18A29A3DF3CBBEB + +Count = 1041 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 8AFC99A8113A13281FF65171526F3E41FA81E14E9DF199F81E833A3CBE0F36DE7B043CB4763F6ED995D32E93110B04 + +Count = 1042 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 34E4AD0F2E9F7CA8105B2AC84D30D2475B3BBE677DA4805F9E3045EC322A67B49038093245DE79F925DEF78AE48565 + +Count = 1043 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = 9D30F6D39F4A574C118BB6AAAF211EEE17358D42CAA1F272F8ECCE3C1D605B2576539F6025956409A63A7BCE6C69FB + +Count = 1044 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 8029BA300627DB6CCF0D476EF80DA7C1CAE3D4A540D42FDFB2BDFE181173E24EB232916918C468E77D8CDF5A355BC8 + +Count = 1045 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = 6B11ED467E765372422494A17F2B2CA5EED4D27074FCB4E8F0945BEE1A1A8CA2923C9C770E58EB7F0948ACC95CF2B8 + +Count = 1046 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = 76CE040045F63D39E4F5542895166D0628B6BC78C7954C49682FF169AF9E8CC6C7274889799D20A58744140BABDF5F + +Count = 1047 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 9C09A5EDE71B70B3152F0602F380123B672547493BC8505C5EF887B784F64DC9ADA170B6D09119A0314FDA9B5683BE + +Count = 1048 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = 44581FCB81AA304414F3F0367064D4953EEEA0C1CDDC1ECF10D50E5D30BB4B27EDDAE19B8DE0973ABE233B15BCD5E8 + +Count = 1049 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 1430E3C2297A26D8D01A15A4051BADF7E8EC558BE90E94D70D3832DCC8A4AF19531C567FE9B0C1A3C4543D0C4EF08B + +Count = 1050 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = 12C946F3200ECA70616B998BDB02956FC00BC6E343BF86154E672D9C05D160911B8BB856A06BC6DBBF6EFA06070EE7 + +Count = 1051 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 26BF6BE335B926B61F27A8158E76022586FC9400F01BE884B3F9AFCDF6FD84D78C586941AFE1FB0BB744732436EA0F + +Count = 1052 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 52FF5C7AF6E8694398E92AFDC006C7D6D2BEEF4F68F5F3937346DFF368C4D0BFCD04F24F1374BA3D0F094899308FB7 + +Count = 1053 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = 3FD11441EF0BD043159B47481DB7F27A8AEC1B87940653019573F572BFB2C877B1B505BFDB296360AB63ECB0C25E3E + +Count = 1054 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = DAE9F800ABEEB3E031B1A59E2835DD8CF503793CC52836EBBB02B2BAE0944662C378E65D30B0856284F75EF95ADA22 + +Count = 1055 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = EEFCE4606D171C259CDB03050D7B65A506765F7C8270CD617A10D5660AAEF90FBC848B80E8B80F136AD4E5C7F0F907 + +Count = 1056 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = DDADE35C4F491EA5211AC89B9A0F7AFD26384210AC75EB12D68C1F81BBEA0598FA9EB289D5433AE798F033ADF54C7B + +Count = 1057 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = +CT = 269B387698DB3AEB5834F3F2C1DE83454C8238DD576CD9DEA705E28241B351B28827ED9F467C9991AEEE03ECB6A2C3CB + +Count = 1058 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 00 +CT = EAD315B2D324E289677485C3F6A6D0405FCAD88588E516F49B0FE47DE31946F127937378DE7808C7432F85A0CEDB9273 + +Count = 1059 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 0001 +CT = 725C83FF5515FB4D0756E6C1C7CBAE365BDDE798ECA7D873928851B5A30DE736F2FCC3DD4036510F44DF47D6C8A27ABB + +Count = 1060 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102 +CT = D0C5E2C34726C0D2201C5FA8FBF705F3C7370CF90DAC7FEDF4EC7FF7D1CA8EE0FC9E70D68DAC5315CDE9573CFBDA9679 + +Count = 1061 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 00010203 +CT = 14047544BAE9F828BCC91D6AFDB312E8589D510AC09F0CBD0A6BCBF9430FE1B6BB7635E97AB5FC9DDB196FE54D471C81 + +Count = 1062 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 0001020304 +CT = 64B1026D7E185953040681A1EDB8A806F9EBAA02668C532A470A8F6494B16193AEB4288A03446B5CC99FE9B9E21B9DE8 + +Count = 1063 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405 +CT = 99853FBF13858B144AE6C5E3BEC088E007A836519C9B1E2389F642F647E1C7E6D774C917DE166F8AFD43B1A0F80017EE + +Count = 1064 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 00010203040506 +CT = DFB799E528ADA443887430A7922D5B6CD9D4F9F3FAD3261943E761530D22F460DA6D09B6013D34E69373045CE7A5671B + +Count = 1065 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 0001020304050607 +CT = 90045D07C1D022972AD3147C4B52789608D2A18D8F76FC17848F1B53F4E6331E56C220307758107A0C9A3961DA5624F7 + +Count = 1066 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708 +CT = A4AB228F2C6788CD355511B9B388F869B67FF58BA7E9B9DC1EEBFE4EAE423FB188A59BD86240B425B3EC4FE3647D7E5D + +Count = 1067 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 00010203040506070809 +CT = 02AC4C07305B0EFAC86B381CEFE3AF7E760688C9DAE907C3B00E528F751020A86188D3EEC8F867D068224710AA194A18 + +Count = 1068 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A +CT = 78D575CAF392C46F3C47DE4416DC6A7E55CCAF4A3B2B8C6A3F1D500C63AC8149D257D6CFCED108D03AC6A30AA472F6A2 + +Count = 1069 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B +CT = 790F73238262A96E988F62844074E7C410D040716C8D98F5549CE81BC52BB5224D3ECB5FF819E9C3BE8E4990D15BF0AC + +Count = 1070 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C +CT = BBF77C26F4E8E065DB866CE0FF36EFCA5B04550AC5B53E63561FD80844A9E429FDDA22FFB3EFB2512E5DCFEB786B2ADA + +Count = 1071 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C0D +CT = 980B8AB60388A16A3A69CFA998690145E1AE8A923651FFC054B04111A59EAFC77091C25D7568311901533CF0267CCB92 + +Count = 1072 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C0D0E +CT = 7EA219FC1EC690ECF114946BCEB829CBA906AECB31844E8378590D9A5AACFCAACA4CB50EB8009BC5C390DB5C228C64C6 + +Count = 1073 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C0D0E0F +CT = 8593CCC4BC7A9D46ABB39FC65E106EF9BDD5A563E6C5A87D80CB2B6E5B27EC31D46456633AA2747564DAACA38C1CE77E + +Count = 1074 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C0D0E0F10 +CT = EF0984578B94C5ECD2FA775E16B40FE6B639550C1230D9B76EEA09BAE01F911BC6DB0D71EB49673D4BFF772C45AF69A8 + +Count = 1075 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 8840664F43D56B1DF962FED7AF42A2BB99FF055E785A962AD102F044E89048D3BABFC8792839AA8988A4810A80F11647 + +Count = 1076 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = 28AD9854D6EAA221DCF44B4201E9177D40EBA2B43FFECD1BC9D3043A019060C2A98663C3C7C8FA91F0561DCA092BFD9B + +Count = 1077 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 210B7B5A3F3FD0DF07754678DA7D5CF22C006C1D26A22FB09CC7DA37FEB4B91503A7B1F73E32FCCA923CCBD758A6039C + +Count = 1078 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = 7591ABC77C77AAAE3BB7F5F17B5BAC7FC880A8FD7E4BF37DAB8AC2542694D07C36A0CA9090F64799333CE58FBD72A0B9 + +Count = 1079 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = A7C94AE4873A8E9A6E0FE4984B530D28CF23B852060748E815C41492F9E3141B8D3B22E2788E0ABD4EA1E233D8F5D10A + +Count = 1080 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 928B502448B50B36EDB144B354C8936B28773726EE7BA8ACB825413A24D2377203546EC998D0E08391E1C70EAB316944 + +Count = 1081 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = 26B55733177CDF2AD3D1947790DE280AAB1F308FDF3B142D65693F9A6528D05AE4621097C2568F29CC4FE258B1B72D73 + +Count = 1082 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = BC208995AFB0B32ABEA38E4FBDC5BA3540BAE235A81AC71FD8D70D76437CD703BAEE85E73C1C522C3E73D7D3533B1014 + +Count = 1083 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = 25BFD80B0E4B2756EE80AC9D92CE2D65135190432A6DC9CF287699811B360717967F3F57D159AA1850B35A0D17D52E91 + +Count = 1084 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 2795204CE2873268B293EB399D512C6041143B7D934CC402827E07FD4C635AAE3F520EF0C441AC7BA154CEA01598EACB + +Count = 1085 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 2CFADB46345316C111A9240F1560FAB118A0AC50728E4B2E82F821B249CA7B33EFE89A6C66CA165131745FFDF0478675 + +Count = 1086 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = 996D03D3DD3044B7D62E25B9D260B7C3F21D55AEFA6A03429971DD8536FDAE9DE35FCC2AB35F0916805911F88AA91CC1 + +Count = 1087 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = EBB40147A90815385DE13786933ADD34E3FD2B2B47CFBCE2C3339958E25D1EC1C2085E1E47F0B52246F411C8D542C2F1 + +Count = 1088 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = 43B9AD80477CC9B330478EA3B68B6856374818F1BBBAEA0D0A921705A9C5DAE7C789D78086F8AF354A6BB3CD10E31709 + +Count = 1089 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = B4167368927AA01AEDF0AA814B8EFD8C06BEE7C5123EF3D300CF1C92D1408911769FD5F550EB784583D5F651558A46E9 + diff --git a/romulus/Implementations/crypto_aead/romulusm2/ref/api.h b/romulus/Implementations/crypto_aead/romulusm2/ref/api.h new file mode 100644 index 0000000..969c338 --- /dev/null +++ b/romulus/Implementations/crypto_aead/romulusm2/ref/api.h @@ -0,0 +1,5 @@ +#define CRYPTO_KEYBYTES 16 +#define CRYPTO_NSECBYTES 0 +#define CRYPTO_NPUBBYTES 12 +#define CRYPTO_ABYTES 16 +#define CRYPTO_NOOVERLAP 1 diff --git a/romulus/Implementations/crypto_aead/romulusm2/ref/encrypt.c b/romulus/Implementations/crypto_aead/romulusm2/ref/encrypt.c new file mode 100644 index 0000000..d6be34c --- /dev/null +++ b/romulus/Implementations/crypto_aead/romulusm2/ref/encrypt.c @@ -0,0 +1,859 @@ +/* + * Date: 29 November 2018 + * Contact: Thomas Peyrin - thomas.peyrin@gmail.com + * Mustafa Khairallah - mustafam001@e.ntu.edu.sg + */ + +#include "crypto_aead.h" +#include "api.h" +#include "variant.h" +#include "skinny.h" +#include +#include + +/*void display_vector (const unsigned char* x, int lenx) { + int i; + + for (i = 0; i < lenx; i++) { + //printf("%02x",x[i]); + } + //printf("\n"); + + }*/ + + +void pad (const unsigned char* m, unsigned char* mp, int l, int len8) { + int i; + + for (i = 0; i < l; i++) { + if (i < len8) { + mp[i] = m[i]; + } + else if (i == l - 1) { + mp[i] = (len8 & 0x0f); + } + else { + mp[i] = 0x00; + } + } + +} + +void g8A (unsigned char* s, unsigned char* c) { + int i; + + for (i = 0; i < 16; i++) { + c[i] = (s[i] >> 1) ^ (s[i] & 0x80) ^ ((s[i] & 0x01) << 7); + } + +} + +void rho_ad (const unsigned char* m, + unsigned char* s, + int len8, + int ver) { + int i; + unsigned char mp [16]; + + //printf("rho in m = ");display_vector(m,len8); + pad(m,mp,ver,len8); + //printf("rho in mp = ");display_vector(mp,16); + //printf("rho in s = ");display_vector(s,16); + for (i = 0; i < ver; i++) { + s[i] = s[i] ^ mp[i]; + } + //printf("rho out s = ");display_vector(s,16); + +} + +void rho (const unsigned char* m, + unsigned char* c, + unsigned char* s, + int len8, + int ver) { + int i; + unsigned char mp [16]; + + //printf("rho in m = ");display_vector(m,len8); + pad(m,mp,ver,len8); + //printf("rho in mp = ");display_vector(mp,16); + //printf("rho in s = ");display_vector(s,16); + + g8A(s,c); + for (i = 0; i < ver; i++) { + s[i] = s[i] ^ mp[i]; + if (i < len8) { + c[i] = c[i] ^ mp[i]; + } + else { + c[i] = 0; + } + } + //printf("rho out s = ");display_vector(s,16); + //printf("rho out c = ");display_vector(c,16); + +} + +void irho (unsigned char* m, + const unsigned char* c, + unsigned char* s, + int len8, + int ver) { + int i; + unsigned char cp [16]; + + //printf("irho in c = ");display_vector(c,len8); + pad(c,cp,ver,len8); + //printf("irho in cp = ");display_vector(cp,16); + //printf("irho in s = ");display_vector(s,16); + + g8A(s,m); + for (i = 0; i < ver; i++) { + if (i < len8) { + s[i] = s[i] ^ cp[i] ^ m[i]; + } + else { + s[i] = s[i] ^ cp[i]; + } + if (i < len8) { + m[i] = m[i] ^ cp[i]; + } + else { + m[i] = 0; + } + } + //printf("irho out s = ");display_vector(s,16); + //printf("irho out m = ");display_vector(c,16); + +} + + +void reset_lfsr_gf24 (unsigned char* CNT) { + CNT[0] = 0x01; + CNT[1] = 0x00; + CNT[2] = 0x00; +} + +void lfsr_gf24 (unsigned char* CNT) { + unsigned char fb0; + + fb0 = CNT[2] >> 7; + + CNT[2] = (CNT[2] << 1) | (CNT[1] >> 7); + CNT[1] = (CNT[1] << 1) | (CNT[0] >> 7); + if (fb0 == 1) { + CNT[0] = (CNT[0] << 1) ^ 0x1b; + } + else { + CNT[0] = (CNT[0] << 1); + } +} + +void reset_dual_lfsr (unsigned char* CNT) { + reset_lfsr_gf24 (CNT); + reset_lfsr_gf24 (CNT+3); +} + +void dual_lfsr (unsigned char* CNT) { + lfsr_gf24(CNT); + if (CNT[0] == 0x01) { + if (CNT[1] == 0x00) { + if (CNT[2] == 0x00) { + lfsr_gf24(CNT+3); + } + } + } +} +void compose_tweakey (unsigned char* KT, + const unsigned char* K, + unsigned char* T, + unsigned char* CNT, + unsigned char D, + int t) { + + int i; + + for (i = 0; i < 3; i++) { + KT[i] = CNT[i]; + } + KT[i] = D; + for (i = 0; i < t; i++) { + KT[i+4] = T[i]; + } + for (i = 0; i < 16; i++) { + KT[i+4+t] = K[i]; + } + for (i = 0; i < 3; i++) { + KT[i+4+t+16] = CNT[i+3]; + } + for (i = 0; i < 13; i++) { + KT[i+4+t+16+3] = 0x00; + } + +} + +void block_cipher(unsigned char* s, + const unsigned char* k, unsigned char* T, + unsigned char* CNT, unsigned char D, int t, int n) { + unsigned char KT [48]; + + (void)n; + compose_tweakey(KT,k,T,CNT,D,t); + //printf("BC in kt = ");display_vector(KT,3*n); + //printf("BC in s = ");display_vector(s,n); + skinny_128_384_enc (s,KT); + //printf("BC out s = ");display_vector(s,n); + +} + +void nonce_encryption (const unsigned char* N, + unsigned char* CNT, + unsigned char*s, const unsigned char* k, + int t, int n, unsigned char D) { + unsigned char T [16]; + int i; + + for (i = 0; i < t; i++) { + T[i] = N[i]; + } + //printf("nonce cnt = ");display_vector(CNT,7); + block_cipher(s,k,T,CNT,D,t,n); + +} + +void generate_tag (unsigned char** c, unsigned char* s, + int n, unsigned long long* clen) { + + g8A(s, *c); + *c = *c + n; + *c = *c - *clen; + +} + +unsigned long long msg_encryption (const unsigned char** M, unsigned char** c, + const unsigned char* N, + unsigned char* CNT, + unsigned char*s, const unsigned char* k, + unsigned int n, unsigned int t, unsigned char D, + unsigned long long mlen) { + int len8; + + + if (mlen >= n) { + len8 = n; + mlen = mlen - n; + } + else { + len8 = mlen; + mlen = 0; + } + rho(*M, *c, s, len8, n); + *c = *c + len8; + *M = *M + len8; + dual_lfsr(CNT); + if (mlen != 0) { + nonce_encryption(N,CNT,s,k,t,n,D); + } + return mlen; +} + + + +unsigned long long msg_decryption (unsigned char** M, const unsigned char** c, + const unsigned char* N, + unsigned char* CNT, + unsigned char*s, const unsigned char* k, + unsigned int n, unsigned int t, unsigned char D, + unsigned long long clen) { + int len8; + + if (clen >= n) { + len8 = n; + clen = clen - n; + } + else { + len8 = clen; + clen = 0; + } + irho(*M, *c, s, len8, n); + *c = *c + len8; + *M = *M + len8; + dual_lfsr(CNT); + nonce_encryption(N,CNT,s,k,t,n,D); + return clen; +} + +unsigned long long ad2msg_encryption (const unsigned char** M, + unsigned char* CNT, + unsigned char*s, const unsigned char* k, + unsigned int t, unsigned int n, unsigned char D, + unsigned long long mlen) { + unsigned char T [16]; + int len8; + + if (mlen <= t) { + len8 = mlen; + mlen = 0; + } + else { + len8 = t; + mlen = mlen - t; + } + + pad (*M,T,t,len8); + //printf("ad2msg nonce cnt = ");display_vector(CNT,7); + block_cipher(s,k,T,CNT,D,t,n); + dual_lfsr(CNT); + *M = *M + len8; + + return mlen; + +} + + +unsigned long long ad_encryption (const unsigned char** A, unsigned char* s, + const unsigned char* k, unsigned long long adlen, + unsigned char* CNT, + unsigned char D, + unsigned int n, unsigned int t) { + + unsigned char T [16]; + int len8; + + if (adlen >= n) { + len8 = n; + adlen = adlen - n; + } + else { + len8 = adlen; + adlen = 0; + } + //printf("AD in = ");display_vector(*A,len8); + rho_ad(*A, s, len8, n); + *A = *A + len8; + dual_lfsr(CNT); + //printf("AD cnt = ");display_vector(CNT,7); + if (adlen != 0) { + if (adlen >= t) { + len8 = t; + adlen = adlen - t; + } + else { + len8 = adlen; + adlen = 0; + } + pad(*A, T, t, len8); + *A = *A + len8; + block_cipher(s,k,T,CNT,D,t,n); + dual_lfsr(CNT); + } + + return adlen; +} + +int crypto_aead_encrypt ( + unsigned char* c, unsigned long long* clen, + const unsigned char* m, unsigned long long mlen, + const unsigned char* ad, unsigned long long adlen, + const unsigned char* nsec, + const unsigned char* npub, + const unsigned char* k + ) +{ + unsigned char s[16]; + unsigned char CNT[7]; + unsigned char T[16]; + const unsigned char* N; + unsigned int n, t, i; + unsigned char w; + unsigned long long xlen; + + (void)nsec; + N = npub; + + n = AD_BLK_LEN_ODD; + t = AD_BLK_LEN_EVN; + + xlen = mlen; + + for (i = 0; i < n; i++) { + s[i] = 0; + } + reset_dual_lfsr(CNT); + //printf("s = ");display_vector(s,16); + //printf("cnt = ");display_vector(CNT,7); + + w = 112; + + if (adlen == 0) { + w = w ^ 2; + if (xlen == 0) { + w =w ^ 1; + } + else if (xlen%(n+t) == 0) { + w = w ^ 4; + } + else if (xlen%(n+t) < t) { + w = w ^ 1; + } + else if (xlen%(n+t) == t) { + w = w ^ 0; + } + else { + w = w ^ 5; + } + } + else if (adlen%(n+t) == 0) { + w = w ^ 8; + if (xlen == 0) { + w =w ^ 1; + } + else if (xlen%(n+t) == 0) { + w = w ^ 4; + } + else if (xlen%(n+t) < n) { + w = w ^ 1; + } + else if (xlen%(n+t) == n) { + w = w ^ 0; + } + else { + w = w ^ 5; + } + } + else if (adlen%(n+t) < n) { + w = w ^ 2; + if (xlen == 0) { + w =w ^ 1; + } + else if (xlen%(n+t) == 0) { + w = w ^ 4; + } + else if (xlen%(n+t) < t) { + w = w ^ 1; + } + else if (xlen%(n+t) == t) { + w = w ^ 0; + } + else { + w = w ^ 5; + } + } + else if (adlen%(n+t) == n) { + w = w ^ 0; + if (xlen == 0) { + w =w ^ 1; + } + else if (xlen%(n+t) == 0) { + w = w ^ 4; + } + else if (xlen%(n+t) < t) { + w = w ^ 1; + } + else if (xlen%(n+t) == t) { + w = w ^ 0; + } + else { + w = w ^ 5; + } + } + else { + w = w ^ 10; + if (xlen == 0) { + w =w ^ 1; + } + else if (xlen%(n+t) == 0) { + w = w ^ 4; + } + else if (xlen%(n+t) < n) { + w = w ^ 1; + } + else if (xlen%(n+t) == n) { + w = w ^ 0; + } + else { + w = w ^ 5; + } + } + + /* if (adlen%(n+t) == 0) { */ + /* w = w ^ 8; */ + /* if (xlen%(n+t) == 0) { */ + /* w = w ^ 4; */ + /* } */ + /* else if (xlen%(n+t) > n) { */ + /* w = w ^ 5; */ + /* } */ + /* else if (xlen%n == 0) { */ + /* w = w ^ 0; */ + /* } */ + /* else { */ + /* w = w ^ 1; */ + /* } */ + /* } */ + /* else if (adlen%(n+t) > n) { */ + /* w = w ^ 10; */ + /* if (xlen%(n+t) == 0) { */ + /* w = w ^ 4; */ + /* } */ + /* else if (xlen%(n+t) > n) { */ + /* w = w ^ 5; */ + /* } */ + /* else if (xlen%n == 0) { */ + /* w = w ^ 0; */ + /* } */ + /* else { */ + /* w = w ^ 1; */ + /* } */ + /* } */ + /* else if ((adlen+t)%(n+t) == 0) { */ + /* w = w ^ 0; */ + /* if (xlen%(n+t) == 0) { */ + /* w = w ^ 4; */ + /* } */ + /* else if (xlen%(n+t) > t) { */ + /* w = w ^ 5; */ + /* } */ + /* else if (xlen%t == 0) { */ + /* w = w ^ 0; */ + /* } */ + /* else { */ + /* w = w ^ 1; */ + /* } */ + /* } */ + /* else { */ + /* w = w ^ 2; */ + /* if (xlen%(n+t) == 0) { */ + /* w = w ^ 4; */ + /* } */ + /* else if (xlen%(n+t) > t) { */ + /* w = w ^ 5; */ + /* } */ + /* else if (xlen%t == 0) { */ + /* w = w ^ 0; */ + /* } */ + /* else { */ + /* w = w ^ 1; */ + /* } */ + /* } */ + + /* if (adlen == 0) { */ + /* w = w ^ 10; */ + /* } */ + + /* if (mlen == 0) { */ + /* w = w ^ 5; */ + /* } */ + + if (adlen == 0) { // AD is an empty string + dual_lfsr(CNT); + //xlen = ad2msg_encryption (&m,CNT,s,k,t,n,108,xlen); + } + else while (adlen > 0) { + adlen = ad_encryption(&ad,s,k,adlen,CNT,104,n,t); + } + + if ((w & 8) == 0) { + xlen = ad2msg_encryption (&m,CNT,s,k,t,n,108,xlen); + } + else if (mlen == 0) { + dual_lfsr(CNT); + } + while (xlen > 0) { + xlen = ad_encryption(&m,s,k,xlen,CNT,108,n,t); + } + nonce_encryption(N,CNT,s,k,t,n,w); + + + // Tag generation + g8A(s, T); + //printf("T = ");display_vector(T,n); + + m = m - mlen; + + reset_dual_lfsr(CNT); + + for (i = 0; i < n; i = i + 1) { + s[i] = T[i]; + } + + n = MSG_BLK_LEN; + *clen = mlen + n; + + + + if (mlen > 0) { + nonce_encryption(N,CNT,s,k,t,n,100); + while (mlen > n) { + mlen = msg_encryption(&m,&c,N,CNT,s,k,n,t,100,mlen); + } + rho(m, c, s, mlen, 16); + c = c + mlen; + m = m + mlen; + } + + // Tag Concatenation + for (i = 0; i < 16; i = i + 1) { + *(c + i) = T[i]; + } + + c = c - *clen; + + + + return 0; +} + +int crypto_aead_decrypt( +unsigned char *m,unsigned long long *mlen, +unsigned char *nsec, +const unsigned char *c,unsigned long long clen, +const unsigned char *ad,unsigned long long adlen, +const unsigned char *npub, +const unsigned char *k +) +{ + unsigned char s[16]; + unsigned char CNT[7]; + unsigned char T[16]; + const unsigned char* N; + unsigned int n, t, i; + unsigned char w; + unsigned long long xlen; + const unsigned char* mauth; + + (void)nsec; + mauth = m; + + N = npub; + + n = AD_BLK_LEN_ODD; + t = AD_BLK_LEN_EVN; + + xlen = clen-16; + + reset_dual_lfsr(CNT); + + for (i = 0; i < 16; i++) { + T[i] = *(c + clen - 16 + i); + } + + for (i = 0; i < n; i = i + 1) { + s[i] = T[i]; + } + + n = MSG_BLK_LEN; + clen = clen - 16; + *mlen = clen; + + + if (clen > 0) { + nonce_encryption(N,CNT,s,k,t,n,100); + while (clen > n) { + clen = msg_decryption(&m,&c,N,CNT,s,k,n,t,100,clen); + } + irho(m, c, s, clen, 16); + c = c + clen; + m = m + clen; + } + + + for (i = 0; i < n; i++) { + s[i] = 0; + } + reset_dual_lfsr(CNT); + //printf("s = ");display_vector(s,16); + //printf("cnt = ");display_vector(CNT,7); + + w = 112; + + if (adlen == 0) { + w = w ^ 2; + if (xlen == 0) { + w =w ^ 1; + } + else if (xlen%(n+t) == 0) { + w = w ^ 4; + } + else if (xlen%(n+t) < t) { + w = w ^ 1; + } + else if (xlen%(n+t) == t) { + w = w ^ 0; + } + else { + w = w ^ 5; + } + } + else if (adlen%(n+t) == 0) { + w = w ^ 8; + if (xlen == 0) { + w =w ^ 1; + } + else if (xlen%(n+t) == 0) { + w = w ^ 4; + } + else if (xlen%(n+t) < n) { + w = w ^ 1; + } + else if (xlen%(n+t) == n) { + w = w ^ 0; + } + else { + w = w ^ 5; + } + } + else if (adlen%(n+t) < n) { + w = w ^ 2; + if (xlen == 0) { + w =w ^ 1; + } + else if (xlen%(n+t) == 0) { + w = w ^ 4; + } + else if (xlen%(n+t) < t) { + w = w ^ 1; + } + else if (xlen%(n+t) == t) { + w = w ^ 0; + } + else { + w = w ^ 5; + } + } + else if (adlen%(n+t) == n) { + w = w ^ 0; + if (xlen == 0) { + w =w ^ 1; + } + else if (xlen%(n+t) == 0) { + w = w ^ 4; + } + else if (xlen%(n+t) < t) { + w = w ^ 1; + } + else if (xlen%(n+t) == t) { + w = w ^ 0; + } + else { + w = w ^ 5; + } + } + else { + w = w ^ 10; + if (xlen == 0) { + w =w ^ 1; + } + else if (xlen%(n+t) == 0) { + w = w ^ 4; + } + else if (xlen%(n+t) < n) { + w = w ^ 1; + } + else if (xlen%(n+t) == n) { + w = w ^ 0; + } + else { + w = w ^ 5; + } + } + /* if (adlen%(n+t) == 0) { */ + /* w = w ^ 8; */ + /* if (xlen%(n+t) == 0) { */ + /* w = w ^ 4; */ + /* } */ + /* else if (xlen%(n+t) > n) { */ + /* w = w ^ 5; */ + /* } */ + /* else if (xlen%n == 0) { */ + /* w = w ^ 0; */ + /* } */ + /* else { */ + /* w = w ^ 1; */ + /* } */ + /* } */ + /* else if (adlen%(n+t) > n) { */ + /* w = w ^ 10; */ + /* if (xlen%(n+t) == 0) { */ + /* w = w ^ 4; */ + /* } */ + /* else if (xlen%(n+t) > n) { */ + /* w = w ^ 5; */ + /* } */ + /* else if (xlen%n == 0) { */ + /* w = w ^ 0; */ + /* } */ + /* else { */ + /* w = w ^ 1; */ + /* } */ + /* } */ + /* else if ((adlen+t)%(n+t) == 0) { */ + /* w = w ^ 0; */ + /* if (xlen%(n+t) == 0) { */ + /* w = w ^ 4; */ + /* } */ + /* else if (xlen%(n+t) > t) { */ + /* w = w ^ 5; */ + /* } */ + /* else if (xlen%t == 0) { */ + /* w = w ^ 0; */ + /* } */ + /* else { */ + /* w = w ^ 1; */ + /* } */ + /* } */ + /* else { */ + /* w = w ^ 2; */ + /* if (xlen%(n+t) == 0) { */ + /* w = w ^ 4; */ + /* } */ + /* else if (xlen%(n+t) > t) { */ + /* w = w ^ 5; */ + /* } */ + /* else if (xlen%t == 0) { */ + /* w = w ^ 0; */ + /* } */ + /* else { */ + /* w = w ^ 1; */ + /* } */ + /* } */ + + /* if (adlen == 0) { */ + /* w = w ^ 10; */ + /* } */ + + /* if (clen == 0) { */ + /* w = w ^ 5; */ + /* } */ + + if (adlen == 0) { // AD is an empty string + dual_lfsr(CNT); + //xlen = ad2msg_encryption (&mauth,CNT,s,k,t,n,108,xlen); + } + else while (adlen > 0) { + adlen = ad_encryption(&ad,s,k,adlen,CNT,104,n,t); + } + + if ((w & 8) == 0) { + xlen = ad2msg_encryption (&mauth,CNT,s,k,t,n,108,xlen); + } + else if (clen == 0) { + dual_lfsr(CNT); + } + while (xlen > 0) { + xlen = ad_encryption(&mauth,s,k,xlen,CNT,108,n,t); + } + nonce_encryption(N,CNT,s,k,t,n,w); + + // Tag generation + g8A(s, T); + //printf("T = ");display_vector(T,16); + //printf("t = ");display_vector(c,16); + for (i = 0; i < 16; i++) { + if (T[i] != (*(c+i))) { + return -1; + } + } + + return 0; +} diff --git a/romulus/Implementations/crypto_aead/romulusm2/ref/genkat_aead.c b/romulus/Implementations/crypto_aead/romulusm2/ref/genkat_aead.c new file mode 100644 index 0000000..ecee146 --- /dev/null +++ b/romulus/Implementations/crypto_aead/romulusm2/ref/genkat_aead.c @@ -0,0 +1,163 @@ +// +// NIST-developed software is provided by NIST as a public service. +// You may use, copy and distribute copies of the software in any medium, +// provided that you keep intact this entire notice. You may improve, +// modify and create derivative works of the software or any portion of +// the software, and you may copy and distribute such modifications or +// works. Modified works should carry a notice stating that you changed +// the software and should note the date and nature of any such change. +// Please explicitly acknowledge the National Institute of Standards and +// Technology as the source of the software. +// +// NIST-developed software is expressly provided "AS IS." NIST MAKES NO +// WARRANTY OF ANY KIND, EXPRESS, IMPLIED, IN FACT OR ARISING BY OPERATION +// OF LAW, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTY OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT AND DATA ACCURACY. NIST +// NEITHER REPRESENTS NOR WARRANTS THAT THE OPERATION OF THE SOFTWARE WILL BE +// UNINTERRUPTED OR ERROR-FREE, OR THAT ANY DEFECTS WILL BE CORRECTED. NIST +// DOES NOT WARRANT OR MAKE ANY REPRESENTATIONS REGARDING THE USE OF THE SOFTWARE +// OR THE RESULTS THEREOF, INCLUDING BUT NOT LIMITED TO THE CORRECTNESS, ACCURACY, +// RELIABILITY, OR USEFULNESS OF THE SOFTWARE. +// +// You are solely responsible for determining the appropriateness of using and +// distributing the software and you assume all risks associated with its use, +// including but not limited to the risks and costs of program errors, compliance +// with applicable laws, damage to or loss of data, programs or equipment, and +// the unavailability or interruption of operation. This software is not intended +// to be used in any situation where a failure could cause risk of injury or +// damage to property. The software developed by NIST employees is not subject to +// copyright protection within the United States. +// + +// disable deprecation for sprintf and fopen +#ifdef _MSC_VER +#define _CRT_SECURE_NO_WARNINGS +#endif + +#include +#include + +#include "crypto_aead.h" +#include "api.h" + +#define KAT_SUCCESS 0 +#define KAT_FILE_OPEN_ERROR -1 +#define KAT_DATA_ERROR -3 +#define KAT_CRYPTO_FAILURE -4 + +#define MAX_FILE_NAME 256 +#define MAX_MESSAGE_LENGTH 32 +#define MAX_ASSOCIATED_DATA_LENGTH 32 + +void init_buffer(unsigned char *buffer, unsigned long long numbytes); + +void fprint_bstr(FILE *fp, const char *label, const unsigned char *data, unsigned long long length); + +int generate_test_vectors(); + +int main() +{ + int ret = generate_test_vectors(); + + if (ret != KAT_SUCCESS) { + fprintf(stderr, "test vector generation failed with code %d\n", ret); + } + + return ret; +} + +int generate_test_vectors() +{ + FILE *fp; + char fileName[MAX_FILE_NAME]; + unsigned char key[CRYPTO_KEYBYTES]; + unsigned char nonce[CRYPTO_NPUBBYTES]; + unsigned char msg[MAX_MESSAGE_LENGTH]; + unsigned char msg2[MAX_MESSAGE_LENGTH]; + unsigned char ad[MAX_ASSOCIATED_DATA_LENGTH]; + unsigned char ct[MAX_MESSAGE_LENGTH + CRYPTO_ABYTES]; + unsigned long long clen, mlen2; + int count = 1; + int func_ret, ret_val = KAT_SUCCESS; + + init_buffer(key, sizeof(key)); + init_buffer(nonce, sizeof(nonce)); + init_buffer(msg, sizeof(msg)); + init_buffer(ad, sizeof(ad)); + + sprintf(fileName, "LWC_AEAD_KAT_%d_%d.txt", (CRYPTO_KEYBYTES * 8), (CRYPTO_NPUBBYTES * 8)); + + if ((fp = fopen(fileName, "w")) == NULL) { + fprintf(stderr, "Couldn't open <%s> for write\n", fileName); + return KAT_FILE_OPEN_ERROR; + } + + for (unsigned long long mlen = 0; (mlen <= MAX_MESSAGE_LENGTH) && (ret_val == KAT_SUCCESS); mlen++) { + //for (unsigned long long mlen = 0; (mlen <= 32) && (ret_val == KAT_SUCCESS); mlen++) { + for (unsigned long long adlen = 0; adlen <= MAX_ASSOCIATED_DATA_LENGTH; adlen++) { + //for (unsigned long long adlen = 0; adlen <= 32; adlen++) { + + printf("%0d\n", (int)clen); + + fprintf(fp, "Count = %d\n", count++); + printf("Count = %d\n", count - 1); + + fprint_bstr(fp, "Key = ", key, CRYPTO_KEYBYTES); + + fprint_bstr(fp, "Nonce = ", nonce, CRYPTO_NPUBBYTES); + + fprint_bstr(fp, "PT = ", msg, mlen); + + fprint_bstr(fp, "AD = ", ad, adlen); + + if ((func_ret = crypto_aead_encrypt(ct, &clen, msg, mlen, ad, adlen, NULL, nonce, key)) != 0) { + fprintf(fp, "crypto_aead_encrypt returned <%d>\n", func_ret); + ret_val = KAT_CRYPTO_FAILURE; + break; + } + + fprint_bstr(fp, "CT = ", ct, clen); + + fprintf(fp, "\n"); + + if ((func_ret = crypto_aead_decrypt(msg2, &mlen2, NULL, ct, clen, ad, adlen, nonce, key)) != 0) { + fprintf(fp, "crypto_aead_decrypt returned <%d>\n", func_ret); + ret_val = KAT_CRYPTO_FAILURE; + break; + } + + if (mlen != mlen2) { + fprintf(fp, "crypto_aead_decrypt returned bad 'mlen': Got <%llu>, expected <%llu>\n", mlen2, mlen); + ret_val = KAT_CRYPTO_FAILURE; + break; + } + + if (memcmp(msg, msg2, mlen)) { + fprintf(fp, "crypto_aead_decrypt did not recover the plaintext\n"); + ret_val = KAT_CRYPTO_FAILURE; + break; + } + } + } + + fclose(fp); + + return ret_val; +} + + +void fprint_bstr(FILE *fp, const char *label, const unsigned char *data, unsigned long long length) +{ + fprintf(fp, "%s", label); + + for (unsigned long long i = 0; i < length; i++) + fprintf(fp, "%02X", data[i]); + + fprintf(fp, "\n"); +} + +void init_buffer(unsigned char *buffer, unsigned long long numbytes) +{ + for (unsigned long long i = 0; i < numbytes; i++) + buffer[i] = (unsigned char)i; +} diff --git a/romulus/Implementations/crypto_aead/romulusm2/ref/skinny.h b/romulus/Implementations/crypto_aead/romulusm2/ref/skinny.h new file mode 100644 index 0000000..70c4421 --- /dev/null +++ b/romulus/Implementations/crypto_aead/romulusm2/ref/skinny.h @@ -0,0 +1 @@ +extern void skinny_128_384_enc (unsigned char* input, const unsigned char* userkey); diff --git a/romulus/Implementations/crypto_aead/romulusm2/ref/skinny_reference.c b/romulus/Implementations/crypto_aead/romulusm2/ref/skinny_reference.c new file mode 100644 index 0000000..ec59a31 --- /dev/null +++ b/romulus/Implementations/crypto_aead/romulusm2/ref/skinny_reference.c @@ -0,0 +1,547 @@ +/* + * Date: 11 December 2015 + * Contact: Thomas Peyrin - thomas.peyrin@gmail.com + */ + +#include +#include +#include +#include +#include "skinny.h" + +#define DEBUG 0 + +// Table that encodes the parameters of the various Skinny versions: +// (block size, key size, number of rounds) +//Skinny-64-64: 32 rounds +//Skinny-64-128: 36 rounds +//Skinny-64-192: 40 rounds +//Skinny-128-128: 40 rounds +//Skinny-128-256: 48 rounds +//Skinny-128-384: 56 rounds +int versions[6][3]={{64,64,32},{64,128,36},{64,192,40},{128,128,40},{128,256,48},{128,384,56}}; + +// Packing of data is done as follows (state[i][j] stands for row i and column j): +// 0 1 2 3 +// 4 5 6 7 +// 8 9 10 11 +//12 13 14 15 + +// 4-bit Sbox +const unsigned char sbox_4[16] = {12,6,9,0,1,10,2,11,3,8,5,13,4,14,7,15}; +const unsigned char sbox_4_inv[16] = {3,4,6,8,12,10,1,14,9,2,5,7,0,11,13,15}; + +// 8-bit Sbox +const unsigned char sbox_8[256] = {0x65 , 0x4c , 0x6a , 0x42 , 0x4b , 0x63 , 0x43 , 0x6b , 0x55 , 0x75 , 0x5a , 0x7a , 0x53 , 0x73 , 0x5b , 0x7b ,0x35 , 0x8c , 0x3a , 0x81 , 0x89 , 0x33 , 0x80 , 0x3b , 0x95 , 0x25 , 0x98 , 0x2a , 0x90 , 0x23 , 0x99 , 0x2b ,0xe5 , 0xcc , 0xe8 , 0xc1 , 0xc9 , 0xe0 , 0xc0 , 0xe9 , 0xd5 , 0xf5 , 0xd8 , 0xf8 , 0xd0 , 0xf0 , 0xd9 , 0xf9 ,0xa5 , 0x1c , 0xa8 , 0x12 , 0x1b , 0xa0 , 0x13 , 0xa9 , 0x05 , 0xb5 , 0x0a , 0xb8 , 0x03 , 0xb0 , 0x0b , 0xb9 ,0x32 , 0x88 , 0x3c , 0x85 , 0x8d , 0x34 , 0x84 , 0x3d , 0x91 , 0x22 , 0x9c , 0x2c , 0x94 , 0x24 , 0x9d , 0x2d ,0x62 , 0x4a , 0x6c , 0x45 , 0x4d , 0x64 , 0x44 , 0x6d , 0x52 , 0x72 , 0x5c , 0x7c , 0x54 , 0x74 , 0x5d , 0x7d ,0xa1 , 0x1a , 0xac , 0x15 , 0x1d , 0xa4 , 0x14 , 0xad , 0x02 , 0xb1 , 0x0c , 0xbc , 0x04 , 0xb4 , 0x0d , 0xbd ,0xe1 , 0xc8 , 0xec , 0xc5 , 0xcd , 0xe4 , 0xc4 , 0xed , 0xd1 , 0xf1 , 0xdc , 0xfc , 0xd4 , 0xf4 , 0xdd , 0xfd ,0x36 , 0x8e , 0x38 , 0x82 , 0x8b , 0x30 , 0x83 , 0x39 , 0x96 , 0x26 , 0x9a , 0x28 , 0x93 , 0x20 , 0x9b , 0x29 ,0x66 , 0x4e , 0x68 , 0x41 , 0x49 , 0x60 , 0x40 , 0x69 , 0x56 , 0x76 , 0x58 , 0x78 , 0x50 , 0x70 , 0x59 , 0x79 ,0xa6 , 0x1e , 0xaa , 0x11 , 0x19 , 0xa3 , 0x10 , 0xab , 0x06 , 0xb6 , 0x08 , 0xba , 0x00 , 0xb3 , 0x09 , 0xbb ,0xe6 , 0xce , 0xea , 0xc2 , 0xcb , 0xe3 , 0xc3 , 0xeb , 0xd6 , 0xf6 , 0xda , 0xfa , 0xd3 , 0xf3 , 0xdb , 0xfb ,0x31 , 0x8a , 0x3e , 0x86 , 0x8f , 0x37 , 0x87 , 0x3f , 0x92 , 0x21 , 0x9e , 0x2e , 0x97 , 0x27 , 0x9f , 0x2f ,0x61 , 0x48 , 0x6e , 0x46 , 0x4f , 0x67 , 0x47 , 0x6f , 0x51 , 0x71 , 0x5e , 0x7e , 0x57 , 0x77 , 0x5f , 0x7f ,0xa2 , 0x18 , 0xae , 0x16 , 0x1f , 0xa7 , 0x17 , 0xaf , 0x01 , 0xb2 , 0x0e , 0xbe , 0x07 , 0xb7 , 0x0f , 0xbf ,0xe2 , 0xca , 0xee , 0xc6 , 0xcf ,0xe7 , 0xc7 , 0xef , 0xd2 , 0xf2 , 0xde , 0xfe , 0xd7 , 0xf7 , 0xdf , 0xff}; +const unsigned char sbox_8_inv[256] = {0xac , 0xe8 , 0x68 , 0x3c , 0x6c , 0x38 , 0xa8 , 0xec , 0xaa , 0xae , 0x3a , 0x3e , 0x6a , 0x6e , 0xea , 0xee ,0xa6 , 0xa3 , 0x33 , 0x36 , 0x66 , 0x63 , 0xe3 , 0xe6 , 0xe1 , 0xa4 , 0x61 , 0x34 , 0x31 , 0x64 , 0xa1 , 0xe4 ,0x8d , 0xc9 , 0x49 , 0x1d , 0x4d , 0x19 , 0x89 , 0xcd , 0x8b , 0x8f , 0x1b , 0x1f , 0x4b , 0x4f , 0xcb , 0xcf ,0x85 , 0xc0 , 0x40 , 0x15 , 0x45 , 0x10 , 0x80 , 0xc5 , 0x82 , 0x87 , 0x12 , 0x17 , 0x42 , 0x47 , 0xc2 , 0xc7 ,0x96 , 0x93 , 0x03 , 0x06 , 0x56 , 0x53 , 0xd3 , 0xd6 , 0xd1 , 0x94 , 0x51 , 0x04 , 0x01 , 0x54 , 0x91 , 0xd4 ,0x9c , 0xd8 , 0x58 , 0x0c , 0x5c , 0x08 , 0x98 , 0xdc , 0x9a , 0x9e , 0x0a , 0x0e , 0x5a , 0x5e , 0xda , 0xde ,0x95 , 0xd0 , 0x50 , 0x05 , 0x55 , 0x00 , 0x90 , 0xd5 , 0x92 , 0x97 , 0x02 , 0x07 , 0x52 , 0x57 , 0xd2 , 0xd7 ,0x9d , 0xd9 , 0x59 , 0x0d , 0x5d , 0x09 , 0x99 , 0xdd , 0x9b , 0x9f , 0x0b , 0x0f , 0x5b , 0x5f , 0xdb , 0xdf ,0x16 , 0x13 , 0x83 , 0x86 , 0x46 , 0x43 , 0xc3 , 0xc6 , 0x41 , 0x14 , 0xc1 , 0x84 , 0x11 , 0x44 , 0x81 , 0xc4 ,0x1c , 0x48 , 0xc8 , 0x8c , 0x4c , 0x18 , 0x88 , 0xcc , 0x1a , 0x1e , 0x8a , 0x8e , 0x4a , 0x4e , 0xca , 0xce ,0x35 , 0x60 , 0xe0 , 0xa5 , 0x65 , 0x30 , 0xa0 , 0xe5 , 0x32 , 0x37 , 0xa2 , 0xa7 , 0x62 , 0x67 , 0xe2 , 0xe7 ,0x3d , 0x69 , 0xe9 , 0xad , 0x6d , 0x39 , 0xa9 , 0xed , 0x3b , 0x3f , 0xab , 0xaf , 0x6b , 0x6f , 0xeb , 0xef ,0x26 , 0x23 , 0xb3 , 0xb6 , 0x76 , 0x73 , 0xf3 , 0xf6 , 0x71 , 0x24 , 0xf1 , 0xb4 , 0x21 , 0x74 , 0xb1 , 0xf4 ,0x2c , 0x78 , 0xf8 , 0xbc , 0x7c , 0x28 , 0xb8 , 0xfc , 0x2a , 0x2e , 0xba , 0xbe , 0x7a , 0x7e , 0xfa , 0xfe ,0x25 , 0x70 , 0xf0 , 0xb5 , 0x75 , 0x20 , 0xb0 , 0xf5 , 0x22 , 0x27 , 0xb2 , 0xb7 , 0x72 , 0x77 , 0xf2 , 0xf7 ,0x2d , 0x79 , 0xf9 , 0xbd , 0x7d , 0x29 , 0xb9 , 0xfd , 0x2b , 0x2f , 0xbb , 0xbf , 0x7b , 0x7f , 0xfb , 0xff}; + +// ShiftAndSwitchRows permutation +const unsigned char P[16] = {0,1,2,3,7,4,5,6,10,11,8,9,13,14,15,12}; +const unsigned char P_inv[16] = {0,1,2,3,5,6,7,4,10,11,8,9,15,12,13,14}; + +// Tweakey permutation +const unsigned char TWEAKEY_P[16] = {9,15,8,13,10,14,12,11,0,1,2,3,4,5,6,7}; +const unsigned char TWEAKEY_P_inv[16] = {8,9,10,11,12,13,14,15,2,0,4,7,6,3,5,1}; + +// round constants +const unsigned char RC[62] = { + 0x01, 0x03, 0x07, 0x0F, 0x1F, 0x3E, 0x3D, 0x3B, 0x37, 0x2F, + 0x1E, 0x3C, 0x39, 0x33, 0x27, 0x0E, 0x1D, 0x3A, 0x35, 0x2B, + 0x16, 0x2C, 0x18, 0x30, 0x21, 0x02, 0x05, 0x0B, 0x17, 0x2E, + 0x1C, 0x38, 0x31, 0x23, 0x06, 0x0D, 0x1B, 0x36, 0x2D, 0x1A, + 0x34, 0x29, 0x12, 0x24, 0x08, 0x11, 0x22, 0x04, 0x09, 0x13, + 0x26, 0x0c, 0x19, 0x32, 0x25, 0x0a, 0x15, 0x2a, 0x14, 0x28, + 0x10, 0x20}; + +FILE* fic; + + +// Extract and apply the subtweakey to the internal state (must be the two top rows XORed together), then update the tweakey state +void AddKey(unsigned char state[4][4], unsigned char keyCells[3][4][4], int ver) +{ + int i, j, k; + unsigned char pos; + unsigned char keyCells_tmp[3][4][4]; + + // apply the subtweakey to the internal state + for(i = 0; i <= 1; i++) + { + for(j = 0; j < 4; j++) + { + state[i][j] ^= keyCells[0][i][j]; + if (2*versions[ver][0]==versions[ver][1]) + state[i][j] ^= keyCells[1][i][j]; + else if (3*versions[ver][0]==versions[ver][1]) + state[i][j] ^= keyCells[1][i][j] ^ keyCells[2][i][j]; + } + } + + // update the subtweakey states with the permutation + for(k = 0; k <(int)(versions[ver][1]/versions[ver][0]); k++){ + for(i = 0; i < 4; i++){ + for(j = 0; j < 4; j++){ + //application of the TWEAKEY permutation + pos=TWEAKEY_P[j+4*i]; + keyCells_tmp[k][i][j]=keyCells[k][pos>>2][pos&0x3]; + } + } + } + + // update the subtweakey states with the LFSRs + for(k = 0; k <(int)(versions[ver][1]/versions[ver][0]); k++){ + for(i = 0; i <= 1; i++){ + for(j = 0; j < 4; j++){ + //application of LFSRs for TK updates + if (k==1) + { + if (versions[ver][0]==64) + keyCells_tmp[k][i][j]=((keyCells_tmp[k][i][j]<<1)&0xE)^((keyCells_tmp[k][i][j]>>3)&0x1)^((keyCells_tmp[k][i][j]>>2)&0x1); + else + keyCells_tmp[k][i][j]=((keyCells_tmp[k][i][j]<<1)&0xFE)^((keyCells_tmp[k][i][j]>>7)&0x01)^((keyCells_tmp[k][i][j]>>5)&0x01); + } + else if (k==2) + { + if (versions[ver][0]==64) + keyCells_tmp[k][i][j]=((keyCells_tmp[k][i][j]>>1)&0x7)^((keyCells_tmp[k][i][j])&0x8)^((keyCells_tmp[k][i][j]<<3)&0x8); + else + keyCells_tmp[k][i][j]=((keyCells_tmp[k][i][j]>>1)&0x7F)^((keyCells_tmp[k][i][j]<<7)&0x80)^((keyCells_tmp[k][i][j]<<1)&0x80); + } + } + } + } + + for(k = 0; k <(int)(versions[ver][1]/versions[ver][0]); k++){ + for(i = 0; i < 4; i++){ + for(j = 0; j < 4; j++){ + keyCells[k][i][j]=keyCells_tmp[k][i][j]; + } + } + } +} + + +// Extract and apply the subtweakey to the internal state (must be the two top rows XORed together), then update the tweakey state (inverse function} +void AddKey_inv(unsigned char state[4][4], unsigned char keyCells[3][4][4], int ver) +{ + int i, j, k; + unsigned char pos; + unsigned char keyCells_tmp[3][4][4]; + + // update the subtweakey states with the permutation + for(k = 0; k <(int)(versions[ver][1]/versions[ver][0]); k++){ + for(i = 0; i < 4; i++){ + for(j = 0; j < 4; j++){ + //application of the inverse TWEAKEY permutation + pos=TWEAKEY_P_inv[j+4*i]; + keyCells_tmp[k][i][j]=keyCells[k][pos>>2][pos&0x3]; + } + } + } + + // update the subtweakey states with the LFSRs + for(k = 0; k <(int)(versions[ver][1]/versions[ver][0]); k++){ + for(i = 2; i <= 3; i++){ + for(j = 0; j < 4; j++){ + //application of inverse LFSRs for TK updates + if (k==1) + { + if (versions[ver][0]==64) + keyCells_tmp[k][i][j]=((keyCells_tmp[k][i][j]>>1)&0x7)^((keyCells_tmp[k][i][j]<<3)&0x8)^((keyCells_tmp[k][i][j])&0x8); + else + keyCells_tmp[k][i][j]=((keyCells_tmp[k][i][j]>>1)&0x7F)^((keyCells_tmp[k][i][j]<<7)&0x80)^((keyCells_tmp[k][i][j]<<1)&0x80); + } + else if (k==2) + { + if (versions[ver][0]==64) + keyCells_tmp[k][i][j]=((keyCells_tmp[k][i][j]<<1)&0xE)^((keyCells_tmp[k][i][j]>>3)&0x1)^((keyCells_tmp[k][i][j]>>2)&0x1); + else + keyCells_tmp[k][i][j]=((keyCells_tmp[k][i][j]<<1)&0xFE)^((keyCells_tmp[k][i][j]>>7)&0x01)^((keyCells_tmp[k][i][j]>>5)&0x01); + } + } + } + } + + for(k = 0; k <(int)(versions[ver][1]/versions[ver][0]); k++){ + for(i = 0; i < 4; i++){ + for(j = 0; j < 4; j++){ + keyCells[k][i][j]=keyCells_tmp[k][i][j]; + } + } + } + + + // apply the subtweakey to the internal state + for(i = 0; i <= 1; i++) + { + for(j = 0; j < 4; j++) + { + state[i][j] ^= keyCells[0][i][j]; + if (2*versions[ver][0]==versions[ver][1]) + state[i][j] ^= keyCells[1][i][j]; + else if (3*versions[ver][0]==versions[ver][1]) + state[i][j] ^= keyCells[1][i][j] ^ keyCells[2][i][j]; + } + } +} + + +// Apply the constants: using a LFSR counter on 6 bits, we XOR the 6 bits to the first 6 bits of the internal state +void AddConstants(unsigned char state[4][4], int r) +{ + state[0][0] ^= (RC[r] & 0xf); + state[1][0] ^= ((RC[r]>>4) & 0x3); + state[2][0] ^= 0x2; +} + +// apply the 4-bit Sbox +void SubCell4(unsigned char state[4][4]) +{ + int i,j; + for(i = 0; i < 4; i++) + for(j = 0; j < 4; j++) + state[i][j] = sbox_4[state[i][j]]; +} + +// apply the 4-bit inverse Sbox +void SubCell4_inv(unsigned char state[4][4]) +{ + int i,j; + for(i = 0; i < 4; i++) + for(j = 0; j < 4; j++) + state[i][j] = sbox_4_inv[state[i][j]]; +} + +// apply the 8-bit Sbox +void SubCell8(unsigned char state[4][4]) +{ + int i,j; + for(i = 0; i < 4; i++) + for(j = 0; j < 4; j++) + state[i][j] = sbox_8[state[i][j]]; +} + +// apply the 8-bit inverse Sbox +void SubCell8_inv(unsigned char state[4][4]) +{ + int i,j; + for(i = 0; i < 4; i++) + for(j = 0; j < 4; j++) + state[i][j] = sbox_8_inv[state[i][j]]; +} + +// Apply the ShiftRows function +void ShiftRows(unsigned char state[4][4]) +{ + int i, j, pos; + + unsigned char state_tmp[4][4]; + for(i = 0; i < 4; i++) + { + for(j = 0; j < 4; j++) + { + //application of the ShiftRows permutation + pos=P[j+4*i]; + state_tmp[i][j]=state[pos>>2][pos&0x3]; + } + } + + for(i = 0; i < 4; i++) + { + for(j = 0; j < 4; j++) + { + state[i][j]=state_tmp[i][j]; + } + } +} + +// Apply the inverse ShiftRows function +void ShiftRows_inv(unsigned char state[4][4]) +{ + int i, j, pos; + + unsigned char state_tmp[4][4]; + for(i = 0; i < 4; i++) + { + for(j = 0; j < 4; j++) + { + //application of the inverse ShiftRows permutation + pos=P_inv[j+4*i]; + state_tmp[i][j]=state[pos>>2][pos&0x3]; + } + } + + for(i = 0; i < 4; i++) + { + for(j = 0; j < 4; j++) + { + state[i][j]=state_tmp[i][j]; + } + } +} + +// Apply the linear diffusion matrix +//M = +//1 0 1 1 +//1 0 0 0 +//0 1 1 0 +//1 0 1 0 +void MixColumn(unsigned char state[4][4]) +{ + int j; + unsigned char temp; + + for(j = 0; j < 4; j++){ + state[1][j]^=state[2][j]; + state[2][j]^=state[0][j]; + state[3][j]^=state[2][j]; + + temp=state[3][j]; + state[3][j]=state[2][j]; + state[2][j]=state[1][j]; + state[1][j]=state[0][j]; + state[0][j]=temp; + } +} + +// Apply the inverse linear diffusion matrix +void MixColumn_inv(unsigned char state[4][4]) +{ + int j; + unsigned char temp; + + for(j = 0; j < 4; j++){ + temp=state[3][j]; + state[3][j]=state[0][j]; + state[0][j]=state[1][j]; + state[1][j]=state[2][j]; + state[2][j]=temp; + + state[3][j]^=state[2][j]; + state[2][j]^=state[0][j]; + state[1][j]^=state[2][j]; + } +} + +// decryption function of Skinny +void dec(unsigned char* input, const unsigned char* userkey, int ver) +{ + unsigned char state[4][4]; + unsigned char dummy[4][4]={{0}}; + unsigned char keyCells[3][4][4]; + int i; + + memset(keyCells, 0, 48); + for(i = 0; i < 16; i++) { + if (versions[ver][0]==64){ + if(i&1) + { + state[i>>2][i&0x3] = input[i>>1]&0xF; + keyCells[0][i>>2][i&0x3] = userkey[i>>1]&0xF; + if (versions[ver][1]>=128) + keyCells[1][i>>2][i&0x3] = userkey[(i+16)>>1]&0xF; + if (versions[ver][1]>=192) + keyCells[2][i>>2][i&0x3] = userkey[(i+32)>>1]&0xF; + } + else + { + state[i>>2][i&0x3] = (input[i>>1]>>4)&0xF; + keyCells[0][i>>2][i&0x3] = (userkey[i>>1]>>4)&0xF; + if (versions[ver][1]>=128) + keyCells[1][i>>2][i&0x3] = (userkey[(i+16)>>1]>>4)&0xF; + if (versions[ver][1]>=192) + keyCells[2][i>>2][i&0x3] = (userkey[(i+32)>>1]>>4)&0xF; + } + } + else if (versions[ver][0]==128){ + state[i>>2][i&0x3] = input[i]&0xFF; + + keyCells[0][i>>2][i&0x3] = userkey[i]&0xFF; + if (versions[ver][1]>=256) + keyCells[1][i>>2][i&0x3] = userkey[i+16]&0xFF; + if (versions[ver][1]>=384) + keyCells[2][i>>2][i&0x3] = userkey[i+32]&0xFF; + } + } + + for(i = versions[ver][2]-1; i >=0 ; i--){ + AddKey(dummy, keyCells, ver); + } + + #ifdef DEBUG + //f//printf(fic,"DEC - initial state: ");display_cipher_state(state,keyCells,ver);//f//printf(fic,"\n"); + #endif + + for(i = versions[ver][2]-1; i >=0 ; i--){ + MixColumn_inv(state); + #ifdef DEBUG + //f//printf(fic,"DEC - round %.2i - after MixColumn_inv: ",i);display_cipher_state(state,keyCells,ver);//f//printf(fic,"\n"); + #endif + ShiftRows_inv(state); + #ifdef DEBUG + //f//printf(fic,"DEC - round %.2i - after ShiftRows_inv: ",i);display_cipher_state(state,keyCells,ver);//f//printf(fic,"\n"); + #endif + AddKey_inv(state, keyCells, ver); + #ifdef DEBUG + //f//printf(fic,"DEC - round %.2i - after AddKey_inv: ",i);display_cipher_state(state,keyCells,ver);//f//printf(fic,"\n"); + #endif + AddConstants(state, i); + #ifdef DEBUG + //f//printf(fic,"DEC - round %.2i - after AddConstants_inv: ",i);display_cipher_state(state,keyCells,ver);//f//printf(fic,"\n"); + #endif + if (versions[ver][0]==64) + SubCell4_inv(state); + else + SubCell8_inv(state); + #ifdef DEBUG + //f//printf(fic,"DEC - round %.2i - after SubCell_inv: ",i);display_cipher_state(state,keyCells,ver);//f//printf(fic,"\n"); + #endif + } + + #ifdef DEBUG + //f//printf(fic,"DEC - final state: ");display_cipher_state(state,keyCells,ver);//f//printf(fic,"\n"); + #endif + + if (versions[ver][0]==64) + { + for(i = 0; i < 8; i++) + input[i] = ((state[(2*i)>>2][(2*i)&0x3] & 0xF) << 4) | (state[(2*i+1)>>2][(2*i+1)&0x3] & 0xF); + } + else if (versions[ver][0]==128) + { + for(i = 0; i < 16; i++) + input[i] = state[i>>2][i&0x3] & 0xFF; + } +} + +// encryption function of Skinny +void enc(unsigned char* input, const unsigned char* userkey, int ver) +{ + unsigned char state[4][4]; + unsigned char keyCells[3][4][4]; + int i; + + memset(keyCells, 0, 48); + for(i = 0; i < 16; i++) { + if (versions[ver][0]==64){ + if(i&1) + { + state[i>>2][i&0x3] = input[i>>1]&0xF; + keyCells[0][i>>2][i&0x3] = userkey[i>>1]&0xF; + if (versions[ver][1]>=128) + keyCells[1][i>>2][i&0x3] = userkey[(i+16)>>1]&0xF; + if (versions[ver][1]>=192) + keyCells[2][i>>2][i&0x3] = userkey[(i+32)>>1]&0xF; + } + else + { + state[i>>2][i&0x3] = (input[i>>1]>>4)&0xF; + keyCells[0][i>>2][i&0x3] = (userkey[i>>1]>>4)&0xF; + if (versions[ver][1]>=128) + keyCells[1][i>>2][i&0x3] = (userkey[(i+16)>>1]>>4)&0xF; + if (versions[ver][1]>=192) + keyCells[2][i>>2][i&0x3] = (userkey[(i+32)>>1]>>4)&0xF; + } + } + else if (versions[ver][0]==128){ + state[i>>2][i&0x3] = input[i]&0xFF; + keyCells[0][i>>2][i&0x3] = userkey[i]&0xFF; + if (versions[ver][1]>=256) + keyCells[1][i>>2][i&0x3] = userkey[i+16]&0xFF; + if (versions[ver][1]>=384) + keyCells[2][i>>2][i&0x3] = userkey[i+32]&0xFF; + } + } + + #ifdef DEBUG + //printf("ENC - initial state: ");display_cipher_state(state,keyCells,ver);//printf("\n"); + #endif + for(i = 0; i < versions[ver][2]; i++){ + if (versions[ver][0]==64) + SubCell4(state); + else + SubCell8(state); + #ifdef DEBUG + //printf("ENC - round %.2i - after SubCell: ",i);display_cipher_state(state,keyCells,ver);//printf("\n"); + #endif + AddConstants(state, i); + #ifdef DEBUG + //printf("ENC - round %.2i - after AddConstants: ",i);display_cipher_state(state,keyCells,ver);//printf("\n"); + #endif + AddKey(state, keyCells, ver); + #ifdef DEBUG + //printf("ENC - round %.2i - after AddKey: ",i);display_cipher_state(state,keyCells,ver);//printf("\n"); + #endif + ShiftRows(state); + #ifdef DEBUG + //printf("ENC - round %.2i - after ShiftRows: ",i);display_cipher_state(state,keyCells,ver);//printf("\n"); + #endif + MixColumn(state); + #ifdef DEBUG + //printf("ENC - round %.2i - after MixColumn: ",i);display_cipher_state(state,keyCells,ver);//printf("\n"); + #endif + } //The last subtweakey should not be added + + #ifdef DEBUG + //printf("ENC - final state: ");display_cipher_state(state,keyCells,ver);//printf("\n"); + #endif + + if (versions[ver][0]==64) + { + for(i = 0; i < 8; i++) + input[i] = ((state[(2*i)>>2][(2*i)&0x3] & 0xF) << 4) | (state[(2*i+1)>>2][(2*i+1)&0x3] & 0xF); + } + else if (versions[ver][0]==128) + { + for(i = 0; i < 16; i++) + input[i] = state[i>>2][i&0x3] & 0xFF; + } +} + +void skinny_128_384_enc (unsigned char* input, const unsigned char* userkey) { + enc(input,userkey,5); +} + +// generate test vectors for all the versions of Skinny +void TestVectors(int ver) +{ + unsigned char p[16]; + unsigned char c[16]; + unsigned char k[48]; + int n; + + for(n = 1; n < 10; n++) + { + int i; + for(i = 0; i < (versions[ver][0]>>3); i++) c[i] = p[i] = rand() & 0xff; + for(i = 0; i < (versions[ver][1]>>3); i++) k[i] = rand() & 0xff; + //printf("TK = "); for(i = 0; i < (versions[ver][1]>>3); i++) //printf("%02x", k[i]); //printf("\n"); + //printf("P = "); for(i = 0; i < (versions[ver][0]>>3); i++) //printf("%02x", p[i]); //printf("\n"); + enc(c,k,ver); + //printf("C = "); for(i = 0; i < (versions[ver][0]>>3); i++) //printf("%02x", c[i]); //printf("\n"); + dec(c,k,ver); + //printf("P' = "); for(i = 0; i < (versions[ver][0]>>3); i++) //printf("%02x", c[i]); //printf("\n\n"); + } +} + +/* int main() { */ +/* unsigned int i; */ +/* char name[30]; */ + +/* srand((unsigned) time (NULL)); */ + +/* //test all versions of Skinny */ +/* for (i=0; i<(sizeof(versions)/sizeof(*versions));i++) */ +/* { */ +/* s//printf(name, "test_vectors_%i_%i.txt", versions[i][0], versions[i][1]); */ +/* fic=fopen(name,"w"); */ +/* //printf("\n\nSkinny-%i/%i: \n",versions[i][0],versions[i][1]); */ +/* TestVectors(i); */ +/* fclose(fic); */ +/* //printf("Generating test vectors for Skinny-%i/%i - saved in file test_vectors_%i_%i.txt \n",versions[i][0],versions[i][1],versions[i][0],versions[i][1]); */ +/* } */ + +/* return 0; */ +/* } */ + + + diff --git a/romulus/Implementations/crypto_aead/romulusm2/ref/variant.h b/romulus/Implementations/crypto_aead/romulusm2/ref/variant.h new file mode 100644 index 0000000..27e7705 --- /dev/null +++ b/romulus/Implementations/crypto_aead/romulusm2/ref/variant.h @@ -0,0 +1,3 @@ +#define MSG_BLK_LEN 16 +#define AD_BLK_LEN_ODD 16 +#define AD_BLK_LEN_EVN 12 diff --git a/romulus/Implementations/crypto_aead/romulusm2v12/LWC_AEAD_KAT_128_96.txt b/romulus/Implementations/crypto_aead/romulusm2v12/LWC_AEAD_KAT_128_96.txt deleted file mode 100644 index a76f18a..0000000 --- a/romulus/Implementations/crypto_aead/romulusm2v12/LWC_AEAD_KAT_128_96.txt +++ /dev/null @@ -1,7623 +0,0 @@ -Count = 1 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = -AD = -CT = C90F619FF363B13D980EA3B28D620BAA - -Count = 2 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = -AD = 00 -CT = 3A971D74FD7D8966300A5EC5C6A4443D - -Count = 3 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = -AD = 0001 -CT = 03D3D92EF92F2D640A4403D6818860E7 - -Count = 4 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = -AD = 000102 -CT = 318347822348F7DDAA2565A32F7ECF65 - -Count = 5 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = -AD = 00010203 -CT = 691061001FD1BDC3484DD36C9CD05489 - -Count = 6 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = -AD = 0001020304 -CT = 2108DBAADB255728213C69F0332B8A89 - -Count = 7 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = -AD = 000102030405 -CT = 4970AC0B3B98F2A0C2C5349DC72069A5 - -Count = 8 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = -AD = 00010203040506 -CT = 5AD88D12EB9E781798C3F690CA59004F - -Count = 9 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = -AD = 0001020304050607 -CT = ECB8878035AE951E50D4075DCF5322F5 - -Count = 10 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = -AD = 000102030405060708 -CT = F0705D93267C3A31DA5E1455BADAA9E3 - -Count = 11 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = -AD = 00010203040506070809 -CT = BA412D9E8FADDE475EE50F7140B4F843 - -Count = 12 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = -AD = 000102030405060708090A -CT = AB8AB194023840ADEE7361E96F0A53EC - -Count = 13 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = -AD = 000102030405060708090A0B -CT = 83AC9930113086A8571359A409CB8EF8 - -Count = 14 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = -AD = 000102030405060708090A0B0C -CT = 0E8892EAFF82194F6B785F1F748C9F3B - -Count = 15 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = -AD = 000102030405060708090A0B0C0D -CT = D58AA27FF4BC5617401BFC54F46E25CC - -Count = 16 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = -AD = 000102030405060708090A0B0C0D0E -CT = D47FC2FECD330EB9519C90C4CCC4812D - -Count = 17 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = -AD = 000102030405060708090A0B0C0D0E0F -CT = FD581C69F162D108C8E67F0B0433E80D - -Count = 18 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = -AD = 000102030405060708090A0B0C0D0E0F10 -CT = B3DCE3FA402520C92F0D6CC4F0764262 - -Count = 19 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 7AF4AC00266D4F0D763175698A48E8AD - -Count = 20 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = 604DAE08C1E382E495CFF1F148D952A1 - -Count = 21 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 4A1339D6A88D492676D7BD400FDA35F5 - -Count = 22 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = 8E81C6F415F076CE79FDFAFAF6145A2E - -Count = 23 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = 2E3A3671805CD343421E95B5FE3E2BCE - -Count = 24 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = E5FB1B7FFF5354A016D998616B975123 - -Count = 25 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = 8472730C63B3C7C770E9290D4AB9B3EA - -Count = 26 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = A638452E5E87190570B756A14F6B9BB4 - -Count = 27 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = BB00D7FCFD54CA07940F45C926338E85 - -Count = 28 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 22320A53DFE2502A0FCD6FF45AD81364 - -Count = 29 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = B442BD5667863F2568B9D3EC334158A1 - -Count = 30 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = B460B18EDA4D2756F527BE162CF1A6BA - -Count = 31 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 51E8F720B9D27CE185637DA30DEF3557 - -Count = 32 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = AE003733A8BE94A14E3C8D4BF8D1F0A8 - -Count = 33 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 08F4551396C23AEC8CC154B0001B6497 - -Count = 34 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00 -AD = -CT = 203F668C50FED0D8ADB163A6E686AFCBD4 - -Count = 35 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00 -AD = 00 -CT = 5043F7EA1C56BC0D23E9676D58E3D28730 - -Count = 36 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00 -AD = 0001 -CT = CD0E9915B27A6E184ED2BD13D2D206E1C7 - -Count = 37 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00 -AD = 000102 -CT = C7ED4BE3D6C49307681D6E45FA2CC8AB26 - -Count = 38 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00 -AD = 00010203 -CT = AB1940D5BC9EB9C25BF4A46AE95DF5C3C6 - -Count = 39 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00 -AD = 0001020304 -CT = 49B92563A9A9DE25E57B82758B87006D36 - -Count = 40 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00 -AD = 000102030405 -CT = E70FA64EEFC22DA92246D0F2932B081278 - -Count = 41 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00 -AD = 00010203040506 -CT = 686DCBCBB222EA7EFD9600057A1DC2415D - -Count = 42 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00 -AD = 0001020304050607 -CT = D7B1ADCF336EE05F5053F70291DC404CAE - -Count = 43 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00 -AD = 000102030405060708 -CT = CE4384BCBACE1B6F1AA458BC4F27772421 - -Count = 44 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00 -AD = 00010203040506070809 -CT = D6CBC8CB06C9806BAB250A82B54DB4C0CD - -Count = 45 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00 -AD = 000102030405060708090A -CT = 941090A93CC99493D39C1C08558868E505 - -Count = 46 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00 -AD = 000102030405060708090A0B -CT = 73DCA0EF238C65F1115811EE02765E9AB0 - -Count = 47 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00 -AD = 000102030405060708090A0B0C -CT = F0799D1DFC63EBF0BD3DE15C2A7E6CFDE7 - -Count = 48 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00 -AD = 000102030405060708090A0B0C0D -CT = 9F7DB492C3F393B9098E6D5438A689FEBC - -Count = 49 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00 -AD = 000102030405060708090A0B0C0D0E -CT = 05B80037582902CBD6AA8AA151CAE666FD - -Count = 50 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00 -AD = 000102030405060708090A0B0C0D0E0F -CT = 89ABF93A2F5C782C98260D340854DF5AF6 - -Count = 51 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = B77470491F183DF6372F4D8268C24F5231 - -Count = 52 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 7D24FA2A748A122D22411D2AD5FF184F24 - -Count = 53 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = 2C3CABD03C8C002481C4718F7952B9D209 - -Count = 54 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 6C7FDA12A77D92C7CEF320A73BE4D60FA4 - -Count = 55 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = EB614D7BAAB4159EB1801FDB0AA03E6981 - -Count = 56 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = 61E286FBC34372A609B660C40DA486EF5B - -Count = 57 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 2B412379419FEA937DAD9BAFC4FC10F75D - -Count = 58 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = 914A7D8B560CFD03E80D179FB40E30BB5F - -Count = 59 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 12908BC5B8817E733AAE435C66F029231F - -Count = 60 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = D3ADEABAA26A3CF208B4BBBDE47E286046 - -Count = 61 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 2725409A7C796AEB74375ED0077DAA5F7E - -Count = 62 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = F131C58A47218BB7E36A73BC7CAB3F2116 - -Count = 63 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = 39F0D9EEFAAD5EC8F475D7C856B0483675 - -Count = 64 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 920CCCB809F35720166D7B0380EDD34DE7 - -Count = 65 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = E99E7B55DA5377ADF3A8603289BAE8702B - -Count = 66 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 32C330F88B418E1215FC60CC042E042D93 - -Count = 67 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001 -AD = -CT = C870D5AFEA02A98C3DF9CD425C560F87F489 - -Count = 68 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001 -AD = 00 -CT = 6F8F38A7CCF66BFBED3BEB0B81489E39BA94 - -Count = 69 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001 -AD = 0001 -CT = 6F577F79CED8A0F43AEAE141647DE364DB8B - -Count = 70 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001 -AD = 000102 -CT = B8B27D101937CDCAD2043BF5F0A471D92B6C - -Count = 71 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001 -AD = 00010203 -CT = 0F778CC2BBC9F3E1D91FF6563EA397E7937A - -Count = 72 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001 -AD = 0001020304 -CT = 010E1BC779120078E3CDC4581FC51CE5A401 - -Count = 73 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001 -AD = 000102030405 -CT = 6FD6B26705D8FC2A9C0AD876C67623E93C30 - -Count = 74 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001 -AD = 00010203040506 -CT = 16E265EE7C6938A5EAEF5EA254EFC7475BD4 - -Count = 75 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001 -AD = 0001020304050607 -CT = 7EB312B6E8B5D843BD3BEB5ACF99A86C65E9 - -Count = 76 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001 -AD = 000102030405060708 -CT = 49B722EC0C6C68AD6D9640FF7FC8336D5C42 - -Count = 77 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001 -AD = 00010203040506070809 -CT = 9CB1BDC62460D9EFB65D97E34081C4CE45FA - -Count = 78 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001 -AD = 000102030405060708090A -CT = 43A5374D0CE5DB2B3F811E55340E499FB92F - -Count = 79 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001 -AD = 000102030405060708090A0B -CT = 8F8506755C8E3A72BADCC1F53DBABFAA05C3 - -Count = 80 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001 -AD = 000102030405060708090A0B0C -CT = 2171A1FC875F8F3AEFAB19CE0BC73BE0AB71 - -Count = 81 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001 -AD = 000102030405060708090A0B0C0D -CT = 0C3C26F606C17AA66B08EC26BCE5857E6CF4 - -Count = 82 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001 -AD = 000102030405060708090A0B0C0D0E -CT = D48D0E75E5EF1DEB04122A169CB783607607 - -Count = 83 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001 -AD = 000102030405060708090A0B0C0D0E0F -CT = 11590B4787A695ED3B3E56E4C4EACB436C63 - -Count = 84 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 201EDB0AE82B38AD26BE884E7E47BDE2595B - -Count = 85 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 8279376F5626A231D7115A0E012E358A1451 - -Count = 86 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = E93C95DA933692196A0E15251CE1DF054DA8 - -Count = 87 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 8C0667AEE4AAE384B681ED1B55C25C63BE47 - -Count = 88 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = 150F17BCFBD0084773E24AA4B6E21FD91FB7 - -Count = 89 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = E79D0D77A6A92083CF13B063C8692761C979 - -Count = 90 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 38F62D10BB97EC5AD6B9D4EACAEA43D4E053 - -Count = 91 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = 2938AF85EF14068FBA585B8A61EE1E92102B - -Count = 92 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 2E2C21E01EFABC158C396CCD280A5239B216 - -Count = 93 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = 9FE03B7440D5BA75566F8B814BE710765210 - -Count = 94 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = F7C3F09DD62A9295300E4D2F9B62BF480517 - -Count = 95 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 696F25612C61FD4F2C744ED4517C3410F20E - -Count = 96 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = 9BA8225FDD0D51BDC49F13DF6D592ED7A62F - -Count = 97 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 01D90BEC35AE4B58F482BCD1E562C588D6D0 - -Count = 98 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = 6E893441E998D5F3270A6249B3AF6BD8F656 - -Count = 99 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = F6369CDD6BC136B36BD395A3AA448671D5FD - -Count = 100 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102 -AD = -CT = F2201A53A00B281941FE24385DB76155668998 - -Count = 101 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102 -AD = 00 -CT = C704570442BA4E958440CD13974C3D86544BF7 - -Count = 102 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102 -AD = 0001 -CT = 1AD5043D28BA6A8923254D390A5B6FA0CF9AD9 - -Count = 103 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102 -AD = 000102 -CT = 5D35408BD39E801644B4F517D44CE0ED5088A9 - -Count = 104 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102 -AD = 00010203 -CT = 6F6BAA554E44C46E61B986EE2961C88FF8F070 - -Count = 105 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102 -AD = 0001020304 -CT = E81A31CE8C65F1920FBCDF5C8D55A32DB6D48A - -Count = 106 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102 -AD = 000102030405 -CT = CBE8243E96727232DBCBCDBFFCB9E6D8D50106 - -Count = 107 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102 -AD = 00010203040506 -CT = ECF527A6E98539C81339367EB467345CD000DB - -Count = 108 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102 -AD = 0001020304050607 -CT = AE04D7A44398B4070A00355563CB417EF40248 - -Count = 109 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102 -AD = 000102030405060708 -CT = 3477D085E61CECBC7141E218FE4FD976CA6D98 - -Count = 110 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102 -AD = 00010203040506070809 -CT = F27824B1B85C0123FCD9FF9A9CF3D1DFCC0771 - -Count = 111 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102 -AD = 000102030405060708090A -CT = BE36B261E5E4D9D347E2985F2C4DA29A54C0E2 - -Count = 112 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102 -AD = 000102030405060708090A0B -CT = 19FD20FE5689A76764FEC25330B5FEF67BA72A - -Count = 113 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102 -AD = 000102030405060708090A0B0C -CT = 5F811DCEA8CFA715C867AC5A5E5672EB40EDDB - -Count = 114 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102 -AD = 000102030405060708090A0B0C0D -CT = EF765F95CCD9E1340D8A0EFC75E451533E7D6E - -Count = 115 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102 -AD = 000102030405060708090A0B0C0D0E -CT = F7ACD5914E70EB68664D589B4C4E04EAC33E90 - -Count = 116 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102 -AD = 000102030405060708090A0B0C0D0E0F -CT = 567F510D4970BF619478C6D5A6875FF37BFD80 - -Count = 117 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 7231A29EC7233809C7D7D437A0FBA6856AB195 - -Count = 118 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 3295094B15B8EB1F51D70E1F5315C3C0FA309E - -Count = 119 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = CF668AF6C3222F29BF64B4F192BCFAFEE0642B - -Count = 120 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 2AA402283189861279D5CF6A98EAFE82AA4B4A - -Count = 121 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = 2A08D05FD16BFC3DFD16D4DAB464EF9744FCA4 - -Count = 122 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = 95627D5738500E47A4A31EC3CCE61508A09426 - -Count = 123 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = C48EDD2811EA2D0EFFACD6F4F7E8FFCDB8408E - -Count = 124 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = 373823CA19E177F84EB6175B7CF066D2C2D858 - -Count = 125 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 0DD3CBE77224C061132DCFA4985C476E8E1C7F - -Count = 126 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = 554E25639BC88454F07ED4A9DDEBFC85311B90 - -Count = 127 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = DD34C6F315E3E0C204DE7AB25CE888876C77AA - -Count = 128 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 84FA1773D470A6CAA781131492BDDC8F215BA3 - -Count = 129 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = B8AB12A07CFA16CB7EF7DEFC55FDCB87DFF964 - -Count = 130 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 4694A232C2967401AF5308E3BD104455DB7A7F - -Count = 131 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = 2BC38BEA358E2B9CC55BED510C269A0D0B3B86 - -Count = 132 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 4E12FC02CD120CC566DFE9F2237820F76FC4D8 - -Count = 133 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203 -AD = -CT = C24A8E8331E9560D2FDB6D6A9E57FF37A954D95E - -Count = 134 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203 -AD = 00 -CT = 539BD4667566E30D4B7C8EBCA19EE1D485B36520 - -Count = 135 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203 -AD = 0001 -CT = E6B5FD64C402728F1C55DFE7AA0C974618ADF3C8 - -Count = 136 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203 -AD = 000102 -CT = 07E9B819117A06F9552159A6781616EB33EA1B73 - -Count = 137 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203 -AD = 00010203 -CT = C1606C15467E903C1130C605AA7438A253D83005 - -Count = 138 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203 -AD = 0001020304 -CT = 6958DA985FB2E1CCFC5CBC7AB48EBB5C74F434DF - -Count = 139 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203 -AD = 000102030405 -CT = 6E91F665ABDCCFCAFC1C6CF9EDFB16C497B2A9D5 - -Count = 140 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203 -AD = 00010203040506 -CT = E28BE514123DAAB74F10C175672478561B936863 - -Count = 141 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203 -AD = 0001020304050607 -CT = 94FB82BC66F7A56DA2AEE8FB49F33E8B7F702C00 - -Count = 142 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203 -AD = 000102030405060708 -CT = B5F024D2D49C453F39D80C1372A0777D6A8CE04C - -Count = 143 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203 -AD = 00010203040506070809 -CT = 68FF6D948FCAC97243DA0AA17300DC073C501D72 - -Count = 144 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203 -AD = 000102030405060708090A -CT = 5D1DF5A2B9CBBE951B0D4476D541AAFC57D97D90 - -Count = 145 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203 -AD = 000102030405060708090A0B -CT = 3D0BF9C15DF6A5BAA04B5691B5C28E4B7E51224D - -Count = 146 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203 -AD = 000102030405060708090A0B0C -CT = 3BFFEF82DD4F80524C10EE0D13DA0950838220D4 - -Count = 147 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203 -AD = 000102030405060708090A0B0C0D -CT = FAF26684C8A2EE3A6B4F428616BCD3C2CA745675 - -Count = 148 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203 -AD = 000102030405060708090A0B0C0D0E -CT = 12928F1F381ECDBDAA7CADD8A86C846433541D12 - -Count = 149 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203 -AD = 000102030405060708090A0B0C0D0E0F -CT = 263E299F2CE04110FA94F2A3585951E7CD8D027F - -Count = 150 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 09DB59179B31301A9DD1D3ACB9752DF01820F8C7 - -Count = 151 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = D48307BD927FEBC105DE350BB97A414300B9927D - -Count = 152 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = F57FF1DEA5DDC7D5644C6B2168ECBFE1EA9D211F - -Count = 153 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 60F5C9796A7D295F6CD22DD1B2DC7292A4686A16 - -Count = 154 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = 467BF70E5F4081288D828A0159FDEFB0577EBE5B - -Count = 155 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = F777597E78B4FC2F45121DDA943460D7786BAB14 - -Count = 156 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 94E293006EB9C0374FBF759A0A72FD66E6A1B756 - -Count = 157 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = D877E00CBE2728265429A6C5B5A80338207CAB12 - -Count = 158 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 65CEB32DC4453002C980016583410CFE20CED159 - -Count = 159 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = ED2A80CF29DA14B1F04E47517CAAAA512410EC82 - -Count = 160 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = E81D994F9B39295D16FB3CD95BE20BABB8B27485 - -Count = 161 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 5D78DF931111629805D3560AD4EDD812FE0FC0EF - -Count = 162 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = 4661C632E2A5FCCF287F9F661910592BE6EBDF0A - -Count = 163 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 577AF5F85D117936CB10CE8C0347772AF1B3B928 - -Count = 164 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = 715BE74284D14C53F1165A41312894BE63097596 - -Count = 165 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 12BFE4AEB7CC486D60BCC711B881DDC8744BCBEE - -Count = 166 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304 -AD = -CT = 70BD29CF42E67143FB997F18F0554C78B6CCB5B728 - -Count = 167 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304 -AD = 00 -CT = 34A642EA6EF6741CC8717391CF6D9DA8AC46BB4294 - -Count = 168 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304 -AD = 0001 -CT = F592E04B5C305633A3025671063CDB9411CD9698EE - -Count = 169 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304 -AD = 000102 -CT = 6E6B2EFA562A7D6628A825D99E4251C119C4032F04 - -Count = 170 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304 -AD = 00010203 -CT = A3A4AF89CE2094387B6C5414E076E7742AB9A74E27 - -Count = 171 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304 -AD = 0001020304 -CT = DA53B0272C8474428E94F6083F89160CB16E6778A0 - -Count = 172 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304 -AD = 000102030405 -CT = B1F303DAA781123E600051BC71B32BEDB700071479 - -Count = 173 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304 -AD = 00010203040506 -CT = F592901B2E645F2A4838F3B832CFDD98805794FB77 - -Count = 174 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304 -AD = 0001020304050607 -CT = FE47055C9B28A74E02888B05B8964EA2A0D153ED82 - -Count = 175 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304 -AD = 000102030405060708 -CT = 9ECF478B4BFBE4FE960538CBB344AE5935E472E32A - -Count = 176 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304 -AD = 00010203040506070809 -CT = 3FF471F23DD2C12343A55838C2625514C64CA53551 - -Count = 177 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304 -AD = 000102030405060708090A -CT = 4F7253BB77F404D21D58F69D169386290FCF94033D - -Count = 178 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304 -AD = 000102030405060708090A0B -CT = D17BB2A6830C1855F3A7870214A8E83C200DD16337 - -Count = 179 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304 -AD = 000102030405060708090A0B0C -CT = 41079E29A2E672E46DEB5F696C574CCADE57ADD1D0 - -Count = 180 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304 -AD = 000102030405060708090A0B0C0D -CT = 7621D519ED09F1094498418163CDAB65A9B4C72B26 - -Count = 181 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304 -AD = 000102030405060708090A0B0C0D0E -CT = 56AA2956955E98026E5961FCD27F38D7733EE4205E - -Count = 182 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304 -AD = 000102030405060708090A0B0C0D0E0F -CT = 6E052F0DE29CC69D4F0F24B1F49622072AC9B6C8D3 - -Count = 183 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = F8843830990F00D5188DC0C73308F73DCF2624F634 - -Count = 184 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = FEA28547BBDF0AC95B37FD2480E28C20B182883DD3 - -Count = 185 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = C3BB848AAC4CFD5FB6BA6EE5537302F9E323A9E1DF - -Count = 186 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = C02BCFAB84E5A9481EB006E66EAF803DA12321A008 - -Count = 187 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = 664FACB9D5EA3EAFC0CF262464491BD0D4C3309E1E - -Count = 188 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = 6DCAA46A6D39AFB0C763AC093A65114BDF9721283F - -Count = 189 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 6F9E9D9D2D29985E693D418D7A80810E14C7854027 - -Count = 190 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = AF938C0F462961329D456CE6F4ECCBDBA6D144D88D - -Count = 191 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 1870B9654E6ED47910AC62101157410EE97262990A - -Count = 192 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = 2AE6A207134B21847DA686836E4DA69E79911B7B86 - -Count = 193 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 826872EC29C622C3ADDA0C82422748C77E8108D2AA - -Count = 194 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = EBB8F99E00F61DA0696AA43B993FDE64221CB4E038 - -Count = 195 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = D63C99B442B93016165C3D9CC39C6830FC12D72033 - -Count = 196 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 54CE1683CAF718504AAA1EB106BCF1CA6B6EEFE0EF - -Count = 197 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = E90EC973DA089E04BA6CCC0556E6B3D30B33486A4B - -Count = 198 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = B08875F46F035F449AE8E5A10FE9ECC894A0EDFD6F - -Count = 199 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405 -AD = -CT = 7EEFD20825D30A83A49F3C80EF5CB32067AABD27A515 - -Count = 200 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405 -AD = 00 -CT = 55896480F1C2E8AFFAC6DA5DD4499C15DF21DF8F0EE9 - -Count = 201 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405 -AD = 0001 -CT = 6824D9CBFFC272754C499DFB52C0185E884DE2EF8761 - -Count = 202 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405 -AD = 000102 -CT = 49C627C43C8B2366DB05B5A8A42C549286AB379639A8 - -Count = 203 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405 -AD = 00010203 -CT = CD542B0DBA4A4CDD9C99B7674D2D27D57F1BD1E34188 - -Count = 204 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405 -AD = 0001020304 -CT = DA1029BBA548E5375BA2DFFA5A9605020CA8DE6F5ADE - -Count = 205 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405 -AD = 000102030405 -CT = 84C767B3FD080930C8E77CFCFB339A6523EC4E2D84E8 - -Count = 206 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405 -AD = 00010203040506 -CT = 5922DADC27F5EA348B8571689D2275C77996B2D4F55B - -Count = 207 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405 -AD = 0001020304050607 -CT = 439A9E295BFDF38D00201EF98D119A22605443760942 - -Count = 208 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405 -AD = 000102030405060708 -CT = E61C13B9863AF431FB080044BA089AC9F225BA2B33D3 - -Count = 209 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405 -AD = 00010203040506070809 -CT = F64437793E97A4FC0EEB4B12AC73D95AD80BE9411574 - -Count = 210 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405 -AD = 000102030405060708090A -CT = 701DA9B5250F7E3007842B9B36037F3B58085351951C - -Count = 211 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405 -AD = 000102030405060708090A0B -CT = 29F5872B850B243DD801D7474A1C033DB3F46CB66915 - -Count = 212 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405 -AD = 000102030405060708090A0B0C -CT = 80621F813A0E9803271C0428FD815CF22FCFA0D09EFE - -Count = 213 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405 -AD = 000102030405060708090A0B0C0D -CT = 687ADAF4B5506CD77C977E66446B90BC8F2A5BEE1E04 - -Count = 214 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405 -AD = 000102030405060708090A0B0C0D0E -CT = 78FD73747777EDFB553358FE22994C60930AABEE338C - -Count = 215 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405 -AD = 000102030405060708090A0B0C0D0E0F -CT = AB47A068D1D97B336AB0339F599F5F9EF0BF4544A44B - -Count = 216 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = F26B2EBCF8C0556AFB327E642E28C7AC986741C57051 - -Count = 217 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 360183F3B27684493226DFE624E5381B16C02413E254 - -Count = 218 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = F222D4D8B0660E982BB6222B8C1613EC4474EB195C8E - -Count = 219 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = DF354784692E67343453941C8E35DC9BEF693C2A0ECF - -Count = 220 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = 571BD3F757CFF181955979E3C006FEB541CE55CA341A - -Count = 221 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = 18B9AE86587CC95BD111ED20071EB089529D6B0BA54E - -Count = 222 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = C63A2B84D057453289B668316986E8793219B149A3A7 - -Count = 223 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = 52F16488A082C6FEFF1F5990DABB9F7D57303CBF7F43 - -Count = 224 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = CBBDC61A9C2CEE00158B40C05250DE274BB4E95B312E - -Count = 225 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = 3DE3F8A37EF0223CF8994E997BB1FAFBABA022667410 - -Count = 226 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 8E4EFC8786E23CC023CEE1D73E93A7CF5A129430C6FC - -Count = 227 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 271EB9FF40534634B1278FDE8CE22F79096AB299D91D - -Count = 228 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = 1A8370FE8717BD3ACC0E53C07CDAF3556A0B1FE3DC53 - -Count = 229 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = B7A28845B7971CB7765361EEDF2241DE85FABA5798BC - -Count = 230 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = 1A45EF0F8690804DD17D95959E578672F0379682AB86 - -Count = 231 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 0A27B380D6697A6BD2E59763FA355E949D4E4E692D62 - -Count = 232 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506 -AD = -CT = F263183D7CE6B0CD6920E1A5756664A95143EC033A4621 - -Count = 233 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506 -AD = 00 -CT = F30E5ACE835921A16282E9B407D2D6AAD6AA0FE5191E36 - -Count = 234 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506 -AD = 0001 -CT = 4AE9AED506C9C9467FDFC015252BDE017D5C58498B33D5 - -Count = 235 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506 -AD = 000102 -CT = BBC51FE591BC31DF5A4879DC8CF35B9CBAF0708F0B6FF0 - -Count = 236 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506 -AD = 00010203 -CT = 15FFEFBEBE178EEE3BB190BD39EBC79AF52142CEC547CF - -Count = 237 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506 -AD = 0001020304 -CT = B2C67FF3545303A2662801F4D7C5B492E173AB2320BF07 - -Count = 238 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506 -AD = 000102030405 -CT = 442695149D8164359958D5B6A7461656D5A730C7F022A3 - -Count = 239 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506 -AD = 00010203040506 -CT = 6BF0EAB03D7822B3FC7EA26824A67D0B7FFFAE239B613D - -Count = 240 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506 -AD = 0001020304050607 -CT = 27F7279F2FCE13773445FE07E78ED9DD6F385E62099C7D - -Count = 241 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506 -AD = 000102030405060708 -CT = FD2F6F7B08DC305D6666086886625270C357D160A5142B - -Count = 242 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506 -AD = 00010203040506070809 -CT = E3B58D361A1012E734925F4BBCD19C4381EA150E2B4C8F - -Count = 243 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506 -AD = 000102030405060708090A -CT = DF3C0AAE758F3FF48E2E72E050861935A5ECFFFF7C4715 - -Count = 244 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506 -AD = 000102030405060708090A0B -CT = CDCC67C3A207B8FDD7CD9EF7A21DEC7BCB0A3FF14B0D94 - -Count = 245 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506 -AD = 000102030405060708090A0B0C -CT = 97823CA19A310838678BBD5CB481CD9AAA2F16AB8DDF56 - -Count = 246 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506 -AD = 000102030405060708090A0B0C0D -CT = DE23460C1D0640DCC35B75D74A6BB4FAD4A355F2B93255 - -Count = 247 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506 -AD = 000102030405060708090A0B0C0D0E -CT = 6E6E579A48FDA79242B0DF68763E9B437388C5AAF30441 - -Count = 248 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506 -AD = 000102030405060708090A0B0C0D0E0F -CT = 89192E965D06CF08D5F4E2AFB2B5AFE6F9B67B049CD03C - -Count = 249 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = C8E02A670FA3DA3130792B3EB3DB21340B60C3AD300135 - -Count = 250 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = F0D2D74F4BD25DBBE7BCFD615CCC793D7E9260C89A69BD - -Count = 251 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = 30F9BE26A07D53BD2ACF3E861B6942ADF0F4F098E5457E - -Count = 252 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 9753F45F76583654CA7D4CA45127B41C9EB9CCFE5AA4D4 - -Count = 253 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = 59D4C6F8D143A7DC6AE6674F0D8592D05EF78068DD0554 - -Count = 254 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = 4FA8D80449CB7996389FB1F22F0FB8464159B24CDB3626 - -Count = 255 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 102E7114C54D7E777D0ACD126B914F88D80B0AB44A0E4E - -Count = 256 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = 6C11ADB5377332FA479EDA1907191D81F0B07550DF0B84 - -Count = 257 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 893677BF78FCC4A6DE561E52B62DF5161031AA95EF7CF9 - -Count = 258 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = 8EECE711DF9043F42E1485B295441440551ABBBA1E2864 - -Count = 259 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = BE9AB3EE61517DA2B72ADC678067636780732BF14589E7 - -Count = 260 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 95CAF1B9F8C92C6AD337563C14D4673C1B4508EB61E81D - -Count = 261 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = 8BA0187DFA8F22C0B6180CF2E9F5FE472D5700417F1C2C - -Count = 262 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 208D3C39842EB3B4DF4296AEDD545AC80A41CE615C47EA - -Count = 263 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = 755CA8BD215C55A3E289F46046DCE2BEC1360E8DBF88BF - -Count = 264 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = E682D263A63BCBF02C583E659E084D255A7A4FE3C80999 - -Count = 265 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304050607 -AD = -CT = 345322B40B6ECCCA402B05239AD31E82781362D6D37463A0 - -Count = 266 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304050607 -AD = 00 -CT = 867D83CC200DCFBECB063A706F935C0870F1404BBB44A474 - -Count = 267 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304050607 -AD = 0001 -CT = 9E36CB2CFE8CD4F47E157B4F4897FEB721AEB2DD606DDB04 - -Count = 268 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304050607 -AD = 000102 -CT = D9CD3232C0A7212886816CBF477739865526A1CDDD650494 - -Count = 269 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304050607 -AD = 00010203 -CT = AD89D37D9B44793A9CC16BB690E8CDA1AAF1C2890DD450D0 - -Count = 270 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304050607 -AD = 0001020304 -CT = C31B5A7688C18E690A44802F3BD81FBDCAFE9570A3664838 - -Count = 271 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304050607 -AD = 000102030405 -CT = 1D58867F615BF10DBAAAB41A87FEED9F87F3992E9FF2B970 - -Count = 272 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304050607 -AD = 00010203040506 -CT = EE963EB10E97D9B615322C4772CA3BEFCF47FFB0850B37B1 - -Count = 273 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304050607 -AD = 0001020304050607 -CT = 60BE7448B317015CB67A5AFB1D6D0D684ED8669F05661143 - -Count = 274 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304050607 -AD = 000102030405060708 -CT = 56453B7B59DF4A21733943ECD4DD20267672086AA7DEE028 - -Count = 275 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304050607 -AD = 00010203040506070809 -CT = A4E9C7FFA43D696CD17D0C47CCC283790A3826D68CA06435 - -Count = 276 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304050607 -AD = 000102030405060708090A -CT = 51B204C1CB5375668A934827A3FA25EF188347294F5223D7 - -Count = 277 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304050607 -AD = 000102030405060708090A0B -CT = F1834200E5A7C763BB04149F6AFB3C93A05B2E0E80E30A75 - -Count = 278 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304050607 -AD = 000102030405060708090A0B0C -CT = C788C24DFDFB66BF98570F69C0477799B6C9106F8CAB7513 - -Count = 279 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304050607 -AD = 000102030405060708090A0B0C0D -CT = BEB004382E89514CCBD3C33C5331D95D96BE285EFEEA9E9D - -Count = 280 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304050607 -AD = 000102030405060708090A0B0C0D0E -CT = B5B97D75F484D18642BE94ECFEC3A873D3593E8C8EDD9C57 - -Count = 281 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304050607 -AD = 000102030405060708090A0B0C0D0E0F -CT = BF70FA81DAA0BEABA0C49273E67F673D538820D8542616CE - -Count = 282 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304050607 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 27FC2C50FAAA9E4C230EB8C6F0260E8132372403367D8100 - -Count = 283 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304050607 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = F2E0BCC398161C5F0087B6FD194C32F66A146BC9104C4F01 - -Count = 284 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304050607 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = 45BC907CC477CEDCA182A30A3C12FD4085F540850B9E26D0 - -Count = 285 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304050607 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 9AF7E0F3DB1FD362CD579FF0DAE7EE04462EC84B4DF49584 - -Count = 286 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304050607 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = 20FFC7DF7B5DDEF766662798F709DFD44A58C53E29777EB6 - -Count = 287 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304050607 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = 53E63A616D13F11146EC8CB40C511D1BAF6838E5047AFB33 - -Count = 288 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304050607 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 8566784987F8948468E9C512062A0811CFE738E2BAF0350D - -Count = 289 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304050607 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = BFC96EE0F4DA979DC84353733B0D60DA290726CCB3233A6F - -Count = 290 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304050607 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 63DB689257192C58DFC985137FB8F2AD33156C63503782F2 - -Count = 291 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304050607 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = 6CBD0D12809D6AF7E4DFAC048C42066B34507B705BC9726D - -Count = 292 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304050607 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 5B45C740257B97054DAB31D8564B0E568AACA784CF6A7E6B - -Count = 293 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304050607 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 39FA4083B5B65DFFE0765E5EE830B246533691AF84E363D4 - -Count = 294 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304050607 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = CD53843F6BE9BA119067F14F3431192FCA873E514F521C5A - -Count = 295 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304050607 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 64425959F9147E7B5DF65B885AE3E9D31B2BF539F30BADF5 - -Count = 296 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304050607 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = E89283627104F98E8B8D4953485DE5C1152366B90B33E122 - -Count = 297 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304050607 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = C42ABB98B2A9A8B8D60DC5A806BC4740032B61071FB9385B - -Count = 298 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708 -AD = -CT = 347E8C22BFBE1A02974A51E257334399A618F66DA5CAE539CB - -Count = 299 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708 -AD = 00 -CT = 813796E99F05180D2ECCC9967704F09240208ED1A74F6038C9 - -Count = 300 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708 -AD = 0001 -CT = D56C55D7D7AF0CC9FE49FD1D6D99392655B9A5E0C26836C180 - -Count = 301 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708 -AD = 000102 -CT = 26D92ABB8197BD19230804894656D086339B86AA2E8EBD6569 - -Count = 302 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708 -AD = 00010203 -CT = 77FB3EADBAAA1F105EB83BA0F77A3B0C68C1A036EAD08169A4 - -Count = 303 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708 -AD = 0001020304 -CT = 7918123BCF403C118DA2AC5352C0E8D21712BFF017028CC2FF - -Count = 304 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708 -AD = 000102030405 -CT = 122EB811CC499826C20B4A6F3DB5CCE1004CBD221C8BB1462B - -Count = 305 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708 -AD = 00010203040506 -CT = F7DD8B3AB1F10A1AF96B0B41E6DD30D360F6B5547160EAD20D - -Count = 306 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708 -AD = 0001020304050607 -CT = 7A8EADE73C1F230CA4F4997E772ABC17C4DBBF50DD3ADC0EC1 - -Count = 307 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708 -AD = 000102030405060708 -CT = DA95A170077C537F772AC91CABC378D7D59CED99E23FC8DE42 - -Count = 308 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708 -AD = 00010203040506070809 -CT = 61E009F42F5B34CAF4C36548A126259886B9BFF700F46D118D - -Count = 309 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708 -AD = 000102030405060708090A -CT = 144BC1AAD6C4DA83A2481DD7F9EE4C9881B9F616C2A4163E14 - -Count = 310 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708 -AD = 000102030405060708090A0B -CT = DF5E5472B5A5C57F8F6DC13DEEA16AE2C23DF638DFB65BA454 - -Count = 311 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708 -AD = 000102030405060708090A0B0C -CT = 68D4FEE9800814B0290875E183FBAB7EA22794F001BA82BA53 - -Count = 312 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708 -AD = 000102030405060708090A0B0C0D -CT = 192197BC698D397B01A9F196DFC7ADA56EB24894E038FAF0E4 - -Count = 313 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708 -AD = 000102030405060708090A0B0C0D0E -CT = DDA00B1554A43DE98CF107C488C44DE826E9BFFF46B5E5BF20 - -Count = 314 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708 -AD = 000102030405060708090A0B0C0D0E0F -CT = DE85AC2556CE65EA8AC68AC96D67F9AB7141DF614836186EC6 - -Count = 315 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = F32ABA45543E02514C8552E0A7C5CC8C808F9B3CECAF2F3C57 - -Count = 316 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 23F740F4E202F0C570010403701CC27AD620C6F62BF9DC26E9 - -Count = 317 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = 5C2A342C5ACAA4EB24FAC5221F8AA81545E83C4767F1E57B3B - -Count = 318 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = F2F5A97A0E3F2AD771C9535F01C0809A40D8965353FE2B4F07 - -Count = 319 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = 7B95A2BDFD8A86AFD35BAE46D6BA8C5C81B10A3E4BC488441A - -Count = 320 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = 4FFF2F80604F3366DC4A86F9BC6159F09644F935636FA076A9 - -Count = 321 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 0366959BAC5C7167650A63528974DE731A66A361C1E45305F0 - -Count = 322 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = A61994C9370B650BF8F3D3B9412BC48F441B6688CC46DE0EAB - -Count = 323 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = C36FC5E3EF88F85C0D54C519370E5DD1C301150D229A433AA4 - -Count = 324 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = F718BE808F5F92DE87DA61F88A4EAC11A0DBAF74E59F1C9216 - -Count = 325 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 1852A46E1CE2CB78D69C80E68C86652BC704115DE83516107D - -Count = 326 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 4CC574614FB6F1FF13F1A492F0851DF892DBD2BDBD8B9382DF - -Count = 327 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = 16A3391807EC2C206E4FE468C4ABAC3CACF4ECD0E9C90CAF5B - -Count = 328 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = B6777E54D3EC36AAD98576ECA389E1445AC02C5894ED07C34B - -Count = 329 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = D3B379E63836282B1D66F9F8D3FB27223C6C6E5E45ECA0E0F4 - -Count = 330 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 494BCF39EC608C2DAB3F508E10108E42C6D8F6DF6879ABCF6D - -Count = 331 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506070809 -AD = -CT = 9D6CC8C770DBC4135CF6D6033D609496EEC59ED3CA3B31F84564 - -Count = 332 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506070809 -AD = 00 -CT = F66B20C74C43A7D6184CB0EA240B6943214B9C768B73D58DB50B - -Count = 333 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506070809 -AD = 0001 -CT = 3E97D70F258CE3B3BDB621A78CB755498C36BDBB62070A87C13C - -Count = 334 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506070809 -AD = 000102 -CT = 9AB0E22DB57AC781DB4278B5EB741068BC2D281E315DCE840E73 - -Count = 335 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506070809 -AD = 00010203 -CT = 3CBCDACBA34A2CBD5D53080BA52531AB9155C970777A8F553DB9 - -Count = 336 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506070809 -AD = 0001020304 -CT = 64E4D03279EE87F1517FEAF19DF89A032DF8D39C25D5187F2585 - -Count = 337 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506070809 -AD = 000102030405 -CT = 8723CFCC657580C051E524964CCECE7F9FDCC95D74DB4E927008 - -Count = 338 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506070809 -AD = 00010203040506 -CT = BA23E8570F01E0E39842259CFDDF2CF036A14F6980AFF5BA11B2 - -Count = 339 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506070809 -AD = 0001020304050607 -CT = 4407DCF03039E923472EB938148D53D6CD4C0E8ACF739F2336E4 - -Count = 340 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506070809 -AD = 000102030405060708 -CT = 3DD3F7C21F2349CD6705EBBD86B807E85C07DC3B563520AC1505 - -Count = 341 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506070809 -AD = 00010203040506070809 -CT = FB52FDFF12803F938AD18EA2FBE544D3FB1F0D14C67167C4D5AD - -Count = 342 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506070809 -AD = 000102030405060708090A -CT = 3D7774582EAE81133C24D59AB811C87A44E65E822A2CD0F60BBA - -Count = 343 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506070809 -AD = 000102030405060708090A0B -CT = F3975B46722E23E4A3991E5F43C66692561FA66A59E4ACE94B18 - -Count = 344 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C -CT = 58705F880660C47364A65B31FB88E28ED30CA92CFF9D3B1EE8EE - -Count = 345 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C0D -CT = 5C933A027A467B04593788B06FAF7DD3B22D03BC776A0E078C6B - -Count = 346 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C0D0E -CT = 19B0A87789964A72F995763C47F58E3F3FE9F5574E35FF89AC2C - -Count = 347 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C0D0E0F -CT = ACDEA875E21F95AE17EBB7B0AD0EBB812C81407ECE57A611509D - -Count = 348 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 3D25F9D1550B659EABACD4349BEEB85E6DCD0BDA9B8B739B42C6 - -Count = 349 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = AD28DAA73402437285EDB0742F6E445918F4E626D68A6FB5B64B - -Count = 350 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = 21126A02A9E2EDE62FE0B17A451636781E0BB9FDB3B7D942B4DD - -Count = 351 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = C754BB83D17C76B02547DF1AF9DEE8C16CB630D36D929DFFA63D - -Count = 352 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = B592944653277D014FFED76A2864513B1EF72F057B1470FA1AAC - -Count = 353 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = 57EED3DA870AEEAEBCF92A092024CECDCF9B3087F8909C6A08AD - -Count = 354 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = F54F5B686F53CAE3944901FA6B7B9E0379157CCA4BD3A236B2CE - -Count = 355 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = E56E45C4E6F11D5CF78313CCE7CFED5FC83B1F4620686B6C5897 - -Count = 356 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 7227BCCFD935F2CA53908E7C4FA4C8662F1CA2916C74407B6107 - -Count = 357 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = 48B0E904473C977C0E983C5CAAA31521207221177533946B7BB0 - -Count = 358 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 9C8B27FA6402ACAB1410BE82A1B2CF0872C3DB23F5AB9B388C11 - -Count = 359 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 857DEFD50F383056F123833B20080A8B7D50AD335EEF7DCAD2CA - -Count = 360 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = A7152E836AD6F1A69C52462075F7D2D4CDB5E775520E45B8FB39 - -Count = 361 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 02F337DD380FA43354967EED42A635CAEC3C76BE7665F0C687CD - -Count = 362 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = CDB358A1CE565A18F68052079E43F4A792638E289BD96E90CB70 - -Count = 363 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 6ACE5734637A2FE34993D85B0B55F80B6664E5A9EC1F3470D883 - -Count = 364 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A -AD = -CT = 4AF14B99B418A6475EB4BAA759C82A1C74B89572796086E9D04F5D - -Count = 365 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A -AD = 00 -CT = D121FD3D5F959B23499A5F3778EA36B483DAC225C622613D68F275 - -Count = 366 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A -AD = 0001 -CT = 228EC2EE40102E97FD53D43FBE8819EA45DE530DAC6813D48ADEA6 - -Count = 367 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A -AD = 000102 -CT = 51A6CF44C9025173FF5F301F4F95869B15E89C69B7B29B971CC7F8 - -Count = 368 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A -AD = 00010203 -CT = 8934416119BA4DD57DFCDAE85F7C0AB7BF0CB116810A3373DDB7CF - -Count = 369 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A -AD = 0001020304 -CT = 8CB437A843A0D24BF4DE425A6D5876A735FC846E8E7D840E0D3E20 - -Count = 370 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A -AD = 000102030405 -CT = 895353CF7F29EA4789D2EE4D566E04D42B0276895E27BB75608D1A - -Count = 371 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A -AD = 00010203040506 -CT = D114255D1AAA58541A1EE2997EDCA3BDE27B0CB386A4082DF4F2E0 - -Count = 372 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A -AD = 0001020304050607 -CT = 1E95D6EECC1C2DC1DF5B77181F88F812B792BD1D9B9AB18E61AD91 - -Count = 373 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A -AD = 000102030405060708 -CT = C42BAE846950933EC267A4B82932B8709F62284A7F3DBFD64E9E37 - -Count = 374 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A -AD = 00010203040506070809 -CT = 76E3D61FCFEB1DFC88A74832E4E5482FF01CDA75DC5425EC21C6AE - -Count = 375 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A -AD = 000102030405060708090A -CT = 13DCD57C766735152E3D981F23E5E268B056F874E9DF396220F1F9 - -Count = 376 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A -AD = 000102030405060708090A0B -CT = 46D192356055FB8C3BB4218E1200F4B1EDC7FBF8BEEE257D7A2B3E - -Count = 377 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C -CT = 31CA8C7B9B1FAAEDD158C828824B6FE22124911D37CFDC3B141099 - -Count = 378 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C0D -CT = E5374017F2C0A1795152287E6E2EA243AF4158F498C98F83A3AB01 - -Count = 379 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C0D0E -CT = CB1FA104466E1CEDBCCF05752C8A82C1E58A9D4EB91E690B58E6BC - -Count = 380 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C0D0E0F -CT = F1A57034E12551E2D16CDA212344EBD0B579267A0C37F4DAC88698 - -Count = 381 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 9FF8464E311EECECCD6225A7342F7AE1A9544640EF70D35EA0AF04 - -Count = 382 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = CA469F62FA5881B2F23655C77DB7CEB4A28F68D3BCA477CD3E4EF8 - -Count = 383 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = 1BF74DBE34A5BC07AD4D4124FEEEE4914EA50CADB03930A640CBB4 - -Count = 384 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 33D607A7B0F76C0472278CA7D370DB85D26680F4EB3BD9D6E9DB07 - -Count = 385 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = 938F5E8E1B2CB0A03840BD694C60095420C9E6B0EEA53652D68122 - -Count = 386 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = ADA939040F19F2D83A52A520DCD900B454453646A57D934B77FB73 - -Count = 387 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 25755B74489367E152657A9CA918F10367DBFEE20344DB179D8C21 - -Count = 388 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = 0FF3DEED5EE07566179477E5DC5E8A424871E36F5E160FF7FAE5AC - -Count = 389 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 121EA90C481EE72077AC3FC1EFFF02D84D5B660D2872375330229A - -Count = 390 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = 03CF5AD81897C9F81F7C758C2FA94FA3643CAB0AC0A25899EC00DF - -Count = 391 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = DF4AA159DF587B63B116489C5D9A2124DDC48A95F5FE8FB2AF0998 - -Count = 392 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 6D25CEB89AE43B11698249B6E2D2F044E8181BC97EE8ED039B48D8 - -Count = 393 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = 5AFD962498236132D85DA1B8C18658D20CB65351AA4AE2F361AE00 - -Count = 394 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = E02AB9E07B94922CC75E74686EBFE8974B922B6DE8997E19A3EF7A - -Count = 395 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = AF15A6B9528EA7C151ADA499239B9F0347840BF7155FBF38A07943 - -Count = 396 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = EC1C68C4747D84282A50B39DC94DE5005702CDA703347E1D7BAB85 - -Count = 397 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B -AD = -CT = B6072CA9BE4C5B5F12663DE3B3D59D8B737A768C8ECDD632C6ED8C58 - -Count = 398 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B -AD = 00 -CT = 096E3D4C7625977B638F72F6B581EA31D598D5499E351DB6EC14BB34 - -Count = 399 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B -AD = 0001 -CT = DE6907C0F3687EBEAFF48B080D70CF31176CB44A944E00B23C6167D3 - -Count = 400 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B -AD = 000102 -CT = 89DEE939CC1E2CFB61EE6BE3D457746236AA9BDDF9CB359C377163B7 - -Count = 401 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B -AD = 00010203 -CT = B970E33B329CB2718EE1EB446747072DD56836A3D72C21100BB00AC5 - -Count = 402 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B -AD = 0001020304 -CT = 30D098A4048FB96BD37DBD2A69491177555D7E60013F16B0F332E64C - -Count = 403 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B -AD = 000102030405 -CT = 8372334B2BACA04ED5091BE34E6294CA4F10F374180D1579DFA18590 - -Count = 404 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B -AD = 00010203040506 -CT = 45AEF48D63A969A2234B20A30F6B460B46DB6E4074DBB8B0D9EC72B0 - -Count = 405 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B -AD = 0001020304050607 -CT = 384C288F2FE7ECEE416C0C2DE4081CE357B4A4AD2766FEE203A25587 - -Count = 406 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B -AD = 000102030405060708 -CT = 19A34F3DF21959A4A6C07DB5C14FC408735DC10845405C824831A1AE - -Count = 407 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B -AD = 00010203040506070809 -CT = F756E90A71A58645231B0CA0940F5A71379971438F4AE3FE6D35E85D - -Count = 408 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B -AD = 000102030405060708090A -CT = AD3F6A3EA96D3FD9D8D4AF6B282CDF4AFBFF546D4C30D1A0B71421B3 - -Count = 409 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B -CT = ABB13CBE268767A6B2BBA4ADD02D7C358F8732DE707D1976EA74A3B6 - -Count = 410 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C -CT = F51CBA59B5FE18425D4D95F06538D805D5AD0575DB01D34EF87C0849 - -Count = 411 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C0D -CT = D53EC39C3DE1CBE1A8FD511832CEC17C76BE141289B926DE1E03491B - -Count = 412 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C0D0E -CT = EE918777CD7BAA142CA24D75D240E7AF22C001F9BD71CE5FD722B19F - -Count = 413 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C0D0E0F -CT = 04C39FBE8836E3AA0CD6C1EE424FD0BF84064D120548BEF493D365FC - -Count = 414 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 265D382078DD9DDAFFC17D6D8A227B15DB9B5D4BAE925C282A4B753D - -Count = 415 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 1EFAB7BE5373E45A4A50B445A7B926B248BF6220CFA8680D8526F573 - -Count = 416 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = 0B39A73B2AE94459946CA031D1E8D8EE0C2B13864ADEF24A119DA319 - -Count = 417 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 5461A06CBDEAB90F0CD57474FEDD958E5F8AB8F0C35DCEE714CCC4F5 - -Count = 418 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = 2884760AE8465AE66FF360C77828CA9912F829C6CA74C59D1C9FA6EE - -Count = 419 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = E8D60CD75A37B3B8D3306C58406F0AEF169BCD0413A0DC2261DBBD21 - -Count = 420 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = C27FAA41B816D056E078993D9BD87E064D91A2A78B41D54B0F28107F - -Count = 421 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = 2BE382C1603D14DC6B4862ECA72001B3E856CCC1EFE07DAFAD768179 - -Count = 422 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 1110EA2BB02F941A0DE8EC74EE91778CE2FE9A48F00D6FDE72E1C425 - -Count = 423 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = 5AC43D0BB83720133B4C8E8E44509B5AB0EABEAF01A91563724F6824 - -Count = 424 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 778050B10DDAF53226037C27FBD090D73A37EFA5ECCA8B26AC8DF12D - -Count = 425 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 09981F3516C22CD0875973393EDBE12420A917B70A0296F2BEE9C70D - -Count = 426 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = FC93630AA9864AC69A10699935186CDC49C1250B485BB70E36D6BFD3 - -Count = 427 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 34F49D0CD7F8296E4A9BA3B0E7825146FE1C3A375DD4B144371BCBBE - -Count = 428 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = 5C1427C6A55F4FA0481CABE5FB4BD54EC5E55388D0320FFD10F318D0 - -Count = 429 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 64401FD9AF003BE89B7CA87FC5F663DCEB033254507258724F3E3B7C - -Count = 430 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C -AD = -CT = F9B3152B17C536AD9A68DA1D9F71334063DC81E548AC9FA69F0ACBA53D - -Count = 431 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C -AD = 00 -CT = 005D23922DAB4D15115B07C1DEE45FD9FB6DB267E337AE0482543945BD - -Count = 432 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C -AD = 0001 -CT = C28B412EA1D372AB63CD5DECF599606758660F74910D93C18E49644747 - -Count = 433 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C -AD = 000102 -CT = A85F71278FD0E1F0D32FD523A49CBC5B45716B127AE420497344EC8795 - -Count = 434 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C -AD = 00010203 -CT = E2FC92998C44625C62061E8185BE9051A8DF573D6239F2CCA718CD10F3 - -Count = 435 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C -AD = 0001020304 -CT = B2F3966C2BA5DF5094E939021EF702CAFC25F84EBD8290BD9F328041ED - -Count = 436 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C -AD = 000102030405 -CT = 46866A83B7ABF6753D8C26EC574CA5DD8116D353D7A00060350D386267 - -Count = 437 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C -AD = 00010203040506 -CT = 0FFE3F038C26BD91BE8C49B4EAEEBAB864AA437AAF456AC5361265EA57 - -Count = 438 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C -AD = 0001020304050607 -CT = E93039E41172C918A902F2A0FB211078B3F8E1015EA7AFEC19A39508CC - -Count = 439 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C -AD = 000102030405060708 -CT = BCA28C0BC6EBB463969B1497C2D7B0C1749D4774E8BCF849E0EDB4B37A - -Count = 440 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C -AD = 00010203040506070809 -CT = B964A367954137AFF1A0378FF701868C1D6B9CB056467ACCE1B0B52986 - -Count = 441 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A -CT = D81319B96238D8856EAA1CDCD2B6235CFE8E315B02147ECAE16F2E5D7F - -Count = 442 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B -CT = D1686E0F1BD0803F19820364EDCE770B6AA3927C2F6712B7F1242040CB - -Count = 443 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C -CT = 80858398ABF6D8B17BFD7C5414AD22ECD6724B6CE8D58948E2DD0B1D1F - -Count = 444 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C0D -CT = BBF43E0ED99CD35E9E0ACCB8808E3ADFE0F972EF51315993B7B47D24CE - -Count = 445 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C0D0E -CT = DE8A39DB464936AED7A2D3C0E47203C9A473F684C98A063C4CB529C7AE - -Count = 446 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C0D0E0F -CT = 0FD75349954275CB9FEEABAAC92D1F536FA8E9A939F3301CB7520D4324 - -Count = 447 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 1D5F1D7CD1DB0B2A5AF9315A5BCFC62AF47A6BC2A8448AE6245C3589B5 - -Count = 448 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 46E98F6BE94E2A3738D300C83E11CD9CA455F162BDA43E2D54ACE610BC - -Count = 449 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = 94F561AB87A6A3610EC4495A44287CDE2A3F28E8FC3E38B691FA968BB5 - -Count = 450 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 36ED481F96CC39C0984923EE7503428D0085678CAB98D5F6A0A0438D29 - -Count = 451 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = F03AB2521FC7FF994A4D7B666EE00FEEB905943F4635D49349E63BA2DF - -Count = 452 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = A4861E3871F413EEBEB84493BBC2BF31D9493DDA46AC3352DB9539FD65 - -Count = 453 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = E300E7000C9FEFF89D0CBF5737811451337B2C0B57BBFF16765E017104 - -Count = 454 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = 5AC5D9987D8AAB2918B5B84EE99277630815D33F485E12ABE37AAF6568 - -Count = 455 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = ACC5765F9DA9B5BBE1FC8406C3085FAF746D22BE2CDA08C120DF8714A2 - -Count = 456 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = 7F23271862D80F5D374381C070CD9D12642B34FE400349940174DDCC55 - -Count = 457 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 484C50B37D1D148E0283DF665829A62D47FBE629E76485580DA596926D - -Count = 458 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = A20C9084D02C068B1AB1E575E7C0A02B15706DC199805C781AFDA1A9C7 - -Count = 459 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = 765371DE14E4DE1F23603E4A2B364633BA8DDF56C5A8F5D59F0C208F5F - -Count = 460 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 83FC24A84A6E99887C8169FC07AB8EA8515EF3371E0449475D0809EFEC - -Count = 461 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = 44A98404CB9B41E572C9834D6BF67F3EB8D4C7C5D85B6C9538DFF11464 - -Count = 462 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 1208E7347F87E7A737A619E6EB4C288F2E4B202A7E1813A04361872D33 - -Count = 463 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D -AD = -CT = 1F3012B52089F3479F6AF8B21C917092684EB2F6B39972FCD1B38F0896A7 - -Count = 464 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D -AD = 00 -CT = B3634D04B813AB6D97692968044B5C88917B03982B201B15D3E7FE3A2530 - -Count = 465 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D -AD = 0001 -CT = E8F3118E9E6AF0A536A3C1A2449DE7457E7C3F78B065A22FED069D996373 - -Count = 466 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D -AD = 000102 -CT = 005424D2634C12007DC6487A7C5C24787BE5D0EA31E74A2973CBD727A2BD - -Count = 467 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D -AD = 00010203 -CT = 4BCB8407A9E103CBA66AD3551B75C969C17C225C38E2107C90B6BDDF154A - -Count = 468 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D -AD = 0001020304 -CT = BDDDEAF9E52B406B743C1CD432B8F8765D989B1C6048CAC1E49D14DD121F - -Count = 469 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D -AD = 000102030405 -CT = C5D9FA87B4C6234A156BB50427D28144E839B14B9F65B58AE03D02472F66 - -Count = 470 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D -AD = 00010203040506 -CT = E6A27D8D62E3DDBD2C69C43438C4D55190D4D5B6DAAC8ED67D8FC566C182 - -Count = 471 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D -AD = 0001020304050607 -CT = F087A43CF9403AF4F553A2958E1ABB0AFC559CCD2950AF3233EE89FDBA04 - -Count = 472 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708 -CT = 6BD9D955CB4BCBB8FD3FECB87732893A667F9C280935F8A8DDE724400842 - -Count = 473 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D -AD = 00010203040506070809 -CT = CBC0ED6D06E272D8836F10446E3BB9C0B0851E1B077D37DF69C27F9469B1 - -Count = 474 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A -CT = 51B70ADC89AF65F6C7BEC984FC349113FBA9304D1B0C4657ED1D590675EB - -Count = 475 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B -CT = 9D27F21D3F393605EF308E307F79C73C020F9DBAD27EE09F2DC2CF9F43A2 - -Count = 476 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C -CT = 14BC5A426127E8A26375CCA18A8CC39B9369519699DCDFA3185A584F29B8 - -Count = 477 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C0D -CT = 8B454240021DFD52EA3AB9342D60709DA131EA92F7B5E8B3B67FAC390006 - -Count = 478 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C0D0E -CT = 02A33BCC03093C1BA3C3F8B841734170244135AF63AD18C6F050D6BD042D - -Count = 479 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C0D0E0F -CT = 796213FBE5D757574FA71C9591DCF8D42B981092A9CD7D1B93FD6DB2F8A3 - -Count = 480 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 64CA5A53A2DA0F19772201EF78319E54D79F0BCBDA73D6F4FDE688F17DDE - -Count = 481 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = B7CBCAAE6C9D6517AB1EFD2F6498C71675FB2972D68B42A0A47A60584653 - -Count = 482 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = 7C01FBF9F0AF62CBFBA437403B73AB5558B35BFB4CEF213A646EFCB145A8 - -Count = 483 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 57FA21919ACEED8B57FD6FE5DDCD749A6EAD0E455CF348FAA8B0E125FD87 - -Count = 484 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = 41D1B1AAD4449E978859BFBFA9752B53516210FDC6BFBE416E14EF8A06AB - -Count = 485 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = 859BDFA9A518C0CD67C0269DBF90CF019874ACE8D798EB9A89966044E847 - -Count = 486 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 19AE4D1FA96DE4C4FABE0868216A9549523A098F7397D45666BD67DC1D47 - -Count = 487 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = 612606C66D9DDEF44EB0148655908C7ABE0079F3BA9921B0A6B1E2F2FB5D - -Count = 488 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = CD5D2544F3C11D33D7C75F501E45B040D41B3800236D7D5551725D045C4E - -Count = 489 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = 051F77A86CA9B62185C47792E3188B37DF290A9B55A5F84FBF8456AE4E4E - -Count = 490 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 3C06C4AA7C46DFD1CC3EB41265A626D6874AC61DC4674789342D4EB12600 - -Count = 491 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = A74355139BD7476DB7D2C5493CF2BFB206CCC4B832D6996538A818FEEBFD - -Count = 492 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = FEFEBC10E0E8C3747F787DB170C7710B62A458C018A1B4AA7D5370FED334 - -Count = 493 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 392F674514389D45A77206A1418300BE4C10824AE943C4F9F8D653F2C59C - -Count = 494 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = DE2CC941349120C6A8BAFE74DC32C5DD3C51170F63BF2FB7486461B08407 - -Count = 495 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = E832F83D8116DC9F972594CCC6B3093EF5998061DD278DC080B4AE521E05 - -Count = 496 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E -AD = -CT = 0814268761BE7796DEE293441604141A6F2174E840F987375AE9FBDE8C1C98 - -Count = 497 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E -AD = 00 -CT = 41C84D79F5E1A1438B74E3CC599F5DE404B87AC525A2A9052A2738E855A6A3 - -Count = 498 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E -AD = 0001 -CT = 4FE77DCBC52AABDDA342E94120ECF8C52319DE15CCF0935EE7B199DAC5F320 - -Count = 499 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E -AD = 000102 -CT = 1BB1915400683FC451151791759CA771790D47582273B2C2B27E8F51158489 - -Count = 500 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E -AD = 00010203 -CT = A7130D3F87C7016C054813DD56DACFBC6C6DEC3552B0A37833F581B9D85A92 - -Count = 501 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E -AD = 0001020304 -CT = EEEAAAACD30FACB9B7D2B6F937484AFC7D492FCE4B500E987C6D08737D6DFB - -Count = 502 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405 -CT = 1525933905783909F68DEAE8266035DC4D21ACAA94921FCA75B9D61C0728DF - -Count = 503 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E -AD = 00010203040506 -CT = 93C1E45781F138953053892F94FD9CEF514F01ED12FECC6818C7F3C028741B - -Count = 504 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E -AD = 0001020304050607 -CT = 2CCF4FEDEA8847D2D73C774BB84D98D89C526EC2CC8F478E2313C9FAA76DAB - -Count = 505 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708 -CT = A6744A09C45FF18C7481E85D16844BBBAA8200BE79EBDF86F9464B1B781267 - -Count = 506 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E -AD = 00010203040506070809 -CT = 3FA059DB7448BF67980101BAD175CDCB402613DF1F8B88279AA6ED09D4F324 - -Count = 507 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A -CT = 00CC449AD60D5C98E93C1630736C04C53BF47E5AD90F07BD5B531DB46D55C6 - -Count = 508 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B -CT = 3727D45FEC60AEAB66EBF1FF4D3744306504B097ACE45485E3C3AFD26B2D01 - -Count = 509 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C -CT = 63C88BDB2786E9DC97F248C37F57AB22DE05B909EBE216EEECAC2B11B4F4FC - -Count = 510 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C0D -CT = 8A9404A346FDF035C1ABBA3E2EEF2AEA51B276A918D948356AF267E39CE4FC - -Count = 511 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C0D0E -CT = B99E3E630384B46F9AFB43FDA70ADE4C8163A4BF27E942AECCDB8019CF2BB0 - -Count = 512 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C0D0E0F -CT = B88C03E9F8241B7245271283B4EACE275B365B5E3A751A7896EC0AE219AA76 - -Count = 513 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 74F329880D222750DD6A89FE9FF92790B9A9D91987BA07F9C083DBCE46F4E9 - -Count = 514 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 779604D1E1B78E6420C9742446CCED3CAA572A44EAF16B7F2FB208D89ED143 - -Count = 515 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = 68EB3E163540DBD526DA8D69FEEF6E68ACFBF174AF2CC09085DC9123D692D8 - -Count = 516 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 997F8259C68B9599CFCF659B18209653F3F084F84362B7EBDF8864A6C261E3 - -Count = 517 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = 8B31E8CA648DF587E926D4396EB5AE4A939D9B8D378CC4519D826486D17EB2 - -Count = 518 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = EFD952E4E926B97F8E20F0182F978BB79221C03A456968C438E1D981424D1A - -Count = 519 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 6E33A72FA1F260A54F6A05EBD9A28311B1DD725B29D76F5BB5CA263C8D9C8E - -Count = 520 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = B421E3552721890907B9BF4D2DD77B5381CC3B57C4F848A76A1FA871131609 - -Count = 521 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = E86E185713238A2ED4EC687C831CBE82F7E4AD3B56DE1AB200F6E843A2CBA2 - -Count = 522 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = 3F723DBBF8C6B70D8E38600F03BDAC2D5A60AA67C0AF2D72346F5708061E2C - -Count = 523 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 2075BED4C0D10FF8F251E1EFD62914AF49445C0DD4E3C7BBF6097508D232FE - -Count = 524 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = B487540196CA00A2252C6212BD11871C10EB205AF78D4EC359CD3A52A103D7 - -Count = 525 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = DA66F80644098248912BB1887FAE94C4158FA362E3A3DAFB3B899F074D56D0 - -Count = 526 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 0F846437746D1ABAECA44628335BC345E71BAE8E039770B226D9C5A5E83719 - -Count = 527 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = AA8D5499F2FF60DF5B97BF86C560FE1C0CE733EE802C37C488D20751FCCE3E - -Count = 528 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = EF35D807A587391EA3CA82875B840ECE60A452083A254DE72BF025DE0CB361 - -Count = 529 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F -AD = -CT = 72B69AA8E5E938270F5A833F9C6189FE3D6A8B91FBF30B57274C57A712BC6D56 - -Count = 530 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F -AD = 00 -CT = F4E46141D6FB67C7278AB9038D220478D764CD694EF091F72AC66CD461E18089 - -Count = 531 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F -AD = 0001 -CT = 964E12006779D9B2EB6FC03B0FAC275A73AFC163268F71029A7A06FC3A7AA23F - -Count = 532 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102 -CT = 9FD7D531CAFB79B2D287418E6A6D84E921621D1A64619FF95AC692587F7011CE - -Count = 533 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F -AD = 00010203 -CT = 63C67AB15D00F77563DEE6D8D171959A106B8DDD2717704AB27373C3CC25B1A7 - -Count = 534 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F -AD = 0001020304 -CT = 4364A07D3793816CF069E327B5B360B03B15152F04CB3F3552C5870B6E42FA25 - -Count = 535 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405 -CT = 43885FA7F5C9BF1718B23FE7C92C364B326E215289760DB0A7B11973305A7FEA - -Count = 536 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F -AD = 00010203040506 -CT = F7E42781AED9FEBDD652D3A7020FFD943FB9DE6DEC0CDC4F697CBD2C181FECF5 - -Count = 537 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F -AD = 0001020304050607 -CT = 55B16E6C5785F6674831DEFA02E304162960483512829762F36B15683DAA0833 - -Count = 538 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708 -CT = 5E78505B86FAB32ACC44E9661A33EE32A23EC33BC5A8D14D59BFDFE5232CD8F8 - -Count = 539 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F -AD = 00010203040506070809 -CT = 1909F7DC70A95B298A64C1FF0BAACC08AD5D99051BEB9D49CF2EDDA275E6D1B8 - -Count = 540 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A -CT = 7C5EC1B0E56B2D2F05C2E2FAD4E94E3494DCB7F953216EE73272FC1FB542BC99 - -Count = 541 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B -CT = BAE58B9006C8AA4CBB4F5457BE016F6F93911DA93D90B93182BBD3BAC0AC0306 - -Count = 542 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C -CT = E9060841AB42221AB03243D26DB0286A07BA86A0A4A7AE5D7318054748E03BB5 - -Count = 543 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C0D -CT = 7DC6E1C99954E9E4FD73196B40D90E477650C154E55A5913C1A242F44839A743 - -Count = 544 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C0D0E -CT = 5FBF55900596129676F01594255E34E89157D8FE97AD2D688599EAF5A1A8A442 - -Count = 545 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C0D0E0F -CT = 0E624BEF8292E8FF3ADE05C6772EE60D1AC055795B3496D65548342A689D2E3B - -Count = 546 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 81B97A2CA864AEB0A0C1CA3858172C649F8883FEF9031FF0EC24D1B42124E3B3 - -Count = 547 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 8CE9790161A74786B0C33BD10F61006B00090F3F8E8022D89579A88203DC161E - -Count = 548 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = 91F17000828C2E2D05FA7E03FAE242DFB7E96504280ADCB348AA345531C0FE0C - -Count = 549 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = C551742082D49A7DD18F52E98A53C61A77F4D551B82F24F41527BEB02BC83B13 - -Count = 550 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = 6604D40D48F7A37FE09659480820F9E25672A7353E83A2665F384E42EDC01B44 - -Count = 551 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = F9FE9CA66FAE49C69441B60DACEDF789CC81A647B35938877FB8052530944A13 - -Count = 552 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 45EF0DB34038D84BB862275780CB5E1BB4D648D4D10B911D128DBE8597D8342D - -Count = 553 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = A08E019D13D706A5D22E42D09318A799BFA512646F4C86FA1116E89FD88EBB43 - -Count = 554 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 5FFB5B7E1E002A07B5FA4B1C72AB120281C1FED2187314475D8230FCD4347F13 - -Count = 555 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = EE0821EF0A01E3B88594EFE771FBE650D91DE5BFCD5D53459FFAD905106C2615 - -Count = 556 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 4AD176AB1F0793C890BAE4D02698526144B41358AE5765AC416C183DE1F1B7A0 - -Count = 557 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 42684FA8B9D91A27F5C47D290B2414FC2158B848BE015E9C8D785E7E8453AA93 - -Count = 558 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = 48B802C68F0A2B808A4FCDA2DBED47C673B5FEFB06B2B89F0B6615213A39AE9A - -Count = 559 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 82E89598CA017800FF30B7CF55A058D01B511565332605866A487853FAA75FC3 - -Count = 560 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = A441FECC7B67796ADE538AD911FDB7F2EE4B8B9868FC0BED1ABDFF55B955C9D8 - -Count = 561 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 889DDAC3ECCA8F9DBF511BFB8525C39844150CA528A2D1F4C59E5B1EF15C0AC7 - -Count = 562 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10 -AD = -CT = FC64EF2EBBE93E1FE7509EB857E131554D46CD635DBEE699208E4D9D4903078035 - -Count = 563 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 00 -CT = 690B7142586015689C63A2A48EF02734BCC7B17CCD00F291C3382C12F63C49C58D - -Count = 564 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 0001 -CT = 95F3B1709AE415CACE82A2E06C9A66C59F5D39EE14A369419AE40FADA1B3ABEB27 - -Count = 565 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102 -CT = 148AAC31E7C298F28FF99FA4E4438A512131CCEF80740DDC47A19EEDADF73151FB - -Count = 566 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 00010203 -CT = 8B8A8D0EB11A6143CF65574BF82789DC39BB8CD84EC038B9024E28532C61F0E688 - -Count = 567 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 0001020304 -CT = 6AE3C28426314E5138873999A245C45D39FEC3C7D5EEA2D8D2AFEE33FE8EA145EA - -Count = 568 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405 -CT = 54F676E7536251D7736201EA3F2C6B6345F24570AB643E65B9DCEB11EC27873DF8 - -Count = 569 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 00010203040506 -CT = 07E3FA0DC5FF8B6C99450F1C8B8466E316D44E1BC1A3C97C5E07DBB1F1A7F9F6AA - -Count = 570 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 0001020304050607 -CT = 49AFF38D0C667675B3550D6C8488B0BB9ACB84F86930172BCEEDBC2DA2BB7ACB6B - -Count = 571 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708 -CT = B39D27380C76E8CC5AA2D5026FB10641DDDEEC3B8F7FF7987587DDE9B5845B34C6 - -Count = 572 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 00010203040506070809 -CT = 952CD59D4DE61263898EB96121248C415E0B28140A887C8599A672F13CD6E88583 - -Count = 573 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A -CT = 2442D51A723EA2C44752C8378FB1416E40B32AF3C88AFD05CC097AE6716AC6B560 - -Count = 574 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B -CT = 79A705324C67E977351BA526F1FB1619878E7A833D0D7EEC743AE3165843DB46DA - -Count = 575 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C -CT = 47D507DE7E66B6CF56B962FFC831231C4F071B1675A9ED5F7144DCE4C59979CDE0 - -Count = 576 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C0D -CT = C67A2B9CF2438FFF46E4E502E89D929DAA86896016A263B2AE0E27EC87EC112B8E - -Count = 577 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C0D0E -CT = 0D86EC289A42443815D45593A38C659195762348ABE92B2CB35E68C414E83BEAFC - -Count = 578 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C0D0E0F -CT = 88B0FE04A52B4D0452013914ECC21B1DE9C0A4E93CFF17A34F0F4CD979C1056C33 - -Count = 579 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = EAE814B305EB0EFC4D88D47999234100C9B52640618AE066B1A7D30AEB191EB87E - -Count = 580 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 0E4F7D29A6B51B78F588C86195AC9883750B34D807B39F0EB4D701F4A5BAE80210 - -Count = 581 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = C25089DD525F35EF255E49BA0ABF890B3DB2138B4459C7C418425B1248ED6CC15E - -Count = 582 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 69E529B6BA5627E422A40EC0C5319FB86E3AC99782F1946A6412539C1904B697B4 - -Count = 583 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = A9327A10D1CC83AA836B3C7CD26211BE13D17B9CC5BC64BE0ED9E5C450D6EAC365 - -Count = 584 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = 7DC2E4A7DAAA5765D3662718E5D37BED57378865C750BE05D09DC8B0FC548A17C7 - -Count = 585 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 5FDDA50D00D4199D940EEDEF1D656F9F6DC5C8793F4CC654E8DECE1EFF79CAC050 - -Count = 586 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = 4E234F912E2EA773A22DFE062AF0DBDC1205E14CDF12058C1C2E54635A0109979F - -Count = 587 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = C7372856BDAEA8F82D91D6C99AF3ECCAD1A2594F940C3CB44FFB3284C7A394F766 - -Count = 588 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = CEBB002340C98B1A329822B7EC872F2F637A641FD1A05853E8A9C3451C9C09F520 - -Count = 589 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 22D0B9DFC94E27338C0022FC855B3E92977C1B166E377802EA6608FF16C2734F41 - -Count = 590 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 50F94C234B6380EA85A237F7055E4B4E51DEBA3869337D009F9F52B0D01C3BE45F - -Count = 591 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = B1B3F16CD4E682B222C313B061341CAE4511A146C15D8F8FCB7CBE8FE98359AEDD - -Count = 592 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = F143604A0AF6811E807C51E09039BB46078E4D8862195D0F46ACCC836DBBC5A3C4 - -Count = 593 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = 4A0A305F754F60051B16B6B5940B7304BD4B819B3D55E87BAD19B6A1B10B8F5632 - -Count = 594 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = B9B1FF125786537D3CFD02B8DE7FC4F1C178C7CF0D7ABD19E7F3C11B9CAAF4CB49 - -Count = 595 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = -CT = 2109B93660A3ACA0FE3D557E78DEF1B6B1530B0ADE7E19517055BE1D51A82371CFC1 - -Count = 596 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 00 -CT = 2D167B6895769ADED9F3B7A918D29977B0FE0C7BFEA25FBA45527F3066F35E4BFAAD - -Count = 597 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 0001 -CT = 9F65D199BC84040075C28374B1B778A28C1375ABE9A01388258675AFC77D5C9D32B1 - -Count = 598 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102 -CT = F1F62FE5B991596EC655B40C6297F6D8D6A361690D8643E42BB91F5876BA67282DA0 - -Count = 599 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 00010203 -CT = 0CDBCCCF61C6FC2A873408F86A9019B89483DB9FB591D67141E5338D4919E5FA9781 - -Count = 600 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 0001020304 -CT = 90B1ADF266F912F8A8570D2F20A7640FA5B67A01FAF5CBEF5F06C50EB33786555072 - -Count = 601 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405 -CT = 6323C22371B994931DA525C063DFEF2FA884BB27A3DEA360300A21863EDB9E75B62B - -Count = 602 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 00010203040506 -CT = 41A832B631F8BB0EECB2C643EAD5190FB51A65BF105CC26ED00FA07D87D4295499B5 - -Count = 603 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 0001020304050607 -CT = 12C84F7E0E27B1E03753057977372A959D35DD1B450EDC6F2F8B2E2D3D586AA7DBE7 - -Count = 604 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708 -CT = 01AF8D86A68FE4070460D0C23EA3A0E8734265E185B86D3694CA1EAAFD8E9338906A - -Count = 605 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 00010203040506070809 -CT = C2D7CB46D268AEE9F350EBBDC769C333F1CD4D859903DE5BFEB51DE3CA40507D910E - -Count = 606 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A -CT = 0B80BD48387C2773D57056C8141F69B31D11971E0E4E0877D85E7A0F638AE3B8B4C5 - -Count = 607 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B -CT = 2C61EBA6A10DB92A2E7AD2986DD9518B964EEEEF5EA6718FB9CC1A65925608FF1759 - -Count = 608 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C -CT = 7B519E9CA25291828D0F4534C8DD644854A93801143DD28FC84EEE9297821DF76B60 - -Count = 609 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C0D -CT = 6EB1EC631DF0E3CFFB5C70121C0E63F06B27B78DCCB19767AB350BAC6863A1E6FC34 - -Count = 610 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C0D0E -CT = 640E77B30A8CC4FBE1F7AC67F565069A6FA7A8253E4DD7248CDC9F8D25D7D3200820 - -Count = 611 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C0D0E0F -CT = 5612698AB3FABBCA4C097D023A15E66369422A8AA58799B8E51D040CADA36B3EADDF - -Count = 612 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 356BAC1422E02753211AD6A9EA77FDF2AAB4676C3361EAC2272FE45BC48526D12404 - -Count = 613 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = D7C2A44871F203BF47F812E49F28FE18FA25CB777AC0B98DD3A96DEDF95CF33E4ACC - -Count = 614 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = 31E0E09260F67C64A7EE7CA18BAEB13762114CACBC5C99049ED677899FEC4A691B34 - -Count = 615 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 4E461FC84B53BC73630AD42BA8D37A2A3BD8F91E5ACEA64194EC82B702E70353E2BC - -Count = 616 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = D18CDB50BA2F8CD6E2EFC958F1B96753A78CFCA08143F3C3DFD75248F62DDAB1565C - -Count = 617 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = 82FDF9595A36C525893FA635C4F7FD9777B21EC3D3E976A9D9E2BBF848335B6D6840 - -Count = 618 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 2287DB0DA63EF24BAACDE2D6F60C4720CD6BD2A882F15048AC1CC4045B5E699D1F69 - -Count = 619 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = 7605BDC67FC6695D343E3905DB4C04D4CFDD41C1F171F72C3C62F6A4C40FB3ACBDDB - -Count = 620 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 662D1DBDFB7ECD31205ED82F9B83E4766973B370374CDEE13D26702F35EF234393D2 - -Count = 621 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = C3C95C978FFBC97216BC4B9261A5E715AB898AAF0B46D3B59881659A5B3E03764D33 - -Count = 622 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 4192053DDD9B0F591F3565E2AC3CEEFC1D539B6C0D503F8CE58D9DE782F9A9F14933 - -Count = 623 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 9C20969A274D61E54E8B582429D66EF4DF4F9AF99B14ABD2380D0B4AACBC31FF9DDC - -Count = 624 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = EAE3FC0F9280A80157F4BD471A3CE25C1AD22142EF3791AADE311404521D1546F9A5 - -Count = 625 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 82926E7053B8E7B2E72F5D960EAA54051D5C05797DE0A53F28D8B395BE95D890F647 - -Count = 626 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = 9B69C22291AA9C74EBE6AACEDF32388426BFB1FD3DD70AF955204928A2B6043B6451 - -Count = 627 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = A70D17D3963607BAA2696DC07F7C6D2DA00D315465210631F223283307160424C1A1 - -Count = 628 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = -CT = A9009293A68B5A59DA7B43E96E075DACC834061B7B50F5E836A0D57A39A3AAA6080AA8 - -Count = 629 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 00 -CT = 7D7FE7550CB243BABC80C6C05A5EB22EA054E32B90F437A8D1B408AE54AB11748930E7 - -Count = 630 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 0001 -CT = 51E803DDD0B93DF44D0301CA81449599945542FD28E03B51807FFD9C0CD970E341195B - -Count = 631 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102 -CT = BE09316B04C023AC12C2F4349F1CA51E4129FD84420960065A175C0B956F24C203C38A - -Count = 632 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 00010203 -CT = 7EB92200583DE87CE9E24F43F7F888BBBD91AB6FC408509646C22A6FA1A5818173BF53 - -Count = 633 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 0001020304 -CT = FE961E4F7A2518CA3A76A52F769DA9B6D33FEA448508C666CFB8F29D34BD6CDC718A7A - -Count = 634 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405 -CT = E64300C9AC7FB4308ACB210598B6D0D182B393D8200D3C185781EB7439AAC57760A13A - -Count = 635 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 00010203040506 -CT = 6762A37C68D44EB444E88AB48D44D45DC8A05FD09636FF3DE5DA40B998622A4C9F1043 - -Count = 636 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 0001020304050607 -CT = 57345848EB5015B0E98FAC5E24EF532C17E24121AA7ED6184C08D8ACF83FB3AC9DCA98 - -Count = 637 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708 -CT = 1E5E405C6349A9422D8D4671EB4506BEB0F7408466EBE6730EF9208B5C23FE73DCEA12 - -Count = 638 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 00010203040506070809 -CT = 7FFFBA7908CA5DF5F3F732D939826B74E0D023F11F460B83228858499F25D0F1B9FDA5 - -Count = 639 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A -CT = F7BD559B6D92D5D0597A940C5B28FEC9A7C576C210150AC1AE5ADF387BC5AA424712C8 - -Count = 640 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B -CT = DCEF0CB82F4EC40A011F7651F62909060AAEF57B20DA269D114EA842109AD044B1104F - -Count = 641 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C -CT = D9134324725D92ECD4D9299F9DE4B1FAE363D1792D2F8D1688B780B4671A3377AE9B32 - -Count = 642 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C0D -CT = 4732C7969BF9C758D4607EC50CCA108ABC8E76B02F2515CF7C1514324105F788691962 - -Count = 643 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C0D0E -CT = C7FD5B01ABF298E92CF8F90ED3A23288AE03D898EB594C9D33313A3A9A1D01219DD769 - -Count = 644 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C0D0E0F -CT = 302ED2ACF21772661043EE4D78308343FAD8AB7C94DCA5E41736C5DFC5A4E6B60FAC7A - -Count = 645 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = DA073347500725FF38A60B9355E44BD137A0F6C9523FA3212047D7841334BCBEE331C4 - -Count = 646 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 8C3B02E8938178A58882DB7F3D8B4C745F87C6E7089BADC7DDC56C2DAB038F56520DB4 - -Count = 647 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = 3EC5B6ECBCC0C91F622C58E30A5658D65A8724F4D1925B8217C2084B053FB2C17AE4C5 - -Count = 648 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 03FBA11327591EC3F88DE962A1A84E42C9CA41A4868E88185F0B93B495BDA5A242E0D2 - -Count = 649 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = F6E6D627920F1E7D325FD33DBFC8DD9AE21BEAA8769D00299C0DE04060AF41DA2F0B5B - -Count = 650 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = EBC8AD957142673981D02B35DDBF7543B845C4DDBD9FE37DB680B422375B9B4B343056 - -Count = 651 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = C9B3D604598F4805BFAB39E37FB24882E74E8308E99C436033B3F9EF38FCCE0FE027B8 - -Count = 652 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = 3A9931C19BBAC8643BB8D9E58195BB9B9FD779A96C538750F72BCD3F1853339C715333 - -Count = 653 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = D0A516935FE7C093D245B862C573D179159E5D1689EB943677B1BD79C4AC662FDC3790 - -Count = 654 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = 3E1A24CCB4588EF79D3C6E62925E180CCE3EF1C29BE9775561C9DBAF8B10682A575755 - -Count = 655 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 2557F9F943B507AB7671F63732339D3AA866AA5D682C8B88A8E5F42B3DD430F1D9C12F - -Count = 656 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 9E3258E43E6269EDAF1EB9F51BDE4F8811995D2B45C4D4996A98E08E75B242518A4224 - -Count = 657 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = 2B5D0D3A22FAB3521F4F26FDCD1AEE1315DAEFAA3123CA942F23AE2D39C5ABE9CD5DCB - -Count = 658 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 0EBBCB0BBA52E11B3B34B989574F9F4C1B426AC605EED9865763855F4CCFE27E82EDE8 - -Count = 659 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = B34A0808C6FF7E33EC9EA9AF9C2FD14318835C422AF0FE7055721DCD7C1C6C7EC1F8BE - -Count = 660 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 7B5B90541831B9988DB34BD0F4DA91254E3C16393744624951F1269C1C82B5A56A7F8D - -Count = 661 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = -CT = ED82385EA382EFE8F9957DA7BB88D5C84ACEA709C9CC71307EA8E0E5291565A898537CBD - -Count = 662 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 00 -CT = F3730E618FC9ED48E6191F29511152239CFBFD5421DF9FF8A472434B4CD550568AD5226B - -Count = 663 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 0001 -CT = E51970FC61A895151D891ADCCA180CE3766FA30A5F3C5D5CD58F7086908472CA90226DBE - -Count = 664 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102 -CT = 86AD6F80251CA7552396218A6B25706F534FF25270AAFAD29C7674DE49AD5711FFE1F9B2 - -Count = 665 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 00010203 -CT = 4A068CA16C7405E848BD5426AEBE21F937BF6281C535CA519DED0FEE874BE9DF8765E59B - -Count = 666 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 0001020304 -CT = B2636F0545BAAFD956E94536596994DB5711097E11B01D0EA449F4E1269CE9AF113A95A2 - -Count = 667 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405 -CT = F217EABBFD9AC13C348EEB089519EAF53955F1CFA7793E48AE85F2E66973803318BCC091 - -Count = 668 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 00010203040506 -CT = B9A4C9649E776D000B0709F040D7E4DB854DB6D08ECEDAE0B0CDA29F782CDA2403257BAC - -Count = 669 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 0001020304050607 -CT = 2828E0B105F4622E61FF15251EF574784BE7D54B8E7394E432BBDDCD425E4E196B5F98AC - -Count = 670 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708 -CT = B65D55ED310957C6B9B03863A607BDF320145A660791F219C76BA95F14F8D6FB6D2816F2 - -Count = 671 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 00010203040506070809 -CT = 42CF6A3060D30D1F50C5AEB4EDC44A4BF59E131A887371561E53601997921D70298A4D69 - -Count = 672 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A -CT = A61603A543DDF18FA1B4BD5FC70952AC1DD8CB42F09F156D72BC37633CC774615266AA65 - -Count = 673 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B -CT = 14563B852C22D02E3658D8DEECFED8979B5180218A964630E33ECAA8AA32E11C546C72ED - -Count = 674 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C -CT = AEAA9603FED294CACDC321A81356FBF763EB19B752EEEB9194DC1E35803A4DCEBD2C6FFB - -Count = 675 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C0D -CT = 823749200D2135BAE8FC90F06B9F5B472C4B2D2AB1B097B9FD4151B6CACC20D6CB5F3748 - -Count = 676 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C0D0E -CT = 19099816EAE5452A41D5E08418FA3747A8A858623E280ED1B644C56CD267995F7D890E0A - -Count = 677 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C0D0E0F -CT = 656045252C14381BE01E34A109C486774E81C2D4FC8D0694E23447406D9EE174F08D4036 - -Count = 678 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = CEC6D8A72DE2C23A58FB303DD89B987A05FEE20B3EA11439824FDB17F159BFDCA95E0B4D - -Count = 679 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = D11F9D7E45B8C08B5A1AB294CB4054899E13D2DBCA9C128FDDC41DAB559850576F16FF2D - -Count = 680 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = E7F62FC3A0CEEECE48B690D293F8F700AD6916240B9528274222FE45FE2381D1FE56417F - -Count = 681 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = CB1100568D66D0B40FFC1A1E35EFD1B9E7199DF1F516A3BBA035ECEC9B0073F765A1BE87 - -Count = 682 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = E3BBCCAC13030E915D831DD1C074F683592C0D4B0E36565C2EB23D0FD47AFDB5D11360B2 - -Count = 683 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = 238875FD3AAFC766F9EAFFE758C51530F7A718B280EDF17A4D356D981E53E836A212D136 - -Count = 684 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = EA77ACD103169223EEC0A882CDBD808D94EB742BF50CCBE17FDA9846199A4E873BA332F3 - -Count = 685 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = 847D209E7CF996053D736716332C73A38B39C092F3DF9960DDEDE3E3910751D62A261281 - -Count = 686 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = C6D9BB5BC926B5BC740F2ACBB76244DA0CBDF6403E6F824CBAE95718C5B274938960BBA4 - -Count = 687 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = 8AD6BC35AA3B93994008F910701DDA9EF0732A5E9ADB521C0C564F4B7DDD368E5E87B5D2 - -Count = 688 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 1D81EC648F3F104223E41DEBADA888D5D713DACD1D7117DBC80228DAA5EA48BF0191533E - -Count = 689 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = A49288476825994A2E3F655F1F38E1443DD916AF56638EE9172C3F99F06E9C3E3D041298 - -Count = 690 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = 4951EE5FD41EBAD1C6CA225265918D8019573504A3FA4D9A24C77E4AFE0588378BEA6F65 - -Count = 691 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 9AD3B2DDF34FDF6724E976720F6C160A09E473FEF2060F4847C25110D3245B890561BAAE - -Count = 692 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = 00C2CB1FA34E5CD9F1868EC892DFAF3E251FEE161836BFBD832CAE02EFA0B22298844DC5 - -Count = 693 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 9586C83155B0E31D050DCDB048EF06B69BB90FDF74B7A74050F644048FB4F3004FC48002 - -Count = 694 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = -CT = 9BB37D7058B01DA6FA7B992BCE258B47270050583C55B612321B69B8D71139A8345F457F31 - -Count = 695 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 00 -CT = E275F91080B8FA468A68DE02B1C5E8E4F48D42F1F863F30C16D1749F9F5E58CCDE8339295C - -Count = 696 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 0001 -CT = C5FB4D8E49F7E0306F38B3202F2EF215EB7071EA2B806374B7BB07C76AACE744E54DCE85D1 - -Count = 697 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102 -CT = 40EB16AA662342F4D05C4D040F912B5DC55A03FC13E0F673028C241929AC9ACD6AA1394592 - -Count = 698 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 00010203 -CT = BA1F2C9139B93393CFF6E1677D86AE955D54CAD2650F2BFA0875D86837078481C14EE807EB - -Count = 699 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 0001020304 -CT = CB14A587730B647794F6312E6E7FA9F87E6BC545CF30274287733A766A51CB6EF018A55CE7 - -Count = 700 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405 -CT = 86D1231F72854CB57DE877A4BF3CBD77CA9A2AEEE0CF8EC7D851CE18C38456B21E31FD6AD3 - -Count = 701 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 00010203040506 -CT = 14D4367232642174F772F4201E9F91AD7AA92B7357D2AF044CD3660B64275C2C7FE1CCEA6A - -Count = 702 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 0001020304050607 -CT = 7317A19B762D3983F500F67DC0864BA7FE9E4363EBD8A15F6D947BE6DF52C4D145057BD64E - -Count = 703 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708 -CT = D9C55DF19E3BFCD46CBEF3E90D3D82329DCDB8F2BEF046A00005EA22FC7BC91F0FF451F8D6 - -Count = 704 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 00010203040506070809 -CT = 9E098CB02AB7C1A4E59CC821D6BDE19591A18B94D8EDF3452FB5F0ECA4AA431872F4B490E1 - -Count = 705 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A -CT = F43BAC87065A0940F2A55F884AF7FC3EF6FF6E246E4034ED376C0DE0F664D03C4F674B33D1 - -Count = 706 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B -CT = CFC7DC26D524E4C15C636E37B85B1285D3B76AF9B44C8AA0B8DF8F04B9A174B57CF96827BE - -Count = 707 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C -CT = 146A4FB92BE45E12A9F2B8D508B29D1E6F0BC77922436FA20A7DE63B9861AD9F31EB16A040 - -Count = 708 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C0D -CT = BD49AB6EA0CD509D10D5630C2CE5E69839EBC60CF231C2A6C22379D6E5A394986E08653AF6 - -Count = 709 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C0D0E -CT = 507492E6161CB4B6803BF879988BD53F5AD73DC1C2498B7B0499B2EA4D033152552F584FAC - -Count = 710 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C0D0E0F -CT = 0686FFA439B029F0234AB5FAAD70A8ECF8D363AE3E1DB52AD3A77A880740C04779C25E2F33 - -Count = 711 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 8E8CA3D6E8297A0DA943D207EC6FADFE75F77A446A50134228B26620343589391A4DE25D5E - -Count = 712 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = BCE3D05355A35437860A90A9DD378ED723B1F29C7228B160DFDB074433197AB8BBCB2567F0 - -Count = 713 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = 0B162FAA766245514414EFA48D95C4FD2FCACB629F64F2C123B50CD857BDA34CAD4D482598 - -Count = 714 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 37BE0B8CA65A9BCFBE12AF7B6D9E9F97416B7B41FE74E4BC47CBA2D82D78E5159BC0083F4C - -Count = 715 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = C8BDC76D02F1F101920B37A91BC9F8D49A3BC5012B0CAE54DBAF29A8F1409B9C7DB801A318 - -Count = 716 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = A1924CD8DCB71B9BF0B114D45FCAA994BA2167D7C76E80E7A40EC04451AC56EAB480EF1E1A - -Count = 717 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 2E4E1AB9C75000FC5A80A5768CD7DDB548DAAD4530D991D0B35CA97803F0A33F4A0BD396F9 - -Count = 718 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = 6017AA6C67E778A9979CBC4EFF6BB964CF50AAC2649A13D8F18F321FA0DDC564C25AE91521 - -Count = 719 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = F0135BA3D3129805DEEB5DE4B193A99B557C05C0F68D50666EFC32371AF3D34BEB9851B641 - -Count = 720 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = 0794A2B14D9D389E090B779275850F663EBE24E6D455F94BB200D404022A09A90D25231686 - -Count = 721 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 985EA1180C37D38ABB72932C0620C699BFD8132868CF8CCDD5CE4F97E34C86D084F3CC8581 - -Count = 722 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = FAEEFCDF8EA3EEFA43D4AFD12636F9CEA6B5576CB74FA6D7EC06767F3BDFB2362CF57A4ADE - -Count = 723 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = 8E1864848E3D92DD9512FB6695C6FFC17DF078FA71CEDF9F70203FFBC53B55C5CA4C0276B3 - -Count = 724 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 267F4A12F5512E5F82E24BBAE96E6DC6A79D8FE4F28110EE530731BFACFD5AF5FC30D91E54 - -Count = 725 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = 5E66A83960CB350E69C400DEA5D7DB57D876B00EADA99DBEC81A740E14B0931ACD133B1DCC - -Count = 726 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = F85B90E4D0D23F5707F47B7EC6D65CFFA7CE1393AA3CDF7BEEB1E6CFB0EF77C0152BFF68F2 - -Count = 727 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = -CT = 5FC4826B64837502F3B593C289392A973D2AC71C5722BAB46E3932CAF476AA846E7D216F715D - -Count = 728 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 00 -CT = 3FAE90176C37AB7321784FB467EF57331275FD24A27D4FF58043BD4BDA9DCC7686208563F3F9 - -Count = 729 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 0001 -CT = 1E1D36B227CBA5969F26886CEF323E6F5272B7A77391B522406C6E742E8D1239C15C199CFD82 - -Count = 730 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102 -CT = 3D2636B34EE5507A8F0A35F121EE74CDF8F6CD096C22548D9B27A34A2D47DE85482A7CF95A26 - -Count = 731 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 00010203 -CT = E2D5D6A4A6643FF2C6900E609C657EF34BD8E6D02D2CEEB6D3FE1784FE0CB8E9E896CCF2AECA - -Count = 732 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 0001020304 -CT = 8D8EC4E01210D856413636986F75583EB25161A0F05C6348D32CB0628BE141F12DD1CBC714ED - -Count = 733 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405 -CT = 15E45D14C7B98E9F13B787430FDFE68473F2D8FF8F9AECB230179CDFE1C5B29B4E18E3231622 - -Count = 734 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 00010203040506 -CT = 773EB6E7FAEA1F44FDEE0E86F5709146BDBC490CF32820C82CD538A97F5072C4B3E37BC862DA - -Count = 735 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 0001020304050607 -CT = 2D7F438C17EA189D63E6ECCCA892C30A5DC6AD8CF55BC207885DC982F159483C3C85261E4204 - -Count = 736 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708 -CT = F76EBFB0DC3281795FA7D06A5CE2B74EE15ADC1AA874BD9402D4B8591A29FE8258E72396B579 - -Count = 737 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 00010203040506070809 -CT = 2A26BCCC67D1D8E8CE69CB569F571D90175A2C503CAEC3F627B0D4FF2A0C9ED769F2B539EAE1 - -Count = 738 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A -CT = AAC979ED0C5D763501224B08C726F92A4A9AEC6A5DF02CBC1803960B585D1D90DD77CC6BD5B4 - -Count = 739 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B -CT = 452EB3522B204DDCFD7FEB7740EF7B16CE92C8C143C3DCDABB878C2D33A879E11DA0D48D889E - -Count = 740 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C -CT = 2B04B52AC6180675235240EE6D9A1F642AFB21DC9D5BB0189F61BFE3AE93169D9C186E8B3BEC - -Count = 741 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C0D -CT = 2A525604AC34109B7EFB1D5F7558B1EAD1BA5D3F9F6081880641202484F6606D4FBD0627956F - -Count = 742 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C0D0E -CT = 4C87B46BE6EB178E591EA076AEF399CABC118FC2A602CF24BD3C4858C18124731DD5D6F4F20D - -Count = 743 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C0D0E0F -CT = D8462DE0756588820CD242147BA1EB8DDDB24520E047217FE6B47F7C8A11F527DCFA88D69E5E - -Count = 744 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 390DBF4AE3C92BD3747DF49F55C4917C9C71154179596F222B6BE901593FA7E9403AB93C5011 - -Count = 745 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 25F235255068CBEDC576ED4A3B8E95FF757421A8A65688DCD6C5626F31A48F93942FCDB0054B - -Count = 746 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = 4C206A4025D71B4A2988EDFB865064A6C421FBA8D5C4E1E518DB19F9743B066C3BC46EE86A77 - -Count = 747 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 4818BA127D8394B6B2BC787B5120C444934A35DE13BD8A65EC4152A122480100E58FFF5425E3 - -Count = 748 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = 305D9CE2A85EF6AB8A953906D33D5798033C2145AB1B4990F959382232B79C5402A6E52E8389 - -Count = 749 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = 5503B82895C79BCB9E895C34BD0FFE35342C1113F15E15B803BBEF00733FC0A6D8D04FC4A95F - -Count = 750 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = C6E75F053759F1037FCA880587F45B44321819EE2E5005381257E132099277436FFCF0584C25 - -Count = 751 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = 55D9EFCACF60DB52883AB82A7D731CEC05A0CEC74D1702812B113213C696749EDCDFBA2E0053 - -Count = 752 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 6047835DEF5B98DA6A7609691A65F37075947A12FFDF797FFC3F57F5DCCF40E3433C55E8BDF7 - -Count = 753 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = 66B19C6856DEC0A771FA117B1E4BEE3AA80B0A131F87F8D58C68BB0A836B1EF8296E714C3180 - -Count = 754 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 2DD57F2961B8B277430783C604AB25858CAE8322AC4B7B185DBE03157195EA686E937E86D227 - -Count = 755 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 5946351E33676502C725B07E1C153017E510618F4D707441531C8396CF33B053FFFC22142A5C - -Count = 756 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = 58390F4A6326414F535DA23A42F7C7C8ACB4485A3F31F6F6A35578C5B2004543D97CB81783B4 - -Count = 757 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = F640108847E206256319F3B5FE5AA8FBC946CF0A49146848E852346326C5E0DB274A1B8A6903 - -Count = 758 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = 1E17CE00073B5E6F111F6B56A2FAB3BBB2A87E51B9054C86F64A9D7F615D733AD2D6988186A7 - -Count = 759 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 31416B5E5BF7D1555CF101B8B7DA0F1030C774EE8472FB5E298DF79AD1D3469932148AB996A7 - -Count = 760 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = -CT = 372F56ED07A98F83C59591C46D8DE64EB376984932D4E2B9F89159E5BB75976FDAE09144628DEC - -Count = 761 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 00 -CT = 375745B3ED52BAA9648BE93CA35CB4E9859C1AE88C6643439F6472ECD771E75403F3F6DD6FA086 - -Count = 762 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 0001 -CT = 43EAAC515BE8489D4A6C9B1C169F53118430CF19AB32279EB633360A56BB4327ED16FE59291EB4 - -Count = 763 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102 -CT = 959F570870E40542C2AAD504692BF5FEFB1DA7E01A769033104859972ABEEF292A9877D16BB401 - -Count = 764 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 00010203 -CT = DD9135BB8899794C1B118FCD0C8141C46F004543EE73C18FF646670613EA4CB1201B96073F8023 - -Count = 765 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 0001020304 -CT = 38071CFA03EAB7F7B8511594FF61F46816970AA77C907E3CC0843A608F2B73A56F972BAEA66DF6 - -Count = 766 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405 -CT = E159769095AC4B221730E3D02C5A0E7505CEE4A1A9CDD947A8E1EF544706C2DA277F17340E2E4A - -Count = 767 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 00010203040506 -CT = 2C676E11C36F4F53E5AF1F2D7BE57200538C00F4CA3DF05ADB1A1CCAB457F3FF16BE7AC850BFF0 - -Count = 768 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 0001020304050607 -CT = 8F7EF84CF998B35B5BE0D93DDE22D4D8CA8B9B007279D1801298A7C639D30F8A9F689F8F707471 - -Count = 769 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708 -CT = 18C796BBD0106E0B2B9C2BA40650CAE0FA99A07BE2499216E5800D8D16AD77CAD650255170E657 - -Count = 770 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 00010203040506070809 -CT = 7C78C0884D2CA4ED9C4F3E33F7946FAC67A85E49C42E825302222667D33812CF30ED483BF1F02D - -Count = 771 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A -CT = 859550F2794B692B33C67F88EC68F9FD324873619B67FE012A9A047B6F37F202F9EBDCA7476C49 - -Count = 772 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B -CT = D3D93C368E98B45E609BACD6E41281172B34216701D735C4A41E48EC03F7B7E3108CE0C90C74EB - -Count = 773 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C -CT = 4BFB0993152581DF9742C54478A972D9A12D2C91BA163E844CD7525ED5CD3B404CDA90DEB2AECC - -Count = 774 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C0D -CT = 2BB53E9880007AF850D5EE4FBA6D86E0F01C9582493F6F59765C6ED900DC0E7D5678F6B026E69D - -Count = 775 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C0D0E -CT = CC94F9E0E981B78ED2C03C3F0D393A6A743F2488A3045C03CEE694AB7733355F38BAC22441C5DB - -Count = 776 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C0D0E0F -CT = 5766F58DBB9ADFA23016D7627EF22326DF57FA37A5E8D1D9962D2E4B68632060EC96AF16EAA3F0 - -Count = 777 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 62EFBD348B4BB3007C0A2468D5218A572AFF1DCBEADAFB6BFF236A586BCBACCB73F2B1CE57F6F6 - -Count = 778 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 6E4B4D4E3AD5671900BC7F89730777DD868EDBF12F127DFCE28FDF5EA4D95BE94CB307A5CBF62D - -Count = 779 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = DF00A3D14EBEB2410A58B9D9ADF9E7D71D6C5B0A1B1BFC5B6AEBB7265C7EAD13B891D3E489E14A - -Count = 780 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 0E15E40E9A7B78952DA167508E053A51FD8C283F596CB686731B838A5CD1350BBB2403C28DE804 - -Count = 781 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = 30C41612BB25EE55D395074ADD57AA57ADEF2E81E2CAE910E84536655F373320FD2E90618AFFE9 - -Count = 782 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = B19FAB4DDE7DEB05359091FD613D706A47E1281EEC25AB8E4C95AF42BCF767996A86BFDF9A3828 - -Count = 783 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 1699337240BC0DF09490B7872EDD133CD9030A1AC295C16536E4E924181CD8F68D6326A2F0F8D4 - -Count = 784 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = 0AEC1B4DE82A2C40589F277751950A5BF7B172A77A012F6BDD4F4DB45C297AE1CBB54CD8911303 - -Count = 785 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = B76B1EC9C91A779E35270AF748501D4A23ECA97037626857A0FB6786E21EF8A1F7397DF8AD8CFF - -Count = 786 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = 0EE0F8DA7AE3035E32613827843D821CE786036A389A13518904183E7BCB8034D51D72D8F0B347 - -Count = 787 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = CF0450871F93B92592C56783081FC72665E8232ACDD20E68EBBF549F8AF59A95EE233681D55789 - -Count = 788 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = FCD241EA4270F6BB2D4D7E4F107D064D7C1BA2BC3D502146F1884DB766947F3FFCC93F2590932E - -Count = 789 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = 977171F2583078D10C62FFADFED83EFAF4FAE9C82D20A674983ECD7EDF90C2D856043B2DE51545 - -Count = 790 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 71A6AFC98216B4373FD486047BEF72F14846DD1FD471A21994AAA57BB06B290B4F5A83AE9B3818 - -Count = 791 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = F4DCD183B1AC3023BF1FACBB9D4B9031FCCDEDAEBC460C69EE747A9A2C6D9B422F907030CE5348 - -Count = 792 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 32990B59C5E6A60FAF34F8D4C2F76EC024AFC648ED8C792690A4060D129FAF6479C5A5B41A7738 - -Count = 793 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = -CT = BBED36565FB21419D44AF5BD1D4196E13C7E0BF7F2B1A954B30CECD729CF966B859242F70501BEF2 - -Count = 794 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 00 -CT = D02265CA65394C81C4EA3B0196E188CD97847489BA0A2E516E4093ECD69EBC393CC32C3602915FCF - -Count = 795 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 0001 -CT = 4FB5B4493424097284C98C9E480CA0E231C7116D9092AE7C585588CC2D9F38CCD9991EA2A0BBBEE4 - -Count = 796 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102 -CT = 8BD0AEF3CDC9403B90EC193051D853DA21097BEDEE1A7D4ED7F3DC0F56EE718C1BB1E14185398385 - -Count = 797 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 00010203 -CT = 593D99A27AA9AA005C801EE5B51850895E52D196CCFC8893E973B03C02B70E661E5500EAE99DDF27 - -Count = 798 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 0001020304 -CT = 7EC65C7786235C8110D098971043656D62775E094410805255A3F75910128FCC38225409EDB1E3DF - -Count = 799 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405 -CT = E5DD87BD6C3E6AB888F9306C93690F010DEC86D79080426CEED291BDE100FFD8EBAEB2CEB4811C7B - -Count = 800 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 00010203040506 -CT = B9DFF546BA861DADE2ADA631A32CDA641639196383F2A9E64AA93594F00B8D6F9515878059921772 - -Count = 801 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 0001020304050607 -CT = 0134B264009FCC9C95E8611B61CDA1FC086842998F9673EC657F8367F4ED7C4C59BE9E52D693D927 - -Count = 802 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708 -CT = EAFA877C3CCB0844DE2035BD0BB4F90E7EAEE0A2A881A3D0DD0B94D798B7566502DEBB886FFC2579 - -Count = 803 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 00010203040506070809 -CT = FFEB29FDB200C1F2DC0FBF02DEFCA3C2F3CABFEEFE3AAB2CB2A4652D3D084454F3A1F354A726010E - -Count = 804 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A -CT = 1C941D2578CDC9E2A2FE93A7D1219AF33B83384F61F5569CDDC21982AA7A25C948CFF0A75D0B9A90 - -Count = 805 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B -CT = 8C208CEBB7D9C17E0FF9586CEFEBEA18EF79AE63401F01BDB7D9E69C7940A56B799CA53F460BA59A - -Count = 806 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C -CT = 2DCC1D7092309E1D84666B2C09ED17B08105DF0E1DE16D31134CEB4B78DB878B120222C27E3082ED - -Count = 807 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C0D -CT = A5538A401ECE748EB53730547B7C0EB54C46A505E14343241617CC9FAEA541D4C6B15AC84B78E88A - -Count = 808 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C0D0E -CT = 3E622A7DB6828AE4A47473D7D17CEEAC841B3CA71DF72FDF5DEF9311B74BBE729A7A26CC913B4DEA - -Count = 809 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C0D0E0F -CT = 147C521935014AE03C86098A81F581484989546E5B53D4B4F082E05DCE9B50AC72CC5D7F97CEB568 - -Count = 810 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 568D6FEF09465EA135B307A562A0422309240B9065A3CB2C1061C8C009080E8D9F64AD5FC9C2E8C2 - -Count = 811 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 539BCC87F58848CC475AA43FB674817B6C5511BA744F71184A33CC50725405E089BD1A4461663350 - -Count = 812 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = B9389527BDF9042C82BCA8EC9891617F4603E3DE65A7242D4EB833AB30646090FA740685608463C9 - -Count = 813 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 6BAC714B43C564296D4EB9DFCB94DDCA34FE3CBD6EC4282780E9818C9008BD9A10BFFE2530EC8E30 - -Count = 814 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = 2164F8BE69F2A8E7615805DBF91116C8AB5E7A5E5655BCF565E114003CBA0413F4E5457A7FB7515D - -Count = 815 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = 16B5040BD362D3F816AD892B8C9A1621F0E0D89358D120960E202D106EC709C56F7429A8946A1B07 - -Count = 816 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = DFD959C2A11D981181571A1D9AC7C4727FF73D3F1F69960877559AFA1CC2D09E1DDC6518C47451DD - -Count = 817 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = CE418C3ECC5858CADA2D1FC96B3205560372D3A1607E8C117CBE09A9E6D74BB16BD1EA7A633E8290 - -Count = 818 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = ECC97503825E8E600FEBEE3FBD76FA614059B726609BA9A2C42FE6D8D416BB7FA0C786E3D4F57D69 - -Count = 819 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = 111399E561EF3471C65D48EDCD30780BD1C2C32D24CCB76BB0786C52FA6DBED33DF9830B42A37F47 - -Count = 820 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = BBF2763ABC17D6454DB3BE3A46126C69AA3DC587C3EACBCC4ACFDC52779897BB94AFDF7D723FAE0C - -Count = 821 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 94CE4A36D478C4A08643E9C1B56096CE8F92BF03BADB4DDD83DED88334282E9D70840ACDEE5260F5 - -Count = 822 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = 1240B07C77CD65F5893BCCA816D909F470A83974A8ABBB5370813EC5FC7F2BF9D35A987F9C49C43D - -Count = 823 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 01E02E80A6D2C6F7BDFFF63AAB46FE7B9DEEC7D84733057C4A034B28F22EBECF5154115786C518FA - -Count = 824 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = 17AD7239C8736369BCA2E2B1B52D6EF966E613B8B553FDA717AA122911D9FEE4A0642D4E891AFC5A - -Count = 825 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 7B8EA576A021F7849F0FFBAD95B785257B9D642778D8F103BCD37E5F61B192564EA96950CA9401CE - -Count = 826 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = -CT = EDC6101DAFD80953BC8F95F993027EA345BA4BD5E8FF26ED2D6EBA1046765239AE839DB2D1740D8AFF - -Count = 827 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 00 -CT = 6E8A9C5348728DC592CC3F58F73F96658119402F7E4504014186EF8002D26231D5874FE37A9AFA2313 - -Count = 828 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 0001 -CT = 1C256370B8CAE6DD9EE8B732ABE6AECCBABB876E392A42CFC956AFA46A21A4613B657951E446941920 - -Count = 829 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102 -CT = 43AC5AAFC00EBADC2D5234C251818888D9AA63A6FA16ACBCB5AFB7ADB2C2FE2F245BD77F4994246549 - -Count = 830 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 00010203 -CT = D4E50759EEF9ECE78C9F27D8981F32855255F284EEDC1C6BD5A74DA63053B8DCF5182506CDCD8F69C6 - -Count = 831 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 0001020304 -CT = 813F745D70EBC8C0D17B7904E33D7ADDAF15A30764C8B23C389F5A3EF859BB51063234C0DBCA0CB2E4 - -Count = 832 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405 -CT = BDCAB37F106065A3319588A42FCB41439C02E06F4C83A9583F76729C478DCDA54F79B638FAE845BFF5 - -Count = 833 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 00010203040506 -CT = A3ED8795EB4DB7796ACADC49D6BB59184F06AE5D8A3B29CCDC436A68F62D2A1B09E411B958E8C29DDD - -Count = 834 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 0001020304050607 -CT = 704984B64D554BF80B0A383CA8C46AEF4B94F581D53CA0912A41EADF04ED95838FB5E3F42C1220810A - -Count = 835 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708 -CT = EE109B91832F4BF040C015962A34A5D6847E62A0209429B90F0401DB5B30A3648D9CCEA71B6133FFEB - -Count = 836 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 00010203040506070809 -CT = FEBC1AE5D92D2F571A405ED5A6CBAF84DAD9EAC07BA59B6162E92B848C2987BDF1B369E7BA516ACB27 - -Count = 837 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A -CT = 582D0566943E1EE80EF684DCD76D2AC378BFE213C26BED590FAEDBD2ADD081AEF5B4FFE23CA92CDB93 - -Count = 838 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B -CT = 1DE450F5BF76B588F6181AA1F3BB722F518B066E1ED174AE4B9714335B698BF327035D1174450A84A2 - -Count = 839 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C -CT = 653D991BC5FB2A083B40AF4AB41438B8640F5EA7BC3290E2CBEBC1815B9BCCDC16486A012651F5BC31 - -Count = 840 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C0D -CT = 2900E814A4D67C5CED6916CF4BCDF54C0AAB225F38A5142C46382A4713E3CC8043810769EBB1D3D68B - -Count = 841 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C0D0E -CT = A7766E8511DBBE35BE868FD62BB58414F2EE5E2C1558A7BABE45484104A42881FC834CC56E26D15FEB - -Count = 842 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C0D0E0F -CT = 9F1F769F80AA675630AE9F5FCED9CAEF9E7D5E6FF51CCABC135EC17D94805C89D0AF366FC83F5C9EB4 - -Count = 843 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 16384072681731B9780A8930770BB06E5BC601A9B81FE0EB9BEFBC76A068F82A1002000A475131F522 - -Count = 844 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 7F79FD52D40687DD3BF2134BC661AC777856ECA833193832A512562085A4265F33291C223ED372611A - -Count = 845 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = 181B17149059DD82CEB7F8D31E569084161BB8D6BBF3A66812E469FBDBDF6017D68A541C39671420DF - -Count = 846 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 4CF5932EF3D2339577B39C415CD326529FFC6A920C621C069E333C4DD4518D3069A9860FA6E94DD6E3 - -Count = 847 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = 52BA65E030E8AFF9433EA37467F8CC732616F2335DF870905B1A1AF9E674CF3BA75700DEB31B12DE85 - -Count = 848 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = B678656BEFAEC72FEEBC4E425464C48831523A47C0FA7E97CCA7B7EB9B29D1AAF3F8A0A9548279167E - -Count = 849 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 819589AF5AE6DF84AAD85A80063C32D3A5A2150604806CF4509553BA6329FF4C01559ADB3D56C3269B - -Count = 850 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = 36D80A75EFD1E09EDE2FDFADCFD65B9C925C35FB94759A67030FD2A6D5F42514543EFBAF89D9324B44 - -Count = 851 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = A64F2609052D05FD9279EB9A60A02592CC8CA4F685BAFE0DB71C6A6FE9F858AD5252F674BAF77CF34A - -Count = 852 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = 167DEC1AC8CF6E8E952288E863395E927F43B934D72B9EAF52755A5011B7BA681D679EA5AEDFED571B - -Count = 853 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 54D44FD56E1B0FCB8FE4231AD037DE7E0C046BB60265C7076C43848E0A5EAD0E1A8663328386736A47 - -Count = 854 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 0EAD3AF655936C4CDB97C73530F001049B7C5049C43BD8443009D971E28F2DED9397A67954CA39DEB7 - -Count = 855 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = C95BCD76C839F0B2DF1DB3C7566F609135C317CA81BA573C8CA1CA2EAA18BD1451815FB65933CF9066 - -Count = 856 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = F18F205D5DFA24605B6DC7AE9259A19BDDBFE5556A0CD891341D43C35E570144B02C858B1CF52FB608 - -Count = 857 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = 2E3DD32824474D8312E11464B5C537A5E07BE37B28BE5AC096ABF1DE56FD8A765FAF6D159E09AE68AB - -Count = 858 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 40FFEE56CBFF6743DF331717031152417A41D463C87CA1A2AFB09F596B00A6EBE3858A2FCD1DA6A349 - -Count = 859 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = -CT = 81F5F4C4A453899BD1B7ADC8EE2FD0AA2200603AFB4273FD6F27BE68BDDC9F9205C6CAF752FB8972E807 - -Count = 860 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 00 -CT = 6695C0B85C665904A08B780DDDD17853F3267EA9BCB6BEA3A022A64CD314C5E88C4EE9A1E1AF2BDD3B68 - -Count = 861 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 0001 -CT = AB0373817C0A608B73BADBA3C5B913495E89AF49110D466988A5EE5219B81A0927278B0506C203D9BDBF - -Count = 862 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102 -CT = 9BAFCAA01E664612049734D67BB0FC98162075966089421B8E547D90D5AD8AC219D8B39DF98662BF779A - -Count = 863 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 00010203 -CT = DF11AEA5195DC43156B2DEBF9C2E8B7FCB8FEDBF1500D072BF8B7FB0A39495B13262DBB1FDAB968D132F - -Count = 864 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 0001020304 -CT = DA653CAB5CBC5C562A246CDCF00E8761E7BFA694C1F660FB61F3FD0754A9A79218369F7139E536445C33 - -Count = 865 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405 -CT = B9BE7C405E46AA8DDD6EF515F2DE1C520920298F501A1C40AB42BFF2E30BDD808525496117E30B6EC73D - -Count = 866 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 00010203040506 -CT = 0B1BB3A7BC5ECAD8F8928DFFB4DB968F629C6AF115CE84596DF195208303066A26D32C25E3B68E052A4E - -Count = 867 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 0001020304050607 -CT = 03F9B336D2B8B4B8BD5A454D67CF9C58CB735C50E2972EA8BD8C87DA4E5377F4AC4DC6E052FA8588632A - -Count = 868 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708 -CT = 5CE6E68F3BEAEDE45F5EA178EE86BD52E6A148885A04F8A37D945A28DEA04707054AA939E02BDE53E674 - -Count = 869 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 00010203040506070809 -CT = E17EB9C1C4A3B6A107C4202E14F7BEABE6C0DB7E844C706151DC1E8748F9859BB76EDB9AA2E039773444 - -Count = 870 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A -CT = 80A1435403AABD5D3D74034FD5AADDAFCE211FFB5BFE577A27FAEFA97FAC1FDE3E15BD837CECB2C6771A - -Count = 871 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B -CT = 8006E5B932B42C069E2CF3E7F5B1D7278AB9F7377812600049AAC3A838062C5F337574EACE53C2379E06 - -Count = 872 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C -CT = DEC516D4C7A49FBC547165347E9B35720C695E0F3A01FFF85814E6E40678FA1021173B40A13E2173BAA2 - -Count = 873 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C0D -CT = EE4937F71527ACF5F79FA7C628B42F1EB59B4FE976A8E9C1219195611EF5A5B79053D99DCB4F792B1E74 - -Count = 874 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C0D0E -CT = 40651B5549F00E4AA600EBDC084DBFE22D44702F1C088BA3A673091060E2C8B853091A8CACA7928CDA44 - -Count = 875 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C0D0E0F -CT = 7F8449D09C57C805461724FB90FAAAE56E5270C3632DE11677296714568747BFDFEF4C4FA35580181EC8 - -Count = 876 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = B2B9FC09D0E7E440E0734735713F5D8DBA1C0D54737A57C775B5670ACE753117D19AB1E23E37FA17377F - -Count = 877 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 73B1F70AF74939536C8DACE5B5EABC2D1E182D84072361831AA9C9845F7C7F68785A6D594D6851B504FE - -Count = 878 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = 0DCBC196343A258086A3F1900562C8235BFDEB46D789C56EAB5746BFDF3DD919219E4426D9EDFDFEDEBE - -Count = 879 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = B499B54225D61583556FB5BC24EF6A726CF050F31CB32F2490CC505CA6ADEAD1635CE07764887D1C55C8 - -Count = 880 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = 694B1AF30B2B0E7B23E11902E72CFCA9DBFBF2F39534A1CE0BF736DAE509CCE019707E8A7F3089EFC6EF - -Count = 881 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = CF5B5B7C6E96C30828FDFF9A739E974D30D127FDE75B8DAED52290D263615A9E63AA581DA45B8E1CACD6 - -Count = 882 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = C81F22A79A34B484AA37BB6DCDD38BF9A139B1A20C97E1F9EDCF77ACA5D809723A0F3381A56E291D7732 - -Count = 883 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = AF42B782E11C8113288DF8A23117C2E3292B814478C61E7DC4E120A72580C4793746C9AC4359812D5C7C - -Count = 884 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = E5BDA8B42F736D07A2264CB4D147B78B1C0FA5CDC0893B8FF2D49017D4A7CAC70F2D64091D71106E5354 - -Count = 885 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = 8EB71C6483E1EB796AE2F53874D1E77A7B8A45D02C25D694F79C190C8D527BD48A7CDC2C1F9BB9F43842 - -Count = 886 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 80FC07C47C5DD07C28475E55241881CA5C7D7182A4467393315F9FC13CF4B41F18E16784B18BB1BBB9FC - -Count = 887 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 7CFA4B3F9266C6A2598EE4684275EE2DB259B1FFE16C8F727B4BE30B6D2E44B4A30C3055D277780B7C4E - -Count = 888 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = DA0353C1742B56818403DB4DCD83B1CD3FC0EBC0ACBCD36C253114CE0408A02F7F35D0F3EEE0E0536C12 - -Count = 889 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = D09D2CD6155924C3B7DF2BE65DDE2546B2049E4FA816129DBC5104F057774861C6D59E029DC43CBA8DA2 - -Count = 890 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = 7A239EA0F1AE132C1B58FD65077B39698FB821FD0ECDBDF5FF4D257CA18F8B75BC534736A8A83DDE42FA - -Count = 891 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = A9E84087C2C91608D5FF1B91690D707A3C6BE4E39DB10D1B05B35578D5BF48EF89BC03C909A378773EA3 - -Count = 892 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = -CT = 05F4E3F6CCB665BAF3843AD2F5069936164B843C8F1A517FE7521FA789975C729929CDCE3667FBF8F35C3C - -Count = 893 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 00 -CT = EF05411BA67A2E7455089E87FCD3EECFD6749F6E342E5027EE11383FCFAC4DCCA45D74983AC1C55A8A3D13 - -Count = 894 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 0001 -CT = 01DCCB18AC84E5ADDA78CC797927BD7ADC7C1A65929A7729D7D863EDBC08ED9F0F24544C6105D4F87037F2 - -Count = 895 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102 -CT = DDAA64DC9A1410CE44ECD4399E223BA7B8D70333FC4B5D3A94ACC069C272BC2D17ED8DD1A14E05DE1B9121 - -Count = 896 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 00010203 -CT = 051D69BAF8E6FC1CBEE5AAD21EDE772EB0F4DA01449BE495139A684657BC16F35CAAC29913A4F13F3B5B90 - -Count = 897 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 0001020304 -CT = 90599C68C93505A6D2FB797EF68FA0F267A9CEE47FF32EEF8E24F301DC3853B5392B7A77F8BAEE4F4DE498 - -Count = 898 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405 -CT = 17A8ED855D5C43A2B9901F0A5DCF3B1DD2FB2434E71E4427031CE76CB8B92F815C1BF24F1CA577CAFE6A4A - -Count = 899 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 00010203040506 -CT = 5E55479EC3B8904E71D70C171135C4E6076456D15C63727622B4D2492BC872D3BA622028DC8A14C4A00DEA - -Count = 900 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 0001020304050607 -CT = 5B0C9D1F42F812EA8ED7A49154A054483515E0713CB55FF68CD1BB42BF0FDB428C86729C199244F36F88B4 - -Count = 901 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708 -CT = D179B029A9C4F3DE62A461E8BAB3EB5D0B24F8A74096462505340018B67FB93441FFC96CC1359C79ADC088 - -Count = 902 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 00010203040506070809 -CT = D8B4457516347D704083913375000C21F6D68FBD9DEA230AD1A328C0322E73BA9713A1C4A03B024C936C64 - -Count = 903 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A -CT = BBD44836F4A418032D052E7529F3A9DD61AF6CE149C6E5CC2093D554217B752FF10B618EFA7DE502DFB1BA - -Count = 904 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B -CT = 79438D46012BC7C87385C8D15B7221CDE706865A2D90A651F771A566CFBD22A16501A82A7723AC8A9FF47E - -Count = 905 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C -CT = D894F978BCF780570468CF1A8A14AFC4A414EED960C5DA99F4E485C6046F8B323591084147DA7F0C5448E2 - -Count = 906 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C0D -CT = D93FBA2B18CF0E820C9542C9C4DBD9E3FCCC92200094B169BA8F4D6A05AC92BDAA8DE8E009982D2E938226 - -Count = 907 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C0D0E -CT = 9A9FF7175E5C467D0F018EF37A9074AAB27E2B250A6886BFE9F3006775AB8B0AC03372D22834C0DE0AC692 - -Count = 908 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C0D0E0F -CT = 4017E20B0B665FFC4734752C8699C3DCDB5DA5FA29440E37CF2D8AB7C8D912FEB258696AE8CD57F4F9159A - -Count = 909 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C0D0E0F10 -CT = C79FDBFBEE4B79341168B55E8E61E4FEE1AF10F358B26E6C720E813F72CFBE81CEF8D78F6E3BCE8F1F0BCE - -Count = 910 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 7C26DF33CE8AB573DAB843142D5A8BE79E9D93986EFCBC019ED9E3987690F556FF7B6AC2623094D7CA68E6 - -Count = 911 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = BBAC6B110BE8662F943A0141B43350659C200655BC97020C6BB043D7C8CCF07EFE898E13821D97D49EBBD1 - -Count = 912 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = C3A096093BE34E0C5EFD4EC7ED94665A2CDEF6BD06BD71CFB3CE00CF38DC9C7FCAF16F3C5B369BF3D505A1 - -Count = 913 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = 311811EDA33084D328063065EABF83885A5DCB4CB9FFA478043431F608C31F431B2C23C70EE3E6AA7B5740 - -Count = 914 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = E62E4CD339DA8BA3CC3F994BEBE41D9101470CA6FABF66707BB4C1FA607B9E7ADA790393776D81C1AF1B5F - -Count = 915 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 1F4DE86F00101203D3F056A0A96E66C3253CA98DBB9938B8AE33A2F886317CED26A6615D92B3219647CBD1 - -Count = 916 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = 08808095035D463D2EF3942C077F638C3A69C0A07B47C6DE4D86C16EDF33654FA8990926298CCD779BB16E - -Count = 917 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = FF3D60E162E9674AD52A202E9FCF7B43172D3DE62A0F6C0194EFBD43F669DECD191A1B785EDF7F6047E182 - -Count = 918 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = 5B002DD4A100F92794E1AC7556D4444F5E46647B2C77FF9EAC7DDE7E14619CB7B820920E5733AED8AE576F - -Count = 919 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = DE211C9D8E74C108EDB7698C44CE54779B77A000304F25D52646524F949E11E9F4D74AC5EE6F503EE2FD66 - -Count = 920 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 6FC3F24FB680B31BE436CBE21DFC15E284F3C26DFAD414058E236558EFEEB79B77324C4296F50842988A70 - -Count = 921 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = 3BB2BF72F42879B8D7390A2DEFC066C3A27CF355E9FE8ACA0D555E2D6EB53CB15D1D3CC8F2B5E9C8EE1FF3 - -Count = 922 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = F127DAAFDF8954A416862754DE0CBFE92850A6D2DDAA921F9C0D778BB4F64D1766F6673008C3CA897661B4 - -Count = 923 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = E5E5981CD94AFA5B9834A5C277CB625E951869FEDE6A91A9F32EA3D4440D46B987BEA984C599A6B8A8AF2A - -Count = 924 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 8DD1DBAB0060FD994A3C90030419017A51F59D647403B50765411B6F0F97AB0FA1BB716FF65CF0A7FC94AE - -Count = 925 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = -CT = DF6466461750F74DFD9782C77209AC60609B985D81581B0521DE503BE2BAE0F18EB2D6BFE979F27EF6D5CBCC - -Count = 926 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 00 -CT = B95E6B427CAB953FB6BFB613608AC22BF3A425F01E6A1F1FAB21928908AD1684E47C316530AAE2A4D7C87731 - -Count = 927 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 0001 -CT = CF8A8CC01B6453545E057C5FBDFBB14539341325050C2DE3431C0AF1C578C358FCB7CCD36E2EBEE292FE28B5 - -Count = 928 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102 -CT = F2AEDBBA2DC854CC0CF42D0D15ECD4B80DAD78FB4D9F46C4319672F566D6469566B0BB45EBA98DBEEF813049 - -Count = 929 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 00010203 -CT = 60877069322844C1039843C4BEBB3BD1D16A0E95B2673ABD8E47C42625886AF9F129BD8A195C125056A1A82E - -Count = 930 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 0001020304 -CT = 9657FF61EE932B877F108FDC03E3543F7C65702148F4EA4EB84C7CF238F5069E43D760F1999AA701A8FB4401 - -Count = 931 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405 -CT = A91FBA8DC667753202248FA136B8962503AD09D5399D105666F9CF9DB5959A0126849D08468A2026F5AC0331 - -Count = 932 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 00010203040506 -CT = E921D615C10DC29B9B082C3693AEA2E4D6CA6CBDE0563490E67E414632EEFE90E7FD1C2B49D666993D0240E1 - -Count = 933 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 0001020304050607 -CT = C1933E76E12F778C68FB816E8431E20BC06FABB52874A179F88127BB9EF15486A4E0D6FB116D73A33B9CCAF4 - -Count = 934 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708 -CT = 1C0258B530257DBABB9EFEAF67FB544BD967FC366C8944C88937E040A7C883B3ABFDC62B9324CAE315BD662D - -Count = 935 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 00010203040506070809 -CT = 5CC2D6058C87A4ADFD957F884884C8F5BB0AEA97EB995AC44B3E8D8AC3E21CA41EB74211573E8AAD1D72A7F3 - -Count = 936 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A -CT = 6879A2AA05E96D9B9566D7B4348B4718A6AEE8A3D3A3F6D43CF8BC8D0CAEFABBDC9DBBD6D9B541082DEA3050 - -Count = 937 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B -CT = 31778534C8FC769C272D01BFC2FFBBBD179E2DAC566F5DFE8750098971EA34A04700C33A81D32756EB9A8384 - -Count = 938 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C -CT = 7E20F7F302CB55D957378088DDC435B31534D5209AF08FA64AEBC373D95C65833667284EFFD3C72DB14F4A12 - -Count = 939 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C0D -CT = 5344DEEA770F53161BACEC4EE804A8C5AAB795C0E57995A08AD4D14DA8679F2267CDCB04452263ACFC931B52 - -Count = 940 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C0D0E -CT = D03BA1949CC9276887DD4DD6B64B1F6DF48BAA2AC6F587B019A87CBDB2BEC08EBBE413B23679A4036A25A002 - -Count = 941 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C0D0E0F -CT = C229E9D0C7DA772029DC0C0F4A9257B9017FC5D0D4C45C0E769B20EB1B744AA21B4C4D80A48115A2CFD734EF - -Count = 942 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 08F3F21A902D28E1C3837EB629EF69BDBF256E9F9AFAA04E7AF3A79738A3A13C835E44CFB74A303C576396B4 - -Count = 943 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = D7A8D02511D1920153E48E65B7E234D7C5C0E4D2C99EDE86D89C2530F0CBECD902A4397BDA12A6D4EE45E235 - -Count = 944 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = A2BD0B27A64FE1BD1E3C30FCF6CCDD2E99BEEE8238F869E7DBD2E69F3EA8D71173AF169AF1C13E1155C89893 - -Count = 945 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = D9A91A1B30828D8B915DCB9E9351DA3CB79CDD8637D420D38924942FE25EAB8E346ECABCDB265006DE5BD96A - -Count = 946 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = 4134B2515C0F31E1DF0AFF00BF86989FB1FA9140074C1219349431EC15F9659504C400B74100E8DCF93FDDA5 - -Count = 947 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = 81AB398D120D8E490F37935C34E40EC442E2597EBE3346E8A70BF5683522F30A80F2E313DC4CC1027523C1F7 - -Count = 948 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 126BC1C5151CA7F67F31AC5C15E4E3B2285F28A2387826DA5F3E26B32BAF0063DB4BDF4AE57D046024A08FC7 - -Count = 949 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = D0551F9592C076D4BC8F450B4163F35727A59D52A307E2D4D9BF37AC67BCD2097749BC247C74415DD71BDEF1 - -Count = 950 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = BACE8658B20184C2535D8F989840BEB1E85394E06A8F23724F97E072EA2BDFF8D1D67D60689FB161F9465E6F - -Count = 951 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = 219D8C32E0BB96A5B35C254D6A3AC4CFBF030352AC5B1A59EE6091332DF42E324D7970BC08DDCA37887FA0E9 - -Count = 952 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 72AC930BB3C3E030236FEBA78185D334434EA7B912A658E9B81376BB7E2DC4D357CD809441791D8CB4AB94A2 - -Count = 953 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = D02D887B22765805537E1760CFC56EEB3B23765D25FC7D9981405BA2AE141D2AE6B2FF32CA280D3DD2B0A197 - -Count = 954 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = BAEDA17A297F86ECEE55DE00DB20005E5FA1720F9D57F7787F610F90095E5D85BF04868EC98A6C493E863EE3 - -Count = 955 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = BEE00AA93935B6DCC4E54F60B080773E74DB6D32E99CC9809FF39E15917C63ECFC4E4EB00DBD9539F9365887 - -Count = 956 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = 13C62EE6A96D6FDBF70FDB9533949D9F9E9517F0711157C2BCAC23143D797474C20097EB93CD01A50E51CFCC - -Count = 957 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = B7BBD46473178BC1598AF95E49671C5A7D28F87101F7767D564568A6AB683848E607F01D9A79048A467DCAAA - -Count = 958 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = -CT = 4FBCB9BD14BEFF24DD2FA755D50F8F2DF80DF49983531FE3FC150237F63648E07EB5B4447A7E38FA20F8D4F879 - -Count = 959 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 00 -CT = 86A20414960776AAB9FA1D31B3F749DAA5619A5B30A24A3B95EAFD1A762B3D219075F888390EA2F47DF9743EE7 - -Count = 960 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 0001 -CT = 47654FE7978EA3E84182B69EAE92BBDC85D2909B97505BF2A238010251EF8293DDFCB5273FB4426694D10C7C52 - -Count = 961 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102 -CT = 26011F8CE709DAF6FBBA3A43A0F750B9F5EF137101E20025868D0C652CA759643C1A737D2606A8F8B8A5A3ADFB - -Count = 962 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 00010203 -CT = 2F20080EADB02BC9116C509C7FD0F32DE279F133BA23EC7A927BFD208A5B9EFBEA12F8BAF6199E0A822340011E - -Count = 963 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 0001020304 -CT = 8EE87761C6782BD7CA776E72C173E880D47D1FB0736DC98B06C7F7F80571AA252549EF3924F27422C7E9AB89D4 - -Count = 964 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405 -CT = CC48D7D1917532682B522E35BDB43805537802921C1DEDAABDC6B1F99E424F980A06689B0B516EFB29919A1F5E - -Count = 965 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 00010203040506 -CT = 847E5ABE716D49B4263C1D8FCFA7EFF82B637A4CACEF74EFF67D0E33D8388062ABB9D30EAB7BBBE5CEE3EBEDEC - -Count = 966 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 0001020304050607 -CT = A92550FC3C601AF9A81DF47CF42B3557BECF5AD81AC0ACD862A8FB5F751A1736C6C7DC243BFA96AC4478CC6F1A - -Count = 967 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708 -CT = 2BAB268C7EE4616A58508ECADF51876D7A543AF80CD2732F2B08AE5CD9A931934A1BED54C8002B96D71B72DED3 - -Count = 968 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 00010203040506070809 -CT = FE1AA94FDF279F379114CECDC14655EA1B67983D4FEEAF70EDE87872FFFBA304888F8B2E793F5DB525BC0F3A65 - -Count = 969 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A -CT = 1055E8B6110A0E6C91704B203D692F08FCDDB4E3D42DC4E51537B5DF1D9FED2BC906DFAC99F3BC2CCFCE014F8F - -Count = 970 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B -CT = F3553F9320586E4237945A9626C6CA7659B8650B7592C0F2587FA9B42D6D648A8539F4E7430640B264B73E82DE - -Count = 971 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C -CT = 3FE9A53397DD37D5B606165E47837718E1E6CD18610968DEBE10D9BC2ABE272189C1B22D2C1674C0577E090BBB - -Count = 972 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C0D -CT = 5E304F032DCF2523CF64D991F64E0258BEBD7DB7DAFDBC68624BCA6EC6A1F5D2EF612E213F569E653C2B72F9CD - -Count = 973 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C0D0E -CT = 906712C6357A76A01F2F8A6FCA05881538C8ACBE9A9A9C5E18FE016E55B404AB1ACA2311A0F8D2458F323703BD - -Count = 974 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C0D0E0F -CT = EFCAF427C6C3BC5A40C836790195994F224405F8F4B8AFB51EDB732E8724A13D8FA28F60FBFD0E4D0AD4CC92F0 - -Count = 975 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C0D0E0F10 -CT = AE35127AFC6BFE75DFCA1FFB8EC88667093E361042D43AC6B75A4739E5DDB4DAC61F8089DE15A04652F9B240B8 - -Count = 976 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = A081C0DAFFA043D4592DC0BA150F86B40B13705DF287814F13266F1CCFFEFFB781362B73CB0EC74B7BFB4033D2 - -Count = 977 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = 609DBFCA8C2DEEE0E3C6E754D8FC9383833C02D322038134185C917C6B3159B1E93C51C81F6292243CB2D2EEFD - -Count = 978 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 14F7EA1074B74E28F10523D6850CBEC5D52E967410707F88E2E4A4A75B9952FB9E38A5F7A4BC44B7D7CE0683BB - -Count = 979 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = 61CA06337C634FFDADE00F89B34CC817E7B970A749EE61E936C95CB5793B69C7477FAB08B8C9888EDD868BAE5C - -Count = 980 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = 173B7A932F68247353E5E953E2540123F0CB7D008FB5C6C521AC28E018E33368E737DAFCF27BE6D3E170B657FF - -Count = 981 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 9ED2E8A6DCE64925A9D7A6A133E755DB3C2C15695C544E254C48B01E20AF8DDD064A39059E66BE2F86292355DC - -Count = 982 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = 6A363EEBECEF98C88E056564F5F0403686C5369D81CCFBD3A52A75794949912C070F6CAFBB31B0276CFF43A770 - -Count = 983 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 66A53774634446E00393110B4E8BED574DE406FB203323157DF3322F668B13255381A69FE53C9C8CFD79EB3442 - -Count = 984 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = C77A6191C16E81C75D4CAC41B7F56278D3FBAB63856D8DD397A4F2AB1AA7ED7286660A4E48ED2E4C83363EAB34 - -Count = 985 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = EFAFA35D8B3F88E3A9505038F31154FDF8DDAB5ACE792263326D147F1E375344DED18AD372FC1EEE119B60478C - -Count = 986 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = DE6BD6378FE95E7378C84B8D1AA23AB520684DA0BB89B5AE9E4C2587E0440ECD7F94E4E5FC453E11DD80F2807E - -Count = 987 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = 58A229A7387324C714659FF3564AC1F3EE80714583CA2C6ECEDCEA3176C16186D1BF61837C5955ECAD02D0A450 - -Count = 988 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = F031E2AFFAE2B95BE598977BA0673B7E900A4729D0E6F70B41298E8ACB65498F421E97D39E3BCC7CAE1EAFE31A - -Count = 989 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = 7D1230E3FCC5C4C467898F23C63183E92E4FA8C61F187DAA7A5D2257D6CFAEB049BAD5A6928C7A48D1E7465D92 - -Count = 990 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = C61885163BDF7731CB5D35F548C00A3D16AA7332655EE2D6F18726727B99A09639D5D6110A2AE7499D260D243B - -Count = 991 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = -CT = 51F2D4A1833F6DB28ADB483425770D171871F224619F871F619D07CDB868C7892A9C8157358F8D070E7417CE6D94 - -Count = 992 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 00 -CT = A654B900AD8C4AAEC839D25085603EC71D383553279B0504C53323CE6FB1E0E6B8D7BFE336402185D895477C2FA2 - -Count = 993 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 0001 -CT = 404D50EE73E5466D11265F658201C63A4D9AB5066438B741E91B24228F6C1B7D95E89FF07B55576D7C8148ED25E2 - -Count = 994 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102 -CT = A951BB13C588FD79087BB9C84AF93F7268AFB2021B767670916C7AE8862F91C56F7D19A79B697AE458ABDFB41404 - -Count = 995 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 00010203 -CT = ADB1A2AE1C3998E777D1D0FDF4789F3872CA08E644F478CF3283E94E1AE3C4B9931FF7145FBBF6650DFA3B65EAB5 - -Count = 996 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 0001020304 -CT = DE2A4FA444AD20F43273302F70F07BFD41E7E56E3903991739BEB8590DDE9C5004A93DBD0BE1B3A1A65A22F78D4A - -Count = 997 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405 -CT = B17D7E9B4A2FE3FA474D900C8ADBDDBABE8985B911E1580137FB541F525154DC32172ADAAE35F103F94174070F9D - -Count = 998 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 00010203040506 -CT = 689271679E4BC4E41964FC17F9E00B9082FB42CA3937D9B3F75A263EB5699BDC984E73441AEC149B1234E5581C0E - -Count = 999 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 0001020304050607 -CT = DF98D778D38C8BBACA7BD596B7762315D15C200FC6E9611D3F64DA30D396BC1648B0274B00A3C8DA7B97D6B13F67 - -Count = 1000 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708 -CT = 2149D68E424B8C6C1EB8D9CDED3FC3DC728711976DB04F9DECFDC221606306658B45FD4E9CF594B011AD3B0578C6 - -Count = 1001 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 00010203040506070809 -CT = 62EB80586170A73F0A440B03CD61DDA7B3AC0604038158F16F0926E73B058EE58E69924BFB22B7EDDD82B62F3902 - -Count = 1002 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A -CT = 9BA62E608F82D27C37E62ADB8D610B00D0AFA9434143DE866C9E52671DE9740A35286363504CB431917871C87FFB - -Count = 1003 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B -CT = 0B31D9BC0C575562F5A5A89E45C53F1819B69B34A325050641CC0DBF780B2163B6208ADE968E0CC55BBAF1447249 - -Count = 1004 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C -CT = 1CBC2B9AC054C1E88829321BF5F6D31A0E4E6BE577584E4A0ACB63B6BD9D178073EAEA40BC5A360A671B0525A895 - -Count = 1005 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C0D -CT = 9DF66C673D76625127E9AEBD82AB013409856D182E51E25D7D3DD812F4AAE4420D99FD543914CDC44A2CA5331890 - -Count = 1006 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C0D0E -CT = 2118E7FE1B4387675F0479636850316EB8C7A9A1886112E0D8C482DCF1C7B19ECA5200E2952638D17E2C817B90CB - -Count = 1007 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C0D0E0F -CT = 21C34DA22BA44F0D47762C220C03DF7D6384BF3D42D13C68B08518198268F76FF0AF90011FEE6AA496E7680BF278 - -Count = 1008 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 60E01C596E0DB486FE9536E6948E0424B7A1F408A7595BD843BB0A6548D3C8E7882A80762F9558DB303C9569AEF2 - -Count = 1009 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 06AC984D5174501ED431ABC6A4C5BA069D16EADB80978FA23F2A2983F6A0562B6545AFA9564669CFACEB44D2B1EF - -Count = 1010 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = 2BD10B5E808BA6343FDCA7699046E493BF6CD063F9A10D6C93C57E4774B970CB460DC25958F0551DA95FF7F0828D - -Count = 1011 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = E524DCB91A2460DA6B663C08590C5EE857DD18C1FF82DD44DD090B2CBF1615BC1E08C3FEC10EA570B286713C2FF6 - -Count = 1012 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = 570CF9837BDD660D6D7D5D80013E120D2AA5474C563D8F2BE3A3462DC0B53A3A176ECCB1A75E4A7A66795FF312D0 - -Count = 1013 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = 6B8FB311EC5FF4C7D875D82B79BE3606A06B4E5ABDCA2D03C3FA01E4B1243542D050EAF1BD42B9E9CD0D26EBA1DA - -Count = 1014 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = EBF85FB14E180EF602F6FB10B7BB9117A98CF7BDB4B6B3AD40F921B3706E631526D69702F21E88B2D2E2A0023B77 - -Count = 1015 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = 80641D078A25C68979DE27378258F13048ED1ED0B79684B525D7DC25768F6BA276E2E5CC84D294C05A65B631C196 - -Count = 1016 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 766171856BDB401536179120E91D63FD63A4A92BBF4A28CDAA346D63349A9DC6D405942FE2132B74D23D6AC91CED - -Count = 1017 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = ECFB9908EFB8B36F48F5E53C1CE20FBFEE0ECFD48AA603C715A029910511EB1E3FC514EC8324B26FB123684DE3A6 - -Count = 1018 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = A9280475A07B70E0225932E818116011EDF1BE192CBB87F6D6194206E7610A6BE040797DE46F553B1A7FB02E4582 - -Count = 1019 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 485279BFF3AF11933AD571C8779FCF886B7D406827D971769524004CF62A4C3DEC6390C4FBA05CB310C0182B5617 - -Count = 1020 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = 607D49812DED10925D460CB3F876C92A45A6EC56201FD8770A27DF9BF320BF1BFC0C103398189EEFF43914201386 - -Count = 1021 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = D6378D14869DAE9275829D767881E7B85AFD7B40865CF0E2D158810E0F6467FDDF50063BEC5F8B8B893690F41884 - -Count = 1022 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = A96BAF0958F0AAB33A88E49FA31C6A1E65F958BBE5794D07A6E16AFCFC7D293D68596AF2EC0974A6EA47D2388E41 - -Count = 1023 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 362C887DC0294C1AB9A61AC6159A460F9717D6B3843C87C465AD982A0CBA810DC64A14CCCC376DF1729CF73C9D1C - -Count = 1024 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = -CT = 21CA6F37BB154D7E026D906ABBC087040B0B397D5370C947C992EFC1129A2416B03A46FC45D80A770E68CD787A26EB - -Count = 1025 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 00 -CT = 68A6ED4B17F9B3AADBC2793F64940F1FDAA2A4268ADC530C00D0BF9A92A1B175C528CB949FFD846A85399ED6F439DC - -Count = 1026 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 0001 -CT = AEEB0323FEBF2957096CD6EEFBE51DD791C2226B6166D8E5BA96452AADDCCB01DDAFBA3DBD482E1FAFD5C1907653E8 - -Count = 1027 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102 -CT = 0B78AB33D8B79CF1B3B159AF07F92AF3110D26A1F581DF92D893CE6F9028438FDC5BA205084794F2A0491FF91D0396 - -Count = 1028 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 00010203 -CT = B945525A7C05CE22E72337B93D299038D8B78F3ED2BB9B92E4E0734F610BA716B2506C00127BC589A08E22235986FB - -Count = 1029 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 0001020304 -CT = 576F137D98007679D7BC363102A5CABA783A05B0959A6F141647340A99F5C8CE902B7E0DEC280CA87E5B6A6E19A076 - -Count = 1030 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405 -CT = 71556EE5E93BEAE81A59373A60BE143A323E8638728196B3F9009E40E4FD823DBC6E05588AF298AA1A80D92C61D1D8 - -Count = 1031 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 00010203040506 -CT = 4925148ABB8ED25ABFCE68A650753538E82629401938D76D66AF429DD3E2AA4A9FD17C6E94EAE06DD095ECDA932857 - -Count = 1032 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 0001020304050607 -CT = 1C4A2E31025727D7667E08890542ECBE7BD0140AF96581020691F462228118CF89C9EB41CD5B625F8E0FF537D86992 - -Count = 1033 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708 -CT = 626311BA7656065064B5CC72711D51DAD8CF88484FCA0DD7DF7981007118EEB2DF91A9DB5A9D14FA34B592FA7A4A84 - -Count = 1034 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 00010203040506070809 -CT = 03DC988E1689BF89DF08585DDDC45997BC6CEB760DF69D74EAD73573A88825AC52B970CE3F6C7143A84DBF6B29EFA0 - -Count = 1035 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A -CT = 3E9C01A34E4A3D8C34864E5070C681F62E309B46610E98C3108C073D66315F002929670232B5EA4412B562AA9B0473 - -Count = 1036 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B -CT = D177F79543B35217B3D9CDF3F9035DA8D331AE4D56BA6E8F2F90F764E163BC3940FDAD2CE19F2D7C5F967BFE277249 - -Count = 1037 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C -CT = A2FF008898B8B6374B03C568E5E9F7EB7949068A31E5B6B2E0161E133037ED927BF30DD19D858C89901A049F791F26 - -Count = 1038 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C0D -CT = D15A167870C586C0448F2971D951DF7618D26361EB6E4F05BBB653BF3F045859443FA80C5C4F2603E22620714AEC7C - -Count = 1039 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C0D0E -CT = 9E279D789E13F5308C068FE5370F29A58A49B20D626FC7EFE1B4EFAF1AE659DA4D3769BC273ACE43028CE693A58DD1 - -Count = 1040 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C0D0E0F -CT = C1FC616EE2E0A81CF28D5CDA6819421802A21BFDA53BB69332D6850FB024840FCA7602ED4647A5E18A29A3DF3CBBEB - -Count = 1041 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 8AFC99A8113A13281FF65171526F3E41FA81E14E9DF199F81E833A3CBE0F36DE7B043CB4763F6ED995D32E93110B04 - -Count = 1042 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 34E4AD0F2E9F7CA8105B2AC84D30D2475B3BBE677DA4805F9E3045EC322A67B49038093245DE79F925DEF78AE48565 - -Count = 1043 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = 9D30F6D39F4A574C118BB6AAAF211EEE17358D42CAA1F272F8ECCE3C1D605B2576539F6025956409A63A7BCE6C69FB - -Count = 1044 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 8029BA300627DB6CCF0D476EF80DA7C1CAE3D4A540D42FDFB2BDFE181173E24EB232916918C468E77D8CDF5A355BC8 - -Count = 1045 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = 6B11ED467E765372422494A17F2B2CA5EED4D27074FCB4E8F0945BEE1A1A8CA2923C9C770E58EB7F0948ACC95CF2B8 - -Count = 1046 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = 76CE040045F63D39E4F5542895166D0628B6BC78C7954C49682FF169AF9E8CC6C7274889799D20A58744140BABDF5F - -Count = 1047 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 9C09A5EDE71B70B3152F0602F380123B672547493BC8505C5EF887B784F64DC9ADA170B6D09119A0314FDA9B5683BE - -Count = 1048 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = 44581FCB81AA304414F3F0367064D4953EEEA0C1CDDC1ECF10D50E5D30BB4B27EDDAE19B8DE0973ABE233B15BCD5E8 - -Count = 1049 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 1430E3C2297A26D8D01A15A4051BADF7E8EC558BE90E94D70D3832DCC8A4AF19531C567FE9B0C1A3C4543D0C4EF08B - -Count = 1050 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = 12C946F3200ECA70616B998BDB02956FC00BC6E343BF86154E672D9C05D160911B8BB856A06BC6DBBF6EFA06070EE7 - -Count = 1051 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 26BF6BE335B926B61F27A8158E76022586FC9400F01BE884B3F9AFCDF6FD84D78C586941AFE1FB0BB744732436EA0F - -Count = 1052 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 52FF5C7AF6E8694398E92AFDC006C7D6D2BEEF4F68F5F3937346DFF368C4D0BFCD04F24F1374BA3D0F094899308FB7 - -Count = 1053 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = 3FD11441EF0BD043159B47481DB7F27A8AEC1B87940653019573F572BFB2C877B1B505BFDB296360AB63ECB0C25E3E - -Count = 1054 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = DAE9F800ABEEB3E031B1A59E2835DD8CF503793CC52836EBBB02B2BAE0944662C378E65D30B0856284F75EF95ADA22 - -Count = 1055 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = EEFCE4606D171C259CDB03050D7B65A506765F7C8270CD617A10D5660AAEF90FBC848B80E8B80F136AD4E5C7F0F907 - -Count = 1056 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = DDADE35C4F491EA5211AC89B9A0F7AFD26384210AC75EB12D68C1F81BBEA0598FA9EB289D5433AE798F033ADF54C7B - -Count = 1057 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = -CT = 269B387698DB3AEB5834F3F2C1DE83454C8238DD576CD9DEA705E28241B351B28827ED9F467C9991AEEE03ECB6A2C3CB - -Count = 1058 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 00 -CT = EAD315B2D324E289677485C3F6A6D0405FCAD88588E516F49B0FE47DE31946F127937378DE7808C7432F85A0CEDB9273 - -Count = 1059 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 0001 -CT = 725C83FF5515FB4D0756E6C1C7CBAE365BDDE798ECA7D873928851B5A30DE736F2FCC3DD4036510F44DF47D6C8A27ABB - -Count = 1060 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102 -CT = D0C5E2C34726C0D2201C5FA8FBF705F3C7370CF90DAC7FEDF4EC7FF7D1CA8EE0FC9E70D68DAC5315CDE9573CFBDA9679 - -Count = 1061 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 00010203 -CT = 14047544BAE9F828BCC91D6AFDB312E8589D510AC09F0CBD0A6BCBF9430FE1B6BB7635E97AB5FC9DDB196FE54D471C81 - -Count = 1062 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 0001020304 -CT = 64B1026D7E185953040681A1EDB8A806F9EBAA02668C532A470A8F6494B16193AEB4288A03446B5CC99FE9B9E21B9DE8 - -Count = 1063 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405 -CT = 99853FBF13858B144AE6C5E3BEC088E007A836519C9B1E2389F642F647E1C7E6D774C917DE166F8AFD43B1A0F80017EE - -Count = 1064 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 00010203040506 -CT = DFB799E528ADA443887430A7922D5B6CD9D4F9F3FAD3261943E761530D22F460DA6D09B6013D34E69373045CE7A5671B - -Count = 1065 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 0001020304050607 -CT = 90045D07C1D022972AD3147C4B52789608D2A18D8F76FC17848F1B53F4E6331E56C220307758107A0C9A3961DA5624F7 - -Count = 1066 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708 -CT = A4AB228F2C6788CD355511B9B388F869B67FF58BA7E9B9DC1EEBFE4EAE423FB188A59BD86240B425B3EC4FE3647D7E5D - -Count = 1067 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 00010203040506070809 -CT = 02AC4C07305B0EFAC86B381CEFE3AF7E760688C9DAE907C3B00E528F751020A86188D3EEC8F867D068224710AA194A18 - -Count = 1068 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A -CT = 78D575CAF392C46F3C47DE4416DC6A7E55CCAF4A3B2B8C6A3F1D500C63AC8149D257D6CFCED108D03AC6A30AA472F6A2 - -Count = 1069 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B -CT = 790F73238262A96E988F62844074E7C410D040716C8D98F5549CE81BC52BB5224D3ECB5FF819E9C3BE8E4990D15BF0AC - -Count = 1070 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C -CT = BBF77C26F4E8E065DB866CE0FF36EFCA5B04550AC5B53E63561FD80844A9E429FDDA22FFB3EFB2512E5DCFEB786B2ADA - -Count = 1071 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C0D -CT = 980B8AB60388A16A3A69CFA998690145E1AE8A923651FFC054B04111A59EAFC77091C25D7568311901533CF0267CCB92 - -Count = 1072 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C0D0E -CT = 7EA219FC1EC690ECF114946BCEB829CBA906AECB31844E8378590D9A5AACFCAACA4CB50EB8009BC5C390DB5C228C64C6 - -Count = 1073 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C0D0E0F -CT = 8593CCC4BC7A9D46ABB39FC65E106EF9BDD5A563E6C5A87D80CB2B6E5B27EC31D46456633AA2747564DAACA38C1CE77E - -Count = 1074 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C0D0E0F10 -CT = EF0984578B94C5ECD2FA775E16B40FE6B639550C1230D9B76EEA09BAE01F911BC6DB0D71EB49673D4BFF772C45AF69A8 - -Count = 1075 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 8840664F43D56B1DF962FED7AF42A2BB99FF055E785A962AD102F044E89048D3BABFC8792839AA8988A4810A80F11647 - -Count = 1076 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = 28AD9854D6EAA221DCF44B4201E9177D40EBA2B43FFECD1BC9D3043A019060C2A98663C3C7C8FA91F0561DCA092BFD9B - -Count = 1077 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 210B7B5A3F3FD0DF07754678DA7D5CF22C006C1D26A22FB09CC7DA37FEB4B91503A7B1F73E32FCCA923CCBD758A6039C - -Count = 1078 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = 7591ABC77C77AAAE3BB7F5F17B5BAC7FC880A8FD7E4BF37DAB8AC2542694D07C36A0CA9090F64799333CE58FBD72A0B9 - -Count = 1079 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = A7C94AE4873A8E9A6E0FE4984B530D28CF23B852060748E815C41492F9E3141B8D3B22E2788E0ABD4EA1E233D8F5D10A - -Count = 1080 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 928B502448B50B36EDB144B354C8936B28773726EE7BA8ACB825413A24D2377203546EC998D0E08391E1C70EAB316944 - -Count = 1081 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = 26B55733177CDF2AD3D1947790DE280AAB1F308FDF3B142D65693F9A6528D05AE4621097C2568F29CC4FE258B1B72D73 - -Count = 1082 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = BC208995AFB0B32ABEA38E4FBDC5BA3540BAE235A81AC71FD8D70D76437CD703BAEE85E73C1C522C3E73D7D3533B1014 - -Count = 1083 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = 25BFD80B0E4B2756EE80AC9D92CE2D65135190432A6DC9CF287699811B360717967F3F57D159AA1850B35A0D17D52E91 - -Count = 1084 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 2795204CE2873268B293EB399D512C6041143B7D934CC402827E07FD4C635AAE3F520EF0C441AC7BA154CEA01598EACB - -Count = 1085 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 2CFADB46345316C111A9240F1560FAB118A0AC50728E4B2E82F821B249CA7B33EFE89A6C66CA165131745FFDF0478675 - -Count = 1086 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = 996D03D3DD3044B7D62E25B9D260B7C3F21D55AEFA6A03429971DD8536FDAE9DE35FCC2AB35F0916805911F88AA91CC1 - -Count = 1087 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = EBB40147A90815385DE13786933ADD34E3FD2B2B47CFBCE2C3339958E25D1EC1C2085E1E47F0B52246F411C8D542C2F1 - -Count = 1088 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = 43B9AD80477CC9B330478EA3B68B6856374818F1BBBAEA0D0A921705A9C5DAE7C789D78086F8AF354A6BB3CD10E31709 - -Count = 1089 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = B4167368927AA01AEDF0AA814B8EFD8C06BEE7C5123EF3D300CF1C92D1408911769FD5F550EB784583D5F651558A46E9 - diff --git a/romulus/Implementations/crypto_aead/romulusm2v12/ref/api.h b/romulus/Implementations/crypto_aead/romulusm2v12/ref/api.h deleted file mode 100644 index 969c338..0000000 --- a/romulus/Implementations/crypto_aead/romulusm2v12/ref/api.h +++ /dev/null @@ -1,5 +0,0 @@ -#define CRYPTO_KEYBYTES 16 -#define CRYPTO_NSECBYTES 0 -#define CRYPTO_NPUBBYTES 12 -#define CRYPTO_ABYTES 16 -#define CRYPTO_NOOVERLAP 1 diff --git a/romulus/Implementations/crypto_aead/romulusm2v12/ref/encrypt.c b/romulus/Implementations/crypto_aead/romulusm2v12/ref/encrypt.c deleted file mode 100644 index d6be34c..0000000 --- a/romulus/Implementations/crypto_aead/romulusm2v12/ref/encrypt.c +++ /dev/null @@ -1,859 +0,0 @@ -/* - * Date: 29 November 2018 - * Contact: Thomas Peyrin - thomas.peyrin@gmail.com - * Mustafa Khairallah - mustafam001@e.ntu.edu.sg - */ - -#include "crypto_aead.h" -#include "api.h" -#include "variant.h" -#include "skinny.h" -#include -#include - -/*void display_vector (const unsigned char* x, int lenx) { - int i; - - for (i = 0; i < lenx; i++) { - //printf("%02x",x[i]); - } - //printf("\n"); - - }*/ - - -void pad (const unsigned char* m, unsigned char* mp, int l, int len8) { - int i; - - for (i = 0; i < l; i++) { - if (i < len8) { - mp[i] = m[i]; - } - else if (i == l - 1) { - mp[i] = (len8 & 0x0f); - } - else { - mp[i] = 0x00; - } - } - -} - -void g8A (unsigned char* s, unsigned char* c) { - int i; - - for (i = 0; i < 16; i++) { - c[i] = (s[i] >> 1) ^ (s[i] & 0x80) ^ ((s[i] & 0x01) << 7); - } - -} - -void rho_ad (const unsigned char* m, - unsigned char* s, - int len8, - int ver) { - int i; - unsigned char mp [16]; - - //printf("rho in m = ");display_vector(m,len8); - pad(m,mp,ver,len8); - //printf("rho in mp = ");display_vector(mp,16); - //printf("rho in s = ");display_vector(s,16); - for (i = 0; i < ver; i++) { - s[i] = s[i] ^ mp[i]; - } - //printf("rho out s = ");display_vector(s,16); - -} - -void rho (const unsigned char* m, - unsigned char* c, - unsigned char* s, - int len8, - int ver) { - int i; - unsigned char mp [16]; - - //printf("rho in m = ");display_vector(m,len8); - pad(m,mp,ver,len8); - //printf("rho in mp = ");display_vector(mp,16); - //printf("rho in s = ");display_vector(s,16); - - g8A(s,c); - for (i = 0; i < ver; i++) { - s[i] = s[i] ^ mp[i]; - if (i < len8) { - c[i] = c[i] ^ mp[i]; - } - else { - c[i] = 0; - } - } - //printf("rho out s = ");display_vector(s,16); - //printf("rho out c = ");display_vector(c,16); - -} - -void irho (unsigned char* m, - const unsigned char* c, - unsigned char* s, - int len8, - int ver) { - int i; - unsigned char cp [16]; - - //printf("irho in c = ");display_vector(c,len8); - pad(c,cp,ver,len8); - //printf("irho in cp = ");display_vector(cp,16); - //printf("irho in s = ");display_vector(s,16); - - g8A(s,m); - for (i = 0; i < ver; i++) { - if (i < len8) { - s[i] = s[i] ^ cp[i] ^ m[i]; - } - else { - s[i] = s[i] ^ cp[i]; - } - if (i < len8) { - m[i] = m[i] ^ cp[i]; - } - else { - m[i] = 0; - } - } - //printf("irho out s = ");display_vector(s,16); - //printf("irho out m = ");display_vector(c,16); - -} - - -void reset_lfsr_gf24 (unsigned char* CNT) { - CNT[0] = 0x01; - CNT[1] = 0x00; - CNT[2] = 0x00; -} - -void lfsr_gf24 (unsigned char* CNT) { - unsigned char fb0; - - fb0 = CNT[2] >> 7; - - CNT[2] = (CNT[2] << 1) | (CNT[1] >> 7); - CNT[1] = (CNT[1] << 1) | (CNT[0] >> 7); - if (fb0 == 1) { - CNT[0] = (CNT[0] << 1) ^ 0x1b; - } - else { - CNT[0] = (CNT[0] << 1); - } -} - -void reset_dual_lfsr (unsigned char* CNT) { - reset_lfsr_gf24 (CNT); - reset_lfsr_gf24 (CNT+3); -} - -void dual_lfsr (unsigned char* CNT) { - lfsr_gf24(CNT); - if (CNT[0] == 0x01) { - if (CNT[1] == 0x00) { - if (CNT[2] == 0x00) { - lfsr_gf24(CNT+3); - } - } - } -} -void compose_tweakey (unsigned char* KT, - const unsigned char* K, - unsigned char* T, - unsigned char* CNT, - unsigned char D, - int t) { - - int i; - - for (i = 0; i < 3; i++) { - KT[i] = CNT[i]; - } - KT[i] = D; - for (i = 0; i < t; i++) { - KT[i+4] = T[i]; - } - for (i = 0; i < 16; i++) { - KT[i+4+t] = K[i]; - } - for (i = 0; i < 3; i++) { - KT[i+4+t+16] = CNT[i+3]; - } - for (i = 0; i < 13; i++) { - KT[i+4+t+16+3] = 0x00; - } - -} - -void block_cipher(unsigned char* s, - const unsigned char* k, unsigned char* T, - unsigned char* CNT, unsigned char D, int t, int n) { - unsigned char KT [48]; - - (void)n; - compose_tweakey(KT,k,T,CNT,D,t); - //printf("BC in kt = ");display_vector(KT,3*n); - //printf("BC in s = ");display_vector(s,n); - skinny_128_384_enc (s,KT); - //printf("BC out s = ");display_vector(s,n); - -} - -void nonce_encryption (const unsigned char* N, - unsigned char* CNT, - unsigned char*s, const unsigned char* k, - int t, int n, unsigned char D) { - unsigned char T [16]; - int i; - - for (i = 0; i < t; i++) { - T[i] = N[i]; - } - //printf("nonce cnt = ");display_vector(CNT,7); - block_cipher(s,k,T,CNT,D,t,n); - -} - -void generate_tag (unsigned char** c, unsigned char* s, - int n, unsigned long long* clen) { - - g8A(s, *c); - *c = *c + n; - *c = *c - *clen; - -} - -unsigned long long msg_encryption (const unsigned char** M, unsigned char** c, - const unsigned char* N, - unsigned char* CNT, - unsigned char*s, const unsigned char* k, - unsigned int n, unsigned int t, unsigned char D, - unsigned long long mlen) { - int len8; - - - if (mlen >= n) { - len8 = n; - mlen = mlen - n; - } - else { - len8 = mlen; - mlen = 0; - } - rho(*M, *c, s, len8, n); - *c = *c + len8; - *M = *M + len8; - dual_lfsr(CNT); - if (mlen != 0) { - nonce_encryption(N,CNT,s,k,t,n,D); - } - return mlen; -} - - - -unsigned long long msg_decryption (unsigned char** M, const unsigned char** c, - const unsigned char* N, - unsigned char* CNT, - unsigned char*s, const unsigned char* k, - unsigned int n, unsigned int t, unsigned char D, - unsigned long long clen) { - int len8; - - if (clen >= n) { - len8 = n; - clen = clen - n; - } - else { - len8 = clen; - clen = 0; - } - irho(*M, *c, s, len8, n); - *c = *c + len8; - *M = *M + len8; - dual_lfsr(CNT); - nonce_encryption(N,CNT,s,k,t,n,D); - return clen; -} - -unsigned long long ad2msg_encryption (const unsigned char** M, - unsigned char* CNT, - unsigned char*s, const unsigned char* k, - unsigned int t, unsigned int n, unsigned char D, - unsigned long long mlen) { - unsigned char T [16]; - int len8; - - if (mlen <= t) { - len8 = mlen; - mlen = 0; - } - else { - len8 = t; - mlen = mlen - t; - } - - pad (*M,T,t,len8); - //printf("ad2msg nonce cnt = ");display_vector(CNT,7); - block_cipher(s,k,T,CNT,D,t,n); - dual_lfsr(CNT); - *M = *M + len8; - - return mlen; - -} - - -unsigned long long ad_encryption (const unsigned char** A, unsigned char* s, - const unsigned char* k, unsigned long long adlen, - unsigned char* CNT, - unsigned char D, - unsigned int n, unsigned int t) { - - unsigned char T [16]; - int len8; - - if (adlen >= n) { - len8 = n; - adlen = adlen - n; - } - else { - len8 = adlen; - adlen = 0; - } - //printf("AD in = ");display_vector(*A,len8); - rho_ad(*A, s, len8, n); - *A = *A + len8; - dual_lfsr(CNT); - //printf("AD cnt = ");display_vector(CNT,7); - if (adlen != 0) { - if (adlen >= t) { - len8 = t; - adlen = adlen - t; - } - else { - len8 = adlen; - adlen = 0; - } - pad(*A, T, t, len8); - *A = *A + len8; - block_cipher(s,k,T,CNT,D,t,n); - dual_lfsr(CNT); - } - - return adlen; -} - -int crypto_aead_encrypt ( - unsigned char* c, unsigned long long* clen, - const unsigned char* m, unsigned long long mlen, - const unsigned char* ad, unsigned long long adlen, - const unsigned char* nsec, - const unsigned char* npub, - const unsigned char* k - ) -{ - unsigned char s[16]; - unsigned char CNT[7]; - unsigned char T[16]; - const unsigned char* N; - unsigned int n, t, i; - unsigned char w; - unsigned long long xlen; - - (void)nsec; - N = npub; - - n = AD_BLK_LEN_ODD; - t = AD_BLK_LEN_EVN; - - xlen = mlen; - - for (i = 0; i < n; i++) { - s[i] = 0; - } - reset_dual_lfsr(CNT); - //printf("s = ");display_vector(s,16); - //printf("cnt = ");display_vector(CNT,7); - - w = 112; - - if (adlen == 0) { - w = w ^ 2; - if (xlen == 0) { - w =w ^ 1; - } - else if (xlen%(n+t) == 0) { - w = w ^ 4; - } - else if (xlen%(n+t) < t) { - w = w ^ 1; - } - else if (xlen%(n+t) == t) { - w = w ^ 0; - } - else { - w = w ^ 5; - } - } - else if (adlen%(n+t) == 0) { - w = w ^ 8; - if (xlen == 0) { - w =w ^ 1; - } - else if (xlen%(n+t) == 0) { - w = w ^ 4; - } - else if (xlen%(n+t) < n) { - w = w ^ 1; - } - else if (xlen%(n+t) == n) { - w = w ^ 0; - } - else { - w = w ^ 5; - } - } - else if (adlen%(n+t) < n) { - w = w ^ 2; - if (xlen == 0) { - w =w ^ 1; - } - else if (xlen%(n+t) == 0) { - w = w ^ 4; - } - else if (xlen%(n+t) < t) { - w = w ^ 1; - } - else if (xlen%(n+t) == t) { - w = w ^ 0; - } - else { - w = w ^ 5; - } - } - else if (adlen%(n+t) == n) { - w = w ^ 0; - if (xlen == 0) { - w =w ^ 1; - } - else if (xlen%(n+t) == 0) { - w = w ^ 4; - } - else if (xlen%(n+t) < t) { - w = w ^ 1; - } - else if (xlen%(n+t) == t) { - w = w ^ 0; - } - else { - w = w ^ 5; - } - } - else { - w = w ^ 10; - if (xlen == 0) { - w =w ^ 1; - } - else if (xlen%(n+t) == 0) { - w = w ^ 4; - } - else if (xlen%(n+t) < n) { - w = w ^ 1; - } - else if (xlen%(n+t) == n) { - w = w ^ 0; - } - else { - w = w ^ 5; - } - } - - /* if (adlen%(n+t) == 0) { */ - /* w = w ^ 8; */ - /* if (xlen%(n+t) == 0) { */ - /* w = w ^ 4; */ - /* } */ - /* else if (xlen%(n+t) > n) { */ - /* w = w ^ 5; */ - /* } */ - /* else if (xlen%n == 0) { */ - /* w = w ^ 0; */ - /* } */ - /* else { */ - /* w = w ^ 1; */ - /* } */ - /* } */ - /* else if (adlen%(n+t) > n) { */ - /* w = w ^ 10; */ - /* if (xlen%(n+t) == 0) { */ - /* w = w ^ 4; */ - /* } */ - /* else if (xlen%(n+t) > n) { */ - /* w = w ^ 5; */ - /* } */ - /* else if (xlen%n == 0) { */ - /* w = w ^ 0; */ - /* } */ - /* else { */ - /* w = w ^ 1; */ - /* } */ - /* } */ - /* else if ((adlen+t)%(n+t) == 0) { */ - /* w = w ^ 0; */ - /* if (xlen%(n+t) == 0) { */ - /* w = w ^ 4; */ - /* } */ - /* else if (xlen%(n+t) > t) { */ - /* w = w ^ 5; */ - /* } */ - /* else if (xlen%t == 0) { */ - /* w = w ^ 0; */ - /* } */ - /* else { */ - /* w = w ^ 1; */ - /* } */ - /* } */ - /* else { */ - /* w = w ^ 2; */ - /* if (xlen%(n+t) == 0) { */ - /* w = w ^ 4; */ - /* } */ - /* else if (xlen%(n+t) > t) { */ - /* w = w ^ 5; */ - /* } */ - /* else if (xlen%t == 0) { */ - /* w = w ^ 0; */ - /* } */ - /* else { */ - /* w = w ^ 1; */ - /* } */ - /* } */ - - /* if (adlen == 0) { */ - /* w = w ^ 10; */ - /* } */ - - /* if (mlen == 0) { */ - /* w = w ^ 5; */ - /* } */ - - if (adlen == 0) { // AD is an empty string - dual_lfsr(CNT); - //xlen = ad2msg_encryption (&m,CNT,s,k,t,n,108,xlen); - } - else while (adlen > 0) { - adlen = ad_encryption(&ad,s,k,adlen,CNT,104,n,t); - } - - if ((w & 8) == 0) { - xlen = ad2msg_encryption (&m,CNT,s,k,t,n,108,xlen); - } - else if (mlen == 0) { - dual_lfsr(CNT); - } - while (xlen > 0) { - xlen = ad_encryption(&m,s,k,xlen,CNT,108,n,t); - } - nonce_encryption(N,CNT,s,k,t,n,w); - - - // Tag generation - g8A(s, T); - //printf("T = ");display_vector(T,n); - - m = m - mlen; - - reset_dual_lfsr(CNT); - - for (i = 0; i < n; i = i + 1) { - s[i] = T[i]; - } - - n = MSG_BLK_LEN; - *clen = mlen + n; - - - - if (mlen > 0) { - nonce_encryption(N,CNT,s,k,t,n,100); - while (mlen > n) { - mlen = msg_encryption(&m,&c,N,CNT,s,k,n,t,100,mlen); - } - rho(m, c, s, mlen, 16); - c = c + mlen; - m = m + mlen; - } - - // Tag Concatenation - for (i = 0; i < 16; i = i + 1) { - *(c + i) = T[i]; - } - - c = c - *clen; - - - - return 0; -} - -int crypto_aead_decrypt( -unsigned char *m,unsigned long long *mlen, -unsigned char *nsec, -const unsigned char *c,unsigned long long clen, -const unsigned char *ad,unsigned long long adlen, -const unsigned char *npub, -const unsigned char *k -) -{ - unsigned char s[16]; - unsigned char CNT[7]; - unsigned char T[16]; - const unsigned char* N; - unsigned int n, t, i; - unsigned char w; - unsigned long long xlen; - const unsigned char* mauth; - - (void)nsec; - mauth = m; - - N = npub; - - n = AD_BLK_LEN_ODD; - t = AD_BLK_LEN_EVN; - - xlen = clen-16; - - reset_dual_lfsr(CNT); - - for (i = 0; i < 16; i++) { - T[i] = *(c + clen - 16 + i); - } - - for (i = 0; i < n; i = i + 1) { - s[i] = T[i]; - } - - n = MSG_BLK_LEN; - clen = clen - 16; - *mlen = clen; - - - if (clen > 0) { - nonce_encryption(N,CNT,s,k,t,n,100); - while (clen > n) { - clen = msg_decryption(&m,&c,N,CNT,s,k,n,t,100,clen); - } - irho(m, c, s, clen, 16); - c = c + clen; - m = m + clen; - } - - - for (i = 0; i < n; i++) { - s[i] = 0; - } - reset_dual_lfsr(CNT); - //printf("s = ");display_vector(s,16); - //printf("cnt = ");display_vector(CNT,7); - - w = 112; - - if (adlen == 0) { - w = w ^ 2; - if (xlen == 0) { - w =w ^ 1; - } - else if (xlen%(n+t) == 0) { - w = w ^ 4; - } - else if (xlen%(n+t) < t) { - w = w ^ 1; - } - else if (xlen%(n+t) == t) { - w = w ^ 0; - } - else { - w = w ^ 5; - } - } - else if (adlen%(n+t) == 0) { - w = w ^ 8; - if (xlen == 0) { - w =w ^ 1; - } - else if (xlen%(n+t) == 0) { - w = w ^ 4; - } - else if (xlen%(n+t) < n) { - w = w ^ 1; - } - else if (xlen%(n+t) == n) { - w = w ^ 0; - } - else { - w = w ^ 5; - } - } - else if (adlen%(n+t) < n) { - w = w ^ 2; - if (xlen == 0) { - w =w ^ 1; - } - else if (xlen%(n+t) == 0) { - w = w ^ 4; - } - else if (xlen%(n+t) < t) { - w = w ^ 1; - } - else if (xlen%(n+t) == t) { - w = w ^ 0; - } - else { - w = w ^ 5; - } - } - else if (adlen%(n+t) == n) { - w = w ^ 0; - if (xlen == 0) { - w =w ^ 1; - } - else if (xlen%(n+t) == 0) { - w = w ^ 4; - } - else if (xlen%(n+t) < t) { - w = w ^ 1; - } - else if (xlen%(n+t) == t) { - w = w ^ 0; - } - else { - w = w ^ 5; - } - } - else { - w = w ^ 10; - if (xlen == 0) { - w =w ^ 1; - } - else if (xlen%(n+t) == 0) { - w = w ^ 4; - } - else if (xlen%(n+t) < n) { - w = w ^ 1; - } - else if (xlen%(n+t) == n) { - w = w ^ 0; - } - else { - w = w ^ 5; - } - } - /* if (adlen%(n+t) == 0) { */ - /* w = w ^ 8; */ - /* if (xlen%(n+t) == 0) { */ - /* w = w ^ 4; */ - /* } */ - /* else if (xlen%(n+t) > n) { */ - /* w = w ^ 5; */ - /* } */ - /* else if (xlen%n == 0) { */ - /* w = w ^ 0; */ - /* } */ - /* else { */ - /* w = w ^ 1; */ - /* } */ - /* } */ - /* else if (adlen%(n+t) > n) { */ - /* w = w ^ 10; */ - /* if (xlen%(n+t) == 0) { */ - /* w = w ^ 4; */ - /* } */ - /* else if (xlen%(n+t) > n) { */ - /* w = w ^ 5; */ - /* } */ - /* else if (xlen%n == 0) { */ - /* w = w ^ 0; */ - /* } */ - /* else { */ - /* w = w ^ 1; */ - /* } */ - /* } */ - /* else if ((adlen+t)%(n+t) == 0) { */ - /* w = w ^ 0; */ - /* if (xlen%(n+t) == 0) { */ - /* w = w ^ 4; */ - /* } */ - /* else if (xlen%(n+t) > t) { */ - /* w = w ^ 5; */ - /* } */ - /* else if (xlen%t == 0) { */ - /* w = w ^ 0; */ - /* } */ - /* else { */ - /* w = w ^ 1; */ - /* } */ - /* } */ - /* else { */ - /* w = w ^ 2; */ - /* if (xlen%(n+t) == 0) { */ - /* w = w ^ 4; */ - /* } */ - /* else if (xlen%(n+t) > t) { */ - /* w = w ^ 5; */ - /* } */ - /* else if (xlen%t == 0) { */ - /* w = w ^ 0; */ - /* } */ - /* else { */ - /* w = w ^ 1; */ - /* } */ - /* } */ - - /* if (adlen == 0) { */ - /* w = w ^ 10; */ - /* } */ - - /* if (clen == 0) { */ - /* w = w ^ 5; */ - /* } */ - - if (adlen == 0) { // AD is an empty string - dual_lfsr(CNT); - //xlen = ad2msg_encryption (&mauth,CNT,s,k,t,n,108,xlen); - } - else while (adlen > 0) { - adlen = ad_encryption(&ad,s,k,adlen,CNT,104,n,t); - } - - if ((w & 8) == 0) { - xlen = ad2msg_encryption (&mauth,CNT,s,k,t,n,108,xlen); - } - else if (clen == 0) { - dual_lfsr(CNT); - } - while (xlen > 0) { - xlen = ad_encryption(&mauth,s,k,xlen,CNT,108,n,t); - } - nonce_encryption(N,CNT,s,k,t,n,w); - - // Tag generation - g8A(s, T); - //printf("T = ");display_vector(T,16); - //printf("t = ");display_vector(c,16); - for (i = 0; i < 16; i++) { - if (T[i] != (*(c+i))) { - return -1; - } - } - - return 0; -} diff --git a/romulus/Implementations/crypto_aead/romulusm2v12/ref/genkat_aead.c b/romulus/Implementations/crypto_aead/romulusm2v12/ref/genkat_aead.c deleted file mode 100644 index ecee146..0000000 --- a/romulus/Implementations/crypto_aead/romulusm2v12/ref/genkat_aead.c +++ /dev/null @@ -1,163 +0,0 @@ -// -// NIST-developed software is provided by NIST as a public service. -// You may use, copy and distribute copies of the software in any medium, -// provided that you keep intact this entire notice. You may improve, -// modify and create derivative works of the software or any portion of -// the software, and you may copy and distribute such modifications or -// works. Modified works should carry a notice stating that you changed -// the software and should note the date and nature of any such change. -// Please explicitly acknowledge the National Institute of Standards and -// Technology as the source of the software. -// -// NIST-developed software is expressly provided "AS IS." NIST MAKES NO -// WARRANTY OF ANY KIND, EXPRESS, IMPLIED, IN FACT OR ARISING BY OPERATION -// OF LAW, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTY OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT AND DATA ACCURACY. NIST -// NEITHER REPRESENTS NOR WARRANTS THAT THE OPERATION OF THE SOFTWARE WILL BE -// UNINTERRUPTED OR ERROR-FREE, OR THAT ANY DEFECTS WILL BE CORRECTED. NIST -// DOES NOT WARRANT OR MAKE ANY REPRESENTATIONS REGARDING THE USE OF THE SOFTWARE -// OR THE RESULTS THEREOF, INCLUDING BUT NOT LIMITED TO THE CORRECTNESS, ACCURACY, -// RELIABILITY, OR USEFULNESS OF THE SOFTWARE. -// -// You are solely responsible for determining the appropriateness of using and -// distributing the software and you assume all risks associated with its use, -// including but not limited to the risks and costs of program errors, compliance -// with applicable laws, damage to or loss of data, programs or equipment, and -// the unavailability or interruption of operation. This software is not intended -// to be used in any situation where a failure could cause risk of injury or -// damage to property. The software developed by NIST employees is not subject to -// copyright protection within the United States. -// - -// disable deprecation for sprintf and fopen -#ifdef _MSC_VER -#define _CRT_SECURE_NO_WARNINGS -#endif - -#include -#include - -#include "crypto_aead.h" -#include "api.h" - -#define KAT_SUCCESS 0 -#define KAT_FILE_OPEN_ERROR -1 -#define KAT_DATA_ERROR -3 -#define KAT_CRYPTO_FAILURE -4 - -#define MAX_FILE_NAME 256 -#define MAX_MESSAGE_LENGTH 32 -#define MAX_ASSOCIATED_DATA_LENGTH 32 - -void init_buffer(unsigned char *buffer, unsigned long long numbytes); - -void fprint_bstr(FILE *fp, const char *label, const unsigned char *data, unsigned long long length); - -int generate_test_vectors(); - -int main() -{ - int ret = generate_test_vectors(); - - if (ret != KAT_SUCCESS) { - fprintf(stderr, "test vector generation failed with code %d\n", ret); - } - - return ret; -} - -int generate_test_vectors() -{ - FILE *fp; - char fileName[MAX_FILE_NAME]; - unsigned char key[CRYPTO_KEYBYTES]; - unsigned char nonce[CRYPTO_NPUBBYTES]; - unsigned char msg[MAX_MESSAGE_LENGTH]; - unsigned char msg2[MAX_MESSAGE_LENGTH]; - unsigned char ad[MAX_ASSOCIATED_DATA_LENGTH]; - unsigned char ct[MAX_MESSAGE_LENGTH + CRYPTO_ABYTES]; - unsigned long long clen, mlen2; - int count = 1; - int func_ret, ret_val = KAT_SUCCESS; - - init_buffer(key, sizeof(key)); - init_buffer(nonce, sizeof(nonce)); - init_buffer(msg, sizeof(msg)); - init_buffer(ad, sizeof(ad)); - - sprintf(fileName, "LWC_AEAD_KAT_%d_%d.txt", (CRYPTO_KEYBYTES * 8), (CRYPTO_NPUBBYTES * 8)); - - if ((fp = fopen(fileName, "w")) == NULL) { - fprintf(stderr, "Couldn't open <%s> for write\n", fileName); - return KAT_FILE_OPEN_ERROR; - } - - for (unsigned long long mlen = 0; (mlen <= MAX_MESSAGE_LENGTH) && (ret_val == KAT_SUCCESS); mlen++) { - //for (unsigned long long mlen = 0; (mlen <= 32) && (ret_val == KAT_SUCCESS); mlen++) { - for (unsigned long long adlen = 0; adlen <= MAX_ASSOCIATED_DATA_LENGTH; adlen++) { - //for (unsigned long long adlen = 0; adlen <= 32; adlen++) { - - printf("%0d\n", (int)clen); - - fprintf(fp, "Count = %d\n", count++); - printf("Count = %d\n", count - 1); - - fprint_bstr(fp, "Key = ", key, CRYPTO_KEYBYTES); - - fprint_bstr(fp, "Nonce = ", nonce, CRYPTO_NPUBBYTES); - - fprint_bstr(fp, "PT = ", msg, mlen); - - fprint_bstr(fp, "AD = ", ad, adlen); - - if ((func_ret = crypto_aead_encrypt(ct, &clen, msg, mlen, ad, adlen, NULL, nonce, key)) != 0) { - fprintf(fp, "crypto_aead_encrypt returned <%d>\n", func_ret); - ret_val = KAT_CRYPTO_FAILURE; - break; - } - - fprint_bstr(fp, "CT = ", ct, clen); - - fprintf(fp, "\n"); - - if ((func_ret = crypto_aead_decrypt(msg2, &mlen2, NULL, ct, clen, ad, adlen, nonce, key)) != 0) { - fprintf(fp, "crypto_aead_decrypt returned <%d>\n", func_ret); - ret_val = KAT_CRYPTO_FAILURE; - break; - } - - if (mlen != mlen2) { - fprintf(fp, "crypto_aead_decrypt returned bad 'mlen': Got <%llu>, expected <%llu>\n", mlen2, mlen); - ret_val = KAT_CRYPTO_FAILURE; - break; - } - - if (memcmp(msg, msg2, mlen)) { - fprintf(fp, "crypto_aead_decrypt did not recover the plaintext\n"); - ret_val = KAT_CRYPTO_FAILURE; - break; - } - } - } - - fclose(fp); - - return ret_val; -} - - -void fprint_bstr(FILE *fp, const char *label, const unsigned char *data, unsigned long long length) -{ - fprintf(fp, "%s", label); - - for (unsigned long long i = 0; i < length; i++) - fprintf(fp, "%02X", data[i]); - - fprintf(fp, "\n"); -} - -void init_buffer(unsigned char *buffer, unsigned long long numbytes) -{ - for (unsigned long long i = 0; i < numbytes; i++) - buffer[i] = (unsigned char)i; -} diff --git a/romulus/Implementations/crypto_aead/romulusm2v12/ref/skinny.h b/romulus/Implementations/crypto_aead/romulusm2v12/ref/skinny.h deleted file mode 100644 index 70c4421..0000000 --- a/romulus/Implementations/crypto_aead/romulusm2v12/ref/skinny.h +++ /dev/null @@ -1 +0,0 @@ -extern void skinny_128_384_enc (unsigned char* input, const unsigned char* userkey); diff --git a/romulus/Implementations/crypto_aead/romulusm2v12/ref/skinny_reference.c b/romulus/Implementations/crypto_aead/romulusm2v12/ref/skinny_reference.c deleted file mode 100644 index ec59a31..0000000 --- a/romulus/Implementations/crypto_aead/romulusm2v12/ref/skinny_reference.c +++ /dev/null @@ -1,547 +0,0 @@ -/* - * Date: 11 December 2015 - * Contact: Thomas Peyrin - thomas.peyrin@gmail.com - */ - -#include -#include -#include -#include -#include "skinny.h" - -#define DEBUG 0 - -// Table that encodes the parameters of the various Skinny versions: -// (block size, key size, number of rounds) -//Skinny-64-64: 32 rounds -//Skinny-64-128: 36 rounds -//Skinny-64-192: 40 rounds -//Skinny-128-128: 40 rounds -//Skinny-128-256: 48 rounds -//Skinny-128-384: 56 rounds -int versions[6][3]={{64,64,32},{64,128,36},{64,192,40},{128,128,40},{128,256,48},{128,384,56}}; - -// Packing of data is done as follows (state[i][j] stands for row i and column j): -// 0 1 2 3 -// 4 5 6 7 -// 8 9 10 11 -//12 13 14 15 - -// 4-bit Sbox -const unsigned char sbox_4[16] = {12,6,9,0,1,10,2,11,3,8,5,13,4,14,7,15}; -const unsigned char sbox_4_inv[16] = {3,4,6,8,12,10,1,14,9,2,5,7,0,11,13,15}; - -// 8-bit Sbox -const unsigned char sbox_8[256] = {0x65 , 0x4c , 0x6a , 0x42 , 0x4b , 0x63 , 0x43 , 0x6b , 0x55 , 0x75 , 0x5a , 0x7a , 0x53 , 0x73 , 0x5b , 0x7b ,0x35 , 0x8c , 0x3a , 0x81 , 0x89 , 0x33 , 0x80 , 0x3b , 0x95 , 0x25 , 0x98 , 0x2a , 0x90 , 0x23 , 0x99 , 0x2b ,0xe5 , 0xcc , 0xe8 , 0xc1 , 0xc9 , 0xe0 , 0xc0 , 0xe9 , 0xd5 , 0xf5 , 0xd8 , 0xf8 , 0xd0 , 0xf0 , 0xd9 , 0xf9 ,0xa5 , 0x1c , 0xa8 , 0x12 , 0x1b , 0xa0 , 0x13 , 0xa9 , 0x05 , 0xb5 , 0x0a , 0xb8 , 0x03 , 0xb0 , 0x0b , 0xb9 ,0x32 , 0x88 , 0x3c , 0x85 , 0x8d , 0x34 , 0x84 , 0x3d , 0x91 , 0x22 , 0x9c , 0x2c , 0x94 , 0x24 , 0x9d , 0x2d ,0x62 , 0x4a , 0x6c , 0x45 , 0x4d , 0x64 , 0x44 , 0x6d , 0x52 , 0x72 , 0x5c , 0x7c , 0x54 , 0x74 , 0x5d , 0x7d ,0xa1 , 0x1a , 0xac , 0x15 , 0x1d , 0xa4 , 0x14 , 0xad , 0x02 , 0xb1 , 0x0c , 0xbc , 0x04 , 0xb4 , 0x0d , 0xbd ,0xe1 , 0xc8 , 0xec , 0xc5 , 0xcd , 0xe4 , 0xc4 , 0xed , 0xd1 , 0xf1 , 0xdc , 0xfc , 0xd4 , 0xf4 , 0xdd , 0xfd ,0x36 , 0x8e , 0x38 , 0x82 , 0x8b , 0x30 , 0x83 , 0x39 , 0x96 , 0x26 , 0x9a , 0x28 , 0x93 , 0x20 , 0x9b , 0x29 ,0x66 , 0x4e , 0x68 , 0x41 , 0x49 , 0x60 , 0x40 , 0x69 , 0x56 , 0x76 , 0x58 , 0x78 , 0x50 , 0x70 , 0x59 , 0x79 ,0xa6 , 0x1e , 0xaa , 0x11 , 0x19 , 0xa3 , 0x10 , 0xab , 0x06 , 0xb6 , 0x08 , 0xba , 0x00 , 0xb3 , 0x09 , 0xbb ,0xe6 , 0xce , 0xea , 0xc2 , 0xcb , 0xe3 , 0xc3 , 0xeb , 0xd6 , 0xf6 , 0xda , 0xfa , 0xd3 , 0xf3 , 0xdb , 0xfb ,0x31 , 0x8a , 0x3e , 0x86 , 0x8f , 0x37 , 0x87 , 0x3f , 0x92 , 0x21 , 0x9e , 0x2e , 0x97 , 0x27 , 0x9f , 0x2f ,0x61 , 0x48 , 0x6e , 0x46 , 0x4f , 0x67 , 0x47 , 0x6f , 0x51 , 0x71 , 0x5e , 0x7e , 0x57 , 0x77 , 0x5f , 0x7f ,0xa2 , 0x18 , 0xae , 0x16 , 0x1f , 0xa7 , 0x17 , 0xaf , 0x01 , 0xb2 , 0x0e , 0xbe , 0x07 , 0xb7 , 0x0f , 0xbf ,0xe2 , 0xca , 0xee , 0xc6 , 0xcf ,0xe7 , 0xc7 , 0xef , 0xd2 , 0xf2 , 0xde , 0xfe , 0xd7 , 0xf7 , 0xdf , 0xff}; -const unsigned char sbox_8_inv[256] = {0xac , 0xe8 , 0x68 , 0x3c , 0x6c , 0x38 , 0xa8 , 0xec , 0xaa , 0xae , 0x3a , 0x3e , 0x6a , 0x6e , 0xea , 0xee ,0xa6 , 0xa3 , 0x33 , 0x36 , 0x66 , 0x63 , 0xe3 , 0xe6 , 0xe1 , 0xa4 , 0x61 , 0x34 , 0x31 , 0x64 , 0xa1 , 0xe4 ,0x8d , 0xc9 , 0x49 , 0x1d , 0x4d , 0x19 , 0x89 , 0xcd , 0x8b , 0x8f , 0x1b , 0x1f , 0x4b , 0x4f , 0xcb , 0xcf ,0x85 , 0xc0 , 0x40 , 0x15 , 0x45 , 0x10 , 0x80 , 0xc5 , 0x82 , 0x87 , 0x12 , 0x17 , 0x42 , 0x47 , 0xc2 , 0xc7 ,0x96 , 0x93 , 0x03 , 0x06 , 0x56 , 0x53 , 0xd3 , 0xd6 , 0xd1 , 0x94 , 0x51 , 0x04 , 0x01 , 0x54 , 0x91 , 0xd4 ,0x9c , 0xd8 , 0x58 , 0x0c , 0x5c , 0x08 , 0x98 , 0xdc , 0x9a , 0x9e , 0x0a , 0x0e , 0x5a , 0x5e , 0xda , 0xde ,0x95 , 0xd0 , 0x50 , 0x05 , 0x55 , 0x00 , 0x90 , 0xd5 , 0x92 , 0x97 , 0x02 , 0x07 , 0x52 , 0x57 , 0xd2 , 0xd7 ,0x9d , 0xd9 , 0x59 , 0x0d , 0x5d , 0x09 , 0x99 , 0xdd , 0x9b , 0x9f , 0x0b , 0x0f , 0x5b , 0x5f , 0xdb , 0xdf ,0x16 , 0x13 , 0x83 , 0x86 , 0x46 , 0x43 , 0xc3 , 0xc6 , 0x41 , 0x14 , 0xc1 , 0x84 , 0x11 , 0x44 , 0x81 , 0xc4 ,0x1c , 0x48 , 0xc8 , 0x8c , 0x4c , 0x18 , 0x88 , 0xcc , 0x1a , 0x1e , 0x8a , 0x8e , 0x4a , 0x4e , 0xca , 0xce ,0x35 , 0x60 , 0xe0 , 0xa5 , 0x65 , 0x30 , 0xa0 , 0xe5 , 0x32 , 0x37 , 0xa2 , 0xa7 , 0x62 , 0x67 , 0xe2 , 0xe7 ,0x3d , 0x69 , 0xe9 , 0xad , 0x6d , 0x39 , 0xa9 , 0xed , 0x3b , 0x3f , 0xab , 0xaf , 0x6b , 0x6f , 0xeb , 0xef ,0x26 , 0x23 , 0xb3 , 0xb6 , 0x76 , 0x73 , 0xf3 , 0xf6 , 0x71 , 0x24 , 0xf1 , 0xb4 , 0x21 , 0x74 , 0xb1 , 0xf4 ,0x2c , 0x78 , 0xf8 , 0xbc , 0x7c , 0x28 , 0xb8 , 0xfc , 0x2a , 0x2e , 0xba , 0xbe , 0x7a , 0x7e , 0xfa , 0xfe ,0x25 , 0x70 , 0xf0 , 0xb5 , 0x75 , 0x20 , 0xb0 , 0xf5 , 0x22 , 0x27 , 0xb2 , 0xb7 , 0x72 , 0x77 , 0xf2 , 0xf7 ,0x2d , 0x79 , 0xf9 , 0xbd , 0x7d , 0x29 , 0xb9 , 0xfd , 0x2b , 0x2f , 0xbb , 0xbf , 0x7b , 0x7f , 0xfb , 0xff}; - -// ShiftAndSwitchRows permutation -const unsigned char P[16] = {0,1,2,3,7,4,5,6,10,11,8,9,13,14,15,12}; -const unsigned char P_inv[16] = {0,1,2,3,5,6,7,4,10,11,8,9,15,12,13,14}; - -// Tweakey permutation -const unsigned char TWEAKEY_P[16] = {9,15,8,13,10,14,12,11,0,1,2,3,4,5,6,7}; -const unsigned char TWEAKEY_P_inv[16] = {8,9,10,11,12,13,14,15,2,0,4,7,6,3,5,1}; - -// round constants -const unsigned char RC[62] = { - 0x01, 0x03, 0x07, 0x0F, 0x1F, 0x3E, 0x3D, 0x3B, 0x37, 0x2F, - 0x1E, 0x3C, 0x39, 0x33, 0x27, 0x0E, 0x1D, 0x3A, 0x35, 0x2B, - 0x16, 0x2C, 0x18, 0x30, 0x21, 0x02, 0x05, 0x0B, 0x17, 0x2E, - 0x1C, 0x38, 0x31, 0x23, 0x06, 0x0D, 0x1B, 0x36, 0x2D, 0x1A, - 0x34, 0x29, 0x12, 0x24, 0x08, 0x11, 0x22, 0x04, 0x09, 0x13, - 0x26, 0x0c, 0x19, 0x32, 0x25, 0x0a, 0x15, 0x2a, 0x14, 0x28, - 0x10, 0x20}; - -FILE* fic; - - -// Extract and apply the subtweakey to the internal state (must be the two top rows XORed together), then update the tweakey state -void AddKey(unsigned char state[4][4], unsigned char keyCells[3][4][4], int ver) -{ - int i, j, k; - unsigned char pos; - unsigned char keyCells_tmp[3][4][4]; - - // apply the subtweakey to the internal state - for(i = 0; i <= 1; i++) - { - for(j = 0; j < 4; j++) - { - state[i][j] ^= keyCells[0][i][j]; - if (2*versions[ver][0]==versions[ver][1]) - state[i][j] ^= keyCells[1][i][j]; - else if (3*versions[ver][0]==versions[ver][1]) - state[i][j] ^= keyCells[1][i][j] ^ keyCells[2][i][j]; - } - } - - // update the subtweakey states with the permutation - for(k = 0; k <(int)(versions[ver][1]/versions[ver][0]); k++){ - for(i = 0; i < 4; i++){ - for(j = 0; j < 4; j++){ - //application of the TWEAKEY permutation - pos=TWEAKEY_P[j+4*i]; - keyCells_tmp[k][i][j]=keyCells[k][pos>>2][pos&0x3]; - } - } - } - - // update the subtweakey states with the LFSRs - for(k = 0; k <(int)(versions[ver][1]/versions[ver][0]); k++){ - for(i = 0; i <= 1; i++){ - for(j = 0; j < 4; j++){ - //application of LFSRs for TK updates - if (k==1) - { - if (versions[ver][0]==64) - keyCells_tmp[k][i][j]=((keyCells_tmp[k][i][j]<<1)&0xE)^((keyCells_tmp[k][i][j]>>3)&0x1)^((keyCells_tmp[k][i][j]>>2)&0x1); - else - keyCells_tmp[k][i][j]=((keyCells_tmp[k][i][j]<<1)&0xFE)^((keyCells_tmp[k][i][j]>>7)&0x01)^((keyCells_tmp[k][i][j]>>5)&0x01); - } - else if (k==2) - { - if (versions[ver][0]==64) - keyCells_tmp[k][i][j]=((keyCells_tmp[k][i][j]>>1)&0x7)^((keyCells_tmp[k][i][j])&0x8)^((keyCells_tmp[k][i][j]<<3)&0x8); - else - keyCells_tmp[k][i][j]=((keyCells_tmp[k][i][j]>>1)&0x7F)^((keyCells_tmp[k][i][j]<<7)&0x80)^((keyCells_tmp[k][i][j]<<1)&0x80); - } - } - } - } - - for(k = 0; k <(int)(versions[ver][1]/versions[ver][0]); k++){ - for(i = 0; i < 4; i++){ - for(j = 0; j < 4; j++){ - keyCells[k][i][j]=keyCells_tmp[k][i][j]; - } - } - } -} - - -// Extract and apply the subtweakey to the internal state (must be the two top rows XORed together), then update the tweakey state (inverse function} -void AddKey_inv(unsigned char state[4][4], unsigned char keyCells[3][4][4], int ver) -{ - int i, j, k; - unsigned char pos; - unsigned char keyCells_tmp[3][4][4]; - - // update the subtweakey states with the permutation - for(k = 0; k <(int)(versions[ver][1]/versions[ver][0]); k++){ - for(i = 0; i < 4; i++){ - for(j = 0; j < 4; j++){ - //application of the inverse TWEAKEY permutation - pos=TWEAKEY_P_inv[j+4*i]; - keyCells_tmp[k][i][j]=keyCells[k][pos>>2][pos&0x3]; - } - } - } - - // update the subtweakey states with the LFSRs - for(k = 0; k <(int)(versions[ver][1]/versions[ver][0]); k++){ - for(i = 2; i <= 3; i++){ - for(j = 0; j < 4; j++){ - //application of inverse LFSRs for TK updates - if (k==1) - { - if (versions[ver][0]==64) - keyCells_tmp[k][i][j]=((keyCells_tmp[k][i][j]>>1)&0x7)^((keyCells_tmp[k][i][j]<<3)&0x8)^((keyCells_tmp[k][i][j])&0x8); - else - keyCells_tmp[k][i][j]=((keyCells_tmp[k][i][j]>>1)&0x7F)^((keyCells_tmp[k][i][j]<<7)&0x80)^((keyCells_tmp[k][i][j]<<1)&0x80); - } - else if (k==2) - { - if (versions[ver][0]==64) - keyCells_tmp[k][i][j]=((keyCells_tmp[k][i][j]<<1)&0xE)^((keyCells_tmp[k][i][j]>>3)&0x1)^((keyCells_tmp[k][i][j]>>2)&0x1); - else - keyCells_tmp[k][i][j]=((keyCells_tmp[k][i][j]<<1)&0xFE)^((keyCells_tmp[k][i][j]>>7)&0x01)^((keyCells_tmp[k][i][j]>>5)&0x01); - } - } - } - } - - for(k = 0; k <(int)(versions[ver][1]/versions[ver][0]); k++){ - for(i = 0; i < 4; i++){ - for(j = 0; j < 4; j++){ - keyCells[k][i][j]=keyCells_tmp[k][i][j]; - } - } - } - - - // apply the subtweakey to the internal state - for(i = 0; i <= 1; i++) - { - for(j = 0; j < 4; j++) - { - state[i][j] ^= keyCells[0][i][j]; - if (2*versions[ver][0]==versions[ver][1]) - state[i][j] ^= keyCells[1][i][j]; - else if (3*versions[ver][0]==versions[ver][1]) - state[i][j] ^= keyCells[1][i][j] ^ keyCells[2][i][j]; - } - } -} - - -// Apply the constants: using a LFSR counter on 6 bits, we XOR the 6 bits to the first 6 bits of the internal state -void AddConstants(unsigned char state[4][4], int r) -{ - state[0][0] ^= (RC[r] & 0xf); - state[1][0] ^= ((RC[r]>>4) & 0x3); - state[2][0] ^= 0x2; -} - -// apply the 4-bit Sbox -void SubCell4(unsigned char state[4][4]) -{ - int i,j; - for(i = 0; i < 4; i++) - for(j = 0; j < 4; j++) - state[i][j] = sbox_4[state[i][j]]; -} - -// apply the 4-bit inverse Sbox -void SubCell4_inv(unsigned char state[4][4]) -{ - int i,j; - for(i = 0; i < 4; i++) - for(j = 0; j < 4; j++) - state[i][j] = sbox_4_inv[state[i][j]]; -} - -// apply the 8-bit Sbox -void SubCell8(unsigned char state[4][4]) -{ - int i,j; - for(i = 0; i < 4; i++) - for(j = 0; j < 4; j++) - state[i][j] = sbox_8[state[i][j]]; -} - -// apply the 8-bit inverse Sbox -void SubCell8_inv(unsigned char state[4][4]) -{ - int i,j; - for(i = 0; i < 4; i++) - for(j = 0; j < 4; j++) - state[i][j] = sbox_8_inv[state[i][j]]; -} - -// Apply the ShiftRows function -void ShiftRows(unsigned char state[4][4]) -{ - int i, j, pos; - - unsigned char state_tmp[4][4]; - for(i = 0; i < 4; i++) - { - for(j = 0; j < 4; j++) - { - //application of the ShiftRows permutation - pos=P[j+4*i]; - state_tmp[i][j]=state[pos>>2][pos&0x3]; - } - } - - for(i = 0; i < 4; i++) - { - for(j = 0; j < 4; j++) - { - state[i][j]=state_tmp[i][j]; - } - } -} - -// Apply the inverse ShiftRows function -void ShiftRows_inv(unsigned char state[4][4]) -{ - int i, j, pos; - - unsigned char state_tmp[4][4]; - for(i = 0; i < 4; i++) - { - for(j = 0; j < 4; j++) - { - //application of the inverse ShiftRows permutation - pos=P_inv[j+4*i]; - state_tmp[i][j]=state[pos>>2][pos&0x3]; - } - } - - for(i = 0; i < 4; i++) - { - for(j = 0; j < 4; j++) - { - state[i][j]=state_tmp[i][j]; - } - } -} - -// Apply the linear diffusion matrix -//M = -//1 0 1 1 -//1 0 0 0 -//0 1 1 0 -//1 0 1 0 -void MixColumn(unsigned char state[4][4]) -{ - int j; - unsigned char temp; - - for(j = 0; j < 4; j++){ - state[1][j]^=state[2][j]; - state[2][j]^=state[0][j]; - state[3][j]^=state[2][j]; - - temp=state[3][j]; - state[3][j]=state[2][j]; - state[2][j]=state[1][j]; - state[1][j]=state[0][j]; - state[0][j]=temp; - } -} - -// Apply the inverse linear diffusion matrix -void MixColumn_inv(unsigned char state[4][4]) -{ - int j; - unsigned char temp; - - for(j = 0; j < 4; j++){ - temp=state[3][j]; - state[3][j]=state[0][j]; - state[0][j]=state[1][j]; - state[1][j]=state[2][j]; - state[2][j]=temp; - - state[3][j]^=state[2][j]; - state[2][j]^=state[0][j]; - state[1][j]^=state[2][j]; - } -} - -// decryption function of Skinny -void dec(unsigned char* input, const unsigned char* userkey, int ver) -{ - unsigned char state[4][4]; - unsigned char dummy[4][4]={{0}}; - unsigned char keyCells[3][4][4]; - int i; - - memset(keyCells, 0, 48); - for(i = 0; i < 16; i++) { - if (versions[ver][0]==64){ - if(i&1) - { - state[i>>2][i&0x3] = input[i>>1]&0xF; - keyCells[0][i>>2][i&0x3] = userkey[i>>1]&0xF; - if (versions[ver][1]>=128) - keyCells[1][i>>2][i&0x3] = userkey[(i+16)>>1]&0xF; - if (versions[ver][1]>=192) - keyCells[2][i>>2][i&0x3] = userkey[(i+32)>>1]&0xF; - } - else - { - state[i>>2][i&0x3] = (input[i>>1]>>4)&0xF; - keyCells[0][i>>2][i&0x3] = (userkey[i>>1]>>4)&0xF; - if (versions[ver][1]>=128) - keyCells[1][i>>2][i&0x3] = (userkey[(i+16)>>1]>>4)&0xF; - if (versions[ver][1]>=192) - keyCells[2][i>>2][i&0x3] = (userkey[(i+32)>>1]>>4)&0xF; - } - } - else if (versions[ver][0]==128){ - state[i>>2][i&0x3] = input[i]&0xFF; - - keyCells[0][i>>2][i&0x3] = userkey[i]&0xFF; - if (versions[ver][1]>=256) - keyCells[1][i>>2][i&0x3] = userkey[i+16]&0xFF; - if (versions[ver][1]>=384) - keyCells[2][i>>2][i&0x3] = userkey[i+32]&0xFF; - } - } - - for(i = versions[ver][2]-1; i >=0 ; i--){ - AddKey(dummy, keyCells, ver); - } - - #ifdef DEBUG - //f//printf(fic,"DEC - initial state: ");display_cipher_state(state,keyCells,ver);//f//printf(fic,"\n"); - #endif - - for(i = versions[ver][2]-1; i >=0 ; i--){ - MixColumn_inv(state); - #ifdef DEBUG - //f//printf(fic,"DEC - round %.2i - after MixColumn_inv: ",i);display_cipher_state(state,keyCells,ver);//f//printf(fic,"\n"); - #endif - ShiftRows_inv(state); - #ifdef DEBUG - //f//printf(fic,"DEC - round %.2i - after ShiftRows_inv: ",i);display_cipher_state(state,keyCells,ver);//f//printf(fic,"\n"); - #endif - AddKey_inv(state, keyCells, ver); - #ifdef DEBUG - //f//printf(fic,"DEC - round %.2i - after AddKey_inv: ",i);display_cipher_state(state,keyCells,ver);//f//printf(fic,"\n"); - #endif - AddConstants(state, i); - #ifdef DEBUG - //f//printf(fic,"DEC - round %.2i - after AddConstants_inv: ",i);display_cipher_state(state,keyCells,ver);//f//printf(fic,"\n"); - #endif - if (versions[ver][0]==64) - SubCell4_inv(state); - else - SubCell8_inv(state); - #ifdef DEBUG - //f//printf(fic,"DEC - round %.2i - after SubCell_inv: ",i);display_cipher_state(state,keyCells,ver);//f//printf(fic,"\n"); - #endif - } - - #ifdef DEBUG - //f//printf(fic,"DEC - final state: ");display_cipher_state(state,keyCells,ver);//f//printf(fic,"\n"); - #endif - - if (versions[ver][0]==64) - { - for(i = 0; i < 8; i++) - input[i] = ((state[(2*i)>>2][(2*i)&0x3] & 0xF) << 4) | (state[(2*i+1)>>2][(2*i+1)&0x3] & 0xF); - } - else if (versions[ver][0]==128) - { - for(i = 0; i < 16; i++) - input[i] = state[i>>2][i&0x3] & 0xFF; - } -} - -// encryption function of Skinny -void enc(unsigned char* input, const unsigned char* userkey, int ver) -{ - unsigned char state[4][4]; - unsigned char keyCells[3][4][4]; - int i; - - memset(keyCells, 0, 48); - for(i = 0; i < 16; i++) { - if (versions[ver][0]==64){ - if(i&1) - { - state[i>>2][i&0x3] = input[i>>1]&0xF; - keyCells[0][i>>2][i&0x3] = userkey[i>>1]&0xF; - if (versions[ver][1]>=128) - keyCells[1][i>>2][i&0x3] = userkey[(i+16)>>1]&0xF; - if (versions[ver][1]>=192) - keyCells[2][i>>2][i&0x3] = userkey[(i+32)>>1]&0xF; - } - else - { - state[i>>2][i&0x3] = (input[i>>1]>>4)&0xF; - keyCells[0][i>>2][i&0x3] = (userkey[i>>1]>>4)&0xF; - if (versions[ver][1]>=128) - keyCells[1][i>>2][i&0x3] = (userkey[(i+16)>>1]>>4)&0xF; - if (versions[ver][1]>=192) - keyCells[2][i>>2][i&0x3] = (userkey[(i+32)>>1]>>4)&0xF; - } - } - else if (versions[ver][0]==128){ - state[i>>2][i&0x3] = input[i]&0xFF; - keyCells[0][i>>2][i&0x3] = userkey[i]&0xFF; - if (versions[ver][1]>=256) - keyCells[1][i>>2][i&0x3] = userkey[i+16]&0xFF; - if (versions[ver][1]>=384) - keyCells[2][i>>2][i&0x3] = userkey[i+32]&0xFF; - } - } - - #ifdef DEBUG - //printf("ENC - initial state: ");display_cipher_state(state,keyCells,ver);//printf("\n"); - #endif - for(i = 0; i < versions[ver][2]; i++){ - if (versions[ver][0]==64) - SubCell4(state); - else - SubCell8(state); - #ifdef DEBUG - //printf("ENC - round %.2i - after SubCell: ",i);display_cipher_state(state,keyCells,ver);//printf("\n"); - #endif - AddConstants(state, i); - #ifdef DEBUG - //printf("ENC - round %.2i - after AddConstants: ",i);display_cipher_state(state,keyCells,ver);//printf("\n"); - #endif - AddKey(state, keyCells, ver); - #ifdef DEBUG - //printf("ENC - round %.2i - after AddKey: ",i);display_cipher_state(state,keyCells,ver);//printf("\n"); - #endif - ShiftRows(state); - #ifdef DEBUG - //printf("ENC - round %.2i - after ShiftRows: ",i);display_cipher_state(state,keyCells,ver);//printf("\n"); - #endif - MixColumn(state); - #ifdef DEBUG - //printf("ENC - round %.2i - after MixColumn: ",i);display_cipher_state(state,keyCells,ver);//printf("\n"); - #endif - } //The last subtweakey should not be added - - #ifdef DEBUG - //printf("ENC - final state: ");display_cipher_state(state,keyCells,ver);//printf("\n"); - #endif - - if (versions[ver][0]==64) - { - for(i = 0; i < 8; i++) - input[i] = ((state[(2*i)>>2][(2*i)&0x3] & 0xF) << 4) | (state[(2*i+1)>>2][(2*i+1)&0x3] & 0xF); - } - else if (versions[ver][0]==128) - { - for(i = 0; i < 16; i++) - input[i] = state[i>>2][i&0x3] & 0xFF; - } -} - -void skinny_128_384_enc (unsigned char* input, const unsigned char* userkey) { - enc(input,userkey,5); -} - -// generate test vectors for all the versions of Skinny -void TestVectors(int ver) -{ - unsigned char p[16]; - unsigned char c[16]; - unsigned char k[48]; - int n; - - for(n = 1; n < 10; n++) - { - int i; - for(i = 0; i < (versions[ver][0]>>3); i++) c[i] = p[i] = rand() & 0xff; - for(i = 0; i < (versions[ver][1]>>3); i++) k[i] = rand() & 0xff; - //printf("TK = "); for(i = 0; i < (versions[ver][1]>>3); i++) //printf("%02x", k[i]); //printf("\n"); - //printf("P = "); for(i = 0; i < (versions[ver][0]>>3); i++) //printf("%02x", p[i]); //printf("\n"); - enc(c,k,ver); - //printf("C = "); for(i = 0; i < (versions[ver][0]>>3); i++) //printf("%02x", c[i]); //printf("\n"); - dec(c,k,ver); - //printf("P' = "); for(i = 0; i < (versions[ver][0]>>3); i++) //printf("%02x", c[i]); //printf("\n\n"); - } -} - -/* int main() { */ -/* unsigned int i; */ -/* char name[30]; */ - -/* srand((unsigned) time (NULL)); */ - -/* //test all versions of Skinny */ -/* for (i=0; i<(sizeof(versions)/sizeof(*versions));i++) */ -/* { */ -/* s//printf(name, "test_vectors_%i_%i.txt", versions[i][0], versions[i][1]); */ -/* fic=fopen(name,"w"); */ -/* //printf("\n\nSkinny-%i/%i: \n",versions[i][0],versions[i][1]); */ -/* TestVectors(i); */ -/* fclose(fic); */ -/* //printf("Generating test vectors for Skinny-%i/%i - saved in file test_vectors_%i_%i.txt \n",versions[i][0],versions[i][1],versions[i][0],versions[i][1]); */ -/* } */ - -/* return 0; */ -/* } */ - - - diff --git a/romulus/Implementations/crypto_aead/romulusm2v12/ref/variant.h b/romulus/Implementations/crypto_aead/romulusm2v12/ref/variant.h deleted file mode 100644 index 27e7705..0000000 --- a/romulus/Implementations/crypto_aead/romulusm2v12/ref/variant.h +++ /dev/null @@ -1,3 +0,0 @@ -#define MSG_BLK_LEN 16 -#define AD_BLK_LEN_ODD 16 -#define AD_BLK_LEN_EVN 12 diff --git a/romulus/Implementations/crypto_aead/romulusm3/LWC_AEAD_KAT_128_96.txt b/romulus/Implementations/crypto_aead/romulusm3/LWC_AEAD_KAT_128_96.txt new file mode 100644 index 0000000..7c944f8 --- /dev/null +++ b/romulus/Implementations/crypto_aead/romulusm3/LWC_AEAD_KAT_128_96.txt @@ -0,0 +1,7623 @@ +Count = 1 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = +AD = +CT = 9DAE2C6FA9692264572727DB77EED616 + +Count = 2 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = +AD = 00 +CT = A06E348183FC4424F39C7359C872D5F2 + +Count = 3 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = +AD = 0001 +CT = 853595C5F1146335F1533C1E9FEDDBF7 + +Count = 4 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = +AD = 000102 +CT = 631FB25C9858EA7E1058A99F65D67A83 + +Count = 5 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = +AD = 00010203 +CT = 9706DC71E0EB2EBA01605DE182CEE866 + +Count = 6 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = +AD = 0001020304 +CT = 8C932E997586A6A482D49C020ADE682A + +Count = 7 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = +AD = 000102030405 +CT = 0C4C06C0544D93643BA6E061FFF3792A + +Count = 8 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = +AD = 00010203040506 +CT = 640C7F03930E936A72851F0E65C34E71 + +Count = 9 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = +AD = 0001020304050607 +CT = 27BFC46153983D96BB20270BF85A043C + +Count = 10 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = +AD = 000102030405060708 +CT = F11E3A88F2D803694922E7C5B97426E7 + +Count = 11 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = +AD = 00010203040506070809 +CT = 85E528C3862E2E5CCDF3CACD4A610D24 + +Count = 12 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = +AD = 000102030405060708090A +CT = A719212753B6755E2EAFB439941246D8 + +Count = 13 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = +AD = 000102030405060708090A0B +CT = 7010AF8B5B14902E79D4A3F80AF98E7A + +Count = 14 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = +AD = 000102030405060708090A0B0C +CT = B6E32DF9F0DDC5A9548244F3A4AFAA14 + +Count = 15 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = +AD = 000102030405060708090A0B0C0D +CT = 62200A699245B363D8F56DC61D923287 + +Count = 16 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = +AD = 000102030405060708090A0B0C0D0E +CT = 640929AFC7783CF9F3D4D79F714AEECE + +Count = 17 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = +AD = 000102030405060708090A0B0C0D0E0F +CT = 5525969682EE541F49011737AB329FAC + +Count = 18 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = +AD = 000102030405060708090A0B0C0D0E0F10 +CT = C9330E2E5DDE1603C7F199F33B98C4F5 + +Count = 19 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = AC17C68945855CA0541DE37C29C22FE9 + +Count = 20 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = C2B453F4D5344F55CD3C8A0548B0D272 + +Count = 21 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 4DA0583AFB112C50DD6A88C5054A0A13 + +Count = 22 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = FE606D882105430284146FBAB687CA1C + +Count = 23 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = 92789620B1D87C753A7760A0CFDBB42B + +Count = 24 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = D134B52B8BE21A8E1ECE39EA35D07B94 + +Count = 25 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = 1DFABD385749878DDD4640DD81786500 + +Count = 26 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 92517ECE8DD15C1B4FCF3B1BEFA5C2B4 + +Count = 27 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = 70BF37A6E98661B1B2D586367B1233C5 + +Count = 28 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 80D3EF637138502EF9F0390539A092A2 + +Count = 29 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 5767F28E17459EB8254ACBFBEE567A71 + +Count = 30 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = 7747DD162E32EFE24755F9D70BA5A265 + +Count = 31 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 1BD9F61955FE9CB202374F81ED901C6B + +Count = 32 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = EE624B23394A250E6208038803324F98 + +Count = 33 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 4A5843CF6314CA97CD9F234C80DDDE14 + +Count = 34 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00 +AD = +CT = 90F142D9783BEACFEEB4AD9A809FB869FB + +Count = 35 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00 +AD = 00 +CT = A4B6A330DE9994C77C146ED259102A5612 + +Count = 36 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00 +AD = 0001 +CT = A14942AD2A8AD0782D6A84FC23CF131A82 + +Count = 37 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00 +AD = 000102 +CT = 906EB8F0EF2CF9FE61FFBC8FA2DDFCE4D5 + +Count = 38 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00 +AD = 00010203 +CT = B6A099B675A171441E8F37B2AB832E0426 + +Count = 39 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00 +AD = 0001020304 +CT = BCE3E8D86A83DB55A3F8AEB07F0F4E8A84 + +Count = 40 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00 +AD = 000102030405 +CT = 7F2B052BE3176B830D227904237BE426C8 + +Count = 41 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00 +AD = 00010203040506 +CT = 015D56DAF5D486BF8BD969A59FEB77B1C9 + +Count = 42 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00 +AD = 0001020304050607 +CT = 96C630D064579136193B3ED1D96F2AD560 + +Count = 43 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00 +AD = 000102030405060708 +CT = E8DE3BB3A22CBA30931448AE4EF077C660 + +Count = 44 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00 +AD = 00010203040506070809 +CT = F042BBA9E94D4FC721DD328C3616689ADA + +Count = 45 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00 +AD = 000102030405060708090A +CT = 6A30693792C1F9030D682E2BCF46D27F1E + +Count = 46 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00 +AD = 000102030405060708090A0B +CT = 035AF96E21FE4AFC35987007F32ECF286F + +Count = 47 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00 +AD = 000102030405060708090A0B0C +CT = 2F0AB16E05D23F0E3725CF6578383A80D8 + +Count = 48 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00 +AD = 000102030405060708090A0B0C0D +CT = 4F30E6CFA3AF5F4C750A86393BD7D46A43 + +Count = 49 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00 +AD = 000102030405060708090A0B0C0D0E +CT = 3CECEC3F6BB58BA0B1741841DAE88AF1B1 + +Count = 50 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00 +AD = 000102030405060708090A0B0C0D0E0F +CT = A2472A7ABCDB339B2DB832AD750A8341DD + +Count = 51 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 24D13FC368618F830DE21DCAB079DE4E53 + +Count = 52 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 495C599D24D7FCA42D703B073BA0D24C45 + +Count = 53 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = 5ADA4FD8535F0F93A1564D7D67E1DA7639 + +Count = 54 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 058DD23B24D52E3BF8236F16507E1031AE + +Count = 55 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = 858AFD01AD94FD2D159E6F9A65A1452BE2 + +Count = 56 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = 80F1B42E8D8A94CAB726ED9B5A05E1A53D + +Count = 57 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = A502007C9CD3B7D81E19106C8461903C67 + +Count = 58 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = E6CA0D820FA1AFE2F0D5D4D389581ED7A2 + +Count = 59 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 60248073F3048665B84A7D5E3CE043AA8D + +Count = 60 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = BF7DA59153AA8C984A37A4691CED44F475 + +Count = 61 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = ACD1F4ED90041533653261D9C0DDD08977 + +Count = 62 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = B4D0E44DD79D1B9D25A292F30D927DA8E0 + +Count = 63 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = 3D5CD41EFE5576D83583E21A90E8564823 + +Count = 64 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = C3DFB1B98F0F0FFB03979F0B20A0F072E5 + +Count = 65 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = 0F8A8B25A9522BD6A8502B880CF8FE054A + +Count = 66 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 68A7C8774A5F2642C682DAFF94ED1A227F + +Count = 67 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001 +AD = +CT = 49002F0FF647B434EFD57D3044246F21E89B + +Count = 68 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001 +AD = 00 +CT = 015EE799144BA2BA239FF717CCB5D1EBDD43 + +Count = 69 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001 +AD = 0001 +CT = 702913B7CB11CECE85F2682E73E87B4EAD4B + +Count = 70 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001 +AD = 000102 +CT = 1B0A7D636DBC0B079D8F072D32651A0DDFA1 + +Count = 71 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001 +AD = 00010203 +CT = 9C27C6B03D3CA4144853DF8AAA24BE812C8B + +Count = 72 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001 +AD = 0001020304 +CT = 23B2A8E23B2B5C5B9DC470EFBE569B3A72D0 + +Count = 73 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001 +AD = 000102030405 +CT = 452BA72BA114DED56AC2A85A85018B09AA47 + +Count = 74 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001 +AD = 00010203040506 +CT = 1244B70A273108961F785A62F57DBDA0B2D8 + +Count = 75 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001 +AD = 0001020304050607 +CT = 628A67EF4D5BA12FD9CF95C106548718AEC1 + +Count = 76 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001 +AD = 000102030405060708 +CT = B6F3E32FE8AB3DD4D95294ACD48FE75F6906 + +Count = 77 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001 +AD = 00010203040506070809 +CT = 15ABD399A01A45032951F303E09471998C9E + +Count = 78 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001 +AD = 000102030405060708090A +CT = DB7DB444A3F6B2B9B3C40E4B46AB906BE7D1 + +Count = 79 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001 +AD = 000102030405060708090A0B +CT = CF3FB9D86D133E27C5CB96935FE426F571B2 + +Count = 80 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001 +AD = 000102030405060708090A0B0C +CT = F1EEF06E1D547F5BFE7DAC470A026DC56FE7 + +Count = 81 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001 +AD = 000102030405060708090A0B0C0D +CT = 44F4BA43E139A54FF49D62B5A59F1180EC0A + +Count = 82 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001 +AD = 000102030405060708090A0B0C0D0E +CT = 1F838BFA36AA7070A50440C66B2AEF92B270 + +Count = 83 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001 +AD = 000102030405060708090A0B0C0D0E0F +CT = 8AA3F725FF5EF7F12888FDEAE3A2A9793B58 + +Count = 84 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 7E9C85312B70152CBBAAF939E4B7964A5D3A + +Count = 85 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = C94303E80E54054D1E1D1F0C2F1FB940266D + +Count = 86 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = 76A09C0EDA30F69EAFEF52B44172626474E6 + +Count = 87 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 0F948E9EB616F8A939C3E4F2DD8DCF447F38 + +Count = 88 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = 9E27022669AB8B6882C1245850AA539DDAD3 + +Count = 89 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = 6FBDBB881169116EF9B9B82239A484A142D4 + +Count = 90 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 4AD8DE0A0E576E58FE14756094A57597B589 + +Count = 91 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = 16A1208E8EE09D4F0AA635BF47EF100378A7 + +Count = 92 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = D2649D5FBC1062E9EA8046BC352FD86A83E6 + +Count = 93 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = 587F1848886272F9AE03DABB9F6271756E21 + +Count = 94 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 7832C615CDD971A9FA41552B771F05D6966E + +Count = 95 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 17D32181DD99CCD4EAC3344D7505568241F7 + +Count = 96 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = 2F1245C067BAC326581CA5E690C093195ED9 + +Count = 97 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = A8BFC893DBFC1349030491C7B07C5A1F05CF + +Count = 98 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = 7ED6F0CB9730944A8E2794D29D055855E377 + +Count = 99 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 0B941929903A5019432524BB053463DE3DB8 + +Count = 100 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102 +AD = +CT = E781E7B2C37301F079DC045CFB8DA88552D0B6 + +Count = 101 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102 +AD = 00 +CT = FEAAD63F9D37A3197B0A0771187EC34E4889C6 + +Count = 102 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102 +AD = 0001 +CT = EBB49D13485321AB8A7286EE406F0624F9079D + +Count = 103 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102 +AD = 000102 +CT = 428B3F220513248E06A055F8E374D9C4F44E56 + +Count = 104 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102 +AD = 00010203 +CT = CA8FC93A039A1C1A94AEA9F4D5FC15D06CDFD0 + +Count = 105 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102 +AD = 0001020304 +CT = 6DDCC3790F1E561C07B2026FCBE13EADB9B9CA + +Count = 106 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102 +AD = 000102030405 +CT = 0A75B5CF31F94AED463A0061C6ACD19CEC8DB8 + +Count = 107 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102 +AD = 00010203040506 +CT = 517C0FA6CB59783B74F932762A24FA66B7DF35 + +Count = 108 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102 +AD = 0001020304050607 +CT = EA4D04792F5C8D864F1FC2DEB915B4789919EB + +Count = 109 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102 +AD = 000102030405060708 +CT = 1F9E49D7E3CC924B08BD52D3C0F92109E235DF + +Count = 110 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102 +AD = 00010203040506070809 +CT = D20E596F372047F1D9A33B1A76D98125DA5690 + +Count = 111 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102 +AD = 000102030405060708090A +CT = EB4F6D2F05BBB900A3B155A0DD1A4541CF3058 + +Count = 112 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102 +AD = 000102030405060708090A0B +CT = 1E80021449F25E8F9D8BC62D044DF0C9F94B79 + +Count = 113 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102 +AD = 000102030405060708090A0B0C +CT = DC7385E70EB35CBFBD9D31EB08BD345A93A375 + +Count = 114 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102 +AD = 000102030405060708090A0B0C0D +CT = EB9A112DC850F239861AF4501947AFB9BBB846 + +Count = 115 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102 +AD = 000102030405060708090A0B0C0D0E +CT = 38A4D4D5200E973B43406CCDF97B9963C09B2F + +Count = 116 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102 +AD = 000102030405060708090A0B0C0D0E0F +CT = 8C13F8F3DA281AE309883FE4A58EB4200031F6 + +Count = 117 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 1C9D60B7FB115A3D4F1BDEB23BDBF8F58A484D + +Count = 118 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = CDCFF45C2E7BF816C573D7EC8D4058D0CE8425 + +Count = 119 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = FE44101891FB5CB00D7A5301EFEBB4C4AB3F60 + +Count = 120 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = FD11E555D9FFA1FBF25BAC81ED8BAEBF648FD0 + +Count = 121 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = 1AD5F2475682773C6933C6B0FBC1EA3CB86B6A + +Count = 122 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = 7DD09F80A398B514F4B735D82B6D36D5EB645E + +Count = 123 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 75B3C0633E543C31A842186C744F609BFD67D5 + +Count = 124 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = 982CBE2F1FC8629F9A4EFAFA8E4AE37445A96C + +Count = 125 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 190CABDE7B3B0AC4184321D18DB47353315EAF + +Count = 126 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = 4027F7E0C1DAB8433D6C8B50462A187D12546E + +Count = 127 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 9D1F5A5E839A693538E914962C5DAD2FD38B68 + +Count = 128 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 812C56CE4E29731F057ED3CF82785F430AB86F + +Count = 129 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = C85F41E2F9902A3E710B5B713EA1DD80192153 + +Count = 130 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 2EEF61186CEAC74270DE100495029760C6165F + +Count = 131 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = 44C55E2FF9D362F4D571CBD9027AD0CB433F41 + +Count = 132 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 9DC083372358B7EDB9ED8F037ED1739752FAAE + +Count = 133 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203 +AD = +CT = A6291976B10638423346BABF082145338C0F59EF + +Count = 134 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203 +AD = 00 +CT = D2EDB5E66670D7D11F65068A9C67A6A49C003AC6 + +Count = 135 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203 +AD = 0001 +CT = CF95AC29FF53CD5584E85D5527F0363151C41D10 + +Count = 136 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203 +AD = 000102 +CT = B0E4AEFCBBAD05D831C22F16877A2034C636A766 + +Count = 137 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203 +AD = 00010203 +CT = C084C594518148D95549955894D2BE136995FA79 + +Count = 138 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203 +AD = 0001020304 +CT = F7AAFBB355D985D5CB760FC5D252D85F30E83854 + +Count = 139 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203 +AD = 000102030405 +CT = C24E73B64302E45A4151F8C2F7ABAB442FF2B0D8 + +Count = 140 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203 +AD = 00010203040506 +CT = 829973EA76C67B06345E9824E9813A650C9BF91A + +Count = 141 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203 +AD = 0001020304050607 +CT = 40A2B61445041E07D96CE64407226FDC8859EC24 + +Count = 142 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203 +AD = 000102030405060708 +CT = 2DA910B50A689F9453D6DF87AD7BF806A0726820 + +Count = 143 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203 +AD = 00010203040506070809 +CT = 26732F5657E4D4E0DD7F3400BD5092CFA05E5EB0 + +Count = 144 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203 +AD = 000102030405060708090A +CT = 58F2972A146D382F1061A161BB0D2EA28EEE6852 + +Count = 145 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203 +AD = 000102030405060708090A0B +CT = 1E5D5E34290C3DBD8F135C257B4EE52A1AEFC03B + +Count = 146 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203 +AD = 000102030405060708090A0B0C +CT = 1835770AD5170BD547F308AB4F8D0668E89F58C2 + +Count = 147 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203 +AD = 000102030405060708090A0B0C0D +CT = 326D25FAF722BC15978C9926BE079234E06769A0 + +Count = 148 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203 +AD = 000102030405060708090A0B0C0D0E +CT = F9FF2E7522AA65DE6539C960145FD1A4CBBDFAEB + +Count = 149 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203 +AD = 000102030405060708090A0B0C0D0E0F +CT = 013EDA090ACF76438E68B8DDB025EB4C635AB460 + +Count = 150 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 790FE9A972F1EB93DCC6A5B1FC31B032E59D5258 + +Count = 151 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = D4E256F38255A15743A23C168AA53C7321B3AE06 + +Count = 152 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = 8588CC3CA6AC0A484436B3C4FC19F847850D1BEE + +Count = 153 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 4AA9E91D669C1C9ECFA263E3A844FF32613BFC09 + +Count = 154 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = 93BA3B23E13AC0DEFDCB0ECE6FA85EFAF0A39301 + +Count = 155 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = C598C65E0A4EBC8356236C097A48F7F834625CFC + +Count = 156 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = E3C14061E356456958836167BF7DB4195A87C983 + +Count = 157 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = 83A481A807C60BD23FDB6B7F49B7BC2B055FB8BB + +Count = 158 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 853A202CA4EE103B38D18C09FA64956787BD813B + +Count = 159 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = E00F2109DDB35B63132FAC9A1BD512527DFADBA7 + +Count = 160 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = FABC3263F830D8EAC9FC57B6BEB8B721AA42510E + +Count = 161 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 78C9657D2B3EA2C5D686F7F3137E23A38094EBAA + +Count = 162 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = 2B1F70E34873E3812E76E5B5EDA8DE6F850CD9CC + +Count = 163 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = BA2F556176FA1F301123416AE68760519111FB37 + +Count = 164 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = A2C2E5DA0BC096DE595FCEF425CCD762AFD201D4 + +Count = 165 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 16AD49622450CE708C6AFDE41659FF71591589F3 + +Count = 166 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304 +AD = +CT = 0D1D71DC0FF76B0D631FB97BEECDA28ABDFB8FB515 + +Count = 167 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304 +AD = 00 +CT = 05B679F542E7070E4F5C725CE7232510D1BB0A1C59 + +Count = 168 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304 +AD = 0001 +CT = 660B4198CCEE838673A33F70842EBD48231EA7CAAF + +Count = 169 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304 +AD = 000102 +CT = FE2D4C46AB26D1F0B1B4DF4880420AF1A35C1A3931 + +Count = 170 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304 +AD = 00010203 +CT = 6770D30B8C53798912E4907BA023E41D7F2C4CD8F0 + +Count = 171 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304 +AD = 0001020304 +CT = E3BC83D80BBCB7133838162A5168E92D696129D649 + +Count = 172 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304 +AD = 000102030405 +CT = C3C4010704952E3426A0E23D674C3C0B2E6DAF9207 + +Count = 173 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304 +AD = 00010203040506 +CT = 320A7EDE6195562C45140972E35367BDFAA95AACA2 + +Count = 174 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304 +AD = 0001020304050607 +CT = A4ADAEA4ECE359ECFBE2782EBA4EF36C7964CC2B50 + +Count = 175 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304 +AD = 000102030405060708 +CT = 053E25FCFA3C90B135EDA590D64B4022B1362D2299 + +Count = 176 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304 +AD = 00010203040506070809 +CT = 5DC1BF146E25ED467055B52AFB39C7DCBCFBA18078 + +Count = 177 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304 +AD = 000102030405060708090A +CT = A5DC676F98146F8C063FAA9F0FFD21AB404A6DCBF8 + +Count = 178 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304 +AD = 000102030405060708090A0B +CT = 9C8AC31D5F6549FBE9FE5CB22540F471F443592A85 + +Count = 179 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304 +AD = 000102030405060708090A0B0C +CT = 924C229731D932C664AB223CB8BE2453F02D7ABC84 + +Count = 180 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304 +AD = 000102030405060708090A0B0C0D +CT = 4129684072F22F6DE6BEBA93F01EF80836C5DFECC8 + +Count = 181 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304 +AD = 000102030405060708090A0B0C0D0E +CT = 142F849B01B2E2B451A0433C757AF3C619982A9764 + +Count = 182 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304 +AD = 000102030405060708090A0B0C0D0E0F +CT = 0E3CA9D9D323277376EA693B8B7F23A2D7AE76A299 + +Count = 183 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 40A735C32ECB9D7AD5423B6BA36A123E361D581EDF + +Count = 184 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = DEC80732BFE1DD010779C49AE625AFB220D5E23B75 + +Count = 185 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = 33D7A9A1186494CAB4EC73416FC2FECDC98A8723CA + +Count = 186 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 016810DBA112802ED1BD2C56184365676FA7298DF8 + +Count = 187 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = FCDD7551A8EFDADB83459789E684DC1E51C12EF5A0 + +Count = 188 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = 01708BB21C0397F5DBE2D8DDAD349267EA40F9E457 + +Count = 189 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 7A720F85D68924895713C6753008351E73F7639F1E + +Count = 190 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = 1213D0AFC959848581025459AC38CB373111E12E1F + +Count = 191 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 16CA193430A8A50920FB5D7BB3ECC63C7B804104AB + +Count = 192 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = 0F5D66A31DF1AF33312CC89D990F3FFDDAEE00E160 + +Count = 193 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = BF51878D98C8B99A4D1E942E61FFB736E83E232E77 + +Count = 194 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = DB3C6345FD4EBD1ADD375DD8CF5AA6A716F76FF246 + +Count = 195 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = DC5A78CFF53A8AA97EAC21554B39E6BE66CD06A0FA + +Count = 196 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 6FE173ABBA440BF8D030DF330CC186B4D4FF916658 + +Count = 197 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = F051718EE4E985E8DEBDFCA86293B6EB9ECB940811 + +Count = 198 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 7D946F8CF85805772410191981B31D406946072E18 + +Count = 199 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405 +AD = +CT = 37ABD57DC5B7173984990C5659CF436BC8B7C914A0DE + +Count = 200 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405 +AD = 00 +CT = FF5751B6A9286C5E85685C03A71E308AC37CF181F5F9 + +Count = 201 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405 +AD = 0001 +CT = FFD5D502785866145D8F56C42A40851D2253BDD7E35B + +Count = 202 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405 +AD = 000102 +CT = C33B18DCDABA3F1A26CEFD44FB18C731CDDB1E22A9EB + +Count = 203 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405 +AD = 00010203 +CT = 17032160C7CC88B86217C06FF6E08DA46DBC0EC65D23 + +Count = 204 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405 +AD = 0001020304 +CT = 57319683C805E997367374EB7B8450D712A3C54B921D + +Count = 205 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405 +AD = 000102030405 +CT = 97BF1EFE28BD23E9F6D88CE93D318B413AA14C7A53AF + +Count = 206 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405 +AD = 00010203040506 +CT = 15BAA06B81BCDE2A2D705EEDD807948E151EE07F1C08 + +Count = 207 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405 +AD = 0001020304050607 +CT = C5428CDD73ED1664D8961C29A1FB541F28CEEC5B34F1 + +Count = 208 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405 +AD = 000102030405060708 +CT = 1615EC1EAA4E360F3C97A8B001590D08C72536979C9F + +Count = 209 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405 +AD = 00010203040506070809 +CT = 19A42219C8F236388AEDEE70A36928C7DF6DC1EE89D8 + +Count = 210 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405 +AD = 000102030405060708090A +CT = 1D387E53EDC7B768D5C82E2774CD7F8107D16C57E781 + +Count = 211 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405 +AD = 000102030405060708090A0B +CT = 7A0AB96235760CE5CC10867435D030CEB440FACB9FDB + +Count = 212 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405 +AD = 000102030405060708090A0B0C +CT = D369A22BF242FB0A88DBD02E6EFE703C18CDB880CAC9 + +Count = 213 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405 +AD = 000102030405060708090A0B0C0D +CT = 7EF5B7954815AFE31466609F3CFA9F7C5B402D9661FA + +Count = 214 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405 +AD = 000102030405060708090A0B0C0D0E +CT = 62E897D1977F6CE46E9A37792F67C52C463F8EF485B9 + +Count = 215 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405 +AD = 000102030405060708090A0B0C0D0E0F +CT = 20FB54812BF4267355D48BC95D3D31A1016C6F24B7AA + +Count = 216 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 95726E27F58D8E82BB1F5F2592EB01A6CC2DC68C2772 + +Count = 217 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = CF0049F113D5EAD9A6644608B5778C525E90A3A9804D + +Count = 218 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = 20203F46990500E57599FABB5BEA2DDF341CD0B873B8 + +Count = 219 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 535F42C719069DF99DC02CF310604A864B078189C830 + +Count = 220 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = 267BA34E62E145559337F50D2B1D9FA8B67B2DE80E5B + +Count = 221 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = 530D6AD11B83E110463AAE94E11A97194F35B42D3F3A + +Count = 222 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = F158CAB656D19E2927512524AE7E873EFA7007157C24 + +Count = 223 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = 1DE9CB3514C38282A69F9AF3BFB61B088D71456C8286 + +Count = 224 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 1CFE0A3F18268D6FD8E90206096D0F2590C0B824B300 + +Count = 225 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = C8912FD7D03A89E5F69479B10D48C9F9DF1CC284754D + +Count = 226 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 0FCB8E8F86E0AC114A65865451F7F77EC554BD8262A5 + +Count = 227 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = BC982F033B176D70A7D2B7FF3B8DDCDE33E548749AD9 + +Count = 228 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = 8B851BEB8CC2D26B5340F21FB5AC6109221CACADBC2C + +Count = 229 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = D1C9EDABCB9EA93573EFB31D988B500D6DFD8A7227A0 + +Count = 230 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = 59B237DAD4776F03818A6F5FEDFBC500738211854DC3 + +Count = 231 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = D2E83DC105E803D5FDD63DD57D23592D91BC1758C692 + +Count = 232 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506 +AD = +CT = CFC258CD4A6292D25713E9C5BE9438D11B5E34CF8843AD + +Count = 233 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506 +AD = 00 +CT = 49423949D76A614166005CD0909C791C33345CD09831CC + +Count = 234 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506 +AD = 0001 +CT = 9BB1BF0755DF33D1FD5D6B139A56179D04F9F474A67315 + +Count = 235 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506 +AD = 000102 +CT = F76BEC9465B823F64AF77D6B6560979C08C10AAF407D29 + +Count = 236 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506 +AD = 00010203 +CT = 1743A38155066991602B0214E3AB9DAF1D5EFD1D733F16 + +Count = 237 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506 +AD = 0001020304 +CT = 04847475A12C002ECBD48CEE5C0FFF03F259B5F238464F + +Count = 238 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506 +AD = 000102030405 +CT = A286D5534A560F3BA1F751A72E3224C4E19C2BB608EA78 + +Count = 239 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506 +AD = 00010203040506 +CT = 0D49EE39F3B45086AF188804A9C3A2E0F639EC2F1D4436 + +Count = 240 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506 +AD = 0001020304050607 +CT = 34F5ACFF568BA384A817CB0911CED2C13BA4BA6B10ED08 + +Count = 241 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506 +AD = 000102030405060708 +CT = 5B006EC95585D66ABB47D71F3ACA326DE9532380635F5D + +Count = 242 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506 +AD = 00010203040506070809 +CT = C1CB8EAC1ADC2886F097C0FFEC9B40BCDFF490FEDDFC1C + +Count = 243 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506 +AD = 000102030405060708090A +CT = 91B0A6E97E30B762D626C79A1C037A9636EC4761A89CBC + +Count = 244 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506 +AD = 000102030405060708090A0B +CT = A919710FEAF1ADAF4E87258CA1A2E6ADF3FEA4F1AA2614 + +Count = 245 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506 +AD = 000102030405060708090A0B0C +CT = 41A6E93856D7543C2ED826AB206E7EF315FBE185E571B3 + +Count = 246 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506 +AD = 000102030405060708090A0B0C0D +CT = CFD47C7B52B81CE4D0CCF1A47660D45A7B4B57EB440C7F + +Count = 247 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506 +AD = 000102030405060708090A0B0C0D0E +CT = D1B6699ADCB178367B16C836DD6F4622DC37DC20ED7AE3 + +Count = 248 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506 +AD = 000102030405060708090A0B0C0D0E0F +CT = 5EB7AED4A67D2A9A6E66D641C54370BAD1B83D2A517C8C + +Count = 249 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 6872F193E19E0271CF05E225DEFF950229EEACBB76DE30 + +Count = 250 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = E6F0F64820540677E14C640A5F16D5084FCD83373826B0 + +Count = 251 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = 314D093712646EEE248BDF6B14F9C5E859221214655A8C + +Count = 252 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = CDCDBB8860541B2848592127BE7D5205EDFD1C44F606FB + +Count = 253 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = FE3969ABFFF2D1812186A1ABE3F6F6C578D32E558007E1 + +Count = 254 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = 763C00132241CC365DAC9353D0403C933B125D9B91D614 + +Count = 255 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = CC80B39648F61CD89980020B4FC3F4D30211AFEF3CBEF7 + +Count = 256 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = 57E556D686BB938ABA4AB5E89A12071F75255C265C4AA2 + +Count = 257 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 3AEF04DB0D7889DB98296DCD7A8DF5946DDF689ED5383E + +Count = 258 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = A3656265CBA8808E19B94DEFA315CD00F586F842437DA2 + +Count = 259 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 6AB97232B7B100930B800EC1C53C6D3D09F85E99A5123D + +Count = 260 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 0333705A6EEF7088FF3899F98CD0B3E9EC47B0C36C484B + +Count = 261 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = F23F8D8D0B14156A4B4163E79690E44AB951207A61D912 + +Count = 262 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 774AC03D6639A9CDCBCF28BB18337745AA2F6454C84431 + +Count = 263 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = 88AAC4CB1A924E5A97BCA7CE12543A65A6584352F0D7F9 + +Count = 264 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 9641DAE6F8B33436FC804388F5CAA8B3F2616851E95CD8 + +Count = 265 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304050607 +AD = +CT = 11F338C84870385D2D453DD8E77AA69462A7FE6E863D98EE + +Count = 266 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304050607 +AD = 00 +CT = E08156A86850B204985F84D0AE75ECF01B63B44D0CFE15D5 + +Count = 267 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304050607 +AD = 0001 +CT = 352D9B19D5E7803435056C7FDBA625FFBD80FB7783F59B6E + +Count = 268 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304050607 +AD = 000102 +CT = 6BDA5C2A0620D411F1BCCE05B0CED24171F76514E93090AE + +Count = 269 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304050607 +AD = 00010203 +CT = FFDF2C1B622593CF9F0FF153AB3DD2DFE975A120ABF26EC0 + +Count = 270 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304050607 +AD = 0001020304 +CT = 9BEEF6E409796871BDEC69D9A3792BE9AA94176938E3E582 + +Count = 271 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304050607 +AD = 000102030405 +CT = E06FAF0DB86B8A5F4C45172206F4A6F7E49946FE70855093 + +Count = 272 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304050607 +AD = 00010203040506 +CT = 36ED9EAAC290D5C573234D3D1D6A552F8B84639A1DC7CE92 + +Count = 273 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304050607 +AD = 0001020304050607 +CT = 2661C08F8D488CBF804E74E493348411889CD989B8AB82D4 + +Count = 274 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304050607 +AD = 000102030405060708 +CT = 1A6390D4B67D130F5AF8C569A9C5D9E15B715495DFD651DC + +Count = 275 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304050607 +AD = 00010203040506070809 +CT = 70EF12D29DD47F31F3C46071CA0373427A143AABA1A0FA13 + +Count = 276 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304050607 +AD = 000102030405060708090A +CT = FF388197F4CB125515744C6F4312C89B53620357D2705BA2 + +Count = 277 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304050607 +AD = 000102030405060708090A0B +CT = E434B4ADD75ABC98E26986B7C383C9BB7A3959751A6E20E4 + +Count = 278 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304050607 +AD = 000102030405060708090A0B0C +CT = B64A9DFC7C3ADF700D9E8AB443A5F389E82E5A3A8F3BF596 + +Count = 279 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304050607 +AD = 000102030405060708090A0B0C0D +CT = 94FDC76D2361318FBAFBD82BFA280C2B26F2330B46C2EF91 + +Count = 280 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304050607 +AD = 000102030405060708090A0B0C0D0E +CT = 86F825BC2059D5F62937A74D84651C34676DAC821C679870 + +Count = 281 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304050607 +AD = 000102030405060708090A0B0C0D0E0F +CT = 0AD84AB663C4034704EC156A3A6BCD2451F6ED419B662925 + +Count = 282 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304050607 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = A0168CDB66913FA9425CAB9DB424D93D0A3E700440FCCDB2 + +Count = 283 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304050607 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 6F0B7A200865B26B384A34ED919393CDFFB26BBE0337CAFE + +Count = 284 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304050607 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = 2D3F0C04AFC60207BEC835AA5DAC33F480C11816486275D5 + +Count = 285 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304050607 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = D809E2970FF7FEC167A08873B041E9DF826BA211649E5C57 + +Count = 286 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304050607 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = 45199ABDBF8FC882DF7EA2E9C4D862A86A5417EE3DF134D1 + +Count = 287 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304050607 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = E5DB2EDF5CBBEE50C50F78206CF9E78738E9E151E8C87C3D + +Count = 288 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304050607 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = DDEC1ED3DC2B8DBE88F5574AB7F4E90AE9624A36A4DFA226 + +Count = 289 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304050607 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = 4C772DCF54CEAAA46795F117FD04BB7D03116B26BC7054F1 + +Count = 290 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304050607 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = DD73598B65F23E16143D6DAE3D9C36FAFAEC5ACAFD0EA8A7 + +Count = 291 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304050607 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = D1ED9F38E2372B3FA2E631618ADB6F90DCCF57E1FBE0581B + +Count = 292 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304050607 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = C09AEF667B4A0541CFDEB793AEF77E133D5D3F350A570004 + +Count = 293 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304050607 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 8545EE2906BC8D99D1E1053EC95C18E3088A20759E5CB2ED + +Count = 294 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304050607 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = 49FA4D3438717EC3309CC9B01C23095AA514A37535A1E2C6 + +Count = 295 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304050607 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 366CC2537EAB871A08429A076BEBF20B9CE885AFE3ACB45D + +Count = 296 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304050607 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = 15797050A0401139743802B9758FB83DB869DFCF179BAADB + +Count = 297 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304050607 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 14E83F4B55FD8CD30DC86CBCF5103F56E090786D2800134E + +Count = 298 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708 +AD = +CT = C9314C5ED98A3120F2A790806CF99D0B60B01145FFFC4D12D5 + +Count = 299 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708 +AD = 00 +CT = C4123FF27EE987BE955820871C1CFF1883BE7A95840E0ECDED + +Count = 300 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708 +AD = 0001 +CT = 89B28009F1C1CBA4072CC42504E7E8554E08FAE26E937DE4AF + +Count = 301 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708 +AD = 000102 +CT = 56180391A85E8779A4E7B58D27E307F92C4C2DDADA9A29FBBF + +Count = 302 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708 +AD = 00010203 +CT = B857CE646ADA138921EEF8800B41A2F59778749CFB650AD57D + +Count = 303 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708 +AD = 0001020304 +CT = 454D9CD5EA71CABAF2E605779C53F6D3976314558E39071B2F + +Count = 304 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708 +AD = 000102030405 +CT = 547E82E6AB7A66B924542775ED0D49056D742178D6C22DB0C1 + +Count = 305 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708 +AD = 00010203040506 +CT = 64F3C8519D5A9DB68201D7C0FA1C059DA663994C8D4FC15317 + +Count = 306 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708 +AD = 0001020304050607 +CT = BC6C4A10A99EB5D4FE82434DF0C1C8D99ED22EAD3D809E2020 + +Count = 307 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708 +AD = 000102030405060708 +CT = 05EA001E4AD1FF8002E922E92E897837F0B754B1C9EE9629B8 + +Count = 308 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708 +AD = 00010203040506070809 +CT = BEEEECAF065A2ED134B917055FC3CEBF50D8EFBF63122B8B1C + +Count = 309 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708 +AD = 000102030405060708090A +CT = 27FC0C49811D420159EB45DC0967F8A37CD223FF6205BAB3E0 + +Count = 310 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708 +AD = 000102030405060708090A0B +CT = 161151F618B596A175C6F136AF1B5ED4E7B45984E6ABD6CA01 + +Count = 311 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708 +AD = 000102030405060708090A0B0C +CT = D3BD51D425BF839D5835993B285E096676E1C580F0A4515584 + +Count = 312 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708 +AD = 000102030405060708090A0B0C0D +CT = 11662B1262E9B62F7A0EB13F8C1BEDF63169EF6B9A75588786 + +Count = 313 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708 +AD = 000102030405060708090A0B0C0D0E +CT = AAC5ED11E6EE0128CA1C95E8A05CB82A2A0305BC13D0EA5F6F + +Count = 314 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708 +AD = 000102030405060708090A0B0C0D0E0F +CT = 3483A38386DB009B2A2259ACA218DC6C7324836AB87E00FE32 + +Count = 315 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = CABE889B0A630EB3E306DC484F1078D61DDD24F62D99C4E463 + +Count = 316 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 3373D5CE8A1C6310F0C8E4678A710617519968BF6F404C2320 + +Count = 317 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = 1B769B51807AF8EFF7DC035FF3BDF2E9385F09A78F3835C0CA + +Count = 318 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 5857A519FC523347EE818FDB8AB445FA68E176D9C6FC318DC3 + +Count = 319 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = 95F6827CD1472158F41B789D59624C49835F896AF32DFD49C2 + +Count = 320 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = E9209816404D309D1D141C804689D07A36CBC60337B610F8A9 + +Count = 321 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 9257BD54ACB13648BCB574C22B4243E63E7D8BE016130D9FBB + +Count = 322 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = A57F1C404ADB06DEDF5865434138A17E30463435474C50D748 + +Count = 323 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = FF478EDE3CD23C4BAB59C8188F25DB531E60160BCB5613B523 + +Count = 324 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = 5CC80F31575457AE2B505EB3765CB539EB00FAEF2E2761D943 + +Count = 325 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = F6A86E8965A4224776C334FFC7E86D44FA03ACB7BB2BC70B9E + +Count = 326 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = A627D4B1046A2E0593D89B6DF2734A215FC0FD992E94D44D6B + +Count = 327 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = 91964FC5EB2E5F61526F1F488C0414510CA65B11F9A53AA399 + +Count = 328 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = ADFDA3CFE847C332F20FCBBDF3E5390A71E5A0B2DB3F33AE1D + +Count = 329 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = EF4E2BDE17A0F1395469279D0DB37BA0E3EA28732F8F7F6646 + +Count = 330 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 5C2CE3811B7259EA279E228559B2AF55CB5B5F380CDB133F11 + +Count = 331 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506070809 +AD = +CT = 445FEBB943EC3E0EFAE2D6146FAECF4C614F2D06F26040968FF1 + +Count = 332 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506070809 +AD = 00 +CT = 50626005ACEC908F8E7463D45C034BDFCCEBB86BFACB9982F2D7 + +Count = 333 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506070809 +AD = 0001 +CT = 81A54F8D3C1839D16DFD06052E66900D2B69AF9F6850B7B4CB83 + +Count = 334 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506070809 +AD = 000102 +CT = 764218A15DB05308D1544621E8F980A6A87814A7E4587D208DFA + +Count = 335 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506070809 +AD = 00010203 +CT = 285CDAEE4B905086A0BB5B4543D8FB930200DD5E3E6D7F7F8AED + +Count = 336 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506070809 +AD = 0001020304 +CT = 0B2513874CD481BDADAA069F0548854E9DA68F425D70BA65F1A1 + +Count = 337 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506070809 +AD = 000102030405 +CT = 2A0932DAD1133EB8477FC3E0E9A207A7C2C2D124792B95AE9962 + +Count = 338 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506070809 +AD = 00010203040506 +CT = 64E68A5AC40D14C00E909FF4C16537B4BD796FAA6B7634FA6581 + +Count = 339 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506070809 +AD = 0001020304050607 +CT = 64A3D493607B3081190B37226C28FF8E240880D2B351BEE4E809 + +Count = 340 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506070809 +AD = 000102030405060708 +CT = 64CD61A101A78D43F47BC74E3D4D7A6B74F152649FC32AD36B19 + +Count = 341 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506070809 +AD = 00010203040506070809 +CT = 42C30422C8D88100C880F062E4FBBD1E1E06CD6E730880B0C14C + +Count = 342 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506070809 +AD = 000102030405060708090A +CT = BB0E5F6CD865EA5415DD3A90B5FA744D37F0D3D62E8A100E8227 + +Count = 343 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506070809 +AD = 000102030405060708090A0B +CT = 3B8D37F581CA9C9B22ADB0CC012AA80580335281D5D231F038C8 + +Count = 344 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C +CT = 4271E70502D40773296B0771637040CB5E336BC6A1F74AC78C4F + +Count = 345 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C0D +CT = 33EF0086DB51F2CF3ECD5D739390D1E44D36EFD6C6A0AB0D2C8E + +Count = 346 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C0D0E +CT = 08C95734D86657FCC2EA49120D490F317D9C31D978CE5CA22A94 + +Count = 347 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C0D0E0F +CT = 14463678AE38C87D3E73E812154DAFB7F417B9437A355524BC47 + +Count = 348 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = F823F5CC03A8AF96705D8037AB26D29414A353738B55BB262AA8 + +Count = 349 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = A255459EC6E3C5384BD4A6FCA55CE6C577451D59F59F11A79280 + +Count = 350 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = 3FE8AB588A91D22E8687B9DA56D2AD4A7578BC30475CD7653A70 + +Count = 351 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 55EEE17310B2F232DA925B6A07F26B2B3836D0166CF4CDBBC7EB + +Count = 352 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = BECFD73E9E2A23227B76F3680DA9DAF9E822447101E8D0B8F75B + +Count = 353 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = 279253263081C78C2F09F726476AFA6F347A2A401A4202DB2E8A + +Count = 354 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = F4DA8B3C7D8EE2FEC7B71F099CE58B8E809F260E6F42F3FE5F14 + +Count = 355 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = 2C388249EE7E061433E95E806BF12B4A58281F705D810C6FB869 + +Count = 356 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 15E6D5ACC35A668FD0337BD2C50844F1452C4A35551A8A21AE87 + +Count = 357 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = ABBA3A2AFACCA7774CF8BBB308E8831CDB9C66EBBACBD011F6FF + +Count = 358 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 45DAB9BE131FEB88C87FABB05415B6643356A588F2E791ECB32F + +Count = 359 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 5FE7B6D98CE5D7736EB987BF4876D1274E507BA74F1BD2CA1293 + +Count = 360 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = 3B95EFC341A522F634CDAAAC25A6896A5A8C77FEFC812229C5E4 + +Count = 361 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = EA0B152372F8CD1D48ADC8CE5A3611332AA58B413D85F9143B29 + +Count = 362 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = 32BC2968487C5B93D0B23E66A2C1184CB6C42DD177C017DFC594 + +Count = 363 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = A5A6ECDCBBFE9CB144AAE15FBE2BC4304A6777D5EDEEBDEF532D + +Count = 364 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A +AD = +CT = 43D32E9D6C70FAB350CF25C9979D914A42000AF1BF752A01A21731 + +Count = 365 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A +AD = 00 +CT = 65AEFE2E93AFBA1262247C0A04E40BE69C245A2E71AAD3A48E95F5 + +Count = 366 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A +AD = 0001 +CT = B3CE217D534EA670F36E01027C40E01D872E0F445B3772924DE0ED + +Count = 367 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A +AD = 000102 +CT = 542405EAE94211E2B675312152A4B535646597C99670B402DB8C03 + +Count = 368 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A +AD = 00010203 +CT = F4C7A38B6CD89C79E0407FCAB35E140C14077AEE093AD9D8DEF64E + +Count = 369 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A +AD = 0001020304 +CT = B3D7D1D68483A5C958A1ACB4999820403DF32ECD97B6340F51A1D3 + +Count = 370 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A +AD = 000102030405 +CT = B63B345110B87712D7E39F6FCDF7454EDE9A39C2A19CEB1B86C602 + +Count = 371 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A +AD = 00010203040506 +CT = 768DB3077EC0D51837ECAE3289EC234E1DC3FCC62112BB154564F7 + +Count = 372 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A +AD = 0001020304050607 +CT = 2009207BD724CF4971C73A30A43D1E9359E0C7302B87330B455110 + +Count = 373 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A +AD = 000102030405060708 +CT = C8F8DB56A8E300AA70084FFE0F2CE8553DE818F273300332AAD3B2 + +Count = 374 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A +AD = 00010203040506070809 +CT = 140E47DFBFF3017946F9059D68BE5225592D24E237BF799EC5B175 + +Count = 375 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A +AD = 000102030405060708090A +CT = 5DEC3E376FF18BA003682F757C85E80B39515A22B692FE82E01147 + +Count = 376 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A +AD = 000102030405060708090A0B +CT = 4659B52BE189B74F4AE2312E8942F64FDE8D2540B69958DAEF9948 + +Count = 377 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C +CT = 6ACF7171FFCE60E495842BD7E837014436229807358018A0DCD919 + +Count = 378 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C0D +CT = 08F56B5375EA28918A3E63F12B0DB2AD8BC10B2CD29718A102ED8F + +Count = 379 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C0D0E +CT = 73B7FED0065BB9BA65CA91C0A268CE182C59A2892014777733F3AC + +Count = 380 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C0D0E0F +CT = 56713BE24E92499A838509252243622D0DF541FE683B896433AE51 + +Count = 381 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 812893DD77C92D981D87412C429124BCC9E41573DFA0A39D4ADD89 + +Count = 382 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = A411B898DC89A575F685B3AC4BE0752BC21C5BFDFA29F2B0F93C7A + +Count = 383 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = 78E6BBDF3C6CA3C24BFA44F35E2C5AC677F18927946F4C78145954 + +Count = 384 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 5554FCA49A5BC15DE9BB2E62BB465C11687F464FBF49012CA6F0CE + +Count = 385 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = 6A46714A9AD2139B8179A8B6D4D0B7720793EDA81D681AE9F7CF41 + +Count = 386 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = 97D207A02E2D2C5F534F3C102C7080874FE24F6F1AF0EAB91A398F + +Count = 387 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 71932047747EAC7E83DE17E034FB1EC0D0C0842782E6C2750FDDB6 + +Count = 388 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = 6C0C41CA5048399E91EB94B883904951555E140EC885AE035555F6 + +Count = 389 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 83BB6BC3D77078C2AFCCBAE933264231556700F49B7CBE71840F5E + +Count = 390 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = 10F2279367AF28EA859BD6F9344D11DE25740C9A7E07C317C323C8 + +Count = 391 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 8D983D2EE91346E5EEB6BF4C8178D49C651BA9BA9CA9AD54BF88B7 + +Count = 392 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = C562E5E21CC667CB67C59E0B1FD9FF5F62683E8A37686932B2E88D + +Count = 393 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = DC38FE235019E0BB4F2CB6935429C4B626C456AB684E53282CDB96 + +Count = 394 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = D127DA13F5D5F58AA731FEA54A937A0DA71E0514DD57B6C1382079 + +Count = 395 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = 8845971D89A9D74B4174AB7CFAB8186EC81C4B26BA8C92968C1ED5 + +Count = 396 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = B3BBAF32D9F6B69B47CFAA10E51A9D84C80FA2BF265B5E77D1C4F8 + +Count = 397 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B +AD = +CT = 9D0CEEC13406C356F50380FE980E0DF5D073EA7F3AB56C1811CDBB5D + +Count = 398 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B +AD = 00 +CT = 36ED875E89C8A5B91AE81A74F3D61C4F2B4B7E5C65EAC7555872DA5D + +Count = 399 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B +AD = 0001 +CT = 7DC831E08AD58E5CEA8634B0C905305934C8199A849376D958A9A3BD + +Count = 400 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B +AD = 000102 +CT = 2AE41949706F4D9ED42AB684F4CD8494FB0A6ACA2DDF3B7E6518335B + +Count = 401 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B +AD = 00010203 +CT = CA05C5FAB4941D7E4C3CE94045B126E1C5FD40C87C84E3BABBD79A42 + +Count = 402 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B +AD = 0001020304 +CT = D5418E614CF46000B2EAFC29FAE4C9A4B648B325AA66D4C9381AB674 + +Count = 403 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B +AD = 000102030405 +CT = A25B3B41EDB7B3A87B4760CDFA64E86CE795DE4ADCB1CE674E382598 + +Count = 404 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B +AD = 00010203040506 +CT = BF2A5AB66C1C4009D93231034DE194F13B61EEA6BEC3CF1ADD1D7AE7 + +Count = 405 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B +AD = 0001020304050607 +CT = D9E1487A0D2DFFF70CFD166C9A644DC853C47E5601A93F209DA128CD + +Count = 406 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B +AD = 000102030405060708 +CT = 32CAA223B65652536E70D850311C5F446C61FE00D825E20725C360D5 + +Count = 407 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B +AD = 00010203040506070809 +CT = 7D55869CF6F4203DAF237CE140995FE6D8D7394388CC2A72225FFE28 + +Count = 408 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B +AD = 000102030405060708090A +CT = 625D3EAB2E28004042CC5FC8C4366260F2E79469F7BB325F831EFF96 + +Count = 409 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B +CT = 69DE63E6F26EAA03DAD599774B1A98F94EEB8037371A457135D19FAE + +Count = 410 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C +CT = D0317C43BD0ADD654C4CFA1529C6827B54CBCECDAAD29CE08214764D + +Count = 411 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C0D +CT = 1D96E78B7AD258A04C57111C714A6E4611F4932DA1E657A332D7801E + +Count = 412 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C0D0E +CT = A85C86B49C0F4C2CE6971055989B701742B2D7E6CB1017C89DFB9ABB + +Count = 413 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C0D0E0F +CT = C1FC005BD2896A18BCD75B9362CC3111C54D12D598798080BBD6075D + +Count = 414 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 4F5E2892A3A4C5A676FBFF9E7ED0D5A56F602CFD709633DCBEFE07AD + +Count = 415 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 444387A0036B882834A350D13776DAE0073295ECE64ABB25537891C6 + +Count = 416 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = 4BD79A60EAB3241C25F7D493DF97EFF8D6FE5A3C4F31B5993C1E853D + +Count = 417 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 010D01B5A34C493DE57CDB0007C568ACF6F71CF35B3AA1E1467D04E4 + +Count = 418 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = A0AEE0821E869AEBD35F59F4F247A5EB2BA974E3EB16CB40E85C6D01 + +Count = 419 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = 235CCB8A6435C4540686ACF25A251744AEC9BF13B8A67C5B35AA18DB + +Count = 420 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 586F42D014865E1EC4E394E945A4D4642632BD9578C0259C07255B31 + +Count = 421 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = 48D86FB12452DA728B8222F0297D9EB34D8E95FA9375FB0A35E5EAB5 + +Count = 422 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = A5A85B43079AFF537ABC734F8A4FA9886872DC8E3CC10CF5499F80E4 + +Count = 423 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = E2C53E51788A5E54B00365AAF91C24787226026FC5A78237865068FA + +Count = 424 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 87B92B613F105568E65A10BEA7AC2248A433B4CB873C4979A5B1FDFC + +Count = 425 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 18C6C277CD6EFBDF0A52762F262361C1A4B4BEAD063B174F73064756 + +Count = 426 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = B4E5CCA764337054AF632BD57D383C9167CC64BF1070636F77D1F915 + +Count = 427 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 73FF668D6E73166E250A864A4AE6AFAB1D5C78C06FA387CC1CB76264 + +Count = 428 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = CF54A5A361D7BB9AD104AE4EB7CFBD5DB1B93F55B7C6FD0AC931E56F + +Count = 429 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 20286A1C951BD296EE1805EA870094E89E1AF4F41FF1A6C1E0513F17 + +Count = 430 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C +AD = +CT = 6AD3150B71383CAFF63770FB2C6504D1FA04B4B8C96D51BDF32F7078D7 + +Count = 431 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C +AD = 00 +CT = 5C88C2155D78CBAEC9C88D69C4EDE6998B680223869052012FA7BE5656 + +Count = 432 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C +AD = 0001 +CT = 874945FF65B0D065BBFD838AD72F4E800C49A8E4315F4C8C4CFE9C9B9C + +Count = 433 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C +AD = 000102 +CT = 65A94377170C1218118BDFFB1A68F5C4CC2010D6ADDEE1E539BA0A718C + +Count = 434 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C +AD = 00010203 +CT = 7393E4A10919CED6B84250A008B01F1DE4785B55C9168FB761DD505E97 + +Count = 435 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C +AD = 0001020304 +CT = 90BE76207633141BB1F682DD14F7FCE44DEE4E5952367CCEA177CB64C7 + +Count = 436 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C +AD = 000102030405 +CT = C0B1210506F33A71B6AE6FF889EE8B2F9D7EFC4FB54AACA4345C4F0144 + +Count = 437 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C +AD = 00010203040506 +CT = A712D3F692F59A50F7D34C393B7D2F13FC22BE07BBB1BF06D0B13A4C1F + +Count = 438 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C +AD = 0001020304050607 +CT = 4DAFF41B2380F1F326B3E4B6F93CCB3583AEDE3FABE3BE7AAAD59A3445 + +Count = 439 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C +AD = 000102030405060708 +CT = FCBD144A8DA9671C0F86F45B378C3559798BD11D0463CBED8AD26C65DA + +Count = 440 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C +AD = 00010203040506070809 +CT = 1631A52AC4AE19D595B799FFD4168555EA22B9C0457EE52B6C12644E5D + +Count = 441 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A +CT = 17DB1EA945136E3BB4C6E0FA3A3F89101D84860FF11C8AA3605FC56AE5 + +Count = 442 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B +CT = EACB449C2765E0CB151851FA3FA66F56F3D1075A4AB834173D8589AC0E + +Count = 443 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C +CT = 836AFA9E640D0FDC7651AA92EBCF20225F2740099A52229C58E209FFA0 + +Count = 444 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C0D +CT = B9E610722FD2BE2FE785A91D383387E49D5F30F8C0079CAEBCF83E5493 + +Count = 445 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C0D0E +CT = 1664C39B76942028F14D6F09013C44E6193866319DA599B498BF06B107 + +Count = 446 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C0D0E0F +CT = 1BD6864114319781DA7C4CBA2C7664B93AC4F554731620433803C32CE6 + +Count = 447 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C0D0E0F10 +CT = BD32967F4A7DFD9F2381A364F5C709108AA12496CEEA918E1BA79C6EA4 + +Count = 448 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 6DA2491F3B24A0F32A2A679CBC5253A1097416FF51E36D5DB748A145A4 + +Count = 449 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = 655CDB39BCE93BAE2055D2FC1005FF3601F65E31FCF36A36DED48E2792 + +Count = 450 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 41530597052F7A11CC6E30C1E42D406C2DF32418C594542FA59657C069 + +Count = 451 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = D054C43BB2CA1969253C891E1CA300C3E4CB0AD6CA9AFA7873D891B075 + +Count = 452 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = DDF13556626CB7AAD21009DBD3F7E27C8AF7C853B285A7DBE0073FC96A + +Count = 453 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 2818D6DF1F08C3F2F9B66636A93F8E87F9F0B9B5CC0EF82A0B08A6BFB1 + +Count = 454 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = F22239ABC1990EC8972EEC881E0F610C997AE1BDA5BC38F35A3826FB37 + +Count = 455 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 51D1DF3C7424093E12D752A75E3C2D7734DB8EE230504F24BF8A800070 + +Count = 456 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = AF9C3F39A86343F09C4AE1E8A8E93C6386709AF4C990E419E6A65BDC61 + +Count = 457 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 8E79900656248FB17AA3580DA0B1394870F7A3BA6E3DAEB27A2D828439 + +Count = 458 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = EC02921A00DB8BB7A8D95F7B05FB7D679B2608221EFEEE14C4998804DA + +Count = 459 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = 06DE08E4A8395E185D5A2A3EFFD1D24AE846C386BF020ADC9261091579 + +Count = 460 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = DD68C51177F302D63443F101EB19BE7866B65FC80DA09133099BBD2146 + +Count = 461 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = E348DCBE314019BC2437FC9CA6DD0B92A272BC9697444C2764E7923B70 + +Count = 462 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = D6D507470EFDBA64844CD7B00154EA81EA39C27F33133D21B551568FAD + +Count = 463 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D +AD = +CT = 8CA54B346754141BF686D62AC9E76D4AAD739C6646DA3417FD4C5B991702 + +Count = 464 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D +AD = 00 +CT = FFA6B156DDA78A2B1D3AA98A31AA771EB7E2EE0FA1660580694482772AC1 + +Count = 465 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D +AD = 0001 +CT = 63EF01E05EE1F2258E0986EC63E65207DC3A8A1F2C09F956B79892E493C0 + +Count = 466 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D +AD = 000102 +CT = FB2E3E6257F1AC72FAE4C6F0F1AE4F74EA554F85586C20BDFFBC652FC566 + +Count = 467 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D +AD = 00010203 +CT = 4F27EB3B58CB13E3E79F9E2985747E8AB38C3583E809ED94B9DCB3F16B9F + +Count = 468 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D +AD = 0001020304 +CT = 6B7DB53DB1122BEC5B6A1F2CFA87E3FED6ACFDD820F8E6AB0FFF4EB346FE + +Count = 469 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D +AD = 000102030405 +CT = B1733F53E9927C16044D97DED1C24FC7A7171FA96F81D4D58BF3BAABDE3E + +Count = 470 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D +AD = 00010203040506 +CT = 3488F8A572B9BB8590B134E749E2573AB7DC98E41C07A29D8EAB3B88D779 + +Count = 471 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D +AD = 0001020304050607 +CT = B4BD42F934C29848DA4E11C9631B6202C7D645765C89FBCBB549A738A6A7 + +Count = 472 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708 +CT = 2CB23B198BA6634534ED44ED61724F85ADEFC5069DB593E6BDB1DB866B83 + +Count = 473 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D +AD = 00010203040506070809 +CT = 0B5FF587C59795E09F0A7E517C2519C71F7BA6ABD4C28E36A6C0A7612E42 + +Count = 474 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A +CT = 8F1FCC1A8CF19455BF476FED73948C61205B402C08923E7F1B5FBDED6AFF + +Count = 475 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B +CT = FDC8B0825C961C6F965452B1E999586ACB071022043B3F1E2CFF5C3BF14B + +Count = 476 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C +CT = CDB7D9187C600639C803ED870906711357A9A125F0FFBDCED9227CB82C2C + +Count = 477 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C0D +CT = F1E49520289CC5028D149B25FB889AE36036BBE43A8D661672C397EC12AD + +Count = 478 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C0D0E +CT = 6C13802F6057390E18D0A7CF1FF0E439B19419F40F0A433143950584A46B + +Count = 479 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C0D0E0F +CT = 89BAC3B8AEDAE1C8799547D69666509DC4D942002F67952D678326AD1963 + +Count = 480 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 56B99D148658B1B23E00617132A296203B13F4629F124E6BD34768A7C78F + +Count = 481 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 6DA9269F2BC5B4F68FE4CC057926C26B2B4448B969CEBE2CF23E8DB96CD7 + +Count = 482 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = 48B8BD1BD13F686BE6B45834434BC6619BB892AF7FD6979AC4F28B8B8A25 + +Count = 483 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 6017344C7C77A296DF639B7FBEEF15CC4F9F35426F97ED7DB7173A2B900A + +Count = 484 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = 680F6D98017DA0BF865B00114F6F077D28872CE168B84A3485FDFF4BC8FF + +Count = 485 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = C2D898930023C31173F562E2DBA277C213645E95FBF76EA5073F645A5765 + +Count = 486 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 3864A2690A70BE80773BDE100ED984943EE5522BF4A5EC6DAEB841C04182 + +Count = 487 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = 14EF418CDA37432D0B7452C12CF7D956163587A40FB8D9503D30DD1757E3 + +Count = 488 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = F3C4BB3D7A372AB8648F4AB86F5BCFCEA6720C0CDDD2294C00A852CFB55A + +Count = 489 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = F08FFF2B4E7C6457D95CB879A8757178109C2121B493529665410E992955 + +Count = 490 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 20291EE6011F4FE090963BE5E16346818B2DD45E580BA9DBCAD8A3F831EF + +Count = 491 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = A414BB4A2A8A071A583B5B8B96AB5EEA4936F64FCCB47C16F8214E2059FA + +Count = 492 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = E10C81858386E75E72A5195F66097AD257A0546C738003DA43A22A139A73 + +Count = 493 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = B6E3A1C4ABD320F7925667F6029478CEE2CB83CD94EAFA26928D6E6C5873 + +Count = 494 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = 65D22EADEAC9F4B0B34CCD5EA80A473FE6B15BDC5CDE0976E132F8A4FBBE + +Count = 495 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 2EA73498D15D7C8CDB909C9327886BD353D0FDCC616E9C9126B81BB91D27 + +Count = 496 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E +AD = +CT = B5E1B53FFF5F82F1EF95973B136A28B68AF94645C6858E30467AE3C78FDE06 + +Count = 497 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E +AD = 00 +CT = 5D5FC44C728861A97D07E0A94207DA58733D5DC9F7ED4855CA6819EDD5602E + +Count = 498 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E +AD = 0001 +CT = E796C6A2B6F66F21C68CDB70F6CDE57BCC6B37EA00AD7E8CE3AEF4C483949A + +Count = 499 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E +AD = 000102 +CT = 4D9A13FCA43B34BAE719E660D26453D5F93949B3CD37AC70E456899DB913DA + +Count = 500 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E +AD = 00010203 +CT = 20C3F796BEAD6E14D7490996D20FEE7DE304B8E67763F619134B3A74B8C90E + +Count = 501 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E +AD = 0001020304 +CT = 4B749A9C90CC006C9D68CB16613A5120F880A169FF2B2727FD9403046927D3 + +Count = 502 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405 +CT = F79BFBC80BB49088857944BAC53189FF457077272E0A2837E1E5733B07C4AE + +Count = 503 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E +AD = 00010203040506 +CT = 9E7CDE2A89B2E0A4EBCAA919379A5336907AE2226633A63CCB7B71044BAB4B + +Count = 504 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E +AD = 0001020304050607 +CT = 4C3C3D37BC198B6FFD9E3BF9930AF11A4CD75DB63AD456C7948E0EC0ADEA0F + +Count = 505 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708 +CT = 800BFEFCCDA5D5A4BDA45CCDA0BF94F1ABB90E0B7E3F2E336164907B83BA3A + +Count = 506 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E +AD = 00010203040506070809 +CT = 336FE0B60816611F375B82C024CACD5DF611196A032594E6258C05C82843D6 + +Count = 507 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A +CT = 83D7AF4FBA37AC8F7E2B727A297169A90DE8648A5DE118F8FCE0B9192ED5CD + +Count = 508 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B +CT = 34C6994D315E7A7F6C8CE487364F154A5CDEDFE17E706993E73C8CAC5B66A4 + +Count = 509 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C +CT = 2F00819B05636C4B312662564F5B6ACA674EDE5E5068642F17624B780B197F + +Count = 510 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C0D +CT = 60AFE8B885C89782AD4760C71408B87A72CE955E959BC9E5134777456A0562 + +Count = 511 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C0D0E +CT = 4593461252AC43058F963494DF78405D0576CA3D67656935EB614680D75C70 + +Count = 512 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C0D0E0F +CT = D6D888EFFEB6359C71E48E36A36D087D155D9B7AFA3C77C39A959D6DC9D00F + +Count = 513 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C0D0E0F10 +CT = D1B616E3122AB8DBDC1AD071C84BB934EC1E8397D96891CF87F27DC6B01FB9 + +Count = 514 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 89B6F26D326C7256B18BB42E6A21F8A8BE2E844332374D9B9E7E9C042282BA + +Count = 515 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = D8AB9DEDB9C43635DD0ED855E5778BC64E9D59F91CB043AF0818F1DE1DE587 + +Count = 516 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 30860F65715B0A084637517E5F001F3AA2785531F8E066D9280C5B8F8FBBFC + +Count = 517 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = 75ECA72E7DFEF898D866CECFB18AE96130C0143D4CE2860C45E484EBFADA98 + +Count = 518 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = 259A5A81B97821E7CEC148D02CB6BBF033B9728CB4B2AE2060609412CBD8F6 + +Count = 519 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 97A8198AC25714FF73FFFC04F033E775C5995542693F01E5D344BB2CAF1A3D + +Count = 520 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = AED703975776BC29CADC177E2D0767FFDAA8577E82CDC524BD34BED4685399 + +Count = 521 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 443EA386F41D181058A60A133E12592211E01014BE0CDB1B59D7E9527A813E + +Count = 522 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = A21C9B862D7EB4F519D53233CCDC387AF784EC27A5FCBDB9375DD177477242 + +Count = 523 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 6F90FA2C0273859B4EE7D5ECA8CAE4D28023B2B70959BFA82791D640577EF5 + +Count = 524 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = D1D4E3D53AA5E4DDC54E524ACA063356EE22E7A5716E94CD1FC57DB367FC32 + +Count = 525 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = 0D70D7F414ABAC4A770981AA1EFB753A5AA7690CD892DFDCE80B3E4D1253B8 + +Count = 526 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 38A0791BB61BCE50A3EDE9B8006D8BBC484ABA2692F70495171112CA405BC6 + +Count = 527 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = 57B32943F51A3FD568BF43AE92B94EF5E6C35CCD2BCAB624E8C5C5D6B549A4 + +Count = 528 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = CEC94028569DFB3445E0A73B688F5B6A85DACF742C49365C46727687D79424 + +Count = 529 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F +AD = +CT = E9F8E9D6034A7C34390EFA1F9E314C4509B92149373C4B72DDCD78130E5D98A4 + +Count = 530 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F +AD = 00 +CT = 0F9A2CB9EE4F09435D471FEEC940EDA1BA299B971DFCA456DC5837EABF7A3F3E + +Count = 531 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F +AD = 0001 +CT = F7DB3980F03424F5B85C66425936F58683BDF7EE623C6F3F482DC208949787DC + +Count = 532 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102 +CT = EB14A4AB7F2C12008E6943FAD32ADB6657DAC4EAC34327D64FC7C443C86E9AAF + +Count = 533 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F +AD = 00010203 +CT = FC0C525C32745F88419538F4D7679CE3DF58F366014685492CBEC5D359F405A3 + +Count = 534 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F +AD = 0001020304 +CT = 8013C91B00246308F863519575613C7CB030133490DEFF04F3FB038A8DFF2034 + +Count = 535 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405 +CT = 574EC37765DF3635DD3667AD9F91C431CFA67258FD47C023336852A436D11581 + +Count = 536 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F +AD = 00010203040506 +CT = 48F85EFEC5099ABC25ED6011CDBA87FB1C7A6FDA806E71FFBEAC731FEBED8395 + +Count = 537 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F +AD = 0001020304050607 +CT = 6C3DDB0960E36FDA25A968674BD9C0D8C2E2C4FE731F32C6F29F1302D307BF6A + +Count = 538 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708 +CT = B40D6B7FBFA47BA35F670A34D48E9B3A5CF609B211946A495A9117F74E02F22B + +Count = 539 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F +AD = 00010203040506070809 +CT = 945FB77A39D360C7142AB534558691E81B587EE19D62AC2E7B4988C404439A6B + +Count = 540 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A +CT = 1400DFE73EFC28CEE39956FF594536FA77C6B4F15DBACF11ADD8972151C57B48 + +Count = 541 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B +CT = 933C250CAD994F3D6EB15119184F2FEE3E856FFEDA7BC32EFECFBCF58121A5A1 + +Count = 542 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C +CT = 1459DE801D6352CFFC35942A57F0A879E578786E9367721C529314466D76123A + +Count = 543 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C0D +CT = 2EBD05C23790DE78E42CBDC57D780C02B816B1FD8F3BC0EB52A5268C39075AE5 + +Count = 544 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C0D0E +CT = C6E8E6D8ADEC510529C25B3682B2F4EE821A4C3E3A9C267549ADACA9C2D9B596 + +Count = 545 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C0D0E0F +CT = 79E59B12BE4A420ACC321531135CC80192973A29E9B4AB433638D03C335392E7 + +Count = 546 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C0D0E0F10 +CT = A4E0E91874D13E64F4B0395F7D54037DE6D3C4E60861C555B753C7AAECF49B7C + +Count = 547 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 99D99F0BD7047FE9C1AB3901598950CAA0331260414C3A3D9536DD7D2F84148C + +Count = 548 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = FACDE81B6CBF86533A849B60DD35D8DD85D4319301409F3CA92261AA7B0BA3AF + +Count = 549 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 550CAFABA2F8B2B0BB504D20EA08E1EAB19CC9165E57BB9F66EF6ED59C5A9229 + +Count = 550 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = 429E836D19811ED3723D109CCFD75B39E2340DF53841E0845C212AB402866E13 + +Count = 551 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = 39B1039ADDF2E6677DF80997558171645DE6D125E4DF77C26A1876DEDD45899D + +Count = 552 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = C2923582DE7D8889107363B8EDC744DE81F039685DF75E9A37A25CA14E6F5F91 + +Count = 553 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = D6697F831BCD65268AE1723CF8F8356A757086EEFDDEC4AD7DBC2A820B235DA0 + +Count = 554 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = EDFD492CD48A28D6A52403971D97436B620CD071EBBB75997F8BD9480525B28B + +Count = 555 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = 7B3BC38401EFCC849FF439AE7C16742AD8CD61E0C759E9101177862EBFD76D44 + +Count = 556 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = CE6708970C3C5677A4E51B73E58FC190D58046605666408E8AF862248E3CFCAF + +Count = 557 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = A4E6F13C612625B3088ABB4C89E4338F41DD616609E12696135C5FA34A061B32 + +Count = 558 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = FDAD2714A4246638B73318D75A2D1C39B1C286F555394CA12D6B5D4877375F0D + +Count = 559 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 010765F4D671DBAAE2F6B2437616181D87BC3C50218455D3035FFF3863B9D611 + +Count = 560 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = 28439C1AA1858FFE1095024548BC932AB6F7D03CD8E8D8857634B6188CEBB510 + +Count = 561 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 48784EE91FF696FD1E83709E8E4CBB91632B0D4B2DCFD2FC8A31705E9AE977AF + +Count = 562 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10 +AD = +CT = 15D4B331DE79229CFE8E1EADDA5F3743354952658C0ED40B8E84CC4DA206C0A90A + +Count = 563 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 00 +CT = A266873942F57FD9A2C7DF672593C5561DDD307F8444F258FDA222BE13DA60265D + +Count = 564 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 0001 +CT = 95C1BEAFCCEB9527659EEF58C1B2796F2DFE1189ECD45A296CAE8A6196B14BE21A + +Count = 565 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102 +CT = D548AC1383B3586DD28ED9D6386BA1AAF93FC5012692B1C18D10C998588E9BEE08 + +Count = 566 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 00010203 +CT = 96F979F78A06D1D6DAF142E6C45F5214A1034938B9A05D4E35360B7B7D7D0A6A5A + +Count = 567 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 0001020304 +CT = E7AD0C1AEEAC0E8C1641144E792DE6F6E60AAFBB58A20D6893FE253F302711A335 + +Count = 568 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405 +CT = 51F34DA56EA19135A32215058A424BBECFA074D5C9F0348F0376F6A720DC83EAA2 + +Count = 569 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 00010203040506 +CT = AD233A410A19ED4D05B0AB59B9B57EB61DB89D059A98AABBD46E1D1366F303C4AD + +Count = 570 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 0001020304050607 +CT = 17B0CB6629579C7A71976629F97249D17782121AE19B5FE785DEB6CFC33AF9FCAA + +Count = 571 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708 +CT = 6926FEC8BFA5D68EEE1A1E65A438447F5B2467BDE4BA30C26125DF20DA82A418A7 + +Count = 572 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 00010203040506070809 +CT = 447FBC7243DCC2429CFD9D4E24D19A66D7C3C1C7A73B8BAA3A48D058A037D2EF36 + +Count = 573 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A +CT = 5E0459A5DC00DA3A369149B5AE9FDDB327810524FAB4AF12FE5BF7CA2AF47CFF5B + +Count = 574 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B +CT = 99996613C4EDD52F668E0591861C0799A7D862C4AD7E30D7B567E47633D6A2F290 + +Count = 575 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C +CT = AC6108477EDB1B76EE284932598433E8E5C04E8C95100E90E2FF832A93016E3BDD + +Count = 576 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C0D +CT = 322B22DA781ED9989637192E57244C48E6E07ECB323D5955AC9894EBA6E0907BD4 + +Count = 577 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C0D0E +CT = E8C2E5708F294006ECB7C22667D420A7419236FFF0B35F897B776E8F426D44AC0F + +Count = 578 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C0D0E0F +CT = 2511481CAF78A0322D111C81B0D998DC771B9488B3A3997E61235D33CC48BF0FBB + +Count = 579 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = F1EA186F442F114BA11B0E27A55FA964BB2042BCD5E0024D5CD4CB3535E9EE94DA + +Count = 580 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = AE95D0BBFB9C40FB038F513B05C728FC831888BACB2454176A693BF04C0F4E9814 + +Count = 581 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = D1890451A52D6568DE2CC0AA684F2B61F9C9669A5904C39E2A5FDA29F4995A4FC7 + +Count = 582 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 9E5C3BCB03D0AD88D71BCDB548DECDDA15A51679496C53053A2726C13E4F0AB33F + +Count = 583 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = 0353605629BD840554D633B3A5FE10A2EA5C1719D249A6180320D69DC7543E9053 + +Count = 584 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = 10F975392E3585C093358F5A7EE90C57636DFC110F37719C316B5FFCAC399EF747 + +Count = 585 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 2C30C16066FDF2BDB4FF71517DF8FC7694244A49E44377C79A78FF6661DD2A1201 + +Count = 586 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = 4292BA4BEBB9F5F24CE70CF1E2AB5D13325FD0791F09200DFF07EEEBA2C4C2C23F + +Count = 587 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = DBF185464B34DC7C81140AF67AEF6635411C87BE115A23A13C31BB03E0748485EE + +Count = 588 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = A0E02BC7961C6DD6F0CC5F1D6F5E88E0CA5DDFAB20218348096748815329DF3F1B + +Count = 589 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 053218417482CE224ADC17BE8FE669D9400188D0B69408C599170937A93EF74C88 + +Count = 590 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = D6E51173741A53FCE20E72DE5FE53D302804D624CEBE0FCD8F7EAC6F90D5BE1C66 + +Count = 591 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = E0004CF59643D318AA55469A22199B319E1B39A77D5CF17254F1C36339E0D08C89 + +Count = 592 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = B0B4BFCAE13704264574804687B7F62685BB18DCCB67B4FDE46ECB31E8F539936E + +Count = 593 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = 1D5DD853660E4EBED0F2E39DCB53A23276E8F1DA77C410790FF335C0C996A6FDAB + +Count = 594 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = F1A7AA3D43439191C095B174450CCECAD40C9111454C3AE5F8422C3D907F3CD3EE + +Count = 595 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = +CT = 887FFD7591441AB022D99E75A91477D061E9E3A1D7E4591BB1B0C4C6B96044D7F53C + +Count = 596 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 00 +CT = 04E7DD6D1519093D79DAB8180D0FF05FF53674E610073654C193833F5D7ED248C2A3 + +Count = 597 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 0001 +CT = 899D6BE319D9B8DBA8B4453E505720A53BFD8096E8EA8F1B147AC08DE55B37770095 + +Count = 598 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102 +CT = D74A776BBE8B29F9937AFBBA9DC58CC3D4A783A16910F53F49B090164A822E68C902 + +Count = 599 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 00010203 +CT = F18EE69B54DFFB967CB4D05CB5C165AEB534A2B4B82A9CB7880A1084B7CCC08CD89F + +Count = 600 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 0001020304 +CT = 5F198DA533C77578F20AB706C800A602B8FB4EB30261F64F8224D70D6096A4C22C33 + +Count = 601 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405 +CT = 0F99B1763159CABD0B1FE0453FA5387DDEEA68AF3EB0C99546F8ABE9D5C1B894D76C + +Count = 602 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 00010203040506 +CT = DFFA9C7BC55D9BB119A40BD76A7FA88FB4189071AEE119A976C5EFB4583F287CA145 + +Count = 603 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 0001020304050607 +CT = 4A218CC7C8F9FFE507619D730F26015EA6AAD6D3237D54582B6CA320D51A55B6EF28 + +Count = 604 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708 +CT = EE8BB1952E56F56CECDDAC9C766668BC5FAE66736B0479AB3F3F8FBC6D10FAB632D9 + +Count = 605 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 00010203040506070809 +CT = CFC33078BE0E432A29347B279B78B0C74C0F773ECBF8456316353D448870B5042A17 + +Count = 606 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A +CT = 758CACF99CA48FC9C813CCF2AF113FC59B7119DC0C6A2B55C9288279519C78FA9E29 + +Count = 607 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B +CT = 745A28AAA6F09EF8824F3880CA287D18A83839D7EC81D2D8F1A34DDE13A88FF7426F + +Count = 608 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C +CT = A0DC42D37267E2E3535378718F472FDFF86FC22501D88D07D6C3870CCD107CA7CF0D + +Count = 609 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C0D +CT = 6E2A72DA2927F8CD240A727C03FF9270A503F7D661AA8F3828AB68859350EF8B1B4E + +Count = 610 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C0D0E +CT = 1893FF7BCF0D2050F3F9E5923437F0DA26C893376815E9D327756F007308A6E2A7C1 + +Count = 611 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C0D0E0F +CT = F52DF6874C6362F5CEE22BCEC93D9662991875AE6A7FFC57AB66068B0807A0BF8147 + +Count = 612 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 2E630262344FE74F3A0EA03B2146B8237B39FC9FA10C4EDEC993F5D2C1AFABC536AF + +Count = 613 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = F38BB1D47BCA9698E4FCA36EDBF18738FF9E937A2D7A7D07F35E8B8BDBBC10CD95E6 + +Count = 614 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = AC7D0F0BEA88235DDB1249C5EE6622AD8FAC28645DEB9A95319EF29AA0734CA884BC + +Count = 615 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = AE83462892BDA12BDAA125DC6EE8FD63B0E959AFB8D56D0F471D776758F28A4D92AC + +Count = 616 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = 286F3215B36622302171A9D5819DA57C48BC5A2AD05AE5C8AFA0CEC3ACD92C00810D + +Count = 617 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = DFD1F44223EDE331799F1DE2C1833F8E8F2F2F68E13B68C9287E824F52A85C91BF70 + +Count = 618 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = A340D06C938C54F86F3B47C2F334D9DE82AA46BFE675B3E1227696E8A6EEE052B912 + +Count = 619 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = F052189D60631FC5DE352E8FF45201EEAB40CE5C2F89FD91AC890DA66DEABE13E0FB + +Count = 620 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = A70A3CDD8C3999B8DE175C82FF40D1B29CA72C603636AF015465911DEAB4A1D957C6 + +Count = 621 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = 0996DF9EF7E98167CA442B4FA93289E9B0C2EDC28EDD46C5122B1F74E289EC5E216A + +Count = 622 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 7A631486DE8DFB64D23EF566F77B0D00595E8ADD31A2949A22ADBAB2A06E9CA826DE + +Count = 623 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 196673EDB1A92405D4777E7AE6D0C7DFED8D93935BD284515B1D242D216F5C0F62D6 + +Count = 624 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = D6C2FA683BA9ECADF92F67776AB6980D625BA827EAA4DB62FBBBF05B8F11F55C89FB + +Count = 625 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = ED896303F8CF912C9EE8DF43A757FEAF69F49ACC3F1835250F52B75A5321C404BE7E + +Count = 626 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = F1B9A1D4BC992E4F546BE1D90B278E0A8B1C1CFFBBCA69EBEB76B1B88F703DA12015 + +Count = 627 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 593F73328CE9288A760F47DA959DFDAFD37685C75C2DB31E2FAF5CA0AC40682B720D + +Count = 628 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = +CT = B817175DAE917B8F812C92D4F54415110635C519665295CEA769A396900AC6D48D474C + +Count = 629 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 00 +CT = 77BF222A4F65967C5D3F0F76D3A8B0814E8EEE7BBC89A308E977B6B92A044767A20DB0 + +Count = 630 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 0001 +CT = 2641361057B9C51E291E4D5710165826FC319B6AF8A59D9826E8489F2E6BAED3BBD737 + +Count = 631 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102 +CT = AE5FBA16D8925A56097653D342E94281C4ACD9DC13757039CDC5719E1B62594185EEF4 + +Count = 632 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 00010203 +CT = 25DBBB462E70BDB8C37488640A7DA267571EB8ADDDF57851CAB9AE23BEA107BFB6D682 + +Count = 633 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 0001020304 +CT = 1FF2AD20B6E3C61325A181B7D8EF00ACB4EDCBE6B5CAF9EDD11B8F7E58A2E12939D3EC + +Count = 634 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405 +CT = 0548EAD0BA5F1B07BB1728AB0E704CE5FF19DE48EB6A691CC8B6F07D1C95F23C20C09C + +Count = 635 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 00010203040506 +CT = C160BFDF80A17F37B11A4E853F09E8A97CAD40E97A2059A1C08ED4EDC5A3FB6DFADE0D + +Count = 636 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 0001020304050607 +CT = 8266D9547A8FF920DDFA0480CBE6FB109AA31107B821F668F5D7F2C0A8D653726FA936 + +Count = 637 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708 +CT = 356E0D6CE0E78C18BEA00C67A7804C0FDA3079C674AF887E428FB62AFA9F493F4C131E + +Count = 638 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 00010203040506070809 +CT = F24AEF136411CB8AFC36A7A0FFBDA1E806C0568061AC58ADA29FC10791DD5BE860B6D2 + +Count = 639 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A +CT = 2346DD465655CDD11BBAC84DA5E106CF09BBC6C437AB6EBA83603307D65E8B854BEAD5 + +Count = 640 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B +CT = E042BB74B37919446DD28AD8AE534E2FEA8D614CA05879555AC2AC8908E49EF14A546F + +Count = 641 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C +CT = AC7181327343DC7D650A128C9C487D53B16A0CE0FB92EE23A7BE1807A17F285BA6C58E + +Count = 642 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C0D +CT = EE98FCCB6C1D1AA8B423EFFAE18C5BEBD6A368F7B668EE96D6F890F3B6D63568F3ADE0 + +Count = 643 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C0D0E +CT = FFBA46FC4B72161A6BDEFE4362B6D6899336BDD71F9305FFDBE934B743B46B0EA60E2B + +Count = 644 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C0D0E0F +CT = 59BC165B17DACE57FC0D808E76AD79B16FD1E23CE7E12D0B175E79ED0D0F23C3D9A55C + +Count = 645 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 3491B29513A61025ED17B4A126338B3F277C39512FCB813644D6AE9323D9E422CB5DE0 + +Count = 646 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = A7334068425EAD54654D358D5727D9E6D9284085DCECED016EC68A07649D5D95D3C229 + +Count = 647 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = DB768D643D8C207BE16986A1A50BB6C4C6F83C33FC6299B40A68F32D61F3922F619AEB + +Count = 648 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = A2B583401DF0D7A0DB8AD109060DD5D62A58F2489F8E38BC549B70DC5A12C67B9FBA1A + +Count = 649 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = CA32FE3EE6F86F48321F7045120551AFC8815A4E4C2BFD8B53CE60BB6A647D609CE6EF + +Count = 650 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = 77F3F9CB1C3207A4DF1C921CE6755B4002CBD4600F19BEBA6D8187ABB33686854B5D45 + +Count = 651 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = B9CCE8F0D24F9A47ACF087140D5299EBCD4DF3EB5A1CC4661D21FA773CAA29E502DB58 + +Count = 652 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = B6D17DE84C13E9FD3745E032344C5B90BF716457C93A7B70BD6EBD742F36300DD29625 + +Count = 653 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 412D4E0E2BF45F8F5847F6DF4144032DBC982A1F1E32ECA15DF9B04F25723C7A48600D + +Count = 654 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = 745315418686A21A61CE076B530CF8BC8E23CA9565BA2CADC6F596F9FE11ADC3634026 + +Count = 655 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 7EE2975FF6F42B1F0ABC78EF46DB13DCC142AACFBB2C2306998DE328FC4153477962A6 + +Count = 656 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = EBBFDBA5461FB02DF7002827683562D122C6BB03ADBD6B9D868BAAF8AB2AB53F11DEBD + +Count = 657 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = 15426D6F61A88814A1BD1184149E8CA096901E4ED26AEC46E178C0525BE52F99A2DB94 + +Count = 658 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 2B38E7EB3E3D937D26F7A6C3985A8DD2CD941B7E1336A185E968737B372BE5B93D15EE + +Count = 659 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = 4FB5FC71D05685CB3DF6F153FB599B96BF1624960E7FAFC13B371013091B3A245E84D4 + +Count = 660 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 03969607B238B46EA06446CCB141A8D5B2C696B2CC7D7391A6C05BF6AD6FF0618AEC7C + +Count = 661 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = +CT = C7FB15C00E59D59178FCDF46896B994C3252F15A3E266812AD2EADD02DE07AAF8ACD669F + +Count = 662 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 00 +CT = 3A432D124324807E875015578FF1CB4F6B84CD88CC7FB8804D566A342633C11D9C0269D8 + +Count = 663 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 0001 +CT = 848AE290562DC7E02FDA2ACA91531BFD0B0AD25676280DB325EB52D8B6A432D1B08C9C04 + +Count = 664 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102 +CT = 1EF7B5558A13343E43FEC87A5EE749E418B42B02B2ED1A2DC56098EF2FD095BE2FF110F9 + +Count = 665 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 00010203 +CT = 13A0565EC3B0C998482B4E9B8EC4513A54F46CB5DB811EFCA813EDC766E4457C2722944F + +Count = 666 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 0001020304 +CT = 7D681430870B76757268C1902D9C9B0141C7E8B38BACC61D9C61B74D32003AE87635FD18 + +Count = 667 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405 +CT = 0111D66232F0C2ADD6C5A9685B0E132845DC881CB2DB0FDC316EEA687C9B25338240088E + +Count = 668 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 00010203040506 +CT = 0697C73D6243AC703E5CCFDB218D9B057727D91918BDC891D3AE9FCCE37FE599BD4034F1 + +Count = 669 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 0001020304050607 +CT = 60B9A6956618FB8453C00DE22B65A109F43A342AF29C42EEF0444F5E0AAFE2C2AB73C01D + +Count = 670 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708 +CT = 6F58E447FE7839308F5DB79C15DB4452B2469B60D8E30BBCF1ABFDE5608714E23FC15B88 + +Count = 671 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 00010203040506070809 +CT = CF8813204F117F3CD6821992E6CCF463821130BF905B30509D6A3646C0D1D0012554D1A4 + +Count = 672 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A +CT = 8B083E2C05E7A01C73DA5A7B3BA2217C8C0D2AC072950840F427D69A6A730AD3168F89C5 + +Count = 673 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B +CT = E02E2A7AE61BDFA9770A74E9EB01381AA14856A8784ADD26AAA7D578403C7D5962018F3A + +Count = 674 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C +CT = 235ABC9682503F7E9743F94DDBF7301C6A5F4B56C11BF18DFF13DEB99A987808E2E7FEE1 + +Count = 675 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C0D +CT = 0BA6E2C592333E162B5663AA7184457BB38817A8BC6B3C6616C8B68FEF712432AC1C1D11 + +Count = 676 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C0D0E +CT = 837F5E508EC6160C905BD229BDB2B6C3DC876071A43B0FBC4F9A245CCDCE91581DA87B8D + +Count = 677 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C0D0E0F +CT = 3DD3A285B5C00ADA716E0616529A147A4600ED6350E208C441344813DF7F2953150E386C + +Count = 678 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 0B4C7751FAF347F7BF65C1BF2506F1A6AD3FD5E4BA7CA6692598D04CCAA5D762DCADA108 + +Count = 679 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = DD174CA4A4E34DF6D28BC55FE4934A719297696556D169904183140B12E7907FC87F3E5D + +Count = 680 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = FF8EF4B5AC12A1C119EE6EBA7BA7DE144EE32F9E4CD2DBB128BB155BEC02A281E7655F8C + +Count = 681 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 18C012BDB1910D4C2060463D5BB1E4060FCAB03FFD9E1A96D52B70C95852F3159D440BCC + +Count = 682 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = C4A1CC7F28D45A4F2D3C47CF4D3C57B2CA4D90E4090128235BEB1AE59FBBAFCFD69863AC + +Count = 683 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = 9915E87ED662E1E5A9354F51B6B449F629DD51971C2C07ABB375AA8DF38E6FEC823E00EE + +Count = 684 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 311DA43531B506DF848AFA6A3EE366518816CD788CFF342F85FCD78F371E9E383E57A9C0 + +Count = 685 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = DBDD2B38DDBE7B78866C1932B82F82EB849287D9AA7043D34B1B1AD7F9189F1581557044 + +Count = 686 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = B07403D78BE197D0BB723513F9AC56EBD8B262812D497DDA8DFB9C7ADD0A81D2418E2C35 + +Count = 687 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = CEB39EE134825CD1B8E0C6BF2FC5ACB2E4FF6ADCF167AC3A3B06304F7B6749DC35FF7F4C + +Count = 688 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 8F00F0CFEDB709C6673F9B6827F2D374E44B1406491A7052239D7C0CFFD30BEA3BA295A1 + +Count = 689 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 3EFCE56DB357906005FE07ACA729BF182EE1D53ED087420EC18FE5B4F6D81D9505D425EB + +Count = 690 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = 5BED1BEB41AB5E63FFB59C052D6C3DB37F1013BEFFB8266ED3A84235C9D5848B75C22D27 + +Count = 691 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 854EB4466F929BB3D08B4E77BE0E94033386FE52DE0952D2DD892584DB8896C084EC71CA + +Count = 692 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = 2C55D8886CB52507412A8A5187272259DF7437E1F9DEB199C103D845B2ABD8EC74384F19 + +Count = 693 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 97EDD36C3AF5F607682B0CA589E23972B41B37B7C737E629063F9FCAF00B315C6F9A49B0 + +Count = 694 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = +CT = 84D0F10D2A89EFDD6BEB965BF1CB9EF861B1171062E5BA91F3FDD74F9F2CFDD5370A6CC1F8 + +Count = 695 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 00 +CT = BE78DD7DE6C9331220510881947E9BA025F43E9657CB6AE4E162B6ACBFFBEF717637F321EC + +Count = 696 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 0001 +CT = 64DE8CF5F1B38C57445F4239ED933C0D5108F5EE30A4654279C53E80CE5EEF1CB099156C49 + +Count = 697 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102 +CT = F4BE23592B91CAC1920A88C752BA26EA6FAF99AB560F0BC434E3D49D23C455D0AF7B22566E + +Count = 698 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 00010203 +CT = DCC7521459EB91926B8FC0EFD10A4DDB7401925CB45641F3E906A92ED16E2A94037A2195BF + +Count = 699 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 0001020304 +CT = A808B9AAB794847CE471687723EF9F4CAEDCD51D503EE27B662620088A25EDF610FB8EA7D3 + +Count = 700 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405 +CT = A532CE6C5DA0579DF9094FF2FF627DD3422D748A0C81EAFFDC71B16597C854ECB7AC3621E4 + +Count = 701 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 00010203040506 +CT = 7CB1FA7307CF5E043C6AEF8C380CEB97510839FC50A75C09ABBC4A7EC9294EE494A1E49041 + +Count = 702 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 0001020304050607 +CT = C36788F9C218FEF1C6E5DAB7324088849884C5835F5FF715A372A99F2A9C98245F2067FFD3 + +Count = 703 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708 +CT = 6C88996E3DA37CFAC080E95AB755E4E340EB8CB839207D3D0A6F7DC37AFF643BB7DFA23B72 + +Count = 704 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 00010203040506070809 +CT = 777CBEAF32087BDEE133FC760C0AD6CD1A830A92AFA7A54003F6E432EF4A7839A9B3E90E91 + +Count = 705 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A +CT = 9020CB499103BEBBDA0A4FEFEEB76588991394E56CAEDB141DA3888F5084CD22B53BE45B37 + +Count = 706 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B +CT = 151834BCC5B55BB154358E0C3D6C66B487292318620848974C52B65887F838DEBCE9CF5A49 + +Count = 707 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C +CT = 539FB25DD8792415B80DD780B36F2528B9676D5E1CA6DA3DFC269D0A6001753FEACA58508C + +Count = 708 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C0D +CT = 356C62EDF6282F1B838EB4FC506E7C72E9D2B638CA06A0857CD92AAD227CD2A49215DC9C44 + +Count = 709 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C0D0E +CT = 42F28F2FF5FF8FE010249DC8DC6C44A33C849D23710A23939A518EBC56E3C0BE1F9821D864 + +Count = 710 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C0D0E0F +CT = 4336F4C9A2AEF8E0A23A64A87D6A48A78459CD3FBFA93E4CD258F5034C2425A3F7348C968E + +Count = 711 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 84CE5CB2DD8D45684A0BF4658CDA62248DF8485923C57E721D09D9D017417D909FA1DD842C + +Count = 712 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 42CB49902B9B78C8E5EB20FD265D51A96EEECAF997027D1AEEE47F7E94C1BACDDCD3C0E042 + +Count = 713 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = CCF8783B5ACCBDFEB19E2D33775A46BF53E62D4B484CD26884247A002155E4564FB1123529 + +Count = 714 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 3543FB1E0E65F0426304F9F4FF0D400A2672584025A8EC09734240BF8C8025ED4D39F44A17 + +Count = 715 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = 4CE43AE4B3EA439E1195181D94F78AAEA90E2B1511D77C957FD556ECEFB94366D3B2A2D41F + +Count = 716 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = 53C1899741EF2B2A6607E4581E231F5B30B0E51225D4628B5DE42073D77B15072960561503 + +Count = 717 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 8794C1A81088C8ADB17B0BF0AF95CCF941471706084849737B80618386A47D54369EDF051B + +Count = 718 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = 8CA2906FD97BDA2D076A55A2B5E5EEE3BDD5B4256A0F0FEEFED830B2113BEC7D5BAF13208D + +Count = 719 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = CE15E3901FB3CD454DB747F998642688678F74D760A5824A2049A8F236D29DBEEF9030ACAC + +Count = 720 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = 8F6F0E9309469C746EEB8D0CCB87FA53F29446C9FCC7769F01A4152FE2A43F621570CEE406 + +Count = 721 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = DCFDE6A951C0AEC212EEF7683D0699EFB6F160A52A664BD8788F7FF3B7DB5649221443955D + +Count = 722 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 910E38872318F398A84E1769FF5036BC359391071B4462DCFC917AB313E007777423A296E6 + +Count = 723 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = A40E601E7697BEE8D0200C365C2F78D25D2DE646A89D6A78D531FE7B5FC283786F1F1F3947 + +Count = 724 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 686C068F9FCF52F28E7E7A6805B94539F31066D514994CDA9221EF7689D4D742DF135D387D + +Count = 725 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = 9C6CD0F96564D48AB4119EB20FA6B7DBEA9CBC7BEC048731875F8A3F4EF5B048ACBF089925 + +Count = 726 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 03856237512F662F9B0C6F53C170A4976EA80B6703F1CD14927D14E51AB93DB53A7B036A0C + +Count = 727 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = +CT = 13BBC75D48D38D12769DA25C5A51C82244D4A2E7C187A3475D225374198B6E2974132E9DB858 + +Count = 728 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 00 +CT = 5526DFFDD6073A1DA80568C9BB0445820C262D6EFEA8CE36A96471036D542451B6D65FE305E7 + +Count = 729 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 0001 +CT = 6CE8273CF3AA48AC9F38AA05084F4DDF0FE9820797A9285D93289B5D1DD5C0BE6A097CA94682 + +Count = 730 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102 +CT = B7BF9BA8EE2A3B007E01D6DE277C735796079DECF55AE0EBD8C30007F702876C2A8D6DD6615A + +Count = 731 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 00010203 +CT = 499D7FBCDB2C66247A5DC0C01B9DCDA4FE8D84EBADB39AE64CE9F63844CE9BF524C6FBDD8821 + +Count = 732 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 0001020304 +CT = C8C2E85D96BC4F2470B563800858D0FDD18CBF391DC01ABE86556D83EC053C70D24BDCD8E81D + +Count = 733 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405 +CT = EDEDA45B72AD8BE89DABDF04AFC42AD3DDBBB29E561EE3A69DA93C53BD161EA61F531E9528EF + +Count = 734 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 00010203040506 +CT = 154FE1E90DE2EA34EEB2C30310B9C65F5EC79D44A50BBDD35193DF94E3BEF5F6BB746095D3D2 + +Count = 735 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 0001020304050607 +CT = 9832269C2DCA2E941B9D9D033ACD8182DB43DEC284C34A3D79290713398ACBFC0C5AC9FB615C + +Count = 736 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708 +CT = FC31A5AB73A1FC0F64C85EED76FFBB0F49E9C61DD253FF639BAE2417CA9D68CD26F294DFFDA5 + +Count = 737 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 00010203040506070809 +CT = E24285C42C3FBF4F2B3D80E88E005B874C551232B18D899854CB64652770327BD5339C25B19F + +Count = 738 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A +CT = DFDEDD1ACCE937ADFCA6C5C3CE7B91EF5DA6AE6937797E6D1B144B232821CE7836C26EAD8DDF + +Count = 739 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B +CT = 1EA21409F510E02D95E31893C009CCFBCC0CBC1356F19985EEEEF9EC3D72CA539EBA67C7DA6F + +Count = 740 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C +CT = 13522F8B5BBA5F1CB441B851BCD9473C92BA8D9BE5242BEFCE2A94EC51048E31706E6AD29483 + +Count = 741 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C0D +CT = C8BB8C5DEB893FFEC83A8C6E6C9F53F625B7418C36FE8C8E09F6543B0047A24EFACE58088F2C + +Count = 742 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C0D0E +CT = E3122CAE8D644672BE92F55E73AB4902B339FCCD42828976D43332DBE68545C915C3DBE58186 + +Count = 743 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C0D0E0F +CT = D3F9EF07E28A97ECFB2D104C4240F5A8D29E01DAC37EBE13B06387D71A8D2D00375659C5CF56 + +Count = 744 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 6B7F7702DBB4937082FA301F59BFA5A41A70CEE2E5AEE70EB17D30F35EE80EAC89D3F14F973E + +Count = 745 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 92292F301F803274182894050B88A5E0025529B1F3C32C5F2583CA2045920673AE2935FBF249 + +Count = 746 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = C4DDF1D7E7E97C34B53FC35B45DE6184E426D9E1917A973C6345A672E7866467A75CB4ABC211 + +Count = 747 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 7E3CEBE48CD5BF84CA9CD319FACDC19E71776D8D78A28316D77B8F9FA666C4F13BFD460F9219 + +Count = 748 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = 8E3024C9DDAE251FC47EBED04EED22B086D0BB9EAC6673D7D180275E24FCAFFF36005B3DE31D + +Count = 749 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = 1133B8C2248BF411F6E8F5321B87868F3D54C810ACFBBD11A07AA3A72DEF014C9A464F603416 + +Count = 750 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 13AB093B1944F61C8F8EB73433CD2AEE10025D5E6ED5C4D869D08672A607F36D76C35944B38A + +Count = 751 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = 48DEA3A97063BDABA778D311EED5CCFE946C875F8A991D5ABD2E512E94F10C1577E3FC9CCC83 + +Count = 752 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = FD5221142D5382782F88D1767D72971D601004BA70A3C401AA364A8956B20E7279949DC5FBFB + +Count = 753 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = F287050865E8F49AF7ABC227A9643CC9EFCEF36ECED0A162920713A41C5F2CA4D68383DA0D26 + +Count = 754 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = C98C9937BA667C1BCE88222DC115FB50B489EA5E297AEB829E44AC3ED183F8CB22F8C8FD6F0B + +Count = 755 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 08E65C9DE8A42DEC873FE31BE62043DBD75D7B88C51F5EA2B05D6F3EE390AD2F43946E917462 + +Count = 756 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = 070C71AAF4AD80DBA3D2C1A8794B155E180043460FD7FCC0A489A1C871E0420799871C1F2DB8 + +Count = 757 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 0E6E27CAC8F9049A9845351D666658D80C547F85AE15587850DB5C4D0C2F55F6EEF1673E4E7D + +Count = 758 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = 844872FB7C4B1308C440F6A954C3C258C33C25E13A92ABD6810A2F4199CC92773CFCDBBD3B9E + +Count = 759 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 7B01FAA3C371A20C08DE6025CF1F0B798581B0331776AE222B0B007B3EED575A12EE4249E52F + +Count = 760 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = +CT = F20546FC5F3862F784536BE0258518A76766C3FEA448AA29DDE544BFDF2E538A6F4B512F15822A + +Count = 761 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 00 +CT = CB7B36A210FD15574672FE73AABADB6AF6D548DC18AA3AEB6D81A556DFD37DF9055AA316B63F0C + +Count = 762 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 0001 +CT = F63A25FBB6D5213CAAA47CCA36F17FB50F7E5CEE330A9FCF7BA1ADB115CDB308405CD74BDAED5F + +Count = 763 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102 +CT = 2975C505D463BD6F806D1050F92D4AF64AFD53D397703592102D762B5ADF685ED46DB990878FCD + +Count = 764 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 00010203 +CT = 051D24836AF59D34E580964A19629180D2B32C245E0956937E1E737096B7781B020CF890D49495 + +Count = 765 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 0001020304 +CT = FE8D68C295F294DF93A3D1D35623C87DDCC28893EB5A65F84B9B678E9778474C120A01B129C86C + +Count = 766 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405 +CT = FE69A77FA91484DF8B9E1F960FA78B8F7F0ECF3314C711EDD5DC268967C0106C52B6D97CB7E511 + +Count = 767 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 00010203040506 +CT = 4468AF42A92023A9BE0C580798E79DD4B862DD2A11BD01809F8DAE728AD2942C5939A0871DC5D7 + +Count = 768 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 0001020304050607 +CT = 2D9988FA519D835071084AD89FAE9308BAFFDC652A8052E62F170F9D4890469CC68B3A9D2E53B6 + +Count = 769 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708 +CT = D520961508C345354D33695F95582B992BFBA25C61A17847591D771579FB71F7BD0923E06E0A91 + +Count = 770 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 00010203040506070809 +CT = 6EE3242BD9F45F78B496447D41D237E812201A7B2A6BE4074804CC675FA8498C232A31F2271FCC + +Count = 771 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A +CT = 06C54492721688130CEC64FF58132C6314B32B589F2608088987C314730EC6F4EDEF908A0A2F16 + +Count = 772 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B +CT = E8B5CFDB0497DAEDF0C1741E15EDAE65EE7BDE3454C4C5E8B2535F2977032CD21756814B037E05 + +Count = 773 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C +CT = DA5B038693107370C2BA34809DF9FB69B100293BEA88405C28E9CF59D70EC3E894CC8CBAF53BED + +Count = 774 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C0D +CT = 7FD13B0C560EF3CB2AFA2A2A6E60186858C4BC4DFF2BDA9DA757654993A664663C6D18D03D857B + +Count = 775 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C0D0E +CT = B5375CB7E4FEA281E579BCED5A98F6D6201A7C99CD71AF11C12E1717E9426740860FBC0E8A022E + +Count = 776 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C0D0E0F +CT = CE2B614820B032CE9E861546BA029B37E472E06C0C4479D711E6D24F07C4DC678335F07FF33E4D + +Count = 777 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 772E6AE7B38478D40827C144288B6C5BA447C94DEFBB9EF14CAFF132ACDEBC7BE2D361F2D8FD6F + +Count = 778 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 5F33C5A6809000C9B51CA5C8DAB0463BBCBC29C131FB6012D7B3688D351C2B8499D2088409D7C8 + +Count = 779 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = 65B70479103A9EE1D9B80EFB44E52A58C763DB42A3DEBD66F71B42C6E680E6366B1C6ADACD3592 + +Count = 780 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 82083BEEBC77A45A668B8AC73D2AFBCF321C6074EB38163981F10DAD91DFF886EDF94C23D99C5D + +Count = 781 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = 93C81A24D4F70C0840684ECB8B0A9409143446EC2BD9D1433149EB480DA32147FA29A21BE4AF90 + +Count = 782 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = 6A46719F5CAF7B3E0E5233D9D01E2055AF8F571A7BE043C170E3F4C574169718A7602869DF0FDF + +Count = 783 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = A692FDA06FB95D57B67108BE24503780CFD6ACACF13B080A3C39D21589F0DBF5BE786C92625FC8 + +Count = 784 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = 38F92310177523CD0FFCBFB2B90F417D0DB78049CB5BDAA85D8B9712847D3622332E00D81B938C + +Count = 785 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 5323640CF8E5303546B16A98DBC93C24462A4B8C72E9633D759F11CEA6151572DD6967EC46B7C7 + +Count = 786 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = 918C3FDE053F91A53ABA08A7014362E912C8C15A4CA58A7C9810E5CC8548398952F04C7542F21D + +Count = 787 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = DAD64511A817C8211B316AA0DC6EE1811A1434D07B198B99BABBDD80B916D5425A106D574ECC67 + +Count = 788 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = C56E29FD706694334B47E7FB1ACB759C73702713FEF1881CFC09FE8526FE9A2A48DD531C3B121B + +Count = 789 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = 2E1A047F0BCF2C80FF5463E7C7C15A3AD16DAF0093087E2F6C322334FAAC5ECA19AFE263D556C4 + +Count = 790 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 452C24B6D1F23ED0D896A636BEA86D29830D83CD87640B9706C66144CF22279D06062BF9858CB3 + +Count = 791 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = FC93BC579F12095A2AA3459B5EC04A6FA2AE339E3622DFD86DFE5268D01C0FB4FD1554C2595FB0 + +Count = 792 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 6E6C0AFAE083FF981D96681450B30FF8DABDA3723A2E2A09DC8FF50BB544E2900D9FC287B552F4 + +Count = 793 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = +CT = 06DDF6C1C256CDFBC86C6D7F8BD104A24AC1DF158C8109BD52250C352EE5C1954DBAF6BF1B6BBB3B + +Count = 794 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 00 +CT = BBA317D05DF7E8117DFC415211257F332C58D55177146B1A319FC4BA6D5EDA37E45838C1D48A1A3C + +Count = 795 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 0001 +CT = 59DDECD3B2D65A8C6C26B04274E69D7E91AC457AE37D6D2D02F6E8349F50F71D0D5BB618DEF35CB8 + +Count = 796 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102 +CT = 9EA4C9F9D2CA10D380AA63C81C0880A32DBCB82C9D8C7542ED377AB6744495D970D1708319AAED78 + +Count = 797 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 00010203 +CT = 8474901E6B868F86BB1292440CF2B1C4841BBA8E39E322CF62402186D578F7151EF749B1A8C2E0C2 + +Count = 798 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 0001020304 +CT = 895A94210C0FB93F4A5594CE600A423A8157522FBC546D313AE0DFC4EDD60173BE6DC58CE0A9082A + +Count = 799 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405 +CT = 7FE34072FC5BFE860D4500D7D9DA82D661FE5DC3F10FCB2AECFB48E49ECBADFEEADD5C5A12FB5A48 + +Count = 800 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 00010203040506 +CT = 3A4F3FC0FE31340C9C8AA6BF6D981858B8502783C8564FA0B5A947924FEFC9DF0DB59E8580B4C6C3 + +Count = 801 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 0001020304050607 +CT = 95DD37BD13835C96256279D46EA42F77CFBECABD8E9CF281427A61C044E1A0591415EAF803A1A0D4 + +Count = 802 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708 +CT = 60E94CF26D2A79B93222AAB019CA127C25B0EB7D41D4CD27D410D5E8592838BDCAF62F8ACFCD0A91 + +Count = 803 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 00010203040506070809 +CT = C519DAB0B85EFD4C3862BA02B8A5270F38D5AFD5FE2AC8B4A0348D540EA790B21ADEC56E338BDC83 + +Count = 804 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A +CT = 2030CA1D3E318E0C840378B1599DCD9DE80515DB91F1654136CBDC662FF07F524C417D8B370FE234 + +Count = 805 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B +CT = 1A67A160DBC9D165E1EBAA20D6FFE93FDF1C08A12BF5F85E0FF8E7D4B6AD9FEDAB4F5D2F7C4D60DC + +Count = 806 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C +CT = 3DE6741F8963F7A8CF050E802ED1A8F72915B39732BD429DF2CE6FBB15FDC2D488E63E0AD5D0D243 + +Count = 807 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C0D +CT = D457EF025ECA77933D78DCC6423CE07AED617CFA794EFE3BA6B8995540BA5DB51CD59E214F1AC795 + +Count = 808 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C0D0E +CT = 8A25607D464E1F0B6E14AE1E603BD2AD329775AD053CDFE56E3D61E19BDC857F713BC6CD499FD0F8 + +Count = 809 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C0D0E0F +CT = 8F1817BABBB093AF3DC215551F22718ABE1E6A73AA6C21323270DC5655C3C8EF00BF146F142D89CF + +Count = 810 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 0BB8E1F321B98AD80122286A98789EEDF6054DA1C0F25657CF2D93E97F1F4733CCEA940F9DC7F01C + +Count = 811 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = EEFAE789886CC2B7EB9653BB730170757C624D00FA6747754899885C9932C24F65FB3D9D98EF870A + +Count = 812 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = 22039A8822545603056FFA75BA464F86FAE7C057E359C5A8470DF43C00514E2A4EFAB9EAAE289806 + +Count = 813 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 634CD8B431FB6F78D2510CAA1B644D126B5461B7E9CA5B3765F3697B91B4E6307A899697EC211981 + +Count = 814 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = 0E0AFDFF5E5B1538CDC2EEDE984FEDB158D0C591D58FFABCFD0B4335821A8120524A17E5EA582ECD + +Count = 815 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = ACD0AFB7A405BB77C86F5E4A6DD707621B9EA77290F0F5EE10EE16E70660C9D6BCDB0674FB1A1850 + +Count = 816 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = B0A4C71E1F38C276541CB301507F915279BAB1E7B84E7EEFB0BBAD8BF65373DD3F7485CC27C31681 + +Count = 817 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = 71A7E6A49E9264534F22FEF9D6C67B7A3674FC411A8896815AC36090923B51D0740C6E5BE1740EEA + +Count = 818 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = D84CEA9E627CDF8F8EAF91DAA38E2D2A2ABE5C43D5EC431D0909257CC0973A55939C16A13F1D23E1 + +Count = 819 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = E0E63D0272E3B9A44BD6FC1DE00F0D7027ACAB71D5DF32A609E9F1C205D5099066DCC3DB7F88953C + +Count = 820 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 6227D8A2454BD8718AFEECF0B48EEE3C23EA53CE88219098FE923C59E1F67F492AAB511D97AA18FC + +Count = 821 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = D686D18B6184DAE4175D34FE449433EDAEBE266291510580F69B6F927A7FCA6FC068CA0B90926983 + +Count = 822 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = 1929CF898EE6BC20F08E94980515E586A9AFB9884DDF61ACF504F844FD3CC9B72972E57154E8B29C + +Count = 823 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = AE75C1FE069ED2323B5DF3243AD2D22274D2694D11106C1E6A483DF74C842B9C2525A6B22EA8211C + +Count = 824 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = C08C85B780FC1E6DC737341A244BF4E95AC05ED5B86992E1FEDC2A0E1AC59E7D582454073E4D4B49 + +Count = 825 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 258B2C198B4033A2E453529CD53F980E04564D5A25E02B5B9E41D9E09175D8467825A2998A50B759 + +Count = 826 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = +CT = 0AE886F14EFBA5C366C3A081096E40F250D1119C3AD446482002513DEFEE64E35C458C60327E51ADDA + +Count = 827 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 00 +CT = 989CDF54DF5289C091A603ECB5FF1057B0FB27D0C73A92D24D816DD1ECBD742F7B724C49AFDBA4B0C3 + +Count = 828 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 0001 +CT = B1A8C43D6410679A12805177CC5F891F5ABB7F962AADFD7D2536DFCF65EA17076A9C6910EB862B28A4 + +Count = 829 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102 +CT = 24946106F880A1073B1D76D577E8155CBF274A8CBDF36C987C0B015694B8DEABB6F2827F3153AB9577 + +Count = 830 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 00010203 +CT = 423F6B481B21483CB174F904F598E461BABE0A63ABFA6A010CB1BA45912A3F4F06D32C3806E428E4A9 + +Count = 831 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 0001020304 +CT = 12CB51ECDE6D4E0E27166DA1D6305713A0608BD50B0785BAAF8205CBF3D3981C6B862FA1C088346338 + +Count = 832 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405 +CT = 9131CD54AAC92E560738C394E2BC075DCC56861437864E1C88155F36BA2AC6D317C6E0CFD9CEFD888F + +Count = 833 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 00010203040506 +CT = D18B8337ABA7F131B27CA8499C8B357D5627E093CA0E07EF43A126FD8F7B273E6A6CE0C400DFC70502 + +Count = 834 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 0001020304050607 +CT = 5AE5F80AF7088B658C262F6E6617EF383BF13B4FB277DD9BDBDA954492474525F97FC37DF056274D4C + +Count = 835 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708 +CT = 3AEDEC3D86DAE0B481FF60C9BAFDBCCC5A27D426B06F424BFB5281C1D38B0A7C013FA6A2394950181C + +Count = 836 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 00010203040506070809 +CT = 0EA8C9B0E80BC0E4D928A74DB93417F5B3DE1CFE2E7213E1E4D06CAEC44F24AB4E3534CDA68A7518CE + +Count = 837 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A +CT = 92B18A6F0C68EFD7C09B7A52CF29E128CDCC644455D285783A78700EFB0679ABF8495AE45CCF3E8BF1 + +Count = 838 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B +CT = C737CA6C10F022BF286D847F8D0BCDDFC85A1818B93479C95EFEFA7DF99DE30DEC10AD2988D120E8B9 + +Count = 839 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C +CT = 2C8997D705C7798D7534CEF870F89F2DCB7F1A56B7888318A66019EF373ECF12E7C7F7BA19928A8EC9 + +Count = 840 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C0D +CT = A8DEFB524E5A172216B0DE3114069A929415E1A82C22C0398987EF155C7CDABB3A5AD1752BE8CBB56B + +Count = 841 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C0D0E +CT = 36A206B2C8BDB119E39347716B0769A402D540196E2E4FCA5E7DCFD7D94CF5212217A3781E21E2BDF6 + +Count = 842 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C0D0E0F +CT = 0A4F111AFA2745185155FB592D4A96F73A9300120E2FC8E3E57E606E836309810E236DC730E50BF737 + +Count = 843 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = F774E93C178A8BF62EDBECFDFE8923BB82D699C5499D427DFA5111CC309519A3F09ED8705B8828B8E0 + +Count = 844 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 0FF0F1826DBBF1DE9510761E8E45DFA54D1CE89ED96263D1D6606F06646D5775C84D90A0AAF048E744 + +Count = 845 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = F4BA9F0158D2C8333D7B8B7CF09BF39856BFF07358610168C510084B65E300EBE16D087D9FCE6B8879 + +Count = 846 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = BE2C5801A779A3BCC61D684D276425208D89CC50A077E5424B60DF74831FC8A18DEFE94B2879954EF9 + +Count = 847 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = 970F4E3921CCF6C774DF47086AB29AD5939C019C3EA5093002A36DA7EB36916C03B7EE590D8A7384A2 + +Count = 848 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = 39184FD87B277ECB6132FB6CA9345E62A3447BE92E6EBD1D34A8ADDFCBF53287284AFE5E09606C4458 + +Count = 849 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = F979EA9C729184C39333BCBF4FBBE26BB0BC70D67B17590FE843DD91CE3332D6822D5A62349FB520FE + +Count = 850 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = 0EC1E63E5D32A8C9B1BC057C8F4BCF97C037A6C0E7D3DFA3C618F3DC064A8805CB6EB512AAB7533A3C + +Count = 851 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = E2C17380C5F90E53D7A7BEA2A674481D7051191410F5AFA69BA9908C902DE64964C5E32F50CEC5BB0B + +Count = 852 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = ADA9738AEB7426C692EAD4EE4ED8795042A53D0FF32F59958E11AAF027ABF721205776F69F0CD5F87E + +Count = 853 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = FE3FEC0AEB013C810D86EDFB2BDB6BEB5AA88FEEB4009EF1BFC298F2384EF879B92871477ECCC10680 + +Count = 854 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 0BB35ED95DC19A559258311675AB40832E403D4F982C3EA8E24CD9DAAE47653621736FBFCED7BA8CAB + +Count = 855 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = D74177CFA5E79D0E262879EFB920BAC6E575BEB8C4331E556794BC62E01B4FD94F6D1AB36C5E240497 + +Count = 856 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = DCAF4E946021F59B842DB39AD26FDB226E53B660689861E9845A8493B659BCEDDA8D8E996ABD4D959B + +Count = 857 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = 17069B1AC4377B2461383489CC719F29BD481A55085D2065A65027FBBC0C0AAE7FC766D3A7F5EE64B2 + +Count = 858 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = F798273A7DFA98F62784B2F345DFCE6BE843D51CE71480125BF5B37BF08958FC085BC05D82F434C889 + +Count = 859 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = +CT = CD8D165C336A8CDA8AE1598538E6DF9D8264873E26EA7657FD6CCF791E6704AB85C955B97BD075E87DB5 + +Count = 860 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 00 +CT = 3EF903350821D879A66C731015201B110F7D4B39124321C450A220C29AFA7703DA87C459C2967FD5AF4E + +Count = 861 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 0001 +CT = D67FB814FBAAA49D4D6A5ACAB00297C2234C1E8253000D16BC91A00CFA46700BA595B866DB8359A201F9 + +Count = 862 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102 +CT = 2848D8C973313EE41B1A5C65E5F04578C5D44CD95D7C2F4B07A8FA21FC49B1555CEFE128FABB4F82BF0B + +Count = 863 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 00010203 +CT = 8C27B019909DCC4BFECC54C0AF091FEC5FCD02740B078319AD6C3915A7325CED689673E2572322EE86F4 + +Count = 864 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 0001020304 +CT = 9D4FA78533F81348A004269E3AEB87EAFCF7FE1E888F612D969B5E693404091A577E489722C120D6AB21 + +Count = 865 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405 +CT = 9CA84410F08B5571EBAAE8B16867147686A2FF482480977749179BF2464CEFF423ADA0B93A7C3B23ACF1 + +Count = 866 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 00010203040506 +CT = E1A3E34842DDBC2A3CFDF4B7383DA466B8C0E6E67EC771CA3263483B85BC4B6961FC344A249369B00363 + +Count = 867 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 0001020304050607 +CT = B0BF9A231A075412DB69F93311AD678A926B4B24493103A1E78104DA48EA2595D388A1F3F167F5CC33B2 + +Count = 868 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708 +CT = F85F1D8375BF2766D006BDC708A3142CBD4FB7D8F38F567F13410444FBC5ACE67D80052F521C607967AF + +Count = 869 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 00010203040506070809 +CT = 1DA81D2FB6C010EF953BC6EC3143398F5DD5EEB6317CF6D329131BCFA944402B92777CBB6EE450FACD61 + +Count = 870 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A +CT = 18EF9648BFE9FBD8B29D5706F3474546D5585F67AE3312C1593CD9770F3E0B6846641B9E817328578D7F + +Count = 871 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B +CT = A6068F5C60973934DED379D318114294CDCAFCC914CF28DB85F1C5DD8698BF4FC45850D68B8CCD454119 + +Count = 872 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C +CT = 9956ACFB61D4B10F54CDD1135C5464B1CF78E4E62977D142EFEC261A732CDAE520AE60E77F33BFAC1288 + +Count = 873 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C0D +CT = 88CBC40D6F3819BFF5F0B2C9DFBAA37FABEC0AB5CD8DC2DAC1311E51AB2A26506263DE4B601AAE079963 + +Count = 874 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C0D0E +CT = 259BCAEC78253EA3BC22FACBA3F2645B3A97A94F39CCF1A771705C1E8B3D574F43D680022A4239066585 + +Count = 875 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C0D0E0F +CT = 813493B084329E06EE69260EC39803A26C19DC89C4EB3FB2D36DF29E0CE8488D5F49AAD7CBD82BF87998 + +Count = 876 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 26FB2DAD8AE2C7AA5F7A20D42C68283D99A0B2B9C927B2178204B867DBF6A65BD2FC17460966B54FBA6C + +Count = 877 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = FCE65B3DA22523519E079741004AAA64A279C0AAC81C6F8B38DF684C56F85450E3BEC9972A8805D948B2 + +Count = 878 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = D56BFC13F17C20B6CFDF219CAFA2B8E49871AC62E5A7241846CA3549B1024977FE52C37202C46BBB401F + +Count = 879 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = ACF7579E62177D7F7B9C27BC85BA527771521087B9010F8458D14BD69237FFD474A9110C50408224CFEE + +Count = 880 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = 1EF8AE3FDB938837A36004F8A2842EED759B23EDF2E78278BD51E86CA8A350B79E20D56E7A7456309F98 + +Count = 881 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = 4A43599A322FCD8991CC37CD80E42F5B7670E37883E7B13B6807B7AB939CE7E2F1A507C89E9DEC1631F6 + +Count = 882 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = C753367A830C4CF28141B8CE0B4811D851BC00ED727A84A01B578AC93921B59B479BA1B08DF92079F6CD + +Count = 883 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = 7C2F561F89AE40F1F1EABC6490E1A0B0EFF837B28D67F94C7B66E726C305DE320A2643AAA87D2B492713 + +Count = 884 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 4F44FCED5B08294D1CC897843DD44E19DAC84CFF08D3A10C058F344F0E438086AB2D923151836B9917FA + +Count = 885 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = 448354BA65EC78D3AB8144A73E4A716E708D6FBAC28C5383A37136B4C6454EF1A405A49D1AA0880BDC18 + +Count = 886 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = D12A34B232FB3DF5D6DCFD545E7A5DCD3B33BF96FAE09C263405FBFD4E30A219F068B77D1F7F4467A611 + +Count = 887 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = BB798778A2D61940975D4999EAB993FA3C3D957681F4296CFA7A0D204FE58EFF9B7292431293E9C95EEA + +Count = 888 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = 5EFFCE8FF2498B1B5983A667EF5D1B21741E98B5A8F8824029A4FBCE3F2367CCE83A50C22E1A2646B446 + +Count = 889 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 7F41A4B9E3E5361B4C07740A9975E78A96E25A5049C0EF3A88984A5ECB86DAA126865D9B95CB38227867 + +Count = 890 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = C13D8198366CCA4E3CCFF632012FC5C5DD163DAA1D734E0DA54E8C79F1BAF9678BCC430F37BB73C6AC1A + +Count = 891 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 5DC45671FB51A96E396E09CC65894B812B8CBFAA2CD2BF9BADDC48C49647FF0A12332016140EC9A4223A + +Count = 892 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = +CT = 3F4E917FE60C00634ED3E5878B0319F1DCB67EBA962D45A2599A9351AEDE7B1C29C2F230BE0E5FE2442EC9 + +Count = 893 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 00 +CT = 16FBDD61F62734F0D237C432FD653DDB1E6385F81CE1704684D873333C938EA4CA4680462FE0F306F8A760 + +Count = 894 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 0001 +CT = E9D15E11164C8656FBE2A9F3B389A0FCF57C7C761391FD51C5BEC6F103DB576FAD18D914384F260E1FDDBF + +Count = 895 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102 +CT = CFFAF7415285BD3CA494477B0D6DBF4F76AD5AFC5568B258DD5D01E128D218F1B54979DC472BE250FA8502 + +Count = 896 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 00010203 +CT = C86399A2F30C10CABD42CD7FACEB859C73C8D66E9131C821CA741A332CB72BF026BFB4872079CA04564536 + +Count = 897 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 0001020304 +CT = BBC9AF190A4C9DBCA7FCE43998009A7598F27D219C0523265BBBE8984EA1696C1EC0B33AF1DF4E30914949 + +Count = 898 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405 +CT = 2A920B8390F8EC2FFA374DF621720A542F9E59951A3E7890B563B7A1478EED66FC64A6EB29F7275FCA3D9B + +Count = 899 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 00010203040506 +CT = AF6E2DFA2BCD2C705F2C182ED4A9433E1AAA30E98AD31A0A01BBC578F959C270D608AC251BC0FEB62883FE + +Count = 900 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 0001020304050607 +CT = 7F51A2C105D41B2AB8E75855EB01C27FBECF1BD1EF28FE294E2DCDB68116FFBE361C855EEB5D6AD3039E83 + +Count = 901 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708 +CT = 5371F86679AF23494441B7B37794A131F0A74927E93590BEF2AFAE981FB439E80A7DF02593B590B258CFBE + +Count = 902 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 00010203040506070809 +CT = 441AE0867C080EF66DFEFF9D534977F13C727D76018A7682482F1C26CAC4EA544846C7BB50E4CB53AA14BF + +Count = 903 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A +CT = 2198ABA8533DE5A929B8B656154E143218C7B24D631EE8EED2DC9C2BAA9FC146570F39060B1DC2058F736A + +Count = 904 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B +CT = 590C4D8B74AB3CCD6F0004877C3758C6ED2EC54F1F21A0F3F485C3F617C76D05E95AB8AAB67D1BCC8E6477 + +Count = 905 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C +CT = ADF8A54271FEC3C40D980BDEAA9D134075E7646276F12300965C121A4E87DCCF1CB72D263CEE9646AB66B6 + +Count = 906 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C0D +CT = 7C7C2E06952FA9A9DB37712D0FFC9D66E54F640E8884DB52D10DEDDFB3345C16D8471D575464380156E57A + +Count = 907 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C0D0E +CT = C1067C221ACD7FC831A158C3F75E503C55E243CCE0D85DC5D804F013CB137779496C87C060181307A9A472 + +Count = 908 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C0D0E0F +CT = A701BA5B1BBEB19F03B11D75689C146A714276368B40493037693855BC45F8065FE9E45F530009F5F1B837 + +Count = 909 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 98879CA255A433074924B98A1DE56142CD31393B6CB16C550D3F128BF610AB273F2558737C2F4842C02B07 + +Count = 910 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = C4BD098BAAA9F2323A847B8ADEE759E4976B3449FAAE10E18A0AAA0A5DC8CF1CEAD263465A65685EAE31C4 + +Count = 911 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = E1F11DE0552C9BCB55F12605FFD0584B3A33F72A4838FA2D51DF9F94FEA780C873F3EB486736BDCD07C813 + +Count = 912 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = FA35CAFED8CCD075D3A077BB0FC9A6D7220E7BBE9810E473BD145BB553A030FF9FAFFC0F6FE1D79D5772AC + +Count = 913 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = CD12AE6C8C3BE721D9FD2C178DFF2CE4479E3BB01D6464A56427D24584471F86EE4B46B1D5BEFD3E0FCB45 + +Count = 914 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = 6C40F2C29848F66761286C7EFE2F45AD2C85BD2242388A8DBDF01B9F6DBB65418BB896D07E89284522FA3C + +Count = 915 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = D1E66CF8933DF266295A09105E8A4B3EE22C282688C47597F0BA9DAAEED5640EE8F435ED84A7AB345FB36A + +Count = 916 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = 1A9C8C3E262D7C5DF967606089BEB665A00618CA3CD0E9DD3A49770A44E121ACC9B2A86C92888D752E139F + +Count = 917 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 624AAB7E63EF74152607871AC6EBF97C5CB9E614A865B9A96DEC795DD3FEA662C98D86D38DD0441EC5DFE6 + +Count = 918 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = AB142DCCE952CD685BDD41DEDB5D36A17D7904F9C936CC7F6A5A2D8C98B335182ECEA00B45BBC24ED32947 + +Count = 919 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 1E36EB4B3CE575863086E3502E05028D630DA46A8AC6980EB534E51EC53B4CA501EC06ACFD8418F5DEDD8A + +Count = 920 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = DB0D9EE72709798D512B623B8F7EA466D1EF647C1928B216198502F423FA9C7F2CA3C952B9156141C3C57B + +Count = 921 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = 967302BE454D6D121081534C0DF6499212D2C176E8E0CE691C1F186E962F990E6CB5B40C546BE1B9A25648 + +Count = 922 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 01BCC2FCA36E2E07D45CED3CADC4CAE65DEC0C143A73EF5E0FCFE2C67ED2CCDD18A8EF27923AA35EAC3B57 + +Count = 923 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = 5F85BCC6DC75CB1BB5E09B816525DBFFC637FB6B037EABA7EBA1434E2A189B61945301BF6B0DD537333F7B + +Count = 924 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = D5A89187E3C278654405F8EA1D4E713C88D829785C70F4B04D398DA74DC6F21FEEFFA3D218FC28B657A454 + +Count = 925 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = +CT = 3B7C471ED1113868D40798A42C0CDEF5BA40466C2C6081F17E3775C119966F1A64AA197F427EB008E32B17E7 + +Count = 926 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 00 +CT = 31A77758769E1ABD6F21C99F7DC3EEBBB550E1BF7F022FB8A167608722EB35A93F8D442A5E0CEE562DA61628 + +Count = 927 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 0001 +CT = C6D5A8C140CA18CABADC7467788D3EAEA585A3AB35A986F6540FE4FEABD7180115AA384E8426B6CDD245C29C + +Count = 928 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102 +CT = DBE1F1A6689524A606F8C41B30D274B6CDB8C66E6C6BFAB95A75FAB7AAB7DC31DC6C5EEB267D33231B97D1D3 + +Count = 929 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 00010203 +CT = B42DC87D3CE70FC91D5BB8D183FE7A24FEFFE0DBACEBECEAB3AE0F0B6A069CA21B0142C9459CD458E4AEC8AE + +Count = 930 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 0001020304 +CT = BCEAE6B2910ABF03A30175255C7111C357CD6AD09F2BD14792C3DFB5AACB89BDA0E86EAD062ADD7968AD004A + +Count = 931 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405 +CT = C6296E71FF2DD9902EB4F505C08CDE8BD9ED766C618605C91C88B10245BEA5ECA16C5E52B4148F08F20173F4 + +Count = 932 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 00010203040506 +CT = CA3CD8FF10FAF1249E5DBDE5DCA7C5BEE02ED904CDE42B7334C819E353A937C58667C5A1C7A7C6977795A2B9 + +Count = 933 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 0001020304050607 +CT = 9705D62216A72ABC58475D18F5BE79692C98088FC79421967D15CAD06FE8720DFB60341E81550D319DDF6F53 + +Count = 934 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708 +CT = 90A042EC42226184E748ADDCD93778B3CB99DE87436616B2912A2D2947E964FB91E12C11BC987657F41DB9F5 + +Count = 935 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 00010203040506070809 +CT = B80412059211015505D72A18F7016BF6167B6B26C6EB528900145844F874247FD7C1D4E5475978BD8FC72F9E + +Count = 936 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A +CT = 5506984785F1A29BA184E60E9B6C36785F631C7D3E3A1BC21459876AFF2F595F363A128B607A9992B7F501A6 + +Count = 937 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B +CT = CD40D58ECE1AD2130ED09302D335577DA23E24A0ECFF4636B8C30573F19DE53C48DBD7FABA98BCAFF5EF6F29 + +Count = 938 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C +CT = 49F260821DE6CA6789F59DBBD3861BAAB4BA10554F81B9954C96B7EF1AD7D71BE25A131D91649383382EA00C + +Count = 939 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C0D +CT = A6A3D27345F96BC412966EFF699029B1B61C83F0FD6BD9ED73155D9289B4C3E4FC5E6FBF1FF2321E85E1438F + +Count = 940 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C0D0E +CT = 9FC8546C52B8BAA2E3CB11B8C3A13AAC9FCCB9C31D31576D7260EA8C215002DD00B0DDC20395F7E09448B587 + +Count = 941 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C0D0E0F +CT = A9F36A892FAF4F0105D82AB9EC42EFE976005412205F8B36E60939AE1580AEAC3CE29CFF19D11055354CE6B4 + +Count = 942 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C0D0E0F10 +CT = AECAF1C811FE0B813C26A689FDB731009E118312FC759DA7A1EE3B1FA9FADE9809C973E8B3669EE2ED66B1DA + +Count = 943 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 731B5CEAAEBB7D181BD03A1F7F151C7C2EDE82B350CD17E18D5EFE68A2D159C1111307A05696E32F9916C3A4 + +Count = 944 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = 5EEA5E356FA4A7F893BDA4D2811505F89EE3D0FEFFA6BF031D666F533ABE640E4BBF16D202C17A2EEE4A32C3 + +Count = 945 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = F0A6D5950ADD60A937646BE3E4265C4899D8841787AA33B5F18A7AF8951555C3D72A83E67B2A4BE1FC9C6E54 + +Count = 946 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = F77E732E38417185D786943E6DBCB9782285996B333491F068C8363411CA9CD1B4F029466474A536DD9BF8C6 + +Count = 947 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = 834B7AC0EA5A55BF41E56020B15059B086D63EA89131BC19C2B7A2FDAAF383A702D616008116A2CA4EC7B8B3 + +Count = 948 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 9FB530D0658F0B52C01D0BFD7532493C74A0585408864D3F8A346EB262E5C0BD4975FF0BC54F63A66471DC0B + +Count = 949 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = E1682CB058E5A6D4EAC77EB98C8BD1833F6BBF7DCFA500390E873880AEE99A5B5582291EE7FC7B3289D10F56 + +Count = 950 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 7A41FE17C46147071BD8D76EFE6DC816E5685FC68908CE4F6B15CAED64C153DB8B8880A49868A603BB4397FC + +Count = 951 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = EF00DD1D5E35B05994FAAFA5552568E16B6C41087AEBACACCBEDA461C2C7B619CDDE8DDCA24BD95C7565BEED + +Count = 952 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 4B152EA862A71E3622777D256D65228875820D12DD821BF7AAC73BBDB9A36C8BDB52EDF5F975F68C987F3969 + +Count = 953 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 62884357B4278B51070EAB79C2F578B3A8DEAE498B6185D9F246A17A148F0739107046BF84D019A505283071 + +Count = 954 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = 4319E93C1360B66B6F9FECEACC03F3A36B6F1D2E680AB1687680C39E1B4109F0B51DFDF80407467BF764FAB8 + +Count = 955 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 1CD8DE2E2C17C767F2892CB0BFC4C521862F82119D51019E2518F3495B1AA4F0DE5778AB757DD55996F4272F + +Count = 956 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = CDAC4F8B28F40C3C3C260332306A1E5BD0B91ADFD228029EE388A8F77DE42C25E94ADADCFD5C66294C285D71 + +Count = 957 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 95B812FD1447DE7CD07B016C2FD238C5F744DAFC6DE89B535880FE1D82FBFAA801578B98EC2E84108688ACFD + +Count = 958 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = +CT = ABE67F59D1343F4DF90089B9046E5CCB37B997A4574987E0DC9EB9588CC297DE47E94187E690F137B681B6D4AB + +Count = 959 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 00 +CT = 02BCE0A645ECFC99C8BDB87B8DB2818905E80C2BA2319E4736034EE86C48A1D1DF071253DE1DC2BB3A484D20A3 + +Count = 960 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 0001 +CT = 917E8E497499965702E8CD2D8BBC2BDABB7677FAA88987E85049BBF9E77C49A6DE5959A0998D10AD9D8EA2A3FA + +Count = 961 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102 +CT = C0F37433B96C8636B65DBD025816B76F50904EB09505CC0F57EE72810DA93B6ADF1DD6AD71E185A9CE83E9B5B4 + +Count = 962 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 00010203 +CT = 3C8E6B499B81DDF01552B570A244ACC14D635E14B5B4FD1B55D1ACB9B64C8BD5C7AA47C9B7DA5F07A8F6E2FB17 + +Count = 963 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 0001020304 +CT = 6E52EB94B2BBE0C9291AC579599B641E744894A6924EA2E3CAFDB46A3C4D1E915F50F6C0D862A334103E7D1221 + +Count = 964 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405 +CT = 2B7F5EAE4C36B192A08050190B987765A2F0FB1FAC037E3ECDD3AB72AEC10C83062EBA1D85540ACD64E7B4ED6F + +Count = 965 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 00010203040506 +CT = 5FB3AC7BD67A227FB34E1F283AB727882CAD766E32B43A1FBDF9B123322DE6240C3294308635D95891788DC578 + +Count = 966 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 0001020304050607 +CT = 5D086B6BFDD7420353C1C29A0D6D142A0A39985F73E0AF43FA1D5D435967DFEC026697E9C4B309B8A2D8036E68 + +Count = 967 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708 +CT = 68394EAF77477CC2D91578AA5B59DC5E1D0BB492E2D5731EE803432E785D587B42D0720C2F9C83D1B0758A7ED2 + +Count = 968 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 00010203040506070809 +CT = 5104A6B4888377E7CB1E7206F742FF8815C942CDAF65B4352CF9EBEE3D3D6719B2A7507ACED32B2D4107C40537 + +Count = 969 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A +CT = 4E7D9E49284B70EDA9AE5F80B9D2B07716AB619F389399A668F8ABE720AF07D71DD9DE88744818B663104FA58A + +Count = 970 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B +CT = BB7F56CD3067FC4B537F5631D61E082ADC7210BCB1EB349634D4464EEDFD3FAA761890A5657DC34CDED854D4B7 + +Count = 971 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C +CT = 36E7DAE3B7E31D8A3D1931089B455FD63FDBD5E74EE128FF0E51ED34863EE4CE0D1BB538E4524C2ACA7FBD4B5E + +Count = 972 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C0D +CT = 1EB7B51E4EA85965D085A4B7301C2DACE7E2A4B4DCA14199FC530BF4AAF57398400FC5EAF740175E576063007D + +Count = 973 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C0D0E +CT = C2C1C152091C6352929B31831B19F3AE25939DBE320589876C1E240280C346FA347DA71A47A60EBA8524BED936 + +Count = 974 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C0D0E0F +CT = 1D4F57008C85D875C3F7C7BA832957652932313FD8FD2AB6AC921842ED1BF85CB0D2D33A0DAE8674F4D042DDD5 + +Count = 975 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 24D17A4515CE447BDFCE95B9AB297FC0C4BEEA75FE2BD7E4F9337D2824E68E93241B3C8B44C060D98EA257156B + +Count = 976 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 1B438B1515F252D09B9260367DEDBE4302FCA4B95D0E905DEF4DE9E0F447C4E60456DD509D78C71C0850A03207 + +Count = 977 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = 99393216CB8006F762ABEE93A1AEDF31BDAB5755F616410290F2D18E2043C50DE348218562349FB0162CCC17C2 + +Count = 978 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 01BAB3A0B9BCC0D4391BABD662CB00B3B8CF9DB4E0F208389D1C5B389355C1C07039FCF29F2C7DC03D43CDCC8F + +Count = 979 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = 32079A24DA821DEC5668D33AE152CE4C0BE7E7100D61011477BB0323DFC279A184A32B86F84774A066515FE0E4 + +Count = 980 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = F8B8753D7418962AA44C3D746D4B56C68F19D3DA9AC8F581282B7323F5E1E9BB096B4469F3248938D3DA87FF06 + +Count = 981 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = C36CBACA72F486B579A7894927C6AC269B018BA127FB3329E7E2D9373015E50680016C11EC45F3D4A6EC191D45 + +Count = 982 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = EDB280D3E3A5AB0F4A52DF0FDB3DAC25C12495410C0252C7AC6F43C906ECB6BAC6CFC1A11AB85C32412CC20310 + +Count = 983 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = EE29DEB13056AFD449AD1E470ECCD614968D3C7920468EE5367739DB3015616DD12227F7B076F5737E6FDBEE46 + +Count = 984 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = 636F1D69CBF6AD880D826873526F7E51362821AEE1B0C1637E424A63E53606E3B80E48B1E8AF69FE4DEE0BE3EA + +Count = 985 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = D29182D978ECAFFB10EB2B1B803E96A8553D395D6B8D23A8623BAB71074A803607888E263286D31B047BB6EEF3 + +Count = 986 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = FDCC21ECE528917CA48EF01249154327582D8784AE94A65604757BFA1A6D3C85EF96B04AA97613CDC27285DFA5 + +Count = 987 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = 328D76A1A94355BF212867C4A551E7B56E945545DB5B9F11FA97482A7A8C66AE3F34E5DA115CE14287327DDB17 + +Count = 988 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 878A91514C2209CF3594D617B928790DAE92C7E88E96A5C537E6B97790516821FF096910D52635051EEBDD1CF0 + +Count = 989 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = E1646201F9EBCCD5EB89409350302C84D89378EBE913525E3260668D8F05B4FEFA6E21BD4AC9ECB7074F1E32C6 + +Count = 990 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 8E4A2B76BC6864D00746249C2513DE78524612AE9BA618EEBB06BB836AC2DBE453958C4368FDF16577DEBE16A7 + +Count = 991 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = +CT = 8512E744DA43C460401B6AD55B2CFC10B623A9F18C091E1545F6DC4800B4AD02569DE85BBFA99748886733280A03 + +Count = 992 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 00 +CT = 709FF930654586ABECA72CA683C4D8B39799A1892090B5B36897B4123631A42C21B40DD1A6FD84F514103AF1CC11 + +Count = 993 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 0001 +CT = 8B145690450B9C577D4930E678C3E1D95B621A88F4A9C5417D83057499CA74F2EA1E6AB11183FCD52A8496C8E3FD + +Count = 994 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102 +CT = FC2A67563982AAA28C4281DF436F833A6D09B60996942CADFBF028E839DC0EABE7FE70718DA1F2A5A414F0B11A2F + +Count = 995 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 00010203 +CT = 00FA428C0645528E8D6695343E0F2A05EBDF7B756EAD334D4804D1E5C7DD40E39656B05B16D400358C508F97CD98 + +Count = 996 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 0001020304 +CT = 45B926732DC82A8DFF53936608AF53CCCD5D783A4D70303F30F7E8B2CFCB6F5EA34B8F8B739EBC3E35F72425CF84 + +Count = 997 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405 +CT = C212720A1C06FB0D5815F1CACEBC664824CEE0EBF9E68529FFB9DD9EADBFDCF53FF995E1613FF265D25470783BD8 + +Count = 998 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 00010203040506 +CT = 20BCE1D78DD9D8B5DFD0C222BEE2BEA64A1FDDA6FAD416DA49C9FCC7BE7DBF6BC416B500888A4B86A07E12C5655A + +Count = 999 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 0001020304050607 +CT = 37EDA73BBD6D857BD0BF08ABDF11B854FFE70F4A46E08550FEE7F47689DC84FEB3FA4964E98787106E57D77C08DF + +Count = 1000 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708 +CT = 04115FAE61C8197D9C2A40D42A45FA32A7BF59EF2B264209D03228A016E87F19DC463CD557483E5BC5FE320CBBD4 + +Count = 1001 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 00010203040506070809 +CT = 27E4144F3E9D79E2D17CF9012FAE25AE079798F5313C03742A84C9FE363800CB834934910A97F2071D8BF3E07557 + +Count = 1002 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A +CT = 37D28F328EDAC22D99B5625FC6C36CB16A941B318B9C33FF29C62722B5A787BC754E3DF55C782EE13CF4044BB3C1 + +Count = 1003 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B +CT = E5BA2067755C5922B1A08D141F0BC3EA05B36E4DA1543690324E3E4B3406D09C9CA6334E865F884B28E046FEEE00 + +Count = 1004 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C +CT = 5FE1A97EFB52C999F1F477D4AAC4FFC7CE2927EF0C1EC2AA0C827C3BCB7AF5712BEF9FDF936B9EE148D722148B0C + +Count = 1005 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C0D +CT = 70CBBA0CC718C9AA9D2D1917974388A9E29E35DA866C47036D99AAF3FA138F5A77BE683AE7EEB2179F3247D74C0D + +Count = 1006 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C0D0E +CT = F5DE344F005CDA5280942A502C9F3CBA202056700D1C87C4249CAA0CCC2681500431FD366845F203BA554909FE46 + +Count = 1007 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C0D0E0F +CT = E03B7019A79FCFE9C1094DEE927294D5C3E298D395EC3F5CD5B73DA0911167D69C6E9F7E779DBD2A93A28E03D159 + +Count = 1008 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 9AE6D76F64C22DDA56F576CE6722998F76974CC1E0FF507746763DF03340166FEA1C093A5C0B91F0C6E783E65531 + +Count = 1009 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = B5ECBD6C2D3490012FB27F59A5643C10BBC6F0B30E4D27280A6DAEFB04D38FFBBAC29856B3C9F67C257653244BAF + +Count = 1010 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = 51749744DE84F6DA3B4F7F272D95B31B36C2AC97523D08A1C6BB0BBDBB00E41B521878BFE90FD837A08EB262BFC9 + +Count = 1011 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = C9BD345CBE254E85DC5E07FAC4853D3974BEB59BDB27177B4C80C9DAEABDBED43105522B5C1A7067A4EFB57EEC68 + +Count = 1012 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = 74D99F75C242DAB5A4ACAB2FA85A247667FA8679C96386D9110E1FAD2022D61647719AD59B03BB1DE9BCE4C0DE9C + +Count = 1013 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = E66C1EDF99DD781B3D758F0804E5CFD956E04E128B943653106D3946BBF60DF96314BC76D2DC6C55B5EB02177773 + +Count = 1014 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 746E27FF25D342BA34D128A23EBC7D4383D4F241441CD2905C63DADACFB29EB700CAFA9CB3E8F090C7631E58A764 + +Count = 1015 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = A50A548E25E69E957FFFD41D354B6C7F9F4C7E5CE5BA3F821540F50FFC0236254CA7EDDF8A4D8CFE8691E415750B + +Count = 1016 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 4CF575B21955F7ECDD3B7E1DCB8DA3EBA5EDF22208BE829B2050FCD57D8F5E19BD030DDAF043FAF3FF986B341C42 + +Count = 1017 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = AD38FAFDA5EFC0EE25B39E5FE684AE528BAE02CF4D8743A09858BBE7CF27D26D5F7A75561BDF53A7A29FA004C845 + +Count = 1018 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 863D9268E12EAA71DBC2E6AD1374D87A489176CE034429C99A58F47F1E84EA75FB586EFC612EFD147EFD767F6BD8 + +Count = 1019 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 4F5E3A759DD4F8F8AC1A84BC8402A8124E5096F79DD7D2820BF7F1F5A65175E2AA06CBCD9A5CDEE4A283025B6641 + +Count = 1020 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = B05566C3EB26B52B86AB7D150F66CD9E81477CB9E1B2AB3455DA94AEB37A422B957FF06B6DEF954D68F8109F5CD2 + +Count = 1021 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 34BC47B2309F615FD351F32AA86371930D5D6DC12599E441442279E024CB4EACACFAB9C6DE9C9A2966BE9E76F048 + +Count = 1022 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = 42851ACE43D49B23EA11A945F6FB32C21AA8072AE96EA9C54B7D12CA35B3C5C2FAA5BEBECB0976442106F162595F + +Count = 1023 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 81FC35D9FF60C3A9AF2AFC1A901CF27FBAAA2FA6C13FD6F64C83D357AA396C9D5AEF95ED089E1A042938DA6B0810 + +Count = 1024 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = +CT = 153BED1C06B6349D1277FFE7BD64D9C0D4E79AA07382E47D3007B1B4334489A5772692E4934DA9228BABE067C27227 + +Count = 1025 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 00 +CT = EA59E5CCA20CD09949EA3F9A90907E2245B8CFB453FF85571A40C901A97CB25A51A413A2081665D63DFC0970021DA6 + +Count = 1026 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 0001 +CT = A37E9E4CF3832B62738A26815179B70A3CC35897D3342E5EF46E598DB7128985BA262DFEB62DF4A5E2C44F451BC63A + +Count = 1027 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102 +CT = 4BC7F5F4259B88A9B9A79F349E3388C8209DFA7522B6BD8B778CBED95C75921821437C5ECA7A66FCF03AD31784057E + +Count = 1028 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 00010203 +CT = A828BF292AC722F5880E6BE98EA636333B6754943D2BEA2DF940CF925DFE98EC8206B261424D09B9E06ECCD869F739 + +Count = 1029 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 0001020304 +CT = 911A6EFEF96BC8826B4E56D487BD16FF9484AC417ACBA2B36A1717367CA6EAC9314E8FA0017D0A60E762ECF6926E18 + +Count = 1030 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405 +CT = ADD0AF191BED7C35FD85755B58F871676C9B6818B7FB5D3366EBBE70EBC332871FAEB3C6311D03D97DA8800AC3E31C + +Count = 1031 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 00010203040506 +CT = BE2F283566022D6FA9130063748189B46A39B7E8A9854017C8AEFB87BFDDF5082BD266348B56B29854417D2DDBE824 + +Count = 1032 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 0001020304050607 +CT = 9E2981695CAFAEF5B4614DDE90BB0B4D23929E4F3D61F93F7BEC52CED40B230E736CCECDA6B2C7F9177182B231D64B + +Count = 1033 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708 +CT = 20BEF2A9F3E89EBBF4E86B964DB946EAA50E0F3DF58722EE8561C33BA074FB3A55619D089C733A84A332DEF5FC88B1 + +Count = 1034 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 00010203040506070809 +CT = EA049D88084A63EBEDBCFD2FF5614EBCA259A7A4871CBDA0E2BAE6FC5FF791709221A0725C33E2597AB27C258FACB8 + +Count = 1035 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A +CT = 7F394A475F79D92CE6D843500B7E58D03FD61650A54B05C7613DD01ED5DF615D149E00F187F3121C55600CC7B6AD76 + +Count = 1036 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B +CT = 976CE421D4A63CF19633DDB11429ADF983C5FD19F26ECAA767C8018027887C651958C0412C07D24A30BD266F706403 + +Count = 1037 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C +CT = 53CBB7A3D31710294C2344612EFCA80DF94B4F684AE75627439E16CA8FB7BB2EE688061EF2986521922B5E208DA10B + +Count = 1038 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C0D +CT = 4C5D090D6A411761447F66F2C76F44682C3A943DCD87E538D62971BE9DA9CD2C642021227A808D7ECF31B1573A5655 + +Count = 1039 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C0D0E +CT = 4B11516E933EE1676E692909B9FBE4B59BA60C85E859895777F3DC2DC44754D5EF1ADEA430A6CF661126AE2E87992E + +Count = 1040 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C0D0E0F +CT = E09ECC66AE09CFD60C6525796FAB160C4E52924E4C893953F1B25EF05146F21B892FEC7FE07713EC9E9C0E9D7037F2 + +Count = 1041 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 50DC667B5532ACDF4A0503BCD626792C719A09E95641F9AFAAEDC2C69988EF42755E6BA6A6155AEE4B2E5D4BDDBF2C + +Count = 1042 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 597C64A50A84DF2224CB14DED431EE86D04E7CED37A482C9E0D1DCECAD0D956106ADB74AC0BA0EF27E121598321DFF + +Count = 1043 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = 237FB3640786CC3980DAB177CF432A0965402D2A702006166C957B09619F3B122E2718441EE47EE5E702BDC0486EE6 + +Count = 1044 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 9FC8E2DFBFEAF392ADC1721637DB9D4B8AC250892AEEF18195B6F050A5462FCC955480DA75795CF36E54DDBB437EB8 + +Count = 1045 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = 68C479F2D3B6E4B55E5546E1D0384CC56F4BB5E6DAAB675F82EA6799101C7B50EFCF889456A9FF8F223397D9F5AA87 + +Count = 1046 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = FF85762EE4015292F2AFBC180653CA328F7B48E6642C0154CB9C91F6FF8B42B306CF42E30FD3AFE819DA916ACB5BC2 + +Count = 1047 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 495F73ECABB6379D0DF3C2EA1872F996B6BF48856451105ABB7D8F15A2F46A90AE3ACC0504483139FD871AFE3AF2FF + +Count = 1048 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = CD82714C41267A8EC1F38E32163743704C170CFC70EBF28F6AB1B6085C4F874A1E9C5B4AAC0AE52903324188DC1E91 + +Count = 1049 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 5BD9F9E46F31B5710E9CAD9B4FCB700A79CA6CC9E3485606B424173783236B0774524BAD627510103BD121372FF06E + +Count = 1050 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = EA4F800E850471D8FEFE91E80D8F8F12DEB7EC8B6ED4F7934495DA7D70ECB06E744835CB42FF64B7C27D3748A2C6ED + +Count = 1051 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 9F342EC8A473151F9AAE44C2E9C837A036817091CF9CBF0261DE54328098FD26CCC85138D9CA1F2CCF2EB07FC6E6B7 + +Count = 1052 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = E87115C629EB550C5386B0B7C9C7A0D23A9D2D5E290392116F1B46A547A01C84AFC8ECA646B9C0B287AA97C4C671B8 + +Count = 1053 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = 3D20B05FE53BA142E5D4B309151FC0E7E356A4C821FF0AAD9E69C3F6BC7C07BCBE817F0059B572C848DC05DF67F77D + +Count = 1054 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 6996F78CE412A88B4ECC56BAF9679FD4F06FB4866BEEFB04353BC399866B61A10520B706BB036D5921E2790B130E5D + +Count = 1055 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = 2679D780DB4A7FA562B8D1CA824B66AD3ED8902B2C1EC7997A5E433C34B99E3B088FE2FE3FCD54FA0BAF649208ED2C + +Count = 1056 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 1B76DA52919A34BAD0F2C869393C29D9000F47C27C306DB72893A05F11BC66D1FA50588BCE980A1968C45F7625352D + +Count = 1057 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = +CT = 2BBC24BFDC19E600FAEEF125D57E22FC2F7A534E184B1F33E277706539FC57B69C2A1A2FB07CF3BF6BAF5A3F33A427C8 + +Count = 1058 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 00 +CT = 9A1755FBD3E79F16D2F3D3F4019928C18BA5DECEE2603020B153846056755C92FF7EA76BD8E32989FFDAE98161F10979 + +Count = 1059 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 0001 +CT = 4D98C92E79CD85FC4F32DB7F6B26B80410BE15D2D2563A27D422E7C37D4AC1E0F296C3651DF8D1745413C2921B960AE9 + +Count = 1060 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102 +CT = EE1581A711FDB731A2F9A2132D4763744AC17FE8572E3CC6F11598937033F69D66F5D31736C92AEEF0BAA39AED9F52C2 + +Count = 1061 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 00010203 +CT = B5C3192435083231BC336DBE111D09F009E9A0C8431EF1405405B2CE1EEB4489291945D0475C208797DA8B2B3C7BC1CF + +Count = 1062 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 0001020304 +CT = 9A3094C681036EBC3C783D5100C63343B46B9BD778771215E5F285E56E6A49DD64B2EA5D33B80FB2EE9D4BAEE5869DBA + +Count = 1063 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405 +CT = 8CF8D88C6E60D0FBAB6F7DFB99F15545E63C2B0B7859D55781FB332939BD750D655919859EC9957F5C0B65A5BA982855 + +Count = 1064 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 00010203040506 +CT = 55624E07DC74DA221A1FF594C692397D72F7B12A0A8A81CD6B9FD6F21CF968797CCB3DED74EED7BB2D5EA3E5D15AAA7D + +Count = 1065 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 0001020304050607 +CT = AC0600B25FB1B313FF4B8280D928ABDF66E1DE13C65DAD373DD8667B35A2BAB7D8EE01A1FE8637D3D09E07F9152AA2EF + +Count = 1066 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708 +CT = A1F1D58DED0B274EAC0C7A0D6C79B7DD89B4EECBBD844F08077A0E48B957867DDA0093D805B7AAA8C807AAD669F8F32C + +Count = 1067 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 00010203040506070809 +CT = FC1571FBD603A31CFD8B5EDA26A1911BC3E9D2A4B73D4823D058DE88F2C5CE6A019212387CA5221CF5244DA2423410FB + +Count = 1068 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A +CT = CF1B310CE6A6E4A300D4EBF8A229C07EF69F8473F6D56C52244C1EC3712EFBC140B1976FFB933BDEB5958B6E7452DABC + +Count = 1069 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B +CT = D2146062CB4D45FFD347E0FB51860899EDBC5B1E564F8146696D8A638AFEC6BCFF120083087693BCDD219264C6C03444 + +Count = 1070 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C +CT = 8D4BC02EF441E357F3A582076E80EC18AD03A34EB61D63713C0A3F62839F7FA2DC3D69C7341921FC964D5B1FF94CA2C6 + +Count = 1071 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C0D +CT = DAA8812F4AD115FD1EE02C04BC2A97D26E028D81F7E35EBFFEDFA1C5A19D87F9D1910FE8CA28809AC9ECC9947B88C1E3 + +Count = 1072 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C0D0E +CT = 27D3630BF7CF649326E71F50CFD7B6171D60BA82C942495E21FB3CE564E0E8C5CCEBF6024E5771C9A4E8FFFE59064415 + +Count = 1073 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C0D0E0F +CT = 104F7091EBF05D514F39787A0E976F1594DC9BA95A5B7079428750F57EC29D513721C0E286C8CDF9D3D0FB15FDC1F332 + +Count = 1074 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 9899689EAA14A5B0D7C8191D973D27E65530B3054FAF3EFBAE3EB06A0D47747415443496A82E8EA0A4C4091F4588157B + +Count = 1075 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = BDE0C78A7E860C1CB6AE4811E8C9167004A728A8430CE3B0C5FB00C3F367F73DC4A5CD4F90C59161B157EA5645D48A4B + +Count = 1076 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = F2131F3CEFFE009B86FABB498121E59A0609E9AC4045905F9FDDB0C614689CE458FF1CCA15AFC60A8FE266AC47A400B4 + +Count = 1077 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 8E55AD2E4BF0083905D339F79649461E008CCECE14034005E305F6F37FC7FB3069AA5B7894B6F40014195CDE57D740A0 + +Count = 1078 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = E3643536DA55BBB014C57F8D3852702D1E157EE36C5E91011E7520354C3855734D5D58237E127C912210526E903A2DD5 + +Count = 1079 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = A7931EDA441E5C8432C96AD907824763D48AAA6784271D1313449DD6DED4512C9042EB8BA2C699DEED680F6BA65473C6 + +Count = 1080 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 7D6DE76A4C54792997F8BF2A8BC12E12A22129298D5E9248F9DE572C0711CAA6940514B2E92B3E7028D787DE29C85703 + +Count = 1081 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = E2216387A9DC367522E7D35B7527AF3A68C43AD69328F6361B6C2CECC2154ACDA77431CE9CDCD026D043F07D5142B06E + +Count = 1082 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = C6EAF51ED6E9C09F7698A4F8B07A9871C173BB3B6230639E2975EC1BC2D0A54053E6ECF9493910AF37EA985DFB586FB4 + +Count = 1083 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = 2C1CC49E0F99F1E4B49AD4969AD04F19D03060DD0FC81611A78B45B40841F59CCD09AB9AED4B8DFF5BE02F31CE811365 + +Count = 1084 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 0E38192F718CCACBC1B1A840B49BB0837211A33A9507459CFDF554C720EAE62A05DFCCE364B5343CD6E7FF42AA4C2F29 + +Count = 1085 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 7BBF1E556DEA24063D28D290C8B418F1EBDE24397E2264B6B3DBCA876FF8A3DF394818903C5E93A53DA18F4B829C276E + +Count = 1086 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = CDD99ACE4050E2C3EE61999C7590C6F7FB862D7821A10F74A9B1D31424C4A8C8186822BE9FE954607AFF6172170F6B60 + +Count = 1087 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 33CF5E21B86123513D4A442A3713685042CA509A934371AFE4964C5B6A9755EA65B8532E813FEB0DCF9FB2C8DD468953 + +Count = 1088 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = CC730C21BF523DC7CA252E8E581730CC92311F538F9C6795073D69A60B79055C3DC1A916701A612BAC48790F0AC98223 + +Count = 1089 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 91088A8AC46766AA94B94DA53C1BEA09E414BA2B8D8E38414119F1C1E2B07C75CCFE0E9C2C4DB9FDFDE0B189648D5DA4 + diff --git a/romulus/Implementations/crypto_aead/romulusm3/ref/api.h b/romulus/Implementations/crypto_aead/romulusm3/ref/api.h new file mode 100644 index 0000000..969c338 --- /dev/null +++ b/romulus/Implementations/crypto_aead/romulusm3/ref/api.h @@ -0,0 +1,5 @@ +#define CRYPTO_KEYBYTES 16 +#define CRYPTO_NSECBYTES 0 +#define CRYPTO_NPUBBYTES 12 +#define CRYPTO_ABYTES 16 +#define CRYPTO_NOOVERLAP 1 diff --git a/romulus/Implementations/crypto_aead/romulusm3/ref/encrypt.c b/romulus/Implementations/crypto_aead/romulusm3/ref/encrypt.c new file mode 100644 index 0000000..c0c5649 --- /dev/null +++ b/romulus/Implementations/crypto_aead/romulusm3/ref/encrypt.c @@ -0,0 +1,707 @@ +/* + * Date: 29 November 2018 + * Contact: Thomas Peyrin - thomas.peyrin@gmail.com + * Mustafa Khairallah - mustafam001@e.ntu.edu.sg + */ + +#include "crypto_aead.h" +#include "api.h" +#include "variant.h" +#include "skinny.h" +#include +#include + +/*void display_vector (const unsigned char* x, int lenx) { + int i; + + for (i = 0; i < lenx; i++) { + //printf("%02x",x[i]); + } + //printf("\n"); + + }*/ + + +void pad (const unsigned char* m, unsigned char* mp, int l, int len8) { + int i; + + for (i = 0; i < l; i++) { + if (i < len8) { + mp[i] = m[i]; + } + else if (i == l - 1) { + mp[i] = (len8 & 0x0f); + } + else { + mp[i] = 0x00; + } + } + +} + +void g8A (unsigned char* s, unsigned char* c) { + int i; + + for (i = 0; i < 16; i++) { + c[i] = (s[i] >> 1) ^ (s[i] & 0x80) ^ ((s[i] & 0x01) << 7); + } + +} + +void rho_ad (const unsigned char* m, + unsigned char* s, + int len8, + int ver) { + int i; + unsigned char mp [16]; + + //printf("rho in m = ");display_vector(m,len8); + pad(m,mp,ver,len8); + //printf("rho in mp = ");display_vector(mp,16); + //printf("rho in s = ");display_vector(s,16); + for (i = 0; i < ver; i++) { + s[i] = s[i] ^ mp[i]; + } + //printf("rho out s = ");display_vector(s,16); + +} + +void rho (const unsigned char* m, + unsigned char* c, + unsigned char* s, + int len8, + int ver) { + int i; + unsigned char mp [16]; + + //printf("rho in m = ");display_vector(m,len8); + pad(m,mp,ver,len8); + //printf("rho in mp = ");display_vector(mp,16); + //printf("rho in s = ");display_vector(s,16); + + g8A(s,c); + for (i = 0; i < ver; i++) { + s[i] = s[i] ^ mp[i]; + if (i < len8) { + c[i] = c[i] ^ mp[i]; + } + else { + c[i] = 0; + } + } + //printf("rho out s = ");display_vector(s,16); + //printf("rho out c = ");display_vector(c,16); + +} + +void irho (unsigned char* m, + const unsigned char* c, + unsigned char* s, + int len8, + int ver) { + int i; + unsigned char cp [16]; + + //printf("irho in c = ");display_vector(c,len8); + pad(c,cp,ver,len8); + //printf("irho in cp = ");display_vector(cp,16); + //printf("irho in s = ");display_vector(s,16); + + g8A(s,m); + for (i = 0; i < ver; i++) { + if (i < len8) { + s[i] = s[i] ^ cp[i] ^ m[i]; + } + else { + s[i] = s[i] ^ cp[i]; + } + if (i < len8) { + m[i] = m[i] ^ cp[i]; + } + else { + m[i] = 0; + } + } + //printf("irho out s = ");display_vector(s,16); + //printf("irho out m = ");display_vector(c,16); + +} + + +void reset_lfsr_gf24 (unsigned char* CNT) { + CNT[0] = 0x01; + CNT[1] = 0x00; + CNT[2] = 0x00; +} + +void lfsr_gf24 (unsigned char* CNT) { + unsigned char fb0; + + fb0 = CNT[2] >> 7; + + CNT[2] = (CNT[2] << 1) | (CNT[1] >> 7); + CNT[1] = (CNT[1] << 1) | (CNT[0] >> 7); + if (fb0 == 1) { + CNT[0] = (CNT[0] << 1) ^ 0x1b; + } + else { + CNT[0] = (CNT[0] << 1); + } +} + +void compose_tweakey (unsigned char* KT, + const unsigned char* K, + unsigned char* T, + unsigned char* CNT, + unsigned char D, + int t) { + + int i; + + for (i = 0; i < 3; i++) { + KT[i] = CNT[i]; + } + KT[i] = D; + for (i = 0; i < t; i++) { + KT[i+4] = T[i]; + } + for (i = 0; i < 16; i++) { + KT[i+4+t] = K[i]; + } + for (i = 0; i < 3; i++) { + KT[i+4+t+16] = CNT[i+3]; + } + for (i = 0; i < 13; i++) { + KT[i+4+t+16+3] = 0x00; + } + +} + +void block_cipher(unsigned char* s, + const unsigned char* k, unsigned char* T, + unsigned char* CNT, unsigned char D, int t, int n) { + unsigned char KT [48]; + + (void)n; + compose_tweakey(KT,k,T,CNT,D,t); + //printf("BC in kt = ");display_vector(KT,3*n); + //printf("BC in s = ");display_vector(s,n); + skinny_128_256_enc (s,KT); + //printf("BC out s = ");display_vector(s,n); + +} + +void nonce_encryption (const unsigned char* N, + unsigned char* CNT, + unsigned char*s, const unsigned char* k, + int t, int n, unsigned char D) { + unsigned char T [16]; + int i; + + for (i = 0; i < t; i++) { + T[i] = N[i]; + } + //printf("nonce cnt = ");display_vector(CNT,7); + block_cipher(s,k,T,CNT,D,t,n); + +} + +void generate_tag (unsigned char** c, unsigned char* s, + int n, unsigned long long* clen) { + + g8A(s, *c); + *c = *c + n; + *c = *c - *clen; + +} + +unsigned long long msg_encryption (const unsigned char** M, unsigned char** c, + const unsigned char* N, + unsigned char* CNT, + unsigned char*s, const unsigned char* k, + unsigned int n, unsigned int t, unsigned char D, + unsigned long long mlen) { + int len8; + + + if (mlen >= n) { + len8 = n; + mlen = mlen - n; + } + else { + len8 = mlen; + mlen = 0; + } + rho(*M, *c, s, len8, n); + *c = *c + len8; + *M = *M + len8; + lfsr_gf24(CNT); + if (mlen != 0) { + nonce_encryption(N,CNT,s,k,t,n,D); + } + return mlen; +} + + + +unsigned long long msg_decryption (unsigned char** M, const unsigned char** c, + const unsigned char* N, + unsigned char* CNT, + unsigned char*s, const unsigned char* k, + unsigned int n, unsigned int t, unsigned char D, + unsigned long long clen) { + int len8; + + if (clen >= n) { + len8 = n; + clen = clen - n; + } + else { + len8 = clen; + clen = 0; + } + irho(*M, *c, s, len8, n); + *c = *c + len8; + *M = *M + len8; + lfsr_gf24(CNT); + nonce_encryption(N,CNT,s,k,t,n,D); + return clen; +} + +unsigned long long ad2msg_encryption (const unsigned char** M, + unsigned char* CNT, + unsigned char*s, const unsigned char* k, + unsigned int t, unsigned int n, unsigned char D, + unsigned long long mlen) { + unsigned char T [16]; + int len8; + + if (mlen <= t) { + len8 = mlen; + mlen = 0; + } + else { + len8 = t; + mlen = mlen - t; + } + + pad (*M,T,t,len8); + //printf("ad2msg nonce cnt = ");display_vector(CNT,7); + block_cipher(s,k,T,CNT,D,t,n); + lfsr_gf24(CNT); + *M = *M + len8; + + return mlen; + +} + + +unsigned long long ad_encryption (const unsigned char** A, unsigned char* s, + const unsigned char* k, unsigned long long adlen, + unsigned char* CNT, + unsigned char D, + unsigned int n, unsigned int t) { + + unsigned char T [16]; + int len8; + + if (adlen >= n) { + len8 = n; + adlen = adlen - n; + } + else { + len8 = adlen; + adlen = 0; + } + //printf("AD in = ");display_vector(*A,len8); + rho_ad(*A, s, len8, n); + *A = *A + len8; + lfsr_gf24(CNT); + //printf("AD cnt = ");display_vector(CNT,7); + if (adlen != 0) { + if (adlen >= t) { + len8 = t; + adlen = adlen - t; + } + else { + len8 = adlen; + adlen = 0; + } + pad(*A, T, t, len8); + *A = *A + len8; + block_cipher(s,k,T,CNT,D,t,n); + lfsr_gf24(CNT); + } + + return adlen; +} + +int crypto_aead_encrypt ( + unsigned char* c, unsigned long long* clen, + const unsigned char* m, unsigned long long mlen, + const unsigned char* ad, unsigned long long adlen, + const unsigned char* nsec, + const unsigned char* npub, + const unsigned char* k + ) +{ + unsigned char s[16]; + unsigned char CNT[7]; + unsigned char T[16]; + const unsigned char* N; + unsigned int n, t, i; + unsigned char w; + unsigned long long xlen; + + (void)nsec; + N = npub; + + n = AD_BLK_LEN_ODD; + t = AD_BLK_LEN_EVN; + + xlen = mlen; + + for (i = 0; i < n; i++) { + s[i] = 0; + } + reset_lfsr_gf24(CNT); + //printf("s = ");display_vector(s,16); + //printf("cnt = ");display_vector(CNT,7); + + w = 176; + + if (adlen == 0) { + w = w ^ 2; + if (xlen == 0) { + w =w ^ 1; + } + else if (xlen%(n+t) == 0) { + w = w ^ 4; + } + else if (xlen%(n+t) < t) { + w = w ^ 1; + } + else if (xlen%(n+t) == t) { + w = w ^ 0; + } + else { + w = w ^ 5; + } + } + else if (adlen%(n+t) == 0) { + w = w ^ 8; + if (xlen == 0) { + w =w ^ 1; + } + else if (xlen%(n+t) == 0) { + w = w ^ 4; + } + else if (xlen%(n+t) < n) { + w = w ^ 1; + } + else if (xlen%(n+t) == n) { + w = w ^ 0; + } + else { + w = w ^ 5; + } + } + else if (adlen%(n+t) < n) { + w = w ^ 2; + if (xlen == 0) { + w =w ^ 1; + } + else if (xlen%(n+t) == 0) { + w = w ^ 4; + } + else if (xlen%(n+t) < t) { + w = w ^ 1; + } + else if (xlen%(n+t) == t) { + w = w ^ 0; + } + else { + w = w ^ 5; + } + } + else if (adlen%(n+t) == n) { + w = w ^ 0; + if (xlen == 0) { + w =w ^ 1; + } + else if (xlen%(n+t) == 0) { + w = w ^ 4; + } + else if (xlen%(n+t) < t) { + w = w ^ 1; + } + else if (xlen%(n+t) == t) { + w = w ^ 0; + } + else { + w = w ^ 5; + } + } + else { + w = w ^ 10; + if (xlen == 0) { + w =w ^ 1; + } + else if (xlen%(n+t) == 0) { + w = w ^ 4; + } + else if (xlen%(n+t) < n) { + w = w ^ 1; + } + else if (xlen%(n+t) == n) { + w = w ^ 0; + } + else { + w = w ^ 5; + } + } + + if (adlen == 0) { // AD is an empty string + lfsr_gf24(CNT); + //xlen = ad2msg_encryption (&m,CNT,s,k,t,n,172,xlen); + } + else while (adlen > 0) { + adlen = ad_encryption(&ad,s,k,adlen,CNT,168,n,t); + } + + if ((w & 8) == 0) { + xlen = ad2msg_encryption (&m,CNT,s,k,t,n,172,xlen); + } + else if (mlen == 0) { + lfsr_gf24(CNT); + } + while (xlen > 0) { + xlen = ad_encryption(&m,s,k,xlen,CNT,172,n,t); + } + nonce_encryption(N,CNT,s,k,t,n,w); + + + // Tag generation + g8A(s, T); + //printf("T = ");display_vector(T,n); + + m = m - mlen; + + reset_lfsr_gf24(CNT); + + for (i = 0; i < n; i = i + 1) { + s[i] = T[i]; + } + + n = MSG_BLK_LEN; + *clen = mlen + n; + + + + if (mlen > 0) { + nonce_encryption(N,CNT,s,k,t,n,164); + while (mlen > n) { + mlen = msg_encryption(&m,&c,N,CNT,s,k,n,t,164,mlen); + } + rho(m, c, s, mlen, 16); + c = c + mlen; + m = m + mlen; + } + + // Tag Concatenation + for (i = 0; i < 16; i = i + 1) { + *(c + i) = T[i]; + } + + c = c - *clen; + + + + return 0; +} + +int crypto_aead_decrypt( +unsigned char *m,unsigned long long *mlen, +unsigned char *nsec, +const unsigned char *c,unsigned long long clen, +const unsigned char *ad,unsigned long long adlen, +const unsigned char *npub, +const unsigned char *k +) +{ + unsigned char s[16]; + unsigned char CNT[7]; + unsigned char T[16]; + const unsigned char* N; + unsigned int n, t, i; + unsigned char w; + unsigned long long xlen; + const unsigned char* mauth; + + (void)nsec; + mauth = m; + + N = npub; + + n = AD_BLK_LEN_ODD; + t = AD_BLK_LEN_EVN; + + xlen = clen-16; + + reset_lfsr_gf24(CNT); + + for (i = 0; i < 16; i++) { + T[i] = *(c + clen - 16 + i); + } + + for (i = 0; i < n; i = i + 1) { + s[i] = T[i]; + } + + n = MSG_BLK_LEN; + clen = clen - 16; + *mlen = clen; + + + if (clen > 0) { + nonce_encryption(N,CNT,s,k,t,n,164); + while (clen > n) { + clen = msg_decryption(&m,&c,N,CNT,s,k,n,t,164,clen); + } + irho(m, c, s, clen, 16); + c = c + clen; + m = m + clen; + } + + + for (i = 0; i < n; i++) { + s[i] = 0; + } + reset_lfsr_gf24(CNT); + //printf("s = ");display_vector(s,16); + //printf("cnt = ");display_vector(CNT,7); + + w = 176; + + if (adlen == 0) { + w = w ^ 2; + if (xlen == 0) { + w =w ^ 1; + } + else if (xlen%(n+t) == 0) { + w = w ^ 4; + } + else if (xlen%(n+t) < t) { + w = w ^ 1; + } + else if (xlen%(n+t) == t) { + w = w ^ 0; + } + else { + w = w ^ 5; + } + } + else if (adlen%(n+t) == 0) { + w = w ^ 8; + if (xlen == 0) { + w =w ^ 1; + } + else if (xlen%(n+t) == 0) { + w = w ^ 4; + } + else if (xlen%(n+t) < n) { + w = w ^ 1; + } + else if (xlen%(n+t) == n) { + w = w ^ 0; + } + else { + w = w ^ 5; + } + } + else if (adlen%(n+t) < n) { + w = w ^ 2; + if (xlen == 0) { + w =w ^ 1; + } + else if (xlen%(n+t) == 0) { + w = w ^ 4; + } + else if (xlen%(n+t) < t) { + w = w ^ 1; + } + else if (xlen%(n+t) == t) { + w = w ^ 0; + } + else { + w = w ^ 5; + } + } + else if (adlen%(n+t) == n) { + w = w ^ 0; + if (xlen == 0) { + w =w ^ 1; + } + else if (xlen%(n+t) == 0) { + w = w ^ 4; + } + else if (xlen%(n+t) < t) { + w = w ^ 1; + } + else if (xlen%(n+t) == t) { + w = w ^ 0; + } + else { + w = w ^ 5; + } + } + else { + w = w ^ 10; + if (xlen == 0) { + w =w ^ 1; + } + else if (xlen%(n+t) == 0) { + w = w ^ 4; + } + else if (xlen%(n+t) < n) { + w = w ^ 1; + } + else if (xlen%(n+t) == n) { + w = w ^ 0; + } + else { + w = w ^ 5; + } + } + + if (adlen == 0) { // AD is an empty string + lfsr_gf24(CNT); + //xlen = ad2msg_encryption (&mauth,CNT,s,k,t,n,172,xlen); + } + else while (adlen > 0) { + adlen = ad_encryption(&ad,s,k,adlen,CNT,168,n,t); + } + + if ((w & 8) == 0) { + xlen = ad2msg_encryption (&mauth,CNT,s,k,t,n,172,xlen); + } + else if (clen == 0) { + lfsr_gf24(CNT); + } + while (xlen > 0) { + xlen = ad_encryption(&mauth,s,k,xlen,CNT,172,n,t); + } + nonce_encryption(N,CNT,s,k,t,n,w); + + // Tag generation + g8A(s, T); + //printf("T = ");display_vector(T,16); + //printf("t = ");display_vector(c,16); + for (i = 0; i < 16; i++) { + if (T[i] != (*(c+i))) { + return -1; + } + } + + return 0; +} diff --git a/romulus/Implementations/crypto_aead/romulusm3/ref/genkat_aead.c b/romulus/Implementations/crypto_aead/romulusm3/ref/genkat_aead.c new file mode 100644 index 0000000..ecee146 --- /dev/null +++ b/romulus/Implementations/crypto_aead/romulusm3/ref/genkat_aead.c @@ -0,0 +1,163 @@ +// +// NIST-developed software is provided by NIST as a public service. +// You may use, copy and distribute copies of the software in any medium, +// provided that you keep intact this entire notice. You may improve, +// modify and create derivative works of the software or any portion of +// the software, and you may copy and distribute such modifications or +// works. Modified works should carry a notice stating that you changed +// the software and should note the date and nature of any such change. +// Please explicitly acknowledge the National Institute of Standards and +// Technology as the source of the software. +// +// NIST-developed software is expressly provided "AS IS." NIST MAKES NO +// WARRANTY OF ANY KIND, EXPRESS, IMPLIED, IN FACT OR ARISING BY OPERATION +// OF LAW, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTY OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT AND DATA ACCURACY. NIST +// NEITHER REPRESENTS NOR WARRANTS THAT THE OPERATION OF THE SOFTWARE WILL BE +// UNINTERRUPTED OR ERROR-FREE, OR THAT ANY DEFECTS WILL BE CORRECTED. NIST +// DOES NOT WARRANT OR MAKE ANY REPRESENTATIONS REGARDING THE USE OF THE SOFTWARE +// OR THE RESULTS THEREOF, INCLUDING BUT NOT LIMITED TO THE CORRECTNESS, ACCURACY, +// RELIABILITY, OR USEFULNESS OF THE SOFTWARE. +// +// You are solely responsible for determining the appropriateness of using and +// distributing the software and you assume all risks associated with its use, +// including but not limited to the risks and costs of program errors, compliance +// with applicable laws, damage to or loss of data, programs or equipment, and +// the unavailability or interruption of operation. This software is not intended +// to be used in any situation where a failure could cause risk of injury or +// damage to property. The software developed by NIST employees is not subject to +// copyright protection within the United States. +// + +// disable deprecation for sprintf and fopen +#ifdef _MSC_VER +#define _CRT_SECURE_NO_WARNINGS +#endif + +#include +#include + +#include "crypto_aead.h" +#include "api.h" + +#define KAT_SUCCESS 0 +#define KAT_FILE_OPEN_ERROR -1 +#define KAT_DATA_ERROR -3 +#define KAT_CRYPTO_FAILURE -4 + +#define MAX_FILE_NAME 256 +#define MAX_MESSAGE_LENGTH 32 +#define MAX_ASSOCIATED_DATA_LENGTH 32 + +void init_buffer(unsigned char *buffer, unsigned long long numbytes); + +void fprint_bstr(FILE *fp, const char *label, const unsigned char *data, unsigned long long length); + +int generate_test_vectors(); + +int main() +{ + int ret = generate_test_vectors(); + + if (ret != KAT_SUCCESS) { + fprintf(stderr, "test vector generation failed with code %d\n", ret); + } + + return ret; +} + +int generate_test_vectors() +{ + FILE *fp; + char fileName[MAX_FILE_NAME]; + unsigned char key[CRYPTO_KEYBYTES]; + unsigned char nonce[CRYPTO_NPUBBYTES]; + unsigned char msg[MAX_MESSAGE_LENGTH]; + unsigned char msg2[MAX_MESSAGE_LENGTH]; + unsigned char ad[MAX_ASSOCIATED_DATA_LENGTH]; + unsigned char ct[MAX_MESSAGE_LENGTH + CRYPTO_ABYTES]; + unsigned long long clen, mlen2; + int count = 1; + int func_ret, ret_val = KAT_SUCCESS; + + init_buffer(key, sizeof(key)); + init_buffer(nonce, sizeof(nonce)); + init_buffer(msg, sizeof(msg)); + init_buffer(ad, sizeof(ad)); + + sprintf(fileName, "LWC_AEAD_KAT_%d_%d.txt", (CRYPTO_KEYBYTES * 8), (CRYPTO_NPUBBYTES * 8)); + + if ((fp = fopen(fileName, "w")) == NULL) { + fprintf(stderr, "Couldn't open <%s> for write\n", fileName); + return KAT_FILE_OPEN_ERROR; + } + + for (unsigned long long mlen = 0; (mlen <= MAX_MESSAGE_LENGTH) && (ret_val == KAT_SUCCESS); mlen++) { + //for (unsigned long long mlen = 0; (mlen <= 32) && (ret_val == KAT_SUCCESS); mlen++) { + for (unsigned long long adlen = 0; adlen <= MAX_ASSOCIATED_DATA_LENGTH; adlen++) { + //for (unsigned long long adlen = 0; adlen <= 32; adlen++) { + + printf("%0d\n", (int)clen); + + fprintf(fp, "Count = %d\n", count++); + printf("Count = %d\n", count - 1); + + fprint_bstr(fp, "Key = ", key, CRYPTO_KEYBYTES); + + fprint_bstr(fp, "Nonce = ", nonce, CRYPTO_NPUBBYTES); + + fprint_bstr(fp, "PT = ", msg, mlen); + + fprint_bstr(fp, "AD = ", ad, adlen); + + if ((func_ret = crypto_aead_encrypt(ct, &clen, msg, mlen, ad, adlen, NULL, nonce, key)) != 0) { + fprintf(fp, "crypto_aead_encrypt returned <%d>\n", func_ret); + ret_val = KAT_CRYPTO_FAILURE; + break; + } + + fprint_bstr(fp, "CT = ", ct, clen); + + fprintf(fp, "\n"); + + if ((func_ret = crypto_aead_decrypt(msg2, &mlen2, NULL, ct, clen, ad, adlen, nonce, key)) != 0) { + fprintf(fp, "crypto_aead_decrypt returned <%d>\n", func_ret); + ret_val = KAT_CRYPTO_FAILURE; + break; + } + + if (mlen != mlen2) { + fprintf(fp, "crypto_aead_decrypt returned bad 'mlen': Got <%llu>, expected <%llu>\n", mlen2, mlen); + ret_val = KAT_CRYPTO_FAILURE; + break; + } + + if (memcmp(msg, msg2, mlen)) { + fprintf(fp, "crypto_aead_decrypt did not recover the plaintext\n"); + ret_val = KAT_CRYPTO_FAILURE; + break; + } + } + } + + fclose(fp); + + return ret_val; +} + + +void fprint_bstr(FILE *fp, const char *label, const unsigned char *data, unsigned long long length) +{ + fprintf(fp, "%s", label); + + for (unsigned long long i = 0; i < length; i++) + fprintf(fp, "%02X", data[i]); + + fprintf(fp, "\n"); +} + +void init_buffer(unsigned char *buffer, unsigned long long numbytes) +{ + for (unsigned long long i = 0; i < numbytes; i++) + buffer[i] = (unsigned char)i; +} diff --git a/romulus/Implementations/crypto_aead/romulusm3/ref/skinny.h b/romulus/Implementations/crypto_aead/romulusm3/ref/skinny.h new file mode 100644 index 0000000..a33ba58 --- /dev/null +++ b/romulus/Implementations/crypto_aead/romulusm3/ref/skinny.h @@ -0,0 +1 @@ +extern void skinny_128_256_enc (unsigned char* input, const unsigned char* userkey); diff --git a/romulus/Implementations/crypto_aead/romulusm3/ref/skinny_reference.c b/romulus/Implementations/crypto_aead/romulusm3/ref/skinny_reference.c new file mode 100644 index 0000000..171a179 --- /dev/null +++ b/romulus/Implementations/crypto_aead/romulusm3/ref/skinny_reference.c @@ -0,0 +1,547 @@ +/* + * Date: 11 December 2015 + * Contact: Thomas Peyrin - thomas.peyrin@gmail.com + */ + +#include +#include +#include +#include +#include "skinny.h" + +#define DEBUG 0 + +// Table that encodes the parameters of the various Skinny versions: +// (block size, key size, number of rounds) +//Skinny-64-64: 32 rounds +//Skinny-64-128: 36 rounds +//Skinny-64-192: 40 rounds +//Skinny-128-128: 40 rounds +//Skinny-128-256: 48 rounds +//Skinny-128-384: 56 rounds +int versions[6][3]={{64,64,32},{64,128,36},{64,192,40},{128,128,40},{128,256,48},{128,384,56}}; + +// Packing of data is done as follows (state[i][j] stands for row i and column j): +// 0 1 2 3 +// 4 5 6 7 +// 8 9 10 11 +//12 13 14 15 + +// 4-bit Sbox +const unsigned char sbox_4[16] = {12,6,9,0,1,10,2,11,3,8,5,13,4,14,7,15}; +const unsigned char sbox_4_inv[16] = {3,4,6,8,12,10,1,14,9,2,5,7,0,11,13,15}; + +// 8-bit Sbox +const unsigned char sbox_8[256] = {0x65 , 0x4c , 0x6a , 0x42 , 0x4b , 0x63 , 0x43 , 0x6b , 0x55 , 0x75 , 0x5a , 0x7a , 0x53 , 0x73 , 0x5b , 0x7b ,0x35 , 0x8c , 0x3a , 0x81 , 0x89 , 0x33 , 0x80 , 0x3b , 0x95 , 0x25 , 0x98 , 0x2a , 0x90 , 0x23 , 0x99 , 0x2b ,0xe5 , 0xcc , 0xe8 , 0xc1 , 0xc9 , 0xe0 , 0xc0 , 0xe9 , 0xd5 , 0xf5 , 0xd8 , 0xf8 , 0xd0 , 0xf0 , 0xd9 , 0xf9 ,0xa5 , 0x1c , 0xa8 , 0x12 , 0x1b , 0xa0 , 0x13 , 0xa9 , 0x05 , 0xb5 , 0x0a , 0xb8 , 0x03 , 0xb0 , 0x0b , 0xb9 ,0x32 , 0x88 , 0x3c , 0x85 , 0x8d , 0x34 , 0x84 , 0x3d , 0x91 , 0x22 , 0x9c , 0x2c , 0x94 , 0x24 , 0x9d , 0x2d ,0x62 , 0x4a , 0x6c , 0x45 , 0x4d , 0x64 , 0x44 , 0x6d , 0x52 , 0x72 , 0x5c , 0x7c , 0x54 , 0x74 , 0x5d , 0x7d ,0xa1 , 0x1a , 0xac , 0x15 , 0x1d , 0xa4 , 0x14 , 0xad , 0x02 , 0xb1 , 0x0c , 0xbc , 0x04 , 0xb4 , 0x0d , 0xbd ,0xe1 , 0xc8 , 0xec , 0xc5 , 0xcd , 0xe4 , 0xc4 , 0xed , 0xd1 , 0xf1 , 0xdc , 0xfc , 0xd4 , 0xf4 , 0xdd , 0xfd ,0x36 , 0x8e , 0x38 , 0x82 , 0x8b , 0x30 , 0x83 , 0x39 , 0x96 , 0x26 , 0x9a , 0x28 , 0x93 , 0x20 , 0x9b , 0x29 ,0x66 , 0x4e , 0x68 , 0x41 , 0x49 , 0x60 , 0x40 , 0x69 , 0x56 , 0x76 , 0x58 , 0x78 , 0x50 , 0x70 , 0x59 , 0x79 ,0xa6 , 0x1e , 0xaa , 0x11 , 0x19 , 0xa3 , 0x10 , 0xab , 0x06 , 0xb6 , 0x08 , 0xba , 0x00 , 0xb3 , 0x09 , 0xbb ,0xe6 , 0xce , 0xea , 0xc2 , 0xcb , 0xe3 , 0xc3 , 0xeb , 0xd6 , 0xf6 , 0xda , 0xfa , 0xd3 , 0xf3 , 0xdb , 0xfb ,0x31 , 0x8a , 0x3e , 0x86 , 0x8f , 0x37 , 0x87 , 0x3f , 0x92 , 0x21 , 0x9e , 0x2e , 0x97 , 0x27 , 0x9f , 0x2f ,0x61 , 0x48 , 0x6e , 0x46 , 0x4f , 0x67 , 0x47 , 0x6f , 0x51 , 0x71 , 0x5e , 0x7e , 0x57 , 0x77 , 0x5f , 0x7f ,0xa2 , 0x18 , 0xae , 0x16 , 0x1f , 0xa7 , 0x17 , 0xaf , 0x01 , 0xb2 , 0x0e , 0xbe , 0x07 , 0xb7 , 0x0f , 0xbf ,0xe2 , 0xca , 0xee , 0xc6 , 0xcf ,0xe7 , 0xc7 , 0xef , 0xd2 , 0xf2 , 0xde , 0xfe , 0xd7 , 0xf7 , 0xdf , 0xff}; +const unsigned char sbox_8_inv[256] = {0xac , 0xe8 , 0x68 , 0x3c , 0x6c , 0x38 , 0xa8 , 0xec , 0xaa , 0xae , 0x3a , 0x3e , 0x6a , 0x6e , 0xea , 0xee ,0xa6 , 0xa3 , 0x33 , 0x36 , 0x66 , 0x63 , 0xe3 , 0xe6 , 0xe1 , 0xa4 , 0x61 , 0x34 , 0x31 , 0x64 , 0xa1 , 0xe4 ,0x8d , 0xc9 , 0x49 , 0x1d , 0x4d , 0x19 , 0x89 , 0xcd , 0x8b , 0x8f , 0x1b , 0x1f , 0x4b , 0x4f , 0xcb , 0xcf ,0x85 , 0xc0 , 0x40 , 0x15 , 0x45 , 0x10 , 0x80 , 0xc5 , 0x82 , 0x87 , 0x12 , 0x17 , 0x42 , 0x47 , 0xc2 , 0xc7 ,0x96 , 0x93 , 0x03 , 0x06 , 0x56 , 0x53 , 0xd3 , 0xd6 , 0xd1 , 0x94 , 0x51 , 0x04 , 0x01 , 0x54 , 0x91 , 0xd4 ,0x9c , 0xd8 , 0x58 , 0x0c , 0x5c , 0x08 , 0x98 , 0xdc , 0x9a , 0x9e , 0x0a , 0x0e , 0x5a , 0x5e , 0xda , 0xde ,0x95 , 0xd0 , 0x50 , 0x05 , 0x55 , 0x00 , 0x90 , 0xd5 , 0x92 , 0x97 , 0x02 , 0x07 , 0x52 , 0x57 , 0xd2 , 0xd7 ,0x9d , 0xd9 , 0x59 , 0x0d , 0x5d , 0x09 , 0x99 , 0xdd , 0x9b , 0x9f , 0x0b , 0x0f , 0x5b , 0x5f , 0xdb , 0xdf ,0x16 , 0x13 , 0x83 , 0x86 , 0x46 , 0x43 , 0xc3 , 0xc6 , 0x41 , 0x14 , 0xc1 , 0x84 , 0x11 , 0x44 , 0x81 , 0xc4 ,0x1c , 0x48 , 0xc8 , 0x8c , 0x4c , 0x18 , 0x88 , 0xcc , 0x1a , 0x1e , 0x8a , 0x8e , 0x4a , 0x4e , 0xca , 0xce ,0x35 , 0x60 , 0xe0 , 0xa5 , 0x65 , 0x30 , 0xa0 , 0xe5 , 0x32 , 0x37 , 0xa2 , 0xa7 , 0x62 , 0x67 , 0xe2 , 0xe7 ,0x3d , 0x69 , 0xe9 , 0xad , 0x6d , 0x39 , 0xa9 , 0xed , 0x3b , 0x3f , 0xab , 0xaf , 0x6b , 0x6f , 0xeb , 0xef ,0x26 , 0x23 , 0xb3 , 0xb6 , 0x76 , 0x73 , 0xf3 , 0xf6 , 0x71 , 0x24 , 0xf1 , 0xb4 , 0x21 , 0x74 , 0xb1 , 0xf4 ,0x2c , 0x78 , 0xf8 , 0xbc , 0x7c , 0x28 , 0xb8 , 0xfc , 0x2a , 0x2e , 0xba , 0xbe , 0x7a , 0x7e , 0xfa , 0xfe ,0x25 , 0x70 , 0xf0 , 0xb5 , 0x75 , 0x20 , 0xb0 , 0xf5 , 0x22 , 0x27 , 0xb2 , 0xb7 , 0x72 , 0x77 , 0xf2 , 0xf7 ,0x2d , 0x79 , 0xf9 , 0xbd , 0x7d , 0x29 , 0xb9 , 0xfd , 0x2b , 0x2f , 0xbb , 0xbf , 0x7b , 0x7f , 0xfb , 0xff}; + +// ShiftAndSwitchRows permutation +const unsigned char P[16] = {0,1,2,3,7,4,5,6,10,11,8,9,13,14,15,12}; +const unsigned char P_inv[16] = {0,1,2,3,5,6,7,4,10,11,8,9,15,12,13,14}; + +// Tweakey permutation +const unsigned char TWEAKEY_P[16] = {9,15,8,13,10,14,12,11,0,1,2,3,4,5,6,7}; +const unsigned char TWEAKEY_P_inv[16] = {8,9,10,11,12,13,14,15,2,0,4,7,6,3,5,1}; + +// round constants +const unsigned char RC[62] = { + 0x01, 0x03, 0x07, 0x0F, 0x1F, 0x3E, 0x3D, 0x3B, 0x37, 0x2F, + 0x1E, 0x3C, 0x39, 0x33, 0x27, 0x0E, 0x1D, 0x3A, 0x35, 0x2B, + 0x16, 0x2C, 0x18, 0x30, 0x21, 0x02, 0x05, 0x0B, 0x17, 0x2E, + 0x1C, 0x38, 0x31, 0x23, 0x06, 0x0D, 0x1B, 0x36, 0x2D, 0x1A, + 0x34, 0x29, 0x12, 0x24, 0x08, 0x11, 0x22, 0x04, 0x09, 0x13, + 0x26, 0x0c, 0x19, 0x32, 0x25, 0x0a, 0x15, 0x2a, 0x14, 0x28, + 0x10, 0x20}; + +FILE* fic; + + +// Extract and apply the subtweakey to the internal state (must be the two top rows XORed together), then update the tweakey state +void AddKey(unsigned char state[4][4], unsigned char keyCells[3][4][4], int ver) +{ + int i, j, k; + unsigned char pos; + unsigned char keyCells_tmp[3][4][4]; + + // apply the subtweakey to the internal state + for(i = 0; i <= 1; i++) + { + for(j = 0; j < 4; j++) + { + state[i][j] ^= keyCells[0][i][j]; + if (2*versions[ver][0]==versions[ver][1]) + state[i][j] ^= keyCells[1][i][j]; + else if (3*versions[ver][0]==versions[ver][1]) + state[i][j] ^= keyCells[1][i][j] ^ keyCells[2][i][j]; + } + } + + // update the subtweakey states with the permutation + for(k = 0; k <(int)(versions[ver][1]/versions[ver][0]); k++){ + for(i = 0; i < 4; i++){ + for(j = 0; j < 4; j++){ + //application of the TWEAKEY permutation + pos=TWEAKEY_P[j+4*i]; + keyCells_tmp[k][i][j]=keyCells[k][pos>>2][pos&0x3]; + } + } + } + + // update the subtweakey states with the LFSRs + for(k = 0; k <(int)(versions[ver][1]/versions[ver][0]); k++){ + for(i = 0; i <= 1; i++){ + for(j = 0; j < 4; j++){ + //application of LFSRs for TK updates + if (k==1) + { + if (versions[ver][0]==64) + keyCells_tmp[k][i][j]=((keyCells_tmp[k][i][j]<<1)&0xE)^((keyCells_tmp[k][i][j]>>3)&0x1)^((keyCells_tmp[k][i][j]>>2)&0x1); + else + keyCells_tmp[k][i][j]=((keyCells_tmp[k][i][j]<<1)&0xFE)^((keyCells_tmp[k][i][j]>>7)&0x01)^((keyCells_tmp[k][i][j]>>5)&0x01); + } + else if (k==2) + { + if (versions[ver][0]==64) + keyCells_tmp[k][i][j]=((keyCells_tmp[k][i][j]>>1)&0x7)^((keyCells_tmp[k][i][j])&0x8)^((keyCells_tmp[k][i][j]<<3)&0x8); + else + keyCells_tmp[k][i][j]=((keyCells_tmp[k][i][j]>>1)&0x7F)^((keyCells_tmp[k][i][j]<<7)&0x80)^((keyCells_tmp[k][i][j]<<1)&0x80); + } + } + } + } + + for(k = 0; k <(int)(versions[ver][1]/versions[ver][0]); k++){ + for(i = 0; i < 4; i++){ + for(j = 0; j < 4; j++){ + keyCells[k][i][j]=keyCells_tmp[k][i][j]; + } + } + } +} + + +// Extract and apply the subtweakey to the internal state (must be the two top rows XORed together), then update the tweakey state (inverse function} +void AddKey_inv(unsigned char state[4][4], unsigned char keyCells[3][4][4], int ver) +{ + int i, j, k; + unsigned char pos; + unsigned char keyCells_tmp[3][4][4]; + + // update the subtweakey states with the permutation + for(k = 0; k <(int)(versions[ver][1]/versions[ver][0]); k++){ + for(i = 0; i < 4; i++){ + for(j = 0; j < 4; j++){ + //application of the inverse TWEAKEY permutation + pos=TWEAKEY_P_inv[j+4*i]; + keyCells_tmp[k][i][j]=keyCells[k][pos>>2][pos&0x3]; + } + } + } + + // update the subtweakey states with the LFSRs + for(k = 0; k <(int)(versions[ver][1]/versions[ver][0]); k++){ + for(i = 2; i <= 3; i++){ + for(j = 0; j < 4; j++){ + //application of inverse LFSRs for TK updates + if (k==1) + { + if (versions[ver][0]==64) + keyCells_tmp[k][i][j]=((keyCells_tmp[k][i][j]>>1)&0x7)^((keyCells_tmp[k][i][j]<<3)&0x8)^((keyCells_tmp[k][i][j])&0x8); + else + keyCells_tmp[k][i][j]=((keyCells_tmp[k][i][j]>>1)&0x7F)^((keyCells_tmp[k][i][j]<<7)&0x80)^((keyCells_tmp[k][i][j]<<1)&0x80); + } + else if (k==2) + { + if (versions[ver][0]==64) + keyCells_tmp[k][i][j]=((keyCells_tmp[k][i][j]<<1)&0xE)^((keyCells_tmp[k][i][j]>>3)&0x1)^((keyCells_tmp[k][i][j]>>2)&0x1); + else + keyCells_tmp[k][i][j]=((keyCells_tmp[k][i][j]<<1)&0xFE)^((keyCells_tmp[k][i][j]>>7)&0x01)^((keyCells_tmp[k][i][j]>>5)&0x01); + } + } + } + } + + for(k = 0; k <(int)(versions[ver][1]/versions[ver][0]); k++){ + for(i = 0; i < 4; i++){ + for(j = 0; j < 4; j++){ + keyCells[k][i][j]=keyCells_tmp[k][i][j]; + } + } + } + + + // apply the subtweakey to the internal state + for(i = 0; i <= 1; i++) + { + for(j = 0; j < 4; j++) + { + state[i][j] ^= keyCells[0][i][j]; + if (2*versions[ver][0]==versions[ver][1]) + state[i][j] ^= keyCells[1][i][j]; + else if (3*versions[ver][0]==versions[ver][1]) + state[i][j] ^= keyCells[1][i][j] ^ keyCells[2][i][j]; + } + } +} + + +// Apply the constants: using a LFSR counter on 6 bits, we XOR the 6 bits to the first 6 bits of the internal state +void AddConstants(unsigned char state[4][4], int r) +{ + state[0][0] ^= (RC[r] & 0xf); + state[1][0] ^= ((RC[r]>>4) & 0x3); + state[2][0] ^= 0x2; +} + +// apply the 4-bit Sbox +void SubCell4(unsigned char state[4][4]) +{ + int i,j; + for(i = 0; i < 4; i++) + for(j = 0; j < 4; j++) + state[i][j] = sbox_4[state[i][j]]; +} + +// apply the 4-bit inverse Sbox +void SubCell4_inv(unsigned char state[4][4]) +{ + int i,j; + for(i = 0; i < 4; i++) + for(j = 0; j < 4; j++) + state[i][j] = sbox_4_inv[state[i][j]]; +} + +// apply the 8-bit Sbox +void SubCell8(unsigned char state[4][4]) +{ + int i,j; + for(i = 0; i < 4; i++) + for(j = 0; j < 4; j++) + state[i][j] = sbox_8[state[i][j]]; +} + +// apply the 8-bit inverse Sbox +void SubCell8_inv(unsigned char state[4][4]) +{ + int i,j; + for(i = 0; i < 4; i++) + for(j = 0; j < 4; j++) + state[i][j] = sbox_8_inv[state[i][j]]; +} + +// Apply the ShiftRows function +void ShiftRows(unsigned char state[4][4]) +{ + int i, j, pos; + + unsigned char state_tmp[4][4]; + for(i = 0; i < 4; i++) + { + for(j = 0; j < 4; j++) + { + //application of the ShiftRows permutation + pos=P[j+4*i]; + state_tmp[i][j]=state[pos>>2][pos&0x3]; + } + } + + for(i = 0; i < 4; i++) + { + for(j = 0; j < 4; j++) + { + state[i][j]=state_tmp[i][j]; + } + } +} + +// Apply the inverse ShiftRows function +void ShiftRows_inv(unsigned char state[4][4]) +{ + int i, j, pos; + + unsigned char state_tmp[4][4]; + for(i = 0; i < 4; i++) + { + for(j = 0; j < 4; j++) + { + //application of the inverse ShiftRows permutation + pos=P_inv[j+4*i]; + state_tmp[i][j]=state[pos>>2][pos&0x3]; + } + } + + for(i = 0; i < 4; i++) + { + for(j = 0; j < 4; j++) + { + state[i][j]=state_tmp[i][j]; + } + } +} + +// Apply the linear diffusion matrix +//M = +//1 0 1 1 +//1 0 0 0 +//0 1 1 0 +//1 0 1 0 +void MixColumn(unsigned char state[4][4]) +{ + int j; + unsigned char temp; + + for(j = 0; j < 4; j++){ + state[1][j]^=state[2][j]; + state[2][j]^=state[0][j]; + state[3][j]^=state[2][j]; + + temp=state[3][j]; + state[3][j]=state[2][j]; + state[2][j]=state[1][j]; + state[1][j]=state[0][j]; + state[0][j]=temp; + } +} + +// Apply the inverse linear diffusion matrix +void MixColumn_inv(unsigned char state[4][4]) +{ + int j; + unsigned char temp; + + for(j = 0; j < 4; j++){ + temp=state[3][j]; + state[3][j]=state[0][j]; + state[0][j]=state[1][j]; + state[1][j]=state[2][j]; + state[2][j]=temp; + + state[3][j]^=state[2][j]; + state[2][j]^=state[0][j]; + state[1][j]^=state[2][j]; + } +} + +// decryption function of Skinny +void dec(unsigned char* input, const unsigned char* userkey, int ver) +{ + unsigned char state[4][4]; + unsigned char dummy[4][4]={{0}}; + unsigned char keyCells[3][4][4]; + int i; + + memset(keyCells, 0, 48); + for(i = 0; i < 16; i++) { + if (versions[ver][0]==64){ + if(i&1) + { + state[i>>2][i&0x3] = input[i>>1]&0xF; + keyCells[0][i>>2][i&0x3] = userkey[i>>1]&0xF; + if (versions[ver][1]>=128) + keyCells[1][i>>2][i&0x3] = userkey[(i+16)>>1]&0xF; + if (versions[ver][1]>=192) + keyCells[2][i>>2][i&0x3] = userkey[(i+32)>>1]&0xF; + } + else + { + state[i>>2][i&0x3] = (input[i>>1]>>4)&0xF; + keyCells[0][i>>2][i&0x3] = (userkey[i>>1]>>4)&0xF; + if (versions[ver][1]>=128) + keyCells[1][i>>2][i&0x3] = (userkey[(i+16)>>1]>>4)&0xF; + if (versions[ver][1]>=192) + keyCells[2][i>>2][i&0x3] = (userkey[(i+32)>>1]>>4)&0xF; + } + } + else if (versions[ver][0]==128){ + state[i>>2][i&0x3] = input[i]&0xFF; + + keyCells[0][i>>2][i&0x3] = userkey[i]&0xFF; + if (versions[ver][1]>=256) + keyCells[1][i>>2][i&0x3] = userkey[i+16]&0xFF; + if (versions[ver][1]>=384) + keyCells[2][i>>2][i&0x3] = userkey[i+32]&0xFF; + } + } + + for(i = versions[ver][2]-1; i >=0 ; i--){ + AddKey(dummy, keyCells, ver); + } + + #ifdef DEBUG + //f//printf(fic,"DEC - initial state: ");display_cipher_state(state,keyCells,ver);//f//printf(fic,"\n"); + #endif + + for(i = versions[ver][2]-1; i >=0 ; i--){ + MixColumn_inv(state); + #ifdef DEBUG + //f//printf(fic,"DEC - round %.2i - after MixColumn_inv: ",i);display_cipher_state(state,keyCells,ver);//f//printf(fic,"\n"); + #endif + ShiftRows_inv(state); + #ifdef DEBUG + //f//printf(fic,"DEC - round %.2i - after ShiftRows_inv: ",i);display_cipher_state(state,keyCells,ver);//f//printf(fic,"\n"); + #endif + AddKey_inv(state, keyCells, ver); + #ifdef DEBUG + //f//printf(fic,"DEC - round %.2i - after AddKey_inv: ",i);display_cipher_state(state,keyCells,ver);//f//printf(fic,"\n"); + #endif + AddConstants(state, i); + #ifdef DEBUG + //f//printf(fic,"DEC - round %.2i - after AddConstants_inv: ",i);display_cipher_state(state,keyCells,ver);//f//printf(fic,"\n"); + #endif + if (versions[ver][0]==64) + SubCell4_inv(state); + else + SubCell8_inv(state); + #ifdef DEBUG + //f//printf(fic,"DEC - round %.2i - after SubCell_inv: ",i);display_cipher_state(state,keyCells,ver);//f//printf(fic,"\n"); + #endif + } + + #ifdef DEBUG + //f//printf(fic,"DEC - final state: ");display_cipher_state(state,keyCells,ver);//f//printf(fic,"\n"); + #endif + + if (versions[ver][0]==64) + { + for(i = 0; i < 8; i++) + input[i] = ((state[(2*i)>>2][(2*i)&0x3] & 0xF) << 4) | (state[(2*i+1)>>2][(2*i+1)&0x3] & 0xF); + } + else if (versions[ver][0]==128) + { + for(i = 0; i < 16; i++) + input[i] = state[i>>2][i&0x3] & 0xFF; + } +} + +// encryption function of Skinny +void enc(unsigned char* input, const unsigned char* userkey, int ver) +{ + unsigned char state[4][4]; + unsigned char keyCells[3][4][4]; + int i; + + memset(keyCells, 0, 48); + for(i = 0; i < 16; i++) { + if (versions[ver][0]==64){ + if(i&1) + { + state[i>>2][i&0x3] = input[i>>1]&0xF; + keyCells[0][i>>2][i&0x3] = userkey[i>>1]&0xF; + if (versions[ver][1]>=128) + keyCells[1][i>>2][i&0x3] = userkey[(i+16)>>1]&0xF; + if (versions[ver][1]>=192) + keyCells[2][i>>2][i&0x3] = userkey[(i+32)>>1]&0xF; + } + else + { + state[i>>2][i&0x3] = (input[i>>1]>>4)&0xF; + keyCells[0][i>>2][i&0x3] = (userkey[i>>1]>>4)&0xF; + if (versions[ver][1]>=128) + keyCells[1][i>>2][i&0x3] = (userkey[(i+16)>>1]>>4)&0xF; + if (versions[ver][1]>=192) + keyCells[2][i>>2][i&0x3] = (userkey[(i+32)>>1]>>4)&0xF; + } + } + else if (versions[ver][0]==128){ + state[i>>2][i&0x3] = input[i]&0xFF; + keyCells[0][i>>2][i&0x3] = userkey[i]&0xFF; + if (versions[ver][1]>=256) + keyCells[1][i>>2][i&0x3] = userkey[i+16]&0xFF; + if (versions[ver][1]>=384) + keyCells[2][i>>2][i&0x3] = userkey[i+32]&0xFF; + } + } + + #ifdef DEBUG + //printf("ENC - initial state: ");display_cipher_state(state,keyCells,ver);//printf("\n"); + #endif + for(i = 0; i < versions[ver][2]; i++){ + if (versions[ver][0]==64) + SubCell4(state); + else + SubCell8(state); + #ifdef DEBUG + //printf("ENC - round %.2i - after SubCell: ",i);display_cipher_state(state,keyCells,ver);//printf("\n"); + #endif + AddConstants(state, i); + #ifdef DEBUG + //printf("ENC - round %.2i - after AddConstants: ",i);display_cipher_state(state,keyCells,ver);//printf("\n"); + #endif + AddKey(state, keyCells, ver); + #ifdef DEBUG + //printf("ENC - round %.2i - after AddKey: ",i);display_cipher_state(state,keyCells,ver);//printf("\n"); + #endif + ShiftRows(state); + #ifdef DEBUG + //printf("ENC - round %.2i - after ShiftRows: ",i);display_cipher_state(state,keyCells,ver);//printf("\n"); + #endif + MixColumn(state); + #ifdef DEBUG + //printf("ENC - round %.2i - after MixColumn: ",i);display_cipher_state(state,keyCells,ver);//printf("\n"); + #endif + } //The last subtweakey should not be added + + #ifdef DEBUG + //printf("ENC - final state: ");display_cipher_state(state,keyCells,ver);//printf("\n"); + #endif + + if (versions[ver][0]==64) + { + for(i = 0; i < 8; i++) + input[i] = ((state[(2*i)>>2][(2*i)&0x3] & 0xF) << 4) | (state[(2*i+1)>>2][(2*i+1)&0x3] & 0xF); + } + else if (versions[ver][0]==128) + { + for(i = 0; i < 16; i++) + input[i] = state[i>>2][i&0x3] & 0xFF; + } +} + +void skinny_128_256_enc (unsigned char* input, const unsigned char* userkey) { + enc(input,userkey,4); +} + +// generate test vectors for all the versions of Skinny +void TestVectors(int ver) +{ + unsigned char p[16]; + unsigned char c[16]; + unsigned char k[48]; + int n; + + for(n = 1; n < 10; n++) + { + int i; + for(i = 0; i < (versions[ver][0]>>3); i++) c[i] = p[i] = rand() & 0xff; + for(i = 0; i < (versions[ver][1]>>3); i++) k[i] = rand() & 0xff; + //printf("TK = "); for(i = 0; i < (versions[ver][1]>>3); i++) //printf("%02x", k[i]); //printf("\n"); + //printf("P = "); for(i = 0; i < (versions[ver][0]>>3); i++) //printf("%02x", p[i]); //printf("\n"); + enc(c,k,ver); + //printf("C = "); for(i = 0; i < (versions[ver][0]>>3); i++) //printf("%02x", c[i]); //printf("\n"); + dec(c,k,ver); + //printf("P' = "); for(i = 0; i < (versions[ver][0]>>3); i++) //printf("%02x", c[i]); //printf("\n\n"); + } +} + +/* int main() { */ +/* unsigned int i; */ +/* char name[30]; */ + +/* srand((unsigned) time (NULL)); */ + +/* //test all versions of Skinny */ +/* for (i=0; i<(sizeof(versions)/sizeof(*versions));i++) */ +/* { */ +/* s//printf(name, "test_vectors_%i_%i.txt", versions[i][0], versions[i][1]); */ +/* fic=fopen(name,"w"); */ +/* //printf("\n\nSkinny-%i/%i: \n",versions[i][0],versions[i][1]); */ +/* TestVectors(i); */ +/* fclose(fic); */ +/* //printf("Generating test vectors for Skinny-%i/%i - saved in file test_vectors_%i_%i.txt \n",versions[i][0],versions[i][1],versions[i][0],versions[i][1]); */ +/* } */ + +/* return 0; */ +/* } */ + + + diff --git a/romulus/Implementations/crypto_aead/romulusm3/ref/variant.h b/romulus/Implementations/crypto_aead/romulusm3/ref/variant.h new file mode 100644 index 0000000..27e7705 --- /dev/null +++ b/romulus/Implementations/crypto_aead/romulusm3/ref/variant.h @@ -0,0 +1,3 @@ +#define MSG_BLK_LEN 16 +#define AD_BLK_LEN_ODD 16 +#define AD_BLK_LEN_EVN 12 diff --git a/romulus/Implementations/crypto_aead/romulusm3v12/LWC_AEAD_KAT_128_96.txt b/romulus/Implementations/crypto_aead/romulusm3v12/LWC_AEAD_KAT_128_96.txt deleted file mode 100644 index 7c944f8..0000000 --- a/romulus/Implementations/crypto_aead/romulusm3v12/LWC_AEAD_KAT_128_96.txt +++ /dev/null @@ -1,7623 +0,0 @@ -Count = 1 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = -AD = -CT = 9DAE2C6FA9692264572727DB77EED616 - -Count = 2 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = -AD = 00 -CT = A06E348183FC4424F39C7359C872D5F2 - -Count = 3 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = -AD = 0001 -CT = 853595C5F1146335F1533C1E9FEDDBF7 - -Count = 4 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = -AD = 000102 -CT = 631FB25C9858EA7E1058A99F65D67A83 - -Count = 5 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = -AD = 00010203 -CT = 9706DC71E0EB2EBA01605DE182CEE866 - -Count = 6 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = -AD = 0001020304 -CT = 8C932E997586A6A482D49C020ADE682A - -Count = 7 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = -AD = 000102030405 -CT = 0C4C06C0544D93643BA6E061FFF3792A - -Count = 8 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = -AD = 00010203040506 -CT = 640C7F03930E936A72851F0E65C34E71 - -Count = 9 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = -AD = 0001020304050607 -CT = 27BFC46153983D96BB20270BF85A043C - -Count = 10 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = -AD = 000102030405060708 -CT = F11E3A88F2D803694922E7C5B97426E7 - -Count = 11 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = -AD = 00010203040506070809 -CT = 85E528C3862E2E5CCDF3CACD4A610D24 - -Count = 12 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = -AD = 000102030405060708090A -CT = A719212753B6755E2EAFB439941246D8 - -Count = 13 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = -AD = 000102030405060708090A0B -CT = 7010AF8B5B14902E79D4A3F80AF98E7A - -Count = 14 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = -AD = 000102030405060708090A0B0C -CT = B6E32DF9F0DDC5A9548244F3A4AFAA14 - -Count = 15 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = -AD = 000102030405060708090A0B0C0D -CT = 62200A699245B363D8F56DC61D923287 - -Count = 16 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = -AD = 000102030405060708090A0B0C0D0E -CT = 640929AFC7783CF9F3D4D79F714AEECE - -Count = 17 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = -AD = 000102030405060708090A0B0C0D0E0F -CT = 5525969682EE541F49011737AB329FAC - -Count = 18 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = -AD = 000102030405060708090A0B0C0D0E0F10 -CT = C9330E2E5DDE1603C7F199F33B98C4F5 - -Count = 19 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = AC17C68945855CA0541DE37C29C22FE9 - -Count = 20 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = C2B453F4D5344F55CD3C8A0548B0D272 - -Count = 21 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 4DA0583AFB112C50DD6A88C5054A0A13 - -Count = 22 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = FE606D882105430284146FBAB687CA1C - -Count = 23 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = 92789620B1D87C753A7760A0CFDBB42B - -Count = 24 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = D134B52B8BE21A8E1ECE39EA35D07B94 - -Count = 25 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = 1DFABD385749878DDD4640DD81786500 - -Count = 26 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 92517ECE8DD15C1B4FCF3B1BEFA5C2B4 - -Count = 27 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = 70BF37A6E98661B1B2D586367B1233C5 - -Count = 28 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 80D3EF637138502EF9F0390539A092A2 - -Count = 29 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 5767F28E17459EB8254ACBFBEE567A71 - -Count = 30 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = 7747DD162E32EFE24755F9D70BA5A265 - -Count = 31 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 1BD9F61955FE9CB202374F81ED901C6B - -Count = 32 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = EE624B23394A250E6208038803324F98 - -Count = 33 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 4A5843CF6314CA97CD9F234C80DDDE14 - -Count = 34 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00 -AD = -CT = 90F142D9783BEACFEEB4AD9A809FB869FB - -Count = 35 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00 -AD = 00 -CT = A4B6A330DE9994C77C146ED259102A5612 - -Count = 36 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00 -AD = 0001 -CT = A14942AD2A8AD0782D6A84FC23CF131A82 - -Count = 37 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00 -AD = 000102 -CT = 906EB8F0EF2CF9FE61FFBC8FA2DDFCE4D5 - -Count = 38 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00 -AD = 00010203 -CT = B6A099B675A171441E8F37B2AB832E0426 - -Count = 39 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00 -AD = 0001020304 -CT = BCE3E8D86A83DB55A3F8AEB07F0F4E8A84 - -Count = 40 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00 -AD = 000102030405 -CT = 7F2B052BE3176B830D227904237BE426C8 - -Count = 41 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00 -AD = 00010203040506 -CT = 015D56DAF5D486BF8BD969A59FEB77B1C9 - -Count = 42 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00 -AD = 0001020304050607 -CT = 96C630D064579136193B3ED1D96F2AD560 - -Count = 43 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00 -AD = 000102030405060708 -CT = E8DE3BB3A22CBA30931448AE4EF077C660 - -Count = 44 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00 -AD = 00010203040506070809 -CT = F042BBA9E94D4FC721DD328C3616689ADA - -Count = 45 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00 -AD = 000102030405060708090A -CT = 6A30693792C1F9030D682E2BCF46D27F1E - -Count = 46 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00 -AD = 000102030405060708090A0B -CT = 035AF96E21FE4AFC35987007F32ECF286F - -Count = 47 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00 -AD = 000102030405060708090A0B0C -CT = 2F0AB16E05D23F0E3725CF6578383A80D8 - -Count = 48 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00 -AD = 000102030405060708090A0B0C0D -CT = 4F30E6CFA3AF5F4C750A86393BD7D46A43 - -Count = 49 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00 -AD = 000102030405060708090A0B0C0D0E -CT = 3CECEC3F6BB58BA0B1741841DAE88AF1B1 - -Count = 50 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00 -AD = 000102030405060708090A0B0C0D0E0F -CT = A2472A7ABCDB339B2DB832AD750A8341DD - -Count = 51 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 24D13FC368618F830DE21DCAB079DE4E53 - -Count = 52 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 495C599D24D7FCA42D703B073BA0D24C45 - -Count = 53 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = 5ADA4FD8535F0F93A1564D7D67E1DA7639 - -Count = 54 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 058DD23B24D52E3BF8236F16507E1031AE - -Count = 55 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = 858AFD01AD94FD2D159E6F9A65A1452BE2 - -Count = 56 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = 80F1B42E8D8A94CAB726ED9B5A05E1A53D - -Count = 57 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = A502007C9CD3B7D81E19106C8461903C67 - -Count = 58 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = E6CA0D820FA1AFE2F0D5D4D389581ED7A2 - -Count = 59 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 60248073F3048665B84A7D5E3CE043AA8D - -Count = 60 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = BF7DA59153AA8C984A37A4691CED44F475 - -Count = 61 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = ACD1F4ED90041533653261D9C0DDD08977 - -Count = 62 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = B4D0E44DD79D1B9D25A292F30D927DA8E0 - -Count = 63 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = 3D5CD41EFE5576D83583E21A90E8564823 - -Count = 64 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = C3DFB1B98F0F0FFB03979F0B20A0F072E5 - -Count = 65 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = 0F8A8B25A9522BD6A8502B880CF8FE054A - -Count = 66 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 68A7C8774A5F2642C682DAFF94ED1A227F - -Count = 67 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001 -AD = -CT = 49002F0FF647B434EFD57D3044246F21E89B - -Count = 68 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001 -AD = 00 -CT = 015EE799144BA2BA239FF717CCB5D1EBDD43 - -Count = 69 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001 -AD = 0001 -CT = 702913B7CB11CECE85F2682E73E87B4EAD4B - -Count = 70 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001 -AD = 000102 -CT = 1B0A7D636DBC0B079D8F072D32651A0DDFA1 - -Count = 71 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001 -AD = 00010203 -CT = 9C27C6B03D3CA4144853DF8AAA24BE812C8B - -Count = 72 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001 -AD = 0001020304 -CT = 23B2A8E23B2B5C5B9DC470EFBE569B3A72D0 - -Count = 73 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001 -AD = 000102030405 -CT = 452BA72BA114DED56AC2A85A85018B09AA47 - -Count = 74 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001 -AD = 00010203040506 -CT = 1244B70A273108961F785A62F57DBDA0B2D8 - -Count = 75 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001 -AD = 0001020304050607 -CT = 628A67EF4D5BA12FD9CF95C106548718AEC1 - -Count = 76 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001 -AD = 000102030405060708 -CT = B6F3E32FE8AB3DD4D95294ACD48FE75F6906 - -Count = 77 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001 -AD = 00010203040506070809 -CT = 15ABD399A01A45032951F303E09471998C9E - -Count = 78 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001 -AD = 000102030405060708090A -CT = DB7DB444A3F6B2B9B3C40E4B46AB906BE7D1 - -Count = 79 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001 -AD = 000102030405060708090A0B -CT = CF3FB9D86D133E27C5CB96935FE426F571B2 - -Count = 80 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001 -AD = 000102030405060708090A0B0C -CT = F1EEF06E1D547F5BFE7DAC470A026DC56FE7 - -Count = 81 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001 -AD = 000102030405060708090A0B0C0D -CT = 44F4BA43E139A54FF49D62B5A59F1180EC0A - -Count = 82 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001 -AD = 000102030405060708090A0B0C0D0E -CT = 1F838BFA36AA7070A50440C66B2AEF92B270 - -Count = 83 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001 -AD = 000102030405060708090A0B0C0D0E0F -CT = 8AA3F725FF5EF7F12888FDEAE3A2A9793B58 - -Count = 84 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 7E9C85312B70152CBBAAF939E4B7964A5D3A - -Count = 85 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = C94303E80E54054D1E1D1F0C2F1FB940266D - -Count = 86 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = 76A09C0EDA30F69EAFEF52B44172626474E6 - -Count = 87 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 0F948E9EB616F8A939C3E4F2DD8DCF447F38 - -Count = 88 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = 9E27022669AB8B6882C1245850AA539DDAD3 - -Count = 89 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = 6FBDBB881169116EF9B9B82239A484A142D4 - -Count = 90 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 4AD8DE0A0E576E58FE14756094A57597B589 - -Count = 91 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = 16A1208E8EE09D4F0AA635BF47EF100378A7 - -Count = 92 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = D2649D5FBC1062E9EA8046BC352FD86A83E6 - -Count = 93 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = 587F1848886272F9AE03DABB9F6271756E21 - -Count = 94 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 7832C615CDD971A9FA41552B771F05D6966E - -Count = 95 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 17D32181DD99CCD4EAC3344D7505568241F7 - -Count = 96 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = 2F1245C067BAC326581CA5E690C093195ED9 - -Count = 97 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = A8BFC893DBFC1349030491C7B07C5A1F05CF - -Count = 98 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = 7ED6F0CB9730944A8E2794D29D055855E377 - -Count = 99 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 0B941929903A5019432524BB053463DE3DB8 - -Count = 100 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102 -AD = -CT = E781E7B2C37301F079DC045CFB8DA88552D0B6 - -Count = 101 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102 -AD = 00 -CT = FEAAD63F9D37A3197B0A0771187EC34E4889C6 - -Count = 102 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102 -AD = 0001 -CT = EBB49D13485321AB8A7286EE406F0624F9079D - -Count = 103 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102 -AD = 000102 -CT = 428B3F220513248E06A055F8E374D9C4F44E56 - -Count = 104 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102 -AD = 00010203 -CT = CA8FC93A039A1C1A94AEA9F4D5FC15D06CDFD0 - -Count = 105 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102 -AD = 0001020304 -CT = 6DDCC3790F1E561C07B2026FCBE13EADB9B9CA - -Count = 106 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102 -AD = 000102030405 -CT = 0A75B5CF31F94AED463A0061C6ACD19CEC8DB8 - -Count = 107 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102 -AD = 00010203040506 -CT = 517C0FA6CB59783B74F932762A24FA66B7DF35 - -Count = 108 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102 -AD = 0001020304050607 -CT = EA4D04792F5C8D864F1FC2DEB915B4789919EB - -Count = 109 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102 -AD = 000102030405060708 -CT = 1F9E49D7E3CC924B08BD52D3C0F92109E235DF - -Count = 110 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102 -AD = 00010203040506070809 -CT = D20E596F372047F1D9A33B1A76D98125DA5690 - -Count = 111 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102 -AD = 000102030405060708090A -CT = EB4F6D2F05BBB900A3B155A0DD1A4541CF3058 - -Count = 112 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102 -AD = 000102030405060708090A0B -CT = 1E80021449F25E8F9D8BC62D044DF0C9F94B79 - -Count = 113 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102 -AD = 000102030405060708090A0B0C -CT = DC7385E70EB35CBFBD9D31EB08BD345A93A375 - -Count = 114 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102 -AD = 000102030405060708090A0B0C0D -CT = EB9A112DC850F239861AF4501947AFB9BBB846 - -Count = 115 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102 -AD = 000102030405060708090A0B0C0D0E -CT = 38A4D4D5200E973B43406CCDF97B9963C09B2F - -Count = 116 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102 -AD = 000102030405060708090A0B0C0D0E0F -CT = 8C13F8F3DA281AE309883FE4A58EB4200031F6 - -Count = 117 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 1C9D60B7FB115A3D4F1BDEB23BDBF8F58A484D - -Count = 118 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = CDCFF45C2E7BF816C573D7EC8D4058D0CE8425 - -Count = 119 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = FE44101891FB5CB00D7A5301EFEBB4C4AB3F60 - -Count = 120 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = FD11E555D9FFA1FBF25BAC81ED8BAEBF648FD0 - -Count = 121 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = 1AD5F2475682773C6933C6B0FBC1EA3CB86B6A - -Count = 122 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = 7DD09F80A398B514F4B735D82B6D36D5EB645E - -Count = 123 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 75B3C0633E543C31A842186C744F609BFD67D5 - -Count = 124 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = 982CBE2F1FC8629F9A4EFAFA8E4AE37445A96C - -Count = 125 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 190CABDE7B3B0AC4184321D18DB47353315EAF - -Count = 126 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = 4027F7E0C1DAB8433D6C8B50462A187D12546E - -Count = 127 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 9D1F5A5E839A693538E914962C5DAD2FD38B68 - -Count = 128 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 812C56CE4E29731F057ED3CF82785F430AB86F - -Count = 129 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = C85F41E2F9902A3E710B5B713EA1DD80192153 - -Count = 130 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 2EEF61186CEAC74270DE100495029760C6165F - -Count = 131 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = 44C55E2FF9D362F4D571CBD9027AD0CB433F41 - -Count = 132 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 9DC083372358B7EDB9ED8F037ED1739752FAAE - -Count = 133 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203 -AD = -CT = A6291976B10638423346BABF082145338C0F59EF - -Count = 134 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203 -AD = 00 -CT = D2EDB5E66670D7D11F65068A9C67A6A49C003AC6 - -Count = 135 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203 -AD = 0001 -CT = CF95AC29FF53CD5584E85D5527F0363151C41D10 - -Count = 136 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203 -AD = 000102 -CT = B0E4AEFCBBAD05D831C22F16877A2034C636A766 - -Count = 137 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203 -AD = 00010203 -CT = C084C594518148D95549955894D2BE136995FA79 - -Count = 138 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203 -AD = 0001020304 -CT = F7AAFBB355D985D5CB760FC5D252D85F30E83854 - -Count = 139 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203 -AD = 000102030405 -CT = C24E73B64302E45A4151F8C2F7ABAB442FF2B0D8 - -Count = 140 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203 -AD = 00010203040506 -CT = 829973EA76C67B06345E9824E9813A650C9BF91A - -Count = 141 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203 -AD = 0001020304050607 -CT = 40A2B61445041E07D96CE64407226FDC8859EC24 - -Count = 142 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203 -AD = 000102030405060708 -CT = 2DA910B50A689F9453D6DF87AD7BF806A0726820 - -Count = 143 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203 -AD = 00010203040506070809 -CT = 26732F5657E4D4E0DD7F3400BD5092CFA05E5EB0 - -Count = 144 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203 -AD = 000102030405060708090A -CT = 58F2972A146D382F1061A161BB0D2EA28EEE6852 - -Count = 145 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203 -AD = 000102030405060708090A0B -CT = 1E5D5E34290C3DBD8F135C257B4EE52A1AEFC03B - -Count = 146 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203 -AD = 000102030405060708090A0B0C -CT = 1835770AD5170BD547F308AB4F8D0668E89F58C2 - -Count = 147 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203 -AD = 000102030405060708090A0B0C0D -CT = 326D25FAF722BC15978C9926BE079234E06769A0 - -Count = 148 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203 -AD = 000102030405060708090A0B0C0D0E -CT = F9FF2E7522AA65DE6539C960145FD1A4CBBDFAEB - -Count = 149 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203 -AD = 000102030405060708090A0B0C0D0E0F -CT = 013EDA090ACF76438E68B8DDB025EB4C635AB460 - -Count = 150 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 790FE9A972F1EB93DCC6A5B1FC31B032E59D5258 - -Count = 151 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = D4E256F38255A15743A23C168AA53C7321B3AE06 - -Count = 152 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = 8588CC3CA6AC0A484436B3C4FC19F847850D1BEE - -Count = 153 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 4AA9E91D669C1C9ECFA263E3A844FF32613BFC09 - -Count = 154 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = 93BA3B23E13AC0DEFDCB0ECE6FA85EFAF0A39301 - -Count = 155 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = C598C65E0A4EBC8356236C097A48F7F834625CFC - -Count = 156 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = E3C14061E356456958836167BF7DB4195A87C983 - -Count = 157 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = 83A481A807C60BD23FDB6B7F49B7BC2B055FB8BB - -Count = 158 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 853A202CA4EE103B38D18C09FA64956787BD813B - -Count = 159 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = E00F2109DDB35B63132FAC9A1BD512527DFADBA7 - -Count = 160 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = FABC3263F830D8EAC9FC57B6BEB8B721AA42510E - -Count = 161 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 78C9657D2B3EA2C5D686F7F3137E23A38094EBAA - -Count = 162 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = 2B1F70E34873E3812E76E5B5EDA8DE6F850CD9CC - -Count = 163 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = BA2F556176FA1F301123416AE68760519111FB37 - -Count = 164 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = A2C2E5DA0BC096DE595FCEF425CCD762AFD201D4 - -Count = 165 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 16AD49622450CE708C6AFDE41659FF71591589F3 - -Count = 166 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304 -AD = -CT = 0D1D71DC0FF76B0D631FB97BEECDA28ABDFB8FB515 - -Count = 167 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304 -AD = 00 -CT = 05B679F542E7070E4F5C725CE7232510D1BB0A1C59 - -Count = 168 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304 -AD = 0001 -CT = 660B4198CCEE838673A33F70842EBD48231EA7CAAF - -Count = 169 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304 -AD = 000102 -CT = FE2D4C46AB26D1F0B1B4DF4880420AF1A35C1A3931 - -Count = 170 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304 -AD = 00010203 -CT = 6770D30B8C53798912E4907BA023E41D7F2C4CD8F0 - -Count = 171 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304 -AD = 0001020304 -CT = E3BC83D80BBCB7133838162A5168E92D696129D649 - -Count = 172 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304 -AD = 000102030405 -CT = C3C4010704952E3426A0E23D674C3C0B2E6DAF9207 - -Count = 173 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304 -AD = 00010203040506 -CT = 320A7EDE6195562C45140972E35367BDFAA95AACA2 - -Count = 174 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304 -AD = 0001020304050607 -CT = A4ADAEA4ECE359ECFBE2782EBA4EF36C7964CC2B50 - -Count = 175 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304 -AD = 000102030405060708 -CT = 053E25FCFA3C90B135EDA590D64B4022B1362D2299 - -Count = 176 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304 -AD = 00010203040506070809 -CT = 5DC1BF146E25ED467055B52AFB39C7DCBCFBA18078 - -Count = 177 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304 -AD = 000102030405060708090A -CT = A5DC676F98146F8C063FAA9F0FFD21AB404A6DCBF8 - -Count = 178 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304 -AD = 000102030405060708090A0B -CT = 9C8AC31D5F6549FBE9FE5CB22540F471F443592A85 - -Count = 179 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304 -AD = 000102030405060708090A0B0C -CT = 924C229731D932C664AB223CB8BE2453F02D7ABC84 - -Count = 180 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304 -AD = 000102030405060708090A0B0C0D -CT = 4129684072F22F6DE6BEBA93F01EF80836C5DFECC8 - -Count = 181 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304 -AD = 000102030405060708090A0B0C0D0E -CT = 142F849B01B2E2B451A0433C757AF3C619982A9764 - -Count = 182 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304 -AD = 000102030405060708090A0B0C0D0E0F -CT = 0E3CA9D9D323277376EA693B8B7F23A2D7AE76A299 - -Count = 183 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 40A735C32ECB9D7AD5423B6BA36A123E361D581EDF - -Count = 184 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = DEC80732BFE1DD010779C49AE625AFB220D5E23B75 - -Count = 185 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = 33D7A9A1186494CAB4EC73416FC2FECDC98A8723CA - -Count = 186 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 016810DBA112802ED1BD2C56184365676FA7298DF8 - -Count = 187 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = FCDD7551A8EFDADB83459789E684DC1E51C12EF5A0 - -Count = 188 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = 01708BB21C0397F5DBE2D8DDAD349267EA40F9E457 - -Count = 189 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 7A720F85D68924895713C6753008351E73F7639F1E - -Count = 190 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = 1213D0AFC959848581025459AC38CB373111E12E1F - -Count = 191 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 16CA193430A8A50920FB5D7BB3ECC63C7B804104AB - -Count = 192 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = 0F5D66A31DF1AF33312CC89D990F3FFDDAEE00E160 - -Count = 193 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = BF51878D98C8B99A4D1E942E61FFB736E83E232E77 - -Count = 194 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = DB3C6345FD4EBD1ADD375DD8CF5AA6A716F76FF246 - -Count = 195 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = DC5A78CFF53A8AA97EAC21554B39E6BE66CD06A0FA - -Count = 196 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 6FE173ABBA440BF8D030DF330CC186B4D4FF916658 - -Count = 197 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = F051718EE4E985E8DEBDFCA86293B6EB9ECB940811 - -Count = 198 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 7D946F8CF85805772410191981B31D406946072E18 - -Count = 199 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405 -AD = -CT = 37ABD57DC5B7173984990C5659CF436BC8B7C914A0DE - -Count = 200 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405 -AD = 00 -CT = FF5751B6A9286C5E85685C03A71E308AC37CF181F5F9 - -Count = 201 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405 -AD = 0001 -CT = FFD5D502785866145D8F56C42A40851D2253BDD7E35B - -Count = 202 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405 -AD = 000102 -CT = C33B18DCDABA3F1A26CEFD44FB18C731CDDB1E22A9EB - -Count = 203 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405 -AD = 00010203 -CT = 17032160C7CC88B86217C06FF6E08DA46DBC0EC65D23 - -Count = 204 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405 -AD = 0001020304 -CT = 57319683C805E997367374EB7B8450D712A3C54B921D - -Count = 205 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405 -AD = 000102030405 -CT = 97BF1EFE28BD23E9F6D88CE93D318B413AA14C7A53AF - -Count = 206 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405 -AD = 00010203040506 -CT = 15BAA06B81BCDE2A2D705EEDD807948E151EE07F1C08 - -Count = 207 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405 -AD = 0001020304050607 -CT = C5428CDD73ED1664D8961C29A1FB541F28CEEC5B34F1 - -Count = 208 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405 -AD = 000102030405060708 -CT = 1615EC1EAA4E360F3C97A8B001590D08C72536979C9F - -Count = 209 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405 -AD = 00010203040506070809 -CT = 19A42219C8F236388AEDEE70A36928C7DF6DC1EE89D8 - -Count = 210 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405 -AD = 000102030405060708090A -CT = 1D387E53EDC7B768D5C82E2774CD7F8107D16C57E781 - -Count = 211 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405 -AD = 000102030405060708090A0B -CT = 7A0AB96235760CE5CC10867435D030CEB440FACB9FDB - -Count = 212 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405 -AD = 000102030405060708090A0B0C -CT = D369A22BF242FB0A88DBD02E6EFE703C18CDB880CAC9 - -Count = 213 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405 -AD = 000102030405060708090A0B0C0D -CT = 7EF5B7954815AFE31466609F3CFA9F7C5B402D9661FA - -Count = 214 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405 -AD = 000102030405060708090A0B0C0D0E -CT = 62E897D1977F6CE46E9A37792F67C52C463F8EF485B9 - -Count = 215 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405 -AD = 000102030405060708090A0B0C0D0E0F -CT = 20FB54812BF4267355D48BC95D3D31A1016C6F24B7AA - -Count = 216 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 95726E27F58D8E82BB1F5F2592EB01A6CC2DC68C2772 - -Count = 217 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = CF0049F113D5EAD9A6644608B5778C525E90A3A9804D - -Count = 218 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = 20203F46990500E57599FABB5BEA2DDF341CD0B873B8 - -Count = 219 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 535F42C719069DF99DC02CF310604A864B078189C830 - -Count = 220 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = 267BA34E62E145559337F50D2B1D9FA8B67B2DE80E5B - -Count = 221 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = 530D6AD11B83E110463AAE94E11A97194F35B42D3F3A - -Count = 222 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = F158CAB656D19E2927512524AE7E873EFA7007157C24 - -Count = 223 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = 1DE9CB3514C38282A69F9AF3BFB61B088D71456C8286 - -Count = 224 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 1CFE0A3F18268D6FD8E90206096D0F2590C0B824B300 - -Count = 225 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = C8912FD7D03A89E5F69479B10D48C9F9DF1CC284754D - -Count = 226 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 0FCB8E8F86E0AC114A65865451F7F77EC554BD8262A5 - -Count = 227 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = BC982F033B176D70A7D2B7FF3B8DDCDE33E548749AD9 - -Count = 228 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = 8B851BEB8CC2D26B5340F21FB5AC6109221CACADBC2C - -Count = 229 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = D1C9EDABCB9EA93573EFB31D988B500D6DFD8A7227A0 - -Count = 230 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = 59B237DAD4776F03818A6F5FEDFBC500738211854DC3 - -Count = 231 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = D2E83DC105E803D5FDD63DD57D23592D91BC1758C692 - -Count = 232 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506 -AD = -CT = CFC258CD4A6292D25713E9C5BE9438D11B5E34CF8843AD - -Count = 233 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506 -AD = 00 -CT = 49423949D76A614166005CD0909C791C33345CD09831CC - -Count = 234 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506 -AD = 0001 -CT = 9BB1BF0755DF33D1FD5D6B139A56179D04F9F474A67315 - -Count = 235 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506 -AD = 000102 -CT = F76BEC9465B823F64AF77D6B6560979C08C10AAF407D29 - -Count = 236 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506 -AD = 00010203 -CT = 1743A38155066991602B0214E3AB9DAF1D5EFD1D733F16 - -Count = 237 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506 -AD = 0001020304 -CT = 04847475A12C002ECBD48CEE5C0FFF03F259B5F238464F - -Count = 238 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506 -AD = 000102030405 -CT = A286D5534A560F3BA1F751A72E3224C4E19C2BB608EA78 - -Count = 239 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506 -AD = 00010203040506 -CT = 0D49EE39F3B45086AF188804A9C3A2E0F639EC2F1D4436 - -Count = 240 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506 -AD = 0001020304050607 -CT = 34F5ACFF568BA384A817CB0911CED2C13BA4BA6B10ED08 - -Count = 241 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506 -AD = 000102030405060708 -CT = 5B006EC95585D66ABB47D71F3ACA326DE9532380635F5D - -Count = 242 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506 -AD = 00010203040506070809 -CT = C1CB8EAC1ADC2886F097C0FFEC9B40BCDFF490FEDDFC1C - -Count = 243 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506 -AD = 000102030405060708090A -CT = 91B0A6E97E30B762D626C79A1C037A9636EC4761A89CBC - -Count = 244 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506 -AD = 000102030405060708090A0B -CT = A919710FEAF1ADAF4E87258CA1A2E6ADF3FEA4F1AA2614 - -Count = 245 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506 -AD = 000102030405060708090A0B0C -CT = 41A6E93856D7543C2ED826AB206E7EF315FBE185E571B3 - -Count = 246 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506 -AD = 000102030405060708090A0B0C0D -CT = CFD47C7B52B81CE4D0CCF1A47660D45A7B4B57EB440C7F - -Count = 247 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506 -AD = 000102030405060708090A0B0C0D0E -CT = D1B6699ADCB178367B16C836DD6F4622DC37DC20ED7AE3 - -Count = 248 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506 -AD = 000102030405060708090A0B0C0D0E0F -CT = 5EB7AED4A67D2A9A6E66D641C54370BAD1B83D2A517C8C - -Count = 249 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 6872F193E19E0271CF05E225DEFF950229EEACBB76DE30 - -Count = 250 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = E6F0F64820540677E14C640A5F16D5084FCD83373826B0 - -Count = 251 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = 314D093712646EEE248BDF6B14F9C5E859221214655A8C - -Count = 252 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = CDCDBB8860541B2848592127BE7D5205EDFD1C44F606FB - -Count = 253 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = FE3969ABFFF2D1812186A1ABE3F6F6C578D32E558007E1 - -Count = 254 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = 763C00132241CC365DAC9353D0403C933B125D9B91D614 - -Count = 255 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = CC80B39648F61CD89980020B4FC3F4D30211AFEF3CBEF7 - -Count = 256 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = 57E556D686BB938ABA4AB5E89A12071F75255C265C4AA2 - -Count = 257 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 3AEF04DB0D7889DB98296DCD7A8DF5946DDF689ED5383E - -Count = 258 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = A3656265CBA8808E19B94DEFA315CD00F586F842437DA2 - -Count = 259 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 6AB97232B7B100930B800EC1C53C6D3D09F85E99A5123D - -Count = 260 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 0333705A6EEF7088FF3899F98CD0B3E9EC47B0C36C484B - -Count = 261 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = F23F8D8D0B14156A4B4163E79690E44AB951207A61D912 - -Count = 262 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 774AC03D6639A9CDCBCF28BB18337745AA2F6454C84431 - -Count = 263 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = 88AAC4CB1A924E5A97BCA7CE12543A65A6584352F0D7F9 - -Count = 264 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 9641DAE6F8B33436FC804388F5CAA8B3F2616851E95CD8 - -Count = 265 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304050607 -AD = -CT = 11F338C84870385D2D453DD8E77AA69462A7FE6E863D98EE - -Count = 266 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304050607 -AD = 00 -CT = E08156A86850B204985F84D0AE75ECF01B63B44D0CFE15D5 - -Count = 267 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304050607 -AD = 0001 -CT = 352D9B19D5E7803435056C7FDBA625FFBD80FB7783F59B6E - -Count = 268 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304050607 -AD = 000102 -CT = 6BDA5C2A0620D411F1BCCE05B0CED24171F76514E93090AE - -Count = 269 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304050607 -AD = 00010203 -CT = FFDF2C1B622593CF9F0FF153AB3DD2DFE975A120ABF26EC0 - -Count = 270 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304050607 -AD = 0001020304 -CT = 9BEEF6E409796871BDEC69D9A3792BE9AA94176938E3E582 - -Count = 271 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304050607 -AD = 000102030405 -CT = E06FAF0DB86B8A5F4C45172206F4A6F7E49946FE70855093 - -Count = 272 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304050607 -AD = 00010203040506 -CT = 36ED9EAAC290D5C573234D3D1D6A552F8B84639A1DC7CE92 - -Count = 273 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304050607 -AD = 0001020304050607 -CT = 2661C08F8D488CBF804E74E493348411889CD989B8AB82D4 - -Count = 274 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304050607 -AD = 000102030405060708 -CT = 1A6390D4B67D130F5AF8C569A9C5D9E15B715495DFD651DC - -Count = 275 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304050607 -AD = 00010203040506070809 -CT = 70EF12D29DD47F31F3C46071CA0373427A143AABA1A0FA13 - -Count = 276 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304050607 -AD = 000102030405060708090A -CT = FF388197F4CB125515744C6F4312C89B53620357D2705BA2 - -Count = 277 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304050607 -AD = 000102030405060708090A0B -CT = E434B4ADD75ABC98E26986B7C383C9BB7A3959751A6E20E4 - -Count = 278 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304050607 -AD = 000102030405060708090A0B0C -CT = B64A9DFC7C3ADF700D9E8AB443A5F389E82E5A3A8F3BF596 - -Count = 279 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304050607 -AD = 000102030405060708090A0B0C0D -CT = 94FDC76D2361318FBAFBD82BFA280C2B26F2330B46C2EF91 - -Count = 280 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304050607 -AD = 000102030405060708090A0B0C0D0E -CT = 86F825BC2059D5F62937A74D84651C34676DAC821C679870 - -Count = 281 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304050607 -AD = 000102030405060708090A0B0C0D0E0F -CT = 0AD84AB663C4034704EC156A3A6BCD2451F6ED419B662925 - -Count = 282 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304050607 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = A0168CDB66913FA9425CAB9DB424D93D0A3E700440FCCDB2 - -Count = 283 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304050607 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 6F0B7A200865B26B384A34ED919393CDFFB26BBE0337CAFE - -Count = 284 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304050607 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = 2D3F0C04AFC60207BEC835AA5DAC33F480C11816486275D5 - -Count = 285 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304050607 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = D809E2970FF7FEC167A08873B041E9DF826BA211649E5C57 - -Count = 286 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304050607 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = 45199ABDBF8FC882DF7EA2E9C4D862A86A5417EE3DF134D1 - -Count = 287 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304050607 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = E5DB2EDF5CBBEE50C50F78206CF9E78738E9E151E8C87C3D - -Count = 288 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304050607 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = DDEC1ED3DC2B8DBE88F5574AB7F4E90AE9624A36A4DFA226 - -Count = 289 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304050607 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = 4C772DCF54CEAAA46795F117FD04BB7D03116B26BC7054F1 - -Count = 290 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304050607 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = DD73598B65F23E16143D6DAE3D9C36FAFAEC5ACAFD0EA8A7 - -Count = 291 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304050607 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = D1ED9F38E2372B3FA2E631618ADB6F90DCCF57E1FBE0581B - -Count = 292 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304050607 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = C09AEF667B4A0541CFDEB793AEF77E133D5D3F350A570004 - -Count = 293 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304050607 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 8545EE2906BC8D99D1E1053EC95C18E3088A20759E5CB2ED - -Count = 294 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304050607 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = 49FA4D3438717EC3309CC9B01C23095AA514A37535A1E2C6 - -Count = 295 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304050607 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 366CC2537EAB871A08429A076BEBF20B9CE885AFE3ACB45D - -Count = 296 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304050607 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = 15797050A0401139743802B9758FB83DB869DFCF179BAADB - -Count = 297 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304050607 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 14E83F4B55FD8CD30DC86CBCF5103F56E090786D2800134E - -Count = 298 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708 -AD = -CT = C9314C5ED98A3120F2A790806CF99D0B60B01145FFFC4D12D5 - -Count = 299 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708 -AD = 00 -CT = C4123FF27EE987BE955820871C1CFF1883BE7A95840E0ECDED - -Count = 300 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708 -AD = 0001 -CT = 89B28009F1C1CBA4072CC42504E7E8554E08FAE26E937DE4AF - -Count = 301 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708 -AD = 000102 -CT = 56180391A85E8779A4E7B58D27E307F92C4C2DDADA9A29FBBF - -Count = 302 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708 -AD = 00010203 -CT = B857CE646ADA138921EEF8800B41A2F59778749CFB650AD57D - -Count = 303 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708 -AD = 0001020304 -CT = 454D9CD5EA71CABAF2E605779C53F6D3976314558E39071B2F - -Count = 304 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708 -AD = 000102030405 -CT = 547E82E6AB7A66B924542775ED0D49056D742178D6C22DB0C1 - -Count = 305 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708 -AD = 00010203040506 -CT = 64F3C8519D5A9DB68201D7C0FA1C059DA663994C8D4FC15317 - -Count = 306 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708 -AD = 0001020304050607 -CT = BC6C4A10A99EB5D4FE82434DF0C1C8D99ED22EAD3D809E2020 - -Count = 307 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708 -AD = 000102030405060708 -CT = 05EA001E4AD1FF8002E922E92E897837F0B754B1C9EE9629B8 - -Count = 308 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708 -AD = 00010203040506070809 -CT = BEEEECAF065A2ED134B917055FC3CEBF50D8EFBF63122B8B1C - -Count = 309 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708 -AD = 000102030405060708090A -CT = 27FC0C49811D420159EB45DC0967F8A37CD223FF6205BAB3E0 - -Count = 310 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708 -AD = 000102030405060708090A0B -CT = 161151F618B596A175C6F136AF1B5ED4E7B45984E6ABD6CA01 - -Count = 311 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708 -AD = 000102030405060708090A0B0C -CT = D3BD51D425BF839D5835993B285E096676E1C580F0A4515584 - -Count = 312 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708 -AD = 000102030405060708090A0B0C0D -CT = 11662B1262E9B62F7A0EB13F8C1BEDF63169EF6B9A75588786 - -Count = 313 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708 -AD = 000102030405060708090A0B0C0D0E -CT = AAC5ED11E6EE0128CA1C95E8A05CB82A2A0305BC13D0EA5F6F - -Count = 314 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708 -AD = 000102030405060708090A0B0C0D0E0F -CT = 3483A38386DB009B2A2259ACA218DC6C7324836AB87E00FE32 - -Count = 315 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = CABE889B0A630EB3E306DC484F1078D61DDD24F62D99C4E463 - -Count = 316 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 3373D5CE8A1C6310F0C8E4678A710617519968BF6F404C2320 - -Count = 317 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = 1B769B51807AF8EFF7DC035FF3BDF2E9385F09A78F3835C0CA - -Count = 318 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 5857A519FC523347EE818FDB8AB445FA68E176D9C6FC318DC3 - -Count = 319 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = 95F6827CD1472158F41B789D59624C49835F896AF32DFD49C2 - -Count = 320 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = E9209816404D309D1D141C804689D07A36CBC60337B610F8A9 - -Count = 321 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 9257BD54ACB13648BCB574C22B4243E63E7D8BE016130D9FBB - -Count = 322 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = A57F1C404ADB06DEDF5865434138A17E30463435474C50D748 - -Count = 323 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = FF478EDE3CD23C4BAB59C8188F25DB531E60160BCB5613B523 - -Count = 324 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = 5CC80F31575457AE2B505EB3765CB539EB00FAEF2E2761D943 - -Count = 325 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = F6A86E8965A4224776C334FFC7E86D44FA03ACB7BB2BC70B9E - -Count = 326 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = A627D4B1046A2E0593D89B6DF2734A215FC0FD992E94D44D6B - -Count = 327 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = 91964FC5EB2E5F61526F1F488C0414510CA65B11F9A53AA399 - -Count = 328 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = ADFDA3CFE847C332F20FCBBDF3E5390A71E5A0B2DB3F33AE1D - -Count = 329 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = EF4E2BDE17A0F1395469279D0DB37BA0E3EA28732F8F7F6646 - -Count = 330 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 5C2CE3811B7259EA279E228559B2AF55CB5B5F380CDB133F11 - -Count = 331 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506070809 -AD = -CT = 445FEBB943EC3E0EFAE2D6146FAECF4C614F2D06F26040968FF1 - -Count = 332 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506070809 -AD = 00 -CT = 50626005ACEC908F8E7463D45C034BDFCCEBB86BFACB9982F2D7 - -Count = 333 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506070809 -AD = 0001 -CT = 81A54F8D3C1839D16DFD06052E66900D2B69AF9F6850B7B4CB83 - -Count = 334 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506070809 -AD = 000102 -CT = 764218A15DB05308D1544621E8F980A6A87814A7E4587D208DFA - -Count = 335 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506070809 -AD = 00010203 -CT = 285CDAEE4B905086A0BB5B4543D8FB930200DD5E3E6D7F7F8AED - -Count = 336 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506070809 -AD = 0001020304 -CT = 0B2513874CD481BDADAA069F0548854E9DA68F425D70BA65F1A1 - -Count = 337 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506070809 -AD = 000102030405 -CT = 2A0932DAD1133EB8477FC3E0E9A207A7C2C2D124792B95AE9962 - -Count = 338 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506070809 -AD = 00010203040506 -CT = 64E68A5AC40D14C00E909FF4C16537B4BD796FAA6B7634FA6581 - -Count = 339 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506070809 -AD = 0001020304050607 -CT = 64A3D493607B3081190B37226C28FF8E240880D2B351BEE4E809 - -Count = 340 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506070809 -AD = 000102030405060708 -CT = 64CD61A101A78D43F47BC74E3D4D7A6B74F152649FC32AD36B19 - -Count = 341 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506070809 -AD = 00010203040506070809 -CT = 42C30422C8D88100C880F062E4FBBD1E1E06CD6E730880B0C14C - -Count = 342 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506070809 -AD = 000102030405060708090A -CT = BB0E5F6CD865EA5415DD3A90B5FA744D37F0D3D62E8A100E8227 - -Count = 343 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506070809 -AD = 000102030405060708090A0B -CT = 3B8D37F581CA9C9B22ADB0CC012AA80580335281D5D231F038C8 - -Count = 344 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C -CT = 4271E70502D40773296B0771637040CB5E336BC6A1F74AC78C4F - -Count = 345 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C0D -CT = 33EF0086DB51F2CF3ECD5D739390D1E44D36EFD6C6A0AB0D2C8E - -Count = 346 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C0D0E -CT = 08C95734D86657FCC2EA49120D490F317D9C31D978CE5CA22A94 - -Count = 347 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C0D0E0F -CT = 14463678AE38C87D3E73E812154DAFB7F417B9437A355524BC47 - -Count = 348 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = F823F5CC03A8AF96705D8037AB26D29414A353738B55BB262AA8 - -Count = 349 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = A255459EC6E3C5384BD4A6FCA55CE6C577451D59F59F11A79280 - -Count = 350 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = 3FE8AB588A91D22E8687B9DA56D2AD4A7578BC30475CD7653A70 - -Count = 351 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 55EEE17310B2F232DA925B6A07F26B2B3836D0166CF4CDBBC7EB - -Count = 352 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = BECFD73E9E2A23227B76F3680DA9DAF9E822447101E8D0B8F75B - -Count = 353 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = 279253263081C78C2F09F726476AFA6F347A2A401A4202DB2E8A - -Count = 354 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = F4DA8B3C7D8EE2FEC7B71F099CE58B8E809F260E6F42F3FE5F14 - -Count = 355 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = 2C388249EE7E061433E95E806BF12B4A58281F705D810C6FB869 - -Count = 356 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 15E6D5ACC35A668FD0337BD2C50844F1452C4A35551A8A21AE87 - -Count = 357 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = ABBA3A2AFACCA7774CF8BBB308E8831CDB9C66EBBACBD011F6FF - -Count = 358 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 45DAB9BE131FEB88C87FABB05415B6643356A588F2E791ECB32F - -Count = 359 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 5FE7B6D98CE5D7736EB987BF4876D1274E507BA74F1BD2CA1293 - -Count = 360 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = 3B95EFC341A522F634CDAAAC25A6896A5A8C77FEFC812229C5E4 - -Count = 361 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = EA0B152372F8CD1D48ADC8CE5A3611332AA58B413D85F9143B29 - -Count = 362 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = 32BC2968487C5B93D0B23E66A2C1184CB6C42DD177C017DFC594 - -Count = 363 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = A5A6ECDCBBFE9CB144AAE15FBE2BC4304A6777D5EDEEBDEF532D - -Count = 364 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A -AD = -CT = 43D32E9D6C70FAB350CF25C9979D914A42000AF1BF752A01A21731 - -Count = 365 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A -AD = 00 -CT = 65AEFE2E93AFBA1262247C0A04E40BE69C245A2E71AAD3A48E95F5 - -Count = 366 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A -AD = 0001 -CT = B3CE217D534EA670F36E01027C40E01D872E0F445B3772924DE0ED - -Count = 367 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A -AD = 000102 -CT = 542405EAE94211E2B675312152A4B535646597C99670B402DB8C03 - -Count = 368 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A -AD = 00010203 -CT = F4C7A38B6CD89C79E0407FCAB35E140C14077AEE093AD9D8DEF64E - -Count = 369 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A -AD = 0001020304 -CT = B3D7D1D68483A5C958A1ACB4999820403DF32ECD97B6340F51A1D3 - -Count = 370 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A -AD = 000102030405 -CT = B63B345110B87712D7E39F6FCDF7454EDE9A39C2A19CEB1B86C602 - -Count = 371 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A -AD = 00010203040506 -CT = 768DB3077EC0D51837ECAE3289EC234E1DC3FCC62112BB154564F7 - -Count = 372 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A -AD = 0001020304050607 -CT = 2009207BD724CF4971C73A30A43D1E9359E0C7302B87330B455110 - -Count = 373 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A -AD = 000102030405060708 -CT = C8F8DB56A8E300AA70084FFE0F2CE8553DE818F273300332AAD3B2 - -Count = 374 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A -AD = 00010203040506070809 -CT = 140E47DFBFF3017946F9059D68BE5225592D24E237BF799EC5B175 - -Count = 375 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A -AD = 000102030405060708090A -CT = 5DEC3E376FF18BA003682F757C85E80B39515A22B692FE82E01147 - -Count = 376 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A -AD = 000102030405060708090A0B -CT = 4659B52BE189B74F4AE2312E8942F64FDE8D2540B69958DAEF9948 - -Count = 377 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C -CT = 6ACF7171FFCE60E495842BD7E837014436229807358018A0DCD919 - -Count = 378 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C0D -CT = 08F56B5375EA28918A3E63F12B0DB2AD8BC10B2CD29718A102ED8F - -Count = 379 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C0D0E -CT = 73B7FED0065BB9BA65CA91C0A268CE182C59A2892014777733F3AC - -Count = 380 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C0D0E0F -CT = 56713BE24E92499A838509252243622D0DF541FE683B896433AE51 - -Count = 381 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 812893DD77C92D981D87412C429124BCC9E41573DFA0A39D4ADD89 - -Count = 382 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = A411B898DC89A575F685B3AC4BE0752BC21C5BFDFA29F2B0F93C7A - -Count = 383 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = 78E6BBDF3C6CA3C24BFA44F35E2C5AC677F18927946F4C78145954 - -Count = 384 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 5554FCA49A5BC15DE9BB2E62BB465C11687F464FBF49012CA6F0CE - -Count = 385 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = 6A46714A9AD2139B8179A8B6D4D0B7720793EDA81D681AE9F7CF41 - -Count = 386 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = 97D207A02E2D2C5F534F3C102C7080874FE24F6F1AF0EAB91A398F - -Count = 387 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 71932047747EAC7E83DE17E034FB1EC0D0C0842782E6C2750FDDB6 - -Count = 388 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = 6C0C41CA5048399E91EB94B883904951555E140EC885AE035555F6 - -Count = 389 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 83BB6BC3D77078C2AFCCBAE933264231556700F49B7CBE71840F5E - -Count = 390 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = 10F2279367AF28EA859BD6F9344D11DE25740C9A7E07C317C323C8 - -Count = 391 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 8D983D2EE91346E5EEB6BF4C8178D49C651BA9BA9CA9AD54BF88B7 - -Count = 392 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = C562E5E21CC667CB67C59E0B1FD9FF5F62683E8A37686932B2E88D - -Count = 393 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = DC38FE235019E0BB4F2CB6935429C4B626C456AB684E53282CDB96 - -Count = 394 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = D127DA13F5D5F58AA731FEA54A937A0DA71E0514DD57B6C1382079 - -Count = 395 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = 8845971D89A9D74B4174AB7CFAB8186EC81C4B26BA8C92968C1ED5 - -Count = 396 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = B3BBAF32D9F6B69B47CFAA10E51A9D84C80FA2BF265B5E77D1C4F8 - -Count = 397 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B -AD = -CT = 9D0CEEC13406C356F50380FE980E0DF5D073EA7F3AB56C1811CDBB5D - -Count = 398 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B -AD = 00 -CT = 36ED875E89C8A5B91AE81A74F3D61C4F2B4B7E5C65EAC7555872DA5D - -Count = 399 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B -AD = 0001 -CT = 7DC831E08AD58E5CEA8634B0C905305934C8199A849376D958A9A3BD - -Count = 400 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B -AD = 000102 -CT = 2AE41949706F4D9ED42AB684F4CD8494FB0A6ACA2DDF3B7E6518335B - -Count = 401 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B -AD = 00010203 -CT = CA05C5FAB4941D7E4C3CE94045B126E1C5FD40C87C84E3BABBD79A42 - -Count = 402 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B -AD = 0001020304 -CT = D5418E614CF46000B2EAFC29FAE4C9A4B648B325AA66D4C9381AB674 - -Count = 403 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B -AD = 000102030405 -CT = A25B3B41EDB7B3A87B4760CDFA64E86CE795DE4ADCB1CE674E382598 - -Count = 404 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B -AD = 00010203040506 -CT = BF2A5AB66C1C4009D93231034DE194F13B61EEA6BEC3CF1ADD1D7AE7 - -Count = 405 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B -AD = 0001020304050607 -CT = D9E1487A0D2DFFF70CFD166C9A644DC853C47E5601A93F209DA128CD - -Count = 406 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B -AD = 000102030405060708 -CT = 32CAA223B65652536E70D850311C5F446C61FE00D825E20725C360D5 - -Count = 407 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B -AD = 00010203040506070809 -CT = 7D55869CF6F4203DAF237CE140995FE6D8D7394388CC2A72225FFE28 - -Count = 408 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B -AD = 000102030405060708090A -CT = 625D3EAB2E28004042CC5FC8C4366260F2E79469F7BB325F831EFF96 - -Count = 409 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B -CT = 69DE63E6F26EAA03DAD599774B1A98F94EEB8037371A457135D19FAE - -Count = 410 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C -CT = D0317C43BD0ADD654C4CFA1529C6827B54CBCECDAAD29CE08214764D - -Count = 411 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C0D -CT = 1D96E78B7AD258A04C57111C714A6E4611F4932DA1E657A332D7801E - -Count = 412 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C0D0E -CT = A85C86B49C0F4C2CE6971055989B701742B2D7E6CB1017C89DFB9ABB - -Count = 413 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C0D0E0F -CT = C1FC005BD2896A18BCD75B9362CC3111C54D12D598798080BBD6075D - -Count = 414 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 4F5E2892A3A4C5A676FBFF9E7ED0D5A56F602CFD709633DCBEFE07AD - -Count = 415 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 444387A0036B882834A350D13776DAE0073295ECE64ABB25537891C6 - -Count = 416 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = 4BD79A60EAB3241C25F7D493DF97EFF8D6FE5A3C4F31B5993C1E853D - -Count = 417 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 010D01B5A34C493DE57CDB0007C568ACF6F71CF35B3AA1E1467D04E4 - -Count = 418 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = A0AEE0821E869AEBD35F59F4F247A5EB2BA974E3EB16CB40E85C6D01 - -Count = 419 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = 235CCB8A6435C4540686ACF25A251744AEC9BF13B8A67C5B35AA18DB - -Count = 420 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 586F42D014865E1EC4E394E945A4D4642632BD9578C0259C07255B31 - -Count = 421 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = 48D86FB12452DA728B8222F0297D9EB34D8E95FA9375FB0A35E5EAB5 - -Count = 422 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = A5A85B43079AFF537ABC734F8A4FA9886872DC8E3CC10CF5499F80E4 - -Count = 423 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = E2C53E51788A5E54B00365AAF91C24787226026FC5A78237865068FA - -Count = 424 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 87B92B613F105568E65A10BEA7AC2248A433B4CB873C4979A5B1FDFC - -Count = 425 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 18C6C277CD6EFBDF0A52762F262361C1A4B4BEAD063B174F73064756 - -Count = 426 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = B4E5CCA764337054AF632BD57D383C9167CC64BF1070636F77D1F915 - -Count = 427 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 73FF668D6E73166E250A864A4AE6AFAB1D5C78C06FA387CC1CB76264 - -Count = 428 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = CF54A5A361D7BB9AD104AE4EB7CFBD5DB1B93F55B7C6FD0AC931E56F - -Count = 429 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 20286A1C951BD296EE1805EA870094E89E1AF4F41FF1A6C1E0513F17 - -Count = 430 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C -AD = -CT = 6AD3150B71383CAFF63770FB2C6504D1FA04B4B8C96D51BDF32F7078D7 - -Count = 431 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C -AD = 00 -CT = 5C88C2155D78CBAEC9C88D69C4EDE6998B680223869052012FA7BE5656 - -Count = 432 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C -AD = 0001 -CT = 874945FF65B0D065BBFD838AD72F4E800C49A8E4315F4C8C4CFE9C9B9C - -Count = 433 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C -AD = 000102 -CT = 65A94377170C1218118BDFFB1A68F5C4CC2010D6ADDEE1E539BA0A718C - -Count = 434 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C -AD = 00010203 -CT = 7393E4A10919CED6B84250A008B01F1DE4785B55C9168FB761DD505E97 - -Count = 435 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C -AD = 0001020304 -CT = 90BE76207633141BB1F682DD14F7FCE44DEE4E5952367CCEA177CB64C7 - -Count = 436 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C -AD = 000102030405 -CT = C0B1210506F33A71B6AE6FF889EE8B2F9D7EFC4FB54AACA4345C4F0144 - -Count = 437 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C -AD = 00010203040506 -CT = A712D3F692F59A50F7D34C393B7D2F13FC22BE07BBB1BF06D0B13A4C1F - -Count = 438 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C -AD = 0001020304050607 -CT = 4DAFF41B2380F1F326B3E4B6F93CCB3583AEDE3FABE3BE7AAAD59A3445 - -Count = 439 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C -AD = 000102030405060708 -CT = FCBD144A8DA9671C0F86F45B378C3559798BD11D0463CBED8AD26C65DA - -Count = 440 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C -AD = 00010203040506070809 -CT = 1631A52AC4AE19D595B799FFD4168555EA22B9C0457EE52B6C12644E5D - -Count = 441 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A -CT = 17DB1EA945136E3BB4C6E0FA3A3F89101D84860FF11C8AA3605FC56AE5 - -Count = 442 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B -CT = EACB449C2765E0CB151851FA3FA66F56F3D1075A4AB834173D8589AC0E - -Count = 443 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C -CT = 836AFA9E640D0FDC7651AA92EBCF20225F2740099A52229C58E209FFA0 - -Count = 444 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C0D -CT = B9E610722FD2BE2FE785A91D383387E49D5F30F8C0079CAEBCF83E5493 - -Count = 445 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C0D0E -CT = 1664C39B76942028F14D6F09013C44E6193866319DA599B498BF06B107 - -Count = 446 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C0D0E0F -CT = 1BD6864114319781DA7C4CBA2C7664B93AC4F554731620433803C32CE6 - -Count = 447 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C0D0E0F10 -CT = BD32967F4A7DFD9F2381A364F5C709108AA12496CEEA918E1BA79C6EA4 - -Count = 448 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 6DA2491F3B24A0F32A2A679CBC5253A1097416FF51E36D5DB748A145A4 - -Count = 449 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = 655CDB39BCE93BAE2055D2FC1005FF3601F65E31FCF36A36DED48E2792 - -Count = 450 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 41530597052F7A11CC6E30C1E42D406C2DF32418C594542FA59657C069 - -Count = 451 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = D054C43BB2CA1969253C891E1CA300C3E4CB0AD6CA9AFA7873D891B075 - -Count = 452 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = DDF13556626CB7AAD21009DBD3F7E27C8AF7C853B285A7DBE0073FC96A - -Count = 453 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 2818D6DF1F08C3F2F9B66636A93F8E87F9F0B9B5CC0EF82A0B08A6BFB1 - -Count = 454 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = F22239ABC1990EC8972EEC881E0F610C997AE1BDA5BC38F35A3826FB37 - -Count = 455 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 51D1DF3C7424093E12D752A75E3C2D7734DB8EE230504F24BF8A800070 - -Count = 456 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = AF9C3F39A86343F09C4AE1E8A8E93C6386709AF4C990E419E6A65BDC61 - -Count = 457 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 8E79900656248FB17AA3580DA0B1394870F7A3BA6E3DAEB27A2D828439 - -Count = 458 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = EC02921A00DB8BB7A8D95F7B05FB7D679B2608221EFEEE14C4998804DA - -Count = 459 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = 06DE08E4A8395E185D5A2A3EFFD1D24AE846C386BF020ADC9261091579 - -Count = 460 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = DD68C51177F302D63443F101EB19BE7866B65FC80DA09133099BBD2146 - -Count = 461 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = E348DCBE314019BC2437FC9CA6DD0B92A272BC9697444C2764E7923B70 - -Count = 462 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = D6D507470EFDBA64844CD7B00154EA81EA39C27F33133D21B551568FAD - -Count = 463 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D -AD = -CT = 8CA54B346754141BF686D62AC9E76D4AAD739C6646DA3417FD4C5B991702 - -Count = 464 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D -AD = 00 -CT = FFA6B156DDA78A2B1D3AA98A31AA771EB7E2EE0FA1660580694482772AC1 - -Count = 465 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D -AD = 0001 -CT = 63EF01E05EE1F2258E0986EC63E65207DC3A8A1F2C09F956B79892E493C0 - -Count = 466 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D -AD = 000102 -CT = FB2E3E6257F1AC72FAE4C6F0F1AE4F74EA554F85586C20BDFFBC652FC566 - -Count = 467 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D -AD = 00010203 -CT = 4F27EB3B58CB13E3E79F9E2985747E8AB38C3583E809ED94B9DCB3F16B9F - -Count = 468 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D -AD = 0001020304 -CT = 6B7DB53DB1122BEC5B6A1F2CFA87E3FED6ACFDD820F8E6AB0FFF4EB346FE - -Count = 469 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D -AD = 000102030405 -CT = B1733F53E9927C16044D97DED1C24FC7A7171FA96F81D4D58BF3BAABDE3E - -Count = 470 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D -AD = 00010203040506 -CT = 3488F8A572B9BB8590B134E749E2573AB7DC98E41C07A29D8EAB3B88D779 - -Count = 471 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D -AD = 0001020304050607 -CT = B4BD42F934C29848DA4E11C9631B6202C7D645765C89FBCBB549A738A6A7 - -Count = 472 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708 -CT = 2CB23B198BA6634534ED44ED61724F85ADEFC5069DB593E6BDB1DB866B83 - -Count = 473 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D -AD = 00010203040506070809 -CT = 0B5FF587C59795E09F0A7E517C2519C71F7BA6ABD4C28E36A6C0A7612E42 - -Count = 474 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A -CT = 8F1FCC1A8CF19455BF476FED73948C61205B402C08923E7F1B5FBDED6AFF - -Count = 475 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B -CT = FDC8B0825C961C6F965452B1E999586ACB071022043B3F1E2CFF5C3BF14B - -Count = 476 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C -CT = CDB7D9187C600639C803ED870906711357A9A125F0FFBDCED9227CB82C2C - -Count = 477 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C0D -CT = F1E49520289CC5028D149B25FB889AE36036BBE43A8D661672C397EC12AD - -Count = 478 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C0D0E -CT = 6C13802F6057390E18D0A7CF1FF0E439B19419F40F0A433143950584A46B - -Count = 479 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C0D0E0F -CT = 89BAC3B8AEDAE1C8799547D69666509DC4D942002F67952D678326AD1963 - -Count = 480 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 56B99D148658B1B23E00617132A296203B13F4629F124E6BD34768A7C78F - -Count = 481 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 6DA9269F2BC5B4F68FE4CC057926C26B2B4448B969CEBE2CF23E8DB96CD7 - -Count = 482 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = 48B8BD1BD13F686BE6B45834434BC6619BB892AF7FD6979AC4F28B8B8A25 - -Count = 483 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 6017344C7C77A296DF639B7FBEEF15CC4F9F35426F97ED7DB7173A2B900A - -Count = 484 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = 680F6D98017DA0BF865B00114F6F077D28872CE168B84A3485FDFF4BC8FF - -Count = 485 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = C2D898930023C31173F562E2DBA277C213645E95FBF76EA5073F645A5765 - -Count = 486 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 3864A2690A70BE80773BDE100ED984943EE5522BF4A5EC6DAEB841C04182 - -Count = 487 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = 14EF418CDA37432D0B7452C12CF7D956163587A40FB8D9503D30DD1757E3 - -Count = 488 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = F3C4BB3D7A372AB8648F4AB86F5BCFCEA6720C0CDDD2294C00A852CFB55A - -Count = 489 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = F08FFF2B4E7C6457D95CB879A8757178109C2121B493529665410E992955 - -Count = 490 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 20291EE6011F4FE090963BE5E16346818B2DD45E580BA9DBCAD8A3F831EF - -Count = 491 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = A414BB4A2A8A071A583B5B8B96AB5EEA4936F64FCCB47C16F8214E2059FA - -Count = 492 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = E10C81858386E75E72A5195F66097AD257A0546C738003DA43A22A139A73 - -Count = 493 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = B6E3A1C4ABD320F7925667F6029478CEE2CB83CD94EAFA26928D6E6C5873 - -Count = 494 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = 65D22EADEAC9F4B0B34CCD5EA80A473FE6B15BDC5CDE0976E132F8A4FBBE - -Count = 495 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 2EA73498D15D7C8CDB909C9327886BD353D0FDCC616E9C9126B81BB91D27 - -Count = 496 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E -AD = -CT = B5E1B53FFF5F82F1EF95973B136A28B68AF94645C6858E30467AE3C78FDE06 - -Count = 497 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E -AD = 00 -CT = 5D5FC44C728861A97D07E0A94207DA58733D5DC9F7ED4855CA6819EDD5602E - -Count = 498 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E -AD = 0001 -CT = E796C6A2B6F66F21C68CDB70F6CDE57BCC6B37EA00AD7E8CE3AEF4C483949A - -Count = 499 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E -AD = 000102 -CT = 4D9A13FCA43B34BAE719E660D26453D5F93949B3CD37AC70E456899DB913DA - -Count = 500 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E -AD = 00010203 -CT = 20C3F796BEAD6E14D7490996D20FEE7DE304B8E67763F619134B3A74B8C90E - -Count = 501 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E -AD = 0001020304 -CT = 4B749A9C90CC006C9D68CB16613A5120F880A169FF2B2727FD9403046927D3 - -Count = 502 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405 -CT = F79BFBC80BB49088857944BAC53189FF457077272E0A2837E1E5733B07C4AE - -Count = 503 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E -AD = 00010203040506 -CT = 9E7CDE2A89B2E0A4EBCAA919379A5336907AE2226633A63CCB7B71044BAB4B - -Count = 504 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E -AD = 0001020304050607 -CT = 4C3C3D37BC198B6FFD9E3BF9930AF11A4CD75DB63AD456C7948E0EC0ADEA0F - -Count = 505 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708 -CT = 800BFEFCCDA5D5A4BDA45CCDA0BF94F1ABB90E0B7E3F2E336164907B83BA3A - -Count = 506 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E -AD = 00010203040506070809 -CT = 336FE0B60816611F375B82C024CACD5DF611196A032594E6258C05C82843D6 - -Count = 507 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A -CT = 83D7AF4FBA37AC8F7E2B727A297169A90DE8648A5DE118F8FCE0B9192ED5CD - -Count = 508 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B -CT = 34C6994D315E7A7F6C8CE487364F154A5CDEDFE17E706993E73C8CAC5B66A4 - -Count = 509 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C -CT = 2F00819B05636C4B312662564F5B6ACA674EDE5E5068642F17624B780B197F - -Count = 510 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C0D -CT = 60AFE8B885C89782AD4760C71408B87A72CE955E959BC9E5134777456A0562 - -Count = 511 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C0D0E -CT = 4593461252AC43058F963494DF78405D0576CA3D67656935EB614680D75C70 - -Count = 512 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C0D0E0F -CT = D6D888EFFEB6359C71E48E36A36D087D155D9B7AFA3C77C39A959D6DC9D00F - -Count = 513 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C0D0E0F10 -CT = D1B616E3122AB8DBDC1AD071C84BB934EC1E8397D96891CF87F27DC6B01FB9 - -Count = 514 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 89B6F26D326C7256B18BB42E6A21F8A8BE2E844332374D9B9E7E9C042282BA - -Count = 515 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = D8AB9DEDB9C43635DD0ED855E5778BC64E9D59F91CB043AF0818F1DE1DE587 - -Count = 516 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 30860F65715B0A084637517E5F001F3AA2785531F8E066D9280C5B8F8FBBFC - -Count = 517 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = 75ECA72E7DFEF898D866CECFB18AE96130C0143D4CE2860C45E484EBFADA98 - -Count = 518 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = 259A5A81B97821E7CEC148D02CB6BBF033B9728CB4B2AE2060609412CBD8F6 - -Count = 519 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 97A8198AC25714FF73FFFC04F033E775C5995542693F01E5D344BB2CAF1A3D - -Count = 520 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = AED703975776BC29CADC177E2D0767FFDAA8577E82CDC524BD34BED4685399 - -Count = 521 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 443EA386F41D181058A60A133E12592211E01014BE0CDB1B59D7E9527A813E - -Count = 522 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = A21C9B862D7EB4F519D53233CCDC387AF784EC27A5FCBDB9375DD177477242 - -Count = 523 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 6F90FA2C0273859B4EE7D5ECA8CAE4D28023B2B70959BFA82791D640577EF5 - -Count = 524 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = D1D4E3D53AA5E4DDC54E524ACA063356EE22E7A5716E94CD1FC57DB367FC32 - -Count = 525 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = 0D70D7F414ABAC4A770981AA1EFB753A5AA7690CD892DFDCE80B3E4D1253B8 - -Count = 526 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 38A0791BB61BCE50A3EDE9B8006D8BBC484ABA2692F70495171112CA405BC6 - -Count = 527 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = 57B32943F51A3FD568BF43AE92B94EF5E6C35CCD2BCAB624E8C5C5D6B549A4 - -Count = 528 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = CEC94028569DFB3445E0A73B688F5B6A85DACF742C49365C46727687D79424 - -Count = 529 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F -AD = -CT = E9F8E9D6034A7C34390EFA1F9E314C4509B92149373C4B72DDCD78130E5D98A4 - -Count = 530 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F -AD = 00 -CT = 0F9A2CB9EE4F09435D471FEEC940EDA1BA299B971DFCA456DC5837EABF7A3F3E - -Count = 531 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F -AD = 0001 -CT = F7DB3980F03424F5B85C66425936F58683BDF7EE623C6F3F482DC208949787DC - -Count = 532 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102 -CT = EB14A4AB7F2C12008E6943FAD32ADB6657DAC4EAC34327D64FC7C443C86E9AAF - -Count = 533 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F -AD = 00010203 -CT = FC0C525C32745F88419538F4D7679CE3DF58F366014685492CBEC5D359F405A3 - -Count = 534 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F -AD = 0001020304 -CT = 8013C91B00246308F863519575613C7CB030133490DEFF04F3FB038A8DFF2034 - -Count = 535 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405 -CT = 574EC37765DF3635DD3667AD9F91C431CFA67258FD47C023336852A436D11581 - -Count = 536 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F -AD = 00010203040506 -CT = 48F85EFEC5099ABC25ED6011CDBA87FB1C7A6FDA806E71FFBEAC731FEBED8395 - -Count = 537 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F -AD = 0001020304050607 -CT = 6C3DDB0960E36FDA25A968674BD9C0D8C2E2C4FE731F32C6F29F1302D307BF6A - -Count = 538 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708 -CT = B40D6B7FBFA47BA35F670A34D48E9B3A5CF609B211946A495A9117F74E02F22B - -Count = 539 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F -AD = 00010203040506070809 -CT = 945FB77A39D360C7142AB534558691E81B587EE19D62AC2E7B4988C404439A6B - -Count = 540 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A -CT = 1400DFE73EFC28CEE39956FF594536FA77C6B4F15DBACF11ADD8972151C57B48 - -Count = 541 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B -CT = 933C250CAD994F3D6EB15119184F2FEE3E856FFEDA7BC32EFECFBCF58121A5A1 - -Count = 542 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C -CT = 1459DE801D6352CFFC35942A57F0A879E578786E9367721C529314466D76123A - -Count = 543 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C0D -CT = 2EBD05C23790DE78E42CBDC57D780C02B816B1FD8F3BC0EB52A5268C39075AE5 - -Count = 544 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C0D0E -CT = C6E8E6D8ADEC510529C25B3682B2F4EE821A4C3E3A9C267549ADACA9C2D9B596 - -Count = 545 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C0D0E0F -CT = 79E59B12BE4A420ACC321531135CC80192973A29E9B4AB433638D03C335392E7 - -Count = 546 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C0D0E0F10 -CT = A4E0E91874D13E64F4B0395F7D54037DE6D3C4E60861C555B753C7AAECF49B7C - -Count = 547 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 99D99F0BD7047FE9C1AB3901598950CAA0331260414C3A3D9536DD7D2F84148C - -Count = 548 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = FACDE81B6CBF86533A849B60DD35D8DD85D4319301409F3CA92261AA7B0BA3AF - -Count = 549 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 550CAFABA2F8B2B0BB504D20EA08E1EAB19CC9165E57BB9F66EF6ED59C5A9229 - -Count = 550 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = 429E836D19811ED3723D109CCFD75B39E2340DF53841E0845C212AB402866E13 - -Count = 551 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = 39B1039ADDF2E6677DF80997558171645DE6D125E4DF77C26A1876DEDD45899D - -Count = 552 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = C2923582DE7D8889107363B8EDC744DE81F039685DF75E9A37A25CA14E6F5F91 - -Count = 553 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = D6697F831BCD65268AE1723CF8F8356A757086EEFDDEC4AD7DBC2A820B235DA0 - -Count = 554 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = EDFD492CD48A28D6A52403971D97436B620CD071EBBB75997F8BD9480525B28B - -Count = 555 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = 7B3BC38401EFCC849FF439AE7C16742AD8CD61E0C759E9101177862EBFD76D44 - -Count = 556 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = CE6708970C3C5677A4E51B73E58FC190D58046605666408E8AF862248E3CFCAF - -Count = 557 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = A4E6F13C612625B3088ABB4C89E4338F41DD616609E12696135C5FA34A061B32 - -Count = 558 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = FDAD2714A4246638B73318D75A2D1C39B1C286F555394CA12D6B5D4877375F0D - -Count = 559 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 010765F4D671DBAAE2F6B2437616181D87BC3C50218455D3035FFF3863B9D611 - -Count = 560 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = 28439C1AA1858FFE1095024548BC932AB6F7D03CD8E8D8857634B6188CEBB510 - -Count = 561 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 48784EE91FF696FD1E83709E8E4CBB91632B0D4B2DCFD2FC8A31705E9AE977AF - -Count = 562 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10 -AD = -CT = 15D4B331DE79229CFE8E1EADDA5F3743354952658C0ED40B8E84CC4DA206C0A90A - -Count = 563 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 00 -CT = A266873942F57FD9A2C7DF672593C5561DDD307F8444F258FDA222BE13DA60265D - -Count = 564 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 0001 -CT = 95C1BEAFCCEB9527659EEF58C1B2796F2DFE1189ECD45A296CAE8A6196B14BE21A - -Count = 565 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102 -CT = D548AC1383B3586DD28ED9D6386BA1AAF93FC5012692B1C18D10C998588E9BEE08 - -Count = 566 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 00010203 -CT = 96F979F78A06D1D6DAF142E6C45F5214A1034938B9A05D4E35360B7B7D7D0A6A5A - -Count = 567 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 0001020304 -CT = E7AD0C1AEEAC0E8C1641144E792DE6F6E60AAFBB58A20D6893FE253F302711A335 - -Count = 568 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405 -CT = 51F34DA56EA19135A32215058A424BBECFA074D5C9F0348F0376F6A720DC83EAA2 - -Count = 569 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 00010203040506 -CT = AD233A410A19ED4D05B0AB59B9B57EB61DB89D059A98AABBD46E1D1366F303C4AD - -Count = 570 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 0001020304050607 -CT = 17B0CB6629579C7A71976629F97249D17782121AE19B5FE785DEB6CFC33AF9FCAA - -Count = 571 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708 -CT = 6926FEC8BFA5D68EEE1A1E65A438447F5B2467BDE4BA30C26125DF20DA82A418A7 - -Count = 572 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 00010203040506070809 -CT = 447FBC7243DCC2429CFD9D4E24D19A66D7C3C1C7A73B8BAA3A48D058A037D2EF36 - -Count = 573 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A -CT = 5E0459A5DC00DA3A369149B5AE9FDDB327810524FAB4AF12FE5BF7CA2AF47CFF5B - -Count = 574 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B -CT = 99996613C4EDD52F668E0591861C0799A7D862C4AD7E30D7B567E47633D6A2F290 - -Count = 575 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C -CT = AC6108477EDB1B76EE284932598433E8E5C04E8C95100E90E2FF832A93016E3BDD - -Count = 576 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C0D -CT = 322B22DA781ED9989637192E57244C48E6E07ECB323D5955AC9894EBA6E0907BD4 - -Count = 577 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C0D0E -CT = E8C2E5708F294006ECB7C22667D420A7419236FFF0B35F897B776E8F426D44AC0F - -Count = 578 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C0D0E0F -CT = 2511481CAF78A0322D111C81B0D998DC771B9488B3A3997E61235D33CC48BF0FBB - -Count = 579 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = F1EA186F442F114BA11B0E27A55FA964BB2042BCD5E0024D5CD4CB3535E9EE94DA - -Count = 580 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = AE95D0BBFB9C40FB038F513B05C728FC831888BACB2454176A693BF04C0F4E9814 - -Count = 581 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = D1890451A52D6568DE2CC0AA684F2B61F9C9669A5904C39E2A5FDA29F4995A4FC7 - -Count = 582 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 9E5C3BCB03D0AD88D71BCDB548DECDDA15A51679496C53053A2726C13E4F0AB33F - -Count = 583 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = 0353605629BD840554D633B3A5FE10A2EA5C1719D249A6180320D69DC7543E9053 - -Count = 584 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = 10F975392E3585C093358F5A7EE90C57636DFC110F37719C316B5FFCAC399EF747 - -Count = 585 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 2C30C16066FDF2BDB4FF71517DF8FC7694244A49E44377C79A78FF6661DD2A1201 - -Count = 586 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = 4292BA4BEBB9F5F24CE70CF1E2AB5D13325FD0791F09200DFF07EEEBA2C4C2C23F - -Count = 587 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = DBF185464B34DC7C81140AF67AEF6635411C87BE115A23A13C31BB03E0748485EE - -Count = 588 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = A0E02BC7961C6DD6F0CC5F1D6F5E88E0CA5DDFAB20218348096748815329DF3F1B - -Count = 589 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 053218417482CE224ADC17BE8FE669D9400188D0B69408C599170937A93EF74C88 - -Count = 590 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = D6E51173741A53FCE20E72DE5FE53D302804D624CEBE0FCD8F7EAC6F90D5BE1C66 - -Count = 591 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = E0004CF59643D318AA55469A22199B319E1B39A77D5CF17254F1C36339E0D08C89 - -Count = 592 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = B0B4BFCAE13704264574804687B7F62685BB18DCCB67B4FDE46ECB31E8F539936E - -Count = 593 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = 1D5DD853660E4EBED0F2E39DCB53A23276E8F1DA77C410790FF335C0C996A6FDAB - -Count = 594 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = F1A7AA3D43439191C095B174450CCECAD40C9111454C3AE5F8422C3D907F3CD3EE - -Count = 595 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = -CT = 887FFD7591441AB022D99E75A91477D061E9E3A1D7E4591BB1B0C4C6B96044D7F53C - -Count = 596 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 00 -CT = 04E7DD6D1519093D79DAB8180D0FF05FF53674E610073654C193833F5D7ED248C2A3 - -Count = 597 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 0001 -CT = 899D6BE319D9B8DBA8B4453E505720A53BFD8096E8EA8F1B147AC08DE55B37770095 - -Count = 598 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102 -CT = D74A776BBE8B29F9937AFBBA9DC58CC3D4A783A16910F53F49B090164A822E68C902 - -Count = 599 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 00010203 -CT = F18EE69B54DFFB967CB4D05CB5C165AEB534A2B4B82A9CB7880A1084B7CCC08CD89F - -Count = 600 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 0001020304 -CT = 5F198DA533C77578F20AB706C800A602B8FB4EB30261F64F8224D70D6096A4C22C33 - -Count = 601 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405 -CT = 0F99B1763159CABD0B1FE0453FA5387DDEEA68AF3EB0C99546F8ABE9D5C1B894D76C - -Count = 602 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 00010203040506 -CT = DFFA9C7BC55D9BB119A40BD76A7FA88FB4189071AEE119A976C5EFB4583F287CA145 - -Count = 603 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 0001020304050607 -CT = 4A218CC7C8F9FFE507619D730F26015EA6AAD6D3237D54582B6CA320D51A55B6EF28 - -Count = 604 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708 -CT = EE8BB1952E56F56CECDDAC9C766668BC5FAE66736B0479AB3F3F8FBC6D10FAB632D9 - -Count = 605 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 00010203040506070809 -CT = CFC33078BE0E432A29347B279B78B0C74C0F773ECBF8456316353D448870B5042A17 - -Count = 606 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A -CT = 758CACF99CA48FC9C813CCF2AF113FC59B7119DC0C6A2B55C9288279519C78FA9E29 - -Count = 607 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B -CT = 745A28AAA6F09EF8824F3880CA287D18A83839D7EC81D2D8F1A34DDE13A88FF7426F - -Count = 608 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C -CT = A0DC42D37267E2E3535378718F472FDFF86FC22501D88D07D6C3870CCD107CA7CF0D - -Count = 609 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C0D -CT = 6E2A72DA2927F8CD240A727C03FF9270A503F7D661AA8F3828AB68859350EF8B1B4E - -Count = 610 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C0D0E -CT = 1893FF7BCF0D2050F3F9E5923437F0DA26C893376815E9D327756F007308A6E2A7C1 - -Count = 611 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C0D0E0F -CT = F52DF6874C6362F5CEE22BCEC93D9662991875AE6A7FFC57AB66068B0807A0BF8147 - -Count = 612 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 2E630262344FE74F3A0EA03B2146B8237B39FC9FA10C4EDEC993F5D2C1AFABC536AF - -Count = 613 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = F38BB1D47BCA9698E4FCA36EDBF18738FF9E937A2D7A7D07F35E8B8BDBBC10CD95E6 - -Count = 614 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = AC7D0F0BEA88235DDB1249C5EE6622AD8FAC28645DEB9A95319EF29AA0734CA884BC - -Count = 615 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = AE83462892BDA12BDAA125DC6EE8FD63B0E959AFB8D56D0F471D776758F28A4D92AC - -Count = 616 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = 286F3215B36622302171A9D5819DA57C48BC5A2AD05AE5C8AFA0CEC3ACD92C00810D - -Count = 617 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = DFD1F44223EDE331799F1DE2C1833F8E8F2F2F68E13B68C9287E824F52A85C91BF70 - -Count = 618 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = A340D06C938C54F86F3B47C2F334D9DE82AA46BFE675B3E1227696E8A6EEE052B912 - -Count = 619 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = F052189D60631FC5DE352E8FF45201EEAB40CE5C2F89FD91AC890DA66DEABE13E0FB - -Count = 620 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = A70A3CDD8C3999B8DE175C82FF40D1B29CA72C603636AF015465911DEAB4A1D957C6 - -Count = 621 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = 0996DF9EF7E98167CA442B4FA93289E9B0C2EDC28EDD46C5122B1F74E289EC5E216A - -Count = 622 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 7A631486DE8DFB64D23EF566F77B0D00595E8ADD31A2949A22ADBAB2A06E9CA826DE - -Count = 623 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 196673EDB1A92405D4777E7AE6D0C7DFED8D93935BD284515B1D242D216F5C0F62D6 - -Count = 624 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = D6C2FA683BA9ECADF92F67776AB6980D625BA827EAA4DB62FBBBF05B8F11F55C89FB - -Count = 625 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = ED896303F8CF912C9EE8DF43A757FEAF69F49ACC3F1835250F52B75A5321C404BE7E - -Count = 626 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = F1B9A1D4BC992E4F546BE1D90B278E0A8B1C1CFFBBCA69EBEB76B1B88F703DA12015 - -Count = 627 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 593F73328CE9288A760F47DA959DFDAFD37685C75C2DB31E2FAF5CA0AC40682B720D - -Count = 628 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = -CT = B817175DAE917B8F812C92D4F54415110635C519665295CEA769A396900AC6D48D474C - -Count = 629 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 00 -CT = 77BF222A4F65967C5D3F0F76D3A8B0814E8EEE7BBC89A308E977B6B92A044767A20DB0 - -Count = 630 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 0001 -CT = 2641361057B9C51E291E4D5710165826FC319B6AF8A59D9826E8489F2E6BAED3BBD737 - -Count = 631 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102 -CT = AE5FBA16D8925A56097653D342E94281C4ACD9DC13757039CDC5719E1B62594185EEF4 - -Count = 632 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 00010203 -CT = 25DBBB462E70BDB8C37488640A7DA267571EB8ADDDF57851CAB9AE23BEA107BFB6D682 - -Count = 633 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 0001020304 -CT = 1FF2AD20B6E3C61325A181B7D8EF00ACB4EDCBE6B5CAF9EDD11B8F7E58A2E12939D3EC - -Count = 634 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405 -CT = 0548EAD0BA5F1B07BB1728AB0E704CE5FF19DE48EB6A691CC8B6F07D1C95F23C20C09C - -Count = 635 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 00010203040506 -CT = C160BFDF80A17F37B11A4E853F09E8A97CAD40E97A2059A1C08ED4EDC5A3FB6DFADE0D - -Count = 636 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 0001020304050607 -CT = 8266D9547A8FF920DDFA0480CBE6FB109AA31107B821F668F5D7F2C0A8D653726FA936 - -Count = 637 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708 -CT = 356E0D6CE0E78C18BEA00C67A7804C0FDA3079C674AF887E428FB62AFA9F493F4C131E - -Count = 638 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 00010203040506070809 -CT = F24AEF136411CB8AFC36A7A0FFBDA1E806C0568061AC58ADA29FC10791DD5BE860B6D2 - -Count = 639 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A -CT = 2346DD465655CDD11BBAC84DA5E106CF09BBC6C437AB6EBA83603307D65E8B854BEAD5 - -Count = 640 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B -CT = E042BB74B37919446DD28AD8AE534E2FEA8D614CA05879555AC2AC8908E49EF14A546F - -Count = 641 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C -CT = AC7181327343DC7D650A128C9C487D53B16A0CE0FB92EE23A7BE1807A17F285BA6C58E - -Count = 642 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C0D -CT = EE98FCCB6C1D1AA8B423EFFAE18C5BEBD6A368F7B668EE96D6F890F3B6D63568F3ADE0 - -Count = 643 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C0D0E -CT = FFBA46FC4B72161A6BDEFE4362B6D6899336BDD71F9305FFDBE934B743B46B0EA60E2B - -Count = 644 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C0D0E0F -CT = 59BC165B17DACE57FC0D808E76AD79B16FD1E23CE7E12D0B175E79ED0D0F23C3D9A55C - -Count = 645 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 3491B29513A61025ED17B4A126338B3F277C39512FCB813644D6AE9323D9E422CB5DE0 - -Count = 646 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = A7334068425EAD54654D358D5727D9E6D9284085DCECED016EC68A07649D5D95D3C229 - -Count = 647 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = DB768D643D8C207BE16986A1A50BB6C4C6F83C33FC6299B40A68F32D61F3922F619AEB - -Count = 648 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = A2B583401DF0D7A0DB8AD109060DD5D62A58F2489F8E38BC549B70DC5A12C67B9FBA1A - -Count = 649 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = CA32FE3EE6F86F48321F7045120551AFC8815A4E4C2BFD8B53CE60BB6A647D609CE6EF - -Count = 650 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = 77F3F9CB1C3207A4DF1C921CE6755B4002CBD4600F19BEBA6D8187ABB33686854B5D45 - -Count = 651 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = B9CCE8F0D24F9A47ACF087140D5299EBCD4DF3EB5A1CC4661D21FA773CAA29E502DB58 - -Count = 652 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = B6D17DE84C13E9FD3745E032344C5B90BF716457C93A7B70BD6EBD742F36300DD29625 - -Count = 653 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 412D4E0E2BF45F8F5847F6DF4144032DBC982A1F1E32ECA15DF9B04F25723C7A48600D - -Count = 654 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = 745315418686A21A61CE076B530CF8BC8E23CA9565BA2CADC6F596F9FE11ADC3634026 - -Count = 655 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 7EE2975FF6F42B1F0ABC78EF46DB13DCC142AACFBB2C2306998DE328FC4153477962A6 - -Count = 656 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = EBBFDBA5461FB02DF7002827683562D122C6BB03ADBD6B9D868BAAF8AB2AB53F11DEBD - -Count = 657 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = 15426D6F61A88814A1BD1184149E8CA096901E4ED26AEC46E178C0525BE52F99A2DB94 - -Count = 658 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 2B38E7EB3E3D937D26F7A6C3985A8DD2CD941B7E1336A185E968737B372BE5B93D15EE - -Count = 659 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = 4FB5FC71D05685CB3DF6F153FB599B96BF1624960E7FAFC13B371013091B3A245E84D4 - -Count = 660 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 03969607B238B46EA06446CCB141A8D5B2C696B2CC7D7391A6C05BF6AD6FF0618AEC7C - -Count = 661 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = -CT = C7FB15C00E59D59178FCDF46896B994C3252F15A3E266812AD2EADD02DE07AAF8ACD669F - -Count = 662 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 00 -CT = 3A432D124324807E875015578FF1CB4F6B84CD88CC7FB8804D566A342633C11D9C0269D8 - -Count = 663 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 0001 -CT = 848AE290562DC7E02FDA2ACA91531BFD0B0AD25676280DB325EB52D8B6A432D1B08C9C04 - -Count = 664 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102 -CT = 1EF7B5558A13343E43FEC87A5EE749E418B42B02B2ED1A2DC56098EF2FD095BE2FF110F9 - -Count = 665 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 00010203 -CT = 13A0565EC3B0C998482B4E9B8EC4513A54F46CB5DB811EFCA813EDC766E4457C2722944F - -Count = 666 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 0001020304 -CT = 7D681430870B76757268C1902D9C9B0141C7E8B38BACC61D9C61B74D32003AE87635FD18 - -Count = 667 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405 -CT = 0111D66232F0C2ADD6C5A9685B0E132845DC881CB2DB0FDC316EEA687C9B25338240088E - -Count = 668 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 00010203040506 -CT = 0697C73D6243AC703E5CCFDB218D9B057727D91918BDC891D3AE9FCCE37FE599BD4034F1 - -Count = 669 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 0001020304050607 -CT = 60B9A6956618FB8453C00DE22B65A109F43A342AF29C42EEF0444F5E0AAFE2C2AB73C01D - -Count = 670 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708 -CT = 6F58E447FE7839308F5DB79C15DB4452B2469B60D8E30BBCF1ABFDE5608714E23FC15B88 - -Count = 671 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 00010203040506070809 -CT = CF8813204F117F3CD6821992E6CCF463821130BF905B30509D6A3646C0D1D0012554D1A4 - -Count = 672 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A -CT = 8B083E2C05E7A01C73DA5A7B3BA2217C8C0D2AC072950840F427D69A6A730AD3168F89C5 - -Count = 673 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B -CT = E02E2A7AE61BDFA9770A74E9EB01381AA14856A8784ADD26AAA7D578403C7D5962018F3A - -Count = 674 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C -CT = 235ABC9682503F7E9743F94DDBF7301C6A5F4B56C11BF18DFF13DEB99A987808E2E7FEE1 - -Count = 675 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C0D -CT = 0BA6E2C592333E162B5663AA7184457BB38817A8BC6B3C6616C8B68FEF712432AC1C1D11 - -Count = 676 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C0D0E -CT = 837F5E508EC6160C905BD229BDB2B6C3DC876071A43B0FBC4F9A245CCDCE91581DA87B8D - -Count = 677 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C0D0E0F -CT = 3DD3A285B5C00ADA716E0616529A147A4600ED6350E208C441344813DF7F2953150E386C - -Count = 678 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 0B4C7751FAF347F7BF65C1BF2506F1A6AD3FD5E4BA7CA6692598D04CCAA5D762DCADA108 - -Count = 679 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = DD174CA4A4E34DF6D28BC55FE4934A719297696556D169904183140B12E7907FC87F3E5D - -Count = 680 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = FF8EF4B5AC12A1C119EE6EBA7BA7DE144EE32F9E4CD2DBB128BB155BEC02A281E7655F8C - -Count = 681 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 18C012BDB1910D4C2060463D5BB1E4060FCAB03FFD9E1A96D52B70C95852F3159D440BCC - -Count = 682 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = C4A1CC7F28D45A4F2D3C47CF4D3C57B2CA4D90E4090128235BEB1AE59FBBAFCFD69863AC - -Count = 683 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = 9915E87ED662E1E5A9354F51B6B449F629DD51971C2C07ABB375AA8DF38E6FEC823E00EE - -Count = 684 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 311DA43531B506DF848AFA6A3EE366518816CD788CFF342F85FCD78F371E9E383E57A9C0 - -Count = 685 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = DBDD2B38DDBE7B78866C1932B82F82EB849287D9AA7043D34B1B1AD7F9189F1581557044 - -Count = 686 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = B07403D78BE197D0BB723513F9AC56EBD8B262812D497DDA8DFB9C7ADD0A81D2418E2C35 - -Count = 687 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = CEB39EE134825CD1B8E0C6BF2FC5ACB2E4FF6ADCF167AC3A3B06304F7B6749DC35FF7F4C - -Count = 688 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 8F00F0CFEDB709C6673F9B6827F2D374E44B1406491A7052239D7C0CFFD30BEA3BA295A1 - -Count = 689 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 3EFCE56DB357906005FE07ACA729BF182EE1D53ED087420EC18FE5B4F6D81D9505D425EB - -Count = 690 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = 5BED1BEB41AB5E63FFB59C052D6C3DB37F1013BEFFB8266ED3A84235C9D5848B75C22D27 - -Count = 691 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 854EB4466F929BB3D08B4E77BE0E94033386FE52DE0952D2DD892584DB8896C084EC71CA - -Count = 692 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = 2C55D8886CB52507412A8A5187272259DF7437E1F9DEB199C103D845B2ABD8EC74384F19 - -Count = 693 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 97EDD36C3AF5F607682B0CA589E23972B41B37B7C737E629063F9FCAF00B315C6F9A49B0 - -Count = 694 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = -CT = 84D0F10D2A89EFDD6BEB965BF1CB9EF861B1171062E5BA91F3FDD74F9F2CFDD5370A6CC1F8 - -Count = 695 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 00 -CT = BE78DD7DE6C9331220510881947E9BA025F43E9657CB6AE4E162B6ACBFFBEF717637F321EC - -Count = 696 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 0001 -CT = 64DE8CF5F1B38C57445F4239ED933C0D5108F5EE30A4654279C53E80CE5EEF1CB099156C49 - -Count = 697 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102 -CT = F4BE23592B91CAC1920A88C752BA26EA6FAF99AB560F0BC434E3D49D23C455D0AF7B22566E - -Count = 698 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 00010203 -CT = DCC7521459EB91926B8FC0EFD10A4DDB7401925CB45641F3E906A92ED16E2A94037A2195BF - -Count = 699 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 0001020304 -CT = A808B9AAB794847CE471687723EF9F4CAEDCD51D503EE27B662620088A25EDF610FB8EA7D3 - -Count = 700 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405 -CT = A532CE6C5DA0579DF9094FF2FF627DD3422D748A0C81EAFFDC71B16597C854ECB7AC3621E4 - -Count = 701 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 00010203040506 -CT = 7CB1FA7307CF5E043C6AEF8C380CEB97510839FC50A75C09ABBC4A7EC9294EE494A1E49041 - -Count = 702 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 0001020304050607 -CT = C36788F9C218FEF1C6E5DAB7324088849884C5835F5FF715A372A99F2A9C98245F2067FFD3 - -Count = 703 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708 -CT = 6C88996E3DA37CFAC080E95AB755E4E340EB8CB839207D3D0A6F7DC37AFF643BB7DFA23B72 - -Count = 704 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 00010203040506070809 -CT = 777CBEAF32087BDEE133FC760C0AD6CD1A830A92AFA7A54003F6E432EF4A7839A9B3E90E91 - -Count = 705 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A -CT = 9020CB499103BEBBDA0A4FEFEEB76588991394E56CAEDB141DA3888F5084CD22B53BE45B37 - -Count = 706 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B -CT = 151834BCC5B55BB154358E0C3D6C66B487292318620848974C52B65887F838DEBCE9CF5A49 - -Count = 707 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C -CT = 539FB25DD8792415B80DD780B36F2528B9676D5E1CA6DA3DFC269D0A6001753FEACA58508C - -Count = 708 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C0D -CT = 356C62EDF6282F1B838EB4FC506E7C72E9D2B638CA06A0857CD92AAD227CD2A49215DC9C44 - -Count = 709 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C0D0E -CT = 42F28F2FF5FF8FE010249DC8DC6C44A33C849D23710A23939A518EBC56E3C0BE1F9821D864 - -Count = 710 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C0D0E0F -CT = 4336F4C9A2AEF8E0A23A64A87D6A48A78459CD3FBFA93E4CD258F5034C2425A3F7348C968E - -Count = 711 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 84CE5CB2DD8D45684A0BF4658CDA62248DF8485923C57E721D09D9D017417D909FA1DD842C - -Count = 712 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 42CB49902B9B78C8E5EB20FD265D51A96EEECAF997027D1AEEE47F7E94C1BACDDCD3C0E042 - -Count = 713 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = CCF8783B5ACCBDFEB19E2D33775A46BF53E62D4B484CD26884247A002155E4564FB1123529 - -Count = 714 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 3543FB1E0E65F0426304F9F4FF0D400A2672584025A8EC09734240BF8C8025ED4D39F44A17 - -Count = 715 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = 4CE43AE4B3EA439E1195181D94F78AAEA90E2B1511D77C957FD556ECEFB94366D3B2A2D41F - -Count = 716 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = 53C1899741EF2B2A6607E4581E231F5B30B0E51225D4628B5DE42073D77B15072960561503 - -Count = 717 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 8794C1A81088C8ADB17B0BF0AF95CCF941471706084849737B80618386A47D54369EDF051B - -Count = 718 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = 8CA2906FD97BDA2D076A55A2B5E5EEE3BDD5B4256A0F0FEEFED830B2113BEC7D5BAF13208D - -Count = 719 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = CE15E3901FB3CD454DB747F998642688678F74D760A5824A2049A8F236D29DBEEF9030ACAC - -Count = 720 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = 8F6F0E9309469C746EEB8D0CCB87FA53F29446C9FCC7769F01A4152FE2A43F621570CEE406 - -Count = 721 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = DCFDE6A951C0AEC212EEF7683D0699EFB6F160A52A664BD8788F7FF3B7DB5649221443955D - -Count = 722 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 910E38872318F398A84E1769FF5036BC359391071B4462DCFC917AB313E007777423A296E6 - -Count = 723 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = A40E601E7697BEE8D0200C365C2F78D25D2DE646A89D6A78D531FE7B5FC283786F1F1F3947 - -Count = 724 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 686C068F9FCF52F28E7E7A6805B94539F31066D514994CDA9221EF7689D4D742DF135D387D - -Count = 725 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = 9C6CD0F96564D48AB4119EB20FA6B7DBEA9CBC7BEC048731875F8A3F4EF5B048ACBF089925 - -Count = 726 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 03856237512F662F9B0C6F53C170A4976EA80B6703F1CD14927D14E51AB93DB53A7B036A0C - -Count = 727 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = -CT = 13BBC75D48D38D12769DA25C5A51C82244D4A2E7C187A3475D225374198B6E2974132E9DB858 - -Count = 728 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 00 -CT = 5526DFFDD6073A1DA80568C9BB0445820C262D6EFEA8CE36A96471036D542451B6D65FE305E7 - -Count = 729 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 0001 -CT = 6CE8273CF3AA48AC9F38AA05084F4DDF0FE9820797A9285D93289B5D1DD5C0BE6A097CA94682 - -Count = 730 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102 -CT = B7BF9BA8EE2A3B007E01D6DE277C735796079DECF55AE0EBD8C30007F702876C2A8D6DD6615A - -Count = 731 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 00010203 -CT = 499D7FBCDB2C66247A5DC0C01B9DCDA4FE8D84EBADB39AE64CE9F63844CE9BF524C6FBDD8821 - -Count = 732 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 0001020304 -CT = C8C2E85D96BC4F2470B563800858D0FDD18CBF391DC01ABE86556D83EC053C70D24BDCD8E81D - -Count = 733 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405 -CT = EDEDA45B72AD8BE89DABDF04AFC42AD3DDBBB29E561EE3A69DA93C53BD161EA61F531E9528EF - -Count = 734 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 00010203040506 -CT = 154FE1E90DE2EA34EEB2C30310B9C65F5EC79D44A50BBDD35193DF94E3BEF5F6BB746095D3D2 - -Count = 735 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 0001020304050607 -CT = 9832269C2DCA2E941B9D9D033ACD8182DB43DEC284C34A3D79290713398ACBFC0C5AC9FB615C - -Count = 736 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708 -CT = FC31A5AB73A1FC0F64C85EED76FFBB0F49E9C61DD253FF639BAE2417CA9D68CD26F294DFFDA5 - -Count = 737 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 00010203040506070809 -CT = E24285C42C3FBF4F2B3D80E88E005B874C551232B18D899854CB64652770327BD5339C25B19F - -Count = 738 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A -CT = DFDEDD1ACCE937ADFCA6C5C3CE7B91EF5DA6AE6937797E6D1B144B232821CE7836C26EAD8DDF - -Count = 739 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B -CT = 1EA21409F510E02D95E31893C009CCFBCC0CBC1356F19985EEEEF9EC3D72CA539EBA67C7DA6F - -Count = 740 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C -CT = 13522F8B5BBA5F1CB441B851BCD9473C92BA8D9BE5242BEFCE2A94EC51048E31706E6AD29483 - -Count = 741 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C0D -CT = C8BB8C5DEB893FFEC83A8C6E6C9F53F625B7418C36FE8C8E09F6543B0047A24EFACE58088F2C - -Count = 742 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C0D0E -CT = E3122CAE8D644672BE92F55E73AB4902B339FCCD42828976D43332DBE68545C915C3DBE58186 - -Count = 743 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C0D0E0F -CT = D3F9EF07E28A97ECFB2D104C4240F5A8D29E01DAC37EBE13B06387D71A8D2D00375659C5CF56 - -Count = 744 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 6B7F7702DBB4937082FA301F59BFA5A41A70CEE2E5AEE70EB17D30F35EE80EAC89D3F14F973E - -Count = 745 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 92292F301F803274182894050B88A5E0025529B1F3C32C5F2583CA2045920673AE2935FBF249 - -Count = 746 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = C4DDF1D7E7E97C34B53FC35B45DE6184E426D9E1917A973C6345A672E7866467A75CB4ABC211 - -Count = 747 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 7E3CEBE48CD5BF84CA9CD319FACDC19E71776D8D78A28316D77B8F9FA666C4F13BFD460F9219 - -Count = 748 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = 8E3024C9DDAE251FC47EBED04EED22B086D0BB9EAC6673D7D180275E24FCAFFF36005B3DE31D - -Count = 749 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = 1133B8C2248BF411F6E8F5321B87868F3D54C810ACFBBD11A07AA3A72DEF014C9A464F603416 - -Count = 750 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 13AB093B1944F61C8F8EB73433CD2AEE10025D5E6ED5C4D869D08672A607F36D76C35944B38A - -Count = 751 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = 48DEA3A97063BDABA778D311EED5CCFE946C875F8A991D5ABD2E512E94F10C1577E3FC9CCC83 - -Count = 752 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = FD5221142D5382782F88D1767D72971D601004BA70A3C401AA364A8956B20E7279949DC5FBFB - -Count = 753 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = F287050865E8F49AF7ABC227A9643CC9EFCEF36ECED0A162920713A41C5F2CA4D68383DA0D26 - -Count = 754 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = C98C9937BA667C1BCE88222DC115FB50B489EA5E297AEB829E44AC3ED183F8CB22F8C8FD6F0B - -Count = 755 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 08E65C9DE8A42DEC873FE31BE62043DBD75D7B88C51F5EA2B05D6F3EE390AD2F43946E917462 - -Count = 756 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = 070C71AAF4AD80DBA3D2C1A8794B155E180043460FD7FCC0A489A1C871E0420799871C1F2DB8 - -Count = 757 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 0E6E27CAC8F9049A9845351D666658D80C547F85AE15587850DB5C4D0C2F55F6EEF1673E4E7D - -Count = 758 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = 844872FB7C4B1308C440F6A954C3C258C33C25E13A92ABD6810A2F4199CC92773CFCDBBD3B9E - -Count = 759 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 7B01FAA3C371A20C08DE6025CF1F0B798581B0331776AE222B0B007B3EED575A12EE4249E52F - -Count = 760 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = -CT = F20546FC5F3862F784536BE0258518A76766C3FEA448AA29DDE544BFDF2E538A6F4B512F15822A - -Count = 761 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 00 -CT = CB7B36A210FD15574672FE73AABADB6AF6D548DC18AA3AEB6D81A556DFD37DF9055AA316B63F0C - -Count = 762 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 0001 -CT = F63A25FBB6D5213CAAA47CCA36F17FB50F7E5CEE330A9FCF7BA1ADB115CDB308405CD74BDAED5F - -Count = 763 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102 -CT = 2975C505D463BD6F806D1050F92D4AF64AFD53D397703592102D762B5ADF685ED46DB990878FCD - -Count = 764 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 00010203 -CT = 051D24836AF59D34E580964A19629180D2B32C245E0956937E1E737096B7781B020CF890D49495 - -Count = 765 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 0001020304 -CT = FE8D68C295F294DF93A3D1D35623C87DDCC28893EB5A65F84B9B678E9778474C120A01B129C86C - -Count = 766 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405 -CT = FE69A77FA91484DF8B9E1F960FA78B8F7F0ECF3314C711EDD5DC268967C0106C52B6D97CB7E511 - -Count = 767 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 00010203040506 -CT = 4468AF42A92023A9BE0C580798E79DD4B862DD2A11BD01809F8DAE728AD2942C5939A0871DC5D7 - -Count = 768 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 0001020304050607 -CT = 2D9988FA519D835071084AD89FAE9308BAFFDC652A8052E62F170F9D4890469CC68B3A9D2E53B6 - -Count = 769 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708 -CT = D520961508C345354D33695F95582B992BFBA25C61A17847591D771579FB71F7BD0923E06E0A91 - -Count = 770 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 00010203040506070809 -CT = 6EE3242BD9F45F78B496447D41D237E812201A7B2A6BE4074804CC675FA8498C232A31F2271FCC - -Count = 771 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A -CT = 06C54492721688130CEC64FF58132C6314B32B589F2608088987C314730EC6F4EDEF908A0A2F16 - -Count = 772 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B -CT = E8B5CFDB0497DAEDF0C1741E15EDAE65EE7BDE3454C4C5E8B2535F2977032CD21756814B037E05 - -Count = 773 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C -CT = DA5B038693107370C2BA34809DF9FB69B100293BEA88405C28E9CF59D70EC3E894CC8CBAF53BED - -Count = 774 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C0D -CT = 7FD13B0C560EF3CB2AFA2A2A6E60186858C4BC4DFF2BDA9DA757654993A664663C6D18D03D857B - -Count = 775 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C0D0E -CT = B5375CB7E4FEA281E579BCED5A98F6D6201A7C99CD71AF11C12E1717E9426740860FBC0E8A022E - -Count = 776 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C0D0E0F -CT = CE2B614820B032CE9E861546BA029B37E472E06C0C4479D711E6D24F07C4DC678335F07FF33E4D - -Count = 777 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 772E6AE7B38478D40827C144288B6C5BA447C94DEFBB9EF14CAFF132ACDEBC7BE2D361F2D8FD6F - -Count = 778 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 5F33C5A6809000C9B51CA5C8DAB0463BBCBC29C131FB6012D7B3688D351C2B8499D2088409D7C8 - -Count = 779 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = 65B70479103A9EE1D9B80EFB44E52A58C763DB42A3DEBD66F71B42C6E680E6366B1C6ADACD3592 - -Count = 780 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 82083BEEBC77A45A668B8AC73D2AFBCF321C6074EB38163981F10DAD91DFF886EDF94C23D99C5D - -Count = 781 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = 93C81A24D4F70C0840684ECB8B0A9409143446EC2BD9D1433149EB480DA32147FA29A21BE4AF90 - -Count = 782 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = 6A46719F5CAF7B3E0E5233D9D01E2055AF8F571A7BE043C170E3F4C574169718A7602869DF0FDF - -Count = 783 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = A692FDA06FB95D57B67108BE24503780CFD6ACACF13B080A3C39D21589F0DBF5BE786C92625FC8 - -Count = 784 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = 38F92310177523CD0FFCBFB2B90F417D0DB78049CB5BDAA85D8B9712847D3622332E00D81B938C - -Count = 785 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 5323640CF8E5303546B16A98DBC93C24462A4B8C72E9633D759F11CEA6151572DD6967EC46B7C7 - -Count = 786 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = 918C3FDE053F91A53ABA08A7014362E912C8C15A4CA58A7C9810E5CC8548398952F04C7542F21D - -Count = 787 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = DAD64511A817C8211B316AA0DC6EE1811A1434D07B198B99BABBDD80B916D5425A106D574ECC67 - -Count = 788 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = C56E29FD706694334B47E7FB1ACB759C73702713FEF1881CFC09FE8526FE9A2A48DD531C3B121B - -Count = 789 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = 2E1A047F0BCF2C80FF5463E7C7C15A3AD16DAF0093087E2F6C322334FAAC5ECA19AFE263D556C4 - -Count = 790 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 452C24B6D1F23ED0D896A636BEA86D29830D83CD87640B9706C66144CF22279D06062BF9858CB3 - -Count = 791 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = FC93BC579F12095A2AA3459B5EC04A6FA2AE339E3622DFD86DFE5268D01C0FB4FD1554C2595FB0 - -Count = 792 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 6E6C0AFAE083FF981D96681450B30FF8DABDA3723A2E2A09DC8FF50BB544E2900D9FC287B552F4 - -Count = 793 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = -CT = 06DDF6C1C256CDFBC86C6D7F8BD104A24AC1DF158C8109BD52250C352EE5C1954DBAF6BF1B6BBB3B - -Count = 794 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 00 -CT = BBA317D05DF7E8117DFC415211257F332C58D55177146B1A319FC4BA6D5EDA37E45838C1D48A1A3C - -Count = 795 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 0001 -CT = 59DDECD3B2D65A8C6C26B04274E69D7E91AC457AE37D6D2D02F6E8349F50F71D0D5BB618DEF35CB8 - -Count = 796 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102 -CT = 9EA4C9F9D2CA10D380AA63C81C0880A32DBCB82C9D8C7542ED377AB6744495D970D1708319AAED78 - -Count = 797 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 00010203 -CT = 8474901E6B868F86BB1292440CF2B1C4841BBA8E39E322CF62402186D578F7151EF749B1A8C2E0C2 - -Count = 798 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 0001020304 -CT = 895A94210C0FB93F4A5594CE600A423A8157522FBC546D313AE0DFC4EDD60173BE6DC58CE0A9082A - -Count = 799 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405 -CT = 7FE34072FC5BFE860D4500D7D9DA82D661FE5DC3F10FCB2AECFB48E49ECBADFEEADD5C5A12FB5A48 - -Count = 800 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 00010203040506 -CT = 3A4F3FC0FE31340C9C8AA6BF6D981858B8502783C8564FA0B5A947924FEFC9DF0DB59E8580B4C6C3 - -Count = 801 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 0001020304050607 -CT = 95DD37BD13835C96256279D46EA42F77CFBECABD8E9CF281427A61C044E1A0591415EAF803A1A0D4 - -Count = 802 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708 -CT = 60E94CF26D2A79B93222AAB019CA127C25B0EB7D41D4CD27D410D5E8592838BDCAF62F8ACFCD0A91 - -Count = 803 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 00010203040506070809 -CT = C519DAB0B85EFD4C3862BA02B8A5270F38D5AFD5FE2AC8B4A0348D540EA790B21ADEC56E338BDC83 - -Count = 804 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A -CT = 2030CA1D3E318E0C840378B1599DCD9DE80515DB91F1654136CBDC662FF07F524C417D8B370FE234 - -Count = 805 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B -CT = 1A67A160DBC9D165E1EBAA20D6FFE93FDF1C08A12BF5F85E0FF8E7D4B6AD9FEDAB4F5D2F7C4D60DC - -Count = 806 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C -CT = 3DE6741F8963F7A8CF050E802ED1A8F72915B39732BD429DF2CE6FBB15FDC2D488E63E0AD5D0D243 - -Count = 807 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C0D -CT = D457EF025ECA77933D78DCC6423CE07AED617CFA794EFE3BA6B8995540BA5DB51CD59E214F1AC795 - -Count = 808 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C0D0E -CT = 8A25607D464E1F0B6E14AE1E603BD2AD329775AD053CDFE56E3D61E19BDC857F713BC6CD499FD0F8 - -Count = 809 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C0D0E0F -CT = 8F1817BABBB093AF3DC215551F22718ABE1E6A73AA6C21323270DC5655C3C8EF00BF146F142D89CF - -Count = 810 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 0BB8E1F321B98AD80122286A98789EEDF6054DA1C0F25657CF2D93E97F1F4733CCEA940F9DC7F01C - -Count = 811 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = EEFAE789886CC2B7EB9653BB730170757C624D00FA6747754899885C9932C24F65FB3D9D98EF870A - -Count = 812 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = 22039A8822545603056FFA75BA464F86FAE7C057E359C5A8470DF43C00514E2A4EFAB9EAAE289806 - -Count = 813 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 634CD8B431FB6F78D2510CAA1B644D126B5461B7E9CA5B3765F3697B91B4E6307A899697EC211981 - -Count = 814 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = 0E0AFDFF5E5B1538CDC2EEDE984FEDB158D0C591D58FFABCFD0B4335821A8120524A17E5EA582ECD - -Count = 815 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = ACD0AFB7A405BB77C86F5E4A6DD707621B9EA77290F0F5EE10EE16E70660C9D6BCDB0674FB1A1850 - -Count = 816 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = B0A4C71E1F38C276541CB301507F915279BAB1E7B84E7EEFB0BBAD8BF65373DD3F7485CC27C31681 - -Count = 817 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = 71A7E6A49E9264534F22FEF9D6C67B7A3674FC411A8896815AC36090923B51D0740C6E5BE1740EEA - -Count = 818 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = D84CEA9E627CDF8F8EAF91DAA38E2D2A2ABE5C43D5EC431D0909257CC0973A55939C16A13F1D23E1 - -Count = 819 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = E0E63D0272E3B9A44BD6FC1DE00F0D7027ACAB71D5DF32A609E9F1C205D5099066DCC3DB7F88953C - -Count = 820 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 6227D8A2454BD8718AFEECF0B48EEE3C23EA53CE88219098FE923C59E1F67F492AAB511D97AA18FC - -Count = 821 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = D686D18B6184DAE4175D34FE449433EDAEBE266291510580F69B6F927A7FCA6FC068CA0B90926983 - -Count = 822 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = 1929CF898EE6BC20F08E94980515E586A9AFB9884DDF61ACF504F844FD3CC9B72972E57154E8B29C - -Count = 823 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = AE75C1FE069ED2323B5DF3243AD2D22274D2694D11106C1E6A483DF74C842B9C2525A6B22EA8211C - -Count = 824 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = C08C85B780FC1E6DC737341A244BF4E95AC05ED5B86992E1FEDC2A0E1AC59E7D582454073E4D4B49 - -Count = 825 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 258B2C198B4033A2E453529CD53F980E04564D5A25E02B5B9E41D9E09175D8467825A2998A50B759 - -Count = 826 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = -CT = 0AE886F14EFBA5C366C3A081096E40F250D1119C3AD446482002513DEFEE64E35C458C60327E51ADDA - -Count = 827 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 00 -CT = 989CDF54DF5289C091A603ECB5FF1057B0FB27D0C73A92D24D816DD1ECBD742F7B724C49AFDBA4B0C3 - -Count = 828 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 0001 -CT = B1A8C43D6410679A12805177CC5F891F5ABB7F962AADFD7D2536DFCF65EA17076A9C6910EB862B28A4 - -Count = 829 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102 -CT = 24946106F880A1073B1D76D577E8155CBF274A8CBDF36C987C0B015694B8DEABB6F2827F3153AB9577 - -Count = 830 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 00010203 -CT = 423F6B481B21483CB174F904F598E461BABE0A63ABFA6A010CB1BA45912A3F4F06D32C3806E428E4A9 - -Count = 831 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 0001020304 -CT = 12CB51ECDE6D4E0E27166DA1D6305713A0608BD50B0785BAAF8205CBF3D3981C6B862FA1C088346338 - -Count = 832 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405 -CT = 9131CD54AAC92E560738C394E2BC075DCC56861437864E1C88155F36BA2AC6D317C6E0CFD9CEFD888F - -Count = 833 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 00010203040506 -CT = D18B8337ABA7F131B27CA8499C8B357D5627E093CA0E07EF43A126FD8F7B273E6A6CE0C400DFC70502 - -Count = 834 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 0001020304050607 -CT = 5AE5F80AF7088B658C262F6E6617EF383BF13B4FB277DD9BDBDA954492474525F97FC37DF056274D4C - -Count = 835 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708 -CT = 3AEDEC3D86DAE0B481FF60C9BAFDBCCC5A27D426B06F424BFB5281C1D38B0A7C013FA6A2394950181C - -Count = 836 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 00010203040506070809 -CT = 0EA8C9B0E80BC0E4D928A74DB93417F5B3DE1CFE2E7213E1E4D06CAEC44F24AB4E3534CDA68A7518CE - -Count = 837 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A -CT = 92B18A6F0C68EFD7C09B7A52CF29E128CDCC644455D285783A78700EFB0679ABF8495AE45CCF3E8BF1 - -Count = 838 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B -CT = C737CA6C10F022BF286D847F8D0BCDDFC85A1818B93479C95EFEFA7DF99DE30DEC10AD2988D120E8B9 - -Count = 839 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C -CT = 2C8997D705C7798D7534CEF870F89F2DCB7F1A56B7888318A66019EF373ECF12E7C7F7BA19928A8EC9 - -Count = 840 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C0D -CT = A8DEFB524E5A172216B0DE3114069A929415E1A82C22C0398987EF155C7CDABB3A5AD1752BE8CBB56B - -Count = 841 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C0D0E -CT = 36A206B2C8BDB119E39347716B0769A402D540196E2E4FCA5E7DCFD7D94CF5212217A3781E21E2BDF6 - -Count = 842 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C0D0E0F -CT = 0A4F111AFA2745185155FB592D4A96F73A9300120E2FC8E3E57E606E836309810E236DC730E50BF737 - -Count = 843 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = F774E93C178A8BF62EDBECFDFE8923BB82D699C5499D427DFA5111CC309519A3F09ED8705B8828B8E0 - -Count = 844 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 0FF0F1826DBBF1DE9510761E8E45DFA54D1CE89ED96263D1D6606F06646D5775C84D90A0AAF048E744 - -Count = 845 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = F4BA9F0158D2C8333D7B8B7CF09BF39856BFF07358610168C510084B65E300EBE16D087D9FCE6B8879 - -Count = 846 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = BE2C5801A779A3BCC61D684D276425208D89CC50A077E5424B60DF74831FC8A18DEFE94B2879954EF9 - -Count = 847 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = 970F4E3921CCF6C774DF47086AB29AD5939C019C3EA5093002A36DA7EB36916C03B7EE590D8A7384A2 - -Count = 848 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = 39184FD87B277ECB6132FB6CA9345E62A3447BE92E6EBD1D34A8ADDFCBF53287284AFE5E09606C4458 - -Count = 849 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = F979EA9C729184C39333BCBF4FBBE26BB0BC70D67B17590FE843DD91CE3332D6822D5A62349FB520FE - -Count = 850 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = 0EC1E63E5D32A8C9B1BC057C8F4BCF97C037A6C0E7D3DFA3C618F3DC064A8805CB6EB512AAB7533A3C - -Count = 851 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = E2C17380C5F90E53D7A7BEA2A674481D7051191410F5AFA69BA9908C902DE64964C5E32F50CEC5BB0B - -Count = 852 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = ADA9738AEB7426C692EAD4EE4ED8795042A53D0FF32F59958E11AAF027ABF721205776F69F0CD5F87E - -Count = 853 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = FE3FEC0AEB013C810D86EDFB2BDB6BEB5AA88FEEB4009EF1BFC298F2384EF879B92871477ECCC10680 - -Count = 854 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 0BB35ED95DC19A559258311675AB40832E403D4F982C3EA8E24CD9DAAE47653621736FBFCED7BA8CAB - -Count = 855 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = D74177CFA5E79D0E262879EFB920BAC6E575BEB8C4331E556794BC62E01B4FD94F6D1AB36C5E240497 - -Count = 856 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = DCAF4E946021F59B842DB39AD26FDB226E53B660689861E9845A8493B659BCEDDA8D8E996ABD4D959B - -Count = 857 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = 17069B1AC4377B2461383489CC719F29BD481A55085D2065A65027FBBC0C0AAE7FC766D3A7F5EE64B2 - -Count = 858 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = F798273A7DFA98F62784B2F345DFCE6BE843D51CE71480125BF5B37BF08958FC085BC05D82F434C889 - -Count = 859 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = -CT = CD8D165C336A8CDA8AE1598538E6DF9D8264873E26EA7657FD6CCF791E6704AB85C955B97BD075E87DB5 - -Count = 860 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 00 -CT = 3EF903350821D879A66C731015201B110F7D4B39124321C450A220C29AFA7703DA87C459C2967FD5AF4E - -Count = 861 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 0001 -CT = D67FB814FBAAA49D4D6A5ACAB00297C2234C1E8253000D16BC91A00CFA46700BA595B866DB8359A201F9 - -Count = 862 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102 -CT = 2848D8C973313EE41B1A5C65E5F04578C5D44CD95D7C2F4B07A8FA21FC49B1555CEFE128FABB4F82BF0B - -Count = 863 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 00010203 -CT = 8C27B019909DCC4BFECC54C0AF091FEC5FCD02740B078319AD6C3915A7325CED689673E2572322EE86F4 - -Count = 864 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 0001020304 -CT = 9D4FA78533F81348A004269E3AEB87EAFCF7FE1E888F612D969B5E693404091A577E489722C120D6AB21 - -Count = 865 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405 -CT = 9CA84410F08B5571EBAAE8B16867147686A2FF482480977749179BF2464CEFF423ADA0B93A7C3B23ACF1 - -Count = 866 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 00010203040506 -CT = E1A3E34842DDBC2A3CFDF4B7383DA466B8C0E6E67EC771CA3263483B85BC4B6961FC344A249369B00363 - -Count = 867 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 0001020304050607 -CT = B0BF9A231A075412DB69F93311AD678A926B4B24493103A1E78104DA48EA2595D388A1F3F167F5CC33B2 - -Count = 868 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708 -CT = F85F1D8375BF2766D006BDC708A3142CBD4FB7D8F38F567F13410444FBC5ACE67D80052F521C607967AF - -Count = 869 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 00010203040506070809 -CT = 1DA81D2FB6C010EF953BC6EC3143398F5DD5EEB6317CF6D329131BCFA944402B92777CBB6EE450FACD61 - -Count = 870 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A -CT = 18EF9648BFE9FBD8B29D5706F3474546D5585F67AE3312C1593CD9770F3E0B6846641B9E817328578D7F - -Count = 871 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B -CT = A6068F5C60973934DED379D318114294CDCAFCC914CF28DB85F1C5DD8698BF4FC45850D68B8CCD454119 - -Count = 872 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C -CT = 9956ACFB61D4B10F54CDD1135C5464B1CF78E4E62977D142EFEC261A732CDAE520AE60E77F33BFAC1288 - -Count = 873 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C0D -CT = 88CBC40D6F3819BFF5F0B2C9DFBAA37FABEC0AB5CD8DC2DAC1311E51AB2A26506263DE4B601AAE079963 - -Count = 874 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C0D0E -CT = 259BCAEC78253EA3BC22FACBA3F2645B3A97A94F39CCF1A771705C1E8B3D574F43D680022A4239066585 - -Count = 875 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C0D0E0F -CT = 813493B084329E06EE69260EC39803A26C19DC89C4EB3FB2D36DF29E0CE8488D5F49AAD7CBD82BF87998 - -Count = 876 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 26FB2DAD8AE2C7AA5F7A20D42C68283D99A0B2B9C927B2178204B867DBF6A65BD2FC17460966B54FBA6C - -Count = 877 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = FCE65B3DA22523519E079741004AAA64A279C0AAC81C6F8B38DF684C56F85450E3BEC9972A8805D948B2 - -Count = 878 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = D56BFC13F17C20B6CFDF219CAFA2B8E49871AC62E5A7241846CA3549B1024977FE52C37202C46BBB401F - -Count = 879 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = ACF7579E62177D7F7B9C27BC85BA527771521087B9010F8458D14BD69237FFD474A9110C50408224CFEE - -Count = 880 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = 1EF8AE3FDB938837A36004F8A2842EED759B23EDF2E78278BD51E86CA8A350B79E20D56E7A7456309F98 - -Count = 881 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = 4A43599A322FCD8991CC37CD80E42F5B7670E37883E7B13B6807B7AB939CE7E2F1A507C89E9DEC1631F6 - -Count = 882 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = C753367A830C4CF28141B8CE0B4811D851BC00ED727A84A01B578AC93921B59B479BA1B08DF92079F6CD - -Count = 883 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = 7C2F561F89AE40F1F1EABC6490E1A0B0EFF837B28D67F94C7B66E726C305DE320A2643AAA87D2B492713 - -Count = 884 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 4F44FCED5B08294D1CC897843DD44E19DAC84CFF08D3A10C058F344F0E438086AB2D923151836B9917FA - -Count = 885 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = 448354BA65EC78D3AB8144A73E4A716E708D6FBAC28C5383A37136B4C6454EF1A405A49D1AA0880BDC18 - -Count = 886 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = D12A34B232FB3DF5D6DCFD545E7A5DCD3B33BF96FAE09C263405FBFD4E30A219F068B77D1F7F4467A611 - -Count = 887 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = BB798778A2D61940975D4999EAB993FA3C3D957681F4296CFA7A0D204FE58EFF9B7292431293E9C95EEA - -Count = 888 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = 5EFFCE8FF2498B1B5983A667EF5D1B21741E98B5A8F8824029A4FBCE3F2367CCE83A50C22E1A2646B446 - -Count = 889 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 7F41A4B9E3E5361B4C07740A9975E78A96E25A5049C0EF3A88984A5ECB86DAA126865D9B95CB38227867 - -Count = 890 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = C13D8198366CCA4E3CCFF632012FC5C5DD163DAA1D734E0DA54E8C79F1BAF9678BCC430F37BB73C6AC1A - -Count = 891 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 5DC45671FB51A96E396E09CC65894B812B8CBFAA2CD2BF9BADDC48C49647FF0A12332016140EC9A4223A - -Count = 892 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = -CT = 3F4E917FE60C00634ED3E5878B0319F1DCB67EBA962D45A2599A9351AEDE7B1C29C2F230BE0E5FE2442EC9 - -Count = 893 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 00 -CT = 16FBDD61F62734F0D237C432FD653DDB1E6385F81CE1704684D873333C938EA4CA4680462FE0F306F8A760 - -Count = 894 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 0001 -CT = E9D15E11164C8656FBE2A9F3B389A0FCF57C7C761391FD51C5BEC6F103DB576FAD18D914384F260E1FDDBF - -Count = 895 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102 -CT = CFFAF7415285BD3CA494477B0D6DBF4F76AD5AFC5568B258DD5D01E128D218F1B54979DC472BE250FA8502 - -Count = 896 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 00010203 -CT = C86399A2F30C10CABD42CD7FACEB859C73C8D66E9131C821CA741A332CB72BF026BFB4872079CA04564536 - -Count = 897 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 0001020304 -CT = BBC9AF190A4C9DBCA7FCE43998009A7598F27D219C0523265BBBE8984EA1696C1EC0B33AF1DF4E30914949 - -Count = 898 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405 -CT = 2A920B8390F8EC2FFA374DF621720A542F9E59951A3E7890B563B7A1478EED66FC64A6EB29F7275FCA3D9B - -Count = 899 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 00010203040506 -CT = AF6E2DFA2BCD2C705F2C182ED4A9433E1AAA30E98AD31A0A01BBC578F959C270D608AC251BC0FEB62883FE - -Count = 900 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 0001020304050607 -CT = 7F51A2C105D41B2AB8E75855EB01C27FBECF1BD1EF28FE294E2DCDB68116FFBE361C855EEB5D6AD3039E83 - -Count = 901 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708 -CT = 5371F86679AF23494441B7B37794A131F0A74927E93590BEF2AFAE981FB439E80A7DF02593B590B258CFBE - -Count = 902 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 00010203040506070809 -CT = 441AE0867C080EF66DFEFF9D534977F13C727D76018A7682482F1C26CAC4EA544846C7BB50E4CB53AA14BF - -Count = 903 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A -CT = 2198ABA8533DE5A929B8B656154E143218C7B24D631EE8EED2DC9C2BAA9FC146570F39060B1DC2058F736A - -Count = 904 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B -CT = 590C4D8B74AB3CCD6F0004877C3758C6ED2EC54F1F21A0F3F485C3F617C76D05E95AB8AAB67D1BCC8E6477 - -Count = 905 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C -CT = ADF8A54271FEC3C40D980BDEAA9D134075E7646276F12300965C121A4E87DCCF1CB72D263CEE9646AB66B6 - -Count = 906 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C0D -CT = 7C7C2E06952FA9A9DB37712D0FFC9D66E54F640E8884DB52D10DEDDFB3345C16D8471D575464380156E57A - -Count = 907 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C0D0E -CT = C1067C221ACD7FC831A158C3F75E503C55E243CCE0D85DC5D804F013CB137779496C87C060181307A9A472 - -Count = 908 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C0D0E0F -CT = A701BA5B1BBEB19F03B11D75689C146A714276368B40493037693855BC45F8065FE9E45F530009F5F1B837 - -Count = 909 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 98879CA255A433074924B98A1DE56142CD31393B6CB16C550D3F128BF610AB273F2558737C2F4842C02B07 - -Count = 910 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = C4BD098BAAA9F2323A847B8ADEE759E4976B3449FAAE10E18A0AAA0A5DC8CF1CEAD263465A65685EAE31C4 - -Count = 911 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = E1F11DE0552C9BCB55F12605FFD0584B3A33F72A4838FA2D51DF9F94FEA780C873F3EB486736BDCD07C813 - -Count = 912 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = FA35CAFED8CCD075D3A077BB0FC9A6D7220E7BBE9810E473BD145BB553A030FF9FAFFC0F6FE1D79D5772AC - -Count = 913 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = CD12AE6C8C3BE721D9FD2C178DFF2CE4479E3BB01D6464A56427D24584471F86EE4B46B1D5BEFD3E0FCB45 - -Count = 914 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = 6C40F2C29848F66761286C7EFE2F45AD2C85BD2242388A8DBDF01B9F6DBB65418BB896D07E89284522FA3C - -Count = 915 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = D1E66CF8933DF266295A09105E8A4B3EE22C282688C47597F0BA9DAAEED5640EE8F435ED84A7AB345FB36A - -Count = 916 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = 1A9C8C3E262D7C5DF967606089BEB665A00618CA3CD0E9DD3A49770A44E121ACC9B2A86C92888D752E139F - -Count = 917 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 624AAB7E63EF74152607871AC6EBF97C5CB9E614A865B9A96DEC795DD3FEA662C98D86D38DD0441EC5DFE6 - -Count = 918 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = AB142DCCE952CD685BDD41DEDB5D36A17D7904F9C936CC7F6A5A2D8C98B335182ECEA00B45BBC24ED32947 - -Count = 919 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 1E36EB4B3CE575863086E3502E05028D630DA46A8AC6980EB534E51EC53B4CA501EC06ACFD8418F5DEDD8A - -Count = 920 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = DB0D9EE72709798D512B623B8F7EA466D1EF647C1928B216198502F423FA9C7F2CA3C952B9156141C3C57B - -Count = 921 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = 967302BE454D6D121081534C0DF6499212D2C176E8E0CE691C1F186E962F990E6CB5B40C546BE1B9A25648 - -Count = 922 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 01BCC2FCA36E2E07D45CED3CADC4CAE65DEC0C143A73EF5E0FCFE2C67ED2CCDD18A8EF27923AA35EAC3B57 - -Count = 923 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = 5F85BCC6DC75CB1BB5E09B816525DBFFC637FB6B037EABA7EBA1434E2A189B61945301BF6B0DD537333F7B - -Count = 924 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = D5A89187E3C278654405F8EA1D4E713C88D829785C70F4B04D398DA74DC6F21FEEFFA3D218FC28B657A454 - -Count = 925 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = -CT = 3B7C471ED1113868D40798A42C0CDEF5BA40466C2C6081F17E3775C119966F1A64AA197F427EB008E32B17E7 - -Count = 926 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 00 -CT = 31A77758769E1ABD6F21C99F7DC3EEBBB550E1BF7F022FB8A167608722EB35A93F8D442A5E0CEE562DA61628 - -Count = 927 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 0001 -CT = C6D5A8C140CA18CABADC7467788D3EAEA585A3AB35A986F6540FE4FEABD7180115AA384E8426B6CDD245C29C - -Count = 928 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102 -CT = DBE1F1A6689524A606F8C41B30D274B6CDB8C66E6C6BFAB95A75FAB7AAB7DC31DC6C5EEB267D33231B97D1D3 - -Count = 929 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 00010203 -CT = B42DC87D3CE70FC91D5BB8D183FE7A24FEFFE0DBACEBECEAB3AE0F0B6A069CA21B0142C9459CD458E4AEC8AE - -Count = 930 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 0001020304 -CT = BCEAE6B2910ABF03A30175255C7111C357CD6AD09F2BD14792C3DFB5AACB89BDA0E86EAD062ADD7968AD004A - -Count = 931 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405 -CT = C6296E71FF2DD9902EB4F505C08CDE8BD9ED766C618605C91C88B10245BEA5ECA16C5E52B4148F08F20173F4 - -Count = 932 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 00010203040506 -CT = CA3CD8FF10FAF1249E5DBDE5DCA7C5BEE02ED904CDE42B7334C819E353A937C58667C5A1C7A7C6977795A2B9 - -Count = 933 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 0001020304050607 -CT = 9705D62216A72ABC58475D18F5BE79692C98088FC79421967D15CAD06FE8720DFB60341E81550D319DDF6F53 - -Count = 934 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708 -CT = 90A042EC42226184E748ADDCD93778B3CB99DE87436616B2912A2D2947E964FB91E12C11BC987657F41DB9F5 - -Count = 935 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 00010203040506070809 -CT = B80412059211015505D72A18F7016BF6167B6B26C6EB528900145844F874247FD7C1D4E5475978BD8FC72F9E - -Count = 936 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A -CT = 5506984785F1A29BA184E60E9B6C36785F631C7D3E3A1BC21459876AFF2F595F363A128B607A9992B7F501A6 - -Count = 937 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B -CT = CD40D58ECE1AD2130ED09302D335577DA23E24A0ECFF4636B8C30573F19DE53C48DBD7FABA98BCAFF5EF6F29 - -Count = 938 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C -CT = 49F260821DE6CA6789F59DBBD3861BAAB4BA10554F81B9954C96B7EF1AD7D71BE25A131D91649383382EA00C - -Count = 939 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C0D -CT = A6A3D27345F96BC412966EFF699029B1B61C83F0FD6BD9ED73155D9289B4C3E4FC5E6FBF1FF2321E85E1438F - -Count = 940 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C0D0E -CT = 9FC8546C52B8BAA2E3CB11B8C3A13AAC9FCCB9C31D31576D7260EA8C215002DD00B0DDC20395F7E09448B587 - -Count = 941 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C0D0E0F -CT = A9F36A892FAF4F0105D82AB9EC42EFE976005412205F8B36E60939AE1580AEAC3CE29CFF19D11055354CE6B4 - -Count = 942 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C0D0E0F10 -CT = AECAF1C811FE0B813C26A689FDB731009E118312FC759DA7A1EE3B1FA9FADE9809C973E8B3669EE2ED66B1DA - -Count = 943 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 731B5CEAAEBB7D181BD03A1F7F151C7C2EDE82B350CD17E18D5EFE68A2D159C1111307A05696E32F9916C3A4 - -Count = 944 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = 5EEA5E356FA4A7F893BDA4D2811505F89EE3D0FEFFA6BF031D666F533ABE640E4BBF16D202C17A2EEE4A32C3 - -Count = 945 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = F0A6D5950ADD60A937646BE3E4265C4899D8841787AA33B5F18A7AF8951555C3D72A83E67B2A4BE1FC9C6E54 - -Count = 946 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = F77E732E38417185D786943E6DBCB9782285996B333491F068C8363411CA9CD1B4F029466474A536DD9BF8C6 - -Count = 947 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = 834B7AC0EA5A55BF41E56020B15059B086D63EA89131BC19C2B7A2FDAAF383A702D616008116A2CA4EC7B8B3 - -Count = 948 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 9FB530D0658F0B52C01D0BFD7532493C74A0585408864D3F8A346EB262E5C0BD4975FF0BC54F63A66471DC0B - -Count = 949 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = E1682CB058E5A6D4EAC77EB98C8BD1833F6BBF7DCFA500390E873880AEE99A5B5582291EE7FC7B3289D10F56 - -Count = 950 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 7A41FE17C46147071BD8D76EFE6DC816E5685FC68908CE4F6B15CAED64C153DB8B8880A49868A603BB4397FC - -Count = 951 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = EF00DD1D5E35B05994FAAFA5552568E16B6C41087AEBACACCBEDA461C2C7B619CDDE8DDCA24BD95C7565BEED - -Count = 952 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 4B152EA862A71E3622777D256D65228875820D12DD821BF7AAC73BBDB9A36C8BDB52EDF5F975F68C987F3969 - -Count = 953 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 62884357B4278B51070EAB79C2F578B3A8DEAE498B6185D9F246A17A148F0739107046BF84D019A505283071 - -Count = 954 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = 4319E93C1360B66B6F9FECEACC03F3A36B6F1D2E680AB1687680C39E1B4109F0B51DFDF80407467BF764FAB8 - -Count = 955 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 1CD8DE2E2C17C767F2892CB0BFC4C521862F82119D51019E2518F3495B1AA4F0DE5778AB757DD55996F4272F - -Count = 956 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = CDAC4F8B28F40C3C3C260332306A1E5BD0B91ADFD228029EE388A8F77DE42C25E94ADADCFD5C66294C285D71 - -Count = 957 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 95B812FD1447DE7CD07B016C2FD238C5F744DAFC6DE89B535880FE1D82FBFAA801578B98EC2E84108688ACFD - -Count = 958 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = -CT = ABE67F59D1343F4DF90089B9046E5CCB37B997A4574987E0DC9EB9588CC297DE47E94187E690F137B681B6D4AB - -Count = 959 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 00 -CT = 02BCE0A645ECFC99C8BDB87B8DB2818905E80C2BA2319E4736034EE86C48A1D1DF071253DE1DC2BB3A484D20A3 - -Count = 960 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 0001 -CT = 917E8E497499965702E8CD2D8BBC2BDABB7677FAA88987E85049BBF9E77C49A6DE5959A0998D10AD9D8EA2A3FA - -Count = 961 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102 -CT = C0F37433B96C8636B65DBD025816B76F50904EB09505CC0F57EE72810DA93B6ADF1DD6AD71E185A9CE83E9B5B4 - -Count = 962 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 00010203 -CT = 3C8E6B499B81DDF01552B570A244ACC14D635E14B5B4FD1B55D1ACB9B64C8BD5C7AA47C9B7DA5F07A8F6E2FB17 - -Count = 963 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 0001020304 -CT = 6E52EB94B2BBE0C9291AC579599B641E744894A6924EA2E3CAFDB46A3C4D1E915F50F6C0D862A334103E7D1221 - -Count = 964 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405 -CT = 2B7F5EAE4C36B192A08050190B987765A2F0FB1FAC037E3ECDD3AB72AEC10C83062EBA1D85540ACD64E7B4ED6F - -Count = 965 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 00010203040506 -CT = 5FB3AC7BD67A227FB34E1F283AB727882CAD766E32B43A1FBDF9B123322DE6240C3294308635D95891788DC578 - -Count = 966 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 0001020304050607 -CT = 5D086B6BFDD7420353C1C29A0D6D142A0A39985F73E0AF43FA1D5D435967DFEC026697E9C4B309B8A2D8036E68 - -Count = 967 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708 -CT = 68394EAF77477CC2D91578AA5B59DC5E1D0BB492E2D5731EE803432E785D587B42D0720C2F9C83D1B0758A7ED2 - -Count = 968 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 00010203040506070809 -CT = 5104A6B4888377E7CB1E7206F742FF8815C942CDAF65B4352CF9EBEE3D3D6719B2A7507ACED32B2D4107C40537 - -Count = 969 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A -CT = 4E7D9E49284B70EDA9AE5F80B9D2B07716AB619F389399A668F8ABE720AF07D71DD9DE88744818B663104FA58A - -Count = 970 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B -CT = BB7F56CD3067FC4B537F5631D61E082ADC7210BCB1EB349634D4464EEDFD3FAA761890A5657DC34CDED854D4B7 - -Count = 971 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C -CT = 36E7DAE3B7E31D8A3D1931089B455FD63FDBD5E74EE128FF0E51ED34863EE4CE0D1BB538E4524C2ACA7FBD4B5E - -Count = 972 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C0D -CT = 1EB7B51E4EA85965D085A4B7301C2DACE7E2A4B4DCA14199FC530BF4AAF57398400FC5EAF740175E576063007D - -Count = 973 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C0D0E -CT = C2C1C152091C6352929B31831B19F3AE25939DBE320589876C1E240280C346FA347DA71A47A60EBA8524BED936 - -Count = 974 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C0D0E0F -CT = 1D4F57008C85D875C3F7C7BA832957652932313FD8FD2AB6AC921842ED1BF85CB0D2D33A0DAE8674F4D042DDD5 - -Count = 975 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 24D17A4515CE447BDFCE95B9AB297FC0C4BEEA75FE2BD7E4F9337D2824E68E93241B3C8B44C060D98EA257156B - -Count = 976 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 1B438B1515F252D09B9260367DEDBE4302FCA4B95D0E905DEF4DE9E0F447C4E60456DD509D78C71C0850A03207 - -Count = 977 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = 99393216CB8006F762ABEE93A1AEDF31BDAB5755F616410290F2D18E2043C50DE348218562349FB0162CCC17C2 - -Count = 978 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 01BAB3A0B9BCC0D4391BABD662CB00B3B8CF9DB4E0F208389D1C5B389355C1C07039FCF29F2C7DC03D43CDCC8F - -Count = 979 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = 32079A24DA821DEC5668D33AE152CE4C0BE7E7100D61011477BB0323DFC279A184A32B86F84774A066515FE0E4 - -Count = 980 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = F8B8753D7418962AA44C3D746D4B56C68F19D3DA9AC8F581282B7323F5E1E9BB096B4469F3248938D3DA87FF06 - -Count = 981 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = C36CBACA72F486B579A7894927C6AC269B018BA127FB3329E7E2D9373015E50680016C11EC45F3D4A6EC191D45 - -Count = 982 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = EDB280D3E3A5AB0F4A52DF0FDB3DAC25C12495410C0252C7AC6F43C906ECB6BAC6CFC1A11AB85C32412CC20310 - -Count = 983 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = EE29DEB13056AFD449AD1E470ECCD614968D3C7920468EE5367739DB3015616DD12227F7B076F5737E6FDBEE46 - -Count = 984 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = 636F1D69CBF6AD880D826873526F7E51362821AEE1B0C1637E424A63E53606E3B80E48B1E8AF69FE4DEE0BE3EA - -Count = 985 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = D29182D978ECAFFB10EB2B1B803E96A8553D395D6B8D23A8623BAB71074A803607888E263286D31B047BB6EEF3 - -Count = 986 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = FDCC21ECE528917CA48EF01249154327582D8784AE94A65604757BFA1A6D3C85EF96B04AA97613CDC27285DFA5 - -Count = 987 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = 328D76A1A94355BF212867C4A551E7B56E945545DB5B9F11FA97482A7A8C66AE3F34E5DA115CE14287327DDB17 - -Count = 988 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 878A91514C2209CF3594D617B928790DAE92C7E88E96A5C537E6B97790516821FF096910D52635051EEBDD1CF0 - -Count = 989 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = E1646201F9EBCCD5EB89409350302C84D89378EBE913525E3260668D8F05B4FEFA6E21BD4AC9ECB7074F1E32C6 - -Count = 990 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 8E4A2B76BC6864D00746249C2513DE78524612AE9BA618EEBB06BB836AC2DBE453958C4368FDF16577DEBE16A7 - -Count = 991 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = -CT = 8512E744DA43C460401B6AD55B2CFC10B623A9F18C091E1545F6DC4800B4AD02569DE85BBFA99748886733280A03 - -Count = 992 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 00 -CT = 709FF930654586ABECA72CA683C4D8B39799A1892090B5B36897B4123631A42C21B40DD1A6FD84F514103AF1CC11 - -Count = 993 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 0001 -CT = 8B145690450B9C577D4930E678C3E1D95B621A88F4A9C5417D83057499CA74F2EA1E6AB11183FCD52A8496C8E3FD - -Count = 994 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102 -CT = FC2A67563982AAA28C4281DF436F833A6D09B60996942CADFBF028E839DC0EABE7FE70718DA1F2A5A414F0B11A2F - -Count = 995 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 00010203 -CT = 00FA428C0645528E8D6695343E0F2A05EBDF7B756EAD334D4804D1E5C7DD40E39656B05B16D400358C508F97CD98 - -Count = 996 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 0001020304 -CT = 45B926732DC82A8DFF53936608AF53CCCD5D783A4D70303F30F7E8B2CFCB6F5EA34B8F8B739EBC3E35F72425CF84 - -Count = 997 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405 -CT = C212720A1C06FB0D5815F1CACEBC664824CEE0EBF9E68529FFB9DD9EADBFDCF53FF995E1613FF265D25470783BD8 - -Count = 998 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 00010203040506 -CT = 20BCE1D78DD9D8B5DFD0C222BEE2BEA64A1FDDA6FAD416DA49C9FCC7BE7DBF6BC416B500888A4B86A07E12C5655A - -Count = 999 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 0001020304050607 -CT = 37EDA73BBD6D857BD0BF08ABDF11B854FFE70F4A46E08550FEE7F47689DC84FEB3FA4964E98787106E57D77C08DF - -Count = 1000 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708 -CT = 04115FAE61C8197D9C2A40D42A45FA32A7BF59EF2B264209D03228A016E87F19DC463CD557483E5BC5FE320CBBD4 - -Count = 1001 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 00010203040506070809 -CT = 27E4144F3E9D79E2D17CF9012FAE25AE079798F5313C03742A84C9FE363800CB834934910A97F2071D8BF3E07557 - -Count = 1002 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A -CT = 37D28F328EDAC22D99B5625FC6C36CB16A941B318B9C33FF29C62722B5A787BC754E3DF55C782EE13CF4044BB3C1 - -Count = 1003 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B -CT = E5BA2067755C5922B1A08D141F0BC3EA05B36E4DA1543690324E3E4B3406D09C9CA6334E865F884B28E046FEEE00 - -Count = 1004 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C -CT = 5FE1A97EFB52C999F1F477D4AAC4FFC7CE2927EF0C1EC2AA0C827C3BCB7AF5712BEF9FDF936B9EE148D722148B0C - -Count = 1005 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C0D -CT = 70CBBA0CC718C9AA9D2D1917974388A9E29E35DA866C47036D99AAF3FA138F5A77BE683AE7EEB2179F3247D74C0D - -Count = 1006 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C0D0E -CT = F5DE344F005CDA5280942A502C9F3CBA202056700D1C87C4249CAA0CCC2681500431FD366845F203BA554909FE46 - -Count = 1007 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C0D0E0F -CT = E03B7019A79FCFE9C1094DEE927294D5C3E298D395EC3F5CD5B73DA0911167D69C6E9F7E779DBD2A93A28E03D159 - -Count = 1008 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 9AE6D76F64C22DDA56F576CE6722998F76974CC1E0FF507746763DF03340166FEA1C093A5C0B91F0C6E783E65531 - -Count = 1009 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = B5ECBD6C2D3490012FB27F59A5643C10BBC6F0B30E4D27280A6DAEFB04D38FFBBAC29856B3C9F67C257653244BAF - -Count = 1010 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = 51749744DE84F6DA3B4F7F272D95B31B36C2AC97523D08A1C6BB0BBDBB00E41B521878BFE90FD837A08EB262BFC9 - -Count = 1011 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = C9BD345CBE254E85DC5E07FAC4853D3974BEB59BDB27177B4C80C9DAEABDBED43105522B5C1A7067A4EFB57EEC68 - -Count = 1012 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = 74D99F75C242DAB5A4ACAB2FA85A247667FA8679C96386D9110E1FAD2022D61647719AD59B03BB1DE9BCE4C0DE9C - -Count = 1013 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = E66C1EDF99DD781B3D758F0804E5CFD956E04E128B943653106D3946BBF60DF96314BC76D2DC6C55B5EB02177773 - -Count = 1014 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 746E27FF25D342BA34D128A23EBC7D4383D4F241441CD2905C63DADACFB29EB700CAFA9CB3E8F090C7631E58A764 - -Count = 1015 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = A50A548E25E69E957FFFD41D354B6C7F9F4C7E5CE5BA3F821540F50FFC0236254CA7EDDF8A4D8CFE8691E415750B - -Count = 1016 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 4CF575B21955F7ECDD3B7E1DCB8DA3EBA5EDF22208BE829B2050FCD57D8F5E19BD030DDAF043FAF3FF986B341C42 - -Count = 1017 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = AD38FAFDA5EFC0EE25B39E5FE684AE528BAE02CF4D8743A09858BBE7CF27D26D5F7A75561BDF53A7A29FA004C845 - -Count = 1018 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 863D9268E12EAA71DBC2E6AD1374D87A489176CE034429C99A58F47F1E84EA75FB586EFC612EFD147EFD767F6BD8 - -Count = 1019 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 4F5E3A759DD4F8F8AC1A84BC8402A8124E5096F79DD7D2820BF7F1F5A65175E2AA06CBCD9A5CDEE4A283025B6641 - -Count = 1020 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = B05566C3EB26B52B86AB7D150F66CD9E81477CB9E1B2AB3455DA94AEB37A422B957FF06B6DEF954D68F8109F5CD2 - -Count = 1021 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 34BC47B2309F615FD351F32AA86371930D5D6DC12599E441442279E024CB4EACACFAB9C6DE9C9A2966BE9E76F048 - -Count = 1022 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = 42851ACE43D49B23EA11A945F6FB32C21AA8072AE96EA9C54B7D12CA35B3C5C2FAA5BEBECB0976442106F162595F - -Count = 1023 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 81FC35D9FF60C3A9AF2AFC1A901CF27FBAAA2FA6C13FD6F64C83D357AA396C9D5AEF95ED089E1A042938DA6B0810 - -Count = 1024 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = -CT = 153BED1C06B6349D1277FFE7BD64D9C0D4E79AA07382E47D3007B1B4334489A5772692E4934DA9228BABE067C27227 - -Count = 1025 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 00 -CT = EA59E5CCA20CD09949EA3F9A90907E2245B8CFB453FF85571A40C901A97CB25A51A413A2081665D63DFC0970021DA6 - -Count = 1026 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 0001 -CT = A37E9E4CF3832B62738A26815179B70A3CC35897D3342E5EF46E598DB7128985BA262DFEB62DF4A5E2C44F451BC63A - -Count = 1027 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102 -CT = 4BC7F5F4259B88A9B9A79F349E3388C8209DFA7522B6BD8B778CBED95C75921821437C5ECA7A66FCF03AD31784057E - -Count = 1028 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 00010203 -CT = A828BF292AC722F5880E6BE98EA636333B6754943D2BEA2DF940CF925DFE98EC8206B261424D09B9E06ECCD869F739 - -Count = 1029 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 0001020304 -CT = 911A6EFEF96BC8826B4E56D487BD16FF9484AC417ACBA2B36A1717367CA6EAC9314E8FA0017D0A60E762ECF6926E18 - -Count = 1030 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405 -CT = ADD0AF191BED7C35FD85755B58F871676C9B6818B7FB5D3366EBBE70EBC332871FAEB3C6311D03D97DA8800AC3E31C - -Count = 1031 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 00010203040506 -CT = BE2F283566022D6FA9130063748189B46A39B7E8A9854017C8AEFB87BFDDF5082BD266348B56B29854417D2DDBE824 - -Count = 1032 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 0001020304050607 -CT = 9E2981695CAFAEF5B4614DDE90BB0B4D23929E4F3D61F93F7BEC52CED40B230E736CCECDA6B2C7F9177182B231D64B - -Count = 1033 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708 -CT = 20BEF2A9F3E89EBBF4E86B964DB946EAA50E0F3DF58722EE8561C33BA074FB3A55619D089C733A84A332DEF5FC88B1 - -Count = 1034 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 00010203040506070809 -CT = EA049D88084A63EBEDBCFD2FF5614EBCA259A7A4871CBDA0E2BAE6FC5FF791709221A0725C33E2597AB27C258FACB8 - -Count = 1035 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A -CT = 7F394A475F79D92CE6D843500B7E58D03FD61650A54B05C7613DD01ED5DF615D149E00F187F3121C55600CC7B6AD76 - -Count = 1036 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B -CT = 976CE421D4A63CF19633DDB11429ADF983C5FD19F26ECAA767C8018027887C651958C0412C07D24A30BD266F706403 - -Count = 1037 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C -CT = 53CBB7A3D31710294C2344612EFCA80DF94B4F684AE75627439E16CA8FB7BB2EE688061EF2986521922B5E208DA10B - -Count = 1038 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C0D -CT = 4C5D090D6A411761447F66F2C76F44682C3A943DCD87E538D62971BE9DA9CD2C642021227A808D7ECF31B1573A5655 - -Count = 1039 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C0D0E -CT = 4B11516E933EE1676E692909B9FBE4B59BA60C85E859895777F3DC2DC44754D5EF1ADEA430A6CF661126AE2E87992E - -Count = 1040 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C0D0E0F -CT = E09ECC66AE09CFD60C6525796FAB160C4E52924E4C893953F1B25EF05146F21B892FEC7FE07713EC9E9C0E9D7037F2 - -Count = 1041 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 50DC667B5532ACDF4A0503BCD626792C719A09E95641F9AFAAEDC2C69988EF42755E6BA6A6155AEE4B2E5D4BDDBF2C - -Count = 1042 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 597C64A50A84DF2224CB14DED431EE86D04E7CED37A482C9E0D1DCECAD0D956106ADB74AC0BA0EF27E121598321DFF - -Count = 1043 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = 237FB3640786CC3980DAB177CF432A0965402D2A702006166C957B09619F3B122E2718441EE47EE5E702BDC0486EE6 - -Count = 1044 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 9FC8E2DFBFEAF392ADC1721637DB9D4B8AC250892AEEF18195B6F050A5462FCC955480DA75795CF36E54DDBB437EB8 - -Count = 1045 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = 68C479F2D3B6E4B55E5546E1D0384CC56F4BB5E6DAAB675F82EA6799101C7B50EFCF889456A9FF8F223397D9F5AA87 - -Count = 1046 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = FF85762EE4015292F2AFBC180653CA328F7B48E6642C0154CB9C91F6FF8B42B306CF42E30FD3AFE819DA916ACB5BC2 - -Count = 1047 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 495F73ECABB6379D0DF3C2EA1872F996B6BF48856451105ABB7D8F15A2F46A90AE3ACC0504483139FD871AFE3AF2FF - -Count = 1048 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = CD82714C41267A8EC1F38E32163743704C170CFC70EBF28F6AB1B6085C4F874A1E9C5B4AAC0AE52903324188DC1E91 - -Count = 1049 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 5BD9F9E46F31B5710E9CAD9B4FCB700A79CA6CC9E3485606B424173783236B0774524BAD627510103BD121372FF06E - -Count = 1050 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = EA4F800E850471D8FEFE91E80D8F8F12DEB7EC8B6ED4F7934495DA7D70ECB06E744835CB42FF64B7C27D3748A2C6ED - -Count = 1051 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 9F342EC8A473151F9AAE44C2E9C837A036817091CF9CBF0261DE54328098FD26CCC85138D9CA1F2CCF2EB07FC6E6B7 - -Count = 1052 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = E87115C629EB550C5386B0B7C9C7A0D23A9D2D5E290392116F1B46A547A01C84AFC8ECA646B9C0B287AA97C4C671B8 - -Count = 1053 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = 3D20B05FE53BA142E5D4B309151FC0E7E356A4C821FF0AAD9E69C3F6BC7C07BCBE817F0059B572C848DC05DF67F77D - -Count = 1054 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 6996F78CE412A88B4ECC56BAF9679FD4F06FB4866BEEFB04353BC399866B61A10520B706BB036D5921E2790B130E5D - -Count = 1055 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = 2679D780DB4A7FA562B8D1CA824B66AD3ED8902B2C1EC7997A5E433C34B99E3B088FE2FE3FCD54FA0BAF649208ED2C - -Count = 1056 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 1B76DA52919A34BAD0F2C869393C29D9000F47C27C306DB72893A05F11BC66D1FA50588BCE980A1968C45F7625352D - -Count = 1057 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = -CT = 2BBC24BFDC19E600FAEEF125D57E22FC2F7A534E184B1F33E277706539FC57B69C2A1A2FB07CF3BF6BAF5A3F33A427C8 - -Count = 1058 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 00 -CT = 9A1755FBD3E79F16D2F3D3F4019928C18BA5DECEE2603020B153846056755C92FF7EA76BD8E32989FFDAE98161F10979 - -Count = 1059 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 0001 -CT = 4D98C92E79CD85FC4F32DB7F6B26B80410BE15D2D2563A27D422E7C37D4AC1E0F296C3651DF8D1745413C2921B960AE9 - -Count = 1060 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102 -CT = EE1581A711FDB731A2F9A2132D4763744AC17FE8572E3CC6F11598937033F69D66F5D31736C92AEEF0BAA39AED9F52C2 - -Count = 1061 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 00010203 -CT = B5C3192435083231BC336DBE111D09F009E9A0C8431EF1405405B2CE1EEB4489291945D0475C208797DA8B2B3C7BC1CF - -Count = 1062 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 0001020304 -CT = 9A3094C681036EBC3C783D5100C63343B46B9BD778771215E5F285E56E6A49DD64B2EA5D33B80FB2EE9D4BAEE5869DBA - -Count = 1063 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405 -CT = 8CF8D88C6E60D0FBAB6F7DFB99F15545E63C2B0B7859D55781FB332939BD750D655919859EC9957F5C0B65A5BA982855 - -Count = 1064 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 00010203040506 -CT = 55624E07DC74DA221A1FF594C692397D72F7B12A0A8A81CD6B9FD6F21CF968797CCB3DED74EED7BB2D5EA3E5D15AAA7D - -Count = 1065 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 0001020304050607 -CT = AC0600B25FB1B313FF4B8280D928ABDF66E1DE13C65DAD373DD8667B35A2BAB7D8EE01A1FE8637D3D09E07F9152AA2EF - -Count = 1066 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708 -CT = A1F1D58DED0B274EAC0C7A0D6C79B7DD89B4EECBBD844F08077A0E48B957867DDA0093D805B7AAA8C807AAD669F8F32C - -Count = 1067 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 00010203040506070809 -CT = FC1571FBD603A31CFD8B5EDA26A1911BC3E9D2A4B73D4823D058DE88F2C5CE6A019212387CA5221CF5244DA2423410FB - -Count = 1068 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A -CT = CF1B310CE6A6E4A300D4EBF8A229C07EF69F8473F6D56C52244C1EC3712EFBC140B1976FFB933BDEB5958B6E7452DABC - -Count = 1069 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B -CT = D2146062CB4D45FFD347E0FB51860899EDBC5B1E564F8146696D8A638AFEC6BCFF120083087693BCDD219264C6C03444 - -Count = 1070 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C -CT = 8D4BC02EF441E357F3A582076E80EC18AD03A34EB61D63713C0A3F62839F7FA2DC3D69C7341921FC964D5B1FF94CA2C6 - -Count = 1071 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C0D -CT = DAA8812F4AD115FD1EE02C04BC2A97D26E028D81F7E35EBFFEDFA1C5A19D87F9D1910FE8CA28809AC9ECC9947B88C1E3 - -Count = 1072 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C0D0E -CT = 27D3630BF7CF649326E71F50CFD7B6171D60BA82C942495E21FB3CE564E0E8C5CCEBF6024E5771C9A4E8FFFE59064415 - -Count = 1073 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C0D0E0F -CT = 104F7091EBF05D514F39787A0E976F1594DC9BA95A5B7079428750F57EC29D513721C0E286C8CDF9D3D0FB15FDC1F332 - -Count = 1074 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 9899689EAA14A5B0D7C8191D973D27E65530B3054FAF3EFBAE3EB06A0D47747415443496A82E8EA0A4C4091F4588157B - -Count = 1075 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = BDE0C78A7E860C1CB6AE4811E8C9167004A728A8430CE3B0C5FB00C3F367F73DC4A5CD4F90C59161B157EA5645D48A4B - -Count = 1076 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = F2131F3CEFFE009B86FABB498121E59A0609E9AC4045905F9FDDB0C614689CE458FF1CCA15AFC60A8FE266AC47A400B4 - -Count = 1077 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 8E55AD2E4BF0083905D339F79649461E008CCECE14034005E305F6F37FC7FB3069AA5B7894B6F40014195CDE57D740A0 - -Count = 1078 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = E3643536DA55BBB014C57F8D3852702D1E157EE36C5E91011E7520354C3855734D5D58237E127C912210526E903A2DD5 - -Count = 1079 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = A7931EDA441E5C8432C96AD907824763D48AAA6784271D1313449DD6DED4512C9042EB8BA2C699DEED680F6BA65473C6 - -Count = 1080 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 7D6DE76A4C54792997F8BF2A8BC12E12A22129298D5E9248F9DE572C0711CAA6940514B2E92B3E7028D787DE29C85703 - -Count = 1081 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = E2216387A9DC367522E7D35B7527AF3A68C43AD69328F6361B6C2CECC2154ACDA77431CE9CDCD026D043F07D5142B06E - -Count = 1082 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = C6EAF51ED6E9C09F7698A4F8B07A9871C173BB3B6230639E2975EC1BC2D0A54053E6ECF9493910AF37EA985DFB586FB4 - -Count = 1083 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = 2C1CC49E0F99F1E4B49AD4969AD04F19D03060DD0FC81611A78B45B40841F59CCD09AB9AED4B8DFF5BE02F31CE811365 - -Count = 1084 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 0E38192F718CCACBC1B1A840B49BB0837211A33A9507459CFDF554C720EAE62A05DFCCE364B5343CD6E7FF42AA4C2F29 - -Count = 1085 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 7BBF1E556DEA24063D28D290C8B418F1EBDE24397E2264B6B3DBCA876FF8A3DF394818903C5E93A53DA18F4B829C276E - -Count = 1086 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = CDD99ACE4050E2C3EE61999C7590C6F7FB862D7821A10F74A9B1D31424C4A8C8186822BE9FE954607AFF6172170F6B60 - -Count = 1087 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 33CF5E21B86123513D4A442A3713685042CA509A934371AFE4964C5B6A9755EA65B8532E813FEB0DCF9FB2C8DD468953 - -Count = 1088 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = CC730C21BF523DC7CA252E8E581730CC92311F538F9C6795073D69A60B79055C3DC1A916701A612BAC48790F0AC98223 - -Count = 1089 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 91088A8AC46766AA94B94DA53C1BEA09E414BA2B8D8E38414119F1C1E2B07C75CCFE0E9C2C4DB9FDFDE0B189648D5DA4 - diff --git a/romulus/Implementations/crypto_aead/romulusm3v12/ref/api.h b/romulus/Implementations/crypto_aead/romulusm3v12/ref/api.h deleted file mode 100644 index 969c338..0000000 --- a/romulus/Implementations/crypto_aead/romulusm3v12/ref/api.h +++ /dev/null @@ -1,5 +0,0 @@ -#define CRYPTO_KEYBYTES 16 -#define CRYPTO_NSECBYTES 0 -#define CRYPTO_NPUBBYTES 12 -#define CRYPTO_ABYTES 16 -#define CRYPTO_NOOVERLAP 1 diff --git a/romulus/Implementations/crypto_aead/romulusm3v12/ref/encrypt.c b/romulus/Implementations/crypto_aead/romulusm3v12/ref/encrypt.c deleted file mode 100644 index c0c5649..0000000 --- a/romulus/Implementations/crypto_aead/romulusm3v12/ref/encrypt.c +++ /dev/null @@ -1,707 +0,0 @@ -/* - * Date: 29 November 2018 - * Contact: Thomas Peyrin - thomas.peyrin@gmail.com - * Mustafa Khairallah - mustafam001@e.ntu.edu.sg - */ - -#include "crypto_aead.h" -#include "api.h" -#include "variant.h" -#include "skinny.h" -#include -#include - -/*void display_vector (const unsigned char* x, int lenx) { - int i; - - for (i = 0; i < lenx; i++) { - //printf("%02x",x[i]); - } - //printf("\n"); - - }*/ - - -void pad (const unsigned char* m, unsigned char* mp, int l, int len8) { - int i; - - for (i = 0; i < l; i++) { - if (i < len8) { - mp[i] = m[i]; - } - else if (i == l - 1) { - mp[i] = (len8 & 0x0f); - } - else { - mp[i] = 0x00; - } - } - -} - -void g8A (unsigned char* s, unsigned char* c) { - int i; - - for (i = 0; i < 16; i++) { - c[i] = (s[i] >> 1) ^ (s[i] & 0x80) ^ ((s[i] & 0x01) << 7); - } - -} - -void rho_ad (const unsigned char* m, - unsigned char* s, - int len8, - int ver) { - int i; - unsigned char mp [16]; - - //printf("rho in m = ");display_vector(m,len8); - pad(m,mp,ver,len8); - //printf("rho in mp = ");display_vector(mp,16); - //printf("rho in s = ");display_vector(s,16); - for (i = 0; i < ver; i++) { - s[i] = s[i] ^ mp[i]; - } - //printf("rho out s = ");display_vector(s,16); - -} - -void rho (const unsigned char* m, - unsigned char* c, - unsigned char* s, - int len8, - int ver) { - int i; - unsigned char mp [16]; - - //printf("rho in m = ");display_vector(m,len8); - pad(m,mp,ver,len8); - //printf("rho in mp = ");display_vector(mp,16); - //printf("rho in s = ");display_vector(s,16); - - g8A(s,c); - for (i = 0; i < ver; i++) { - s[i] = s[i] ^ mp[i]; - if (i < len8) { - c[i] = c[i] ^ mp[i]; - } - else { - c[i] = 0; - } - } - //printf("rho out s = ");display_vector(s,16); - //printf("rho out c = ");display_vector(c,16); - -} - -void irho (unsigned char* m, - const unsigned char* c, - unsigned char* s, - int len8, - int ver) { - int i; - unsigned char cp [16]; - - //printf("irho in c = ");display_vector(c,len8); - pad(c,cp,ver,len8); - //printf("irho in cp = ");display_vector(cp,16); - //printf("irho in s = ");display_vector(s,16); - - g8A(s,m); - for (i = 0; i < ver; i++) { - if (i < len8) { - s[i] = s[i] ^ cp[i] ^ m[i]; - } - else { - s[i] = s[i] ^ cp[i]; - } - if (i < len8) { - m[i] = m[i] ^ cp[i]; - } - else { - m[i] = 0; - } - } - //printf("irho out s = ");display_vector(s,16); - //printf("irho out m = ");display_vector(c,16); - -} - - -void reset_lfsr_gf24 (unsigned char* CNT) { - CNT[0] = 0x01; - CNT[1] = 0x00; - CNT[2] = 0x00; -} - -void lfsr_gf24 (unsigned char* CNT) { - unsigned char fb0; - - fb0 = CNT[2] >> 7; - - CNT[2] = (CNT[2] << 1) | (CNT[1] >> 7); - CNT[1] = (CNT[1] << 1) | (CNT[0] >> 7); - if (fb0 == 1) { - CNT[0] = (CNT[0] << 1) ^ 0x1b; - } - else { - CNT[0] = (CNT[0] << 1); - } -} - -void compose_tweakey (unsigned char* KT, - const unsigned char* K, - unsigned char* T, - unsigned char* CNT, - unsigned char D, - int t) { - - int i; - - for (i = 0; i < 3; i++) { - KT[i] = CNT[i]; - } - KT[i] = D; - for (i = 0; i < t; i++) { - KT[i+4] = T[i]; - } - for (i = 0; i < 16; i++) { - KT[i+4+t] = K[i]; - } - for (i = 0; i < 3; i++) { - KT[i+4+t+16] = CNT[i+3]; - } - for (i = 0; i < 13; i++) { - KT[i+4+t+16+3] = 0x00; - } - -} - -void block_cipher(unsigned char* s, - const unsigned char* k, unsigned char* T, - unsigned char* CNT, unsigned char D, int t, int n) { - unsigned char KT [48]; - - (void)n; - compose_tweakey(KT,k,T,CNT,D,t); - //printf("BC in kt = ");display_vector(KT,3*n); - //printf("BC in s = ");display_vector(s,n); - skinny_128_256_enc (s,KT); - //printf("BC out s = ");display_vector(s,n); - -} - -void nonce_encryption (const unsigned char* N, - unsigned char* CNT, - unsigned char*s, const unsigned char* k, - int t, int n, unsigned char D) { - unsigned char T [16]; - int i; - - for (i = 0; i < t; i++) { - T[i] = N[i]; - } - //printf("nonce cnt = ");display_vector(CNT,7); - block_cipher(s,k,T,CNT,D,t,n); - -} - -void generate_tag (unsigned char** c, unsigned char* s, - int n, unsigned long long* clen) { - - g8A(s, *c); - *c = *c + n; - *c = *c - *clen; - -} - -unsigned long long msg_encryption (const unsigned char** M, unsigned char** c, - const unsigned char* N, - unsigned char* CNT, - unsigned char*s, const unsigned char* k, - unsigned int n, unsigned int t, unsigned char D, - unsigned long long mlen) { - int len8; - - - if (mlen >= n) { - len8 = n; - mlen = mlen - n; - } - else { - len8 = mlen; - mlen = 0; - } - rho(*M, *c, s, len8, n); - *c = *c + len8; - *M = *M + len8; - lfsr_gf24(CNT); - if (mlen != 0) { - nonce_encryption(N,CNT,s,k,t,n,D); - } - return mlen; -} - - - -unsigned long long msg_decryption (unsigned char** M, const unsigned char** c, - const unsigned char* N, - unsigned char* CNT, - unsigned char*s, const unsigned char* k, - unsigned int n, unsigned int t, unsigned char D, - unsigned long long clen) { - int len8; - - if (clen >= n) { - len8 = n; - clen = clen - n; - } - else { - len8 = clen; - clen = 0; - } - irho(*M, *c, s, len8, n); - *c = *c + len8; - *M = *M + len8; - lfsr_gf24(CNT); - nonce_encryption(N,CNT,s,k,t,n,D); - return clen; -} - -unsigned long long ad2msg_encryption (const unsigned char** M, - unsigned char* CNT, - unsigned char*s, const unsigned char* k, - unsigned int t, unsigned int n, unsigned char D, - unsigned long long mlen) { - unsigned char T [16]; - int len8; - - if (mlen <= t) { - len8 = mlen; - mlen = 0; - } - else { - len8 = t; - mlen = mlen - t; - } - - pad (*M,T,t,len8); - //printf("ad2msg nonce cnt = ");display_vector(CNT,7); - block_cipher(s,k,T,CNT,D,t,n); - lfsr_gf24(CNT); - *M = *M + len8; - - return mlen; - -} - - -unsigned long long ad_encryption (const unsigned char** A, unsigned char* s, - const unsigned char* k, unsigned long long adlen, - unsigned char* CNT, - unsigned char D, - unsigned int n, unsigned int t) { - - unsigned char T [16]; - int len8; - - if (adlen >= n) { - len8 = n; - adlen = adlen - n; - } - else { - len8 = adlen; - adlen = 0; - } - //printf("AD in = ");display_vector(*A,len8); - rho_ad(*A, s, len8, n); - *A = *A + len8; - lfsr_gf24(CNT); - //printf("AD cnt = ");display_vector(CNT,7); - if (adlen != 0) { - if (adlen >= t) { - len8 = t; - adlen = adlen - t; - } - else { - len8 = adlen; - adlen = 0; - } - pad(*A, T, t, len8); - *A = *A + len8; - block_cipher(s,k,T,CNT,D,t,n); - lfsr_gf24(CNT); - } - - return adlen; -} - -int crypto_aead_encrypt ( - unsigned char* c, unsigned long long* clen, - const unsigned char* m, unsigned long long mlen, - const unsigned char* ad, unsigned long long adlen, - const unsigned char* nsec, - const unsigned char* npub, - const unsigned char* k - ) -{ - unsigned char s[16]; - unsigned char CNT[7]; - unsigned char T[16]; - const unsigned char* N; - unsigned int n, t, i; - unsigned char w; - unsigned long long xlen; - - (void)nsec; - N = npub; - - n = AD_BLK_LEN_ODD; - t = AD_BLK_LEN_EVN; - - xlen = mlen; - - for (i = 0; i < n; i++) { - s[i] = 0; - } - reset_lfsr_gf24(CNT); - //printf("s = ");display_vector(s,16); - //printf("cnt = ");display_vector(CNT,7); - - w = 176; - - if (adlen == 0) { - w = w ^ 2; - if (xlen == 0) { - w =w ^ 1; - } - else if (xlen%(n+t) == 0) { - w = w ^ 4; - } - else if (xlen%(n+t) < t) { - w = w ^ 1; - } - else if (xlen%(n+t) == t) { - w = w ^ 0; - } - else { - w = w ^ 5; - } - } - else if (adlen%(n+t) == 0) { - w = w ^ 8; - if (xlen == 0) { - w =w ^ 1; - } - else if (xlen%(n+t) == 0) { - w = w ^ 4; - } - else if (xlen%(n+t) < n) { - w = w ^ 1; - } - else if (xlen%(n+t) == n) { - w = w ^ 0; - } - else { - w = w ^ 5; - } - } - else if (adlen%(n+t) < n) { - w = w ^ 2; - if (xlen == 0) { - w =w ^ 1; - } - else if (xlen%(n+t) == 0) { - w = w ^ 4; - } - else if (xlen%(n+t) < t) { - w = w ^ 1; - } - else if (xlen%(n+t) == t) { - w = w ^ 0; - } - else { - w = w ^ 5; - } - } - else if (adlen%(n+t) == n) { - w = w ^ 0; - if (xlen == 0) { - w =w ^ 1; - } - else if (xlen%(n+t) == 0) { - w = w ^ 4; - } - else if (xlen%(n+t) < t) { - w = w ^ 1; - } - else if (xlen%(n+t) == t) { - w = w ^ 0; - } - else { - w = w ^ 5; - } - } - else { - w = w ^ 10; - if (xlen == 0) { - w =w ^ 1; - } - else if (xlen%(n+t) == 0) { - w = w ^ 4; - } - else if (xlen%(n+t) < n) { - w = w ^ 1; - } - else if (xlen%(n+t) == n) { - w = w ^ 0; - } - else { - w = w ^ 5; - } - } - - if (adlen == 0) { // AD is an empty string - lfsr_gf24(CNT); - //xlen = ad2msg_encryption (&m,CNT,s,k,t,n,172,xlen); - } - else while (adlen > 0) { - adlen = ad_encryption(&ad,s,k,adlen,CNT,168,n,t); - } - - if ((w & 8) == 0) { - xlen = ad2msg_encryption (&m,CNT,s,k,t,n,172,xlen); - } - else if (mlen == 0) { - lfsr_gf24(CNT); - } - while (xlen > 0) { - xlen = ad_encryption(&m,s,k,xlen,CNT,172,n,t); - } - nonce_encryption(N,CNT,s,k,t,n,w); - - - // Tag generation - g8A(s, T); - //printf("T = ");display_vector(T,n); - - m = m - mlen; - - reset_lfsr_gf24(CNT); - - for (i = 0; i < n; i = i + 1) { - s[i] = T[i]; - } - - n = MSG_BLK_LEN; - *clen = mlen + n; - - - - if (mlen > 0) { - nonce_encryption(N,CNT,s,k,t,n,164); - while (mlen > n) { - mlen = msg_encryption(&m,&c,N,CNT,s,k,n,t,164,mlen); - } - rho(m, c, s, mlen, 16); - c = c + mlen; - m = m + mlen; - } - - // Tag Concatenation - for (i = 0; i < 16; i = i + 1) { - *(c + i) = T[i]; - } - - c = c - *clen; - - - - return 0; -} - -int crypto_aead_decrypt( -unsigned char *m,unsigned long long *mlen, -unsigned char *nsec, -const unsigned char *c,unsigned long long clen, -const unsigned char *ad,unsigned long long adlen, -const unsigned char *npub, -const unsigned char *k -) -{ - unsigned char s[16]; - unsigned char CNT[7]; - unsigned char T[16]; - const unsigned char* N; - unsigned int n, t, i; - unsigned char w; - unsigned long long xlen; - const unsigned char* mauth; - - (void)nsec; - mauth = m; - - N = npub; - - n = AD_BLK_LEN_ODD; - t = AD_BLK_LEN_EVN; - - xlen = clen-16; - - reset_lfsr_gf24(CNT); - - for (i = 0; i < 16; i++) { - T[i] = *(c + clen - 16 + i); - } - - for (i = 0; i < n; i = i + 1) { - s[i] = T[i]; - } - - n = MSG_BLK_LEN; - clen = clen - 16; - *mlen = clen; - - - if (clen > 0) { - nonce_encryption(N,CNT,s,k,t,n,164); - while (clen > n) { - clen = msg_decryption(&m,&c,N,CNT,s,k,n,t,164,clen); - } - irho(m, c, s, clen, 16); - c = c + clen; - m = m + clen; - } - - - for (i = 0; i < n; i++) { - s[i] = 0; - } - reset_lfsr_gf24(CNT); - //printf("s = ");display_vector(s,16); - //printf("cnt = ");display_vector(CNT,7); - - w = 176; - - if (adlen == 0) { - w = w ^ 2; - if (xlen == 0) { - w =w ^ 1; - } - else if (xlen%(n+t) == 0) { - w = w ^ 4; - } - else if (xlen%(n+t) < t) { - w = w ^ 1; - } - else if (xlen%(n+t) == t) { - w = w ^ 0; - } - else { - w = w ^ 5; - } - } - else if (adlen%(n+t) == 0) { - w = w ^ 8; - if (xlen == 0) { - w =w ^ 1; - } - else if (xlen%(n+t) == 0) { - w = w ^ 4; - } - else if (xlen%(n+t) < n) { - w = w ^ 1; - } - else if (xlen%(n+t) == n) { - w = w ^ 0; - } - else { - w = w ^ 5; - } - } - else if (adlen%(n+t) < n) { - w = w ^ 2; - if (xlen == 0) { - w =w ^ 1; - } - else if (xlen%(n+t) == 0) { - w = w ^ 4; - } - else if (xlen%(n+t) < t) { - w = w ^ 1; - } - else if (xlen%(n+t) == t) { - w = w ^ 0; - } - else { - w = w ^ 5; - } - } - else if (adlen%(n+t) == n) { - w = w ^ 0; - if (xlen == 0) { - w =w ^ 1; - } - else if (xlen%(n+t) == 0) { - w = w ^ 4; - } - else if (xlen%(n+t) < t) { - w = w ^ 1; - } - else if (xlen%(n+t) == t) { - w = w ^ 0; - } - else { - w = w ^ 5; - } - } - else { - w = w ^ 10; - if (xlen == 0) { - w =w ^ 1; - } - else if (xlen%(n+t) == 0) { - w = w ^ 4; - } - else if (xlen%(n+t) < n) { - w = w ^ 1; - } - else if (xlen%(n+t) == n) { - w = w ^ 0; - } - else { - w = w ^ 5; - } - } - - if (adlen == 0) { // AD is an empty string - lfsr_gf24(CNT); - //xlen = ad2msg_encryption (&mauth,CNT,s,k,t,n,172,xlen); - } - else while (adlen > 0) { - adlen = ad_encryption(&ad,s,k,adlen,CNT,168,n,t); - } - - if ((w & 8) == 0) { - xlen = ad2msg_encryption (&mauth,CNT,s,k,t,n,172,xlen); - } - else if (clen == 0) { - lfsr_gf24(CNT); - } - while (xlen > 0) { - xlen = ad_encryption(&mauth,s,k,xlen,CNT,172,n,t); - } - nonce_encryption(N,CNT,s,k,t,n,w); - - // Tag generation - g8A(s, T); - //printf("T = ");display_vector(T,16); - //printf("t = ");display_vector(c,16); - for (i = 0; i < 16; i++) { - if (T[i] != (*(c+i))) { - return -1; - } - } - - return 0; -} diff --git a/romulus/Implementations/crypto_aead/romulusm3v12/ref/genkat_aead.c b/romulus/Implementations/crypto_aead/romulusm3v12/ref/genkat_aead.c deleted file mode 100644 index ecee146..0000000 --- a/romulus/Implementations/crypto_aead/romulusm3v12/ref/genkat_aead.c +++ /dev/null @@ -1,163 +0,0 @@ -// -// NIST-developed software is provided by NIST as a public service. -// You may use, copy and distribute copies of the software in any medium, -// provided that you keep intact this entire notice. You may improve, -// modify and create derivative works of the software or any portion of -// the software, and you may copy and distribute such modifications or -// works. Modified works should carry a notice stating that you changed -// the software and should note the date and nature of any such change. -// Please explicitly acknowledge the National Institute of Standards and -// Technology as the source of the software. -// -// NIST-developed software is expressly provided "AS IS." NIST MAKES NO -// WARRANTY OF ANY KIND, EXPRESS, IMPLIED, IN FACT OR ARISING BY OPERATION -// OF LAW, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTY OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT AND DATA ACCURACY. NIST -// NEITHER REPRESENTS NOR WARRANTS THAT THE OPERATION OF THE SOFTWARE WILL BE -// UNINTERRUPTED OR ERROR-FREE, OR THAT ANY DEFECTS WILL BE CORRECTED. NIST -// DOES NOT WARRANT OR MAKE ANY REPRESENTATIONS REGARDING THE USE OF THE SOFTWARE -// OR THE RESULTS THEREOF, INCLUDING BUT NOT LIMITED TO THE CORRECTNESS, ACCURACY, -// RELIABILITY, OR USEFULNESS OF THE SOFTWARE. -// -// You are solely responsible for determining the appropriateness of using and -// distributing the software and you assume all risks associated with its use, -// including but not limited to the risks and costs of program errors, compliance -// with applicable laws, damage to or loss of data, programs or equipment, and -// the unavailability or interruption of operation. This software is not intended -// to be used in any situation where a failure could cause risk of injury or -// damage to property. The software developed by NIST employees is not subject to -// copyright protection within the United States. -// - -// disable deprecation for sprintf and fopen -#ifdef _MSC_VER -#define _CRT_SECURE_NO_WARNINGS -#endif - -#include -#include - -#include "crypto_aead.h" -#include "api.h" - -#define KAT_SUCCESS 0 -#define KAT_FILE_OPEN_ERROR -1 -#define KAT_DATA_ERROR -3 -#define KAT_CRYPTO_FAILURE -4 - -#define MAX_FILE_NAME 256 -#define MAX_MESSAGE_LENGTH 32 -#define MAX_ASSOCIATED_DATA_LENGTH 32 - -void init_buffer(unsigned char *buffer, unsigned long long numbytes); - -void fprint_bstr(FILE *fp, const char *label, const unsigned char *data, unsigned long long length); - -int generate_test_vectors(); - -int main() -{ - int ret = generate_test_vectors(); - - if (ret != KAT_SUCCESS) { - fprintf(stderr, "test vector generation failed with code %d\n", ret); - } - - return ret; -} - -int generate_test_vectors() -{ - FILE *fp; - char fileName[MAX_FILE_NAME]; - unsigned char key[CRYPTO_KEYBYTES]; - unsigned char nonce[CRYPTO_NPUBBYTES]; - unsigned char msg[MAX_MESSAGE_LENGTH]; - unsigned char msg2[MAX_MESSAGE_LENGTH]; - unsigned char ad[MAX_ASSOCIATED_DATA_LENGTH]; - unsigned char ct[MAX_MESSAGE_LENGTH + CRYPTO_ABYTES]; - unsigned long long clen, mlen2; - int count = 1; - int func_ret, ret_val = KAT_SUCCESS; - - init_buffer(key, sizeof(key)); - init_buffer(nonce, sizeof(nonce)); - init_buffer(msg, sizeof(msg)); - init_buffer(ad, sizeof(ad)); - - sprintf(fileName, "LWC_AEAD_KAT_%d_%d.txt", (CRYPTO_KEYBYTES * 8), (CRYPTO_NPUBBYTES * 8)); - - if ((fp = fopen(fileName, "w")) == NULL) { - fprintf(stderr, "Couldn't open <%s> for write\n", fileName); - return KAT_FILE_OPEN_ERROR; - } - - for (unsigned long long mlen = 0; (mlen <= MAX_MESSAGE_LENGTH) && (ret_val == KAT_SUCCESS); mlen++) { - //for (unsigned long long mlen = 0; (mlen <= 32) && (ret_val == KAT_SUCCESS); mlen++) { - for (unsigned long long adlen = 0; adlen <= MAX_ASSOCIATED_DATA_LENGTH; adlen++) { - //for (unsigned long long adlen = 0; adlen <= 32; adlen++) { - - printf("%0d\n", (int)clen); - - fprintf(fp, "Count = %d\n", count++); - printf("Count = %d\n", count - 1); - - fprint_bstr(fp, "Key = ", key, CRYPTO_KEYBYTES); - - fprint_bstr(fp, "Nonce = ", nonce, CRYPTO_NPUBBYTES); - - fprint_bstr(fp, "PT = ", msg, mlen); - - fprint_bstr(fp, "AD = ", ad, adlen); - - if ((func_ret = crypto_aead_encrypt(ct, &clen, msg, mlen, ad, adlen, NULL, nonce, key)) != 0) { - fprintf(fp, "crypto_aead_encrypt returned <%d>\n", func_ret); - ret_val = KAT_CRYPTO_FAILURE; - break; - } - - fprint_bstr(fp, "CT = ", ct, clen); - - fprintf(fp, "\n"); - - if ((func_ret = crypto_aead_decrypt(msg2, &mlen2, NULL, ct, clen, ad, adlen, nonce, key)) != 0) { - fprintf(fp, "crypto_aead_decrypt returned <%d>\n", func_ret); - ret_val = KAT_CRYPTO_FAILURE; - break; - } - - if (mlen != mlen2) { - fprintf(fp, "crypto_aead_decrypt returned bad 'mlen': Got <%llu>, expected <%llu>\n", mlen2, mlen); - ret_val = KAT_CRYPTO_FAILURE; - break; - } - - if (memcmp(msg, msg2, mlen)) { - fprintf(fp, "crypto_aead_decrypt did not recover the plaintext\n"); - ret_val = KAT_CRYPTO_FAILURE; - break; - } - } - } - - fclose(fp); - - return ret_val; -} - - -void fprint_bstr(FILE *fp, const char *label, const unsigned char *data, unsigned long long length) -{ - fprintf(fp, "%s", label); - - for (unsigned long long i = 0; i < length; i++) - fprintf(fp, "%02X", data[i]); - - fprintf(fp, "\n"); -} - -void init_buffer(unsigned char *buffer, unsigned long long numbytes) -{ - for (unsigned long long i = 0; i < numbytes; i++) - buffer[i] = (unsigned char)i; -} diff --git a/romulus/Implementations/crypto_aead/romulusm3v12/ref/skinny.h b/romulus/Implementations/crypto_aead/romulusm3v12/ref/skinny.h deleted file mode 100644 index a33ba58..0000000 --- a/romulus/Implementations/crypto_aead/romulusm3v12/ref/skinny.h +++ /dev/null @@ -1 +0,0 @@ -extern void skinny_128_256_enc (unsigned char* input, const unsigned char* userkey); diff --git a/romulus/Implementations/crypto_aead/romulusm3v12/ref/skinny_reference.c b/romulus/Implementations/crypto_aead/romulusm3v12/ref/skinny_reference.c deleted file mode 100644 index 171a179..0000000 --- a/romulus/Implementations/crypto_aead/romulusm3v12/ref/skinny_reference.c +++ /dev/null @@ -1,547 +0,0 @@ -/* - * Date: 11 December 2015 - * Contact: Thomas Peyrin - thomas.peyrin@gmail.com - */ - -#include -#include -#include -#include -#include "skinny.h" - -#define DEBUG 0 - -// Table that encodes the parameters of the various Skinny versions: -// (block size, key size, number of rounds) -//Skinny-64-64: 32 rounds -//Skinny-64-128: 36 rounds -//Skinny-64-192: 40 rounds -//Skinny-128-128: 40 rounds -//Skinny-128-256: 48 rounds -//Skinny-128-384: 56 rounds -int versions[6][3]={{64,64,32},{64,128,36},{64,192,40},{128,128,40},{128,256,48},{128,384,56}}; - -// Packing of data is done as follows (state[i][j] stands for row i and column j): -// 0 1 2 3 -// 4 5 6 7 -// 8 9 10 11 -//12 13 14 15 - -// 4-bit Sbox -const unsigned char sbox_4[16] = {12,6,9,0,1,10,2,11,3,8,5,13,4,14,7,15}; -const unsigned char sbox_4_inv[16] = {3,4,6,8,12,10,1,14,9,2,5,7,0,11,13,15}; - -// 8-bit Sbox -const unsigned char sbox_8[256] = {0x65 , 0x4c , 0x6a , 0x42 , 0x4b , 0x63 , 0x43 , 0x6b , 0x55 , 0x75 , 0x5a , 0x7a , 0x53 , 0x73 , 0x5b , 0x7b ,0x35 , 0x8c , 0x3a , 0x81 , 0x89 , 0x33 , 0x80 , 0x3b , 0x95 , 0x25 , 0x98 , 0x2a , 0x90 , 0x23 , 0x99 , 0x2b ,0xe5 , 0xcc , 0xe8 , 0xc1 , 0xc9 , 0xe0 , 0xc0 , 0xe9 , 0xd5 , 0xf5 , 0xd8 , 0xf8 , 0xd0 , 0xf0 , 0xd9 , 0xf9 ,0xa5 , 0x1c , 0xa8 , 0x12 , 0x1b , 0xa0 , 0x13 , 0xa9 , 0x05 , 0xb5 , 0x0a , 0xb8 , 0x03 , 0xb0 , 0x0b , 0xb9 ,0x32 , 0x88 , 0x3c , 0x85 , 0x8d , 0x34 , 0x84 , 0x3d , 0x91 , 0x22 , 0x9c , 0x2c , 0x94 , 0x24 , 0x9d , 0x2d ,0x62 , 0x4a , 0x6c , 0x45 , 0x4d , 0x64 , 0x44 , 0x6d , 0x52 , 0x72 , 0x5c , 0x7c , 0x54 , 0x74 , 0x5d , 0x7d ,0xa1 , 0x1a , 0xac , 0x15 , 0x1d , 0xa4 , 0x14 , 0xad , 0x02 , 0xb1 , 0x0c , 0xbc , 0x04 , 0xb4 , 0x0d , 0xbd ,0xe1 , 0xc8 , 0xec , 0xc5 , 0xcd , 0xe4 , 0xc4 , 0xed , 0xd1 , 0xf1 , 0xdc , 0xfc , 0xd4 , 0xf4 , 0xdd , 0xfd ,0x36 , 0x8e , 0x38 , 0x82 , 0x8b , 0x30 , 0x83 , 0x39 , 0x96 , 0x26 , 0x9a , 0x28 , 0x93 , 0x20 , 0x9b , 0x29 ,0x66 , 0x4e , 0x68 , 0x41 , 0x49 , 0x60 , 0x40 , 0x69 , 0x56 , 0x76 , 0x58 , 0x78 , 0x50 , 0x70 , 0x59 , 0x79 ,0xa6 , 0x1e , 0xaa , 0x11 , 0x19 , 0xa3 , 0x10 , 0xab , 0x06 , 0xb6 , 0x08 , 0xba , 0x00 , 0xb3 , 0x09 , 0xbb ,0xe6 , 0xce , 0xea , 0xc2 , 0xcb , 0xe3 , 0xc3 , 0xeb , 0xd6 , 0xf6 , 0xda , 0xfa , 0xd3 , 0xf3 , 0xdb , 0xfb ,0x31 , 0x8a , 0x3e , 0x86 , 0x8f , 0x37 , 0x87 , 0x3f , 0x92 , 0x21 , 0x9e , 0x2e , 0x97 , 0x27 , 0x9f , 0x2f ,0x61 , 0x48 , 0x6e , 0x46 , 0x4f , 0x67 , 0x47 , 0x6f , 0x51 , 0x71 , 0x5e , 0x7e , 0x57 , 0x77 , 0x5f , 0x7f ,0xa2 , 0x18 , 0xae , 0x16 , 0x1f , 0xa7 , 0x17 , 0xaf , 0x01 , 0xb2 , 0x0e , 0xbe , 0x07 , 0xb7 , 0x0f , 0xbf ,0xe2 , 0xca , 0xee , 0xc6 , 0xcf ,0xe7 , 0xc7 , 0xef , 0xd2 , 0xf2 , 0xde , 0xfe , 0xd7 , 0xf7 , 0xdf , 0xff}; -const unsigned char sbox_8_inv[256] = {0xac , 0xe8 , 0x68 , 0x3c , 0x6c , 0x38 , 0xa8 , 0xec , 0xaa , 0xae , 0x3a , 0x3e , 0x6a , 0x6e , 0xea , 0xee ,0xa6 , 0xa3 , 0x33 , 0x36 , 0x66 , 0x63 , 0xe3 , 0xe6 , 0xe1 , 0xa4 , 0x61 , 0x34 , 0x31 , 0x64 , 0xa1 , 0xe4 ,0x8d , 0xc9 , 0x49 , 0x1d , 0x4d , 0x19 , 0x89 , 0xcd , 0x8b , 0x8f , 0x1b , 0x1f , 0x4b , 0x4f , 0xcb , 0xcf ,0x85 , 0xc0 , 0x40 , 0x15 , 0x45 , 0x10 , 0x80 , 0xc5 , 0x82 , 0x87 , 0x12 , 0x17 , 0x42 , 0x47 , 0xc2 , 0xc7 ,0x96 , 0x93 , 0x03 , 0x06 , 0x56 , 0x53 , 0xd3 , 0xd6 , 0xd1 , 0x94 , 0x51 , 0x04 , 0x01 , 0x54 , 0x91 , 0xd4 ,0x9c , 0xd8 , 0x58 , 0x0c , 0x5c , 0x08 , 0x98 , 0xdc , 0x9a , 0x9e , 0x0a , 0x0e , 0x5a , 0x5e , 0xda , 0xde ,0x95 , 0xd0 , 0x50 , 0x05 , 0x55 , 0x00 , 0x90 , 0xd5 , 0x92 , 0x97 , 0x02 , 0x07 , 0x52 , 0x57 , 0xd2 , 0xd7 ,0x9d , 0xd9 , 0x59 , 0x0d , 0x5d , 0x09 , 0x99 , 0xdd , 0x9b , 0x9f , 0x0b , 0x0f , 0x5b , 0x5f , 0xdb , 0xdf ,0x16 , 0x13 , 0x83 , 0x86 , 0x46 , 0x43 , 0xc3 , 0xc6 , 0x41 , 0x14 , 0xc1 , 0x84 , 0x11 , 0x44 , 0x81 , 0xc4 ,0x1c , 0x48 , 0xc8 , 0x8c , 0x4c , 0x18 , 0x88 , 0xcc , 0x1a , 0x1e , 0x8a , 0x8e , 0x4a , 0x4e , 0xca , 0xce ,0x35 , 0x60 , 0xe0 , 0xa5 , 0x65 , 0x30 , 0xa0 , 0xe5 , 0x32 , 0x37 , 0xa2 , 0xa7 , 0x62 , 0x67 , 0xe2 , 0xe7 ,0x3d , 0x69 , 0xe9 , 0xad , 0x6d , 0x39 , 0xa9 , 0xed , 0x3b , 0x3f , 0xab , 0xaf , 0x6b , 0x6f , 0xeb , 0xef ,0x26 , 0x23 , 0xb3 , 0xb6 , 0x76 , 0x73 , 0xf3 , 0xf6 , 0x71 , 0x24 , 0xf1 , 0xb4 , 0x21 , 0x74 , 0xb1 , 0xf4 ,0x2c , 0x78 , 0xf8 , 0xbc , 0x7c , 0x28 , 0xb8 , 0xfc , 0x2a , 0x2e , 0xba , 0xbe , 0x7a , 0x7e , 0xfa , 0xfe ,0x25 , 0x70 , 0xf0 , 0xb5 , 0x75 , 0x20 , 0xb0 , 0xf5 , 0x22 , 0x27 , 0xb2 , 0xb7 , 0x72 , 0x77 , 0xf2 , 0xf7 ,0x2d , 0x79 , 0xf9 , 0xbd , 0x7d , 0x29 , 0xb9 , 0xfd , 0x2b , 0x2f , 0xbb , 0xbf , 0x7b , 0x7f , 0xfb , 0xff}; - -// ShiftAndSwitchRows permutation -const unsigned char P[16] = {0,1,2,3,7,4,5,6,10,11,8,9,13,14,15,12}; -const unsigned char P_inv[16] = {0,1,2,3,5,6,7,4,10,11,8,9,15,12,13,14}; - -// Tweakey permutation -const unsigned char TWEAKEY_P[16] = {9,15,8,13,10,14,12,11,0,1,2,3,4,5,6,7}; -const unsigned char TWEAKEY_P_inv[16] = {8,9,10,11,12,13,14,15,2,0,4,7,6,3,5,1}; - -// round constants -const unsigned char RC[62] = { - 0x01, 0x03, 0x07, 0x0F, 0x1F, 0x3E, 0x3D, 0x3B, 0x37, 0x2F, - 0x1E, 0x3C, 0x39, 0x33, 0x27, 0x0E, 0x1D, 0x3A, 0x35, 0x2B, - 0x16, 0x2C, 0x18, 0x30, 0x21, 0x02, 0x05, 0x0B, 0x17, 0x2E, - 0x1C, 0x38, 0x31, 0x23, 0x06, 0x0D, 0x1B, 0x36, 0x2D, 0x1A, - 0x34, 0x29, 0x12, 0x24, 0x08, 0x11, 0x22, 0x04, 0x09, 0x13, - 0x26, 0x0c, 0x19, 0x32, 0x25, 0x0a, 0x15, 0x2a, 0x14, 0x28, - 0x10, 0x20}; - -FILE* fic; - - -// Extract and apply the subtweakey to the internal state (must be the two top rows XORed together), then update the tweakey state -void AddKey(unsigned char state[4][4], unsigned char keyCells[3][4][4], int ver) -{ - int i, j, k; - unsigned char pos; - unsigned char keyCells_tmp[3][4][4]; - - // apply the subtweakey to the internal state - for(i = 0; i <= 1; i++) - { - for(j = 0; j < 4; j++) - { - state[i][j] ^= keyCells[0][i][j]; - if (2*versions[ver][0]==versions[ver][1]) - state[i][j] ^= keyCells[1][i][j]; - else if (3*versions[ver][0]==versions[ver][1]) - state[i][j] ^= keyCells[1][i][j] ^ keyCells[2][i][j]; - } - } - - // update the subtweakey states with the permutation - for(k = 0; k <(int)(versions[ver][1]/versions[ver][0]); k++){ - for(i = 0; i < 4; i++){ - for(j = 0; j < 4; j++){ - //application of the TWEAKEY permutation - pos=TWEAKEY_P[j+4*i]; - keyCells_tmp[k][i][j]=keyCells[k][pos>>2][pos&0x3]; - } - } - } - - // update the subtweakey states with the LFSRs - for(k = 0; k <(int)(versions[ver][1]/versions[ver][0]); k++){ - for(i = 0; i <= 1; i++){ - for(j = 0; j < 4; j++){ - //application of LFSRs for TK updates - if (k==1) - { - if (versions[ver][0]==64) - keyCells_tmp[k][i][j]=((keyCells_tmp[k][i][j]<<1)&0xE)^((keyCells_tmp[k][i][j]>>3)&0x1)^((keyCells_tmp[k][i][j]>>2)&0x1); - else - keyCells_tmp[k][i][j]=((keyCells_tmp[k][i][j]<<1)&0xFE)^((keyCells_tmp[k][i][j]>>7)&0x01)^((keyCells_tmp[k][i][j]>>5)&0x01); - } - else if (k==2) - { - if (versions[ver][0]==64) - keyCells_tmp[k][i][j]=((keyCells_tmp[k][i][j]>>1)&0x7)^((keyCells_tmp[k][i][j])&0x8)^((keyCells_tmp[k][i][j]<<3)&0x8); - else - keyCells_tmp[k][i][j]=((keyCells_tmp[k][i][j]>>1)&0x7F)^((keyCells_tmp[k][i][j]<<7)&0x80)^((keyCells_tmp[k][i][j]<<1)&0x80); - } - } - } - } - - for(k = 0; k <(int)(versions[ver][1]/versions[ver][0]); k++){ - for(i = 0; i < 4; i++){ - for(j = 0; j < 4; j++){ - keyCells[k][i][j]=keyCells_tmp[k][i][j]; - } - } - } -} - - -// Extract and apply the subtweakey to the internal state (must be the two top rows XORed together), then update the tweakey state (inverse function} -void AddKey_inv(unsigned char state[4][4], unsigned char keyCells[3][4][4], int ver) -{ - int i, j, k; - unsigned char pos; - unsigned char keyCells_tmp[3][4][4]; - - // update the subtweakey states with the permutation - for(k = 0; k <(int)(versions[ver][1]/versions[ver][0]); k++){ - for(i = 0; i < 4; i++){ - for(j = 0; j < 4; j++){ - //application of the inverse TWEAKEY permutation - pos=TWEAKEY_P_inv[j+4*i]; - keyCells_tmp[k][i][j]=keyCells[k][pos>>2][pos&0x3]; - } - } - } - - // update the subtweakey states with the LFSRs - for(k = 0; k <(int)(versions[ver][1]/versions[ver][0]); k++){ - for(i = 2; i <= 3; i++){ - for(j = 0; j < 4; j++){ - //application of inverse LFSRs for TK updates - if (k==1) - { - if (versions[ver][0]==64) - keyCells_tmp[k][i][j]=((keyCells_tmp[k][i][j]>>1)&0x7)^((keyCells_tmp[k][i][j]<<3)&0x8)^((keyCells_tmp[k][i][j])&0x8); - else - keyCells_tmp[k][i][j]=((keyCells_tmp[k][i][j]>>1)&0x7F)^((keyCells_tmp[k][i][j]<<7)&0x80)^((keyCells_tmp[k][i][j]<<1)&0x80); - } - else if (k==2) - { - if (versions[ver][0]==64) - keyCells_tmp[k][i][j]=((keyCells_tmp[k][i][j]<<1)&0xE)^((keyCells_tmp[k][i][j]>>3)&0x1)^((keyCells_tmp[k][i][j]>>2)&0x1); - else - keyCells_tmp[k][i][j]=((keyCells_tmp[k][i][j]<<1)&0xFE)^((keyCells_tmp[k][i][j]>>7)&0x01)^((keyCells_tmp[k][i][j]>>5)&0x01); - } - } - } - } - - for(k = 0; k <(int)(versions[ver][1]/versions[ver][0]); k++){ - for(i = 0; i < 4; i++){ - for(j = 0; j < 4; j++){ - keyCells[k][i][j]=keyCells_tmp[k][i][j]; - } - } - } - - - // apply the subtweakey to the internal state - for(i = 0; i <= 1; i++) - { - for(j = 0; j < 4; j++) - { - state[i][j] ^= keyCells[0][i][j]; - if (2*versions[ver][0]==versions[ver][1]) - state[i][j] ^= keyCells[1][i][j]; - else if (3*versions[ver][0]==versions[ver][1]) - state[i][j] ^= keyCells[1][i][j] ^ keyCells[2][i][j]; - } - } -} - - -// Apply the constants: using a LFSR counter on 6 bits, we XOR the 6 bits to the first 6 bits of the internal state -void AddConstants(unsigned char state[4][4], int r) -{ - state[0][0] ^= (RC[r] & 0xf); - state[1][0] ^= ((RC[r]>>4) & 0x3); - state[2][0] ^= 0x2; -} - -// apply the 4-bit Sbox -void SubCell4(unsigned char state[4][4]) -{ - int i,j; - for(i = 0; i < 4; i++) - for(j = 0; j < 4; j++) - state[i][j] = sbox_4[state[i][j]]; -} - -// apply the 4-bit inverse Sbox -void SubCell4_inv(unsigned char state[4][4]) -{ - int i,j; - for(i = 0; i < 4; i++) - for(j = 0; j < 4; j++) - state[i][j] = sbox_4_inv[state[i][j]]; -} - -// apply the 8-bit Sbox -void SubCell8(unsigned char state[4][4]) -{ - int i,j; - for(i = 0; i < 4; i++) - for(j = 0; j < 4; j++) - state[i][j] = sbox_8[state[i][j]]; -} - -// apply the 8-bit inverse Sbox -void SubCell8_inv(unsigned char state[4][4]) -{ - int i,j; - for(i = 0; i < 4; i++) - for(j = 0; j < 4; j++) - state[i][j] = sbox_8_inv[state[i][j]]; -} - -// Apply the ShiftRows function -void ShiftRows(unsigned char state[4][4]) -{ - int i, j, pos; - - unsigned char state_tmp[4][4]; - for(i = 0; i < 4; i++) - { - for(j = 0; j < 4; j++) - { - //application of the ShiftRows permutation - pos=P[j+4*i]; - state_tmp[i][j]=state[pos>>2][pos&0x3]; - } - } - - for(i = 0; i < 4; i++) - { - for(j = 0; j < 4; j++) - { - state[i][j]=state_tmp[i][j]; - } - } -} - -// Apply the inverse ShiftRows function -void ShiftRows_inv(unsigned char state[4][4]) -{ - int i, j, pos; - - unsigned char state_tmp[4][4]; - for(i = 0; i < 4; i++) - { - for(j = 0; j < 4; j++) - { - //application of the inverse ShiftRows permutation - pos=P_inv[j+4*i]; - state_tmp[i][j]=state[pos>>2][pos&0x3]; - } - } - - for(i = 0; i < 4; i++) - { - for(j = 0; j < 4; j++) - { - state[i][j]=state_tmp[i][j]; - } - } -} - -// Apply the linear diffusion matrix -//M = -//1 0 1 1 -//1 0 0 0 -//0 1 1 0 -//1 0 1 0 -void MixColumn(unsigned char state[4][4]) -{ - int j; - unsigned char temp; - - for(j = 0; j < 4; j++){ - state[1][j]^=state[2][j]; - state[2][j]^=state[0][j]; - state[3][j]^=state[2][j]; - - temp=state[3][j]; - state[3][j]=state[2][j]; - state[2][j]=state[1][j]; - state[1][j]=state[0][j]; - state[0][j]=temp; - } -} - -// Apply the inverse linear diffusion matrix -void MixColumn_inv(unsigned char state[4][4]) -{ - int j; - unsigned char temp; - - for(j = 0; j < 4; j++){ - temp=state[3][j]; - state[3][j]=state[0][j]; - state[0][j]=state[1][j]; - state[1][j]=state[2][j]; - state[2][j]=temp; - - state[3][j]^=state[2][j]; - state[2][j]^=state[0][j]; - state[1][j]^=state[2][j]; - } -} - -// decryption function of Skinny -void dec(unsigned char* input, const unsigned char* userkey, int ver) -{ - unsigned char state[4][4]; - unsigned char dummy[4][4]={{0}}; - unsigned char keyCells[3][4][4]; - int i; - - memset(keyCells, 0, 48); - for(i = 0; i < 16; i++) { - if (versions[ver][0]==64){ - if(i&1) - { - state[i>>2][i&0x3] = input[i>>1]&0xF; - keyCells[0][i>>2][i&0x3] = userkey[i>>1]&0xF; - if (versions[ver][1]>=128) - keyCells[1][i>>2][i&0x3] = userkey[(i+16)>>1]&0xF; - if (versions[ver][1]>=192) - keyCells[2][i>>2][i&0x3] = userkey[(i+32)>>1]&0xF; - } - else - { - state[i>>2][i&0x3] = (input[i>>1]>>4)&0xF; - keyCells[0][i>>2][i&0x3] = (userkey[i>>1]>>4)&0xF; - if (versions[ver][1]>=128) - keyCells[1][i>>2][i&0x3] = (userkey[(i+16)>>1]>>4)&0xF; - if (versions[ver][1]>=192) - keyCells[2][i>>2][i&0x3] = (userkey[(i+32)>>1]>>4)&0xF; - } - } - else if (versions[ver][0]==128){ - state[i>>2][i&0x3] = input[i]&0xFF; - - keyCells[0][i>>2][i&0x3] = userkey[i]&0xFF; - if (versions[ver][1]>=256) - keyCells[1][i>>2][i&0x3] = userkey[i+16]&0xFF; - if (versions[ver][1]>=384) - keyCells[2][i>>2][i&0x3] = userkey[i+32]&0xFF; - } - } - - for(i = versions[ver][2]-1; i >=0 ; i--){ - AddKey(dummy, keyCells, ver); - } - - #ifdef DEBUG - //f//printf(fic,"DEC - initial state: ");display_cipher_state(state,keyCells,ver);//f//printf(fic,"\n"); - #endif - - for(i = versions[ver][2]-1; i >=0 ; i--){ - MixColumn_inv(state); - #ifdef DEBUG - //f//printf(fic,"DEC - round %.2i - after MixColumn_inv: ",i);display_cipher_state(state,keyCells,ver);//f//printf(fic,"\n"); - #endif - ShiftRows_inv(state); - #ifdef DEBUG - //f//printf(fic,"DEC - round %.2i - after ShiftRows_inv: ",i);display_cipher_state(state,keyCells,ver);//f//printf(fic,"\n"); - #endif - AddKey_inv(state, keyCells, ver); - #ifdef DEBUG - //f//printf(fic,"DEC - round %.2i - after AddKey_inv: ",i);display_cipher_state(state,keyCells,ver);//f//printf(fic,"\n"); - #endif - AddConstants(state, i); - #ifdef DEBUG - //f//printf(fic,"DEC - round %.2i - after AddConstants_inv: ",i);display_cipher_state(state,keyCells,ver);//f//printf(fic,"\n"); - #endif - if (versions[ver][0]==64) - SubCell4_inv(state); - else - SubCell8_inv(state); - #ifdef DEBUG - //f//printf(fic,"DEC - round %.2i - after SubCell_inv: ",i);display_cipher_state(state,keyCells,ver);//f//printf(fic,"\n"); - #endif - } - - #ifdef DEBUG - //f//printf(fic,"DEC - final state: ");display_cipher_state(state,keyCells,ver);//f//printf(fic,"\n"); - #endif - - if (versions[ver][0]==64) - { - for(i = 0; i < 8; i++) - input[i] = ((state[(2*i)>>2][(2*i)&0x3] & 0xF) << 4) | (state[(2*i+1)>>2][(2*i+1)&0x3] & 0xF); - } - else if (versions[ver][0]==128) - { - for(i = 0; i < 16; i++) - input[i] = state[i>>2][i&0x3] & 0xFF; - } -} - -// encryption function of Skinny -void enc(unsigned char* input, const unsigned char* userkey, int ver) -{ - unsigned char state[4][4]; - unsigned char keyCells[3][4][4]; - int i; - - memset(keyCells, 0, 48); - for(i = 0; i < 16; i++) { - if (versions[ver][0]==64){ - if(i&1) - { - state[i>>2][i&0x3] = input[i>>1]&0xF; - keyCells[0][i>>2][i&0x3] = userkey[i>>1]&0xF; - if (versions[ver][1]>=128) - keyCells[1][i>>2][i&0x3] = userkey[(i+16)>>1]&0xF; - if (versions[ver][1]>=192) - keyCells[2][i>>2][i&0x3] = userkey[(i+32)>>1]&0xF; - } - else - { - state[i>>2][i&0x3] = (input[i>>1]>>4)&0xF; - keyCells[0][i>>2][i&0x3] = (userkey[i>>1]>>4)&0xF; - if (versions[ver][1]>=128) - keyCells[1][i>>2][i&0x3] = (userkey[(i+16)>>1]>>4)&0xF; - if (versions[ver][1]>=192) - keyCells[2][i>>2][i&0x3] = (userkey[(i+32)>>1]>>4)&0xF; - } - } - else if (versions[ver][0]==128){ - state[i>>2][i&0x3] = input[i]&0xFF; - keyCells[0][i>>2][i&0x3] = userkey[i]&0xFF; - if (versions[ver][1]>=256) - keyCells[1][i>>2][i&0x3] = userkey[i+16]&0xFF; - if (versions[ver][1]>=384) - keyCells[2][i>>2][i&0x3] = userkey[i+32]&0xFF; - } - } - - #ifdef DEBUG - //printf("ENC - initial state: ");display_cipher_state(state,keyCells,ver);//printf("\n"); - #endif - for(i = 0; i < versions[ver][2]; i++){ - if (versions[ver][0]==64) - SubCell4(state); - else - SubCell8(state); - #ifdef DEBUG - //printf("ENC - round %.2i - after SubCell: ",i);display_cipher_state(state,keyCells,ver);//printf("\n"); - #endif - AddConstants(state, i); - #ifdef DEBUG - //printf("ENC - round %.2i - after AddConstants: ",i);display_cipher_state(state,keyCells,ver);//printf("\n"); - #endif - AddKey(state, keyCells, ver); - #ifdef DEBUG - //printf("ENC - round %.2i - after AddKey: ",i);display_cipher_state(state,keyCells,ver);//printf("\n"); - #endif - ShiftRows(state); - #ifdef DEBUG - //printf("ENC - round %.2i - after ShiftRows: ",i);display_cipher_state(state,keyCells,ver);//printf("\n"); - #endif - MixColumn(state); - #ifdef DEBUG - //printf("ENC - round %.2i - after MixColumn: ",i);display_cipher_state(state,keyCells,ver);//printf("\n"); - #endif - } //The last subtweakey should not be added - - #ifdef DEBUG - //printf("ENC - final state: ");display_cipher_state(state,keyCells,ver);//printf("\n"); - #endif - - if (versions[ver][0]==64) - { - for(i = 0; i < 8; i++) - input[i] = ((state[(2*i)>>2][(2*i)&0x3] & 0xF) << 4) | (state[(2*i+1)>>2][(2*i+1)&0x3] & 0xF); - } - else if (versions[ver][0]==128) - { - for(i = 0; i < 16; i++) - input[i] = state[i>>2][i&0x3] & 0xFF; - } -} - -void skinny_128_256_enc (unsigned char* input, const unsigned char* userkey) { - enc(input,userkey,4); -} - -// generate test vectors for all the versions of Skinny -void TestVectors(int ver) -{ - unsigned char p[16]; - unsigned char c[16]; - unsigned char k[48]; - int n; - - for(n = 1; n < 10; n++) - { - int i; - for(i = 0; i < (versions[ver][0]>>3); i++) c[i] = p[i] = rand() & 0xff; - for(i = 0; i < (versions[ver][1]>>3); i++) k[i] = rand() & 0xff; - //printf("TK = "); for(i = 0; i < (versions[ver][1]>>3); i++) //printf("%02x", k[i]); //printf("\n"); - //printf("P = "); for(i = 0; i < (versions[ver][0]>>3); i++) //printf("%02x", p[i]); //printf("\n"); - enc(c,k,ver); - //printf("C = "); for(i = 0; i < (versions[ver][0]>>3); i++) //printf("%02x", c[i]); //printf("\n"); - dec(c,k,ver); - //printf("P' = "); for(i = 0; i < (versions[ver][0]>>3); i++) //printf("%02x", c[i]); //printf("\n\n"); - } -} - -/* int main() { */ -/* unsigned int i; */ -/* char name[30]; */ - -/* srand((unsigned) time (NULL)); */ - -/* //test all versions of Skinny */ -/* for (i=0; i<(sizeof(versions)/sizeof(*versions));i++) */ -/* { */ -/* s//printf(name, "test_vectors_%i_%i.txt", versions[i][0], versions[i][1]); */ -/* fic=fopen(name,"w"); */ -/* //printf("\n\nSkinny-%i/%i: \n",versions[i][0],versions[i][1]); */ -/* TestVectors(i); */ -/* fclose(fic); */ -/* //printf("Generating test vectors for Skinny-%i/%i - saved in file test_vectors_%i_%i.txt \n",versions[i][0],versions[i][1],versions[i][0],versions[i][1]); */ -/* } */ - -/* return 0; */ -/* } */ - - - diff --git a/romulus/Implementations/crypto_aead/romulusm3v12/ref/variant.h b/romulus/Implementations/crypto_aead/romulusm3v12/ref/variant.h deleted file mode 100644 index 27e7705..0000000 --- a/romulus/Implementations/crypto_aead/romulusm3v12/ref/variant.h +++ /dev/null @@ -1,3 +0,0 @@ -#define MSG_BLK_LEN 16 -#define AD_BLK_LEN_ODD 16 -#define AD_BLK_LEN_EVN 12 diff --git a/romulus/Implementations/crypto_aead/romulusn1+/LWC_AEAD_KAT_128_128.txt b/romulus/Implementations/crypto_aead/romulusn1+/LWC_AEAD_KAT_128_128.txt new file mode 100644 index 0000000..3a8b9c7 --- /dev/null +++ b/romulus/Implementations/crypto_aead/romulusn1+/LWC_AEAD_KAT_128_128.txt @@ -0,0 +1,7623 @@ +Count = 1 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = +AD = +CT = 4F42AED219ECC79F4DAF3E3BAD52AEE7 + +Count = 2 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = +AD = 00 +CT = AB8FE298CF6A3261F1F6C89B2B5E3367 + +Count = 3 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = +AD = 0001 +CT = 0AD6EE5DE5280CC51CBCAFBFCE5E99DF + +Count = 4 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = +AD = 000102 +CT = 6CD9F20267266610D4F769EB602BFF17 + +Count = 5 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = +AD = 00010203 +CT = 19733DA1D8C16E0BD5F516A15BAA5908 + +Count = 6 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = +AD = 0001020304 +CT = 3A6D0641C711CF5B941364035663C7E7 + +Count = 7 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = +AD = 000102030405 +CT = B48A50D9E16DA2D0BCC784DB7C126536 + +Count = 8 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = +AD = 00010203040506 +CT = A3D9197875E4F92DA35A48B1E07483B7 + +Count = 9 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = +AD = 0001020304050607 +CT = B96653DC95ED31D43A9E19DA42A71ABA + +Count = 10 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = +AD = 000102030405060708 +CT = ACA17AF4073855420675302764B5DC89 + +Count = 11 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = +AD = 00010203040506070809 +CT = 7D79DF409392AA600A0D11CBFD906E80 + +Count = 12 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = +AD = 000102030405060708090A +CT = 092E181F40BE039D2E3E487E7077E445 + +Count = 13 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = +AD = 000102030405060708090A0B +CT = DC663A1D1901CE72BE4A7F3E4C3EB0BF + +Count = 14 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = +AD = 000102030405060708090A0B0C +CT = B50DD4A972DB1D311AFC204E29515C9B + +Count = 15 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = +AD = 000102030405060708090A0B0C0D +CT = 0F51E7B2AF267F0F22ABCD57F9A0D8C7 + +Count = 16 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = +AD = 000102030405060708090A0B0C0D0E +CT = 39C467A055B702ABA9857E2C9A7DB716 + +Count = 17 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = +AD = 000102030405060708090A0B0C0D0E0F +CT = 413D3F77845E976AC72596E765B26B6A + +Count = 18 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = +AD = 000102030405060708090A0B0C0D0E0F10 +CT = D17F367D07F02A0F93E1DE5385529556 + +Count = 19 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 5E8F2FC2BB627A819950B081BD9046A2 + +Count = 20 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = 099377EB20CE32F6C2741C0271D420BF + +Count = 21 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 67EDE73262D0E89E8563F79B2C81183F + +Count = 22 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = 0A02D202AC556A7C5D63BBCB48BD7C08 + +Count = 23 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = 26767C17A6F2827F555B8D821B087776 + +Count = 24 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 2FC4C0CD30343AD78C94300201C02CCC + +Count = 25 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = 65374F9820E14134A09BDD2736D35374 + +Count = 26 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = DD7653B181923EE9618FEE4167C4329F + +Count = 27 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = CF0F7BBBC999218F8965B0C95734F76A + +Count = 28 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = C4C21C764765BE3CD6AD1D4B8B7C3156 + +Count = 29 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = E364473014F0B6E717B31D068FFEDE07 + +Count = 30 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = DC61BD30632AFA362E341B65243E10F0 + +Count = 31 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 64795075A3EFFD16C578234D83263384 + +Count = 32 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = 7BAF89F08686EE2266C2A648795011A9 + +Count = 33 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 77B3BBEA06D2F03827E928080703A571 + +Count = 34 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00 +AD = +CT = DED8F65782F8D7BB14448E05D7A80579C3 + +Count = 35 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00 +AD = 00 +CT = 99A4A09B46BB14D231B8DB511AEFDBC594 + +Count = 36 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00 +AD = 0001 +CT = 51DC8ECEDEB19DB9FA94D6C99F78AC4068 + +Count = 37 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00 +AD = 000102 +CT = 255456D923B18D1E3584421C272E6B4309 + +Count = 38 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00 +AD = 00010203 +CT = 2BCF40227C025F52E4B1172B1F2849C931 + +Count = 39 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00 +AD = 0001020304 +CT = CA82DBD55E79213355DC8F9FA9F3F4BD75 + +Count = 40 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00 +AD = 000102030405 +CT = 85168B36CD4D1609980897F74C8BDA0217 + +Count = 41 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00 +AD = 00010203040506 +CT = 3714256F75518BE16DEBF9C2FFC6F50E9B + +Count = 42 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00 +AD = 0001020304050607 +CT = 06CB79EB83C7CD1F10FF9D2FA36DF223C3 + +Count = 43 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00 +AD = 000102030405060708 +CT = EE34A26BC739EEBEFC41236A6570099332 + +Count = 44 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00 +AD = 00010203040506070809 +CT = 25928856FCBB01EF7D9464FFF8C011EE41 + +Count = 45 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00 +AD = 000102030405060708090A +CT = B08153BD9658521865618224DF9B00A4F9 + +Count = 46 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00 +AD = 000102030405060708090A0B +CT = 7322A59A9CB8441BC9AE0DFCF046B13D6A + +Count = 47 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00 +AD = 000102030405060708090A0B0C +CT = 411210A9F99F4A2CF09096B26FD20A98A2 + +Count = 48 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00 +AD = 000102030405060708090A0B0C0D +CT = 1A01FEBD3B88C4A0A2B9D1466F18080D48 + +Count = 49 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00 +AD = 000102030405060708090A0B0C0D0E +CT = 399D10DBDEFAB2060B9A8606AA261E30A3 + +Count = 50 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00 +AD = 000102030405060708090A0B0C0D0E0F +CT = 9585BE4E12DE3302AC345C29C3B064A1B6 + +Count = 51 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 306F8744B7099CA9920B6B23B79E37F0ED + +Count = 52 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 86FB19886DA9F925904899E5C5A981FA73 + +Count = 53 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = F62A63F16D2635F7B67F5D524824099C87 + +Count = 54 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 4F4D192B18070E79470941779C2B3CDA3A + +Count = 55 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = 89DA3E4D3117CC7B68BA512853062C8891 + +Count = 56 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = 20C86CD1A407D256E2985EC8E3029D25AF + +Count = 57 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 20EF479CD5969B852112131FE39173FE39 + +Count = 58 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = 4FBB11855F19F28CB0518C833B5D6FA5A0 + +Count = 59 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 602B9FAFF092C914879B197CCD4237A42F + +Count = 60 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = 5ECAB4A6B4297D72310919DDF5CAB3ABB3 + +Count = 61 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 002D6FC7E333F55FA538DB0660F3E223E0 + +Count = 62 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = B299854F06DA4D94374F59CB2685743890 + +Count = 63 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = D91696580EA52E25BB7DEAB904985AC075 + +Count = 64 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 5FB3BEFC67B88F4540BB96993A5F77F578 + +Count = 65 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = 04A69765DD560A4F45BFD450EA459A1F7A + +Count = 66 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 1A13C5650F4FBA3D21C87AAD5A68BC4944 + +Count = 67 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001 +AD = +CT = DE2718ACE56400234A9661A0DCDCC9A2275E + +Count = 68 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001 +AD = 00 +CT = 998DA8848EA10E49CB12604A9297BEBF607C + +Count = 69 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001 +AD = 0001 +CT = 51E3D7A2D1DE4AD1F3A711BF70AA98826B47 + +Count = 70 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001 +AD = 000102 +CT = 255E2A81D0470AEBC8F43AE4FFB75A94E36C + +Count = 71 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001 +AD = 00010203 +CT = 2BB8C3732E76BB72D57288C087DC6B328EDC + +Count = 72 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001 +AD = 0001020304 +CT = CAB0EFA3D5A655759D15021239109914340B + +Count = 73 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001 +AD = 000102030405 +CT = 85FF0071C0D86B7D5B6F2C9F1BA59FF7CF98 + +Count = 74 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001 +AD = 00010203040506 +CT = 3746A524326D49ABED3BBC21B13D8EF2E377 + +Count = 75 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001 +AD = 0001020304050607 +CT = 066DA57BDAFA88D99685FFF41A481178F8A3 + +Count = 76 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001 +AD = 000102030405060708 +CT = EE35AFEA01C42BA26EDB52265FF296862D1A + +Count = 77 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001 +AD = 00010203040506070809 +CT = 252E02A72960148D822490371C9A77AE17CF + +Count = 78 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001 +AD = 000102030405060708090A +CT = B0C1CF61CE22A466AE4A306579614195500A + +Count = 79 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001 +AD = 000102030405060708090A0B +CT = 73F5FC6D7892EB5154DAC16F5C446DD0C1E5 + +Count = 80 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001 +AD = 000102030405060708090A0B0C +CT = 41AA335270650285F15BE31E376F23875011 + +Count = 81 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001 +AD = 000102030405060708090A0B0C0D +CT = 1A927483B0D97CC8F6F3CF3134450E583904 + +Count = 82 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001 +AD = 000102030405060708090A0B0C0D0E +CT = 39D9F75B9BCDA5685647869EE230BF06C9C0 + +Count = 83 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001 +AD = 000102030405060708090A0B0C0D0E0F +CT = 95A96E3455040C3FDC77937A9B14E02728B5 + +Count = 84 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 307855FB6E7162F75414F3A86F76B31AFABA + +Count = 85 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 86B31FA9A4B4429F89082B5D883418C6E443 + +Count = 86 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = F60A4CFA5CE8BBCB28612FF9F61F383775FA + +Count = 87 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 4F48090FBC0D05D52E787D3C55E1C6F45F3C + +Count = 88 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = 89BD80A5EAF691949F8E4D2094471CEDD000 + +Count = 89 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = 2021BE7369C8B9E53A77861A72B1F853B7AF + +Count = 90 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 20F2AF4E332D5877E6DAB5487313EA9D0DDC + +Count = 91 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = 4F7CC8CF78800CA852FC0071F77F08BA14FE + +Count = 92 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 6034528631EC07F09B54330446B542715B20 + +Count = 93 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = 5E4237D366CC45AE12C0677CEBD5063830CD + +Count = 94 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 000500EAA18D1587251DF97C15DCB2164157 + +Count = 95 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = B2B2D47351DBED4FC574BA3C7B73A530AE5A + +Count = 96 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = D96C15C34940E4529FBAF37EA2D446C5FEF6 + +Count = 97 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 5F51C34C14159CB614BA969182F46B14C1E9 + +Count = 98 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = 047BDEC235A030E8D0C7B7F0058BDAC666B4 + +Count = 99 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 1A9B1583E92745CB460F1B552AD3107F7B3C + +Count = 100 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102 +AD = +CT = DE27B34B578AE7EE9F6D724A58357E64084C57 + +Count = 101 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102 +AD = 00 +CT = 998D77F4E8339261CFD518F2433A832C46F4FD + +Count = 102 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102 +AD = 0001 +CT = 51E3F21B221B4DD7AE0FC2EF25541E2707BDD1 + +Count = 103 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102 +AD = 000102 +CT = 255ED80EB7031E4936331A80819C97FBE82570 + +Count = 104 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102 +AD = 00010203 +CT = 2BB84CC9AADDAC611381AAFADA998DCD067DB6 + +Count = 105 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102 +AD = 0001020304 +CT = CAB056EB1FCFD0FD907009155895BD3AF0A3D3 + +Count = 106 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102 +AD = 000102030405 +CT = 85FF408E3E8BFE90BAA972A4A7B299E120A2BF + +Count = 107 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102 +AD = 00010203040506 +CT = 37466E557CE9973710C0511317DEDB74CB6770 + +Count = 108 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102 +AD = 0001020304050607 +CT = 066D38418CF06AE11DB70D0AA9B060EBB819D0 + +Count = 109 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102 +AD = 000102030405060708 +CT = EE35C5817A2C1C30C1EAAFF6F8AB22DA523C3E + +Count = 110 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102 +AD = 00010203040506070809 +CT = 252EA9C1AD2621711B2077B262AD997DA80D08 + +Count = 111 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102 +AD = 000102030405060708090A +CT = B0C1791AD0CDBDFAFAB328867D8049F7C9614B + +Count = 112 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102 +AD = 000102030405060708090A0B +CT = 73F508EABCAFAAEC55D282A0680190A1FAC2C6 + +Count = 113 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102 +AD = 000102030405060708090A0B0C +CT = 41AAA967EC86257C42137E52D4CAC098D83DB5 + +Count = 114 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102 +AD = 000102030405060708090A0B0C0D +CT = 1A92684FF4DF91217387D8776D99B2B8E85640 + +Count = 115 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102 +AD = 000102030405060708090A0B0C0D0E +CT = 39D99070C11618D7E39491ABC21C9FDD7AE431 + +Count = 116 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102 +AD = 000102030405060708090A0B0C0D0E0F +CT = 95A9CC50CDA8D085A3C620C06996A4D4E7B594 + +Count = 117 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 307824298971AFD0B069135E2B6F15FBBF47D6 + +Count = 118 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 86B3B489242C429B0D3C25C0C469FD88601631 + +Count = 119 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = F60ADCDEBEE0E9463B31FC080C4C9E9FC1D249 + +Count = 120 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 4F4837C8515B917BE204D91C47E11C915E6F02 + +Count = 121 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = 89BDEA4D595282B7E492984987C124F64234F5 + +Count = 122 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = 2021C88A65F027427EA8E36E59F3D56097236A + +Count = 123 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 20F20F985145EF788727B9B07850922CE6CB92 + +Count = 124 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = 4F7CC6588C56B879455AD5B61B762C8F7C9987 + +Count = 125 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 6034C8F15F5641F74B88FB116440A2FA7D1330 + +Count = 126 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = 5E427AD9761BD7C026E55924F578672BE20AD9 + +Count = 127 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 0005A3B98DCC1E9917593C26C6844CF5043FBD + +Count = 128 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = B2B2A8D9F8B982EADA416B829A39F40A5BD391 + +Count = 129 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = D96C095A5FBA84AEBAFB6E577A3CC101F4F59B + +Count = 130 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 5F5143AD7D8F561BE8178933DD0094B81002E8 + +Count = 131 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = 047BDB8B114BBFD7802CBC24626F14C1288CF0 + +Count = 132 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 1A9B58C8A42D0A5593C303CDA102865BF90B0F + +Count = 133 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203 +AD = +CT = DE27B3C150EC780A5DA9CABFCB61A149003EAEEC + +Count = 134 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203 +AD = 00 +CT = 998D770169E944BC240A12EEAEAB23467D3A6816 + +Count = 135 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203 +AD = 0001 +CT = 51E3F265AB46992E8FDBFD423520FA2CFB0CAAE3 + +Count = 136 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203 +AD = 000102 +CT = 255ED81399E2709967472BE2DBB074EF92CE7995 + +Count = 137 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203 +AD = 00010203 +CT = 2BB84CB9B5D2B0D7321FA329FC633B1289D6C6A5 + +Count = 138 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203 +AD = 0001020304 +CT = CAB056AA205A4B641B8EDB60351EA8AC668575B8 + +Count = 139 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203 +AD = 000102030405 +CT = 85FF40FC3858860D1CF3662E54D9BDD12B8A0C05 + +Count = 140 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203 +AD = 00010203040506 +CT = 37466ECBE1AC0227375874D3719C070102ABFD1B + +Count = 141 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203 +AD = 0001020304050607 +CT = 066D386B903C627DDAB12854C79006B110C774E8 + +Count = 142 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203 +AD = 000102030405060708 +CT = EE35C5EC38EEB0D661D9292F44763596A058C59F + +Count = 143 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203 +AD = 00010203040506070809 +CT = 252EA99E66968A3B6A5EBD42E2B5084CFCB81DA0 + +Count = 144 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203 +AD = 000102030405060708090A +CT = B0C179ACECD3EAF74BE30679DC43632D0DA6F232 + +Count = 145 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203 +AD = 000102030405060708090A0B +CT = 73F5083ACE00D369A117301A1B545430B22EA93A + +Count = 146 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203 +AD = 000102030405060708090A0B0C +CT = 41AAA973305ABFE091A02053CC1708CEF98A789A + +Count = 147 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203 +AD = 000102030405060708090A0B0C0D +CT = 1A926838548D1B78E650D9D0A28D632814327EEA + +Count = 148 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203 +AD = 000102030405060708090A0B0C0D0E +CT = 39D99068B050C98A346D42011271C6CADE6CFE81 + +Count = 149 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203 +AD = 000102030405060708090A0B0C0D0E0F +CT = 95A9CC01EA19FD75ECD954A077B86EE6A99AC87C + +Count = 150 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 307824FC01557BFE8F63200FF30F896026A2E279 + +Count = 151 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 86B3B4DC1824C01D9282E4880EC2176A932A2790 + +Count = 152 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = F60ADC64AEB5EE736F503EE6D3B5A7D997DE58B1 + +Count = 153 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 4F48371B973FF11995609664FE89186F045A9D8D + +Count = 154 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = 89BDEA4070F09477098ADDC7ABC88B872960FDB3 + +Count = 155 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = 2021C84BD007510FD2868CB750A5FAC0A9C434A8 + +Count = 156 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 20F20FF1E268A18DB397F62A4586C7E304DC49AC + +Count = 157 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = 4F7CC6B93FF7F14E64AC2893910007D4AD532B1C + +Count = 158 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 6034C8391E39A4D4D693D05838198CD041532237 + +Count = 159 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = 5E427A3AEC7446564F4E4DEF5AA9BA0512650669 + +Count = 160 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 0005A3734A21C8C6A8A86D5B85DAEBDC0BC24B7E + +Count = 161 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = B2B2A81DC9FFBF35CC2837801A51F22C7338346F + +Count = 162 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = D96C092708C3531AC5037F91C626409425DE9780 + +Count = 163 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 5F5143FAF5C4F8227D199EBD62B74FFEF79D3280 + +Count = 164 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = 047BDBAE433DA7A8DE03FE962CD0D32685081FEA + +Count = 165 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 1A9B5844B4EEE6B66291059B449BD9C478FE0124 + +Count = 166 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304 +AD = +CT = DE27B3C1B49996E04DCCC8F5EFA7A7B17A5F6AD79E + +Count = 167 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304 +AD = 00 +CT = 998D7701C1B3E03C233776521D172840D73E6A83EC + +Count = 168 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304 +AD = 0001 +CT = 51E3F26591EDE1B4D54E61944C5D246C3946BABC9A + +Count = 169 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304 +AD = 000102 +CT = 255ED813C64DDA5222B2A0B93B1F6F68A51550D573 + +Count = 170 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304 +AD = 00010203 +CT = 2BB84CB90BAA1B92B3F56BE068C76FBB77EB4D61BA + +Count = 171 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304 +AD = 0001020304 +CT = CAB056AA880D228B27520A9387F6DA9F7BCA235E55 + +Count = 172 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304 +AD = 000102030405 +CT = 85FF40FCBF9B9A7ADD2037C37EC7314C72C2BE8288 + +Count = 173 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304 +AD = 00010203040506 +CT = 37466ECBEFF5587CEFB451B781E0CC5097DC3D09E7 + +Count = 174 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304 +AD = 0001020304050607 +CT = 066D386BDC7A38ABE257D9B95EDA853B076897FC9C + +Count = 175 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304 +AD = 000102030405060708 +CT = EE35C5ECBE911F7B6DAEBA6595B4B4EE3CD025E903 + +Count = 176 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304 +AD = 00010203040506070809 +CT = 252EA99EE559F40F99600E2080981149CC6CE0AB23 + +Count = 177 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304 +AD = 000102030405060708090A +CT = B0C179AC6924149D42BE922CA56659FE37DA00843A + +Count = 178 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304 +AD = 000102030405060708090A0B +CT = 73F5083A22E1D759272535670E83E74DC76296DDA4 + +Count = 179 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304 +AD = 000102030405060708090A0B0C +CT = 41AAA9737721D932D84C1E687BA57BCBF0F4FB41E0 + +Count = 180 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304 +AD = 000102030405060708090A0B0C0D +CT = 1A926838E431994B0E1A193E7BEBBAF40FDC03DF46 + +Count = 181 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304 +AD = 000102030405060708090A0B0C0D0E +CT = 39D99068499843685C23A1653445E369B91A3AAE12 + +Count = 182 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304 +AD = 000102030405060708090A0B0C0D0E0F +CT = 95A9CC016D8A44F6799DEE64CB76B0EEC7FBF5ED21 + +Count = 183 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 307824FCBDA1416B618E8EA5E908528A2836B2225D + +Count = 184 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 86B3B4DCA5C0DB4ADD793BD6E384C0A5EE575DED87 + +Count = 185 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = F60ADC6495D13F51CFE1DB1D0D90AD36BEC34B61FD + +Count = 186 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 4F48371B6AD561102EF48E8FA373E1E5D9ABD0C8B2 + +Count = 187 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = 89BDEA40E37BE69581FC8D54A18C55BF542A8AED56 + +Count = 188 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = 2021C84BC865FDFEB73B4C80CB6CF647EC8AD7EA6C + +Count = 189 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 20F20FF167C908744AE21F060BD92A4532AFE2EF82 + +Count = 190 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = 4F7CC6B92F746E0BF9546B782C79450F2E638BC32D + +Count = 191 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 6034C839C7F688688AAA436EEE57592F2E67ED346B + +Count = 192 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = 5E427A3A5956D824E3CAD5516351E979804F3555DD + +Count = 193 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 0005A3730F1B313E843761177B83973B055C40067B + +Count = 194 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = B2B2A81D5F7BED03483EBBF590414E1D14ED95CF87 + +Count = 195 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = D96C09271C9C6E7AB75132252DDB437DF3AF0BA178 + +Count = 196 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 5F5143FA555358CEE7D4951B3381CE6DFD4E8417B0 + +Count = 197 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = 047BDBAEF50391871C839155B57F0B4DD08008D081 + +Count = 198 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 1A9B58442B389361BFD50808FCB3B235561FD7E0B7 + +Count = 199 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405 +AD = +CT = DE27B3C1B43ABD71B0F7C07D84B65D53ADF724FB3296 + +Count = 200 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405 +AD = 00 +CT = 998D7701C14B373043208579E6ADFF66EB28C1106CFA + +Count = 201 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405 +AD = 0001 +CT = 51E3F26591E39541B5597FD63378217299CAE4ADBA68 + +Count = 202 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405 +AD = 000102 +CT = 255ED813C6C9C4732FCD1CD796FFE2EAAEE974383BD7 + +Count = 203 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405 +AD = 00010203 +CT = 2BB84CB90B56163D26FAB3B802F9BDD0F25D054419AE + +Count = 204 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405 +AD = 0001020304 +CT = CAB056AA88F153E95AB6989AFD030AD3450A6F5D31CD + +Count = 205 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405 +AD = 000102030405 +CT = 85FF40FCBFEBFF44B1CE0E58EC312410B5FC5AD6E411 + +Count = 206 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405 +AD = 00010203040506 +CT = 37466ECBEF0C271D27B5949D19049920F1FBBF90FA30 + +Count = 207 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405 +AD = 0001020304050607 +CT = 066D386BDC3B7A85F433D572924B6ECFD42B88EE97D9 + +Count = 208 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405 +AD = 000102030405060708 +CT = EE35C5ECBEB4CE29EFCEAF6FAC0368C9C496ED074499 + +Count = 209 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405 +AD = 00010203040506070809 +CT = 252EA99EE58ED63350A4A580E1625E16B70BA544C3FC + +Count = 210 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405 +AD = 000102030405060708090A +CT = B0C179AC69E83FFCCC0A88847E3DAAF9285ED7490EEB + +Count = 211 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405 +AD = 000102030405060708090A0B +CT = 73F5083A228D91ACC4C4F750A1492DD17036AD57FEC2 + +Count = 212 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405 +AD = 000102030405060708090A0B0C +CT = 41AAA97377B363268BE09920BF0ED8D4AC542FEF8822 + +Count = 213 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405 +AD = 000102030405060708090A0B0C0D +CT = 1A926838E49E5DCBD8550618160E0BE3B8428FD5033F + +Count = 214 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405 +AD = 000102030405060708090A0B0C0D0E +CT = 39D990684973CC10B83508B465332BF5C789487F6D5F + +Count = 215 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405 +AD = 000102030405060708090A0B0C0D0E0F +CT = 95A9CC016DB1C4255B3EB0E57C93FDC7B3DD99CEB855 + +Count = 216 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 307824FCBD3813765E40B0E00165936E8EBFB6769C5E + +Count = 217 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 86B3B4DCA59E42ACC89D49F06962A69EC6BABE36BD5C + +Count = 218 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = F60ADC6495BA22C2E26C8914B2F63E88DF606B64BB4F + +Count = 219 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 4F48371B6AF7C21613F01DA7242C2FD8077F48402712 + +Count = 220 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = 89BDEA40E36AD2212FF15220E10D0C6C52FBF05F7EEF + +Count = 221 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = 2021C84BC884EF4A5D7B325260A75A96812D0216EB82 + +Count = 222 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 20F20FF1674E0C47C078985064AE41C66A0B0EE11B2E + +Count = 223 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = 4F7CC6B92F63E4F3D01CEEBAAFA24304F2D2FB62D673 + +Count = 224 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 6034C839C70E918B1154CC8DEA9B14A4C770E252B441 + +Count = 225 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = 5E427A3A599A0A560EDF3B53734066FE97B12286C3B0 + +Count = 226 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 0005A3730F20B74E34EAF798A1262A6862F0A17F65BC + +Count = 227 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = B2B2A81D5FB5DE16D785B69814B67E3757EA618789C6 + +Count = 228 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = D96C09271C1D21F199EA3960E18BE120A44B85C6E482 + +Count = 229 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 5F5143FA55E22DF5DB2ADF8A2A460958964F4606D0C6 + +Count = 230 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = 047BDBAEF519551C9C85512981B9B0BE5005F051D3F3 + +Count = 231 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 1A9B58442BBDDC1C59D55C72CA3C8D099EDD999B540F + +Count = 232 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506 +AD = +CT = DE27B3C1B43A54D62518F1D00DEC368FB4F900E316568A + +Count = 233 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506 +AD = 00 +CT = 998D7701C14BB42EA6671F633F172905E74AF11CC33DD0 + +Count = 234 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506 +AD = 0001 +CT = 51E3F26591E3BE593CDE2B4D53A478BE4E41F0C9991F76 + +Count = 235 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506 +AD = 000102 +CT = 255ED813C6C9E755D8DFD4DBE2FB1ADDBFE6A35FEDCB35 + +Count = 236 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506 +AD = 00010203 +CT = 2BB84CB90B56B276FA150694A9920CDE8641E0402D5319 + +Count = 237 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506 +AD = 0001020304 +CT = CAB056AA88F11081BFC816EA54991825547B8E4DAFBA22 + +Count = 238 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506 +AD = 000102030405 +CT = 85FF40FCBFEB1699E54025CD9D8795C55AE334C9C775EB + +Count = 239 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506 +AD = 00010203040506 +CT = 37466ECBEF0CF67577D9829043BF00DCC1493608A5BEED + +Count = 240 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506 +AD = 0001020304050607 +CT = 066D386BDC3BFD5B0E86DBDF5C43B5A82060CC82FBF348 + +Count = 241 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506 +AD = 000102030405060708 +CT = EE35C5ECBEB4F7EF61D264B45AB316650310A0AA38582E + +Count = 242 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506 +AD = 00010203040506070809 +CT = 252EA99EE58EE9252C1B54E38E75CBB44658B78B4A6E96 + +Count = 243 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506 +AD = 000102030405060708090A +CT = B0C179AC69E858EA8587E97D8BCB17018F941F18631FCD + +Count = 244 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506 +AD = 000102030405060708090A0B +CT = 73F5083A228D1FA411B18A63640A216FCCE84842E1E389 + +Count = 245 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506 +AD = 000102030405060708090A0B0C +CT = 41AAA97377B3972F781A703972C76771CADAC6AFE81D17 + +Count = 246 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506 +AD = 000102030405060708090A0B0C0D +CT = 1A926838E49E79A1A3A3E7736793944B25907ACB09B638 + +Count = 247 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506 +AD = 000102030405060708090A0B0C0D0E +CT = 39D9906849736ACFEA213C88299219D0F70FAF4561CBD3 + +Count = 248 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506 +AD = 000102030405060708090A0B0C0D0E0F +CT = 95A9CC016DB1D56FCAAA1CC08D2494D27DB53543FD98DF + +Count = 249 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 307824FCBD38D1744CF85B79A21590C6D346AE0E2B25F1 + +Count = 250 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 86B3B4DCA59E27A27FD949222443797A4E6F64145E91AD + +Count = 251 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = F60ADC6495BAB58BFCBE5D5B847B7BD5906B9420665E7E + +Count = 252 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 4F48371B6AF7528668A2E81710B698298AAF65C237B749 + +Count = 253 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = 89BDEA40E36A9DF8D42E4A5C36AF68993424EBB389CE02 + +Count = 254 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = 2021C84BC884DC990D48914989FC10C1813537C51C55BA + +Count = 255 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 20F20FF1674EC0E2E0238E7828853A4390AC67275E2D9B + +Count = 256 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = 4F7CC6B92F63AA085212455CE6B80739F6EA5640C191C4 + +Count = 257 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 6034C839C70E7752A6D5487C1299EA7DFB694DDB17F08F + +Count = 258 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = 5E427A3A599AB55C49E5F13A392B8763F53E62F0F27013 + +Count = 259 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 0005A3730F2091229D1AF939EBA2735783539AE5BA2DEA + +Count = 260 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = B2B2A81D5FB5EAB1B0DEBFE9BDE71DF656B4507E9F428B + +Count = 261 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = D96C09271C1D955D5AC1AA84EDA53F7C9D3AAFB2F53E0F + +Count = 262 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 5F5143FA55E2401B0EFE803DE334D9E31E177F94A46EAB + +Count = 263 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = 047BDBAEF519DC1C94AA2F9A92F2C6F783B9B789F1BCB0 + +Count = 264 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 1A9B58442BBD1895EED27997565814639FF645489EEC03 + +Count = 265 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304050607 +AD = +CT = DE27B3C1B43A54C25541E3558F20E16231D5A5B964932993 + +Count = 266 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304050607 +AD = 00 +CT = 998D7701C14BB41DD88440E79286BB0F881C2D4D15A21A90 + +Count = 267 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304050607 +AD = 0001 +CT = 51E3F26591E3BE66901BFD188CDA8195238369EBDFA389BE + +Count = 268 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304050607 +AD = 000102 +CT = 255ED813C6C9E79EF60A4A2CA102BC2BB40A486A6B7A458D + +Count = 269 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304050607 +AD = 00010203 +CT = 2BB84CB90B56B23C3A24D6BC347EBD84AEA43B68DC3A296A + +Count = 270 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304050607 +AD = 0001020304 +CT = CAB056AA88F110F780CF8C5DEF2B02DEC09518D5537E6C12 + +Count = 271 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304050607 +AD = 000102030405 +CT = 85FF40FCBFEB16F5B6E5F6B395815F3E24036D4D5C19643F + +Count = 272 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304050607 +AD = 00010203040506 +CT = 37466ECBEF0CF6C929B3B6296031CF4D6B4B8DBD5CD168F9 + +Count = 273 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304050607 +AD = 0001020304050607 +CT = 066D386BDC3BFDE562EA36234D704F81F5D4EF4F4F8C94D9 + +Count = 274 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304050607 +AD = 000102030405060708 +CT = EE35C5ECBEB4F721C4E10C2EAD1F52D7BA3A2322D015F781 + +Count = 275 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304050607 +AD = 00010203040506070809 +CT = 252EA99EE58EE9DD41E7F080AC6D325B836A58F6B9E7EC98 + +Count = 276 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304050607 +AD = 000102030405060708090A +CT = B0C179AC69E8583FE372995E7F3A5E88A547D3D867384A2D + +Count = 277 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304050607 +AD = 000102030405060708090A0B +CT = 73F5083A228D1FA49365D30F651E04D242165876A65FC2F9 + +Count = 278 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304050607 +AD = 000102030405060708090A0B0C +CT = 41AAA97377B397586DA942529D44E6A9EC77296DE86B876D + +Count = 279 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304050607 +AD = 000102030405060708090A0B0C0D +CT = 1A926838E49E793326CE2061369ABE62C80775A01183CA0B + +Count = 280 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304050607 +AD = 000102030405060708090A0B0C0D0E +CT = 39D9906849736AFECC3456EF2226A0DB0BE4CBE2C3A35F18 + +Count = 281 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304050607 +AD = 000102030405060708090A0B0C0D0E0F +CT = 95A9CC016DB1D54691177FABFCC82952712B34743DE54B39 + +Count = 282 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304050607 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 307824FCBD38D15214C25638896988603686950EA6F5C529 + +Count = 283 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304050607 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 86B3B4DCA59E2775910E80406B9D2ABAB2B44C01F37C2A45 + +Count = 284 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304050607 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = F60ADC6495BAB5AA3D35E376752FE3D63656D6CDE3FC63FE + +Count = 285 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304050607 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 4F48371B6AF752A80AF9FC4EFF007EA310A32E6EA8B7D74D + +Count = 286 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304050607 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = 89BDEA40E36A9D3957589F78957638B2D322258E36AEBB90 + +Count = 287 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304050607 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = 2021C84BC884DC660BDCDB6FAD3DF1EC629736F26113AE95 + +Count = 288 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304050607 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 20F20FF1674EC0DF13D84925EC641BEF382E2EF866324500 + +Count = 289 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304050607 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = 4F7CC6B92F63AA2A103889764FDCC5FF7D593307FFDEA491 + +Count = 290 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304050607 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 6034C839C70E77FC408B47CBF8562492B47C9A24F84D5747 + +Count = 291 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304050607 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = 5E427A3A599AB5CF0F3C3A97B5BBF74668B5EEBE5BBCFA80 + +Count = 292 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304050607 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 0005A3730F2091FD079D58D1BA432A062AE116CCEF2C6073 + +Count = 293 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304050607 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = B2B2A81D5FB5EA29DC6FC6258762249B6F3035F969368E46 + +Count = 294 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304050607 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = D96C09271C1D9557627CF2979F2A7798EA9DC1515105F207 + +Count = 295 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304050607 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 5F5143FA55E240F9CA2B807EE669036CB7496E6314B45B04 + +Count = 296 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304050607 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = 047BDBAEF519DCC4CB659B9E46C0947928E2BED2566B71AC + +Count = 297 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304050607 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 1A9B58442BBD18F78BA6A4B49199CAF4F5877A07A7F83DFB + +Count = 298 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708 +AD = +CT = DE27B3C1B43A54C25A9EC999EE85073E014C3B51BB33005AA2 + +Count = 299 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708 +AD = 00 +CT = 998D7701C14BB41DBAB49A54B539BC64596BFB22EF2E22AAB1 + +Count = 300 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708 +AD = 0001 +CT = 51E3F26591E3BE66E22CE91A78ACF215C8844F7BBC630798EB + +Count = 301 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708 +AD = 000102 +CT = 255ED813C6C9E79E11CE5BADEF2CFEB4C405417749E0FF96C7 + +Count = 302 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708 +AD = 00010203 +CT = 2BB84CB90B56B23C16B7CF6F3A938BE1324EEE0F48A97CF4E6 + +Count = 303 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708 +AD = 0001020304 +CT = CAB056AA88F110F717C4CF9B5AC5A006E69BCE3ABE9A2F38B4 + +Count = 304 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708 +AD = 000102030405 +CT = 85FF40FCBFEB16F5ACAC99788BF7FCB713DD70BF183DB23949 + +Count = 305 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708 +AD = 00010203040506 +CT = 37466ECBEF0CF6C998DCB79668769B826DF0217FB83DA1D1C9 + +Count = 306 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708 +AD = 0001020304050607 +CT = 066D386BDC3BFDE56BC51ADE8D40C35B7F89F7DCF87A0F1E5E + +Count = 307 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708 +AD = 000102030405060708 +CT = EE35C5ECBEB4F721F449CE793744EE3D2AC66A0534A54A2AA1 + +Count = 308 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708 +AD = 00010203040506070809 +CT = 252EA99EE58EE9DD9F77B1FFCE885787DC74C91A02B93AB68E + +Count = 309 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708 +AD = 000102030405060708090A +CT = B0C179AC69E8583FD6406C55A0454FA8D791D2E54202C72D55 + +Count = 310 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708 +AD = 000102030405060708090A0B +CT = 73F5083A228D1FA4500C9645582EF057671305F1BA8CF7C61C + +Count = 311 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708 +AD = 000102030405060708090A0B0C +CT = 41AAA97377B39758FE208ACEA0DF3905DCC26958071C244BCC + +Count = 312 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708 +AD = 000102030405060708090A0B0C0D +CT = 1A926838E49E79330E75CB0133C7EA8AD437ECB29C19671536 + +Count = 313 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708 +AD = 000102030405060708090A0B0C0D0E +CT = 39D9906849736AFEE9405E0CFF495953DF6976F1E0FBB4BACD + +Count = 314 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708 +AD = 000102030405060708090A0B0C0D0E0F +CT = 95A9CC016DB1D54668F64F27C71C56F7BFBCCF165FAE3556AE + +Count = 315 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 307824FCBD38D152551E4086F7AA212973B17DC874F7C8FE07 + +Count = 316 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 86B3B4DCA59E27754179CD9E4DD1ACA1DAD93194A504E4C717 + +Count = 317 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = F60ADC6495BAB5AA384F5E9D8BB7F0BA6C3682901859E82D46 + +Count = 318 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 4F48371B6AF752A8C6D9C20E188670E544E67C9045590C4A7C + +Count = 319 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = 89BDEA40E36A9D39A5836D90C1631A78B45FA73BB74A1543A7 + +Count = 320 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = 2021C84BC884DC665C3E92098A96B7A4520A45952AA432B343 + +Count = 321 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 20F20FF1674EC0DF8AD19F8A19686AC963D4826E34DD80E2F3 + +Count = 322 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = 4F7CC6B92F63AA2AB82101C9BCD6A9720C628BA326367B733A + +Count = 323 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 6034C839C70E77FC0F98BD1922417F6DF1711732A2D9B0EED2 + +Count = 324 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = 5E427A3A599AB5CF749D2F10933470927B1C9CEAE1CB48C28A + +Count = 325 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 0005A3730F2091FDA37C9551BAFCDE193B1DB374B463436F95 + +Count = 326 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = B2B2A81D5FB5EA292C93C312559D9E3D8F7AF47AED076F0CBA + +Count = 327 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = D96C09271C1D9557D4C53964878103708501DC4363E1856960 + +Count = 328 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 5F5143FA55E240F9574C395B565DEA49FFAA048B83F1D2282D + +Count = 329 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = 047BDBAEF519DCC4E6C960B0A36DA6716E98A55D313B08332B + +Count = 330 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 1A9B58442BBD18F7F57EE355E2E1011A42AB5F2E013A5258C1 + +Count = 331 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506070809 +AD = +CT = DE27B3C1B43A54C25A720B0EEE5B3A487F26AB8B14A616BDB20D + +Count = 332 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506070809 +AD = 00 +CT = 998D7701C14BB41DBA9138AFBF15211BB432FEA348888655A204 + +Count = 333 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506070809 +AD = 0001 +CT = 51E3F26591E3BE66E2C33CBFA1F26164A7D38E8655623805A67F + +Count = 334 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506070809 +AD = 000102 +CT = 255ED813C6C9E79E1107B53FDFA17BBBFBD9055386C634EFFB11 + +Count = 335 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506070809 +AD = 00010203 +CT = 2BB84CB90B56B23C16EAF248B4144648B9B942A11DEFEFFB20C9 + +Count = 336 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506070809 +AD = 0001020304 +CT = CAB056AA88F110F7178FDE9B3FC79A245506EF74FC44A032DF18 + +Count = 337 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506070809 +AD = 000102030405 +CT = 85FF40FCBFEB16F5AC3B7B1DF2C76818BFBBFD5B468374B80B07 + +Count = 338 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506070809 +AD = 00010203040506 +CT = 37466ECBEF0CF6C998796069E82F058123D0EEF0EC0A9DD405A9 + +Count = 339 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506070809 +AD = 0001020304050607 +CT = 066D386BDC3BFDE56B07AACA3A01571CDD44E0E43203A4A0578C + +Count = 340 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506070809 +AD = 000102030405060708 +CT = EE35C5ECBEB4F721F4F3EC1674E7CDB36BC1BDF8478FB9973241 + +Count = 341 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506070809 +AD = 00010203040506070809 +CT = 252EA99EE58EE9DD9FA2325C5D87F86848959AD23F8167BA44A4 + +Count = 342 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506070809 +AD = 000102030405060708090A +CT = B0C179AC69E8583FD66B86DED6EE3452AE7B024355866A84A966 + +Count = 343 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506070809 +AD = 000102030405060708090A0B +CT = 73F5083A228D1FA45045D17A811C82E8D5A0258C63FB64BED07A + +Count = 344 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C +CT = 41AAA97377B39758FE9EB3F19E9F017FED91D05C211CC0D54B58 + +Count = 345 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C0D +CT = 1A926838E49E79330E6AD9A7C3D250899EAB6A55F09638058145 + +Count = 346 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C0D0E +CT = 39D9906849736AFEE9B99F3229B716DDCCCEA0C10649B7730F48 + +Count = 347 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C0D0E0F +CT = 95A9CC016DB1D54668CC506839D4AC0E8115BD38944655164256 + +Count = 348 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 307824FCBD38D152551D566D49661802EEB44D13FCB1E2FC054C + +Count = 349 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 86B3B4DCA59E277541E950266047EFB0901E26823B4B96AB47BA + +Count = 350 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = F60ADC6495BAB5AA38B3C22BC1ED0E05300D21D2E3259E0C82B8 + +Count = 351 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 4F48371B6AF752A8C6316F99A96AFB3EC83BD798F061D7F5F301 + +Count = 352 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = 89BDEA40E36A9D39A59DA0E82EB1459F9D053E9A52CBDC3C624E + +Count = 353 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = 2021C84BC884DC665C32F240BD690C856BCDB311B6B5CE000A2C + +Count = 354 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 20F20FF1674EC0DF8A55BF05A4A4EE578336A9A9E3CEAE582B1B + +Count = 355 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = 4F7CC6B92F63AA2AB89043FC00DA798E8CEAD28F5A8DF928E101 + +Count = 356 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 6034C839C70E77FC0FCED3A0E075EF46452E9AB9465FBCD3BB91 + +Count = 357 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = 5E427A3A599AB5CF74AFB5B47421E543D6929A1BDFEEC6A55BE6 + +Count = 358 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 0005A3730F2091FDA360BB0FADA5313F4DDCA5F016A04CF21BBD + +Count = 359 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = B2B2A81D5FB5EA292C080AEF4636189E435A8042D0809A1D927A + +Count = 360 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = D96C09271C1D9557D43BA33BDA86C651C62C9774A3F61EEAE263 + +Count = 361 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 5F5143FA55E240F9571617AD15C490A9BF3D29229118FB1E48BD + +Count = 362 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = 047BDBAEF519DCC4E65AFE252934F92194219430C35E080FB4FF + +Count = 363 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 1A9B58442BBD18F7F5EAD4A2F699F7607CB385CE9D92B748267B + +Count = 364 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A +AD = +CT = DE27B3C1B43A54C25A724A5B265549690C0CE6C6AEC1007F5B3617 + +Count = 365 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A +AD = 00 +CT = 998D7701C14BB41DBA91A2CF89F93DC9A36F3ED4F49766614CBB2A + +Count = 366 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A +AD = 0001 +CT = 51E3F26591E3BE66E2C31CED40DF4DC0A26D30A15BF18B037CB97E + +Count = 367 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A +AD = 000102 +CT = 255ED813C6C9E79E1107AD4D73C122CE67E272429BB8A6BB1B1BE1 + +Count = 368 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A +AD = 00010203 +CT = 2BB84CB90B56B23C16EA913827E85927B4F50B22DCEFE4AC9A5B03 + +Count = 369 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A +AD = 0001020304 +CT = CAB056AA88F110F7178FA14DF2DFE8631FB77E56F82771E017263D + +Count = 370 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A +AD = 000102030405 +CT = 85FF40FCBFEB16F5AC3B7F0151568928260700D463BDA20951E910 + +Count = 371 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A +AD = 00010203040506 +CT = 37466ECBEF0CF6C998792425E05AE24CE99DE56889EDBE35941374 + +Count = 372 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A +AD = 0001020304050607 +CT = 066D386BDC3BFDE56B07788D2C9B70A75A392C8019AE87F9B110C0 + +Count = 373 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A +AD = 000102030405060708 +CT = EE35C5ECBEB4F721F4F3F137A529550D5317A1D65173C074575C9F + +Count = 374 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A +AD = 00010203040506070809 +CT = 252EA99EE58EE9DD9FA2DFB75C8363AB5EE6CCAF4E73D6D558658A + +Count = 375 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A +AD = 000102030405060708090A +CT = B0C179AC69E8583FD66B5C33B800C6BFA3464D40F40DD201D5F8B8 + +Count = 376 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A +AD = 000102030405060708090A0B +CT = 73F5083A228D1FA450455696CB04754450C6CEDDE3A73CBB2B6D2D + +Count = 377 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C +CT = 41AAA97377B39758FE9E861BB533AD748C7E07AD64FCBB9F12EA44 + +Count = 378 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C0D +CT = 1A926838E49E79330E6AFB00E517E2E7BE6A26DFBB5F832086E715 + +Count = 379 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C0D0E +CT = 39D9906849736AFEE9B9EC2C400EC9DC2745C2434D6D1352ECCEEC + +Count = 380 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C0D0E0F +CT = 95A9CC016DB1D54668CCA079CC84132F9BDB0B18502444726D2E8C + +Count = 381 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 307824FCBD38D152551DC4876DCCFD4BE305A4A21CF880F3B50F64 + +Count = 382 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 86B3B4DCA59E277541E95D0979E6D89FFAE752108FE03681D3A5DF + +Count = 383 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = F60ADC6495BAB5AA38B38F5883C6FDF4B0BC27BEB901C0D685AE60 + +Count = 384 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 4F48371B6AF752A8C6317459134175AE321BD051D187AF63CF2202 + +Count = 385 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = 89BDEA40E36A9D39A59DFE857238C6B7ECD4B6A1351543779C642B + +Count = 386 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = 2021C84BC884DC665C3243D2C88FA3C9592189D88AC8A257A1F978 + +Count = 387 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 20F20FF1674EC0DF8A55CE1C54203D74FEB64D47C963AA84013AC4 + +Count = 388 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = 4F7CC6B92F63AA2AB8907B5DA4CE74183CA58FDB7F6E8529093A58 + +Count = 389 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 6034C839C70E77FC0FCED76EDB09CF1BD9E145FF249DAE32617B25 + +Count = 390 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = 5E427A3A599AB5CF74AFEB38A149816060441FB45B3003EE8EA918 + +Count = 391 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 0005A3730F2091FDA3602E94A52E3F1EDD6D54C2E513C767069351 + +Count = 392 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = B2B2A81D5FB5EA292C08122D87E56DC35F85A741BC78F5824E8768 + +Count = 393 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = D96C09271C1D9557D43B723A1C82D16492BE255CD23F1C1E1DCEB5 + +Count = 394 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 5F5143FA55E240F957165663A793227F007A35D1CAC3C7BE84CD32 + +Count = 395 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = 047BDBAEF519DCC4E65A5D467F54E3708F1F95CB8794DEF58CC0BE + +Count = 396 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 1A9B58442BBD18F7F5EA1BE20A5DD208616A2F7DE3BD9587DFBE9F + +Count = 397 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B +AD = +CT = DE27B3C1B43A54C25A724A5F132D2F74A13CE8DE40A2442775C881EC + +Count = 398 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B +AD = 00 +CT = 998D7701C14BB41DBA91A24023B53FC01A2A8AF6BFF38612E0D2E421 + +Count = 399 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B +AD = 0001 +CT = 51E3F26591E3BE66E2C31CBDAFA62412098632D0A43E1301EF69559D + +Count = 400 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B +AD = 000102 +CT = 255ED813C6C9E79E1107AD13E974C4752DDDAAA4F8282F639D88C2CC + +Count = 401 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B +AD = 00010203 +CT = 2BB84CB90B56B23C16EA91859EB385B2BF27FB7EE062D00B0C3F2F3D + +Count = 402 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B +AD = 0001020304 +CT = CAB056AA88F110F7178FA1C0C894FA25EAAF1C6F257B9F4D448775C9 + +Count = 403 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B +AD = 000102030405 +CT = 85FF40FCBFEB16F5AC3B7FEA5AE39C47574DEAE0ECC63974D52DC650 + +Count = 404 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B +AD = 00010203040506 +CT = 37466ECBEF0CF6C9987924ACD7260472B57B14EB473A149BE5684750 + +Count = 405 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B +AD = 0001020304050607 +CT = 066D386BDC3BFDE56B07782D1BBAEF8CCC66D4A11387554D764136B1 + +Count = 406 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B +AD = 000102030405060708 +CT = EE35C5ECBEB4F721F4F3F18FC13BF9CCC7CEA6B3800902EFF72D4457 + +Count = 407 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B +AD = 00010203040506070809 +CT = 252EA99EE58EE9DD9FA2DF9E15AA09BDCC0267E9CDCDFFB2D31A0A34 + +Count = 408 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B +AD = 000102030405060708090A +CT = B0C179AC69E8583FD66B5C0090148E0BB4FB8089A196FF2449127105 + +Count = 409 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B +CT = 73F5083A228D1FA45045563C160578593315740965FB0908B3125AB7 + +Count = 410 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C +CT = 41AAA97377B39758FE9E860691931F816C04031EE48C5CBF9245640F + +Count = 411 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C0D +CT = 1A926838E49E79330E6AFB76866B97BAE5ECB4D0D1DE94686C802170 + +Count = 412 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C0D0E +CT = 39D9906849736AFEE9B9EC58477BABA416FAA9F1E58B1EAA617A3666 + +Count = 413 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C0D0E0F +CT = 95A9CC016DB1D54668CCA0DCD4CC641FEE6CADA7C81EBD19953178F1 + +Count = 414 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 307824FCBD38D152551DC44EA874AC55FC80531604664C46C8A12351 + +Count = 415 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 86B3B4DCA59E277541E95D63E7477615DB609B5917C9185AB7EF73D4 + +Count = 416 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = F60ADC6495BAB5AA38B38FB323D969E16AFD916A07255AFCD9FE693F + +Count = 417 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 4F48371B6AF752A8C631742E4B1A8385C3A6DD4E4A09FA6D93F1AA13 + +Count = 418 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = 89BDEA40E36A9D39A59DFE66D70A432A1112BB12392981660C0DB0A9 + +Count = 419 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = 2021C84BC884DC665C3243C825C65D5A61B4288337038B2072A6D528 + +Count = 420 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 20F20FF1674EC0DF8A55CE236BD52D3A49A08C2B67E72A66CB545F08 + +Count = 421 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = 4F7CC6B92F63AA2AB8907B5264BEAEA6AB5C05FD49D24BCBFB30DF97 + +Count = 422 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 6034C839C70E77FC0FCED7C73F425C34BC72031B4733665D0BA7A087 + +Count = 423 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = 5E427A3A599AB5CF74AFEBB4CDC6D610506C82D6556F721C026BC99F + +Count = 424 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 0005A3730F2091FDA3602E153309E7C8D7FC9A10329410C17AD70250 + +Count = 425 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = B2B2A81D5FB5EA292C0812FCAD712D0A45E9CBA23F37FD1C34DC5B7A + +Count = 426 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = D96C09271C1D9557D43B72993C5248128B6A814D371BF626C3279C70 + +Count = 427 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 5F5143FA55E240F9571656B9032C911BD6FCDA74D177D0009C0A296D + +Count = 428 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = 047BDBAEF519DCC4E65A5DCD5F0CDDBF693FD9691E990FCA1C82F7E2 + +Count = 429 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 1A9B58442BBD18F7F5EA1B1DC2061869B4315879279688CF86CD3E96 + +Count = 430 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C +AD = +CT = DE27B3C1B43A54C25A724A5F572C13E81827C0AC0433B21F446D5F725B + +Count = 431 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C +AD = 00 +CT = 998D7701C14BB41DBA91A240DAED264D9141D3E492917106F5C3406AC1 + +Count = 432 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C +AD = 0001 +CT = 51E3F26591E3BE66E2C31CBDD59F77BECF1154A5D5EE6C89B2E3E964E5 + +Count = 433 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C +AD = 000102 +CT = 255ED813C6C9E79E1107AD13AC7965036592AA2D795865012A6EAEFEEA + +Count = 434 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C +AD = 00010203 +CT = 2BB84CB90B56B23C16EA9185A8A6B7F9E955AEEBF27FC15B03B9728009 + +Count = 435 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C +AD = 0001020304 +CT = CAB056AA88F110F7178FA1C075466E0C41679EB03A3524E8F86A6E04EF + +Count = 436 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C +AD = 000102030405 +CT = 85FF40FCBFEB16F5AC3B7FEAAA42004D53BC575AFB07F5650FF37EA3F5 + +Count = 437 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C +AD = 00010203040506 +CT = 37466ECBEF0CF6C9987924AC513F054655C039F5C581E6EB250986115D + +Count = 438 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C +AD = 0001020304050607 +CT = 066D386BDC3BFDE56B07782DF949CC6A9A9EF22720307461790F83BB6E + +Count = 439 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C +AD = 000102030405060708 +CT = EE35C5ECBEB4F721F4F3F18F72C748787C7979DE29141D374A8041E987 + +Count = 440 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C +AD = 00010203040506070809 +CT = 252EA99EE58EE9DD9FA2DF9E89B5F86CDB16327F182C33E9864A325FDC + +Count = 441 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A +CT = B0C179AC69E8583FD66B5C0036F27CA7A6DA61C1AE4826E4454E6719D6 + +Count = 442 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B +CT = 73F5083A228D1FA45045563C2097BDE4CCA8C3948DDBFFFED5E895C129 + +Count = 443 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C +CT = 41AAA97377B39758FE9E8606E674753186E13E517FD3145E1225CEA34E + +Count = 444 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C0D +CT = 1A926838E49E79330E6AFB76A7EB755D646528F81029CB9DD468108086 + +Count = 445 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C0D0E +CT = 39D9906849736AFEE9B9EC5851A65A0081CE9AE669E95E53114890A995 + +Count = 446 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C0D0E0F +CT = 95A9CC016DB1D54668CCA0DC7BB31CF3B7F35AD0F1291EF5CB19BE60A4 + +Count = 447 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 307824FCBD38D152551DC44E167B41EB091C45C196A8F3A0F6FCB26423 + +Count = 448 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 86B3B4DCA59E277541E95D63AFC5D036DA6C8DE3C8B26ABE9B7AFAB144 + +Count = 449 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = F60ADC6495BAB5AA38B38FB383C6FF654DC8A8E0FD77CB383F62088215 + +Count = 450 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 4F48371B6AF752A8C631742E725FBA12951B4FC7DD9CC5D05774524B22 + +Count = 451 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = 89BDEA40E36A9D39A59DFE66971525E5BBD4295B9F5F65162C926092FE + +Count = 452 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = 2021C84BC884DC665C3243C82229D4C6970E3BCCBF4C6B0A873885384E + +Count = 453 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 20F20FF1674EC0DF8A55CE2340E9E34DF8587AF6E8590247DAEF1A7E32 + +Count = 454 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = 4F7CC6B92F63AA2AB8907B52C01446904668BCBDBAD3DE8DEFF47E5ACE + +Count = 455 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 6034C839C70E77FC0FCED7C7D7474FCB2FE4B63F85C7E1271CD4FC2AB5 + +Count = 456 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = 5E427A3A599AB5CF74AFEBB4E5B246DF1685D5C9E3D4F8FCC36FE1AEA7 + +Count = 457 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 0005A3730F2091FDA3602E158EB670F41BC7814CA6B0D271E0473DD8FE + +Count = 458 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = B2B2A81D5FB5EA292C0812FCD91A67C5CFF3B26B831F121AF43FC52C4B + +Count = 459 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = D96C09271C1D9557D43B72998ECA36CAD8EFEDA95CA516457579BFFBE1 + +Count = 460 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 5F5143FA55E240F9571656B98240483FF4CE4B301455D1B2316D39A49C + +Count = 461 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = 047BDBAEF519DCC4E65A5DCD7ED59BCAD4267E5A558F8C72D6CD2C175D + +Count = 462 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 1A9B58442BBD18F7F5EA1B1D2467D6FE75012B1D82EE546A786E96B7F0 + +Count = 463 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D +AD = +CT = DE27B3C1B43A54C25A724A5F57FCD516143D44F4D95E60AF41CBB7D67EA7 + +Count = 464 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D +AD = 00 +CT = 998D7701C14BB41DBA91A240DA8297DEE8EAAEDCCC5D6949C9319A646D5E + +Count = 465 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D +AD = 0001 +CT = 51E3F26591E3BE66E2C31CBDD5BF59A3E748124D2E536220D1B6D375BA5E + +Count = 466 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D +AD = 000102 +CT = 255ED813C6C9E79E1107AD13AC8986CB303A99E68589E376CBBEE5BFF8BF + +Count = 467 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D +AD = 00010203 +CT = 2BB84CB90B56B23C16EA9185A8C3AC5D40C155F4943BE3C716BCB8410B84 + +Count = 468 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D +AD = 0001020304 +CT = CAB056AA88F110F7178FA1C07581F7E2D9CD48746B78A7215527907DCAD8 + +Count = 469 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D +AD = 000102030405 +CT = 85FF40FCBFEB16F5AC3B7FEAAAB7ADF1E728DD1EF957CE8D13B2DEB252B7 + +Count = 470 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D +AD = 00010203040506 +CT = 37466ECBEF0CF6C9987924AC51E000148AB483E1C93994B6663FF0BEA792 + +Count = 471 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D +AD = 0001020304050607 +CT = 066D386BDC3BFDE56B07782DF9F74DB4A854DFAB87C6367A46905233D72B + +Count = 472 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708 +CT = EE35C5ECBEB4F721F4F3F18F7254B8D0583627BB65A603492A2A64388E9D + +Count = 473 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D +AD = 00010203040506070809 +CT = 252EA99EE58EE9DD9FA2DF9E896C945FE27CD7768D1E2E19CC0B431EC85E + +Count = 474 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A +CT = B0C179AC69E8583FD66B5C00368DA5C8E7A4F39E63717EF9E33F2413B667 + +Count = 475 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B +CT = 73F5083A228D1FA45045563C200808F7E6ADB713B5C18BFE5EA5F8C7E2C6 + +Count = 476 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C +CT = 41AAA97377B39758FE9E8606E644627204F782E92CF589C5BC825CA86A94 + +Count = 477 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C0D +CT = 1A926838E49E79330E6AFB76A7B16DD06234A7AE36BAF09EC43AE81CD9C9 + +Count = 478 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C0D0E +CT = 39D9906849736AFEE9B9EC5851CBD529820E3B05C76967534DC6AB938CE4 + +Count = 479 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C0D0E0F +CT = 95A9CC016DB1D54668CCA0DC7BC6CA110EA817DF8C099E92F80055691891 + +Count = 480 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 307824FCBD38D152551DC44E16D5F3ED127A7B9FF98D62452FF287A7F709 + +Count = 481 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 86B3B4DCA59E277541E95D63AF66F2D97C20D1571B18578E84A91DFF266E + +Count = 482 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = F60ADC6495BAB5AA38B38FB383B7219FD6DEE5447393592FB0272879D69A + +Count = 483 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 4F48371B6AF752A8C631742E72BC295672AE5B1FC59403B0E9C725C7CEB1 + +Count = 484 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = 89BDEA40E36A9D39A59DFE6697D5C3F5F137D8F41FB11CF0B9A8E3ED7A24 + +Count = 485 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = 2021C84BC884DC665C3243C82295889A48E50D443032AB4F99F4DCE28ECC + +Count = 486 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 20F20FF1674EC0DF8A55CE234064C143DDE4D715952DDD458EB9FBA6757D + +Count = 487 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = 4F7CC6B92F63AA2AB8907B52C099D4F8690F3E5D056498C0D31604E045BE + +Count = 488 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 6034C839C70E77FC0FCED7C7D75BE9B2E350B31C2E0BFE7ED244CCB0F519 + +Count = 489 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = 5E427A3A599AB5CF74AFEBB4E555BC18457121237B00CA97D3F718CB2442 + +Count = 490 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 0005A3730F2091FDA3602E158EBED61D7BEB45C95C7571C510850D5C57BF + +Count = 491 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = B2B2A81D5FB5EA292C0812FCD919EB2D8B4830B36245C0DDCE43B8832979 + +Count = 492 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = D96C09271C1D9557D43B72998E41F60319EE1B7E90A009AA7C00D1DEDCC2 + +Count = 493 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 5F5143FA55E240F9571656B98236B03F0D9A77AD4F04B396D289EB5E8832 + +Count = 494 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = 047BDBAEF519DCC4E65A5DCD7E0C36F7275BF57BBE1E317CA5F5AE9C28CE + +Count = 495 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 1A9B58442BBD18F7F5EA1B1D243B3D979AFA55B4733E04B71A6A6285E7AC + +Count = 496 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E +AD = +CT = DE27B3C1B43A54C25A724A5F57FC59CFB04993ED986092A992EDFDAC29D238 + +Count = 497 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E +AD = 00 +CT = 998D7701C14BB41DBA91A240DA8260486C0DAB5420A3CAB0C2F30B1C53DA89 + +Count = 498 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E +AD = 0001 +CT = 51E3F26591E3BE66E2C31CBDD5BF8C268AA461A6DE2A660E9B1B6C977541C4 + +Count = 499 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E +AD = 000102 +CT = 255ED813C6C9E79E1107AD13AC89CB864346939F2B630C16D0850C1805D96B + +Count = 500 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E +AD = 00010203 +CT = 2BB84CB90B56B23C16EA9185A8C3292FC42021CA4361D3FB327BEF8BCB53AD + +Count = 501 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E +AD = 0001020304 +CT = CAB056AA88F110F7178FA1C075813764F4EC308AC0222AC0E1812CCDFA129C + +Count = 502 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405 +CT = 85FF40FCBFEB16F5AC3B7FEAAAB7C0344F02D2C6F23E58B6A71A40A34EC703 + +Count = 503 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E +AD = 00010203040506 +CT = 37466ECBEF0CF6C9987924AC51E05EA7538AD9CC731FE32F23DFB77573DA9F + +Count = 504 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E +AD = 0001020304050607 +CT = 066D386BDC3BFDE56B07782DF9F784C931377253EB809B105B89EF46388772 + +Count = 505 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708 +CT = EE35C5ECBEB4F721F4F3F18F72547664AC6F1DFB4AFD4543C9A5FD87519D78 + +Count = 506 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E +AD = 00010203040506070809 +CT = 252EA99EE58EE9DD9FA2DF9E896C8544A961788B4C6D3C4E3556BE833EDDA7 + +Count = 507 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A +CT = B0C179AC69E8583FD66B5C00368D4DA64860E063245F00FBD957883064977F + +Count = 508 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B +CT = 73F5083A228D1FA45045563C2008A441654086DD7BCD2D2529D9FA81B244B0 + +Count = 509 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C +CT = 41AAA97377B39758FE9E8606E64416AC94A12483933A272B5BA9A459C8F665 + +Count = 510 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C0D +CT = 1A926838E49E79330E6AFB76A7B1490013C80D4BCECB14EE7CDFF7997D4743 + +Count = 511 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C0D0E +CT = 39D9906849736AFEE9B9EC5851CBBF6E91E727DE1983AF8BA39820CD3A7759 + +Count = 512 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C0D0E0F +CT = 95A9CC016DB1D54668CCA0DC7BC64447F969D97146542EBA8D75A6C749CD02 + +Count = 513 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 307824FCBD38D152551DC44E16D56BAFEF778DC0A970739B28F88B81A123B5 + +Count = 514 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 86B3B4DCA59E277541E95D63AF66CF18B7D6409FCA8ACA004E187E0E5A6C55 + +Count = 515 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = F60ADC6495BAB5AA38B38FB383B7EE1ADB2FF6FED921ED1A41912503124C66 + +Count = 516 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 4F48371B6AF752A8C631742E72BC51660C8D5CD22EF5450F74C0E583B7CABD + +Count = 517 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = 89BDEA40E36A9D39A59DFE6697D508CF1D72865D896221B971C974B58F7AFB + +Count = 518 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = 2021C84BC884DC665C3243C82295227DAEFDC15670DEA4D863133FC25DFA0A + +Count = 519 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 20F20FF1674EC0DF8A55CE234064C6E8FCDDEC7D2F04B4E1EB1A974F05A345 + +Count = 520 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = 4F7CC6B92F63AA2AB8907B52C0998DB01683103C69DA6D7FC2CF02DB049124 + +Count = 521 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 6034C839C70E77FC0FCED7C7D75B237845754934B43C3C7E4550112C6D349F + +Count = 522 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = 5E427A3A599AB5CF74AFEBB4E555C6BBFA3068B2565380C310BEBE4621B066 + +Count = 523 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 0005A3730F2091FDA3602E158EBEE936F61500006F7111B2B0C374E7E51013 + +Count = 524 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = B2B2A81D5FB5EA292C0812FCD919237FD15BB858B3DCC192582F539DB8E835 + +Count = 525 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = D96C09271C1D9557D43B72998E41E2E2B0181AC634AFF351B629DA3F363857 + +Count = 526 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 5F5143FA55E240F9571656B9823639446197213786E05BCC787DE679A380D9 + +Count = 527 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = 047BDBAEF519DCC4E65A5DCD7E0C16937DEB03E39640F04C37543ABB86692D + +Count = 528 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 1A9B58442BBD18F7F5EA1B1D243BE2EC65EDAF30A9E34255A7F63A08A85557 + +Count = 529 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F +AD = +CT = DE27B3C1B43A54C25A724A5F57FC59B50AD6CC30AF7D617FA57C4D48A6E820CE + +Count = 530 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F +AD = 00 +CT = 998D7701C14BB41DBA91A240DA82606BC97BA43A842706EA35ED04EE12BD6038 + +Count = 531 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F +AD = 0001 +CT = 51E3F26591E3BE66E2C31CBDD5BF8CD5CEACA5CDC087D7121D6DB2362CBDD532 + +Count = 532 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102 +CT = 255ED813C6C9E79E1107AD13AC89CB046745C48E632A2E6D0A36F5109380738B + +Count = 533 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F +AD = 00010203 +CT = 2BB84CB90B56B23C16EA9185A8C3295723FECF5E556465E5E61C5527058EDAF5 + +Count = 534 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F +AD = 0001020304 +CT = CAB056AA88F110F7178FA1C0758137048D46DAF3D48AA4DA03D36238626B411E + +Count = 535 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405 +CT = 85FF40FCBFEB16F5AC3B7FEAAAB7C01ADF52045955F4C73E84DB2FCAF3767666 + +Count = 536 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F +AD = 00010203040506 +CT = 37466ECBEF0CF6C9987924AC51E05E0DE97EDC55A1F89690F5A30EDE77439212 + +Count = 537 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F +AD = 0001020304050607 +CT = 066D386BDC3BFDE56B07782DF9F784B3749282EDD2EE8198317FFBB41F8B4207 + +Count = 538 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708 +CT = EE35C5ECBEB4F721F4F3F18F7254768B4D6700A94F98C120F6DFDB063EBFC9E0 + +Count = 539 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F +AD = 00010203040506070809 +CT = 252EA99EE58EE9DD9FA2DF9E896C85F52671B3C0FD9AAE5F60B53B7D8B71A068 + +Count = 540 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A +CT = B0C179AC69E8583FD66B5C00368D4DBD8CF56F709E6E94E411369E9870139333 + +Count = 541 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B +CT = 73F5083A228D1FA45045563C2008A4E18AD9F8FBFDEAD8BB97FD1847F2427A22 + +Count = 542 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C +CT = 41AAA97377B39758FE9E8606E64416BEF1ED479FEA50F67CD90C446C5CD9A108 + +Count = 543 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C0D +CT = 1A926838E49E79330E6AFB76A7B1490999A6E9372649A78E70D4ADF5DA8FDD4C + +Count = 544 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C0D0E +CT = 39D9906849736AFEE9B9EC5851CBBFBF48040F0FCF26689DCF0182716BA11CC6 + +Count = 545 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C0D0E0F +CT = 95A9CC016DB1D54668CCA0DC7BC64485547AC7F5AB368E040FEFE52F74CB2FF5 + +Count = 546 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 307824FCBD38D152551DC44E16D56BC829914A6A405866D0F0110C48C38542F4 + +Count = 547 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 86B3B4DCA59E277541E95D63AF66CFA26E772932C04D9E1187672EE166D9E2D1 + +Count = 548 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = F60ADC6495BAB5AA38B38FB383B7EECDA542AC4871F3B201DFC85B8EA6EDD58E + +Count = 549 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 4F48371B6AF752A8C631742E72BC51EB5A6301B630D6609665BA52F168BB5157 + +Count = 550 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = 89BDEA40E36A9D39A59DFE6697D50897B6DAD629168745E03DFB09945969C8C0 + +Count = 551 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = 2021C84BC884DC665C3243C822952297D60C2E17F858F4FBDCC7F08EA2A0608A + +Count = 552 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 20F20FF1674EC0DF8A55CE234064C610BD6E2811093E4D16AEE7F9796109D7ED + +Count = 553 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = 4F7CC6B92F63AA2AB8907B52C0998D4C579EA1655C212EF2AD34E3BAA092935E + +Count = 554 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 6034C839C70E77FC0FCED7C7D75B238FB176B2543D1AF0AC63C6533424780A8A + +Count = 555 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = 5E427A3A599AB5CF74AFEBB4E555C69E3644DB3C4020CA7564FD0C0CDCB76829 + +Count = 556 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 0005A3730F2091FDA3602E158EBEE9328E07845FD9B81B808876937BEAA347E5 + +Count = 557 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = B2B2A81D5FB5EA292C0812FCD919233924D173BA77D2BD14347C03F03F358B59 + +Count = 558 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = D96C09271C1D9557D43B72998E41E2D9B57351F00118A6B9024626528D755CCA + +Count = 559 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 5F5143FA55E240F9571656B9823639F4BDDB0B81CEA48FACB24925B3550C38EE + +Count = 560 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = 047BDBAEF519DCC4E65A5DCD7E0C1687058784BD51F0B6E4A38967EC9CA550AC + +Count = 561 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 1A9B58442BBD18F7F5EA1B1D243BE22797201581EF2E787A3CD47BC751A4C7BF + +Count = 562 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10 +AD = +CT = DE27B3C1B43A54C25A724A5F57FC59B5913644C7291FE90382EA41A7DA15FADB55 + +Count = 563 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 00 +CT = 998D7701C14BB41DBA91A240DA82606BABBC71EFD1F260C303A6EDD891AB1C7B7B + +Count = 564 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 0001 +CT = 51E3F26591E3BE66E2C31CBDD5BF8CD58B1523E670219CE4BC86667F2AB5A96BBE + +Count = 565 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102 +CT = 255ED813C6C9E79E1107AD13AC89CB0464F50C585D2090295CB34540EF6F763AEE + +Count = 566 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 00010203 +CT = 2BB84CB90B56B23C16EA9185A8C3295775718CE92212194ED5EB63549F26379C86 + +Count = 567 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 0001020304 +CT = CAB056AA88F110F7178FA1C075813704BEC07F8232A8902EAD7CB4544D674F862B + +Count = 568 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405 +CT = 85FF40FCBFEB16F5AC3B7FEAAAB7C01ADA71A2CE8799D11FBBD4AF46C263541844 + +Count = 569 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 00010203040506 +CT = 37466ECBEF0CF6C9987924AC51E05E0DC76FFE63E0AA5FE23F8CD1604DC7953F8B + +Count = 570 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 0001020304050607 +CT = 066D386BDC3BFDE56B07782DF9F784B30BF524CDB7289784E9D2ED459E705FE885 + +Count = 571 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708 +CT = EE35C5ECBEB4F721F4F3F18F7254768B89F451125A41C30B6E0869E4E51AC44EE5 + +Count = 572 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 00010203040506070809 +CT = 252EA99EE58EE9DD9FA2DF9E896C85F5E3BC85313090A01A2E15DE2C612490EBB6 + +Count = 573 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A +CT = B0C179AC69E8583FD66B5C00368D4DBD93841304CB5A14C9812AAE1C43565F562E + +Count = 574 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B +CT = 73F5083A228D1FA45045563C2008A4E1B582B33CF37D345AE67E8B0E12794C494B + +Count = 575 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C +CT = 41AAA97377B39758FE9E8606E64416BE91732C477A72F8137A2F0F1FACB5F07C22 + +Count = 576 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C0D +CT = 1A926838E49E79330E6AFB76A7B149093C828AB041378F497F23A88CA4BC6CDA3B + +Count = 577 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C0D0E +CT = 39D9906849736AFEE9B9EC5851CBBFBF13E7E506E32C75E681208F6AD307C0874D + +Count = 578 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C0D0E0F +CT = 95A9CC016DB1D54668CCA0DC7BC644852CC1D92B2EA26C2A96177A75B4C52C77B5 + +Count = 579 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 307824FCBD38D152551DC44E16D56BC8A67A18202436A61D938636D29A9BFC445B + +Count = 580 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 86B3B4DCA59E277541E95D63AF66CFA2B1B49A11189BD0542FE3C7BCF3506E3A5A + +Count = 581 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = F60ADC6495BAB5AA38B38FB383B7EECD8EAA8286A8661AAFA9B80ABA599072A6E1 + +Count = 582 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 4F48371B6AF752A8C631742E72BC51EB8455FFD9C08C031C0614E43AFB17C00B7C + +Count = 583 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = 89BDEA40E36A9D39A59DFE6697D508975C79C94EECC960BCA95F588CE69E8EF45B + +Count = 584 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = 2021C84BC884DC665C3243C822952297A23845018771036E35A1AACC242D8264F3 + +Count = 585 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 20F20FF1674EC0DF8A55CE234064C610D12D05A8E280031A1E5A74C3589892523D + +Count = 586 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = 4F7CC6B92F63AA2AB8907B52C0998D4CD094C23B14BE9BC768CEAA792433807F83 + +Count = 587 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 6034C839C70E77FC0FCED7C7D75B238F4345CC4D6A5CAE28573AAFEC012BA4C39B + +Count = 588 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = 5E427A3A599AB5CF74AFEBB4E555C69E60B78930C63A44F145CA3E37FE1D556A59 + +Count = 589 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 0005A3730F2091FDA3602E158EBEE9324142A3D843F0ABB1FFE9C769922A76D141 + +Count = 590 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = B2B2A81D5FB5EA292C0812FCD91923393416E1FE7E358A239863D6536EE3B42217 + +Count = 591 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = D96C09271C1D9557D43B72998E41E2D9DFDF8B876AA39FFD1B69B3B5B5CAEE5539 + +Count = 592 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 5F5143FA55E240F9571656B9823639F43761F5054E01510A1C26C9C6B8A0F0A5B0 + +Count = 593 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = 047BDBAEF519DCC4E65A5DCD7E0C16873A36249638E05E3602DED1653A15827293 + +Count = 594 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 1A9B58442BBD18F7F5EA1B1D243BE2277D729B26C87EBC50EB37BC1DFE597113F7 + +Count = 595 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = +CT = DE27B3C1B43A54C25A724A5F57FC59B591856C25E18918BDE7769CD17A5939330459 + +Count = 596 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 00 +CT = 998D7701C14BB41DBA91A240DA82606BABF11E72C8E383FAD442D6F0DBDB5002B324 + +Count = 597 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 0001 +CT = 51E3F26591E3BE66E2C31CBDD5BF8CD58B6B6806A20A0E3C88FAAE3429D5CEFF9B21 + +Count = 598 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102 +CT = 255ED813C6C9E79E1107AD13AC89CB0464C6EDA4204ABB66A702DCD3553BEE434C9B + +Count = 599 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 00010203 +CT = 2BB84CB90B56B23C16EA9185A8C3295775EA1C927AE68B7F5DBEFC1B1D56CD15FE4F + +Count = 600 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 0001020304 +CT = CAB056AA88F110F7178FA1C075813704BEB2FD8AA1B4A3E79BE6EED9320BA7F2F3DA + +Count = 601 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405 +CT = 85FF40FCBFEB16F5AC3B7FEAAAB7C01ADA72A0ACFF5F94D1BD10C286BC86C9C941BC + +Count = 602 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 00010203040506 +CT = 37466ECBEF0CF6C9987924AC51E05E0DC7265150F7577802CCF4E64F29FD41C8A88E + +Count = 603 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 0001020304050607 +CT = 066D386BDC3BFDE56B07782DF9F784B30B607C19B5FDF87DAF3E73B7B7D3B23D693F + +Count = 604 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708 +CT = EE35C5ECBEB4F721F4F3F18F7254768B89BDCFA48E42866C883ED5A51B0B62B4257C + +Count = 605 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 00010203040506070809 +CT = 252EA99EE58EE9DD9FA2DF9E896C85F5E30FFA14BB26FC231AFD7D99C6034E9D6483 + +Count = 606 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A +CT = B0C179AC69E8583FD66B5C00368D4DBD9315186B984778F5623580E94E5B0CAC0C86 + +Count = 607 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B +CT = 73F5083A228D1FA45045563C2008A4E1B5F9264827915CB9FA12D219D2FAD86D3DF7 + +Count = 608 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C +CT = 41AAA97377B39758FE9E8606E64416BE91892FE0C794ACE9EA745F9B4B06F55BF1AA + +Count = 609 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C0D +CT = 1A926838E49E79330E6AFB76A7B149093C72894F550AA43A56D221AFB8D63FF6A145 + +Count = 610 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C0D0E +CT = 39D9906849736AFEE9B9EC5851CBBFBF1305E98F6E209A470D070CF75DE3E2067411 + +Count = 611 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C0D0E0F +CT = 95A9CC016DB1D54668CCA0DC7BC644852CB70AF4487701575A671ACAC61CA34A7778 + +Count = 612 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 307824FCBD38D152551DC44E16D56BC8A62079959EC90DB68D33C9B5C63C0FB09ED2 + +Count = 613 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 86B3B4DCA59E277541E95D63AF66CFA2B1C7C472C65284F6DBD0E428CC173F6A075F + +Count = 614 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = F60ADC6495BAB5AA38B38FB383B7EECD8E5D29D6EE5B5AFE4A402DB2CD2C6882F60A + +Count = 615 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 4F48371B6AF752A8C631742E72BC51EB841954DDE46FF1765EEE974836AE3299C37E + +Count = 616 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = 89BDEA40E36A9D39A59DFE6697D508975CEA59DBAD72E387666DE4FDFF3B2A3D4583 + +Count = 617 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = 2021C84BC884DC665C3243C822952297A20689E0DAAC1BDAF69CFF07A10A376AA30F + +Count = 618 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 20F20FF1674EC0DF8A55CE234064C610D177364CC17647D32F09AB80021AA2346184 + +Count = 619 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = 4F7CC6B92F63AA2AB8907B52C0998D4CD04717B230EA4CD664F8169E970B615EB598 + +Count = 620 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 6034C839C70E77FC0FCED7C7D75B238F4334684E646D68023737EC20D9652981B98C + +Count = 621 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = 5E427A3A599AB5CF74AFEBB4E555C69E60F54D5459D621550E9D549E0BA8C6315C80 + +Count = 622 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 0005A3730F2091FDA3602E158EBEE9324122B1D31056D9D60BB4D83F0D742E35F9BF + +Count = 623 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = B2B2A81D5FB5EA292C0812FCD919233934AB6CB9C976B36E1DA1797C051E6B46F965 + +Count = 624 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = D96C09271C1D9557D43B72998E41E2D9DF5ACC9934741BB5CB21A4B37192B3DA5A0E + +Count = 625 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 5F5143FA55E240F9571656B9823639F437C8C4F7EA1BA1ECC3ED46A67A52BDA466DF + +Count = 626 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = 047BDBAEF519DCC4E65A5DCD7E0C16873A30D7A534C9137B2156F4AE75E020FE55E2 + +Count = 627 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 1A9B58442BBD18F7F5EA1B1D243BE2277D080DC8FFDFDEE6780B7161C2CDEEAC2F79 + +Count = 628 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = +CT = DE27B3C1B43A54C25A724A5F57FC59B59185E2E69AB41F97D9F823171716E4CBDC812B + +Count = 629 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 00 +CT = 998D7701C14BB41DBA91A240DA82606BABF1785F5792519EFA56E587ED3DCAFA72B8F7 + +Count = 630 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 0001 +CT = 51E3F26591E3BE66E2C31CBDD5BF8CD58B6B86D43366FF024750E12F20F0877E0F88A9 + +Count = 631 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102 +CT = 255ED813C6C9E79E1107AD13AC89CB0464C6F500329DE6A1DFAD15D9A819C6A56B8CCB + +Count = 632 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 00010203 +CT = 2BB84CB90B56B23C16EA9185A8C3295775EA076BC8ABDDA1120C7BDECB1AA21879F970 + +Count = 633 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 0001020304 +CT = CAB056AA88F110F7178FA1C075813704BEB21AC2DD2A19334A598BFC6A87E9BBED9B8E + +Count = 634 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405 +CT = 85FF40FCBFEB16F5AC3B7FEAAAB7C01ADA7256CCABFD3E28F3B6830E14C47E56981E3C + +Count = 635 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 00010203040506 +CT = 37466ECBEF0CF6C9987924AC51E05E0DC726436019CDF31F28E95EDA3C7E5002713C52 + +Count = 636 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 0001020304050607 +CT = 066D386BDC3BFDE56B07782DF9F784B30B6077711CB0E0889AF0C78B5F79C65BD5E331 + +Count = 637 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708 +CT = EE35C5ECBEB4F721F4F3F18F7254768B89BDE7625AAC4477FA42DE2C8E55718D1747AC + +Count = 638 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 00010203040506070809 +CT = 252EA99EE58EE9DD9FA2DF9E896C85F5E30F9849D04895F6F3B95755F57CA40266ED81 + +Count = 639 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A +CT = B0C179AC69E8583FD66B5C00368D4DBD93157CBAEAD52F5D062B9F2F72C4AAB992242A + +Count = 640 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B +CT = 73F5083A228D1FA45045563C2008A4E1B5F91CF1DD8AFF8B5EDF3C833BC2A13B0EC57A + +Count = 641 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C +CT = 41AAA97377B39758FE9E8606E64416BE91895E8EA9293757102858D714F18E90FBB33E + +Count = 642 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C0D +CT = 1A926838E49E79330E6AFB76A7B149093C726A2EA950A7055F1ECE73FD6F49F7EA8CAA + +Count = 643 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C0D0E +CT = 39D9906849736AFEE9B9EC5851CBBFBF13056821E302D4E1B7E560AF7D5AA8D7B16022 + +Count = 644 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C0D0E0F +CT = 95A9CC016DB1D54668CCA0DC7BC644852CB7A8A3D5CFA93DB549FC5E57569895F16C43 + +Count = 645 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 307824FCBD38D152551DC44E16D56BC8A62071BE98A430416E158031FB2C94C0293DFD + +Count = 646 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 86B3B4DCA59E277541E95D63AF66CFA2B1C7A55E204C34372BA4E1ECDB4179397D3DF5 + +Count = 647 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = F60ADC6495BAB5AA38B38FB383B7EECD8E5D877313981C9A3D2F7EE3199C0DFA6D1083 + +Count = 648 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 4F48371B6AF752A8C631742E72BC51EB8419B7459A030FDEBBE95FC7D8E3491E8235CB + +Count = 649 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = 89BDEA40E36A9D39A59DFE6697D508975CEA588CA01ADA2E3D283255D8FBE4EA3A8F74 + +Count = 650 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = 2021C84BC884DC665C3243C822952297A2066F848E6C352A763AA059D7604B530DB172 + +Count = 651 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 20F20FF1674EC0DF8A55CE234064C610D1775E905F37CAC2C32DBBA627E4CA5D3379B3 + +Count = 652 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = 4F7CC6B92F63AA2AB8907B52C0998D4CD047B8BC33EBC6EA068AE4AFF6D999E6774371 + +Count = 653 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 6034C839C70E77FC0FCED7C7D75B238F4334B9FC4DA5C3D713B22B591CD838C38CB223 + +Count = 654 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = 5E427A3A599AB5CF74AFEBB4E555C69E60F505A4139F15D6BF201A1763A30AF781D5E3 + +Count = 655 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 0005A3730F2091FDA3602E158EBEE93241228319DB34D82BDF12723FE1CCEDE8F6B3F7 + +Count = 656 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = B2B2A81D5FB5EA292C0812FCD919233934AB157038200CD38E129BB2411449063136BA + +Count = 657 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = D96C09271C1D9557D43B72998E41E2D9DF5A44EE4DE7FD505CD75D4148A2A01EC6475A + +Count = 658 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 5F5143FA55E240F9571656B9823639F437C8597F88919FDB0398ACD57FE9A2F9884CCE + +Count = 659 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = 047BDBAEF519DCC4E65A5DCD7E0C16873A304597164B76083C10FD4A9BDF931C4D01AD + +Count = 660 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 1A9B58442BBD18F7F5EA1B1D243BE2277D08ABDBA8B3C03491B52274B24B244B824310 + +Count = 661 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = +CT = DE27B3C1B43A54C25A724A5F57FC59B59185E2EF06D8F0F70403903EE2A0FACC1B20EB03 + +Count = 662 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 00 +CT = 998D7701C14BB41DBA91A240DA82606BABF178C951715945DE2013BC7350B287F7F9C19B + +Count = 663 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 0001 +CT = 51E3F26591E3BE66E2C31CBDD5BF8CD58B6B86C02E89FF9853EA44979A0AABF43E7E788C + +Count = 664 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102 +CT = 255ED813C6C9E79E1107AD13AC89CB0464C6F55561DD9608CBAAB17DB7D2D5E63CE80038 + +Count = 665 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 00010203 +CT = 2BB84CB90B56B23C16EA9185A8C3295775EA072BC8156D4872FC3716E959E0DD75EBB2D0 + +Count = 666 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 0001020304 +CT = CAB056AA88F110F7178FA1C075813704BEB21AFB76BEFBC8A10B5784306C021F5B7E147F + +Count = 667 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405 +CT = 85FF40FCBFEB16F5AC3B7FEAAAB7C01ADA72560756200CF4F120C625CB2F267F3CDE83CC + +Count = 668 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 00010203040506 +CT = 37466ECBEF0CF6C9987924AC51E05E0DC726432BD27451060C933EBD63D81F96DD50A46C + +Count = 669 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 0001020304050607 +CT = 066D386BDC3BFDE56B07782DF9F784B30B60770CD3E51E7D972650F44E226599CA1B1301 + +Count = 670 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708 +CT = EE35C5ECBEB4F721F4F3F18F7254768B89BDE7478FB2EAF96CEA6B962D7AC4737902010A + +Count = 671 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 00010203040506070809 +CT = 252EA99EE58EE9DD9FA2DF9E896C85F5E30F98D4F513936DA3C8F7A7FFD0A080B9DAAB90 + +Count = 672 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A +CT = B0C179AC69E8583FD66B5C00368D4DBD93157CF5A4AB04071C49BB020B6D57D52868C843 + +Count = 673 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B +CT = 73F5083A228D1FA45045563C2008A4E1B5F91C58DA0144D18770D47E8F443D39C18AC211 + +Count = 674 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C +CT = 41AAA97377B39758FE9E8606E64416BE91895E95ED27A585881DC76984350C60243B0823 + +Count = 675 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C0D +CT = 1A926838E49E79330E6AFB76A7B149093C726A99F14F9B5463DA9AE4367CD987095BB73C + +Count = 676 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C0D0E +CT = 39D9906849736AFEE9B9EC5851CBBFBF1305686BC33C0E339D3D74F6F31037998CBE57F7 + +Count = 677 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C0D0E0F +CT = 95A9CC016DB1D54668CCA0DC7BC644852CB7A83E8F1656763B740E89B6B6559EB5A194A1 + +Count = 678 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 307824FCBD38D152551DC44E16D56BC8A620717F3EFF5996454348FA3CDE439FF7769B73 + +Count = 679 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 86B3B4DCA59E277541E95D63AF66CFA2B1C7A5467F536C0D1EC628013FDF7037E562ACEA + +Count = 680 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = F60ADC6495BAB5AA38B38FB383B7EECD8E5D87BF9B2A70681D617D3400F89688D3202C4B + +Count = 681 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 4F48371B6AF752A8C631742E72BC51EB8419B7B878F663C9D171118EE535C43D025017B3 + +Count = 682 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = 89BDEA40E36A9D39A59DFE6697D508975CEA5882C2E09E364689608132EF8642A2100CF4 + +Count = 683 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = 2021C84BC884DC665C3243C822952297A2066F8CAD96C2E6210815908682855BD9D3D160 + +Count = 684 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 20F20FF1674EC0DF8A55CE234064C610D1775EEAD8DF1AA8FE6D297723F9EA321E293F7C + +Count = 685 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = 4F7CC6B92F63AA2AB8907B52C0998D4CD047B8AE527D1733E42E51383804E310179B80B5 + +Count = 686 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 6034C839C70E77FC0FCED7C7D75B238F4334B9258903339E8326428D9B29A76DEB4563FB + +Count = 687 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = 5E427A3A599AB5CF74AFEBB4E555C69E60F50542CC94BAB44001D94B498E031139A85F25 + +Count = 688 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 0005A3730F2091FDA3602E158EBEE9324122837421BDFA7A10AC22629F7D8718AF76424F + +Count = 689 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = B2B2A81D5FB5EA292C0812FCD919233934AB155CE5B1F8A50A2BBE718372D9DC87B8F457 + +Count = 690 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = D96C09271C1D9557D43B72998E41E2D9DF5A44FA68D0E36A8AB3C4786D3E44A8185C3BCE + +Count = 691 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 5F5143FA55E240F9571656B9823639F437C859B1522C2375D5E1DCC8E9586604A25F48E6 + +Count = 692 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = 047BDBAEF519DCC4E65A5DCD7E0C16873A30456E2454CA1A9026F15BB7838B067B99F2C9 + +Count = 693 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 1A9B58442BBD18F7F5EA1B1D243BE2277D08ABAB666B77A61B3D5C93B73673BCACF93498 + +Count = 694 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = +CT = DE27B3C1B43A54C25A724A5F57FC59B59185E2EF4BB6543EF3A53A6E8C32739E20459AECC0 + +Count = 695 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 00 +CT = 998D7701C14BB41DBA91A240DA82606BABF178C9DD2EF6B903FA6C0A2B9DB7356073738495 + +Count = 696 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 0001 +CT = 51E3F26591E3BE66E2C31CBDD5BF8CD58B6B86C0EB97943AD21C627989995867824831C215 + +Count = 697 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102 +CT = 255ED813C6C9E79E1107AD13AC89CB0464C6F555276AA03223559F532B5D78D7EF05D3EA49 + +Count = 698 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 00010203 +CT = 2BB84CB90B56B23C16EA9185A8C3295775EA072BAF385D971DE283075839964320814A0007 + +Count = 699 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 0001020304 +CT = CAB056AA88F110F7178FA1C075813704BEB21AFBAD1A26D684CA5839C9951311F8B94A9D8F + +Count = 700 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405 +CT = 85FF40FCBFEB16F5AC3B7FEAAAB7C01ADA725607C490B420827341763CC8BDB52DD8C7AF15 + +Count = 701 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 00010203040506 +CT = 37466ECBEF0CF6C9987924AC51E05E0DC726432BBEE9372C2EE5CCB9AD966E80E16D4F0F3D + +Count = 702 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 0001020304050607 +CT = 066D386BDC3BFDE56B07782DF9F784B30B60770C5511433A142135250AD132F2888ECEE452 + +Count = 703 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708 +CT = EE35C5ECBEB4F721F4F3F18F7254768B89BDE7474607F5A47AB308B3859CEF8101B3B047C3 + +Count = 704 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 00010203040506070809 +CT = 252EA99EE58EE9DD9FA2DF9E896C85F5E30F98D4BBF50540B3F28688A06277C644AE945404 + +Count = 705 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A +CT = B0C179AC69E8583FD66B5C00368D4DBD93157CF52B9478EE46EF0245D17A6721474A742EB2 + +Count = 706 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B +CT = 73F5083A228D1FA45045563C2008A4E1B5F91C58B68A5EB29A39CE448103C9C1A4F0A8F090 + +Count = 707 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C +CT = 41AAA97377B39758FE9E8606E64416BE91895E95CD0892B7FA1AC9B912A3186A38962E5B34 + +Count = 708 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C0D +CT = 1A926838E49E79330E6AFB76A7B149093C726A99065E4346DF5BF0001D09A19C2A5BFFF265 + +Count = 709 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C0D0E +CT = 39D9906849736AFEE9B9EC5851CBBFBF1305686B8B1B44FAC558DD8A6B4A7519788FCC2517 + +Count = 710 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C0D0E0F +CT = 95A9CC016DB1D54668CCA0DC7BC644852CB7A83E03CC4AD5D531254C3651CCC541B9E2960B + +Count = 711 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 307824FCBD38D152551DC44E16D56BC8A620717FA16F38C1075743CC863714F4FD3019035E + +Count = 712 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 86B3B4DCA59E277541E95D63AF66CFA2B1C7A546D079C9C99BF394766A44EC71F474B2D543 + +Count = 713 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = F60ADC6495BAB5AA38B38FB383B7EECD8E5D87BF4B1C9D9EB40B69790E8596B434155DA540 + +Count = 714 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 4F48371B6AF752A8C631742E72BC51EB8419B7B8E4D6FA4F6BA8A63E4AA19BA7DE8EACAA98 + +Count = 715 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = 89BDEA40E36A9D39A59DFE6697D508975CEA588234B0E1A85254061813E42D6C2E791A24A6 + +Count = 716 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = 2021C84BC884DC665C3243C822952297A2066F8CF5E28FF3A7FC1185E040E32ED6B82AEEB0 + +Count = 717 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 20F20FF1674EC0DF8A55CE234064C610D1775EEA5AACE20A17309CCC1E0B562DFB87587A10 + +Count = 718 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = 4F7CC6B92F63AA2AB8907B52C0998D4CD047B8AE5B94DDF6FDB34B9A25BE48F48549EF0ADB + +Count = 719 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 6034C839C70E77FC0FCED7C7D75B238F4334B925CB15AED29BF297CABAB344128A51FCDA2B + +Count = 720 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = 5E427A3A599AB5CF74AFEBB4E555C69E60F505422E0F7EB0E04F47F577A2789BF5659633D9 + +Count = 721 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 0005A3730F2091FDA3602E158EBEE93241228374B85E36DDAB0608DD95A3246CAA42357A83 + +Count = 722 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = B2B2A81D5FB5EA292C0812FCD919233934AB155C1215131FF14DCCE1F9A3E9E3BA9F4675B6 + +Count = 723 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = D96C09271C1D9557D43B72998E41E2D9DF5A44FAAB3E353E5DAFA7A62A3720B0A168E70F28 + +Count = 724 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 5F5143FA55E240F9571656B9823639F437C859B1D0EF207DB7CE437862DBD9BB043CEA3822 + +Count = 725 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = 047BDBAEF519DCC4E65A5DCD7E0C16873A30456EEB591CFCC41E938565D44ECEDCEA13D0BE + +Count = 726 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 1A9B58442BBD18F7F5EA1B1D243BE2277D08ABAB0A8B0FAC2EF55E9A307AECF477A06A7CD6 + +Count = 727 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = +CT = DE27B3C1B43A54C25A724A5F57FC59B59185E2EF4B688EBE30100EAEC155A295EC555241B67C + +Count = 728 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 00 +CT = 998D7701C14BB41DBA91A240DA82606BABF178C9DD86B86E48BFB425228F839D53591E5314AF + +Count = 729 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 0001 +CT = 51E3F26591E3BE66E2C31CBDD5BF8CD58B6B86C0EB34E5C566E7EDC221AC165DA7FDF915CA9A + +Count = 730 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102 +CT = 255ED813C6C9E79E1107AD13AC89CB0464C6F55527626E810DFA14EEA429753026B3308CE14C + +Count = 731 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 00010203 +CT = 2BB84CB90B56B23C16EA9185A8C3295775EA072BAF4B910C0C99B836B2E175BE41C8E207C939 + +Count = 732 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 0001020304 +CT = CAB056AA88F110F7178FA1C075813704BEB21AFBAD02B12FACADCDF44FE5B9F5D020D91886DC + +Count = 733 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405 +CT = 85FF40FCBFEB16F5AC3B7FEAAAB7C01ADA725607C49E217038CA62827AB4CD8214750047ECC3 + +Count = 734 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 00010203040506 +CT = 37466ECBEF0CF6C9987924AC51E05E0DC726432BBE6ED6613D96D508D12F18469ADB99815017 + +Count = 735 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 0001020304050607 +CT = 066D386BDC3BFDE56B07782DF9F784B30B60770C55B8A647EB750DD2A5C0267C81774355563C + +Count = 736 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708 +CT = EE35C5ECBEB4F721F4F3F18F7254768B89BDE74746FEE09E8C24C0130F5F216C378131343336 + +Count = 737 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 00010203040506070809 +CT = 252EA99EE58EE9DD9FA2DF9E896C85F5E30F98D4BB941654DCFDBD55CD4B0562F41EF12A10F3 + +Count = 738 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A +CT = B0C179AC69E8583FD66B5C00368D4DBD93157CF52B9313D7324326FA0F0AC161C06787099D4B + +Count = 739 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B +CT = 73F5083A228D1FA45045563C2008A4E1B5F91C58B66956840ACED3CA10DAFFB9DBCF3FBB587C + +Count = 740 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C +CT = 41AAA97377B39758FE9E8606E64416BE91895E95CDAEF4DBC1727AE76B93DBBACE8F33CCD714 + +Count = 741 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C0D +CT = 1A926838E49E79330E6AFB76A7B149093C726A9906367033129C42228A79FD42492FF215EB78 + +Count = 742 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C0D0E +CT = 39D9906849736AFEE9B9EC5851CBBFBF1305686B8BFE702BA125B5D30250F67908DFA4CE88B8 + +Count = 743 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C0D0E0F +CT = 95A9CC016DB1D54668CCA0DC7BC644852CB7A83E03EAE2FF19CCAF1DDA8BFC28CF612248931B + +Count = 744 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 307824FCBD38D152551DC44E16D56BC8A620717FA1301E646C172236B3171FABBCCB1210DB29 + +Count = 745 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 86B3B4DCA59E277541E95D63AF66CFA2B1C7A546D0D44FA97C0C870A27714A624DEEF59AF2DE + +Count = 746 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = F60ADC6495BAB5AA38B38FB383B7EECD8E5D87BF4B030FABD24E3E40F9C44464CB029A5C5EB9 + +Count = 747 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 4F48371B6AF752A8C631742E72BC51EB8419B7B8E438F5DC8B09D8DC5439533A9CB24B09F98A + +Count = 748 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = 89BDEA40E36A9D39A59DFE6697D508975CEA58823414145DBB651630E84DD19C9EC7C6C85BC7 + +Count = 749 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = 2021C84BC884DC665C3243C822952297A2066F8CF5BA420766C74B91A73D3DDCDAD1920820A8 + +Count = 750 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 20F20FF1674EC0DF8A55CE234064C610D1775EEA5A97AAB890133FDE1ADA66CA026F91C843A4 + +Count = 751 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = 4F7CC6B92F63AA2AB8907B52C0998D4CD047B8AE5B46417BDCCCC71C6C88078A89E53A10758B + +Count = 752 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 6034C839C70E77FC0FCED7C7D75B238F4334B925CB439FF83D74756E275E05E5ED1D81A3D83C + +Count = 753 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = 5E427A3A599AB5CF74AFEBB4E555C69E60F505422E43693A96552C6798878C190FDF11719F3C + +Count = 754 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 0005A3730F2091FDA3602E158EBEE93241228374B8C0369EE2765A4CE8E15C91EAF4E1C1EAEA + +Count = 755 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = B2B2A81D5FB5EA292C0812FCD919233934AB155C12FBDA2D269771AAFD5E628F464B7E881BD7 + +Count = 756 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = D96C09271C1D9557D43B72998E41E2D9DF5A44FAABEF03CD711BFB8E8F0AAC4A903877648148 + +Count = 757 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 5F5143FA55E240F9571656B9823639F437C859B1D0B5FA6218BAC2D3D4FB89BEAED2DC15AE1A + +Count = 758 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = 047BDBAEF519DCC4E65A5DCD7E0C16873A30456EEBD28997B246BABE06F90F40CA37971E0FA0 + +Count = 759 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 1A9B58442BBD18F7F5EA1B1D243BE2277D08ABAB0A47C314DB9085BF2770CD9317B58F3E1485 + +Count = 760 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = +CT = DE27B3C1B43A54C25A724A5F57FC59B59185E2EF4B687C137DD77ED700429834C3A7B05955643A + +Count = 761 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 00 +CT = 998D7701C14BB41DBA91A240DA82606BABF178C9DD868D92778045161BBE0A2237AA56F1F1D881 + +Count = 762 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 0001 +CT = 51E3F26591E3BE66E2C31CBDD5BF8CD58B6B86C0EB34252C9852F8082D5306899D6BBD676BF017 + +Count = 763 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102 +CT = 255ED813C6C9E79E1107AD13AC89CB0464C6F5552762C972E3A41082CDADC17DC0FDF8B377B67E + +Count = 764 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 00010203 +CT = 2BB84CB90B56B23C16EA9185A8C3295775EA072BAF4B1ADC5D75D418B763E91FB1418BF698CA51 + +Count = 765 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 0001020304 +CT = CAB056AA88F110F7178FA1C075813704BEB21AFBAD02DEC93C4DBEBAF1B001B49B3E8C04A0FC5E + +Count = 766 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405 +CT = 85FF40FCBFEB16F5AC3B7FEAAAB7C01ADA725607C49E698F58D9ED3B0CDFD8B23EF38FF270A486 + +Count = 767 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 00010203040506 +CT = 37466ECBEF0CF6C9987924AC51E05E0DC726432BBE6E9B01ADF9D507F34A53A1F280D46002ADA6 + +Count = 768 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 0001020304050607 +CT = 066D386BDC3BFDE56B07782DF9F784B30B60770C55B83AE3474A70C74798443CBD57D8CAC5ADAC + +Count = 769 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708 +CT = EE35C5ECBEB4F721F4F3F18F7254768B89BDE74746FE75B762CA9368B906F196730045AA311E28 + +Count = 770 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 00010203040506070809 +CT = 252EA99EE58EE9DD9FA2DF9E896C85F5E30F98D4BB94217940BEF185840053C258ACE4533D37C4 + +Count = 771 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A +CT = B0C179AC69E8583FD66B5C00368D4DBD93157CF52B93769A1EC2DF4019DE6D26A2FF2D31063F28 + +Count = 772 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B +CT = 73F5083A228D1FA45045563C2008A4E1B5F91C58B6698ADDA1BF5DAC5BE104E66556E7BAE4903E + +Count = 773 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C +CT = 41AAA97377B39758FE9E8606E64416BE91895E95CDAEB23C1E54418BE76E5076C262D1DF3EB79D + +Count = 774 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C0D +CT = 1A926838E49E79330E6AFB76A7B149093C726A9906360B5586444B27A15824DB8FD5FD2F967793 + +Count = 775 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C0D0E +CT = 39D9906849736AFEE9B9EC5851CBBFBF1305686B8BFED995F72D69F3CF9B8F0C236B4E0CD91317 + +Count = 776 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C0D0E0F +CT = 95A9CC016DB1D54668CCA0DC7BC644852CB7A83E03EA8C6304B310ED84F648DB22B10ABA80F08F + +Count = 777 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 307824FCBD38D152551DC44E16D56BC8A620717FA130910B903925D16E53D8B75444B2EDE48F61 + +Count = 778 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 86B3B4DCA59E277541E95D63AF66CFA2B1C7A546D0D47D32E1BEFF94584E5BDB9526ECFADAB2D2 + +Count = 779 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = F60ADC6495BAB5AA38B38FB383B7EECD8E5D87BF4B0343FABDA4494EEB6E9F31812A28DCC302F0 + +Count = 780 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 4F48371B6AF752A8C631742E72BC51EB8419B7B8E4387E443FB49A3821FF2CB9BB49255430BC1C + +Count = 781 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = 89BDEA40E36A9D39A59DFE6697D508975CEA5882341402608E94FDB0BED73EB6C2CCBB25A21565 + +Count = 782 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = 2021C84BC884DC665C3243C822952297A2066F8CF5BA438E244389911110CB88A6031AB3F31229 + +Count = 783 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 20F20FF1674EC0DF8A55CE234064C610D1775EEA5A97961A8FED7740A98242AFE575DA52923D13 + +Count = 784 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = 4F7CC6B92F63AA2AB8907B52C0998D4CD047B8AE5B46DD2DE5C25EC53645B977BD84D26AF9A41C + +Count = 785 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 6034C839C70E77FC0FCED7C7D75B238F4334B925CB43D4D775645C99A6DEF06BF997BEC68656F6 + +Count = 786 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = 5E427A3A599AB5CF74AFEBB4E555C69E60F505422E4342219C62C4A6B5A5197505E745C4CCDA82 + +Count = 787 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 0005A3730F2091FDA3602E158EBEE93241228374B8C0387B4EF3423000B2AE994ACBDCCA8C4911 + +Count = 788 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = B2B2A81D5FB5EA292C0812FCD919233934AB155C12FBABC3B503FECD993412B0B4A9E7A3744A8C + +Count = 789 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = D96C09271C1D9557D43B72998E41E2D9DF5A44FAABEFC9F70075DD48764DF30000B286AA7D46E2 + +Count = 790 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 5F5143FA55E240F9571656B9823639F437C859B1D0B5FEC4DA35453B203581400AFEB70B771E16 + +Count = 791 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = 047BDBAEF519DCC4E65A5DCD7E0C16873A30456EEBD26A2D07C509EC25E6E4CAA2CE8915D5A2A4 + +Count = 792 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 1A9B58442BBD18F7F5EA1B1D243BE2277D08ABAB0A47AC540FDC6BFA24072713234C2F295E27FC + +Count = 793 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = +CT = DE27B3C1B43A54C25A724A5F57FC59B59185E2EF4B687C6DE4EBA173D3EC7EA5CE095188C1030AFE + +Count = 794 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 00 +CT = 998D7701C14BB41DBA91A240DA82606BABF178C9DD868D5ACB1305C649520A0719E059D8A4F55CEB + +Count = 795 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 0001 +CT = 51E3F26591E3BE66E2C31CBDD5BF8CD58B6B86C0EB34251634CA42CA45CDD6A11B4F71C9D63E7925 + +Count = 796 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102 +CT = 255ED813C6C9E79E1107AD13AC89CB0464C6F5552762C967FA46CD022C883330E7974406BA6ECDF3 + +Count = 797 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 00010203 +CT = 2BB84CB90B56B23C16EA9185A8C3295775EA072BAF4B1A6A281DD851AB2B6B4EF6DFDE0CFE169D2B + +Count = 798 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 0001020304 +CT = CAB056AA88F110F7178FA1C075813704BEB21AFBAD02DEE129B3061ACA4B9C372DE8FB599E9050A8 + +Count = 799 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405 +CT = 85FF40FCBFEB16F5AC3B7FEAAAB7C01ADA725607C49E694FA5FEA066211661879A83031E0977C623 + +Count = 800 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 00010203040506 +CT = 37466ECBEF0CF6C9987924AC51E05E0DC726432BBE6E9B27C069D0D8D747A1F00168A25997B8B909 + +Count = 801 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 0001020304050607 +CT = 066D386BDC3BFDE56B07782DF9F784B30B60770C55B83A6D8E97EA9DE04A9521C3B40B2C87ADFE03 + +Count = 802 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708 +CT = EE35C5ECBEB4F721F4F3F18F7254768B89BDE74746FE757DAB9B245A211ACC7742A4A8C0E69FE28A + +Count = 803 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 00010203040506070809 +CT = 252EA99EE58EE9DD9FA2DF9E896C85F5E30F98D4BB9421C4E9EF7680649ADA75185CFF4C03BAC5DC + +Count = 804 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A +CT = B0C179AC69E8583FD66B5C00368D4DBD93157CF52B9376E2A02646E5F089BA1FA55CAE8B6E7ECAB1 + +Count = 805 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B +CT = 73F5083A228D1FA45045563C2008A4E1B5F91C58B6698AAA4EA86D58F83E6101F42711F86157D571 + +Count = 806 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C +CT = 41AAA97377B39758FE9E8606E64416BE91895E95CDAEB22E5F5E9F6AEF9B42682D6C6B6150A1CAEC + +Count = 807 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C0D +CT = 1A926838E49E79330E6AFB76A7B149093C726A9906360B1D534218C0E20B382A6A1C4115C97236D5 + +Count = 808 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C0D0E +CT = 39D9906849736AFEE9B9EC5851CBBFBF1305686B8BFED99FD56CC74C5BD0669C19A94793556D9CC5 + +Count = 809 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C0D0E0F +CT = 95A9CC016DB1D54668CCA0DC7BC644852CB7A83E03EA8CBA8E3362C2CE8BE680A604114880CA6658 + +Count = 810 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 307824FCBD38D152551DC44E16D56BC8A620717FA130914E2E121E41A669A40D810158AE266AC40B + +Count = 811 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 86B3B4DCA59E277541E95D63AF66CFA2B1C7A546D0D47D940FD4F3CE694A619501E904BB40AB0E32 + +Count = 812 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = F60ADC6495BAB5AA38B38FB383B7EECD8E5D87BF4B034312ACA0AEA5F8B497E789B307864315978F + +Count = 813 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 4F48371B6AF752A8C631742E72BC51EB8419B7B8E4387EC118AB12D5310926EBF38164D20B51091F + +Count = 814 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = 89BDEA40E36A9D39A59DFE6697D508975CEA58823414029D16D72F98ADD54BFC4630ACE6F08EAF0C + +Count = 815 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = 2021C84BC884DC665C3243C822952297A2066F8CF5BA4380AE2AEC2F16D1ED75D84A87D342372B7C + +Count = 816 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 20F20FF1674EC0DF8A55CE234064C610D1775EEA5A979658CD2D2A329458189DFE037C585F5F2C32 + +Count = 817 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = 4F7CC6B92F63AA2AB8907B52C0998D4CD047B8AE5B46DD14B240F181D11AB8EF496BE3702900FDF6 + +Count = 818 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 6034C839C70E77FC0FCED7C7D75B238F4334B925CB43D4888CB47182AD5808DF08D3F25A9A746406 + +Count = 819 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = 5E427A3A599AB5CF74AFEBB4E555C69E60F505422E4342BBB03E64A05A57A1196E0D6DF65D068AFD + +Count = 820 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 0005A3730F2091FDA3602E158EBEE93241228374B8C0384BD7AC6351EC7F7C65FFF354CFE819FC36 + +Count = 821 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = B2B2A81D5FB5EA292C0812FCD919233934AB155C12FBABD8BAC1B6B0BD0AE8D680477283F9017452 + +Count = 822 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = D96C09271C1D9557D43B72998E41E2D9DF5A44FAABEFC956CBCF9CCEB5B86A7B830B64F08992DD51 + +Count = 823 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 5F5143FA55E240F9571656B9823639F437C859B1D0B5FE424641CD31319C45D765822F602A002D49 + +Count = 824 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = 047BDBAEF519DCC4E65A5DCD7E0C16873A30456EEBD26AD59F68FC2156E298A57A781EBC8ED69DE7 + +Count = 825 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 1A9B58442BBD18F7F5EA1B1D243BE2277D08ABAB0A47AC4A6B8837E6F8CDAFA3BE0078E3705B3F1A + +Count = 826 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = +CT = DE27B3C1B43A54C25A724A5F57FC59B59185E2EF4B687C6D4B1F7A3404552E100806538F83786BA733 + +Count = 827 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 00 +CT = 998D7701C14BB41DBA91A240DA82606BABF178C9DD868D5A132687DD91CC9BCD73993303DDDBCC1626 + +Count = 828 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 0001 +CT = 51E3F26591E3BE66E2C31CBDD5BF8CD58B6B86C0EB342516F0F07765B7B0D78B795C98C28795DDCA78 + +Count = 829 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102 +CT = 255ED813C6C9E79E1107AD13AC89CB0464C6F5552762C96763CAB21F64912F5F199F4095ECF11625CF + +Count = 830 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 00010203 +CT = 2BB84CB90B56B23C16EA9185A8C3295775EA072BAF4B1A6A197EE810EB23BBFB5ACFB5B36693095B83 + +Count = 831 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 0001020304 +CT = CAB056AA88F110F7178FA1C075813704BEB21AFBAD02DEE10A7DFAD3D86DB58FD862FA0B7F266762B1 + +Count = 832 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405 +CT = 85FF40FCBFEB16F5AC3B7FEAAAB7C01ADA725607C49E694F0D4523A4D095500282BE4BF93E25252EA3 + +Count = 833 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 00010203040506 +CT = 37466ECBEF0CF6C9987924AC51E05E0DC726432BBE6E9B2726D75F38620CA5488BD4C323206844E096 + +Count = 834 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 0001020304050607 +CT = 066D386BDC3BFDE56B07782DF9F784B30B60770C55B83A6DA5D64B576DF3B240E98768B1DFD64D4B63 + +Count = 835 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708 +CT = EE35C5ECBEB4F721F4F3F18F7254768B89BDE74746FE757D2F40C610BF53F2A7DB970879F1AD922D3B + +Count = 836 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 00010203040506070809 +CT = 252EA99EE58EE9DD9FA2DF9E896C85F5E30F98D4BB9421C4103822874952AC8ECC5755C9000C8DD817 + +Count = 837 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A +CT = B0C179AC69E8583FD66B5C00368D4DBD93157CF52B9376E2FC39E2F575928594DBB92037A70F85C455 + +Count = 838 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B +CT = 73F5083A228D1FA45045563C2008A4E1B5F91C58B6698AAAEF298FD33AC729DEE4F77C44D004FFF601 + +Count = 839 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C +CT = 41AAA97377B39758FE9E8606E64416BE91895E95CDAEB22E96582CC16F90612C5D23D8A20B89DF4BA5 + +Count = 840 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C0D +CT = 1A926838E49E79330E6AFB76A7B149093C726A9906360B1D612C867111298646CBE171E4966C9B7854 + +Count = 841 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C0D0E +CT = 39D9906849736AFEE9B9EC5851CBBFBF1305686B8BFED99F6D7DF876DEFDF264AC5642E3C12DCA7F1D + +Count = 842 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C0D0E0F +CT = 95A9CC016DB1D54668CCA0DC7BC644852CB7A83E03EA8CBA8F784F67A268998FA7E6F9FD3D9E9EBFE5 + +Count = 843 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 307824FCBD38D152551DC44E16D56BC8A620717FA130914E700C249363C7A322A59B3275AB093AD0F5 + +Count = 844 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 86B3B4DCA59E277541E95D63AF66CFA2B1C7A546D0D47D942C1983A30CD67FD527588C0CBD2A73993E + +Count = 845 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = F60ADC6495BAB5AA38B38FB383B7EECD8E5D87BF4B034312F8E00DCE82C34C7801DC938B32A80C64D3 + +Count = 846 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 4F48371B6AF752A8C631742E72BC51EB8419B7B8E4387EC130378F4913D20C368C45FA2C1E733032B6 + +Count = 847 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = 89BDEA40E36A9D39A59DFE6697D508975CEA58823414029D2DFB3945175E099DCB92E1EBDCA4663147 + +Count = 848 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = 2021C84BC884DC665C3243C822952297A2066F8CF5BA4380AA2F9B23D450D6585BCBFA732FB244FCCB + +Count = 849 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 20F20FF1674EC0DF8A55CE234064C610D1775EEA5A97965818219E57A854284AD0FB67637EBB11C433 + +Count = 850 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = 4F7CC6B92F63AA2AB8907B52C0998D4CD047B8AE5B46DD1428E55AF65769CABBA4C92BF7E5D91A8676 + +Count = 851 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 6034C839C70E77FC0FCED7C7D75B238F4334B925CB43D48853C4E10DBC21E7E7E12A009988DC3DB362 + +Count = 852 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = 5E427A3A599AB5CF74AFEBB4E555C69E60F505422E4342BB03D83BDFA9BCF2D9B48ED1D6D5B5C50B2B + +Count = 853 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 0005A3730F2091FDA3602E158EBEE93241228374B8C0384BA97FAFE86B9B664A9CE5FDB549BC9E6ED8 + +Count = 854 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = B2B2A81D5FB5EA292C0812FCD919233934AB155C12FBABD855A22F51F1E0109B9D1DA8D934FF5F9ECA + +Count = 855 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = D96C09271C1D9557D43B72998E41E2D9DF5A44FAABEFC956B418718B434E8563B5297C65B52C7DE60D + +Count = 856 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 5F5143FA55E240F9571656B9823639F437C859B1D0B5FE4256C6E5F4BB0EDEBB5E6826DA7E9CD5BD6F + +Count = 857 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = 047BDBAEF519DCC4E65A5DCD7E0C16873A30456EEBD26AD5B0FCF01D23A9A67568A25D3ADEFD1CEEB8 + +Count = 858 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 1A9B58442BBD18F7F5EA1B1D243BE2277D08ABAB0A47AC4AB16D1DA05886223E82C63F2D2981ECBB03 + +Count = 859 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = +CT = DE27B3C1B43A54C25A724A5F57FC59B59185E2EF4B687C6D4B4CE009CAF624E78A99898F75F372F3BA02 + +Count = 860 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 00 +CT = 998D7701C14BB41DBA91A240DA82606BABF178C9DD868D5A136E1828BA9C9E2BBA2C5FE44DCAA584EA5E + +Count = 861 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 0001 +CT = 51E3F26591E3BE66E2C31CBDD5BF8CD58B6B86C0EB342516F0062C866E5A73212199FCA83AC0E0DE5ED3 + +Count = 862 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102 +CT = 255ED813C6C9E79E1107AD13AC89CB0464C6F5552762C9676392DFC075703AB2514C66FA4E17B1D69258 + +Count = 863 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 00010203 +CT = 2BB84CB90B56B23C16EA9185A8C3295775EA072BAF4B1A6A1966D58C05C5312D51529764D3B84B6A9187 + +Count = 864 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 0001020304 +CT = CAB056AA88F110F7178FA1C075813704BEB21AFBAD02DEE10A8EE5B4458C20886F21E8D913CB1C086204 + +Count = 865 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405 +CT = 85FF40FCBFEB16F5AC3B7FEAAAB7C01ADA725607C49E694F0D583C8E97C6B5EB6358C5C9A9AE6E2F1325 + +Count = 866 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 00010203040506 +CT = 37466ECBEF0CF6C9987924AC51E05E0DC726432BBE6E9B2726495D230EC871C3D854C864D8EE1FBF4086 + +Count = 867 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 0001020304050607 +CT = 066D386BDC3BFDE56B07782DF9F784B30B60770C55B83A6DA5287C4AACE44DF798C23907B0D0FA216D45 + +Count = 868 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708 +CT = EE35C5ECBEB4F721F4F3F18F7254768B89BDE74746FE757D2F636E51B931EAAF18E6EBCE02EBBCC3A942 + +Count = 869 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 00010203040506070809 +CT = 252EA99EE58EE9DD9FA2DF9E896C85F5E30F98D4BB9421C410FCD4E1AD71E229A7F81F6354057F006A6B + +Count = 870 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A +CT = B0C179AC69E8583FD66B5C00368D4DBD93157CF52B9376E2FC300F2DFA65644CF002AA2D114601146EE6 + +Count = 871 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B +CT = 73F5083A228D1FA45045563C2008A4E1B5F91C58B6698AAAEFCD1C969D65ED16861199C0E9F0AA5B711F + +Count = 872 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C +CT = 41AAA97377B39758FE9E8606E64416BE91895E95CDAEB22E96452451E49882961B606C94F331353AB77B + +Count = 873 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C0D +CT = 1A926838E49E79330E6AFB76A7B149093C726A9906360B1D61822040B2CDA50C049B3C95D27D86F239D9 + +Count = 874 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C0D0E +CT = 39D9906849736AFEE9B9EC5851CBBFBF1305686B8BFED99F6DB7337ABB8F3392B9FA148EE14250E985C5 + +Count = 875 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C0D0E0F +CT = 95A9CC016DB1D54668CCA0DC7BC644852CB7A83E03EA8CBA8F45B9113E114D1FE64EDBDDF18E034D6B2E + +Count = 876 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 307824FCBD38D152551DC44E16D56BC8A620717FA130914E70D097860D44238F570076199926A715B513 + +Count = 877 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 86B3B4DCA59E277541E95D63AF66CFA2B1C7A546D0D47D942C8E76D36ECED21536D82FC4057786A7EA7C + +Count = 878 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = F60ADC6495BAB5AA38B38FB383B7EECD8E5D87BF4B034312F8DDBA58D59E5CFE6325CFDD35CF13EB6C7B + +Count = 879 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 4F48371B6AF752A8C631742E72BC51EB8419B7B8E4387EC13079E0A2EFCDE91C4FB98266B89D07DCCAAA + +Count = 880 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = 89BDEA40E36A9D39A59DFE6697D508975CEA58823414029D2D2FA528DFAAF4EE0E6F281C1738547D4F28 + +Count = 881 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = 2021C84BC884DC665C3243C822952297A2066F8CF5BA4380AA50217869CCC28896DD475A37C15C42CD6E + +Count = 882 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 20F20FF1674EC0DF8A55CE234064C610D1775EEA5A9796581894AA1C243A9FF21A9B55E6E73068B5CC6D + +Count = 883 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = 4F7CC6B92F63AA2AB8907B52C0998D4CD047B8AE5B46DD1428F13ED20A5018C2E65D1DB3B07C96D4BF4B + +Count = 884 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 6034C839C70E77FC0FCED7C7D75B238F4334B925CB43D48853128BD97F766CDE4030F95CB85AAC3CD033 + +Count = 885 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = 5E427A3A599AB5CF74AFEBB4E555C69E60F505422E4342BB03CBA9CD930B5A56BB28AC72EAA69A5FA40A + +Count = 886 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 0005A3730F2091FDA3602E158EBEE93241228374B8C0384BA9ED3E4D8F71EE60BD42701B022798D4A509 + +Count = 887 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = B2B2A81D5FB5EA292C0812FCD919233934AB155C12FBABD855BB722A205425D3292B5C3BC67D88B606E8 + +Count = 888 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = D96C09271C1D9557D43B72998E41E2D9DF5A44FAABEFC956B4A940D935BE9E1865D5FC3BDCC07F79CF75 + +Count = 889 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 5F5143FA55E240F9571656B9823639F437C859B1D0B5FE4256A9E017923F7C88E091173DA0674EF60CB9 + +Count = 890 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = 047BDBAEF519DCC4E65A5DCD7E0C16873A30456EEBD26AD5B0152C2BF2423B25C7879B9CCCC2ACD8ACB3 + +Count = 891 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 1A9B58442BBD18F7F5EA1B1D243BE2277D08ABAB0A47AC4AB1132409D07819A014227CE89FD9905B3E13 + +Count = 892 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = +CT = DE27B3C1B43A54C25A724A5F57FC59B59185E2EF4B687C6D4B4CA62D01C2BF892CACF3FAE10F46C412A0CE + +Count = 893 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 00 +CT = 998D7701C14BB41DBA91A240DA82606BABF178C9DD868D5A136E17A7482AFB7E5283781A013957B0AA62FF + +Count = 894 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 0001 +CT = 51E3F26591E3BE66E2C31CBDD5BF8CD58B6B86C0EB342516F0063912DE108B2103EFE2963AF9014E193D6A + +Count = 895 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102 +CT = 255ED813C6C9E79E1107AD13AC89CB0464C6F5552762C9676392B47857F9456F9F0D6D90D26CE959EA3EF8 + +Count = 896 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 00010203 +CT = 2BB84CB90B56B23C16EA9185A8C3295775EA072BAF4B1A6A1966002EB430294E55BBA1F49F3B1BEA8EEA38 + +Count = 897 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 0001020304 +CT = CAB056AA88F110F7178FA1C075813704BEB21AFBAD02DEE10A8E0088E94AA281A04917D1B97461B796D094 + +Count = 898 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405 +CT = 85FF40FCBFEB16F5AC3B7FEAAAB7C01ADA725607C49E694F0D587F213D8336970A2E6F09CD481912067CB5 + +Count = 899 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 00010203040506 +CT = 37466ECBEF0CF6C9987924AC51E05E0DC726432BBE6E9B272649BC0DCAE9BA723B1CA497F81F5017A4D986 + +Count = 900 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 0001020304050607 +CT = 066D386BDC3BFDE56B07782DF9F784B30B60770C55B83A6DA5289859E4320310550D9E011213746A61D7FC + +Count = 901 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708 +CT = EE35C5ECBEB4F721F4F3F18F7254768B89BDE74746FE757D2F63D8A7D7EF7772022B3E1D06617DA9671E55 + +Count = 902 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 00010203040506070809 +CT = 252EA99EE58EE9DD9FA2DF9E896C85F5E30F98D4BB9421C410FC0F7A1828F1EFE6652F0774E910A67E0E75 + +Count = 903 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A +CT = B0C179AC69E8583FD66B5C00368D4DBD93157CF52B9376E2FC3007046D7D88191C4829265FD03EED607792 + +Count = 904 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B +CT = 73F5083A228D1FA45045563C2008A4E1B5F91C58B6698AAAEFCDBC5931DFB2F754BC85115B557A43EE6192 + +Count = 905 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C +CT = 41AAA97377B39758FE9E8606E64416BE91895E95CDAEB22E964550BEF80E49A27CA456A016F50B16DB39B8 + +Count = 906 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C0D +CT = 1A926838E49E79330E6AFB76A7B149093C726A9906360B1D6182A419456461E3815E0923375E9A52994C2F + +Count = 907 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C0D0E +CT = 39D9906849736AFEE9B9EC5851CBBFBF1305686B8BFED99F6DB728F4C7A3471421792DA24E33A87232C475 + +Count = 908 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C0D0E0F +CT = 95A9CC016DB1D54668CCA0DC7BC644852CB7A83E03EA8CBA8F452A45838F01F48CBDD8EF862D27C6E05721 + +Count = 909 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 307824FCBD38D152551DC44E16D56BC8A620717FA130914E70D00FE55F9107771B7ADA3884F28E7A494EB4 + +Count = 910 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 86B3B4DCA59E277541E95D63AF66CFA2B1C7A546D0D47D942C8E73C35CF705AAA338334080E10A08F90DFB + +Count = 911 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = F60ADC6495BAB5AA38B38FB383B7EECD8E5D87BF4B034312F8DD61D0AE8BA643533D849A5400DFAE72D5A0 + +Count = 912 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 4F48371B6AF752A8C631742E72BC51EB8419B7B8E4387EC130796C3215DB5BEE8DA029B57913986ECD56B8 + +Count = 913 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = 89BDEA40E36A9D39A59DFE6697D508975CEA58823414029D2D2F4A99DCB3B31F94547EA0CBA0C5BA0DCBE9 + +Count = 914 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = 2021C84BC884DC665C3243C822952297A2066F8CF5BA4380AA50A94E589E6BD9337B26E8FE35FD9E1A682F + +Count = 915 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 20F20FF1674EC0DF8A55CE234064C610D1775EEA5A97965818941DAA39C0F23D0E274A990DFBA33EAF69A0 + +Count = 916 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = 4F7CC6B92F63AA2AB8907B52C0998D4CD047B8AE5B46DD1428F1215E0375021B087D683DA3440A707A1621 + +Count = 917 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 6034C839C70E77FC0FCED7C7D75B238F4334B925CB43D4885312147B455C85DE1F68D14F0E1F390D2DBAF7 + +Count = 918 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = 5E427A3A599AB5CF74AFEBB4E555C69E60F505422E4342BB03CBD0ECE83D92044430395F220BA51C71ECAC + +Count = 919 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 0005A3730F2091FDA3602E158EBEE93241228374B8C0384BA9EDD9EB62D6E6339A4B24DA0E35E130737441 + +Count = 920 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = B2B2A81D5FB5EA292C0812FCD919233934AB155C12FBABD855BB8ACEEE90F9D19B1D3577EE799E517190CA + +Count = 921 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = D96C09271C1D9557D43B72998E41E2D9DF5A44FAABEFC956B4A9D1DF20ABB708E9054A0677C19E1291C694 + +Count = 922 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 5F5143FA55E240F9571656B9823639F437C859B1D0B5FE4256A93001054D72B0F9E006C7F45D1202D8ADD3 + +Count = 923 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = 047BDBAEF519DCC4E65A5DCD7E0C16873A30456EEBD26AD5B0159C7C01227A6708152CD85614B42C0A164A + +Count = 924 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 1A9B58442BBD18F7F5EA1B1D243BE2277D08ABAB0A47AC4AB1138630E220CABB4E5585F512DC7870EE60C3 + +Count = 925 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = +CT = DE27B3C1B43A54C25A724A5F57FC59B59185E2EF4B687C6D4B4CA67E0E30207C5BA3578B1B6A16FA9C13714E + +Count = 926 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 00 +CT = 998D7701C14BB41DBA91A240DA82606BABF178C9DD868D5A136E17D91AFE6A65DBE6B79470271F38824DCC3B + +Count = 927 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 0001 +CT = 51E3F26591E3BE66E2C31CBDD5BF8CD58B6B86C0EB342516F00639A5C17BCA428F4309B31FB28F4CA224123B + +Count = 928 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102 +CT = 255ED813C6C9E79E1107AD13AC89CB0464C6F5552762C9676392B48FBC3C39D7B0D620040552C91BFA95241A + +Count = 929 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 00010203 +CT = 2BB84CB90B56B23C16EA9185A8C3295775EA072BAF4B1A6A196600EC778CC1BF6F2BB52E6E77923671FE807E + +Count = 930 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 0001020304 +CT = CAB056AA88F110F7178FA1C075813704BEB21AFBAD02DEE10A8E0059133887F1DCC8149D2C808DD32475EBFE + +Count = 931 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405 +CT = 85FF40FCBFEB16F5AC3B7FEAAAB7C01ADA725607C49E694F0D587F9F8A43F540410ED9DA78A62BFF19FFD54A + +Count = 932 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 00010203040506 +CT = 37466ECBEF0CF6C9987924AC51E05E0DC726432BBE6E9B272649BCAC36507D169E2A7386E88AEDEF2CF85BE3 + +Count = 933 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 0001020304050607 +CT = 066D386BDC3BFDE56B07782DF9F784B30B60770C55B83A6DA5289888021A78F5B773488567D97C75802E5023 + +Count = 934 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708 +CT = EE35C5ECBEB4F721F4F3F18F7254768B89BDE74746FE757D2F63D8DC51E70A25F34F002920EF1CD083DB5A6C + +Count = 935 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 00010203040506070809 +CT = 252EA99EE58EE9DD9FA2DF9E896C85F5E30F98D4BB9421C410FC0FE5C03BEF8662C1DCC17ABAA38A1FC65FE2 + +Count = 936 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A +CT = B0C179AC69E8583FD66B5C00368D4DBD93157CF52B9376E2FC3007B2F47236EAB23EA3F7C5522B2F80C24150 + +Count = 937 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B +CT = 73F5083A228D1FA45045563C2008A4E1B5F91C58B6698AAAEFCDBC5581D77AB23D3322AAFB07FEB207A3890A + +Count = 938 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C +CT = 41AAA97377B39758FE9E8606E64416BE91895E95CDAEB22E964550CF7ED4BBEFF592B131207683B75C2076B4 + +Count = 939 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C0D +CT = 1A926838E49E79330E6AFB76A7B149093C726A9906360B1D6182A410E783BE5F1B4FEAF899DB5E1C7DCF0928 + +Count = 940 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C0D0E +CT = 39D9906849736AFEE9B9EC5851CBBFBF1305686B8BFED99F6DB728DEDBAE87BA2F0EF6C9D0325377BDBA1B3A + +Count = 941 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C0D0E0F +CT = 95A9CC016DB1D54668CCA0DC7BC644852CB7A83E03EA8CBA8F452A8941DAA09F21E79423E3554E32CC025EE4 + +Count = 942 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 307824FCBD38D152551DC44E16D56BC8A620717FA130914E70D00FCD5E027D21B035DFC9C4FFF13EAC7DA236 + +Count = 943 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 86B3B4DCA59E277541E95D63AF66CFA2B1C7A546D0D47D942C8E730E0B86E912D11D58E92DA9BDC8D9CCC537 + +Count = 944 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = F60ADC6495BAB5AA38B38FB383B7EECD8E5D87BF4B034312F8DD617F33D94DB6E5970090DC17323AD94DF9AE + +Count = 945 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 4F48371B6AF752A8C631742E72BC51EB8419B7B8E4387EC130796CA6B018930DCE05B039F6ED9C161BCB6F5A + +Count = 946 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = 89BDEA40E36A9D39A59DFE6697D508975CEA58823414029D2D2F4A53DD29B295D9ABAE386C3D6048602EFC78 + +Count = 947 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = 2021C84BC884DC665C3243C822952297A2066F8CF5BA4380AA50A9828EF209CF303422A60D2618025DA5BD05 + +Count = 948 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 20F20FF1674EC0DF8A55CE234064C610D1775EEA5A97965818941DFA180012668CEA0FC43B851FF5C544ADBF + +Count = 949 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = 4F7CC6B92F63AA2AB8907B52C0998D4CD047B8AE5B46DD1428F1214D40AB9556C6FA8F2A93E23127E486A62E + +Count = 950 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 6034C839C70E77FC0FCED7C7D75B238F4334B925CB43D488531214E7739EC3A7E9B08F35F4CF7037E472B004 + +Count = 951 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = 5E427A3A599AB5CF74AFEBB4E555C69E60F505422E4342BB03CBD08E77B632E569EABA78EAF59D8BC4B719F9 + +Count = 952 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 0005A3730F2091FDA3602E158EBEE93241228374B8C0384BA9EDD94FF38302D70014C733CC226A2A2F45B05C + +Count = 953 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = B2B2A81D5FB5EA292C0812FCD919233934AB155C12FBABD855BB8AE7ED64BE35D90DA37AA37DF82EDE36DA56 + +Count = 954 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = D96C09271C1D9557D43B72998E41E2D9DF5A44FAABEFC956B4A9D115D043045FA26DB875D3CC138D70309E12 + +Count = 955 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 5F5143FA55E240F9571656B9823639F437C859B1D0B5FE4256A9306F7F08DCC004E1124766E0DCDC3F444FDA + +Count = 956 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = 047BDBAEF519DCC4E65A5DCD7E0C16873A30456EEBD26AD5B0159C4FC14B3C8ABA177E3D7858BF46965CAD31 + +Count = 957 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 1A9B58442BBD18F7F5EA1B1D243BE2277D08ABAB0A47AC4AB11386BBE143538367F6E20F9AF324B314C8BC92 + +Count = 958 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = +CT = DE27B3C1B43A54C25A724A5F57FC59B59185E2EF4B687C6D4B4CA67EEA8F5FEFEEBECC2C87B6D20D286E57200F + +Count = 959 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 00 +CT = 998D7701C14BB41DBA91A240DA82606BABF178C9DD868D5A136E17D9784CFD928F8FAAD4E353571B3C02B8A5D0 + +Count = 960 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 0001 +CT = 51E3F26591E3BE66E2C31CBDD5BF8CD58B6B86C0EB342516F00639A58CF56F4D25C025AC43753B57A780915894 + +Count = 961 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102 +CT = 255ED813C6C9E79E1107AD13AC89CB0464C6F5552762C9676392B48FC3FE92BDB4610C0CDF49816FAC3DD6B104 + +Count = 962 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 00010203 +CT = 2BB84CB90B56B23C16EA9185A8C3295775EA072BAF4B1A6A196600EC21843978418FA934A5A04EBCA369475BB8 + +Count = 963 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 0001020304 +CT = CAB056AA88F110F7178FA1C075813704BEB21AFBAD02DEE10A8E0059D8B90A23893857939E99BE953D86486E5A + +Count = 964 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405 +CT = 85FF40FCBFEB16F5AC3B7FEAAAB7C01ADA725607C49E694F0D587F9F97596FF51A4CA0DF5E2B316EA9FE58F0CE + +Count = 965 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 00010203040506 +CT = 37466ECBEF0CF6C9987924AC51E05E0DC726432BBE6E9B272649BCAC84F9E05C5FBB63ECF627B6C01D61F5081A + +Count = 966 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 0001020304050607 +CT = 066D386BDC3BFDE56B07782DF9F784B30B60770C55B83A6DA5289888833D861C9D4597FEA74AAF3B5BB57A0F1D + +Count = 967 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708 +CT = EE35C5ECBEB4F721F4F3F18F7254768B89BDE74746FE757D2F63D8DC693F822191C747E17507F46CB00CD73D8C + +Count = 968 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 00010203040506070809 +CT = 252EA99EE58EE9DD9FA2DF9E896C85F5E30F98D4BB9421C410FC0FE53069818EA777F2BC835FE5220E8BD6A66A + +Count = 969 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A +CT = B0C179AC69E8583FD66B5C00368D4DBD93157CF52B9376E2FC3007B2E17F56A87D5B3BEDC9A794F34391097808 + +Count = 970 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B +CT = 73F5083A228D1FA45045563C2008A4E1B5F91C58B6698AAAEFCDBC5505D83BEB1384AF00A9FCF7CA27CF873236 + +Count = 971 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C +CT = 41AAA97377B39758FE9E8606E64416BE91895E95CDAEB22E964550CF4D345976E4D5A483045D3EE40F10A9E550 + +Count = 972 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C0D +CT = 1A926838E49E79330E6AFB76A7B149093C726A9906360B1D6182A4102F06691BA2FBB55B91FFB34D1E27447998 + +Count = 973 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C0D0E +CT = 39D9906849736AFEE9B9EC5851CBBFBF1305686B8BFED99F6DB728DEEB23A4853362402096CEF71EF2E6AFBAAE + +Count = 974 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C0D0E0F +CT = 95A9CC016DB1D54668CCA0DC7BC644852CB7A83E03EA8CBA8F452A89DC162186848021E29268C16C5DD589F976 + +Count = 975 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 307824FCBD38D152551DC44E16D56BC8A620717FA130914E70D00FCD7F29FFE78650C0ECA34862E53C481330EB + +Count = 976 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 86B3B4DCA59E277541E95D63AF66CFA2B1C7A546D0D47D942C8E730EF55FAAAA7060F50496229256BC08C5C0F3 + +Count = 977 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = F60ADC6495BAB5AA38B38FB383B7EECD8E5D87BF4B034312F8DD617F1D04EB5FCD29884C31810D6CDA0456B878 + +Count = 978 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 4F48371B6AF752A8C631742E72BC51EB8419B7B8E4387EC130796CA6627A7640FCBA4F0291BA8C5678C958C727 + +Count = 979 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = 89BDEA40E36A9D39A59DFE6697D508975CEA58823414029D2D2F4A53511F454C26989B6E1709C54B08DD460DBC + +Count = 980 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = 2021C84BC884DC665C3243C822952297A2066F8CF5BA4380AA50A98244C0429FE55C4BF0A2E04CC85E2299BDFE + +Count = 981 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 20F20FF1674EC0DF8A55CE234064C610D1775EEA5A97965818941DFAAEDD02DDAC6C6AA9E7476617C7B3ED9385 + +Count = 982 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = 4F7CC6B92F63AA2AB8907B52C0998D4CD047B8AE5B46DD1428F1214D34C9139E4CCB0FB035204B6D6CE6C6AFFA + +Count = 983 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 6034C839C70E77FC0FCED7C7D75B238F4334B925CB43D488531214E7870341C92644A360694C89A771E193B5A3 + +Count = 984 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = 5E427A3A599AB5CF74AFEBB4E555C69E60F505422E4342BB03CBD08E6B6846B91D5F7401C58DEA06B0FFF34A6F + +Count = 985 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 0005A3730F2091FDA3602E158EBEE93241228374B8C0384BA9EDD94FC3A612627EBD881F80971F7C8AF0AF25A1 + +Count = 986 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = B2B2A81D5FB5EA292C0812FCD919233934AB155C12FBABD855BB8AE7250C94D7037DB9594EC6E4E4898C7A9FD6 + +Count = 987 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = D96C09271C1D9557D43B72998E41E2D9DF5A44FAABEFC956B4A9D115E061058CC9D37543D5EF0D44E5E0526EC0 + +Count = 988 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 5F5143FA55E240F9571656B9823639F437C859B1D0B5FE4256A9306FED8A9C478CE2A737C2BAD99CC472372134 + +Count = 989 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = 047BDBAEF519DCC4E65A5DCD7E0C16873A30456EEBD26AD5B0159C4F5703CFCFF5D3EE762B13FC6343029658BF + +Count = 990 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 1A9B58442BBD18F7F5EA1B1D243BE2277D08ABAB0A47AC4AB11386BBDCA56D751579E326047725FE5FF7C20BC8 + +Count = 991 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = +CT = DE27B3C1B43A54C25A724A5F57FC59B59185E2EF4B687C6D4B4CA67EEAD2BB8D82902B17A349C36631BB610CAC33 + +Count = 992 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 00 +CT = 998D7701C14BB41DBA91A240DA82606BABF178C9DD868D5A136E17D978EE4C9C5356C3CD0D7B6CB063D481E2B4D6 + +Count = 993 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 0001 +CT = 51E3F26591E3BE66E2C31CBDD5BF8CD58B6B86C0EB342516F00639A58C4329540F8C93C0B968D91F4CEF2FF0FAD6 + +Count = 994 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102 +CT = 255ED813C6C9E79E1107AD13AC89CB0464C6F5552762C9676392B48FC32CB5CFFEF5D3E8D2DE965CD6E162D60EA5 + +Count = 995 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 00010203 +CT = 2BB84CB90B56B23C16EA9185A8C3295775EA072BAF4B1A6A196600EC2193A13213BFD5EA456E10C707C39050158D + +Count = 996 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 0001020304 +CT = CAB056AA88F110F7178FA1C075813704BEB21AFBAD02DEE10A8E0059D800381738A6B5C851A24B39C6C52816B408 + +Count = 997 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405 +CT = 85FF40FCBFEB16F5AC3B7FEAAAB7C01ADA725607C49E694F0D587F9F97902FA024EA9CFC6199E760665C937A093B + +Count = 998 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 00010203040506 +CT = 37466ECBEF0CF6C9987924AC51E05E0DC726432BBE6E9B272649BCAC84153ECF688C4D783E8A00DAA3FD93DCDE36 + +Count = 999 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 0001020304050607 +CT = 066D386BDC3BFDE56B07782DF9F784B30B60770C55B83A6DA5289888831D135D17DA914104B915707C6C409E309D + +Count = 1000 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708 +CT = EE35C5ECBEB4F721F4F3F18F7254768B89BDE74746FE757D2F63D8DC6903B229E6D0E14304D8848A78D193E3DE2F + +Count = 1001 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 00010203040506070809 +CT = 252EA99EE58EE9DD9FA2DF9E896C85F5E30F98D4BB9421C410FC0FE530E5A79282F8819B722221CA7C818107BBE6 + +Count = 1002 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A +CT = B0C179AC69E8583FD66B5C00368D4DBD93157CF52B9376E2FC3007B2E1140A20A80437DC114DF162FEDA53664894 + +Count = 1003 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B +CT = 73F5083A228D1FA45045563C2008A4E1B5F91C58B6698AAAEFCDBC5505DB64117965291AF1E6DA80AC51C3A0EAA0 + +Count = 1004 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C +CT = 41AAA97377B39758FE9E8606E64416BE91895E95CDAEB22E964550CF4D4E965D476AB53AD9AAB54A81282FD42EEB + +Count = 1005 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C0D +CT = 1A926838E49E79330E6AFB76A7B149093C726A9906360B1D6182A4102FDEB0231EF80369F2B52CCEEC6A75F4DD25 + +Count = 1006 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C0D0E +CT = 39D9906849736AFEE9B9EC5851CBBFBF1305686B8BFED99F6DB728DEEBD3203FD2A2A608477F33EB433F75607A73 + +Count = 1007 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C0D0E0F +CT = 95A9CC016DB1D54668CCA0DC7BC644852CB7A83E03EA8CBA8F452A89DC3E3378F20E773C2A1167BE48CA9EAB78AF + +Count = 1008 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 307824FCBD38D152551DC44E16D56BC8A620717FA130914E70D00FCD7F2DCE588390F8125A4B552B36AC566D8B2E + +Count = 1009 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 86B3B4DCA59E277541E95D63AF66CFA2B1C7A546D0D47D942C8E730EF5284541F4BA7AD1747AB88A86D830727032 + +Count = 1010 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = F60ADC6495BAB5AA38B38FB383B7EECD8E5D87BF4B034312F8DD617F1DC54FEFB98634D815D255DBEB6141F7C2D0 + +Count = 1011 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 4F48371B6AF752A8C631742E72BC51EB8419B7B8E4387EC130796CA662BBDFEB6EDA39BC609FE20C6730002FE494 + +Count = 1012 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = 89BDEA40E36A9D39A59DFE6697D508975CEA58823414029D2D2F4A53516966AEF02E97815B67FB2F42CB31DBA6F9 + +Count = 1013 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = 2021C84BC884DC665C3243C822952297A2066F8CF5BA4380AA50A9824416747EBFE01F19402A06CC9144B1A801A4 + +Count = 1014 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 20F20FF1674EC0DF8A55CE234064C610D1775EEA5A97965818941DFAAE62C32778975109B7CA3759370095745CE2 + +Count = 1015 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = 4F7CC6B92F63AA2AB8907B52C0998D4CD047B8AE5B46DD1428F1214D34AD65BD0075156E4C92628A8572ECE8DF24 + +Count = 1016 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 6034C839C70E77FC0FCED7C7D75B238F4334B925CB43D488531214E787B4022D38DAB650E34DEECF35136102B64E + +Count = 1017 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = 5E427A3A599AB5CF74AFEBB4E555C69E60F505422E4342BB03CBD08E6B425FD89147A7082BB6CFBB5E70AD557D82 + +Count = 1018 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 0005A3730F2091FDA3602E158EBEE93241228374B8C0384BA9EDD94FC39FF3CD39F6DA939F75AD8BBA2C1698C508 + +Count = 1019 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = B2B2A81D5FB5EA292C0812FCD919233934AB155C12FBABD855BB8AE7255497C59322424D9426874DEC92B05D8EA3 + +Count = 1020 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = D96C09271C1D9557D43B72998E41E2D9DF5A44FAABEFC956B4A9D115E08DC49EEFB0DEFA1DB4C26EE4B38EF43405 + +Count = 1021 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 5F5143FA55E240F9571656B9823639F437C859B1D0B5FE4256A9306FEDF5AA7F8DBF1CF54B4898CAE46680967F85 + +Count = 1022 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = 047BDBAEF519DCC4E65A5DCD7E0C16873A30456EEBD26AD5B0159C4F57452D649671DB6D7653001F0947AC37A379 + +Count = 1023 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 1A9B58442BBD18F7F5EA1B1D243BE2277D08ABAB0A47AC4AB11386BBDCADF86130FA70E67BEC99AA0C4886D7345E + +Count = 1024 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = +CT = DE27B3C1B43A54C25A724A5F57FC59B59185E2EF4B687C6D4B4CA67EEAD2DA65B30B0ACCC36BA960737D163B806D32 + +Count = 1025 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 00 +CT = 998D7701C14BB41DBA91A240DA82606BABF178C9DD868D5A136E17D978EE8E794C41A8DE1B20508CE7B64F5187AF6C + +Count = 1026 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 0001 +CT = 51E3F26591E3BE66E2C31CBDD5BF8CD58B6B86C0EB342516F00639A58C4355EA18D0EB3E50D916490B645BF4377CF8 + +Count = 1027 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102 +CT = 255ED813C6C9E79E1107AD13AC89CB0464C6F5552762C9676392B48FC32CD4BD49E28AC474CA58BD4BE4768E1C34AA + +Count = 1028 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 00010203 +CT = 2BB84CB90B56B23C16EA9185A8C3295775EA072BAF4B1A6A196600EC219387FA708F7B2377916F06E6936A18FCA2C9 + +Count = 1029 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 0001020304 +CT = CAB056AA88F110F7178FA1C075813704BEB21AFBAD02DEE10A8E0059D8000098B446EEA2809D410953FE57090F1A8B + +Count = 1030 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405 +CT = 85FF40FCBFEB16F5AC3B7FEAAAB7C01ADA725607C49E694F0D587F9F979080D45CEACB2036D0CA7E8D042BD338C5E5 + +Count = 1031 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 00010203040506 +CT = 37466ECBEF0CF6C9987924AC51E05E0DC726432BBE6E9B272649BCAC84157505BA51FCF1DFA37DF0D8053CAD4CBFD5 + +Count = 1032 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 0001020304050607 +CT = 066D386BDC3BFDE56B07782DF9F784B30B60770C55B83A6DA5289888831D952ACF345C7E72D4EAD3190AAC6115D83E + +Count = 1033 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708 +CT = EE35C5ECBEB4F721F4F3F18F7254768B89BDE74746FE757D2F63D8DC6903782ED369A39CF024FE12947416C9FF25C0 + +Count = 1034 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 00010203040506070809 +CT = 252EA99EE58EE9DD9FA2DF9E896C85F5E30F98D4BB9421C410FC0FE530E5ECE480C33EE9B7F16FFBB923B19725E889 + +Count = 1035 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A +CT = B0C179AC69E8583FD66B5C00368D4DBD93157CF52B9376E2FC3007B2E1142588040EB00A8366154556D6877147DF32 + +Count = 1036 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B +CT = 73F5083A228D1FA45045563C2008A4E1B5F91C58B6698AAAEFCDBC5505DB54EA9C5599089A90A6E10FA497ECC5E61D + +Count = 1037 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C +CT = 41AAA97377B39758FE9E8606E64416BE91895E95CDAEB22E964550CF4D4E87543FDC15DFBDC7A86E083B59252D07D8 + +Count = 1038 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C0D +CT = 1A926838E49E79330E6AFB76A7B149093C726A9906360B1D6182A4102FDED3EC0CD39D474C58FF7B92EFCEA2C50E14 + +Count = 1039 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C0D0E +CT = 39D9906849736AFEE9B9EC5851CBBFBF1305686B8BFED99F6DB728DEEBD3B48FD77CF9BD3F0F930D252FB3914E6859 + +Count = 1040 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C0D0E0F +CT = 95A9CC016DB1D54668CCA0DC7BC644852CB7A83E03EA8CBA8F452A89DC3ED349788B6873856FBDDA6348F6159642D4 + +Count = 1041 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 307824FCBD38D152551DC44E16D56BC8A620717FA130914E70D00FCD7F2D46227AD14380B2A7F2B36E50176FABD906 + +Count = 1042 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 86B3B4DCA59E277541E95D63AF66CFA2B1C7A546D0D47D942C8E730EF528D49E4815BBA3EE34515F6224500C14CEF0 + +Count = 1043 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = F60ADC6495BAB5AA38B38FB383B7EECD8E5D87BF4B034312F8DD617F1DC5F2A83631EAB14C3B6109DD81C1FB1407E0 + +Count = 1044 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 4F48371B6AF752A8C631742E72BC51EB8419B7B8E4387EC130796CA662BB39C299BCFD54C029011B5A16CD048492B7 + +Count = 1045 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = 89BDEA40E36A9D39A59DFE6697D508975CEA58823414029D2D2F4A53516981FCE35C000BDF7A6EDAA661BF433D314D + +Count = 1046 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = 2021C84BC884DC665C3243C822952297A2066F8CF5BA4380AA50A98244165C9432824F03A7C18BFFC987D76BA56D78 + +Count = 1047 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 20F20FF1674EC0DF8A55CE234064C610D1775EEA5A97965818941DFAAE628A43321D3FAB966B3264AE16C757624FF6 + +Count = 1048 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = 4F7CC6B92F63AA2AB8907B52C0998D4CD047B8AE5B46DD1428F1214D34AD9F0F6F924971B9FBD97EC664D9C17C001C + +Count = 1049 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 6034C839C70E77FC0FCED7C7D75B238F4334B925CB43D488531214E787B4787CAD13067F6440FC2163B4C8897BDF58 + +Count = 1050 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = 5E427A3A599AB5CF74AFEBB4E555C69E60F505422E4342BB03CBD08E6B42824863E866072B25D20BFFA832A5EE5C1B + +Count = 1051 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 0005A3730F2091FDA3602E158EBEE93241228374B8C0384BA9EDD94FC39F216C77B8320EFF6C64C73F98CE9B1A68B4 + +Count = 1052 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = B2B2A81D5FB5EA292C0812FCD919233934AB155C12FBABD855BB8AE72554E69D0AEF2CEBFC058BB810316B9329537C + +Count = 1053 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = D96C09271C1D9557D43B72998E41E2D9DF5A44FAABEFC956B4A9D115E08D8A0E1257B2F4BA89ED6A5F6300C734EBCC + +Count = 1054 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 5F5143FA55E240F9571656B9823639F437C859B1D0B5FE4256A9306FEDF5FEB173F52B2FFEC68DF5E3F90614E20791 + +Count = 1055 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = 047BDBAEF519DCC4E65A5DCD7E0C16873A30456EEBD26AD5B0159C4F57453552B415F5AC8BB6B5DBA37F3AFA99CAC4 + +Count = 1056 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 1A9B58442BBD18F7F5EA1B1D243BE2277D08ABAB0A47AC4AB11386BBDCADA00B43508E0187446F06C8AC54CB2D9700 + +Count = 1057 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = +CT = DE27B3C1B43A54C25A724A5F57FC59B59185E2EF4B687C6D4B4CA67EEAD2DAE240737EB5F63221B6B5BA8C1AF1B567F2 + +Count = 1058 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 00 +CT = 998D7701C14BB41DBA91A240DA82606BABF178C9DD868D5A136E17D978EE8EC26FEEA3B851F89609ED89DE2E13FC43AE + +Count = 1059 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 0001 +CT = 51E3F26591E3BE66E2C31CBDD5BF8CD58B6B86C0EB342516F00639A58C43559BF895C379AF7AE332DA52B4A9CAC9C426 + +Count = 1060 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102 +CT = 255ED813C6C9E79E1107AD13AC89CB0464C6F5552762C9676392B48FC32CD42695AF998569D9CF70C01F83A8322B42F6 + +Count = 1061 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 00010203 +CT = 2BB84CB90B56B23C16EA9185A8C3295775EA072BAF4B1A6A196600EC2193871EA51629161BEEED07C1AE88D7E95A571C + +Count = 1062 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 0001020304 +CT = CAB056AA88F110F7178FA1C075813704BEB21AFBAD02DEE10A8E0059D800006A1A036BCEC0BBC71B52E35AEAA1B2C591 + +Count = 1063 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405 +CT = 85FF40FCBFEB16F5AC3B7FEAAAB7C01ADA725607C49E694F0D587F9F979080C9B6CDC4E53A8C638CC43C359D6EF6A0EE + +Count = 1064 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 00010203040506 +CT = 37466ECBEF0CF6C9987924AC51E05E0DC726432BBE6E9B272649BCAC841575588CBC74B6FCC33DC3256D51D269292563 + +Count = 1065 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 0001020304050607 +CT = 066D386BDC3BFDE56B07782DF9F784B30B60770C55B83A6DA5289888831D95AD156817A8DDFCC167CD1499D1DEF08690 + +Count = 1066 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708 +CT = EE35C5ECBEB4F721F4F3F18F7254768B89BDE74746FE757D2F63D8DC6903786A526A2A7799B1272598709B0DDFAE05E4 + +Count = 1067 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 00010203040506070809 +CT = 252EA99EE58EE9DD9FA2DF9E896C85F5E30F98D4BB9421C410FC0FE530E5ECC110D50F5164BC42BEE3CDAE48CE7B049A + +Count = 1068 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A +CT = B0C179AC69E8583FD66B5C00368D4DBD93157CF52B9376E2FC3007B2E11425F23ADB09B4C2183265025169987A7A8B7C + +Count = 1069 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B +CT = 73F5083A228D1FA45045563C2008A4E1B5F91C58B6698AAAEFCDBC5505DB545887519DAE89FDB7F6CF7A2244163777AB + +Count = 1070 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C +CT = 41AAA97377B39758FE9E8606E64416BE91895E95CDAEB22E964550CF4D4E879D0C3DCB42177F0D628543E554B0E3B691 + +Count = 1071 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C0D +CT = 1A926838E49E79330E6AFB76A7B149093C726A9906360B1D6182A4102FDED39BD4F91C303CE514D60A08637527357AA7 + +Count = 1072 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C0D0E +CT = 39D9906849736AFEE9B9EC5851CBBFBF1305686B8BFED99F6DB728DEEBD3B4C38ECB948A7FA6ECDC5012BC2714DC8255 + +Count = 1073 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C0D0E0F +CT = 95A9CC016DB1D54668CCA0DC7BC644852CB7A83E03EA8CBA8F452A89DC3ED33A6569265FEC0A693AFEF3C34E61B3D90E + +Count = 1074 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 307824FCBD38D152551DC44E16D56BC8A620717FA130914E70D00FCD7F2D464585D288467EDAE6815507237DCF62DE99 + +Count = 1075 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 86B3B4DCA59E277541E95D63AF66CFA2B1C7A546D0D47D942C8E730EF528D4B2B8570A516A70075EE50AAE067B183221 + +Count = 1076 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = F60ADC6495BAB5AA38B38FB383B7EECD8E5D87BF4B034312F8DD617F1DC5F2A9C09012D04660D249A6557A79BA6594B8 + +Count = 1077 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 4F48371B6AF752A8C631742E72BC51EB8419B7B8E4387EC130796CA662BB396967249FF5EBF75DB1848564F6953533E1 + +Count = 1078 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = 89BDEA40E36A9D39A59DFE6697D508975CEA58823414029D2D2F4A5351698111B98529EEAFF7E0BD1D41D496CBA99249 + +Count = 1079 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = 2021C84BC884DC665C3243C822952297A2066F8CF5BA4380AA50A98244165C60762DAF943C8621229A87EDAFF317AD3D + +Count = 1080 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 20F20FF1674EC0DF8A55CE234064C610D1775EEA5A97965818941DFAAE628AC0F573A56C4C6B3A1E0F00990BC43CAF64 + +Count = 1081 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = 4F7CC6B92F63AA2AB8907B52C0998D4CD047B8AE5B46DD1428F1214D34AD9F6168DCAF706905F39F4C51C6C3B8D8BB3D + +Count = 1082 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 6034C839C70E77FC0FCED7C7D75B238F4334B925CB43D488531214E787B478268D9DD797F94A6C15657463044BDEF47D + +Count = 1083 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = 5E427A3A599AB5CF74AFEBB4E555C69E60F505422E4342BB03CBD08E6B4282207CDC3D532369A7024A8CCF3BDCA4AD05 + +Count = 1084 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 0005A3730F2091FDA3602E158EBEE93241228374B8C0384BA9EDD94FC39F2183F5B9DAB76BF2357367ED21BE8C835E0C + +Count = 1085 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = B2B2A81D5FB5EA292C0812FCD919233934AB155C12FBABD855BB8AE72554E60CC3730EE1CCF20311132999544635B374 + +Count = 1086 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = D96C09271C1D9557D43B72998E41E2D9DF5A44FAABEFC956B4A9D115E08D8AC92CE5670A2CCBD2259AB93E7D43D39EB7 + +Count = 1087 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 5F5143FA55E240F9571656B9823639F437C859B1D0B5FE4256A9306FEDF5FEF4DB7932F49C4D2F67B002E0ADCE86B66B + +Count = 1088 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = 047BDBAEF519DCC4E65A5DCD7E0C16873A30456EEBD26AD5B0159C4F574535D3E79D8569A7E17BF6FF7080DF6E947B12 + +Count = 1089 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 1A9B58442BBD18F7F5EA1B1D243BE2277D08ABAB0A47AC4AB11386BBDCADA04A47B9E1731E9679190165412401BD62AB + diff --git a/romulus/Implementations/crypto_aead/romulusn1+/armcortexm/api.h b/romulus/Implementations/crypto_aead/romulusn1+/armcortexm/api.h new file mode 100644 index 0000000..a4aa567 --- /dev/null +++ b/romulus/Implementations/crypto_aead/romulusn1+/armcortexm/api.h @@ -0,0 +1,5 @@ +#define CRYPTO_KEYBYTES 16 +#define CRYPTO_NSECBYTES 0 +#define CRYPTO_NPUBBYTES 16 +#define CRYPTO_ABYTES 16 +#define CRYPTO_NOOVERLAP 1 diff --git a/romulus/Implementations/crypto_aead/romulusn1+/armcortexm/crypto_aead.h b/romulus/Implementations/crypto_aead/romulusn1+/armcortexm/crypto_aead.h new file mode 100644 index 0000000..6f4ee42 --- /dev/null +++ b/romulus/Implementations/crypto_aead/romulusn1+/armcortexm/crypto_aead.h @@ -0,0 +1,13 @@ +//API required by the NIST for the LWC competition +int crypto_aead_encrypt(unsigned char *c, unsigned long long *clen, + const unsigned char *m, unsigned long long mlen, + const unsigned char *ad, unsigned long long adlen, + const unsigned char *nsec, const unsigned char *npub, + const unsigned char *k); + +//API required by the NIST for the LWC competition +int crypto_aead_decrypt(unsigned char *m, unsigned long long *outputmlen, + unsigned char *nsec, + const unsigned char *c, unsigned long long clen, + const unsigned char *ad, unsigned long long adlen, + const unsigned char *npub, const unsigned char *k); diff --git a/romulus/Implementations/crypto_aead/romulusn1+/armcortexm/encrypt.c b/romulus/Implementations/crypto_aead/romulusn1+/armcortexm/encrypt.c new file mode 100644 index 0000000..8b819f8 --- /dev/null +++ b/romulus/Implementations/crypto_aead/romulusn1+/armcortexm/encrypt.c @@ -0,0 +1,261 @@ +#include "skinny128.h" +#include "romulus.h" +#include + +//Encryption and authentication using Romulus-N1 +int crypto_aead_encrypt + (unsigned char *c, unsigned long long *clen, + const unsigned char *m, unsigned long long mlen, + const unsigned char *ad, unsigned long long adlen, + const unsigned char *nsec, + const unsigned char *npub, + const unsigned char *k) { + + u32 tmp; + skinny_128_384_tks tks; + u8 state[BLOCKBYTES], pad[BLOCKBYTES]; + (void)nsec; + + // ----------------- Initialization ----------------- + *clen = mlen + TAGBYTES; + memset(tks.tk1, 0x00, KEYBYTES); + memset(state, 0x00, BLOCKBYTES); + tks.tk1[0] = 0x01; // Init 56-bit LFSR counter + // ----------------- Initialization ----------------- + + // ----------------- Process the associated data ----------------- + if (adlen == 0) { // Handle the special case of no AD + UPDATE_CTR(tks.tk1); + SET_DOMAIN(tks, 0x1A); + tkschedule_lfsr(tks.rtk, npub, k, SKINNY128_384_ROUNDS); + tkschedule_perm(tks.rtk); + tkschedule_perm_tk1(tks.rtk1, tks.tk1); + skinny128_384(state, tks.rtk, state, tks.rtk1); + } else { // Process double blocks but the last + SET_DOMAIN(tks, 0x08); + while (adlen > 2*BLOCKBYTES) { + UPDATE_CTR(tks.tk1); + XOR_BLOCK(state, state, ad); + tkschedule_lfsr(tks.rtk, ad + BLOCKBYTES, k, SKINNY128_384_ROUNDS); + tkschedule_perm(tks.rtk); + tkschedule_perm_tk1(tks.rtk1, tks.tk1); + skinny128_384(state, tks.rtk, state, tks.rtk1); + UPDATE_CTR(tks.tk1); + ad += 2*BLOCKBYTES; + adlen -= 2*BLOCKBYTES; + } + // Pad and process the left-over blocks + UPDATE_CTR(tks.tk1); + if (adlen == 2*BLOCKBYTES) { // Left-over complete double block + XOR_BLOCK(state, state, ad); + tkschedule_lfsr(tks.rtk, ad + BLOCKBYTES, k, SKINNY128_384_ROUNDS); + tkschedule_perm(tks.rtk); + tkschedule_perm_tk1(tks.rtk1, tks.tk1); + skinny128_384(state, tks.rtk, state, tks.rtk1); + UPDATE_CTR(tks.tk1); + SET_DOMAIN(tks, 0x18); + } else if (adlen > BLOCKBYTES) { // Left-over partial double block + adlen -= BLOCKBYTES; + XOR_BLOCK(state, state, ad); + memcpy(pad, ad + BLOCKBYTES, adlen); + memset(pad + adlen, 0x00, 15 - adlen); + pad[15] = adlen; + tkschedule_lfsr(tks.rtk, pad, k, SKINNY128_384_ROUNDS); + tkschedule_perm(tks.rtk); + tkschedule_perm_tk1(tks.rtk1, tks.tk1); + skinny128_384(state, tks.rtk, state, tks.rtk1); + UPDATE_CTR(tks.tk1); + SET_DOMAIN(tks, 0x1A); + } else if (adlen == BLOCKBYTES) { // Left-over complete single block + XOR_BLOCK(state, state, ad); + SET_DOMAIN(tks, 0x18); + } else { // Left-over partial single block + for(int i = 0; i < (int)adlen; i++) + state[i] ^= ad[i]; + state[15] ^= adlen; // Padding + SET_DOMAIN(tks, 0x1A); + } + tkschedule_lfsr(tks.rtk, npub, k, SKINNY128_384_ROUNDS); + tkschedule_perm(tks.rtk); + tkschedule_perm_tk1(tks.rtk1, tks.tk1); + skinny128_384(state, tks.rtk, state, tks.rtk1); + } + // ----------------- Process the associated data ----------------- + + // ----------------- Process the plaintext ----------------- + memset(tks.tk1, 0x00, KEYBYTES/2); + tks.tk1[0] = 0x01; // Init the 56-bit LFSR counter + if (mlen == 0) { + UPDATE_CTR(tks.tk1); + SET_DOMAIN(tks, 0x15); + tkschedule_perm_tk1(tks.rtk1, tks.tk1); + skinny128_384(state, tks.rtk, state, tks.rtk1); + } else { // Process all blocks except the last + SET_DOMAIN(tks, 0x04); + while (mlen > BLOCKBYTES) { + RHO(state,c,m); + UPDATE_CTR(tks.tk1); + tkschedule_perm_tk1(tks.rtk1, tks.tk1); + skinny128_384(state, tks.rtk, state, tks.rtk1); + c += BLOCKBYTES; + m += BLOCKBYTES; + mlen -= BLOCKBYTES; + } + // Pad and process the last block + UPDATE_CTR(tks.tk1); + if (mlen < BLOCKBYTES) { // Last message single block is full + for(int i = 0; i < (int)mlen; i++) { + tmp = m[i]; // Use of tmp variable in case c = m + c[i] = m[i] ^ (state[i] >> 1) ^ (state[i] & 0x80) ^ (state[i] << 7); + state[i] ^= (u8)tmp; + } + state[15] ^= (u8)mlen; // Padding + SET_DOMAIN(tks, 0x15); + } else { // Last message single block is partial + RHO(state,c,m); + SET_DOMAIN(tks, 0x14); + } + tkschedule_perm_tk1(tks.rtk1, tks.tk1); + skinny128_384(state, tks.rtk, state, tks.rtk1); + c += mlen; + } + // ----------------- Process the plaintext ----------------- + + // ----------------- Generate the tag ----------------- + G(c,state); + // ----------------- Generate the tag ----------------- + + return 0; +} + + +//Decryption and tag verification using Romulus-N1 +int crypto_aead_decrypt + (unsigned char *m, unsigned long long *mlen, + unsigned char *nsec, + const unsigned char *c, unsigned long long clen, + const unsigned char *ad, unsigned long long adlen, + const unsigned char *npub, + const unsigned char *k) { + + u32 tmp; + skinny_128_384_tks tks; + u8 state[BLOCKBYTES], pad[BLOCKBYTES]; + (void)nsec; + + if (clen < TAGBYTES) + return -1; + + // ----------------- Initialization ----------------- + *mlen = clen - TAGBYTES; + memset(tks.tk1, 0x00, KEYBYTES); + memset(state, 0x00, BLOCKBYTES); + tks.tk1[0] = 0x01; // Init 56-bit LFSR counter + // ----------------- Initialization ----------------- + + // ----------------- Process the associated data ----------------- + if (adlen == 0) { // Handle the special case of no AD + UPDATE_CTR(tks.tk1); + SET_DOMAIN(tks, 0x1A); + tkschedule_lfsr(tks.rtk, npub, k, SKINNY128_384_ROUNDS); + tkschedule_perm(tks.rtk); + tkschedule_perm_tk1(tks.rtk1, tks.tk1); + skinny128_384(state, tks.rtk, state, tks.rtk1); + } else { // Process double blocks except the last + SET_DOMAIN(tks, 0x08); + while (adlen > 2*BLOCKBYTES) { + UPDATE_CTR(tks.tk1); + XOR_BLOCK(state, state, ad); + tkschedule_lfsr(tks.rtk, ad + BLOCKBYTES, k, SKINNY128_384_ROUNDS); + tkschedule_perm(tks.rtk); + tkschedule_perm_tk1(tks.rtk1, tks.tk1); + skinny128_384(state, tks.rtk, state, tks.rtk1); + UPDATE_CTR(tks.tk1); + ad += 2*BLOCKBYTES; + adlen -= 2*BLOCKBYTES; + } + // Pad and process the left-over blocks + UPDATE_CTR(tks.tk1); + if (adlen == 2*BLOCKBYTES) { // Left-over complete double block + XOR_BLOCK(state, state, ad); + tkschedule_lfsr(tks.rtk, ad + BLOCKBYTES, k, SKINNY128_384_ROUNDS); + tkschedule_perm(tks.rtk); + tkschedule_perm_tk1(tks.rtk1, tks.tk1); + skinny128_384(state, tks.rtk, state, tks.rtk1); + UPDATE_CTR(tks.tk1); + SET_DOMAIN(tks, 0x18); + } else if (adlen > BLOCKBYTES) { // Left-over partial double block + adlen -= BLOCKBYTES; + XOR_BLOCK(state, state, ad); + memcpy(pad, ad + BLOCKBYTES, adlen); + memset(pad + adlen, 0x00, 15 - adlen); + pad[15] = adlen; + tkschedule_lfsr(tks.rtk, pad, k, SKINNY128_384_ROUNDS); + tkschedule_perm(tks.rtk); + tkschedule_perm_tk1(tks.rtk1, tks.tk1); + skinny128_384(state, tks.rtk, state, tks.rtk1); + UPDATE_CTR(tks.tk1); + SET_DOMAIN(tks, 0x1A); + } else if (adlen == BLOCKBYTES) { // Left-over complete single block + XOR_BLOCK(state, state, ad); + SET_DOMAIN(tks, 0x18); + } else { // Left-over partial single block + for(int i = 0; i < (int)adlen; i++) + state[i] ^= ad[i]; + state[15] ^= adlen; // Padding + SET_DOMAIN(tks, 0x1A); + } + tkschedule_lfsr(tks.rtk, npub, k, SKINNY128_384_ROUNDS); + tkschedule_perm(tks.rtk); + tkschedule_perm_tk1(tks.rtk1, tks.tk1); + skinny128_384(state, tks.rtk, state, tks.rtk1); + } + // ----------------- Process the associated data ----------------- + + // ----------------- Process the ciphertext ----------------- + clen -= TAGBYTES; + memset(tks.tk1, 0x00, KEYBYTES/2); + tks.tk1[0] = 0x01; // Init the 56-bit LFSR counter + if (clen == 0) { + UPDATE_CTR(tks.tk1); + SET_DOMAIN(tks, 0x15); + tkschedule_perm_tk1(tks.rtk1, tks.tk1); + skinny128_384(state, tks.rtk, state, tks.rtk1); + } else { // Process all blocks except the last + SET_DOMAIN(tks, 0x04); + while (clen > BLOCKBYTES) { + RHO_INV(state,c,m); + UPDATE_CTR(tks.tk1); + tkschedule_perm_tk1(tks.rtk1, tks.tk1); + skinny128_384(state, tks.rtk, state, tks.rtk1); + c += BLOCKBYTES; + m += BLOCKBYTES; + clen -= BLOCKBYTES; + } + // Pad and process the last block + UPDATE_CTR(tks.tk1); + if (clen < BLOCKBYTES) { // Last message double block is partial + for(int i = 0; i < (int)clen; i++) { + m[i] = c[i] ^ (state[i] >> 1) ^ (state[i] & 0x80) ^ (state[i] << 7); + state[i] ^= m[i]; + } + state[15] ^= (u8)clen; // Padding + SET_DOMAIN(tks, 0x15); + } else { // Last message double block is full + RHO_INV(state,c,m); + SET_DOMAIN(tks, 0x14); + } + tkschedule_perm_tk1(tks.rtk1, tks.tk1); + skinny128_384(state, tks.rtk, state, tks.rtk1); + } + // ----------------- Process the plaintext ----------------- + + // ----------------- Generate and check the tag ----------------- + G(state,state); + tmp = 0; + for(int i = 0; i < TAGBYTES; i++) + tmp |= state[i] ^ c[clen+i]; // Constant-time tag comparison + // ----------------- Generate and check the tag ----------------- + + return tmp; +} \ No newline at end of file diff --git a/romulus/Implementations/crypto_aead/romulusn1+/armcortexm/romulus.h b/romulus/Implementations/crypto_aead/romulusn1+/armcortexm/romulus.h new file mode 100644 index 0000000..4c0e141 --- /dev/null +++ b/romulus/Implementations/crypto_aead/romulusn1+/armcortexm/romulus.h @@ -0,0 +1,68 @@ +#ifndef ROMULUSN1_H_ +#define ROMULUSN1_H_ + +#include "skinny128.h" + +typedef unsigned char u8; +typedef unsigned int u32; +typedef struct { + u8 tk1[16]; //to manipulate tk1 in a byte-wise manner + u32 rtk1[32]; //to avoid recomputation of the tk schedule + u32 rtk[4*SKINNY128_384_ROUNDS];//all round tweakeys +} skinny_128_384_tks; + +#define TAGBYTES 16 +#define KEYBYTES 16 +#define BLOCKBYTES 16 + +#define SET_DOMAIN(tks, domain) ((tks).tk1[7] = (domain)) + +//G as defined in the Romulus specification in a 32-bit word-wise manner +#define G(x,y) ({ \ + tmp = ((u32*)(y))[0]; \ + ((u32*)(x))[0] = (tmp >> 1 & 0x7f7f7f7f) ^ ((tmp ^ (tmp << 7)) & 0x80808080); \ + tmp = ((u32*)(y))[1]; \ + ((u32*)(x))[1] = (tmp >> 1 & 0x7f7f7f7f) ^ ((tmp ^ (tmp << 7)) & 0x80808080); \ + tmp = ((u32*)(y))[2]; \ + ((u32*)(x))[2] = (tmp >> 1 & 0x7f7f7f7f) ^ ((tmp ^ (tmp << 7)) & 0x80808080); \ + tmp = ((u32*)(y))[3]; \ + ((u32*)(x))[3] = (tmp >> 1 & 0x7f7f7f7f) ^ ((tmp ^ (tmp << 7)) & 0x80808080); \ +}) + +//update the counter in tk1 in a 32-bit word-wise manner +#define UPDATE_CTR(tk1) ({ \ + tmp = ((u32*)(tk1))[1]; \ + ((u32*)(tk1))[1] = (tmp << 1) & 0x00ffffff; \ + ((u32*)(tk1))[1] |= (((u32*)(tk1))[0] >> 31); \ + ((u32*)(tk1))[1] |= tmp & 0xff000000; \ + ((u32*)(tk1))[0] <<= 1; \ + if ((tmp >> 23) & 0x01) \ + ((u32*)(tk1))[0] ^= 0x95; \ +}) + +//x <- y ^ z for 128-bit blocks +#define XOR_BLOCK(x,y,z) ({ \ + ((u32*)(x))[0] = ((u32*)(y))[0] ^ ((u32*)(z))[0]; \ + ((u32*)(x))[1] = ((u32*)(y))[1] ^ ((u32*)(z))[1]; \ + ((u32*)(x))[2] = ((u32*)(y))[2] ^ ((u32*)(z))[2]; \ + ((u32*)(x))[3] = ((u32*)(y))[3] ^ ((u32*)(z))[3]; \ +}) + + +//Rho as defined in the Romulus specification +//use pad as a tmp variable in case y = z +#define RHO(x,y,z) ({ \ + G(pad,x); \ + XOR_BLOCK(y, pad, z); \ + XOR_BLOCK(x, x, z); \ +}) + +//Rho inverse as defined in the Romulus specification +//use pad as a tmp variable in case y = z +#define RHO_INV(x, y, z) ({ \ + G(pad, x); \ + XOR_BLOCK(z, pad, y); \ + XOR_BLOCK(x, x, z); \ +}) + +#endif // ROMULUSN1_H_ \ No newline at end of file diff --git a/romulus/Implementations/crypto_aead/romulusn1+/armcortexm/skinny128.h b/romulus/Implementations/crypto_aead/romulusn1+/armcortexm/skinny128.h new file mode 100644 index 0000000..7f53b7d --- /dev/null +++ b/romulus/Implementations/crypto_aead/romulusn1+/armcortexm/skinny128.h @@ -0,0 +1,15 @@ +#ifndef SKINNY128_H_ +#define SKINNY128_H_ + +typedef unsigned char u8; +typedef unsigned int u32; + +#define SKINNY128_384_ROUNDS 40 + +extern void skinny128_384(u8* ctext, const u32* tk, const u8* ptext, const u32* rtk1); +extern void tkschedule_lfsr(u32* rtk, const u8* tk2, const u8* tk3, const int rounds); +extern void tkschedule_perm(u32* rtk); +extern void tkschedule_perm_tk1(u32* rtk1, const u8* tk1); + + +#endif // SKINNY128_H_ \ No newline at end of file diff --git a/romulus/Implementations/crypto_aead/romulusn1+/armcortexm/skinny128.s b/romulus/Implementations/crypto_aead/romulusn1+/armcortexm/skinny128.s new file mode 100644 index 0000000..2f938a0 --- /dev/null +++ b/romulus/Implementations/crypto_aead/romulusn1+/armcortexm/skinny128.s @@ -0,0 +1,1706 @@ +/******************************************************************************* +* ARM assembly implementation of fixsliced SKINNY-128-384. +* +* For more details, see the paper at: https:// +* +* @author Alexandre Adomnicai, Nanyang Technological University, +* alexandre.adomnicai@ntu.edu.sg +* +* @date May 2020 +*******************************************************************************/ + +.syntax unified +.thumb + +/******************************************************************************* +* applies P^2 on the tweakey state in a bitsliced manner +*******************************************************************************/ +.align 2 +p2: + movw r1, #0xcc00 + movt r1, #0xcc00 //r1 <- 0xcc00cc00 + movw r10, #0xcc00 + movt r10, #0x0033 //r10<- 0xcc000033 + and r11, r1, r6, ror #14 + bfi r11, r6, #16, #8 + and r12, r6, #0xcc000000 + orr r11, r11, r12, lsr #2 + and r12, r10, r6 + orr r11, r11, r12, lsr #8 + and r12, r6, #0x00cc0000 + orr r6, r11, r12, lsr #18 + and r11, r1, r7, ror #14 + bfi r11, r7, #16, #8 + and r12, r7, #0xcc000000 + orr r11, r11, r12, lsr #2 + and r12, r10, r7 + orr r11, r11, r12, lsr #8 + and r12, r7, #0x00cc0000 + orr r7, r11, r12, lsr #18 + and r11, r1, r8, ror #14 + bfi r11, r8, #16, #8 + and r12, r8, #0xcc000000 + orr r11, r11, r12, lsr #2 + and r12, r10, r8 + orr r11, r11, r12, lsr #8 + and r12, r8, #0x00cc0000 + orr r8, r11, r12, lsr #18 + and r11, r1, r9, ror #14 + bfi r11, r9, #16, #8 + and r12, r9, #0xcc000000 + orr r11, r11, r12, lsr #2 + and r12, r10, r9 + orr r11, r11, r12, lsr #8 + and r12, r9, #0x00cc0000 + orr r9, r11, r12, lsr #18 + bx lr + +/******************************************************************************* +* applies P^4 on the tweakey state in a bitsliced manner +*******************************************************************************/ +.align 2 +p4: + str.w r14, [sp] //store r14 on the stack + movw r14, #0x00cc + movt r14, #0xcc00 //r14<- 0xcc0000cc + movw r12, #0xcc00 + movt r12, #0x3300 //r12<- 0x3300cc00 + movw r11, #0x00cc + movt r11, #0x00cc //r11<- 0x00cc00cc + and r10, r14, r6, ror #22 + and r1, r12, r6, ror #16 + orr r10, r10, r1 + and r1, r6, r11 + orr r10, r10, r1, lsr #2 + movw r1, #0xcc33 //r1 <- 0x0000cc33 + and r6, r6, r1 + orr r6, r10, r6, ror #24 + and r10, r14, r7, ror #22 + and r1, r12, r7, ror #16 + orr r10, r10, r1 + and r1, r7, r11 + orr r10, r10, r1, lsr #2 + movw r1, #0xcc33 //r1 <- 0x0000cc33 + and r7, r7, r1 + orr r7, r10, r7, ror #24 + and r10, r14, r8, ror #22 + and r1, r12, r8, ror #16 + orr r10, r10, r1 + and r1, r8, r11 + orr r10, r10, r1, lsr #2 + movw r1, #0xcc33 //r1 <- 0x0000cc33 + and r8, r8, r1 + orr r8, r10, r8, ror #24 + and r10, r14, r9, ror #22 + ldr.w r14, [sp] //restore r14 + and r12, r12, r9, ror #16 + orr r10, r10, r12 + and r12, r9, r11 + orr r10, r10, r12, lsr #2 + movw r12, #0xcc33 //r1 <- 0x0000cc33 + and r9, r9, r12 + orr r9, r10, r9, ror #24 + bx lr + +/******************************************************************************* +* applies P^6 on the tweakey state in a bitsliced manner +*******************************************************************************/ +.align 2 +p6: + movw r1, #0x3333 //r1 <- 0x00003333 + movw r12, #0x00cc + movt r12, #0x3300 //r12<- 0x330000cc + and r10, r6, r1, ror #8 // --- permute r6 6 times + and r11, r12, r6, ror #24 + orr r11, r11, r10, ror #6 + and r10, r1, r6, ror #10 + orr r11, r11, r10 + and r10, r6, #0x000000cc + orr r11, r11, r10, lsl #14 + and r10, r6, #0x00003300 + orr r6, r11, r10, lsl #2 // permute r6 6 times --- + and r10, r7, r1, ror #8 // --- permute r7 6 times + and r11, r12, r7, ror #24 + orr r11, r11, r10, ror #6 + and r10, r1, r7, ror #10 + orr r11, r11, r10 + and r10, r7, #0x000000cc + orr r11, r11, r10, lsl #14 + and r10, r7, #0x00003300 + orr r7, r11, r10, lsl #2 // permute r7 6 times --- + and r10, r8, r1, ror #8 // --- permute r8 6 times + and r11, r12, r8, ror #24 + orr r11, r11, r10, ror #6 + and r10, r1, r8, ror #10 + orr r11, r11, r10 + and r10, r8, #0x000000cc + orr r11, r11, r10, lsl #14 + and r10, r8, #0x00003300 + orr r8, r11, r10, lsl #2 // permute r8 6 times --- + and r10, r9, r1, ror #8 // --- permute r9 6 times + and r11, r12, r9, ror #24 + orr r11, r11, r10, ror #6 + and r10, r1, r9, ror #10 + orr r11, r11, r10 + and r10, r9, #0x000000cc + orr r11, r11, r10, lsl #14 + and r10, r9, #0x00003300 // permute r9 6 times --- + orr r9, r11, r10, lsl #2 + bx lr + +/******************************************************************************* +* applies P^8 on the tweakey state in a bitsliced manner +*******************************************************************************/ +.align 2 +p8: + movw r12, #0x3333 //r12<- 0x00003333 + movw r1, #0x0000 + movt r1, #0x33cc //r1 <- 0x33cc0000 + and r10, r6, r1 // --- permute r6 8 times + and r11, r1, r6, ror #8 + orr r11, r11, r10, ror #24 + and r10, r6, r12, lsl #2 + orr r11, r11, r10, ror #26 + and r10, r6, r12, lsl #8 + orr r6, r11, r10, lsr #6 // permute r6 8 times --- + and r10, r7, r1 // --- permute r7 8 times + and r11, r1, r7, ror #8 + orr r11, r11, r10, ror #24 + and r10, r7, r12, lsl #2 + orr r11, r11, r10, ror #26 + and r10, r7, r12, lsl #8 + orr r7, r11, r10, lsr #6 // permute r7 8 times --- + and r10, r8, r1 // --- permute r8 8 times + and r11, r1, r8, ror #8 + orr r11, r11, r10, ror #24 + and r10, r8, r12, lsl #2 + orr r11, r11, r10, ror #26 + and r10, r8, r12, lsl #8 + orr r8, r11, r10, lsr #6 // permute r8 8 times --- + and r10, r9, r1 // --- permute r9 8 times + and r11, r1, r9, ror #8 + orr r11, r11, r10, ror #24 + and r10, r9, r12, lsl #2 + orr r11, r11, r10, ror #26 + and r10, r9, r12, lsl #8 + orr r9, r11, r10, lsr #6 // permute r9 8 times --- + bx lr + +/******************************************************************************* +* applies P^10 on the tweakey state in a bitsliced manner +*******************************************************************************/ +.align 2 +p10: + movw r12, #0x0033 + movt r12, #0x3300 //r12<- 0x33000033 + movw r1, #0xcc33 //r1 <- 0x0000cc33 + and r10, r6, r1, ror #8 // --- permute r6 10 times + and r11, r12, r6, ror #26 + orr r11, r11, r10, ror #8 + and r10, r6, r12, ror #24 + orr r11, r11, r10, ror #22 + and r10, r6, #0x00330000 + orr r11, r11, r10, lsr #14 + and r10, r6, #0x0000cc00 + orr r6, r11, r10, lsr #2 // permute r6 10 times --- + and r10, r7, r1, ror #8 // --- permute r6 10 times + and r11, r12, r7, ror #26 + orr r11, r11, r10, ror #8 + and r10, r7, r12, ror #24 + orr r11, r11, r10, ror #22 + and r10, r7, #0x00330000 + orr r11, r11, r10, lsr #14 + and r10, r7, #0x0000cc00 + orr r7, r11, r10, lsr #2 // permute r6 10 times --- + and r10, r8, r1, ror #8 // --- permute r6 10 times + and r11, r12, r8, ror #26 + orr r11, r11, r10, ror #8 + and r10, r8, r12, ror #24 + orr r11, r11, r10, ror #22 + and r10, r8, #0x00330000 + orr r11, r11, r10, lsr #14 + and r10, r8, #0x0000cc00 + orr r8, r11, r10, lsr #2 // permute r6 10 times --- + and r10, r9, r1, ror #8 // --- permute r6 10 times + and r11, r12, r9, ror #26 + orr r11, r11, r10, ror #8 + and r10, r9, r12, ror #24 + orr r11, r11, r10, ror #22 + and r10, r9, #0x00330000 + orr r11, r11, r10, lsr #14 + and r10, r9, #0x0000cc00 + orr r9, r11, r10, lsr #2 // permute r6 10 times --- + bx lr + +/******************************************************************************* +* applies P^12 on the tweakey state in a bitsliced manner +*******************************************************************************/ +.align 2 +p12: + str.w r14, [sp] //store r14 on the stack + movw r14, #0xcc33 //r14<- 0x0000cc33 + movw r12, #0x00cc + movt r12, #0x00cc //r12<- 0x00cc00cc + movw r1, #0x3300 + movt r1, #0xcc00 //r1 <- 0xcc003300 + and r10, r14, r6, ror #8 // --- permute r6 12 times + and r11, r12, r6, ror #30 + orr r11, r11, r10 + and r10, r1, r6, ror #16 + orr r11, r11, r10 + movw r10, #0xcccc //r10<- 0x0000cccc + and r10, r6, r10, ror #8 + orr r6, r11, r10, ror #10 // permute r6 12 times --- + and r10, r14, r7, ror #8 // --- permute r7 12 times + and r11, r12, r7, ror #30 + orr r11, r11, r10 + and r10, r1, r7, ror #16 + orr r11, r11, r10 + movw r10, #0xcccc //r10<- 0x0000cccc + and r10, r7, r10, ror #8 + orr r7, r11, r10, ror #10 // permute r7 12 times --- + and r10, r14, r8, ror #8 // --- permute r8 12 times + and r11, r12, r8, ror #30 + orr r11, r11, r10 + and r10, r1, r8, ror #16 + orr r11, r11, r10 + movw r10, #0xcccc //r10<- 0x0000cccc + and r10, r8, r10, ror #8 + orr r8, r11, r10, ror #10 // permute r8 12 times --- + and r10, r14, r9, ror #8 // --- permute r9 12 times + and r11, r12, r9, ror #30 + orr r11, r11, r10 + and r10, r1, r9, ror #16 + ldr.w r14, [sp] + orr r11, r11, r10 + movw r10, #0xcccc //r10<- 0x0000cccc + and r10, r9, r10, ror #8 + orr r9, r11, r10, ror #10 // permute r9 12 times --- + bx lr + +/******************************************************************************* +* applies P^14 on the tweakey state in a bitsliced manner +*******************************************************************************/ +.align 2 +p14: + movw r1, #0xcc00 + movt r1, #0x0033 //r1 <- 0x0033cc00 + movw r12, #0xcc00 + movt r12, #0xcc00 //r12<- 0x33003300 + and r10, r1, r6, ror #24 // --- permute r6 14 times + and r11, r6, #0x00000033 + orr r11, r10, r11, ror #14 + and r10, r6, #0x33000000 + orr r11, r11, r10, ror #30 + and r10, r6, #0x00ff0000 + orr r11, r11, r10, ror #16 + and r10, r6, r12 + orr r6, r11, r10, ror #18 // permute r6 14 times --- + and r10, r1, r7, ror #24 // --- permute r7 14 times + and r11, r7, #0x00000033 + orr r11, r10, r11, ror #14 + and r10, r7, #0x33000000 + orr r11, r11, r10, ror #30 + and r10, r7, #0x00ff0000 + orr r11, r11, r10, ror #16 + and r10, r7, r12 + orr r7, r11, r10, ror #18 // permute r7 14 times --- + and r10, r1, r8, ror #24 // --- permute r8 14 times + and r11, r8, #0x00000033 + orr r11, r10, r11, ror #14 + and r10, r8, #0x33000000 + orr r11, r11, r10, ror #30 + and r10, r8, #0x00ff0000 + orr r11, r11, r10, ror #16 + and r10, r8, r12 + orr r8, r11, r10, ror #18 // permute r8 14 times --- + and r10, r1, r9, ror #24 // --- permute r9 14 times + and r11, r9, #0x00000033 + orr r11, r10, r11, ror #14 + and r10, r9, #0x33000000 + orr r11, r11, r10, ror #30 + and r10, r9, #0x00ff0000 + orr r11, r11, r10, ror #16 + and r10, r9, r12 + orr r9, r11, r10, ror #18 // permute r9 14 times --- + bx lr + +.align 2 +packing: + eor r12, r2, r2, lsr #3 + and r12, r12, r10 + eor r2, r2, r12 + eor r2, r2, r12, lsl #3 //SWAPMOVE(r2, r2, 0x0a0a0a0a, 3) + eor r12, r3, r3, lsr #3 + and r12, r12, r10 + eor r3, r3, r12 + eor r3, r3, r12, lsl #3 //SWAPMOVE(r3, r3, 0x0a0a0a0a, 3) + eor r12, r4, r4, lsr #3 + and r12, r12, r10 + eor r4, r4, r12 + eor r4, r4, r12, lsl #3 //SWAPMOVE(r4, r4, 0x0a0a0a0a, 3) + eor r12, r5, r5, lsr #3 + and r12, r12, r10 + eor r5, r5, r12 + eor r5, r5, r12, lsl #3 //SWAPMOVE(r5, r5, 0x0a0a0a0a, 3) + eor r12, r2, r4, lsr #2 + and r12, r12, r11 + eor r2, r2, r12 + eor r4, r4, r12, lsl #2 //SWAPMOVE(r4, r2, 0x30303030, 2) + eor r12, r2, r3, lsr #4 + and r12, r12, r11, lsr #2 + eor r2, r2, r12 + eor r3, r3, r12, lsl #4 //SWAPMOVE(r3, r2, 0x0c0c0c0c, 4) + eor r12, r2, r5, lsr #6 + and r12, r12, r11, lsr #4 + eor r2, r2, r12 + eor r5, r5, r12, lsl #6 //SWAPMOVE(r5, r2, 0x03030303, 6) + eor r12, r4, r3, lsr #2 + and r12, r12, r11, lsr #2 + eor r4, r4, r12 + eor r3, r3, r12, lsl #2 //SWAPMOVE(r3, r4, 0x0c0c0c0c, 2) + eor r12, r4, r5, lsr #4 + and r12, r12, r11, lsr #4 + eor r4, r4, r12 + eor r5, r5, r12, lsl #4 //SWAPMOVE(r5, r4, 0x03030303, 4) + eor r12, r3, r5, lsr #2 + and r12, r12, r11, lsr #4 + eor r3, r3, r12 + eor r5, r5, r12, lsl #2 //SWAPMOVE(r5, r3, 0x03030303, 2) + bx lr + +/****************************************************************************** +* Compute LFSR2(TK2) ^ LFSR3(TK3) for all rounds. +* Performing both at the same time allows to save some memory accesses. +******************************************************************************/ +@ void tkschedule_lfsr(u32* tk, const u8* tk2, const u8* tk3, const int rounds) +.global tkschedule_lfsr +.type tkschedule_lfsr,%function +.align 2 +tkschedule_lfsr: + push {r0-r12, r14} + ldr.w r3, [r1, #8] //load tk2 (3rd word) + ldr.w r4, [r1, #4] //load tk2 (2nd word) + ldr.w r5, [r1, #12] //load tk2 (4th word) + ldr.w r12, [r1] //load tk2 (1st word) + mov r1, r2 //move tk3 address in r1 + mov r2, r12 //move 1st tk2 word in r2 + movw r10, #0x0a0a + movt r10, #0x0a0a //r10 <- 0x0a0a0a0a + movw r11, #0x3030 + movt r11, #0x3030 //r7 <- 0x30303030 + bl packing //pack tk2 + mov r6, r2 //move tk2 from r2-r5 to r6-r9 + mov r7, r3 //move tk2 from r2-r5 to r6-r9 + mov r8, r4 //move tk2 from r2-r5 to r6-r9 + mov r9, r5 //move tk2 from r2-r5 to r6-r9 + ldr.w r3, [r1, #8] //load tk3 (3rd word) + ldr.w r4, [r1, #4] //load tk3 (2nd word) + ldr.w r5, [r1, #12] //load tk3 (4th) word) + ldr.w r2, [r1] //load tk3 (1st) word) + bl packing //pack tk3 + eor r10, r10, r10, lsl #4 //r10<- 0xaaaaaaaa + ldr.w r1, [sp, #12] //load loop counter in r1 + eor r11, r2, r6 //tk2 ^ tk3 (1st word) + eor r12, r3, r7 //tk2 ^ tk3 (2nd word) + strd r11, r12, [r0], #8 //store in tk + eor r11, r4, r8 //tk2 ^ tk3 (3rd word) + eor r12, r5, r9 //tk2 ^ tk3 (4th word) + strd r11, r12, [r0], #8 //store in tk + loop: + and r12, r8, r10 // --- apply LFSR2 to tk2 + eor r12, r12, r6 + and r14, r10, r12, lsl #1 + and r12, r12, r10 + orr r6, r14, r12, lsr #1 // apply LFSR2 to tk2 --- + and r12, r3, r10 // --- apply LFSR3 to tk3 + eor r12, r5, r12, lsr #1 + and r14, r10, r12, lsl #1 + and r12, r12, r10 + orr r5, r14, r12, lsr #1 // apply LFSR3 to tk3 --- + eor r11, r5, r7 //tk2 ^ tk3 (1st word) + eor r12, r2, r8 //tk2 ^ tk3 (2nd word) + strd r11, r12, [r0], #8 //store in tk + eor r11, r3, r9 //tk2 ^ tk3 (3rd word) + eor r12, r4, r6 //tk2 ^ tk3 (4th word) + strd r11, r12, [r0], #24 //store in tk + and r12, r9, r10 // --- apply LFSR2 to tk2 + eor r12, r12, r7 + and r14, r10, r12, lsl #1 + and r12, r12, r10 + orr r7, r14, r12, lsr #1 // apply LFSR2 to tk2 --- + and r12, r2, r10 // --- apply LFSR3 to tk3 + eor r12, r4, r12, lsr #1 + and r14, r10, r12, lsl #1 + and r12, r12, r10 + orr r4, r14, r12, lsr #1 // apply LFSR3 to tk3 --- + eor r11, r4, r8 //tk2 ^ tk3 (1st word) + eor r12, r5, r9 //tk2 ^ tk3 (2nd word) + strd r11, r12, [r0], #8 //store in tk + eor r11, r2, r6 //tk2 ^ tk3 (3rd word) + eor r12, r3, r7 //tk2 ^ tk3 (4th word) + strd r11, r12, [r0], #24 //store in tk + and r12, r6, r10 // --- apply LFSR2 to tk2 + eor r12, r12, r8 + and r14, r10, r12, lsl #1 + and r12, r12, r10 + orr r8, r14, r12, lsr #1 // apply LFSR2 to tk2 --- + and r12, r5, r10 // --- apply LFSR3 to tk3 + eor r12, r3, r12, lsr #1 + and r14, r10, r12, lsl #1 + and r12, r12, r10 + orr r3, r14, r12, lsr #1 // apply LFSR3 to tk3 --- + eor r11, r3, r9 //tk2 ^ tk3 (1st word) + eor r12, r4, r6 //tk2 ^ tk3 (2nd word) + strd r11, r12, [r0], #8 //store in tk + eor r11, r5, r7 //tk2 ^ tk3 (3rd word) + eor r12, r2, r8 //tk2 ^ tk3 (4th word) + strd r11, r12, [r0], #24 //store in tk + and r12, r7, r10 // --- apply LFSR2 to tk2 + eor r12, r12, r9 + and r14, r10, r12, lsl #1 + and r12, r12, r10 + orr r9, r14, r12, lsr #1 // apply LFSR2 to tk2 --- + and r12, r4, r10 // --- apply LFSR3 to tk3 + eor r12, r2, r12, lsr #1 + and r14, r10, r12, lsl #1 + and r12, r12, r10 + orr r2, r14, r12, lsr #1 // apply LFSR3 to tk3 --- + eor r11, r2, r6 //tk2 ^ tk3 (1st word) + eor r12, r3, r7 //tk2 ^ tk3 (2nd word) + strd r11, r12, [r0], #8 //store in tk + eor r11, r4, r8 //tk2 ^ tk3 (3rd word) + eor r12, r5, r9 //tk2 ^ tk3 (4th word) + strd r11, r12, [r0], #24 //store in tk + subs.w r1, r1, #8 //decrease loop counter by 8 + bne loop + pop {r0-r12, r14} + bx lr + +@ void tkschedule_perm(u32* tk) +.global tkschedule_perm +.type tkschedule_perm,%function +.align 2 +tkschedule_perm: + push {r0-r12, lr} + sub.w sp, #4 //to store r14 in subroutines + ldm r0, {r6-r9} //load tk + movw r10, #0xf0f0 + movt r10, #0xf0f0 //r10<- 0xf0f0f0f0 + and r6, r6, r10 //tk &= 0xf0f0f0f0 (1st word) + and r7, r7, r10 //tk &= 0xf0f0f0f0 (2nd word) + and r8, r8, r10 //tk &= 0xf0f0f0f0 (3rd word) + and r9, r9, r10 //tk &= 0xf0f0f0f0 (4th word) + eor r8, r8, #0x00000004 //add rconst + eor r9, r9, #0x00000040 //add rconst + mvn r9, r9 //to remove a NOT in sbox calculations + strd r8, r9, [r0], #8 //store 1st half tk for 1st round + strd r6, r7, [r0], #8 //store 2nd half tk for 1st round + ldm r0, {r6-r9} //load tk + bl p2 //apply the permutation twice + movw r10, #0xc3c3 + movt r10, #0xc3c3 //r10<- 0xc3c3c3c3 + and r11, r10, r6, ror #26 //ror and mask to match fixslicing + and r12, r10, r7, ror #26 //ror and mask to match fixslicing + strd r11, r12, [r0], #8 //store 1st half tk for 2nd round + and r11, r10, r8, ror #26 //ror and mask to match fixslicing + and r12, r10, r9, ror #26 //ror and mask to match fixslicing + eor r11, r11, #0x10000000 //add rconst + eor r11, r11, #0x00000100 //add rconst + eor r12, r12, #0x00000100 //add rconst + mvn r12, r12 //to save a NOT in sbox calculations + strd r11, r12, [r0], #8 //store 2nd half tk for 2nd round + and r10, r10, r10, lsr #6 //r10<- 0x03030303 + and r11, r10, r6, ror #28 //--- ror and masks to match fixslicing + and r6, r6, r10, lsl #6 + orr r6, r11, r6, ror #12 + and r11, r10, r7, ror #28 + and r7, r7, r10, lsl #6 + orr r7, r11, r7, ror #12 + and r11, r10, r8, ror #28 + and r8, r8, r10, lsl #6 + orr r8, r11, r8, ror #12 + and r11, r10, r9, ror #28 + and r9, r9, r10, lsl #6 + orr r9, r11, r9, ror #12 //ror and masks to match fixslicing --- + eor r7, r7, #0x04000000 //add rconst + eor r8, r8, #0x44000000 //add rconst + eor r9, r9, #0x04000000 //add rconst + mvn r9, r9 //to save a NOT in sbox calculations + strd r8, r9, [r0], #8 //store 1st half tk for 3rd round + strd r6, r7, [r0], #8 //store 2nd half tk for 3rd round + ldm r0, {r6-r9} //load tk + bl p4 //apply the permutation 4 times + movw r10, #0xf0f0 + movt r10, #0xf0f0 //r10<- 0xf0f0f0f0 + and r11, r10, r6, ror #16 //ror and mask to match fixslicing + and r12, r10, r7, ror #16 //ror and mask to match fixslicing + eor r11, r11, #0x00400000 //add rconst + eor r12, r12, #0x00400000 //add rconst + strd r11, r12, [r0, #24] //store 2nd half tk for 5th round + and r11, r10, r8, ror #16 //ror and mask to match fixslicing + and r12, r10, r9, ror #16 //ror and mask to match fixslicing + eor r11, r11, #0x00440000 //add rconst + eor r12, r12, #0x00500000 //add rconst + mvn r12, r12 //to save a NOT in sbox calculations + strd r11, r12, [r0, #16] //store 1st half tk for 5th round + and r10, r10, r10, lsr #2 //r10<- 0x30303030 + and r11, r10, r6, ror #14 //--- ror and masks to match fixslicing + and r6, r6, r10, ror #4 + orr r6, r11, r6, ror #6 + and r11, r10, r7, ror #14 + and r7, r7, r10, ror #4 + orr r7, r11, r7, ror #6 + and r11, r10, r8, ror #14 + and r8, r8, r10, ror #4 + orr r8, r11, r8, ror #6 + and r11, r10, r9, ror #14 + and r9, r9, r10, ror #4 + orr r9, r11, r9, ror #6 //ror and masks to match fixslicing --- + eor r6, r6, #0x00100000 //add rconst + eor r7, r7, #0x00100000 //add rconst + eor r8, r8, #0x00100000 //add rconst + eor r8, r8, #0x00000001 //add rconst + eor r9, r9, #0x00100000 //add rconst + mvn r9, r9 //to save a NOT in sbox calculations + strd r6, r7, [r0], #8 //store 1st half tk for 4th round + strd r8, r9, [r0], #24 //store 2nd half tk for 4th round + ldm r0, {r6-r9} //load tk + bl p6 //apply the permutation 6 times + movw r10, #0xc3c3 + movt r10, #0xc3c3 //r10<- 0xc3c3c3c3 + and r11, r10, r6, ror #10 //ror and mask to match fixslicing + and r12, r10, r7, ror #10 //ror and mask to match fixslicing + eor r11, r11, #0x01000000 //add rconst + eor r12, r12, #0x01000000 //add rconst + strd r11, r12, [r0], #8 //store 1st half tk for 6th round + and r11, r10, r8, ror #10 //ror and mask to match fixslicing + and r12, r10, r9, ror #10 //ror and mask to match fixslicing + eor r11, r11, #0x01400000 //add rconst + eor r11, r11, #0x00001000 //add rconst + eor r12, r12, #0x00400000 //add rconst + mvn r12, r12 //to save a NOT in sbox calculations + strd r11, r12, [r0], #8 //store 2nd half tk for 6th round + and r10, r10, r10, lsr #6 //r10<- 0x03030303 + and r11, r10, r6, ror #12 //--- ror and masks to match fixslicing + and r6, r6, r10, lsl #6 + orr r6, r11, r6, ror #28 + and r11, r10, r7, ror #12 + and r7, r7, r10, lsl #6 + orr r7, r11, r7, ror #28 + and r11, r10, r8, ror #12 + and r8, r8, r10, lsl #6 + orr r8, r11, r8, ror #28 + and r11, r10, r9, ror #12 + and r9, r9, r10, lsl #6 + orr r9, r11, r9, ror #28 //ror and masks to match fixslicing --- + eor r6, r6, #0x00000400 //add rconst + eor r7, r7, #0x00000400 //add rconst + eor r8, r8, #0x01000000 //add rconst + eor r8, r8, #0x00004000 //add rconst + eor r9, r9, #0x01000000 //add rconst + eor r9, r9, #0x00000400 //add rconst + mvn r9, r9 //to save a NOT in sbox calculations + strd r8, r9, [r0], #8 //store 1st half tk for 7th round + strd r6, r7, [r0], #8 //store 2nd half tk for 7th round + ldm r0, {r6-r9} //load tk + bl p8 //apply the permutation 8 times + movw r10, #0xf0f0 + movt r10, #0xf0f0 //r10<- 0xf0f0f0f0 + and r11, r10, r6 //ror and mask to match fixslicing + and r12, r10, r7 //ror and mask to match fixslicing + eor r12, r12, #0x00000040 //add rconst + strd r11, r12, [r0, #24] //store 2nd half tk for 9th round + and r11, r10, r8 //ror and mask to match fixslicing + and r12, r10, r9 //ror and mask to match fixslicing + eor r11, r11, #0x00000054 //add rconst + eor r12, r12, #0x00000050 //add rconst + mvn r12, r12 //to save a NOT in sbox calculations + strd r11, r12, [r0, #16] //store 1st half tk for 9th round + and r10, r10, r10, lsr #2 //r10<- 0x30303030 + and r11, r10, r6, ror #30 //--- ror and masks to match fixslicing + and r6, r6, r10, ror #4 + orr r6, r11, r6, ror #22 + and r11, r10, r7, ror #30 + and r7, r7, r10, ror #4 + orr r7, r11, r7, ror #22 + and r11, r10, r8, ror #30 + and r8, r8, r10, ror #4 + orr r8, r11, r8, ror #22 + and r11, r10, r9, ror #30 + and r9, r9, r10, ror #4 + orr r9, r11, r9, ror #22 //ror and masks to match fixslicing --- + eor r6 ,r6, #0x00000010 + eor r8, r8, #0x00010000 + eor r8, r8, #0x00000410 + eor r9, r9, #0x00000410 + mvn r9, r9 //to save a NOT in sbox calculations + strd r6, r7, [r0], #8 //store 1st half tk for 8th round + strd r8, r9, [r0], #24 //store 2nd half tk for 8th round + ldm r0, {r6-r9} //load tk + bl p10 //apply the permutation 10 times + movw r10, #0xc3c3 + movt r10, #0xc3c3 //r10<- 0xc3c3c3c3 + and r11, r10, r6, ror #26 //ror and mask to match fixslicing + and r12, r10, r7, ror #26 //ror and mask to match fixslicing + eor r11, r11, #0x00000100 //add rconst + eor r12, r12, #0x00000100 //add rconst + strd r11, r12, [r0], #8 //store 1st half tk for 10th round + and r11, r10, r8, ror #26 //ror and mask to match fixslicing + and r12, r10, r9, ror #26 //ror and mask to match fixslicing + eor r11, r11, #0x10000000 //add rconst + eor r11, r11, #0x00000140 //add rconst + eor r12, r12, #0x00000100 //add rconst + mvn r12, r12 //to save a NOT in sbox calculations + strd r11, r12, [r0], #8 //store 2nd half tk for 10th round + and r10, r10, r10, lsr #6 //r10<- 0x03030303 + and r11, r10, r6, ror #28 //--- ror and masks to match fixslicing + and r6, r6, r10, lsl #6 + orr r6, r11, r6, ror #12 + and r11, r10, r7, ror #28 + and r7, r7, r10, lsl #6 + orr r7, r11, r7, ror #12 + and r11, r10, r8, ror #28 + and r8, r8, r10, lsl #6 + orr r8, r11, r8, ror #12 + and r11, r10, r9, ror #28 + and r9, r9, r10, lsl #6 + orr r9, r11, r9, ror #12 //ror and masks to match fixslicing --- + eor r6, r6, #0x04000000 //add rconst + eor r7, r7, #0x04000000 //add rconst + eor r8, r8, #0x44000000 //add rconst + eor r9, r9, #0x00000100 //add rconst + mvn r9, r9 //to save a NOT in sbox calculations + strd r8, r9, [r0], #8 //store 1st half tk for 11th round + strd r6, r7, [r0], #8 //store 2nd half tk for 11th round + ldm r0, {r6-r9} //load tk + bl p12 //apply the permutation 4 times + movw r10, #0xf0f0 + movt r10, #0xf0f0 //r10<- 0xf0f0f0f0 + and r11, r10, r6, ror #16 //ror and mask to match fixslicing + and r12, r10, r7, ror #16 //ror and mask to match fixslicing + eor r11, r11, #0x00400000 //add rconst + strd r11, r12, [r0, #24] //store 2nd half tk for 13th round + and r11, r10, r8, ror #16 //ror and mask to match fixslicing + and r12, r10, r9, ror #16 //ror and mask to match fixslicing + eor r11, r11, #0x00140000 //add rconst + eor r12, r12, #0x00500000 //add rconst + mvn r12, r12 //to save a NOT in sbox calculations + strd r11, r12, [r0, #16] //store 1st half tk for 13th round + and r10, r10, r10, lsr #2 //r10<- 0x30303030 + and r11, r10, r6, ror #14 //--- ror and masks to match fixslicing + and r6, r6, r10, ror #4 + orr r6, r11, r6, ror #6 + and r11, r10, r7, ror #14 + and r7, r7, r10, ror #4 + orr r7, r11, r7, ror #6 + and r11, r10, r8, ror #14 + and r8, r8, r10, ror #4 + orr r8, r11, r8, ror #6 + and r11, r10, r9, ror #14 + and r9, r9, r10, ror #4 + orr r9, r11, r9, ror #6 //ror and masks to match fixslicing --- + eor r6, r6, #0x00100000 //add rconst + eor r7, r7, #0x00100000 //add rconst + eor r8, r8, #0x04000000 //add rconst + eor r8, r8, #0x00000001 //add rconst + eor r9, r9, #0x04000000 //add rconst + mvn r9, r9 //to save a NOT in sbox calculations + strd r6, r7, [r0], #8 //store 1st half tk for 12th round + strd r8, r9, [r0], #24 //store 2nd half tk for 12th round + ldm r0, {r6-r9} //load tk + bl p14 //apply the permutation 6 times + movw r10, #0xc3c3 + movt r10, #0xc3c3 //r10<- 0xc3c3c3c3 + and r11, r10, r6, ror #10 //ror and mask to match fixslicing + and r12, r10, r7, ror #10 //ror and mask to match fixslicing + strd r11, r12, [r0], #8 //store 1st half tk for 14th round + and r11, r10, r8, ror #10 //ror and mask to match fixslicing + and r12, r10, r9, ror #10 //ror and mask to match fixslicing + eor r11, r11, #0x01400000 //add rconst + eor r11, r11, #0x00001000 //add rconst + eor r12, r12, #0x01400000 //add rconst + mvn r12, r12 //to save a NOT in sbox calculations + strd r11, r12, [r0], #8 //store 2nd half tk for 14th round + and r10, r10, r10, lsr #6 //r10<- 0x03030303 + and r11, r10, r6, ror #12 //--- ror and masks to match fixslicing + and r6, r6, r10, lsl #6 + orr r6, r11, r6, ror #28 + and r11, r10, r7, ror #12 + and r7, r7, r10, lsl #6 + orr r7, r11, r7, ror #28 + and r11, r10, r8, ror #12 + and r8, r8, r10, lsl #6 + orr r8, r11, r8, ror #28 + and r11, r10, r9, ror #12 + and r9, r9, r10, lsl #6 + orr r9, r11, r9, ror #28 //ror and masks to match fixslicing --- + eor r7, r7, #0x00000400 //add rconst + eor r8, r8, #0x01000000 //add rconst + eor r8, r8, #0x00004400 //add rconst + eor r9, r9, #0x00000400 //add const + mvn r9, r9 //to save a NOT in sbox calculations + strd r8, r9, [r0], #8 //store 1st half tk for 15th round + strd r6, r7, [r0], #8 //store 2nd half tk for 15th round + ldm r0, {r6-r9} //load tk + movw r10, #0xf0f0 + movt r10, #0xf0f0 //r10<- 0xf0f0f0f0 + and r11, r10, r6 //ror and mask to match fixslicing + and r12, r10, r7 //ror and mask to match fixslicing + eor r11, r11, #0x00000040 //add rconst + eor r12, r12, #0x00000040 //add rconst + strd r11, r12, [r0, #24] //store 2nd half tk for 17th round + and r11, r10, r8 //ror and mask to match fixslicing + and r12, r10, r9 //ror and mask to match fixslicing + eor r11, r11, #0x00000004 //add rconst + eor r12, r12, #0x00000050 //add rconst + mvn r12, r12 //to save a NOT in sbox calculations + strd r11, r12, [r0, #16] //store 1st half tk for 17th round + and r10, r10, r10, lsr #2 //r10<- 0x30303030 + and r11, r10, r6, ror #30 //--- ror and masks to match fixslicing + and r6, r6, r10, ror #4 + orr r6, r11, r6, ror #22 + and r11, r10, r7, ror #30 + and r7, r7, r10, ror #4 + orr r7, r11, r7, ror #22 + and r11, r10, r8, ror #30 + and r8, r8, r10, ror #4 + orr r8, r11, r8, ror #22 + and r11, r10, r9, ror #30 + and r9, r9, r10, ror #4 + orr r9, r11, r9, ror #22 //ror and masks to match fixslicing --- + eor r6 ,r6, #0x00000010 + eor r7 ,r7, #0x00000010 + eor r8, r8, #0x00000010 + eor r8, r8, #0x00010000 + mvn r9, r9 //to save a NOT in sbox calculations + strd r6, r7, [r0], #8 //store 1st half tk for 16th round + strd r8, r9, [r0], #24 //store 2nd half tk for 16th round + ldm r0, {r6-r9} //load tk + bl p2 //apply the permutation twice + movw r10, #0xc3c3 + movt r10, #0xc3c3 //r10<- 0xc3c3c3c3 + and r11, r10, r6, ror #26 //ror and mask to match fixslicing + and r12, r10, r7, ror #26 //ror and mask to match fixslicing + eor r11, r11, #0x00000100 //add rconst + strd r11, r12, [r0], #8 //store 1st half tk for 18th round + and r11, r10, r8, ror #26 //ror and mask to match fixslicing + and r12, r10, r9, ror #26 //ror and mask to match fixslicing + eor r11, r11, #0x10000000 //add rconst + eor r11, r11, #0x00000140 //add rconst + eor r12, r12, #0x00000040 //add rconst + mvn r12, r12 //to save a NOT in sbox calculations + strd r11, r12, [r0], #8 //store 2nd half tk for 18th round + and r10, r10, r10, lsr #6 //r10<- 0x03030303 + and r11, r10, r6, ror #28 //--- ror and masks to match fixslicing + and r6, r6, r10, lsl #6 + orr r6, r11, r6, ror #12 + and r11, r10, r7, ror #28 + and r7, r7, r10, lsl #6 + orr r7, r11, r7, ror #12 + and r11, r10, r8, ror #28 + and r8, r8, r10, lsl #6 + orr r8, r11, r8, ror #12 + and r11, r10, r9, ror #28 + and r9, r9, r10, lsl #6 + orr r9, r11, r9, ror #12 //ror and masks to match fixslicing --- + eor r7, r7, #0x04000000 //add rconst + eor r8, r8, #0x40000000 //add rconst + eor r8, r8, #0x00000100 //add rconst + eor r9, r9, #0x04000000 //add rconst + eor r9, r9, #0x00000100 //add rconst + mvn r9, r9 //to save a NOT in sbox calculations + strd r8, r9, [r0], #8 //store 1st half tk for 19th round + strd r6, r7, [r0], #8 //store 2nd half tk for 19th round + ldm r0, {r6-r9} //load tk + bl p4 //apply the permutation 4 times + movw r10, #0xf0f0 + movt r10, #0xf0f0 //r10<- 0xf0f0f0f0 + and r11, r10, r6, ror #16 //ror and mask to match fixslicing + and r12, r10, r7, ror #16 //ror and mask to match fixslicing + eor r12, r12, #0x00400000 //add rconst + strd r11, r12, [r0, #24] //store 2nd half tk for 21th round + and r11, r10, r8, ror #16 //ror and mask to match fixslicing + and r12, r10, r9, ror #16 //ror and mask to match fixslicing + eor r11, r11, #0x00440000 //add rconst + eor r12, r12, #0x00100000 //add rconst + mvn r12, r12 //to save a NOT in sbox calculations + strd r11, r12, [r0, #16] //store 1st half tk for 21th round + and r10, r10, r10, lsr #2 //r10<- 0x30303030 + and r11, r10, r6, ror #14 //--- ror and masks to match fixslicing + and r6, r6, r10, ror #4 + orr r6, r11, r6, ror #6 + and r11, r10, r7, ror #14 + and r7, r7, r10, ror #4 + orr r7, r11, r7, ror #6 + and r11, r10, r8, ror #14 + and r8, r8, r10, ror #4 + orr r8, r11, r8, ror #6 + and r11, r10, r9, ror #14 + and r9, r9, r10, ror #4 + orr r9, r11, r9, ror #6 //ror and masks to match fixslicing --- + eor r6, r6, #0x00100000 //add rconst + eor r8, r8, #0x04100000 //add rconst + eor r8, r8, #0x00000001 //add rconst + eor r9, r9, #0x00100000 //add rconst + mvn r9, r9 //to save a NOT in sbox calculations + strd r6, r7, [r0], #8 //store 1st half tk for 20th round + strd r8, r9, [r0], #24 //store 2nd half tk for 20th round + ldm r0, {r6-r9} //load tk + bl p6 //apply the permutation 6 times + movw r10, #0xc3c3 + movt r10, #0xc3c3 //r10<- 0xc3c3c3c3 + and r11, r10, r6, ror #10 //ror and mask to match fixslicing + and r12, r10, r7, ror #10 //ror and mask to match fixslicing + eor r11, r11, #0x01000000 //add rconst + eor r12, r12, #0x01000000 //add rconst + strd r11, r12, [r0], #8 //store 1st half tk for 22th round + and r11, r10, r8, ror #10 //ror and mask to match fixslicing + and r12, r10, r9, ror #10 //ror and mask to match fixslicing + eor r11, r11, #0x00400000 //add rconst + eor r11, r11, #0x00001000 //add rconst + mvn r12, r12 //to save a NOT in sbox calculations + strd r11, r12, [r0], #8 //store 2nd half tk for 22th round + and r10, r10, r10, lsr #6 //r10<- 0x03030303 + and r11, r10, r6, ror #12 //--- ror and masks to match fixslicing + and r6, r6, r10, lsl #6 + orr r6, r11, r6, ror #28 + and r11, r10, r7, ror #12 + and r7, r7, r10, lsl #6 + orr r7, r11, r7, ror #28 + and r11, r10, r8, ror #12 + and r8, r8, r10, lsl #6 + orr r8, r11, r8, ror #28 + and r11, r10, r9, ror #12 + and r9, r9, r10, lsl #6 + orr r9, r11, r9, ror #28 //ror and masks to match fixslicing --- + eor r6, r6, #0x00000400 //add rconst + eor r8, r8, #0x00004000 //add rconst + eor r9, r9, #0x01000000 //add rconst + mvn r9, r9 //to save a NOT in sbox calculations + strd r8, r9, [r0], #8 //store 1st half tk for 23th round + strd r6, r7, [r0], #8 //store 2nd half tk for 23th round + ldm r0, {r6-r9} //load tk + bl p8 //apply the permutation 8 times + movw r10, #0xf0f0 + movt r10, #0xf0f0 //r10<- 0xf0f0f0f0 + and r11, r10, r6 //ror and mask to match fixslicing + and r12, r10, r7 //ror and mask to match fixslicing + strd r11, r12, [r0, #24] //store 2nd half tk for 25th round + and r11, r10, r8 //ror and mask to match fixslicing + and r12, r10, r9 //ror and mask to match fixslicing + eor r11, r11, #0x00000014 //add rconst + eor r12, r12, #0x00000040 //add rconst + mvn r12, r12 //to save a NOT in sbox calculations + strd r11, r12, [r0, #16] //store 1st half tk for 25th round + and r10, r10, r10, lsr #2 //r10<- 0x30303030 + and r11, r10, r6, ror #30 //--- ror and masks to match fixslicing + and r6, r6, r10, ror #4 + orr r6, r11, r6, ror #22 + and r11, r10, r7, ror #30 + and r7, r7, r10, ror #4 + orr r7, r11, r7, ror #22 + and r11, r10, r8, ror #30 + and r8, r8, r10, ror #4 + orr r8, r11, r8, ror #22 + and r11, r10, r9, ror #30 + and r9, r9, r10, ror #4 + orr r9, r11, r9, ror #22 //ror and masks to match fixslicing --- + eor r8, r8, #0x00010400 + eor r9, r9, #0x00000400 + mvn r9, r9 //to save a NOT in sbox calculations + strd r6, r7, [r0], #8 //store 1st half tk for 24th round + strd r8, r9, [r0], #24 //store 2nd half tk for 24th round + ldm r0, {r6-r9} //load tk + bl p10 //apply the permutation 10 times + movw r10, #0xc3c3 + movt r10, #0xc3c3 //r10<- 0xc3c3c3c3 + and r11, r10, r6, ror #26 //ror and mask to match fixslicing + and r12, r10, r7, ror #26 //ror and mask to match fixslicing + strd r11, r12, [r0], #8 //store 1st half tk for 26th round + and r11, r10, r8, ror #26 //ror and mask to match fixslicing + and r12, r10, r9, ror #26 //ror and mask to match fixslicing + eor r11, r11, #0x10000000 //add rconst + eor r11, r11, #0x00000100 //add rconst + mvn r12, r12 //to save a NOT in sbox calculations + strd r11, r12, [r0], #8 //store 2nd half tk for 26th round + and r10, r10, r10, lsr #6 //r10<- 0x03030303 + and r11, r10, r6, ror #28 //--- ror and masks to match fixslicing + and r6, r6, r10, lsl #6 + orr r6, r11, r6, ror #12 + and r11, r10, r7, ror #28 + and r7, r7, r10, lsl #6 + orr r7, r11, r7, ror #12 + and r11, r10, r8, ror #28 + and r8, r8, r10, lsl #6 + orr r8, r11, r8, ror #12 + and r11, r10, r9, ror #28 + and r9, r9, r10, lsl #6 + orr r9, r11, r9, ror #12 //ror and masks to match fixslicing --- + eor r7, r7, #0x04000000 //add rconst + eor r8, r8, #0x40000000 //add rconst + eor r9, r9, #0x04000000 //add rconst + mvn r9, r9 //to save a NOT in sbox calculations + strd r8, r9, [r0], #8 //store 1st half tk for 27th round + strd r6, r7, [r0], #8 //store 2nd half tk for 27th round + ldm r0, {r6-r9} //load tk + bl p12 //apply the permutation 4 times + movw r10, #0xf0f0 + movt r10, #0xf0f0 //r10<- 0xf0f0f0f0 + and r11, r10, r6, ror #16 //ror and mask to match fixslicing + and r12, r10, r7, ror #16 //ror and mask to match fixslicing + eor r12, r12, #0x00400000 //add rconst + strd r11, r12, [r0, #24] //store 2nd half tk for 29th round + and r11, r10, r8, ror #16 //ror and mask to match fixslicing + and r12, r10, r9, ror #16 //ror and mask to match fixslicing + eor r11, r11, #0x00440000 //add rconst + eor r12, r12, #0x00500000 //add rconst + mvn r12, r12 //to save a NOT in sbox calculations + strd r11, r12, [r0, #16] //store 1st half tk for 29th round + and r10, r10, r10, lsr #2 //r10<- 0x30303030 + and r11, r10, r6, ror #14 //--- ror and masks to match fixslicing + and r6, r6, r10, ror #4 + orr r6, r11, r6, ror #6 + and r11, r10, r7, ror #14 + and r7, r7, r10, ror #4 + orr r7, r11, r7, ror #6 + and r11, r10, r8, ror #14 + and r8, r8, r10, ror #4 + orr r8, r11, r8, ror #6 + and r11, r10, r9, ror #14 + and r9, r9, r10, ror #4 + orr r9, r11, r9, ror #6 //ror and masks to match fixslicing --- + eor r6, r6, #0x00100000 //add rconst + eor r8, r8, #0x00100000 //add rconst + eor r8, r8, #0x00000001 //add rconst + eor r9, r9, #0x00100000 //add rconst + mvn r9, r9 //to save a NOT in sbox calculations + strd r6, r7, [r0], #8 //store 1st half tk for 28th round + strd r8, r9, [r0], #24 //store 2nd half tk for 28th round + ldm r0, {r6-r9} //load tk + bl p14 //apply the permutation 6 times + movw r10, #0xc3c3 + movt r10, #0xc3c3 //r10<- 0xc3c3c3c3 + and r11, r10, r6, ror #10 //ror and mask to match fixslicing + and r12, r10, r7, ror #10 //ror and mask to match fixslicing + eor r11, r11, #0x01000000 //add rconst + eor r12, r12, #0x01000000 //add rconst + strd r11, r12, [r0], #8 //store 1st half tk for 30th round + and r11, r10, r8, ror #10 //ror and mask to match fixslicing + and r12, r10, r9, ror #10 //ror and mask to match fixslicing + eor r11, r11, #0x01400000 //add rconst + eor r11, r11, #0x00001000 //add rconst + mvn r12, r12 //to save a NOT in sbox calculations + strd r11, r12, [r0], #8 //store 2nd half tk for 30th round + and r10, r10, r10, lsr #6 //r10<- 0x03030303 + and r11, r10, r6, ror #12 //--- ror and masks to match fixslicing + and r6, r6, r10, lsl #6 + orr r6, r11, r6, ror #28 + and r11, r10, r7, ror #12 + and r7, r7, r10, lsl #6 + orr r7, r11, r7, ror #28 + and r11, r10, r8, ror #12 + and r8, r8, r10, lsl #6 + orr r8, r11, r8, ror #28 + and r11, r10, r9, ror #12 + and r9, r9, r10, lsl #6 + orr r9, r11, r9, ror #28 //ror and masks to match fixslicing --- + eor r6, r6, #0x00000400 //add rconst + eor r7, r7, #0x00000400 //add rconst + eor r8, r8, #0x00004000 //add rconst + eor r9, r9, #0x01000000 //add rconst + mvn r9, r9 //to save a NOT in sbox calculations + strd r8, r9, [r0], #8 //store 1st half tk for 31th round + strd r6, r7, [r0], #8 //store 2nd half tk for 31th round + ldm r0, {r6-r9} //load tk + movw r10, #0xf0f0 + movt r10, #0xf0f0 //r10<- 0xf0f0f0f0 + and r11, r10, r6 //ror and mask to match fixslicing + and r12, r10, r7 //ror and mask to match fixslicing + strd r11, r12, [r0, #24] //store 2nd half tk for 33th round + and r11, r10, r8 //ror and mask to match fixslicing + and r12, r10, r9 //ror and mask to match fixslicing + eor r11, r11, #0x00000014 //add rconst + eor r12, r12, #0x00000050 //add rconst + mvn r12, r12 //to save a NOT in sbox calculations + strd r11, r12, [r0, #16] //store 1st half tk for 33th round + and r10, r10, r10, lsr #2 //r10<- 0x30303030 + and r11, r10, r6, ror #30 //--- ror and masks to match fixslicing + and r6, r6, r10, ror #4 + orr r6, r11, r6, ror #22 + and r11, r10, r7, ror #30 + and r7, r7, r10, ror #4 + orr r7, r11, r7, ror #22 + and r11, r10, r8, ror #30 + and r8, r8, r10, ror #4 + orr r8, r11, r8, ror #22 + and r11, r10, r9, ror #30 + and r9, r9, r10, ror #4 + orr r9, r11, r9, ror #22 //ror and masks to match fixslicing --- + eor r6 ,r6, #0x00000010 + eor r8, r8, #0x00010400 + eor r9, r9, #0x00000400 + mvn r9, r9 //to save a NOT in sbox calculations + strd r6, r7, [r0], #8 //store 1st half tk for 32th round + strd r8, r9, [r0], #24 //store 2nd half tk for 32th round + ldm r0, {r6-r9} //load tk + bl p2 //apply the permutation twice + movw r10, #0xc3c3 + movt r10, #0xc3c3 //r10<- 0xc3c3c3c3 + and r11, r10, r6, ror #26 //ror and mask to match fixslicing + and r12, r10, r7, ror #26 //ror and mask to match fixslicing + strd r11, r12, [r0], #8 //store 1st half tk for 34th round + and r11, r10, r8, ror #26 //ror and mask to match fixslicing + and r12, r10, r9, ror #26 //ror and mask to match fixslicing + eor r11, r11, #0x10000000 //add rconst + eor r11, r11, #0x00000140 //add rconst + eor r12, r12, #0x00000100 //add rconst + mvn r12, r12 //to save a NOT in sbox calculations + strd r11, r12, [r0], #8 //store 2nd half tk for 34th round + and r10, r10, r10, lsr #6 //r10<- 0x03030303 + and r11, r10, r6, ror #28 //--- ror and masks to match fixslicing + and r6, r6, r10, lsl #6 + orr r6, r11, r6, ror #12 + and r11, r10, r7, ror #28 + and r7, r7, r10, lsl #6 + orr r7, r11, r7, ror #12 + and r11, r10, r8, ror #28 + and r8, r8, r10, lsl #6 + orr r8, r11, r8, ror #12 + and r11, r10, r9, ror #28 + and r9, r9, r10, lsl #6 + orr r9, r11, r9, ror #12 //ror and masks to match fixslicing --- + eor r7, r7, #0x04000000 //add rconst + eor r8, r8, #0x44000000 //add rconst + mvn r9, r9 //to save a NOT in sbox calculations + strd r8, r9, [r0], #8 //store 1st half tk for 35th round + strd r6, r7, [r0], #8 //store 2nd half tk for 35th round + ldm r0, {r6-r9} //load tk + bl p4 //apply the permutation 4 times + movw r10, #0xf0f0 + movt r10, #0xf0f0 //r10<- 0xf0f0f0f0 + and r11, r10, r6, ror #16 //ror and mask to match fixslicing + and r12, r10, r7, ror #16 //ror and mask to match fixslicing + eor r11, r11, #0x00400000 //add rconst + strd r11, r12, [r0, #24] //store 2nd half tk for 37th round + and r11, r10, r8, ror #16 //ror and mask to match fixslicing + and r12, r10, r9, ror #16 //ror and mask to match fixslicing + eor r11, r11, #0x00440000 //add rconst + eor r12, r12, #0x00500000 //add rconst + mvn r12, r12 //to save a NOT in sbox calculations + strd r11, r12, [r0, #16] //store 1st half tk for 37th round + and r10, r10, r10, lsr #2 //r10<- 0x30303030 + and r11, r10, r6, ror #14 //--- ror and masks to match fixslicing + and r6, r6, r10, ror #4 + orr r6, r11, r6, ror #6 + and r11, r10, r7, ror #14 + and r7, r7, r10, ror #4 + orr r7, r11, r7, ror #6 + and r11, r10, r8, ror #14 + and r8, r8, r10, ror #4 + orr r8, r11, r8, ror #6 + and r11, r10, r9, ror #14 + and r9, r9, r10, ror #4 + orr r9, r11, r9, ror #6 //ror and masks to match fixslicing --- + eor r6, r6, #0x00100000 //add rconst + eor r7, r7, #0x00100000 //add rconst + eor r8, r8, #0x00000001 //add rconst + eor r9, r9, #0x00100000 //add rconst + mvn r9, r9 //to save a NOT in sbox calculations + strd r6, r7, [r0], #8 //store 1st half tk for 36th round + strd r8, r9, [r0], #24 //store 2nd half tk for 36th round + ldm r0, {r6-r9} //load tk + bl p6 //apply the permutation 6 times + movw r10, #0xc3c3 + movt r10, #0xc3c3 //r10<- 0xc3c3c3c3 + and r11, r10, r6, ror #10 //ror and mask to match fixslicing + and r12, r10, r7, ror #10 //ror and mask to match fixslicing + eor r12, r12, #0x01000000 //add rconst + strd r11, r12, [r0], #8 //store 1st half tk for 38th round + and r11, r10, r8, ror #10 //ror and mask to match fixslicing + and r12, r10, r9, ror #10 //ror and mask to match fixslicing + eor r11, r11, #0x01400000 //add rconst + eor r11, r11, #0x00001000 //add rconst + eor r12, r12, #0x00400000 //add rconst + mvn r12, r12 //to save a NOT in sbox calculations + strd r11, r12, [r0], #8 //store 2nd half tk for 38th round + and r10, r10, r10, lsr #6 //r10<- 0x03030303 + and r11, r10, r6, ror #12 //--- ror and masks to match fixslicing + and r6, r6, r10, lsl #6 + orr r6, r11, r6, ror #28 + and r11, r10, r7, ror #12 + and r7, r7, r10, lsl #6 + orr r7, r11, r7, ror #28 + and r11, r10, r8, ror #12 + and r8, r8, r10, lsl #6 + orr r8, r11, r8, ror #28 + and r11, r10, r9, ror #12 + and r9, r9, r10, lsl #6 + orr r9, r11, r9, ror #28 //ror and masks to match fixslicing --- + eor r6, r6, #0x00000400 //add rconst + eor r7, r7, #0x00000400 //add rconst + eor r8, r8, #0x01000000 + eor r8, r8, #0x00004000 //add rconst + eor r9, r9, #0x00000400 //add rconst + mvn r9, r9 //to save a NOT in sbox calculations + strd r8, r9, [r0], #8 //store 1st half tk for 39th round + strd r6, r7, [r0], #8 //store 2nd half tk for 39th round + ldm r0, {r6-r9} //load tk + bl p8 //apply the permutation 8 times + movw r10, #0x3030 + movt r10, #0x3030 //r10<- 0x30303030 + and r11, r10, r6, ror #30 //--- ror and masks to match fixslicing + and r6, r6, r10, ror #4 + orr r6, r11, r6, ror #22 + and r11, r10, r7, ror #30 + and r7, r7, r10, ror #4 + orr r7, r11, r7, ror #22 + and r11, r10, r8, ror #30 + and r8, r8, r10, ror #4 + orr r8, r11, r8, ror #22 + and r11, r10, r9, ror #30 + and r9, r9, r10, ror #4 + orr r9, r11, r9, ror #22 //ror and masks to match fixslicing --- + eor r6, r6, #0x00000010 + eor r8, r8, #0x00010000 + eor r8, r8, #0x00000010 + eor r9, r9, #0x00000400 + mvn r9, r9 //to save a NOT in sbox calculations + strd r6, r7, [r0], #8 //store 1st half tk for 40th round + strd r8, r9, [r0] //store 2nd half tk for 40th round + add.w sp, #4 + pop {r0-r12, lr} + bx lr + +/****************************************************************************** +* Applies the permutations P^2, ..., P^14 for rounds 0 to 16. Since P^16=Id, we +* don't need more calculations as no LFSR is applied to TK1. +******************************************************************************/ +@ void tkschedule_perm_tk1(u32* tk, const u8* key) +.global tkschedule_perm_tk1 +.type tkschedule_perm_tk1,%function +.align 2 +tkschedule_perm_tk1: + push {r0-r12, lr} + ldr.w r3, [r1, #8] //load tk1 (3rd word) + ldr.w r4, [r1, #4] //load tk1 (2nd word) + ldr.w r5, [r1, #12] //load tk1 (4th word) + ldr.w r2, [r1] //load tk1 (1st word) + movw r10, #0x0a0a + movt r10, #0x0a0a //r6 <- 0x0a0a0a0a + movw r11, #0x3030 + movt r11, #0x3030 //r7 <- 0x30303030 + bl packing //pack tk1 + mov r6, r2 //move tk1 from r2-r5 to r6-r9 + mov r7, r3 //move tk1 from r2-r5 to r6-r9 + mov r8, r4 //move tk1 from r2-r5 to r6-r9 + mov r9, r5 //move tk1 from r2-r5 to r6-r9 + movw r2, #0xf0f0 + movt r2, #0xf0f0 //r2<- 0xf0f0f0f0 + and r11, r8, r2 //tk &= 0xf0f0f0f0 (3rd word) + and r12, r9, r2 //tk &= 0xf0f0f0f0 (4th word) + strd r11, r12, [r0], #8 //store 1st half tk for 1st round + and r11, r6, r2 //tk &= 0xf0f0f0f0 (1st word) + and r12, r7, r2 //tk &= 0xf0f0f0f0 (2nd word) + strd r11, r12, [r0], #8 //store 2nd half tk for 1st round + + bl p2 //apply the permutation twice + movw r3, #0x0303 + movt r3, #0x0303 //r3<- 0x03030303 + and r11, r3, r6, ror #28 //--- ror and masks to match fixslicing + and r12, r6, r3, lsl #6 + orr r12, r11, r12, ror #12 + str.w r12, [r0, #8] + and r11, r3, r7, ror #28 + and r12, r7, r3, lsl #6 + orr r12, r11, r12, ror #12 + str.w r12, [r0, #12] + and r11, r3, r9, ror #28 + and r12, r9, r3, lsl #6 + orr r12, r11, r12, ror #12 + str.w r12, [r0, #4] + and r11, r3, r8, ror #28 + and r12, r8, r3, lsl #6 + orr r12, r11, r12, ror #12 + str.w r12, [r0], #16 //ror and masks to match fixslicing --- + bl p2 //apply the permutation 4 times + and r11, r2, r6, ror #16 //ror and mask to match fixslicing + and r12, r2, r7, ror #16 //ror and mask to match fixslicing + strd r11, r12, [r0, #8] //store 2nd half tk for 5th round + and r11, r2, r8, ror #16 //ror and mask to match fixslicing + and r12, r2, r9, ror #16 //ror and mask to match fixslicing + strd r11, r12, [r0], #16 //store 1st half tk for 5th round + bl p2 //apply the permutation 6 times + and r11, r3, r6, ror #12 //--- ror and masks to match fixslicing + and r12, r6, r3, lsl #6 + orr r12, r11, r12, ror #28 + str.w r12, [r0, #8] + and r11, r3, r7, ror #12 + and r12, r7, r3, lsl #6 + orr r12, r11, r12, ror #28 + str.w r12, [r0, #12] + and r11, r3, r9, ror #12 + and r12, r9, r3, lsl #6 + orr r12, r11, r12, ror #28 + str.w r12, [r0, #4] + and r11, r3, r8, ror #12 + and r12, r8, r3, lsl #6 + orr r12, r11, r12, ror #28 + str.w r12, [r0], #16 //ror and masks to match fixslicing --- + bl p2 //apply the permutation 8 times + and r11, r2, r6 //ror and mask to match fixslicing + and r12, r2, r7 //ror and mask to match fixslicing + strd r11, r12, [r0, #8] //store 2nd half tk for 9th round + and r11, r2, r8 //ror and mask to match fixslicing + and r12, r2, r9 //ror and mask to match fixslicing + strd r11, r12, [r0], #16 //store 1st half tk for 9th round + bl p2 //apply the permutation 10 + and r11, r3, r6, ror #28 //--- ror and masks to match fixslicing + and r12, r6, r3, lsl #6 + orr r12, r11, r12, ror #12 + str.w r12, [r0, #8] + and r11, r3, r7, ror #28 + and r12, r7, r3, lsl #6 + orr r12, r11, r12, ror #12 + str.w r12, [r0, #12] + and r11, r3, r9, ror #28 + and r12, r9, r3, lsl #6 + orr r12, r11, r12, ror #12 + str.w r12, [r0, #4] + and r11, r3, r8, ror #28 + and r12, r8, r3, lsl #6 + orr r12, r11, r12, ror #12 + str.w r12, [r0], #16 //ror and masks to match fixslicing --- + bl p2 //apply the permutation 12 times + and r11, r2, r6, ror #16 //ror and mask to match fixslicing + and r12, r2, r7, ror #16 //ror and mask to match fixslicing + strd r11, r12, [r0, #8] //store 2nd half tk for 5th round + and r11, r2, r8, ror #16 //ror and mask to match fixslicing + and r12, r2, r9, ror #16 //ror and mask to match fixslicing + strd r11, r12, [r0], #16 //store 1st half tk for 5th round + bl p2 //apply the permutation 14 times + and r11, r3, r6, ror #12 //--- ror and masks to match fixslicing + and r12, r6, r3, lsl #6 + orr r12, r11, r12, ror #28 + str.w r12, [r0, #8] + and r11, r3, r7, ror #12 + and r12, r7, r3, lsl #6 + orr r12, r11, r12, ror #28 + str.w r12, [r0, #12] + and r11, r3, r9, ror #12 + and r12, r9, r3, lsl #6 + orr r12, r11, r12, ror #28 + str.w r12, [r0, #4] + and r11, r3, r8, ror #12 + and r12, r8, r3, lsl #6 + orr r12, r11, r12, ror #28 + str.w r12, [r0] //ror and masks to match fixslicing --- + pop {r0-r12, lr} + bx lr + +.align 2 +quadruple_round: + orr r8, r2, r3 + eor r5, r5, r8 + mvn r5, r5 + eor r8, r3, r4, lsr #1 + and r8, r8, r6 + eor r3, r3, r8 + eor r4, r4, r8, lsl #1 //SWAPMOVE(r4, r3, 0x55555555, 1); + eor r8, r4, r5, lsr #1 + and r8, r8, r6 + eor r4, r4, r8 + eor r5, r5, r8, lsl #1 //SWAPMOVE(r5, r4, 0x55555555, 1); + orr r8, r4, r5 + eor r3, r3, r8 + mvn r3, r3 + eor r8, r2, r3, lsr #1 + and r8, r8, r6 + eor r2, r2, r8 + eor r3, r3, r8, lsl #1 //SWAPMOVE(r3, r2, 0x55555555, 1); + eor r8, r5, r2, lsr #1 + and r8, r8, r6 + eor r5, r5, r8 + eor r2, r2, r8, lsl #1 //SWAPMOVE(r2, r5, 0x55555555, 1); + orr r8, r2, r3 + eor r5, r5, r8 + mvn r5, r5 + eor r8, r3, r4, lsr #1 + and r8, r8, r6 + eor r3, r3, r8 + eor r4, r4, r8, lsl #1 //SWAPMOVE(r4, r3, 0x55555555, 1); + eor r8, r4, r5, lsr #1 + and r8, r8, r6 + eor r4, r4, r8 + eor r5, r5, r8, lsl #1 //SWAPMOVE(r5, r4, 0x55555555, 1); + orr r8, r4, r5 + eor r3, r3, r8 + eor r8, r2, r5 + and r8, r8, r6 + eor r2, r2, r8 + eor r5, r5, r8 //SWAPMOVE(r5, r2, 0x55555555, 0); + ldmia.w r1!, {r8-r11} //load rkeys in r8,...,r11 + eor r2, r2, r8 //add rtk_2_3 + rconst + eor r3, r3, r9 //add rtk_2_3 + rconst + eor r4, r4, r10 //add rtk_2_3 + rconst + eor r5, r5, r11 //add rtk_2_3 + rconst + ldmia.w r0!,{r8-r11} + eor r2, r2, r8 //add rtk_1 + eor r3, r3, r9 //add rtk_1 + eor r4, r4, r10 //add rtk_1 + eor r5, r5, r11 //add rtk_1 + and r8, r7, r2, ror #30 // --- mixcolumns 0 --- + eor r2, r2, r8, ror #24 + and r8, r7, r2, ror #18 + eor r2, r2, r8, ror #2 + and r8, r7, r2, ror #6 + eor r2, r2, r8, ror #4 + and r8, r7, r3, ror #30 + eor r3, r3, r8, ror #24 + and r8, r7, r3, ror #18 + eor r3, r3, r8, ror #2 + and r8, r7, r3, ror #6 + eor r3, r3, r8, ror #4 + and r8, r7, r4, ror #30 + eor r4, r4, r8, ror #24 + and r8, r7, r4, ror #18 + eor r4, r4, r8, ror #2 + and r8, r7, r4, ror #6 + eor r4, r4, r8, ror #4 + and r8, r7, r5, ror #30 + eor r5, r5, r8, ror #24 + and r8, r7, r5, ror #18 + eor r5, r5, r8, ror #2 + and r8, r7, r5, ror #6 + eor r5, r5, r8, ror #4 + orr r8, r4, r5 + eor r3, r3, r8 + mvn r3, r3 + eor r8, r2, r3, lsr #1 + and r8, r8, r6 + eor r2, r2, r8 + eor r3, r3, r8, lsl #1 //SWAPMOVE(r3, r2, 0x55555555, 1); + eor r8, r5, r2, lsr #1 + and r8, r8, r6 + eor r5, r5, r8 + eor r2, r2, r8, lsl #1 //SWAPMOVE(r2, r5, 0x55555555, 1); + orr r8, r2, r3 + eor r5, r5, r8 + mvn r5, r5 + eor r8, r3, r4, lsr #1 + and r8, r8, r6 + eor r3, r3, r8 + eor r4, r4, r8, lsl #1 //SWAPMOVE(r4, r3, 0x55555555, 1); + eor r8, r4, r5, lsr #1 + and r8, r8, r6 + eor r4, r4, r8 + eor r5, r5, r8, lsl #1 //SWAPMOVE(r5, r4, 0x55555555, 1); + orr r8, r4, r5 + eor r3, r3, r8 + mvn r3, r3 + eor r8, r2, r3, lsr #1 + and r8, r8, r6 + eor r2, r2, r8 + eor r3, r3, r8, lsl #1 //SWAPMOVE(r3, r2, 0x55555555, 1); + eor r8, r5, r2, lsr #1 + and r8, r8, r6 + eor r5, r5, r8 + eor r2, r2, r8, lsl #1 //SWAPMOVE(r2, r5, 0x55555555, 1); + orr r8, r2, r3 + eor r5, r5, r8 + eor r8, r3, r4 + and r8, r8, r6 + eor r3, r3, r8 + eor r4, r4, r8 //SWAPMOVE(r4, r3, 0x55555555, 0); + ldmia.w r1!, {r8-r11} //load rkeys in r8,...,r11 + eor r2, r2, r8 //add rkey + rconst + eor r3, r3, r9 //add rkey + rconst + eor r4, r4, r10 //add rkey + rconst + eor r5, r5, r11 //add rkey + rconst + and r8, r7, r2, ror #16 // --- mixcolumns 1 --- + eor r2, r2, r8, ror #30 + and r8, r7, r2, ror #28 + eor r2, r2, r8 + and r8, r7, r2, ror #16 + eor r2, r2, r8, ror #2 + and r8, r7, r3, ror #16 + eor r3, r3, r8, ror #30 + and r8, r7, r3, ror #28 + eor r3, r3, r8 + and r8, r7, r3, ror #16 + eor r3, r3, r8, ror #2 + and r8, r7, r4, ror #16 + eor r4, r4, r8, ror #30 + and r8, r7, r4, ror #28 + eor r4, r4, r8 + and r8, r7, r4, ror #16 + eor r4, r4, r8, ror #2 + and r8, r7, r5, ror #16 + eor r5, r5, r8, ror #30 + and r8, r7, r5, ror #28 + eor r5, r5, r8 + and r8, r7, r5, ror #16 + eor r5, r5, r8, ror #2 + orr r8, r2, r3 + eor r5, r5, r8 + mvn r5, r5 + eor r8, r3, r4, lsr #1 + and r8, r8, r6 + eor r3, r3, r8 + eor r4, r4, r8, lsl #1 //SWAPMOVE(r4, r3, 0x55555555, 1); + eor r8, r4, r5, lsr #1 + and r8, r8, r6 + eor r4, r4, r8 + eor r5, r5, r8, lsl #1 //SWAPMOVE(r5, r4, 0x55555555, 1); + orr r8, r4, r5 + eor r3, r3, r8 + mvn r3, r3 + eor r8, r2, r3, lsr #1 + and r8, r8, r6 + eor r2, r2, r8 + eor r3, r3, r8, lsl #1 //SWAPMOVE(r3, r2, 0x55555555, 1); + eor r8, r5, r2, lsr #1 + and r8, r8, r6 + eor r5, r5, r8 + eor r2, r2, r8, lsl #1 //SWAPMOVE(r2, r5, 0x55555555, 1); + orr r8, r2, r3 + eor r5, r5, r8 + mvn r5, r5 + eor r8, r3, r4, lsr #1 + and r8, r8, r6 + eor r3, r3, r8 + eor r4, r4, r8, lsl #1 //SWAPMOVE(r4, r3, 0x55555555, 1); + eor r8, r4, r5, lsr #1 + and r8, r8, r6 + eor r4, r4, r8 + eor r5, r5, r8, lsl #1 //SWAPMOVE(r5, r4, 0x55555555, 1); + orr r8, r4, r5 + eor r3, r3, r8 + eor r8, r2, r5 + and r8, r8, r6 + eor r2, r2, r8 + eor r5, r5, r8 //SWAPMOVE(r5, r2, 0x55555555, 0); + ldmia.w r1!, {r8-r11} //load rkeys in r8,...,r11 + eor r2, r2, r8 //add rtk_2_3 + rconst + eor r3, r3, r9 //add rtk_2_3 + rconst + eor r4, r4, r10 //add rtk_2_3 + rconst + eor r5, r5, r11 //add rtk_2_3 + rconst + ldmia.w r0!,{r8-r11} + eor r2, r2, r8 //add rtk_1 + eor r3, r3, r9 //add rtk_1 + eor r4, r4, r10 //add rtk_1 + eor r5, r5, r11 //add rtk_1 + and r8, r7, r2, ror #10 // --- mixcolumns 2 --- + eor r2, r2, r8, ror #4 + and r8, r7, r2, ror #6 + eor r2, r2, r8, ror #6 + and r8, r7, r2, ror #26 + eor r2, r2, r8 + and r8, r7, r3, ror #10 + eor r3, r3, r8, ror #4 + and r8, r7, r3, ror #6 + eor r3, r3, r8, ror #6 + and r8, r7, r3, ror #26 + eor r3, r3, r8 + and r8, r7, r4, ror #10 + eor r4, r4, r8, ror #4 + and r8, r7, r4, ror #6 + eor r4, r4, r8, ror #6 + and r8, r7, r4, ror #26 + eor r4, r4, r8 + and r8, r7, r5, ror #10 + eor r5, r5, r8, ror #4 + and r8, r7, r5, ror #6 + eor r5, r5, r8, ror #6 + and r8, r7, r5, ror #26 + eor r5, r5, r8 + orr r8, r4, r5 + eor r3, r3, r8 + mvn r3, r3 + eor r8, r2, r3, lsr #1 + and r8, r8, r6 + eor r2, r2, r8 + eor r3, r3, r8, lsl #1 //SWAPMOVE(r3, r2, 0x55555555, 1); + eor r8, r5, r2, lsr #1 + and r8, r8, r6 + eor r5, r5, r8 + eor r2, r2, r8, lsl #1 //SWAPMOVE(r2, r5, 0x55555555, 1); + orr r8, r2, r3 + eor r5, r5, r8 + mvn r5, r5 + eor r8, r3, r4, lsr #1 + and r8, r8, r6 + eor r3, r3, r8 + eor r4, r4, r8, lsl #1 //SWAPMOVE(r4, r3, 0x55555555, 1); + eor r8, r4, r5, lsr #1 + and r8, r8, r6 + eor r4, r4, r8 + eor r5, r5, r8, lsl #1 //SWAPMOVE(r5, r4, 0x55555555, 1); + orr r8, r4, r5 + eor r3, r3, r8 + mvn r3, r3 + eor r8, r2, r3, lsr #1 + and r8, r8, r6 + eor r2, r2, r8 + eor r3, r3, r8, lsl #1 //SWAPMOVE(r3, r2, 0x55555555, 1); + eor r8, r5, r2, lsr #1 + and r8, r8, r6 + eor r5, r5, r8 + eor r2, r2, r8, lsl #1 //SWAPMOVE(r2, r5, 0x55555555, 1); + orr r8, r2, r3 + eor r5, r5, r8 + eor r8, r3, r4 + and r8, r8, r6 + eor r3, r3, r8 + eor r4, r4, r8 //SWAPMOVE(r4, r3, 0x55555555, 0); + ldmia r1!, {r8-r11} //load rkeys in r8,...,r11 + eor r2, r2, r8 //add rkey + rconst + eor r3, r3, r9 //add rkey + rconst + eor r4, r4, r10 //add rkey + rconst + eor r5, r5, r11 //add rkey + rconst + and r8, r7, r2, ror #4 // --- mixcolumns 3 --- + eor r2, r2, r8, ror #26 + and r8, r7, r2 + eor r2, r2, r8, ror #4 + and r8, r7, r2, ror #4 + eor r2, r2, r8, ror #22 + and r8, r7, r3, ror #4 + eor r3, r3, r8, ror #26 + and r8, r7, r3 + eor r3, r3, r8, ror #4 + and r8, r7, r3, ror #4 + eor r3, r3, r8, ror #22 + and r8, r7, r4, ror #4 + eor r4, r4, r8, ror #26 + and r8, r7, r4 + eor r4, r4, r8, ror #4 + and r8, r7, r4, ror #4 + eor r4, r4, r8, ror #22 + and r8, r7, r5, ror #4 + eor r5, r5, r8, ror #26 + and r8, r7, r5 + eor r5, r5, r8, ror #4 + and r8, r7, r5, ror #4 + eor r5, r5, r8, ror #22 + bx lr + +/****************************************************************************** +* Encrypt a single block using fixsliced SKINNY-128-128. +******************************************************************************/ +@ void skinny128_384(u8* ctext, const u32* tk, const u8* ptext) +.global skinny128_384 +.type skinny128_384,%function +.align 2 +skinny128_384: + push {r0-r12, r14} + mov.w r0, r3 + ldr.w r3, [r2, #8] + ldr.w r4, [r2, #4] + ldr.w r5, [r2, #12] + ldr.w r2, [r2] + movw r6, #0x0a0a + movt r6, #0x0a0a //r6 <- 0x0a0a0a0a + movw r7, #0x3030 + movt r7, #0x3030 //r7 <- 0x30303030 + eor r12, r2, r2, lsr #3 + and r12, r12, r6 + eor r2, r2, r12 + eor r2, r2, r12, lsl #3 //SWAPMOVE(r2, r2, 0x0a0a0a0a, 3) + eor r12, r3, r3, lsr #3 + and r12, r12, r6 + eor r3, r3, r12 + eor r3, r3, r12, lsl #3 //SWAPMOVE(r3, r3, 0x0a0a0a0a, 3) + eor r12, r4, r4, lsr #3 + and r12, r12, r6 + eor r4, r4, r12 + eor r4, r4, r12, lsl #3 //SWAPMOVE(r4, r4, 0x0a0a0a0a, 3) + eor r12, r5, r5, lsr #3 + and r12, r12, r6 + eor r5, r5, r12 + eor r5, r5, r12, lsl #3 //SWAPMOVE(r5, r5, 0x0a0a0a0a, 3) + eor r12, r2, r4, lsr #2 + and r12, r12, r7 + eor r2, r2, r12 + eor r4, r4, r12, lsl #2 //SWAPMOVE(r4, r2, 0x30303030, 2) + eor r12, r2, r3, lsr #4 + and r12, r12, r7, lsr #2 + eor r2, r2, r12 + eor r3, r3, r12, lsl #4 //SWAPMOVE(r3, r2, 0x0c0c0c0c, 4) + eor r12, r2, r5, lsr #6 + and r12, r12, r7, lsr #4 + eor r2, r2, r12 + eor r5, r5, r12, lsl #6 //SWAPMOVE(r5, r2, 0x03030303, 6) + eor r12, r4, r3, lsr #2 + and r12, r12, r7, lsr #2 + eor r4, r4, r12 + eor r3, r3, r12, lsl #2 //SWAPMOVE(r3, r4, 0x0c0c0c0c, 2) + eor r12, r4, r5, lsr #4 + and r12, r12, r7, lsr #4 + eor r4, r4, r12 + eor r5, r5, r12, lsl #4 //SWAPMOVE(r5, r4, 0x03030303, 4) + eor r12, r3, r5, lsr #2 + and r12, r12, r7, lsr #4 + eor r3, r3, r12 + eor r5, r5, r12, lsl #2 //SWAPMOVE(r5, r3, 0x03030303, 2) + movw r6, #0x5555 + movt r6, #0x5555 //r6 <- 0x55555555 + bl quadruple_round + bl quadruple_round + bl quadruple_round + bl quadruple_round + sub.w r0, #128 // rtk1 repeats every 16 rounds + bl quadruple_round + bl quadruple_round + bl quadruple_round + bl quadruple_round + sub.w r0, #128 // rtk1 repeats every 16 rounds + bl quadruple_round + bl quadruple_round + movw r6, #0x0a0a + movt r6, #0x0a0a //r6 <- 0x0a0a0a0a + eor r10, r3, r5, lsr #2 + and r10, r10, r7, lsr #4 + eor r3, r3, r10 + eor r5, r5, r10, lsl #2 //SWAPMOVE(r5, r3, 0x03030303, 2) + eor r10, r4, r5, lsr #4 + and r10, r10, r7, lsr #4 + eor r4, r4, r10 + eor r5, r5, r10, lsl #4 //SWAPMOVE(r5, r4, 0x03030303, 4) + eor r10, r4, r3, lsr #2 + and r10, r10, r7, lsr #2 + eor r4, r4, r10 + eor r3, r3, r10, lsl #2 //SWAPMOVE(r3, r4, 0x0c0c0c0c, 2) + eor r10, r2, r5, lsr #6 + and r10, r10, r7, lsr #4 + eor r2, r2, r10 + eor r5, r5, r10, lsl #6 //SWAPMOVE(r5, r2, 0x03030303, 6) + eor r10, r2, r3, lsr #4 + and r10, r10, r7, lsr #2 + eor r2, r2, r10 + eor r3, r3, r10, lsl #4 //SWAPMOVE(r3, r2, 0x0c0c0c0c, 4) + eor r10, r2, r4, lsr #2 + and r10, r10, r7 + eor r2, r2, r10 + eor r4, r4, r10, lsl #2 //SWAPMOVE(r4, r2, 0x30303030, 2) + eor r10, r5, r5, lsr #3 + and r10, r10, r6 + eor r5, r5, r10 + eor r5, r5, r10, lsl #3 //SWAPMOVE(r5, r5, 0x0a0a0a0a, 3) + eor r10, r4, r4, lsr #3 + and r10, r10, r6 + eor r4, r4, r10 + eor r4, r4, r10, lsl #3 //SWAPMOVE(r4, r4, 0x0a0a0a0a, 3) + eor r10, r3, r3, lsr #3 + and r10, r10, r6 + eor r3, r3, r10 + eor r3, r3, r10, lsl #3 //SWAPMOVE(r3, r3, 0x0a0a0a0a, 3) + eor r10, r2, r2, lsr #3 + and r10, r10, r6 + eor r2, r2, r10 + eor r2, r2, r10, lsl #3 //SWAPMOVE(r2, r2, 0x0a0a0a0a, 3) + ldr.w r0, [sp], #4 + strd r2, r4, [r0] + strd r3, r5, [r0, #8] + pop {r1-r12,r14} + bx lr + \ No newline at end of file diff --git a/romulus/Implementations/crypto_aead/romulusn1+/armsrc_NEC/api.h b/romulus/Implementations/crypto_aead/romulusn1+/armsrc_NEC/api.h new file mode 100644 index 0000000..a4aa567 --- /dev/null +++ b/romulus/Implementations/crypto_aead/romulusn1+/armsrc_NEC/api.h @@ -0,0 +1,5 @@ +#define CRYPTO_KEYBYTES 16 +#define CRYPTO_NSECBYTES 0 +#define CRYPTO_NPUBBYTES 16 +#define CRYPTO_ABYTES 16 +#define CRYPTO_NOOVERLAP 1 diff --git a/romulus/Implementations/crypto_aead/romulusn1+/armsrc_NEC/crypto_aead.h b/romulus/Implementations/crypto_aead/romulusn1+/armsrc_NEC/crypto_aead.h new file mode 100644 index 0000000..cfc09d6 --- /dev/null +++ b/romulus/Implementations/crypto_aead/romulusn1+/armsrc_NEC/crypto_aead.h @@ -0,0 +1,11 @@ +int crypto_aead_encrypt(unsigned char *c, unsigned long long *clen, + const unsigned char *m, unsigned long long mlen, + const unsigned char *ad, unsigned long long adlen, + const unsigned char *nsec, const unsigned char *npub, + const unsigned char *k); + +int crypto_aead_decrypt(unsigned char *m, unsigned long long *outputmlen, + unsigned char *nsec, + const unsigned char *c, unsigned long long clen, + const unsigned char *ad, unsigned long long adlen, + const unsigned char *npub, const unsigned char *k); diff --git a/romulus/Implementations/crypto_aead/romulusn1+/armsrc_NEC/encrypt.c b/romulus/Implementations/crypto_aead/romulusn1+/armsrc_NEC/encrypt.c new file mode 100644 index 0000000..5a7d0e0 --- /dev/null +++ b/romulus/Implementations/crypto_aead/romulusn1+/armsrc_NEC/encrypt.c @@ -0,0 +1,541 @@ +/* + * Date: 29 November 2018 + * Contact: Thomas Peyrin - thomas.peyrin@gmail.com + * Mustafa Khairallah - mustafam001@e.ntu.edu.sg + */ + +#include "crypto_aead.h" +#include "api.h" +#include "skinny.h" +#include +#include + +void pad (const unsigned char* m, unsigned char* mp, int l, int len8) { + int i; + + for (i = 0; i < l; i++) { + if (i < len8) { + mp[i] = m[i]; + } + else if (i == l - 1) { + mp[i] = (len8 & 0x0f); + } + else { + mp[i] = 0x00; + } + } + +} + +void g8A (unsigned char* s, unsigned char* c) { + unsigned int tmps[4]; + unsigned int tmpc[4]; + + tmps[0] = *((unsigned int *)&s[0]); + tmps[1] = *((unsigned int *)&s[4]); + tmps[2] = *((unsigned int *)&s[8]); + tmps[3] = *((unsigned int *)&s[12]); + + // c[i] = (s[i] >> 1) ^ (s[i] & 0x80) ^ ((s[i] & 0x01) << 7); + // + // (s[i] >> 1) -> ((s[i]>>1)&0x7f) + // (s[i] & 0x80) -> (s[i])&0x80) not changed + // ((s[i] & 0x01) << 7) -> ((s[i]<<7)&0x80) + + // use word access because of speeding up + tmpc[0] = ((tmps[0]>>1) & 0x7f7f7f7f) ^ (tmps[0] & 0x80808080) ^ ((tmps[0]<<7) & 0x80808080); + tmpc[1] = ((tmps[1]>>1) & 0x7f7f7f7f) ^ (tmps[1] & 0x80808080) ^ ((tmps[1]<<7) & 0x80808080); + tmpc[2] = ((tmps[2]>>1) & 0x7f7f7f7f) ^ (tmps[2] & 0x80808080) ^ ((tmps[2]<<7) & 0x80808080); + tmpc[3] = ((tmps[3]>>1) & 0x7f7f7f7f) ^ (tmps[3] & 0x80808080) ^ ((tmps[3]<<7) & 0x80808080); + + *((unsigned int *)&c[0]) = tmpc[0]; + *((unsigned int *)&c[4]) = tmpc[1]; + *((unsigned int *)&c[8]) = tmpc[2]; + *((unsigned int *)&c[12]) = tmpc[3]; +} + +void g8A_for_Tag_Generation (unsigned char* s, unsigned char* c) { + unsigned int tmps[4]; + unsigned int tmpc[4]; + + tmps[0] = *((unsigned int *)&s[0]); + tmps[1] = *((unsigned int *)&s[4]); + tmps[2] = *((unsigned int *)&s[8]); + tmps[3] = *((unsigned int *)&s[12]); + + // c[i] = (s[i] >> 1) ^ (s[i] & 0x80) ^ ((s[i] & 0x01) << 7); + // + // (s[i] >> 1) -> ((s[i]>>1)&0x7f) + // (s[i] & 0x80) -> (s[i])&0x80) not changed + // ((s[i] & 0x01) << 7) -> ((s[i]<<7)&0x80) + + // use word access because of speeding up + tmpc[0] = ((tmps[0]>>1) & 0x7f7f7f7f) ^ (tmps[0] & 0x80808080) ^ ((tmps[0]<<7) & 0x80808080); + tmpc[1] = ((tmps[1]>>1) & 0x7f7f7f7f) ^ (tmps[1] & 0x80808080) ^ ((tmps[1]<<7) & 0x80808080); + tmpc[2] = ((tmps[2]>>1) & 0x7f7f7f7f) ^ (tmps[2] & 0x80808080) ^ ((tmps[2]<<7) & 0x80808080); + tmpc[3] = ((tmps[3]>>1) & 0x7f7f7f7f) ^ (tmps[3] & 0x80808080) ^ ((tmps[3]<<7) & 0x80808080); + + // use byte access because of memory alignment. + // c is not always in word(4 byte) alignment. + c[0] = tmpc[0] &0xFF; + c[1] = (tmpc[0]>>8) &0xFF; + c[2] = (tmpc[0]>>16)&0xFF; + c[3] = (tmpc[0]>>24)&0xFF; + c[4] = tmpc[1] &0xFF; + c[5] = (tmpc[1]>>8) &0xFF; + c[6] = (tmpc[1]>>16)&0xFF; + c[7] = (tmpc[1]>>24)&0xFF; + c[8] = tmpc[2] &0xFF; + c[9] = (tmpc[2]>>8) &0xFF; + c[10] = (tmpc[2]>>16)&0xFF; + c[11] = (tmpc[2]>>24)&0xFF; + c[12] = tmpc[3] &0xFF; + c[13] = (tmpc[3]>>8) &0xFF; + c[14] = (tmpc[3]>>16)&0xFF; + c[15] = (tmpc[3]>>24)&0xFF; +} + +void rho_ad_eqov16 (const unsigned char* m, + unsigned char* s) { + *((unsigned int *)&s[0]) ^= *((unsigned int *)&m[0]); + *((unsigned int *)&s[4]) ^= *((unsigned int *)&m[4]); + *((unsigned int *)&s[8]) ^= *((unsigned int *)&m[8]); + *((unsigned int *)&s[12]) ^= *((unsigned int *)&m[12]); +} + +void rho_ad_ud16 (const unsigned char* m, + unsigned char* s, + int len8) { + unsigned char mp [16]; + + pad(m,mp,16,len8); + *((unsigned int *)&s[0]) ^= *((unsigned int *)&mp[0]); + *((unsigned int *)&s[4]) ^= *((unsigned int *)&mp[4]); + *((unsigned int *)&s[8]) ^= *((unsigned int *)&mp[8]); + *((unsigned int *)&s[12]) ^= *((unsigned int *)&mp[12]); +} + +void rho_eqov16 (const unsigned char* m, + unsigned char* c, + unsigned char* s) { + g8A(s,c); + + *((unsigned int *)&s[0]) ^= *((unsigned int *)&m[0]); + *((unsigned int *)&s[4]) ^= *((unsigned int *)&m[4]); + *((unsigned int *)&s[8]) ^= *((unsigned int *)&m[8]); + *((unsigned int *)&s[12]) ^= *((unsigned int *)&m[12]); + + *((unsigned int *)&c[0]) ^= *((unsigned int *)&m[0]); + *((unsigned int *)&c[4]) ^= *((unsigned int *)&m[4]); + *((unsigned int *)&c[8]) ^= *((unsigned int *)&m[8]); + *((unsigned int *)&c[12]) ^= *((unsigned int *)&m[12]); +} + +void rho_ud16 (const unsigned char* m, + unsigned char* c, + unsigned char* s, + int len8, + int ver) { + int i; + unsigned char mp [16]; + + pad(m,mp,ver,len8); + + g8A(s,c); + *((unsigned int *)&s[0]) ^= *((unsigned int *)&mp[0]); + *((unsigned int *)&s[4]) ^= *((unsigned int *)&mp[4]); + *((unsigned int *)&s[8]) ^= *((unsigned int *)&mp[8]); + *((unsigned int *)&s[12]) ^= *((unsigned int *)&mp[12]); + for (i = 0; i < ver; i++) { + if (i < len8) { + c[i] = c[i] ^ mp[i]; + } + else { + c[i] = 0; + } + } +} + +void irho (unsigned char* m, + const unsigned char* c, + unsigned char* s, + int len8, + int ver) { + int i; + unsigned char cp [16]; + + pad(c,cp,ver,len8); + + g8A(s,m); + for (i = 0; i < ver; i++) { + if (i < len8) { + s[i] = s[i] ^ cp[i] ^ m[i]; + } + else { + s[i] = s[i] ^ cp[i]; + } + if (i < len8) { + m[i] = m[i] ^ cp[i]; + } + else { + m[i] = 0; + } + } +} + +void reset_lfsr_gf56 (unsigned char* CNT) { + *((unsigned int *)&CNT[0]) = 0x00000001; + *((unsigned int *)&CNT[4]) = 0x00000000; +} + +void lfsr_gf56 (unsigned char* CNT) { + unsigned int tmpCNT[2]; + unsigned int fb0; + + tmpCNT[0] = *((unsigned int *)&CNT[0]); // CNT3 CNT2 CNT1 CNT0 + tmpCNT[1] = *((unsigned int *)&CNT[4]); // CNT7 CNT6 CNT5 CNT4 + + fb0 = 0; + if ((tmpCNT[1] >> 23)&0x01) { + fb0 = 0x95; + } + + tmpCNT[1] = tmpCNT[1] << 1 | tmpCNT[0] >> 31; + tmpCNT[0] = tmpCNT[0] << 1 ^ fb0; + + *((unsigned int *)&CNT[0]) = tmpCNT[0]; + *((unsigned int *)&CNT[4]) = tmpCNT[1]; +} + +void block_cipher(unsigned char* s, + const unsigned char* k, unsigned char* T, + unsigned char* CNT, + skinny_ctrl* p_skinny_ctrl) { + p_skinny_ctrl->func_skinny_128_384_enc (s,p_skinny_ctrl,CNT,T,k); +} + +void nonce_encryption (const unsigned char* N, + unsigned char* CNT, + unsigned char*s, const unsigned char* k, + unsigned char D, + skinny_ctrl* p_skinny_ctrl) { + unsigned char T [16]; + + *((unsigned int *)&T[0]) = *((unsigned int *)&N[0]); + *((unsigned int *)&T[4]) = *((unsigned int *)&N[4]); + *((unsigned int *)&T[8]) = *((unsigned int *)&N[8]); + *((unsigned int *)&T[12]) = *((unsigned int *)&N[12]); + CNT[7] = D; + block_cipher(s,k,T,CNT,p_skinny_ctrl); + +} + +void generate_tag (unsigned char** c, unsigned char* s, + int n, unsigned long long* clen) { + g8A_for_Tag_Generation(s, *c); + *c = *c + n; + *c = *c - *clen; +} + +unsigned long long msg_encryption_eqov16 (const unsigned char** M, unsigned char** c, + const unsigned char* N, + unsigned char* CNT, + unsigned char*s, const unsigned char* k, + unsigned char D, + unsigned long long mlen, + skinny_ctrl* p_skinny_ctrl) { + rho_eqov16(*M, *c, s); + *c = *c + 16; + *M = *M + 16; + lfsr_gf56(CNT); + nonce_encryption(N,CNT,s,k,D,p_skinny_ctrl); + return mlen - 16; +} + +unsigned long long msg_encryption_ud16 (const unsigned char** M, unsigned char** c, + const unsigned char* N, + unsigned char* CNT, + unsigned char*s, const unsigned char* k, + unsigned char D, + unsigned long long mlen, + skinny_ctrl* p_skinny_ctrl) { + rho_ud16(*M, *c, s, mlen, 16); + *c = *c + mlen; + *M = *M + mlen; + lfsr_gf56(CNT); + nonce_encryption(N,CNT,s,k,D,p_skinny_ctrl); + return 0; +} + +unsigned long long msg_decryption (unsigned char** M, const unsigned char** c, + const unsigned char* N, + unsigned char* CNT, + unsigned char*s, const unsigned char* k, + unsigned char D, + unsigned long long clen, + skinny_ctrl* p_skinny_ctrl) { + int len8; + + if (clen >= 16) { + len8 = 16; + clen = clen - 16; + } + else { + len8 = clen; + clen = 0; + } + irho(*M, *c, s, len8, 16); + *c = *c + len8; + *M = *M + len8; + lfsr_gf56(CNT); + nonce_encryption(N,CNT,s,k,D,p_skinny_ctrl); + return clen; +} + +unsigned long long ad_encryption_eqov32 (const unsigned char** A, unsigned char* s, + const unsigned char* k, unsigned long long adlen, + unsigned char* CNT, + unsigned char D, + skinny_ctrl* p_skinny_ctrl) { + + unsigned char T [16]; + + rho_ad_eqov16(*A, s); + *A = *A + 16; + lfsr_gf56(CNT); + + //pad(*A, T, 16, 16); + *((unsigned int *)&T[0]) = *((unsigned int *)&(*A)[0]); + *((unsigned int *)&T[4]) = *((unsigned int *)&(*A)[4]); + *((unsigned int *)&T[8]) = *((unsigned int *)&(*A)[8]); + *((unsigned int *)&T[12]) = *((unsigned int *)&(*A)[12]); + *A = *A + 16; + CNT[7] = D; + block_cipher(s,k,T,CNT,p_skinny_ctrl); + lfsr_gf56(CNT); + + return adlen - 32; +} + +unsigned long long ad_encryption_ov16 (const unsigned char** A, unsigned char* s, + const unsigned char* k, unsigned long long adlen, + unsigned char* CNT, + unsigned char D, + skinny_ctrl* p_skinny_ctrl) { + + unsigned char T [16]; + + adlen = adlen - 16; + rho_ad_eqov16(*A, s); + *A = *A + 16; + lfsr_gf56(CNT); + + pad(*A, T, 16, adlen); + *A = *A + adlen; + CNT[7] = D; + block_cipher(s,k,T,CNT,p_skinny_ctrl); + lfsr_gf56(CNT); + + return 0; +} + +unsigned long long ad_encryption_eq16 (const unsigned char** A, unsigned char* s, + unsigned char* CNT) { + + rho_ad_eqov16(*A, s); + *A = *A + 16; + lfsr_gf56(CNT); + + return 0; +} + +unsigned long long ad_encryption_ud16 (const unsigned char** A, unsigned char* s, + unsigned long long adlen, + unsigned char* CNT) { + + rho_ad_ud16(*A, s, adlen); + *A = *A + adlen; + lfsr_gf56(CNT); + + return 0; +} + +int crypto_aead_encrypt ( + unsigned char* c, unsigned long long* clen, + const unsigned char* m, unsigned long long mlen, + const unsigned char* ad, unsigned long long adlen, + const unsigned char* nsec, + const unsigned char* npub, + const unsigned char* k + ) +{ + unsigned char s[16]; + // size 7 -> 8 for word access + unsigned char CNT[8]; + const unsigned char* A; + const unsigned char* M; + const unsigned char* N; + + skinny_ctrl l_skinny_ctrl; + + (void) nsec; + A = ad; + M = m; + N = npub; + + l_skinny_ctrl.func_skinny_128_384_enc = skinny_128_384_enc123_12; + + *((unsigned int *)&s[0]) = 0x00000000; + *((unsigned int *)&s[4]) = 0x00000000; + *((unsigned int *)&s[8]) = 0x00000000; + *((unsigned int *)&s[12]) = 0x00000000; + reset_lfsr_gf56(CNT); + + if (adlen == 0) { // AD is an empty string + lfsr_gf56(CNT); + nonce_encryption(N,CNT,s,k,0x1a,&l_skinny_ctrl); + } + else while (adlen > 0) { + if (adlen < 16) { // The last block of AD is odd and incomplete + adlen = ad_encryption_ud16(&A,s,adlen,CNT); + nonce_encryption(N,CNT,s,k,0x1a,&l_skinny_ctrl); + } + else if (adlen == 16) { // The last block of AD is odd and complete + adlen = ad_encryption_eq16(&A,s,CNT); + nonce_encryption(N,CNT,s,k,0x18,&l_skinny_ctrl); + } + else if (adlen < (32)) { // The last block of AD is even and incomplete + adlen = ad_encryption_ov16(&A,s,k,adlen,CNT,0x08,&l_skinny_ctrl); + nonce_encryption(N,CNT,s,k,0x1a,&l_skinny_ctrl); + } + else if (adlen == (32)) { // The last block of AD is even and complete + adlen = ad_encryption_eqov32(&A,s,k,adlen,CNT,0x08,&l_skinny_ctrl); + nonce_encryption(N,CNT,s,k,0x18,&l_skinny_ctrl); + } + else { // A normal full pair of blocks of AD + adlen = ad_encryption_eqov32(&A,s,k,adlen,CNT,0x08,&l_skinny_ctrl); + } + } + + // because, nonce_encryption is called at the last block of AD encryption + l_skinny_ctrl.func_skinny_128_384_enc = skinny_128_384_enc1_1; + + reset_lfsr_gf56(CNT); + + *clen = mlen + 16; + + if (mlen == 0) { // M is an empty string + lfsr_gf56(CNT); + nonce_encryption(N,CNT,s,k,0x15,&l_skinny_ctrl); + } + else while (mlen > 0) { + if (mlen < 16) { // The last block of M is incomplete + mlen = msg_encryption_ud16(&M,&c,N,CNT,s,k,0x15,mlen,&l_skinny_ctrl); + } + else if (mlen == 16) { // The last block of M is complete + mlen = msg_encryption_eqov16(&M,&c,N,CNT,s,k,0x14,mlen,&l_skinny_ctrl); + } + else { // A normal full message block + mlen = msg_encryption_eqov16(&M,&c,N,CNT,s,k,0x04,mlen,&l_skinny_ctrl); + } + } + + // Tag generation + generate_tag(&c,s,16,clen); + + return 0; +} + +int crypto_aead_decrypt( +unsigned char *m,unsigned long long *mlen, +unsigned char *nsec, +const unsigned char *c,unsigned long long clen, +const unsigned char *ad,unsigned long long adlen, +const unsigned char *npub, +const unsigned char *k +) +{ + + unsigned char s[16]; + unsigned char T[16]; + // size 7 -> 8 for word access + unsigned char CNT[8]; + const unsigned char* A; + unsigned char* M; + const unsigned char* N; + unsigned int i; + + skinny_ctrl l_skinny_ctrl; + + (void) nsec; + A = ad; + M = m; + N = npub; + + l_skinny_ctrl.func_skinny_128_384_enc = skinny_128_384_enc123_12; + + for (i = 0; i < 16; i++) { + s[i] = 0; + } + reset_lfsr_gf56(CNT); + + if (adlen == 0) { // AD is an empty string + lfsr_gf56(CNT); + nonce_encryption(N,CNT,s,k,0x1a,&l_skinny_ctrl); + } + else while (adlen > 0) { + if (adlen < 16) { // The last block of AD is odd and incomplete + adlen = ad_encryption_ud16(&A,s,adlen,CNT); + nonce_encryption(N,CNT,s,k,0x1a,&l_skinny_ctrl); + } + else if (adlen == 16) { // The last block of AD is odd and complete + adlen = ad_encryption_eq16(&A,s,CNT); + nonce_encryption(N,CNT,s,k,0x18,&l_skinny_ctrl); + } + else if (adlen < (32)) { // The last block of AD is even and incomplete + adlen = ad_encryption_ov16(&A,s,k,adlen,CNT,0x08,&l_skinny_ctrl); + nonce_encryption(N,CNT,s,k,0x1a,&l_skinny_ctrl); + } + else if (adlen == (32)) { // The last block of AD is even and complete + adlen = ad_encryption_eqov32(&A,s,k,adlen,CNT,0x08,&l_skinny_ctrl); + nonce_encryption(N,CNT,s,k,0x18,&l_skinny_ctrl); + } + else { // A normal full pair of blocks of AD + adlen = ad_encryption_eqov32(&A,s,k,adlen,CNT,0x08,&l_skinny_ctrl); + } + } + + l_skinny_ctrl.func_skinny_128_384_enc = skinny_128_384_enc1_1; + reset_lfsr_gf56(CNT); + + clen = clen - 16; + *mlen = clen; + + if (clen == 0) { // C is an empty string + lfsr_gf56(CNT); + nonce_encryption(N,CNT,s,k,0x15,&l_skinny_ctrl); + } + else while (clen > 0) { + if (clen < 16) { // The last block of C is incomplete + clen = msg_decryption(&M,&c,N,CNT,s,k,0x15,clen,&l_skinny_ctrl); + } + else if (clen == 16) { // The last block of C is complete + clen = msg_decryption(&M,&c,N,CNT,s,k,0x14,clen,&l_skinny_ctrl); + } + else { // A normal full message block + clen = msg_decryption(&M,&c,N,CNT,s,k,0x04,clen,&l_skinny_ctrl); + } + } + + // Tag generation + g8A_for_Tag_Generation(s, T); + for (i = 0; i < 16; i++) { + if (T[i] != (*(c+i))) { + return -1; + } + } + + return 0; +} + + diff --git a/romulus/Implementations/crypto_aead/romulusn1+/armsrc_NEC/skinny.h b/romulus/Implementations/crypto_aead/romulusn1+/armsrc_NEC/skinny.h new file mode 100644 index 0000000..2da62ae --- /dev/null +++ b/romulus/Implementations/crypto_aead/romulusn1+/armsrc_NEC/skinny.h @@ -0,0 +1,8 @@ +typedef struct ___skinny_ctrl { + unsigned char roundKeys[704]; // number of round : 40 + void (*func_skinny_128_384_enc)(unsigned char*, struct ___skinny_ctrl*, unsigned char* CNT, unsigned char* T, const unsigned char* K); +} skinny_ctrl; + +extern void skinny_128_384_enc123_12 (unsigned char* input, skinny_ctrl* pskinny_ctrl, unsigned char* CNT, unsigned char* T, const unsigned char* K); +extern void skinny_128_384_enc12_12 (unsigned char* input, skinny_ctrl* pskinny_ctrl, unsigned char* CNT, unsigned char* T, const unsigned char* K); +extern void skinny_128_384_enc1_1 (unsigned char* input, skinny_ctrl* pskinny_ctrl, unsigned char* CNT, unsigned char* T, const unsigned char* K); diff --git a/romulus/Implementations/crypto_aead/romulusn1+/armsrc_NEC/skinny_key_schedule2.c b/romulus/Implementations/crypto_aead/romulusn1+/armsrc_NEC/skinny_key_schedule2.c new file mode 100644 index 0000000..1315e83 --- /dev/null +++ b/romulus/Implementations/crypto_aead/romulusn1+/armsrc_NEC/skinny_key_schedule2.c @@ -0,0 +1,2163 @@ +/****************************************************************************** + * Copyright (c) 2020, NEC Corporation. + * + * THIS CODE IS FURNISHED TO YOU "AS IS" WITHOUT WARRANTY OF ANY KIND. + * + *****************************************************************************/ + +/* + * SKINNY-128-384 + * + * load * AC(c0 c1) ^ TK3 + * calc AC(c0 c1) ^ TK2 -> store + * ART(TK2) + * + * number of rounds : 40 + */ + +__attribute__((aligned(4))) +void RunEncryptionKeyScheduleTK2(unsigned char *roundKeys) +{ + // r0 : points to roundKeys(& masterKey) + // r1-r4 : key state + // r5-r6 : temp use + // r7 : constant(0xfefefefe) + // r8 : constant(0x01010101) + // r9 : temp use + // r10 : temp use + asm volatile( + "stmdb sp!, {r4-r10} \n\t" + "ldr.w r1, [r0,#16] \n\t" // load master key + "ldr.w r2, [r0,#20] \n\t" // load master key + "ldr.w r3, [r0,#24] \n\t" // load master key + "ldr.w r4, [r0,#28] \n\t" // load master key + "mov.w r7, #0xfefefefe \n\t" + "mov.w r8, #0x01010101 \n\t" + + // round 1 + + "ldr.w r9, [r0,#384] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#388] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#64] \n\t" + "str.w r10, [r0,#68] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 2 + + "ldr.w r9, [r0,#392] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#396] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#72] \n\t" + "str.w r10, [r0,#76] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 3 + + "ldr.w r9, [r0,#400] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#404] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#80] \n\t" + "str.w r10, [r0,#84] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 4 + + "ldr.w r9, [r0,#408] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#412] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#88] \n\t" + "str.w r10, [r0,#92] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 5 + + "ldr.w r9, [r0,#416] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#420] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#96] \n\t" + "str.w r10, [r0,#100] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 6 + + "ldr.w r9, [r0,#424] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#428] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#104] \n\t" + "str.w r10, [r0,#108] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 7 + + "ldr.w r9, [r0,#432] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#436] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#112] \n\t" + "str.w r10, [r0,#116] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 8 + + "ldr.w r9, [r0,#440] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#444] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#120] \n\t" + "str.w r10, [r0,#124] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 9 + + "ldr.w r9, [r0,#448] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#452] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#128] \n\t" + "str.w r10, [r0,#132] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 10 + + "ldr.w r9, [r0,#456] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#460] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#136] \n\t" + "str.w r10, [r0,#140] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 11 + + "ldr.w r9, [r0,#464] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#468] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#144] \n\t" + "str.w r10, [r0,#148] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 12 + + "ldr.w r9, [r0,#472] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#476] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#152] \n\t" + "str.w r10, [r0,#156] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 13 + + "ldr.w r9, [r0,#480] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#484] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#160] \n\t" + "str.w r10, [r0,#164] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 14 + + "ldr.w r9, [r0,#488] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#492] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#168] \n\t" + "str.w r10, [r0,#172] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 15 + + "ldr.w r9, [r0,#496] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#500] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#176] \n\t" + "str.w r10, [r0,#180] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 16 + + "ldr.w r9, [r0,#504] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#508] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#184] \n\t" + "str.w r10, [r0,#188] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 17 + + "ldr.w r9, [r0,#512] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#516] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#192] \n\t" + "str.w r10, [r0,#196] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 18 + + "ldr.w r9, [r0,#520] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#524] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#200] \n\t" + "str.w r10, [r0,#204] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 19 + + "ldr.w r9, [r0,#528] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#532] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#208] \n\t" + "str.w r10, [r0,#212] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 20 + + "ldr.w r9, [r0,#536] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#540] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#216] \n\t" + "str.w r10, [r0,#220] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 21 + + "ldr.w r9, [r0,#544] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#548] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#224] \n\t" + "str.w r10, [r0,#228] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 22 + + "ldr.w r9, [r0,#552] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#556] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#232] \n\t" + "str.w r10, [r0,#236] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 23 + + "ldr.w r9, [r0,#560] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#564] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#240] \n\t" + "str.w r10, [r0,#244] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 24 + + "ldr.w r9, [r0,#568] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#572] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#248] \n\t" + "str.w r10, [r0,#252] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 25 + + "ldr.w r9, [r0,#576] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#580] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#256] \n\t" + "str.w r10, [r0,#260] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 26 + + "ldr.w r9, [r0,#584] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#588] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#264] \n\t" + "str.w r10, [r0,#268] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 27 + + "ldr.w r9, [r0,#592] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#596] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#272] \n\t" + "str.w r10, [r0,#276] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 28 + + "ldr.w r9, [r0,#600] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#604] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#280] \n\t" + "str.w r10, [r0,#284] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 29 + + "ldr.w r9, [r0,#608] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#612] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#288] \n\t" + "str.w r10, [r0,#292] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 30 + + "ldr.w r9, [r0,#616] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#620] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#296] \n\t" + "str.w r10, [r0,#300] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 31 + + "ldr.w r9, [r0,#624] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#628] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#304] \n\t" + "str.w r10, [r0,#308] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 32 + + "ldr.w r9, [r0,#632] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#636] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#312] \n\t" + "str.w r10, [r0,#316] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 33 + + "ldr.w r9, [r0,#640] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#644] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#320] \n\t" + "str.w r10, [r0,#324] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 34 + + "ldr.w r9, [r0,#648] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#652] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#328] \n\t" + "str.w r10, [r0,#332] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 35 + + "ldr.w r9, [r0,#656] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#660] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#336] \n\t" + "str.w r10, [r0,#340] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 36 + + "ldr.w r9, [r0,#664] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#668] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#344] \n\t" + "str.w r10, [r0,#348] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 37 + + "ldr.w r9, [r0,#672] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#676] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#352] \n\t" + "str.w r10, [r0,#356] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 38 + + "ldr.w r9, [r0,#680] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#684] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#360] \n\t" + "str.w r10, [r0,#364] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 39 + + "ldr.w r9, [r0,#688] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#692] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#368] \n\t" + "str.w r10, [r0,#372] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 40 + + "ldr.w r9, [r0,#696] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#700] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#376] \n\t" + "str.w r10, [r0,#380] \n\t" + + // permutation + + // not need to calculate (not used) + + "ldmia.w sp!, {r4-r10} \n\t" + : + : [roundKeys] "r" (roundKeys) + : "cc"); +} diff --git a/romulus/Implementations/crypto_aead/romulusn1+/armsrc_NEC/skinny_key_schedule3.c b/romulus/Implementations/crypto_aead/romulusn1+/armsrc_NEC/skinny_key_schedule3.c new file mode 100644 index 0000000..0b8f83b --- /dev/null +++ b/romulus/Implementations/crypto_aead/romulusn1+/armsrc_NEC/skinny_key_schedule3.c @@ -0,0 +1,2201 @@ +/****************************************************************************** + * Copyright (c) 2020, NEC Corporation. + * + * THIS CODE IS FURNISHED TO YOU "AS IS" WITHOUT WARRANTY OF ANY KIND. + * + *****************************************************************************/ + +/* + * SKINNY-128-384 + * + * AC(c0 c1) ^ TK3 -> store + * ART(TK3) + * + * number of rounds : 40 + */ + +__attribute__((aligned(4))) +void RunEncryptionKeyScheduleTK3(unsigned char *roundKeys, unsigned char *pRC) +{ + // r0 : points to roundKeys(& masterKey) + // r1 : points to RC + // r2-r5 : key state + // r6-r7 : temp use + // r8 : constant(0x7f7f7f7f) + // r9 : constant(0x80808080) + asm volatile( + "stmdb sp!, {r4-r9} \n\t" + "ldr.w r2, [r0,#32] \n\t" // load master key + "ldr.w r3, [r0,#36] \n\t" // load master key + "ldr.w r4, [r0,#40] \n\t" // load master key + "ldr.w r5, [r0,#44] \n\t" // load master key + "mov.w r8, #0x7f7f7f7f \n\t" + "mov.w r9, #0x80808080 \n\t" + + // round 1 + + // AC(c0 c1) + "ldrb.w r6, [r1,#0] \n\t" // load RC + + "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc + "and.w r6, r6, #0xf \n\t" + "eor.w r6, r6, r2 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#384] \n\t" + "str.w r7, [r0,#388] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 2 + + // AC(c0 c1) + "ldrb.w r6, [r1,#1] \n\t" // load RC + + "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc + "and.w r6, r6, #0xf \n\t" + "eor.w r6, r6, r2 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#392] \n\t" + "str.w r7, [r0,#396] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 3 + + // AC(c0 c1) + "ldrb.w r6, [r1,#2] \n\t" // load RC + + "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc + "and.w r6, r6, #0xf \n\t" + "eor.w r6, r6, r2 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#400] \n\t" + "str.w r7, [r0,#404] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 4 + + // AC(c0 c1) + "ldrb.w r6, [r1,#3] \n\t" // load RC + + "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc + "and.w r6, r6, #0xf \n\t" + "eor.w r6, r6, r2 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#408] \n\t" + "str.w r7, [r0,#412] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 5 + + // AC(c0 c1) + "ldrb.w r6, [r1,#4] \n\t" // load RC + + "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc + "and.w r6, r6, #0xf \n\t" + "eor.w r6, r6, r2 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#416] \n\t" + "str.w r7, [r0,#420] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 6 + + // AC(c0 c1) + "ldrb.w r6, [r1,#5] \n\t" // load RC + + "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc + "and.w r6, r6, #0xf \n\t" + "eor.w r6, r6, r2 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#424] \n\t" + "str.w r7, [r0,#428] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 7 + + // AC(c0 c1) + "ldrb.w r6, [r1,#6] \n\t" // load RC + + "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc + "and.w r6, r6, #0xf \n\t" + "eor.w r6, r6, r2 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#432] \n\t" + "str.w r7, [r0,#436] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 8 + + // AC(c0 c1) + "ldrb.w r6, [r1,#7] \n\t" // load RC + + "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc + "and.w r6, r6, #0xf \n\t" + "eor.w r6, r6, r2 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#440] \n\t" + "str.w r7, [r0,#444] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 9 + + // AC(c0 c1) + "ldrb.w r6, [r1,#8] \n\t" // load RC + + "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc + "and.w r6, r6, #0xf \n\t" + "eor.w r6, r6, r2 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#448] \n\t" + "str.w r7, [r0,#452] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 10 + + // AC(c0 c1) + "ldrb.w r6, [r1,#9] \n\t" // load RC + + "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc + "and.w r6, r6, #0xf \n\t" + "eor.w r6, r6, r2 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#456] \n\t" + "str.w r7, [r0,#460] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 11 + + // AC(c0 c1) + "ldrb.w r6, [r1,#10] \n\t" // load RC + + "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc + "and.w r6, r6, #0xf \n\t" + "eor.w r6, r6, r2 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#464] \n\t" + "str.w r7, [r0,#468] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 12 + + // AC(c0 c1) + "ldrb.w r6, [r1,#11] \n\t" // load RC + + "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc + "and.w r6, r6, #0xf \n\t" + "eor.w r6, r6, r2 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#472] \n\t" + "str.w r7, [r0,#476] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 13 + + // AC(c0 c1) + "ldrb.w r6, [r1,#12] \n\t" // load RC + + "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc + "and.w r6, r6, #0xf \n\t" + "eor.w r6, r6, r2 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#480] \n\t" + "str.w r7, [r0,#484] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 14 + + // AC(c0 c1) + "ldrb.w r6, [r1,#13] \n\t" // load RC + + "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc + "and.w r6, r6, #0xf \n\t" + "eor.w r6, r6, r2 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#488] \n\t" + "str.w r7, [r0,#492] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 15 + + // AC(c0 c1) + "ldrb.w r6, [r1,#14] \n\t" // load RC + + "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc + "and.w r6, r6, #0xf \n\t" + "eor.w r6, r6, r2 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#496] \n\t" + "str.w r7, [r0,#500] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 16 + + // AC(c0 c1) + "ldrb.w r6, [r1,#15] \n\t" // load RC + + "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc + "and.w r6, r6, #0xf \n\t" + "eor.w r6, r6, r2 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#504] \n\t" + "str.w r7, [r0,#508] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 17 + + // AC(c0 c1) + "ldrb.w r6, [r1,#16] \n\t" // load RC + + "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc + "and.w r6, r6, #0xf \n\t" + "eor.w r6, r6, r2 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#512] \n\t" + "str.w r7, [r0,#516] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 18 + + // AC(c0 c1) + "ldrb.w r6, [r1,#17] \n\t" // load RC + + "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc + "and.w r6, r6, #0xf \n\t" + "eor.w r6, r6, r2 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#520] \n\t" + "str.w r7, [r0,#524] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 19 + + // AC(c0 c1) + "ldrb.w r6, [r1,#18] \n\t" // load RC + + "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc + "and.w r6, r6, #0xf \n\t" + "eor.w r6, r6, r2 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#528] \n\t" + "str.w r7, [r0,#532] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 20 + + // AC(c0 c1) + "ldrb.w r6, [r1,#19] \n\t" // load RC + + "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc + "and.w r6, r6, #0xf \n\t" + "eor.w r6, r6, r2 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#536] \n\t" + "str.w r7, [r0,#540] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 21 + + // AC(c0 c1) + "ldrb.w r6, [r1,#20] \n\t" // load RC + + "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc + "and.w r6, r6, #0xf \n\t" + "eor.w r6, r6, r2 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#544] \n\t" + "str.w r7, [r0,#548] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 22 + + // AC(c0 c1) + "ldrb.w r6, [r1,#21] \n\t" // load RC + + "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc + "and.w r6, r6, #0xf \n\t" + "eor.w r6, r6, r2 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#552] \n\t" + "str.w r7, [r0,#556] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 23 + + // AC(c0 c1) + "ldrb.w r6, [r1,#22] \n\t" // load RC + + "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc + "and.w r6, r6, #0xf \n\t" + "eor.w r6, r6, r2 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#560] \n\t" + "str.w r7, [r0,#564] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 24 + + // AC(c0 c1) + "ldrb.w r6, [r1,#23] \n\t" // load RC + + "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc + "and.w r6, r6, #0xf \n\t" + "eor.w r6, r6, r2 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#568] \n\t" + "str.w r7, [r0,#572] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 25 + + // AC(c0 c1) + "ldrb.w r6, [r1,#24] \n\t" // load RC + + "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc + "and.w r6, r6, #0xf \n\t" + "eor.w r6, r6, r2 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#576] \n\t" + "str.w r7, [r0,#580] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 26 + + // AC(c0 c1) + "ldrb.w r6, [r1,#25] \n\t" // load RC + + "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc + "and.w r6, r6, #0xf \n\t" + "eor.w r6, r6, r2 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#584] \n\t" + "str.w r7, [r0,#588] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 27 + + // AC(c0 c1) + "ldrb.w r6, [r1,#26] \n\t" // load RC + + "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc + "and.w r6, r6, #0xf \n\t" + "eor.w r6, r6, r2 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#592] \n\t" + "str.w r7, [r0,#596] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 28 + + // AC(c0 c1) + "ldrb.w r6, [r1,#27] \n\t" // load RC + + "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc + "and.w r6, r6, #0xf \n\t" + "eor.w r6, r6, r2 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#600] \n\t" + "str.w r7, [r0,#604] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 29 + + // AC(c0 c1) + "ldrb.w r6, [r1,#28] \n\t" // load RC + + "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc + "and.w r6, r6, #0xf \n\t" + "eor.w r6, r6, r2 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#608] \n\t" + "str.w r7, [r0,#612] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 30 + + // AC(c0 c1) + "ldrb.w r6, [r1,#29] \n\t" // load RC + + "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc + "and.w r6, r6, #0xf \n\t" + "eor.w r6, r6, r2 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#616] \n\t" + "str.w r7, [r0,#620] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 31 + + // AC(c0 c1) + "ldrb.w r6, [r1,#30] \n\t" // load RC + + "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc + "and.w r6, r6, #0xf \n\t" + "eor.w r6, r6, r2 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#624] \n\t" + "str.w r7, [r0,#628] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 32 + + // AC(c0 c1) + "ldrb.w r6, [r1,#31] \n\t" // load RC + + "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc + "and.w r6, r6, #0xf \n\t" + "eor.w r6, r6, r2 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#632] \n\t" + "str.w r7, [r0,#636] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 33 + + // AC(c0 c1) + "ldrb.w r6, [r1,#32] \n\t" // load RC + + "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc + "and.w r6, r6, #0xf \n\t" + "eor.w r6, r6, r2 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#640] \n\t" + "str.w r7, [r0,#644] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 34 + + // AC(c0 c1) + "ldrb.w r6, [r1,#33] \n\t" // load RC + + "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc + "and.w r6, r6, #0xf \n\t" + "eor.w r6, r6, r2 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#648] \n\t" + "str.w r7, [r0,#652] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 35 + + // AC(c0 c1) + "ldrb.w r6, [r1,#34] \n\t" // load RC + + "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc + "and.w r6, r6, #0xf \n\t" + "eor.w r6, r6, r2 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#656] \n\t" + "str.w r7, [r0,#660] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 36 + + // AC(c0 c1) + "ldrb.w r6, [r1,#35] \n\t" // load RC + + "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc + "and.w r6, r6, #0xf \n\t" + "eor.w r6, r6, r2 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#664] \n\t" + "str.w r7, [r0,#668] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 37 + + // AC(c0 c1) + "ldrb.w r6, [r1,#36] \n\t" // load RC + + "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc + "and.w r6, r6, #0xf \n\t" + "eor.w r6, r6, r2 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#672] \n\t" + "str.w r7, [r0,#676] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 38 + + // AC(c0 c1) + "ldrb.w r6, [r1,#37] \n\t" // load RC + + "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc + "and.w r6, r6, #0xf \n\t" + "eor.w r6, r6, r2 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#680] \n\t" + "str.w r7, [r0,#684] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 39 + + // AC(c0 c1) + "ldrb.w r6, [r1,#38] \n\t" // load RC + + "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc + "and.w r6, r6, #0xf \n\t" + "eor.w r6, r6, r2 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#688] \n\t" + "str.w r7, [r0,#692] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 40 + + // AC(c0 c1) + "ldrb.w r6, [r1,#39] \n\t" // load RC + + "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc + "and.w r6, r6, #0xf \n\t" + "eor.w r6, r6, r2 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#696] \n\t" + "str.w r7, [r0,#700] \n\t" + + // permutation + + // not need to calculate (not used) + + "ldmia.w sp!, {r4-r9} \n\t" + : + : [roundKeys] "r" (roundKeys), [pRC] "r" (pRC) + : "cc"); +} diff --git a/romulus/Implementations/crypto_aead/romulusn1+/armsrc_NEC/skinny_main.c b/romulus/Implementations/crypto_aead/romulusn1+/armsrc_NEC/skinny_main.c new file mode 100644 index 0000000..e266958 --- /dev/null +++ b/romulus/Implementations/crypto_aead/romulusn1+/armsrc_NEC/skinny_main.c @@ -0,0 +1,3462 @@ +/****************************************************************************** + * Copyright (c) 2020, NEC Corporation. + * + * THIS CODE IS FURNISHED TO YOU "AS IS" WITHOUT WARRANTY OF ANY KIND. + * + *****************************************************************************/ + +/* + * SKINNY-128-384 + * + * ART(TK1) -> store + * load AC(c0 c1) ^ TK3 ^ TK2 + * load TK1 + * calc AC(c0 c1) ^ TK3 ^ TK2 ^ TK1 -> use at (AC->ART) + * SC->SR->(AC->ART)->MC + * + * number of rounds : 40 + */ + +#include "skinny.h" + +/* + * S-BOX + */ +unsigned char SBOX[512] += { + // Original + 0x65, 0x4c, 0x6a, 0x42, 0x4b, 0x63, 0x43, 0x6b, 0x55, 0x75, 0x5a, 0x7a, 0x53, 0x73, 0x5b, 0x7b, + 0x35, 0x8c, 0x3a, 0x81, 0x89, 0x33, 0x80, 0x3b, 0x95, 0x25, 0x98, 0x2a, 0x90, 0x23, 0x99, 0x2b, + 0xe5, 0xcc, 0xe8, 0xc1, 0xc9, 0xe0, 0xc0, 0xe9, 0xd5, 0xf5, 0xd8, 0xf8, 0xd0, 0xf0, 0xd9, 0xf9, + 0xa5, 0x1c, 0xa8, 0x12, 0x1b, 0xa0, 0x13, 0xa9, 0x05, 0xb5, 0x0a, 0xb8, 0x03, 0xb0, 0x0b, 0xb9, + 0x32, 0x88, 0x3c, 0x85, 0x8d, 0x34, 0x84, 0x3d, 0x91, 0x22, 0x9c, 0x2c, 0x94, 0x24, 0x9d, 0x2d, + 0x62, 0x4a, 0x6c, 0x45, 0x4d, 0x64, 0x44, 0x6d, 0x52, 0x72, 0x5c, 0x7c, 0x54, 0x74, 0x5d, 0x7d, + 0xa1, 0x1a, 0xac, 0x15, 0x1d, 0xa4, 0x14, 0xad, 0x02, 0xb1, 0x0c, 0xbc, 0x04, 0xb4, 0x0d, 0xbd, + 0xe1, 0xc8, 0xec, 0xc5, 0xcd, 0xe4, 0xc4, 0xed, 0xd1, 0xf1, 0xdc, 0xfc, 0xd4, 0xf4, 0xdd, 0xfd, + 0x36, 0x8e, 0x38, 0x82, 0x8b, 0x30, 0x83, 0x39, 0x96, 0x26, 0x9a, 0x28, 0x93, 0x20, 0x9b, 0x29, + 0x66, 0x4e, 0x68, 0x41, 0x49, 0x60, 0x40, 0x69, 0x56, 0x76, 0x58, 0x78, 0x50, 0x70, 0x59, 0x79, + 0xa6, 0x1e, 0xaa, 0x11, 0x19, 0xa3, 0x10, 0xab, 0x06, 0xb6, 0x08, 0xba, 0x00, 0xb3, 0x09, 0xbb, + 0xe6, 0xce, 0xea, 0xc2, 0xcb, 0xe3, 0xc3, 0xeb, 0xd6, 0xf6, 0xda, 0xfa, 0xd3, 0xf3, 0xdb, 0xfb, + 0x31, 0x8a, 0x3e, 0x86, 0x8f, 0x37, 0x87, 0x3f, 0x92, 0x21, 0x9e, 0x2e, 0x97, 0x27, 0x9f, 0x2f, + 0x61, 0x48, 0x6e, 0x46, 0x4f, 0x67, 0x47, 0x6f, 0x51, 0x71, 0x5e, 0x7e, 0x57, 0x77, 0x5f, 0x7f, + 0xa2, 0x18, 0xae, 0x16, 0x1f, 0xa7, 0x17, 0xaf, 0x01, 0xb2, 0x0e, 0xbe, 0x07, 0xb7, 0x0f, 0xbf, + 0xe2, 0xca, 0xee, 0xc6, 0xcf, 0xe7, 0xc7, 0xef, 0xd2, 0xf2, 0xde, 0xfe, 0xd7, 0xf7, 0xdf, 0xff, + + // Original ^ c2(0x02) + 0x67, 0x4e, 0x68, 0x40, 0x49, 0x61, 0x41, 0x69, 0x57, 0x77, 0x58, 0x78, 0x51, 0x71, 0x59, 0x79, + 0x37, 0x8e, 0x38, 0x83, 0x8b, 0x31, 0x82, 0x39, 0x97, 0x27, 0x9a, 0x28, 0x92, 0x21, 0x9b, 0x29, + 0xe7, 0xce, 0xea, 0xc3, 0xcb, 0xe2, 0xc2, 0xeb, 0xd7, 0xf7, 0xda, 0xfa, 0xd2, 0xf2, 0xdb, 0xfb, + 0xa7, 0x1e, 0xaa, 0x10, 0x19, 0xa2, 0x11, 0xab, 0x07, 0xb7, 0x08, 0xba, 0x01, 0xb2, 0x09, 0xbb, + 0x30, 0x8a, 0x3e, 0x87, 0x8f, 0x36, 0x86, 0x3f, 0x93, 0x20, 0x9e, 0x2e, 0x96, 0x26, 0x9f, 0x2f, + 0x60, 0x48, 0x6e, 0x47, 0x4f, 0x66, 0x46, 0x6f, 0x50, 0x70, 0x5e, 0x7e, 0x56, 0x76, 0x5f, 0x7f, + 0xa3, 0x18, 0xae, 0x17, 0x1f, 0xa6, 0x16, 0xaf, 0x00, 0xb3, 0x0e, 0xbe, 0x06, 0xb6, 0x0f, 0xbf, + 0xe3, 0xca, 0xee, 0xc7, 0xcf, 0xe6, 0xc6, 0xef, 0xd3, 0xf3, 0xde, 0xfe, 0xd6, 0xf6, 0xdf, 0xff, + 0x34, 0x8c, 0x3a, 0x80, 0x89, 0x32, 0x81, 0x3b, 0x94, 0x24, 0x98, 0x2a, 0x91, 0x22, 0x99, 0x2b, + 0x64, 0x4c, 0x6a, 0x43, 0x4b, 0x62, 0x42, 0x6b, 0x54, 0x74, 0x5a, 0x7a, 0x52, 0x72, 0x5b, 0x7b, + 0xa4, 0x1c, 0xa8, 0x13, 0x1b, 0xa1, 0x12, 0xa9, 0x04, 0xb4, 0x0a, 0xb8, 0x02, 0xb1, 0x0b, 0xb9, + 0xe4, 0xcc, 0xe8, 0xc0, 0xc9, 0xe1, 0xc1, 0xe9, 0xd4, 0xf4, 0xd8, 0xf8, 0xd1, 0xf1, 0xd9, 0xf9, + 0x33, 0x88, 0x3c, 0x84, 0x8d, 0x35, 0x85, 0x3d, 0x90, 0x23, 0x9c, 0x2c, 0x95, 0x25, 0x9d, 0x2d, + 0x63, 0x4a, 0x6c, 0x44, 0x4d, 0x65, 0x45, 0x6d, 0x53, 0x73, 0x5c, 0x7c, 0x55, 0x75, 0x5d, 0x7d, + 0xa0, 0x1a, 0xac, 0x14, 0x1d, 0xa5, 0x15, 0xad, 0x03, 0xb0, 0x0c, 0xbc, 0x05, 0xb5, 0x0d, 0xbd, + 0xe0, 0xc8, 0xec, 0xc4, 0xcd, 0xe5, 0xc5, 0xed, 0xd0, 0xf0, 0xdc, 0xfc, 0xd5, 0xf5, 0xdd, 0xfd, +}; + +/* + * Round Constants + */ +unsigned char RC[56] += { + 0x01, 0x03, 0x07, 0x0F, 0x1F, 0x3E, 0x3D, 0x3B, + 0x37, 0x2F, 0x1E, 0x3C, 0x39, 0x33, 0x27, 0x0E, + 0x1D, 0x3A, 0x35, 0x2B, 0x16, 0x2C, 0x18, 0x30, + 0x21, 0x02, 0x05, 0x0B, 0x17, 0x2E, 0x1C, 0x38, + 0x31, 0x23, 0x06, 0x0D, 0x1B, 0x36, 0x2D, 0x1A, + 0x34, 0x29, 0x12, 0x24, 0x08, 0x11, 0x22, 0x04, + 0x09, 0x13, 0x26, 0x0c, 0x19, 0x32, 0x25, 0x0a,}; + +extern void Encrypt(unsigned char *block, unsigned char *roundKeys, unsigned char *pSBOX) __attribute__((noinline)); +extern void RunEncryptionKeyScheduleTK2(unsigned char *roundKeys) __attribute__((noinline)); +extern void RunEncryptionKeyScheduleTK3(unsigned char *roundKeys, unsigned char *pRC) __attribute__((noinline)); + +void skinny_128_384_enc123_12 (unsigned char* input, skinny_ctrl* pskinny_ctrl, unsigned char* CNT, unsigned char* T, const unsigned char* K) +{ + *((unsigned int *)&pskinny_ctrl->roundKeys[0] ) = *((unsigned int *)&CNT[0]); + *((unsigned int *)&pskinny_ctrl->roundKeys[4] ) = *((unsigned int *)&CNT[4]); + *((unsigned int *)&pskinny_ctrl->roundKeys[16]) = *((unsigned int *)&T[0]); + *((unsigned int *)&pskinny_ctrl->roundKeys[20]) = *((unsigned int *)&T[4]); + *((unsigned int *)&pskinny_ctrl->roundKeys[24]) = *((unsigned int *)&T[8]); + *((unsigned int *)&pskinny_ctrl->roundKeys[28]) = *((unsigned int *)&T[12]); + *((unsigned int *)&pskinny_ctrl->roundKeys[32]) = *((unsigned int *)&K[0]); + *((unsigned int *)&pskinny_ctrl->roundKeys[36]) = *((unsigned int *)&K[4]); + *((unsigned int *)&pskinny_ctrl->roundKeys[40]) = *((unsigned int *)&K[8]); + *((unsigned int *)&pskinny_ctrl->roundKeys[44]) = *((unsigned int *)&K[12]); + + RunEncryptionKeyScheduleTK3(pskinny_ctrl->roundKeys, RC); + RunEncryptionKeyScheduleTK2(pskinny_ctrl->roundKeys); + Encrypt(input, pskinny_ctrl->roundKeys, SBOX); + + pskinny_ctrl->func_skinny_128_384_enc = skinny_128_384_enc12_12; +} + +void skinny_128_384_enc12_12 (unsigned char* input, skinny_ctrl* pskinny_ctrl, unsigned char* CNT, unsigned char* T, const unsigned char* K) +{ + (void)K; + + *((unsigned int *)&pskinny_ctrl->roundKeys[0] ) = *((unsigned int *)&CNT[0]); + *((unsigned int *)&pskinny_ctrl->roundKeys[4] ) = *((unsigned int *)&CNT[4]); + *((unsigned int *)&pskinny_ctrl->roundKeys[16]) = *((unsigned int *)&T[0]); + *((unsigned int *)&pskinny_ctrl->roundKeys[20]) = *((unsigned int *)&T[4]); + *((unsigned int *)&pskinny_ctrl->roundKeys[24]) = *((unsigned int *)&T[8]); + *((unsigned int *)&pskinny_ctrl->roundKeys[28]) = *((unsigned int *)&T[12]); + + RunEncryptionKeyScheduleTK2(pskinny_ctrl->roundKeys); + Encrypt(input, pskinny_ctrl->roundKeys, SBOX); +} + +extern void skinny_128_384_enc1_1 (unsigned char* input, skinny_ctrl* pskinny_ctrl, unsigned char* CNT, unsigned char* T, const unsigned char* K) +{ + (void)T; + (void)K; + + *((unsigned int *)&pskinny_ctrl->roundKeys[0] ) = *((unsigned int *)&CNT[0]); + *((unsigned int *)&pskinny_ctrl->roundKeys[4] ) = *((unsigned int *)&CNT[4]); + + Encrypt(input, pskinny_ctrl->roundKeys, SBOX); +} + +__attribute__((aligned(4))) +void Encrypt(unsigned char *block, unsigned char *roundKeys, unsigned char *pSBOX) +{ + // r0 : ponits to plaintext + // r1 : points to roundKeys(& masterKey) + // r2 : points to SBOX + // r3-r6 : cipher state + // r7-r12: temp use + // r14 : temp use + asm volatile( + "stmdb sp!, {r4-r12,r14} \n\t" + "stmdb.w sp!, {r0} \n\t" // push store pointer + +// ART(TK1) + + "ldm.w r1, {r3-r4} \n\t" // load master key + + // round 1-2 + +// // round key store(do not need) +// "str.w r3, [r1,#0] \n\t" +// "str.w r4, [r1,#4] \n\t" + + // premutation + + // r3 ( k3 k2 k1 k0) --- --- --- --- + // r4 ( k7 k6 k5 k4) --- --- --- --- + // r5 (--- --- --- ---) -----> k5 k0 k7 k1 + // r6 (--- --- --- ---) k3 k4 k6 k2 +#ifdef STM32F4 // for Cortex-M4 + "ror.w r5,r4, #16 \n\t" // r5( k5 k4 k7 k6) + "bfi.w r5,r3, #16,#8 \n\t" // r5( k5 k0 k7 k6) + "pkhtb.w r6,r3, r3, asr #16 \n\t" // r6( k3 k2 k3 k2) + "ror.w r3, #8 \n\t" // r3( k0 k3 k2 k1) + "bfi.w r5,r3, #0,#8 \n\t" // r5( k5 k4 k2 k6) + "bfi.w r6,r4, #16,#8 \n\t" // r6( k3 k4 k3 k2) + "ror.w r4,#16 \n\t" // r4( k5 k4 k7 k6) + "bfi.w r6,r4, #8,#8 \n\t" // r6( k3 k4 k6 k2) +#else // for Cortex-M3 + "rev.w r5, r4 \n\t" // r5( k4 k5 k6 k7) + "lsl.w r5, r5, #8 \n\t" // r5( k5 k6 k7 ---) + "bfi.w r5,r3, #16,#8 \n\t" // r5( k5 k0 k7 ---) + "lsr.w r3, r3, #8 \n\t" // r3(--- k3 k2 k1) + "bfi.w r5,r3, #0, #8 \n\t" // r5( k5 k0 k7 k1) + "rev16.w r6, r3 \n\t" // r6( k3 --- k1 k2) + "bfi.w r6,r4, #16,#8 \n\t" // r6( k3 k4 k1 k2) + "lsr.w r4, r4, #16 \n\t" // r4(-- --- k7 k6) + "bfi.w r6,r4, #8, #8 \n\t" // r6( k3 k4 k6 k2) +#endif + // round 3-4 + + // round key store + "str.w r5, [r1,#8] \n\t" + "str.w r6, [r1,#12] \n\t" + + // premutation + + // r3 (--- --- --- ---) k5 k0 k7 k1 + // r4 (--- --- --- ---) k3 k4 k6 k2 + // r5 ( k3 k2 k1 k0) -----> --- --- --- --- + // r6 ( k7 k6 k5 k4) --- --- --- --- +#ifdef STM32F4 // for Cortex-M4 + "ror.w r3,r6, #16 \n\t" // r3( k5 k4 k7 k6) + "bfi.w r3,r5, #16,#8 \n\t" // r3( k5 k0 k7 k6) + "pkhtb.w r4,r5, r5, asr #16 \n\t" // r4( k3 k2 k3 k2) + "ror.w r5, #8 \n\t" // r5( k0 k3 k2 k1) + "bfi.w r3,r5, #0,#8 \n\t" // r3( k5 k4 k2 k6) + "bfi.w r4,r6, #16,#8 \n\t" // r4( k3 k4 k3 k2) + "ror.w r6,#16 \n\t" // r6( k5 k4 k7 k6) + "bfi.w r4,r6, #8,#8 \n\t" // r4( k3 k4 k6 k2) +#else // for Cortex-M3 + "rev.w r3, r6 \n\t" // r3( k4 k5 k6 k7) + "lsl.w r3, r3, #8 \n\t" // r3( k5 k6 k7 ---) + "bfi.w r3,r5, #16,#8 \n\t" // r3( k5 k0 k7 ---) + "lsr.w r5, r5, #8 \n\t" // r5(--- k3 k2 k1) + "bfi.w r3,r5, #0, #8 \n\t" // r3( k5 k0 k7 k1) + "rev16.w r4, r5 \n\t" // r4( k3 --- k1 k2) + "bfi.w r4,r6, #16,#8 \n\t" // r4( k3 k4 k1 k2) + "lsr.w r6, r6, #16 \n\t" // r6(-- --- k7 k6) + "bfi.w r4,r6, #8, #8 \n\t" // r4( k3 k4 k6 k2) +#endif + + // round 5-6 + + // round key store + "str.w r3, [r1,#16] \n\t" + "str.w r4, [r1,#20] \n\t" + + // premutation + + // r3 ( k3 k2 k1 k0) --- --- --- --- + // r4 ( k7 k6 k5 k4) --- --- --- --- + // r5 (--- --- --- ---) -----> k5 k0 k7 k1 + // r6 (--- --- --- ---) k3 k4 k6 k2 +#ifdef STM32F4 // for Cortex-M4 + "ror.w r5,r4, #16 \n\t" // r5( k5 k4 k7 k6) + "bfi.w r5,r3, #16,#8 \n\t" // r5( k5 k0 k7 k6) + "pkhtb.w r6,r3, r3, asr #16 \n\t" // r6( k3 k2 k3 k2) + "ror.w r3, #8 \n\t" // r3( k0 k3 k2 k1) + "bfi.w r5,r3, #0,#8 \n\t" // r5( k5 k4 k2 k6) + "bfi.w r6,r4, #16,#8 \n\t" // r6( k3 k4 k3 k2) + "ror.w r4,#16 \n\t" // r4( k5 k4 k7 k6) + "bfi.w r6,r4, #8,#8 \n\t" // r6( k3 k4 k6 k2) +#else // for Cortex-M3 + "rev.w r5, r4 \n\t" // r5( k4 k5 k6 k7) + "lsl.w r5, r5, #8 \n\t" // r5( k5 k6 k7 ---) + "bfi.w r5,r3, #16,#8 \n\t" // r5( k5 k0 k7 ---) + "lsr.w r3, r3, #8 \n\t" // r3(--- k3 k2 k1) + "bfi.w r5,r3, #0, #8 \n\t" // r5( k5 k0 k7 k1) + "rev16.w r6, r3 \n\t" // r6( k3 --- k1 k2) + "bfi.w r6,r4, #16,#8 \n\t" // r6( k3 k4 k1 k2) + "lsr.w r4, r4, #16 \n\t" // r4(-- --- k7 k6) + "bfi.w r6,r4, #8, #8 \n\t" // r6( k3 k4 k6 k2) +#endif + // round 7-8 + + // round key store + "str.w r5, [r1,#24] \n\t" + "str.w r6, [r1,#28] \n\t" + + // premutation + + // r3 (--- --- --- ---) k5 k0 k7 k1 + // r4 (--- --- --- ---) k3 k4 k6 k2 + // r5 ( k3 k2 k1 k0) -----> --- --- --- --- + // r6 ( k7 k6 k5 k4) --- --- --- --- +#ifdef STM32F4 // for Cortex-M4 + "ror.w r3,r6, #16 \n\t" // r3( k5 k4 k7 k6) + "bfi.w r3,r5, #16,#8 \n\t" // r3( k5 k0 k7 k6) + "pkhtb.w r4,r5, r5, asr #16 \n\t" // r4( k3 k2 k3 k2) + "ror.w r5, #8 \n\t" // r5( k0 k3 k2 k1) + "bfi.w r3,r5, #0,#8 \n\t" // r3( k5 k4 k2 k6) + "bfi.w r4,r6, #16,#8 \n\t" // r4( k3 k4 k3 k2) + "ror.w r6,#16 \n\t" // r6( k5 k4 k7 k6) + "bfi.w r4,r6, #8,#8 \n\t" // r4( k3 k4 k6 k2) +#else // for Cortex-M3 + "rev.w r3, r6 \n\t" // r3( k4 k5 k6 k7) + "lsl.w r3, r3, #8 \n\t" // r3( k5 k6 k7 ---) + "bfi.w r3,r5, #16,#8 \n\t" // r3( k5 k0 k7 ---) + "lsr.w r5, r5, #8 \n\t" // r5(--- k3 k2 k1) + "bfi.w r3,r5, #0, #8 \n\t" // r3( k5 k0 k7 k1) + "rev16.w r4, r5 \n\t" // r4( k3 --- k1 k2) + "bfi.w r4,r6, #16,#8 \n\t" // r4( k3 k4 k1 k2) + "lsr.w r6, r6, #16 \n\t" // r6(-- --- k7 k6) + "bfi.w r4,r6, #8, #8 \n\t" // r4( k3 k4 k6 k2) +#endif + + // round 9-10 + + // round key store + "str.w r3, [r1,#32] \n\t" + "str.w r4, [r1,#36] \n\t" + + // premutation + + // r3 ( k3 k2 k1 k0) --- --- --- --- + // r4 ( k7 k6 k5 k4) --- --- --- --- + // r5 (--- --- --- ---) -----> k5 k0 k7 k1 + // r6 (--- --- --- ---) k3 k4 k6 k2 +#ifdef STM32F4 // for Cortex-M4 + "ror.w r5,r4, #16 \n\t" // r5( k5 k4 k7 k6) + "bfi.w r5,r3, #16,#8 \n\t" // r5( k5 k0 k7 k6) + "pkhtb.w r6,r3, r3, asr #16 \n\t" // r6( k3 k2 k3 k2) + "ror.w r3, #8 \n\t" // r3( k0 k3 k2 k1) + "bfi.w r5,r3, #0,#8 \n\t" // r5( k5 k4 k2 k6) + "bfi.w r6,r4, #16,#8 \n\t" // r6( k3 k4 k3 k2) + "ror.w r4,#16 \n\t" // r4( k5 k4 k7 k6) + "bfi.w r6,r4, #8,#8 \n\t" // r6( k3 k4 k6 k2) +#else // for Cortex-M3 + "rev.w r5, r4 \n\t" // r5( k4 k5 k6 k7) + "lsl.w r5, r5, #8 \n\t" // r5( k5 k6 k7 ---) + "bfi.w r5,r3, #16,#8 \n\t" // r5( k5 k0 k7 ---) + "lsr.w r3, r3, #8 \n\t" // r3(--- k3 k2 k1) + "bfi.w r5,r3, #0, #8 \n\t" // r5( k5 k0 k7 k1) + "rev16.w r6, r3 \n\t" // r6( k3 --- k1 k2) + "bfi.w r6,r4, #16,#8 \n\t" // r6( k3 k4 k1 k2) + "lsr.w r4, r4, #16 \n\t" // r4(-- --- k7 k6) + "bfi.w r6,r4, #8, #8 \n\t" // r6( k3 k4 k6 k2) +#endif + // round 11-12 + + // round key store + "str.w r5, [r1,#40] \n\t" + "str.w r6, [r1,#44] \n\t" + + // premutation + + // r3 (--- --- --- ---) k5 k0 k7 k1 + // r4 (--- --- --- ---) k3 k4 k6 k2 + // r5 ( k3 k2 k1 k0) -----> --- --- --- --- + // r6 ( k7 k6 k5 k4) --- --- --- --- +#ifdef STM32F4 // for Cortex-M4 + "ror.w r3,r6, #16 \n\t" // r3( k5 k4 k7 k6) + "bfi.w r3,r5, #16,#8 \n\t" // r3( k5 k0 k7 k6) + "pkhtb.w r4,r5, r5, asr #16 \n\t" // r4( k3 k2 k3 k2) + "ror.w r5, #8 \n\t" // r5( k0 k3 k2 k1) + "bfi.w r3,r5, #0,#8 \n\t" // r3( k5 k4 k2 k6) + "bfi.w r4,r6, #16,#8 \n\t" // r4( k3 k4 k3 k2) + "ror.w r6,#16 \n\t" // r6( k5 k4 k7 k6) + "bfi.w r4,r6, #8,#8 \n\t" // r4( k3 k4 k6 k2) +#else // for Cortex-M3 + "rev.w r3, r6 \n\t" // r3( k4 k5 k6 k7) + "lsl.w r3, r3, #8 \n\t" // r3( k5 k6 k7 ---) + "bfi.w r3,r5, #16,#8 \n\t" // r3( k5 k0 k7 ---) + "lsr.w r5, r5, #8 \n\t" // r5(--- k3 k2 k1) + "bfi.w r3,r5, #0, #8 \n\t" // r3( k5 k0 k7 k1) + "rev16.w r4, r5 \n\t" // r4( k3 --- k1 k2) + "bfi.w r4,r6, #16,#8 \n\t" // r4( k3 k4 k1 k2) + "lsr.w r6, r6, #16 \n\t" // r6(-- --- k7 k6) + "bfi.w r4,r6, #8, #8 \n\t" // r4( k3 k4 k6 k2) +#endif + + // round 13-14 + + // round key store + "str.w r3, [r1,#48] \n\t" + "str.w r4, [r1,#52] \n\t" + + // premutation + + // r3 ( k3 k2 k1 k0) --- --- --- --- + // r4 ( k7 k6 k5 k4) --- --- --- --- + // r5 (--- --- --- ---) -----> k5 k0 k7 k1 + // r6 (--- --- --- ---) k3 k4 k6 k2 +#ifdef STM32F4 // for Cortex-M4 + "ror.w r5,r4, #16 \n\t" // r5( k5 k4 k7 k6) + "bfi.w r5,r3, #16,#8 \n\t" // r5( k5 k0 k7 k6) + "pkhtb.w r6,r3, r3, asr #16 \n\t" // r6( k3 k2 k3 k2) + "ror.w r3, #8 \n\t" // r3( k0 k3 k2 k1) + "bfi.w r5,r3, #0,#8 \n\t" // r5( k5 k4 k2 k6) + "bfi.w r6,r4, #16,#8 \n\t" // r6( k3 k4 k3 k2) + "ror.w r4,#16 \n\t" // r4( k5 k4 k7 k6) + "bfi.w r6,r4, #8,#8 \n\t" // r6( k3 k4 k6 k2) +#else // for Cortex-M3 + "rev.w r5, r4 \n\t" // r5( k4 k5 k6 k7) + "lsl.w r5, r5, #8 \n\t" // r5( k5 k6 k7 ---) + "bfi.w r5,r3, #16,#8 \n\t" // r5( k5 k0 k7 ---) + "lsr.w r3, r3, #8 \n\t" // r3(--- k3 k2 k1) + "bfi.w r5,r3, #0, #8 \n\t" // r5( k5 k0 k7 k1) + "rev16.w r6, r3 \n\t" // r6( k3 --- k1 k2) + "bfi.w r6,r4, #16,#8 \n\t" // r6( k3 k4 k1 k2) + "lsr.w r4, r4, #16 \n\t" // r4(-- --- k7 k6) + "bfi.w r6,r4, #8, #8 \n\t" // r6( k3 k4 k6 k2) +#endif + // round 15-16 + + // round key store + "str.w r5, [r1,#56] \n\t" + "str.w r6, [r1,#60] \n\t" + + // premutation + + // not need to calculate (not used) + +// SC->(AC->ART)->SR->MC + + "add.w r14, r2, #256 \n\t" // point to SBOX ^ c2(0x02) + + "ldm.w r0, {r3-r6} \n\t" // load plaintext + // r0 now free to overwrite + + // round 1 + + // SubCell+ShiftRow+AC(c2) + // r3 (s3 s2 s1 s0) + // r4 (s7 s6 s5 s4) + // r5 (s11 s10 s9 s8) + // r6 (s15 s14 s13 s12) + + // 1st-2nd line + // r3(s3 s2 s1 s0) + "uxtb.w r9, r3, ror #24 \n\t" // s3 + "uxtb.w r8, r3, ror #16 \n\t" // s2 + "uxtb.w r7, r3, ror #8 \n\t" // s1 + "uxtb.w r3, r3 \n\t" // s0 + // r4(s6 s5 s4 s7) + "uxtb.w r12, r4, ror #16 \n\t" // s6 + "uxtb.w r11, r4, ror #8 \n\t" // s5 + "uxtb.w r10, r4 \n\t" // s4 + "uxtb.w r4, r4, ror #24 \n\t" // s7 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "eor.w r3, r3, r7, lsl #8 \n\t" + "eor.w r3, r3, r8, lsl #16 \n\t" + "eor.w r3, r3, r9, lsl #24 \n\t" + "eor.w r4, r4, r10, lsl #8 \n\t" + "eor.w r4, r4, r11, lsl #16 \n\t" + "eor.w r4, r4, r12, lsl #24 \n\t" + + // 3rd-4th line + // r5(s9 s8 s11 s10) + "uxtb.w r9, r5, ror #8 \n\t" // s9 + "uxtb.w r8, r5 \n\t" // s8 + "uxtb.w r7, r5, ror #24 \n\t" // s11 + "uxtb.w r5, r5, ror #16 \n\t" // s10 + // r6(s12 s15 s14 s13) + "uxtb.w r12, r6 \n\t" // s12 + "uxtb.w r11, r6, ror #24 \n\t" // s15 + "uxtb.w r10, r6, ror #16 \n\t" // s14 + "uxtb.w r6, r6, ror #8 \n\t" // s13 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "eor.w r5, r5, r7, lsl #8 \n\t" + "eor.w r5, r5, r8, lsl #16 \n\t" + "eor.w r5, r5, r9, lsl #24 \n\t" + "eor.w r6, r6, r10, lsl #8 \n\t" + "eor.w r6, r6, r11, lsl #16 \n\t" + "eor.w r6, r6, r12, lsl #24 \n\t" + + // AddRoundKey and AddRoundConst(from roundKeys) + "ldr.w r9, [r1,#0] \n\t" // load TK1 + "ldr.w r10, [r1,#4] \n\t" // load TK1 + "ldr.w r11, [r1,#64] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "ldr.w r12, [r1,#68] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + + "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) + "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) + // r8( s9 s8 s11 s10) + // r6(s12 s14 s14 s13) + + // MixColumn + "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 + "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 + "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 + // r8 ----------------> r8 + + // round 2 + + // SubCell+ShiftRow+AC(c2) + // r7 (s3 s2 s1 s0) + // r8 (s7 s6 s5 s4) + // r9 (s11 s10 s9 s8) + // r10(s15 s14 s13 s12) + + // 1st-2nd line + // r7(s3 s2 s1 s0) + "uxtb.w r5, r7, ror #24 \n\t" // s3 + "uxtb.w r4, r7, ror #16 \n\t" // s2 + "uxtb.w r3, r7, ror #8 \n\t" // s1 + "uxtb.w r7, r7 \n\t" // s0 + // r8(s6 s5 s4 s7) + "uxtb.w r12, r8, ror #16 \n\t" // s6 + "uxtb.w r11, r8, ror #8 \n\t" // s5 + "uxtb.w r6, r8 \n\t" // s4 + "uxtb.w r8, r8, ror #24 \n\t" // s7 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldr.w r0, [r1,#72] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r7, r7, r3, lsl #8 \n\t" + "eor.w r7, r7, r4, lsl #16 \n\t" + "eor.w r7, r7, r5, lsl #24 \n\t" + "eor.w r8, r8, r6, lsl #8 \n\t" + "eor.w r8, r8, r11, lsl #16 \n\t" + "eor.w r8, r8, r12, lsl #24 \n\t" + "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) + + // 3rd-4th line + // r9(s9 s8 s11 s10) + "uxtb.w r5, r9, ror #8 \n\t" // s9 + "uxtb.w r7, r9 \n\t" // s8 + "uxtb.w r3, r9, ror #24 \n\t" // s11 + "uxtb.w r9, r9, ror #16 \n\t" // s10 + // r10(s12 s15 s14 s13) + "uxtb.w r12, r10 \n\t" // s12 + "uxtb.w r11, r10, ror #24 \n\t" // s15 + "uxtb.w r6, r10, ror #16 \n\t" // s14 + "uxtb.w r10, r10, ror #8 \n\t" // s13 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldr.w r0, [r1,#76] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r9, r9, r3, lsl #8 \n\t" + "eor.w r9, r9, r7, lsl #16 \n\t" + "eor.w r9, r9, r5, lsl #24 \n\t" + "eor.w r10, r10, r6, lsl #8 \n\t" + "eor.w r10, r10, r11, lsl #16 \n\t" + "eor.w r10, r10, r12, lsl #24 \n\t" + "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) + + // AddRoundKey and AddRoundConst(from roundKeys) + + // r9( s9 s8 s11 s10) + // r10(s12 s14 s14 s13) + + // MixColumn + "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 + "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 + "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 + // r4 ----------------> r4 + // round 3 + + // SubCell+ShiftRow+AC(c2) + // r3 (s3 s2 s1 s0) + // r4 (s7 s6 s5 s4) + // r5 (s11 s10 s9 s8) + // r6 (s15 s14 s13 s12) + + // 1st-2nd line + // r3(s3 s2 s1 s0) + "uxtb.w r9, r3, ror #24 \n\t" // s3 + "uxtb.w r8, r3, ror #16 \n\t" // s2 + "uxtb.w r7, r3, ror #8 \n\t" // s1 + "uxtb.w r3, r3 \n\t" // s0 + // r4(s6 s5 s4 s7) + "uxtb.w r12, r4, ror #16 \n\t" // s6 + "uxtb.w r11, r4, ror #8 \n\t" // s5 + "uxtb.w r10, r4 \n\t" // s4 + "uxtb.w r4, r4, ror #24 \n\t" // s7 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "eor.w r3, r3, r7, lsl #8 \n\t" + "eor.w r3, r3, r8, lsl #16 \n\t" + "eor.w r3, r3, r9, lsl #24 \n\t" + "eor.w r4, r4, r10, lsl #8 \n\t" + "eor.w r4, r4, r11, lsl #16 \n\t" + "eor.w r4, r4, r12, lsl #24 \n\t" + + // 3rd-4th line + // r5(s9 s8 s11 s10) + "uxtb.w r9, r5, ror #8 \n\t" // s9 + "uxtb.w r8, r5 \n\t" // s8 + "uxtb.w r7, r5, ror #24 \n\t" // s11 + "uxtb.w r5, r5, ror #16 \n\t" // s10 + // r6(s12 s15 s14 s13) + "uxtb.w r12, r6 \n\t" // s12 + "uxtb.w r11, r6, ror #24 \n\t" // s15 + "uxtb.w r10, r6, ror #16 \n\t" // s14 + "uxtb.w r6, r6, ror #8 \n\t" // s13 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "eor.w r5, r5, r7, lsl #8 \n\t" + "eor.w r5, r5, r8, lsl #16 \n\t" + "eor.w r5, r5, r9, lsl #24 \n\t" + "eor.w r6, r6, r10, lsl #8 \n\t" + "eor.w r6, r6, r11, lsl #16 \n\t" + "eor.w r6, r6, r12, lsl #24 \n\t" + + // AddRoundKey and AddRoundConst(from roundKeys) + "ldr.w r9, [r1,#8] \n\t" // load TK1 + "ldr.w r10, [r1,#12] \n\t" // load TK1 + "ldr.w r11, [r1,#80] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "ldr.w r12, [r1,#84] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + + "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) + "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) + // r8( s9 s8 s11 s10) + // r6(s12 s14 s14 s13) + + // MixColumn + "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 + "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 + "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 + // r8 ----------------> r8 + + // round 4 + + // SubCell+ShiftRow+AC(c2) + // r7 (s3 s2 s1 s0) + // r8 (s7 s6 s5 s4) + // r9 (s11 s10 s9 s8) + // r10(s15 s14 s13 s12) + + // 1st-2nd line + // r7(s3 s2 s1 s0) + "uxtb.w r5, r7, ror #24 \n\t" // s3 + "uxtb.w r4, r7, ror #16 \n\t" // s2 + "uxtb.w r3, r7, ror #8 \n\t" // s1 + "uxtb.w r7, r7 \n\t" // s0 + // r8(s6 s5 s4 s7) + "uxtb.w r12, r8, ror #16 \n\t" // s6 + "uxtb.w r11, r8, ror #8 \n\t" // s5 + "uxtb.w r6, r8 \n\t" // s4 + "uxtb.w r8, r8, ror #24 \n\t" // s7 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldr.w r0, [r1,#88] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r7, r7, r3, lsl #8 \n\t" + "eor.w r7, r7, r4, lsl #16 \n\t" + "eor.w r7, r7, r5, lsl #24 \n\t" + "eor.w r8, r8, r6, lsl #8 \n\t" + "eor.w r8, r8, r11, lsl #16 \n\t" + "eor.w r8, r8, r12, lsl #24 \n\t" + "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) + + // 3rd-4th line + // r9(s9 s8 s11 s10) + "uxtb.w r5, r9, ror #8 \n\t" // s9 + "uxtb.w r7, r9 \n\t" // s8 + "uxtb.w r3, r9, ror #24 \n\t" // s11 + "uxtb.w r9, r9, ror #16 \n\t" // s10 + // r10(s12 s15 s14 s13) + "uxtb.w r12, r10 \n\t" // s12 + "uxtb.w r11, r10, ror #24 \n\t" // s15 + "uxtb.w r6, r10, ror #16 \n\t" // s14 + "uxtb.w r10, r10, ror #8 \n\t" // s13 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldr.w r0, [r1,#92] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r9, r9, r3, lsl #8 \n\t" + "eor.w r9, r9, r7, lsl #16 \n\t" + "eor.w r9, r9, r5, lsl #24 \n\t" + "eor.w r10, r10, r6, lsl #8 \n\t" + "eor.w r10, r10, r11, lsl #16 \n\t" + "eor.w r10, r10, r12, lsl #24 \n\t" + "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) + + // AddRoundKey and AddRoundConst(from roundKeys) + + // r9( s9 s8 s11 s10) + // r10(s12 s14 s14 s13) + + // MixColumn + "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 + "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 + "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 + // r4 ----------------> r4 + // round 5 + + // SubCell+ShiftRow+AC(c2) + // r3 (s3 s2 s1 s0) + // r4 (s7 s6 s5 s4) + // r5 (s11 s10 s9 s8) + // r6 (s15 s14 s13 s12) + + // 1st-2nd line + // r3(s3 s2 s1 s0) + "uxtb.w r9, r3, ror #24 \n\t" // s3 + "uxtb.w r8, r3, ror #16 \n\t" // s2 + "uxtb.w r7, r3, ror #8 \n\t" // s1 + "uxtb.w r3, r3 \n\t" // s0 + // r4(s6 s5 s4 s7) + "uxtb.w r12, r4, ror #16 \n\t" // s6 + "uxtb.w r11, r4, ror #8 \n\t" // s5 + "uxtb.w r10, r4 \n\t" // s4 + "uxtb.w r4, r4, ror #24 \n\t" // s7 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "eor.w r3, r3, r7, lsl #8 \n\t" + "eor.w r3, r3, r8, lsl #16 \n\t" + "eor.w r3, r3, r9, lsl #24 \n\t" + "eor.w r4, r4, r10, lsl #8 \n\t" + "eor.w r4, r4, r11, lsl #16 \n\t" + "eor.w r4, r4, r12, lsl #24 \n\t" + + // 3rd-4th line + // r5(s9 s8 s11 s10) + "uxtb.w r9, r5, ror #8 \n\t" // s9 + "uxtb.w r8, r5 \n\t" // s8 + "uxtb.w r7, r5, ror #24 \n\t" // s11 + "uxtb.w r5, r5, ror #16 \n\t" // s10 + // r6(s12 s15 s14 s13) + "uxtb.w r12, r6 \n\t" // s12 + "uxtb.w r11, r6, ror #24 \n\t" // s15 + "uxtb.w r10, r6, ror #16 \n\t" // s14 + "uxtb.w r6, r6, ror #8 \n\t" // s13 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "eor.w r5, r5, r7, lsl #8 \n\t" + "eor.w r5, r5, r8, lsl #16 \n\t" + "eor.w r5, r5, r9, lsl #24 \n\t" + "eor.w r6, r6, r10, lsl #8 \n\t" + "eor.w r6, r6, r11, lsl #16 \n\t" + "eor.w r6, r6, r12, lsl #24 \n\t" + + // AddRoundKey and AddRoundConst(from roundKeys) + "ldr.w r9, [r1,#16] \n\t" // load TK1 + "ldr.w r10, [r1,#20] \n\t" // load TK1 + "ldr.w r11, [r1,#96] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "ldr.w r12, [r1,#100] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + + "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) + "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) + // r8( s9 s8 s11 s10) + // r6(s12 s14 s14 s13) + + // MixColumn + "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 + "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 + "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 + // r8 ----------------> r8 + + // round 6 + + // SubCell+ShiftRow+AC(c2) + // r7 (s3 s2 s1 s0) + // r8 (s7 s6 s5 s4) + // r9 (s11 s10 s9 s8) + // r10(s15 s14 s13 s12) + + // 1st-2nd line + // r7(s3 s2 s1 s0) + "uxtb.w r5, r7, ror #24 \n\t" // s3 + "uxtb.w r4, r7, ror #16 \n\t" // s2 + "uxtb.w r3, r7, ror #8 \n\t" // s1 + "uxtb.w r7, r7 \n\t" // s0 + // r8(s6 s5 s4 s7) + "uxtb.w r12, r8, ror #16 \n\t" // s6 + "uxtb.w r11, r8, ror #8 \n\t" // s5 + "uxtb.w r6, r8 \n\t" // s4 + "uxtb.w r8, r8, ror #24 \n\t" // s7 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldr.w r0, [r1,#104] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r7, r7, r3, lsl #8 \n\t" + "eor.w r7, r7, r4, lsl #16 \n\t" + "eor.w r7, r7, r5, lsl #24 \n\t" + "eor.w r8, r8, r6, lsl #8 \n\t" + "eor.w r8, r8, r11, lsl #16 \n\t" + "eor.w r8, r8, r12, lsl #24 \n\t" + "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) + + // 3rd-4th line + // r9(s9 s8 s11 s10) + "uxtb.w r5, r9, ror #8 \n\t" // s9 + "uxtb.w r7, r9 \n\t" // s8 + "uxtb.w r3, r9, ror #24 \n\t" // s11 + "uxtb.w r9, r9, ror #16 \n\t" // s10 + // r10(s12 s15 s14 s13) + "uxtb.w r12, r10 \n\t" // s12 + "uxtb.w r11, r10, ror #24 \n\t" // s15 + "uxtb.w r6, r10, ror #16 \n\t" // s14 + "uxtb.w r10, r10, ror #8 \n\t" // s13 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldr.w r0, [r1,#108] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r9, r9, r3, lsl #8 \n\t" + "eor.w r9, r9, r7, lsl #16 \n\t" + "eor.w r9, r9, r5, lsl #24 \n\t" + "eor.w r10, r10, r6, lsl #8 \n\t" + "eor.w r10, r10, r11, lsl #16 \n\t" + "eor.w r10, r10, r12, lsl #24 \n\t" + "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) + + // AddRoundKey and AddRoundConst(from roundKeys) + + // r9( s9 s8 s11 s10) + // r10(s12 s14 s14 s13) + + // MixColumn + "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 + "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 + "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 + // r4 ----------------> r4 + // round 7 + + // SubCell+ShiftRow+AC(c2) + // r3 (s3 s2 s1 s0) + // r4 (s7 s6 s5 s4) + // r5 (s11 s10 s9 s8) + // r6 (s15 s14 s13 s12) + + // 1st-2nd line + // r3(s3 s2 s1 s0) + "uxtb.w r9, r3, ror #24 \n\t" // s3 + "uxtb.w r8, r3, ror #16 \n\t" // s2 + "uxtb.w r7, r3, ror #8 \n\t" // s1 + "uxtb.w r3, r3 \n\t" // s0 + // r4(s6 s5 s4 s7) + "uxtb.w r12, r4, ror #16 \n\t" // s6 + "uxtb.w r11, r4, ror #8 \n\t" // s5 + "uxtb.w r10, r4 \n\t" // s4 + "uxtb.w r4, r4, ror #24 \n\t" // s7 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "eor.w r3, r3, r7, lsl #8 \n\t" + "eor.w r3, r3, r8, lsl #16 \n\t" + "eor.w r3, r3, r9, lsl #24 \n\t" + "eor.w r4, r4, r10, lsl #8 \n\t" + "eor.w r4, r4, r11, lsl #16 \n\t" + "eor.w r4, r4, r12, lsl #24 \n\t" + + // 3rd-4th line + // r5(s9 s8 s11 s10) + "uxtb.w r9, r5, ror #8 \n\t" // s9 + "uxtb.w r8, r5 \n\t" // s8 + "uxtb.w r7, r5, ror #24 \n\t" // s11 + "uxtb.w r5, r5, ror #16 \n\t" // s10 + // r6(s12 s15 s14 s13) + "uxtb.w r12, r6 \n\t" // s12 + "uxtb.w r11, r6, ror #24 \n\t" // s15 + "uxtb.w r10, r6, ror #16 \n\t" // s14 + "uxtb.w r6, r6, ror #8 \n\t" // s13 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "eor.w r5, r5, r7, lsl #8 \n\t" + "eor.w r5, r5, r8, lsl #16 \n\t" + "eor.w r5, r5, r9, lsl #24 \n\t" + "eor.w r6, r6, r10, lsl #8 \n\t" + "eor.w r6, r6, r11, lsl #16 \n\t" + "eor.w r6, r6, r12, lsl #24 \n\t" + + // AddRoundKey and AddRoundConst(from roundKeys) + "ldr.w r9, [r1,#24] \n\t" // load TK1 + "ldr.w r10, [r1,#28] \n\t" // load TK1 + "ldr.w r11, [r1,#112] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "ldr.w r12, [r1,#116] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + + "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) + "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) + // r8( s9 s8 s11 s10) + // r6(s12 s14 s14 s13) + + // MixColumn + "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 + "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 + "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 + // r8 ----------------> r8 + + // round 8 + + // SubCell+ShiftRow+AC(c2) + // r7 (s3 s2 s1 s0) + // r8 (s7 s6 s5 s4) + // r9 (s11 s10 s9 s8) + // r10(s15 s14 s13 s12) + + // 1st-2nd line + // r7(s3 s2 s1 s0) + "uxtb.w r5, r7, ror #24 \n\t" // s3 + "uxtb.w r4, r7, ror #16 \n\t" // s2 + "uxtb.w r3, r7, ror #8 \n\t" // s1 + "uxtb.w r7, r7 \n\t" // s0 + // r8(s6 s5 s4 s7) + "uxtb.w r12, r8, ror #16 \n\t" // s6 + "uxtb.w r11, r8, ror #8 \n\t" // s5 + "uxtb.w r6, r8 \n\t" // s4 + "uxtb.w r8, r8, ror #24 \n\t" // s7 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldr.w r0, [r1,#120] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r7, r7, r3, lsl #8 \n\t" + "eor.w r7, r7, r4, lsl #16 \n\t" + "eor.w r7, r7, r5, lsl #24 \n\t" + "eor.w r8, r8, r6, lsl #8 \n\t" + "eor.w r8, r8, r11, lsl #16 \n\t" + "eor.w r8, r8, r12, lsl #24 \n\t" + "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) + + // 3rd-4th line + // r9(s9 s8 s11 s10) + "uxtb.w r5, r9, ror #8 \n\t" // s9 + "uxtb.w r7, r9 \n\t" // s8 + "uxtb.w r3, r9, ror #24 \n\t" // s11 + "uxtb.w r9, r9, ror #16 \n\t" // s10 + // r10(s12 s15 s14 s13) + "uxtb.w r12, r10 \n\t" // s12 + "uxtb.w r11, r10, ror #24 \n\t" // s15 + "uxtb.w r6, r10, ror #16 \n\t" // s14 + "uxtb.w r10, r10, ror #8 \n\t" // s13 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldr.w r0, [r1,#124] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r9, r9, r3, lsl #8 \n\t" + "eor.w r9, r9, r7, lsl #16 \n\t" + "eor.w r9, r9, r5, lsl #24 \n\t" + "eor.w r10, r10, r6, lsl #8 \n\t" + "eor.w r10, r10, r11, lsl #16 \n\t" + "eor.w r10, r10, r12, lsl #24 \n\t" + "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) + + // AddRoundKey and AddRoundConst(from roundKeys) + + // r9( s9 s8 s11 s10) + // r10(s12 s14 s14 s13) + + // MixColumn + "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 + "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 + "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 + // r4 ----------------> r4 + // round 9 + + // SubCell+ShiftRow+AC(c2) + // r3 (s3 s2 s1 s0) + // r4 (s7 s6 s5 s4) + // r5 (s11 s10 s9 s8) + // r6 (s15 s14 s13 s12) + + // 1st-2nd line + // r3(s3 s2 s1 s0) + "uxtb.w r9, r3, ror #24 \n\t" // s3 + "uxtb.w r8, r3, ror #16 \n\t" // s2 + "uxtb.w r7, r3, ror #8 \n\t" // s1 + "uxtb.w r3, r3 \n\t" // s0 + // r4(s6 s5 s4 s7) + "uxtb.w r12, r4, ror #16 \n\t" // s6 + "uxtb.w r11, r4, ror #8 \n\t" // s5 + "uxtb.w r10, r4 \n\t" // s4 + "uxtb.w r4, r4, ror #24 \n\t" // s7 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "eor.w r3, r3, r7, lsl #8 \n\t" + "eor.w r3, r3, r8, lsl #16 \n\t" + "eor.w r3, r3, r9, lsl #24 \n\t" + "eor.w r4, r4, r10, lsl #8 \n\t" + "eor.w r4, r4, r11, lsl #16 \n\t" + "eor.w r4, r4, r12, lsl #24 \n\t" + + // 3rd-4th line + // r5(s9 s8 s11 s10) + "uxtb.w r9, r5, ror #8 \n\t" // s9 + "uxtb.w r8, r5 \n\t" // s8 + "uxtb.w r7, r5, ror #24 \n\t" // s11 + "uxtb.w r5, r5, ror #16 \n\t" // s10 + // r6(s12 s15 s14 s13) + "uxtb.w r12, r6 \n\t" // s12 + "uxtb.w r11, r6, ror #24 \n\t" // s15 + "uxtb.w r10, r6, ror #16 \n\t" // s14 + "uxtb.w r6, r6, ror #8 \n\t" // s13 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "eor.w r5, r5, r7, lsl #8 \n\t" + "eor.w r5, r5, r8, lsl #16 \n\t" + "eor.w r5, r5, r9, lsl #24 \n\t" + "eor.w r6, r6, r10, lsl #8 \n\t" + "eor.w r6, r6, r11, lsl #16 \n\t" + "eor.w r6, r6, r12, lsl #24 \n\t" + + // AddRoundKey and AddRoundConst(from roundKeys) + "ldr.w r9, [r1,#32] \n\t" // load TK1 + "ldr.w r10, [r1,#36] \n\t" // load TK1 + "ldr.w r11, [r1,#128] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "ldr.w r12, [r1,#132] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + + "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) + "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) + // r8( s9 s8 s11 s10) + // r6(s12 s14 s14 s13) + + // MixColumn + "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 + "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 + "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 + // r8 ----------------> r8 + + // round 10 + + // SubCell+ShiftRow+AC(c2) + // r7 (s3 s2 s1 s0) + // r8 (s7 s6 s5 s4) + // r9 (s11 s10 s9 s8) + // r10(s15 s14 s13 s12) + + // 1st-2nd line + // r7(s3 s2 s1 s0) + "uxtb.w r5, r7, ror #24 \n\t" // s3 + "uxtb.w r4, r7, ror #16 \n\t" // s2 + "uxtb.w r3, r7, ror #8 \n\t" // s1 + "uxtb.w r7, r7 \n\t" // s0 + // r8(s6 s5 s4 s7) + "uxtb.w r12, r8, ror #16 \n\t" // s6 + "uxtb.w r11, r8, ror #8 \n\t" // s5 + "uxtb.w r6, r8 \n\t" // s4 + "uxtb.w r8, r8, ror #24 \n\t" // s7 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldr.w r0, [r1,#136] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r7, r7, r3, lsl #8 \n\t" + "eor.w r7, r7, r4, lsl #16 \n\t" + "eor.w r7, r7, r5, lsl #24 \n\t" + "eor.w r8, r8, r6, lsl #8 \n\t" + "eor.w r8, r8, r11, lsl #16 \n\t" + "eor.w r8, r8, r12, lsl #24 \n\t" + "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) + + // 3rd-4th line + // r9(s9 s8 s11 s10) + "uxtb.w r5, r9, ror #8 \n\t" // s9 + "uxtb.w r7, r9 \n\t" // s8 + "uxtb.w r3, r9, ror #24 \n\t" // s11 + "uxtb.w r9, r9, ror #16 \n\t" // s10 + // r10(s12 s15 s14 s13) + "uxtb.w r12, r10 \n\t" // s12 + "uxtb.w r11, r10, ror #24 \n\t" // s15 + "uxtb.w r6, r10, ror #16 \n\t" // s14 + "uxtb.w r10, r10, ror #8 \n\t" // s13 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldr.w r0, [r1,#140] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r9, r9, r3, lsl #8 \n\t" + "eor.w r9, r9, r7, lsl #16 \n\t" + "eor.w r9, r9, r5, lsl #24 \n\t" + "eor.w r10, r10, r6, lsl #8 \n\t" + "eor.w r10, r10, r11, lsl #16 \n\t" + "eor.w r10, r10, r12, lsl #24 \n\t" + "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) + + // AddRoundKey and AddRoundConst(from roundKeys) + + // r9( s9 s8 s11 s10) + // r10(s12 s14 s14 s13) + + // MixColumn + "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 + "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 + "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 + // r4 ----------------> r4 + // round 11 + + // SubCell+ShiftRow+AC(c2) + // r3 (s3 s2 s1 s0) + // r4 (s7 s6 s5 s4) + // r5 (s11 s10 s9 s8) + // r6 (s15 s14 s13 s12) + + // 1st-2nd line + // r3(s3 s2 s1 s0) + "uxtb.w r9, r3, ror #24 \n\t" // s3 + "uxtb.w r8, r3, ror #16 \n\t" // s2 + "uxtb.w r7, r3, ror #8 \n\t" // s1 + "uxtb.w r3, r3 \n\t" // s0 + // r4(s6 s5 s4 s7) + "uxtb.w r12, r4, ror #16 \n\t" // s6 + "uxtb.w r11, r4, ror #8 \n\t" // s5 + "uxtb.w r10, r4 \n\t" // s4 + "uxtb.w r4, r4, ror #24 \n\t" // s7 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "eor.w r3, r3, r7, lsl #8 \n\t" + "eor.w r3, r3, r8, lsl #16 \n\t" + "eor.w r3, r3, r9, lsl #24 \n\t" + "eor.w r4, r4, r10, lsl #8 \n\t" + "eor.w r4, r4, r11, lsl #16 \n\t" + "eor.w r4, r4, r12, lsl #24 \n\t" + + // 3rd-4th line + // r5(s9 s8 s11 s10) + "uxtb.w r9, r5, ror #8 \n\t" // s9 + "uxtb.w r8, r5 \n\t" // s8 + "uxtb.w r7, r5, ror #24 \n\t" // s11 + "uxtb.w r5, r5, ror #16 \n\t" // s10 + // r6(s12 s15 s14 s13) + "uxtb.w r12, r6 \n\t" // s12 + "uxtb.w r11, r6, ror #24 \n\t" // s15 + "uxtb.w r10, r6, ror #16 \n\t" // s14 + "uxtb.w r6, r6, ror #8 \n\t" // s13 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "eor.w r5, r5, r7, lsl #8 \n\t" + "eor.w r5, r5, r8, lsl #16 \n\t" + "eor.w r5, r5, r9, lsl #24 \n\t" + "eor.w r6, r6, r10, lsl #8 \n\t" + "eor.w r6, r6, r11, lsl #16 \n\t" + "eor.w r6, r6, r12, lsl #24 \n\t" + + // AddRoundKey and AddRoundConst(from roundKeys) + "ldr.w r9, [r1,#40] \n\t" // load TK1 + "ldr.w r10, [r1,#44] \n\t" // load TK1 + "ldr.w r11, [r1,#144] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "ldr.w r12, [r1,#148] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + + "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) + "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) + // r8( s9 s8 s11 s10) + // r6(s12 s14 s14 s13) + + // MixColumn + "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 + "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 + "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 + // r8 ----------------> r8 + + // round 12 + + // SubCell+ShiftRow+AC(c2) + // r7 (s3 s2 s1 s0) + // r8 (s7 s6 s5 s4) + // r9 (s11 s10 s9 s8) + // r10(s15 s14 s13 s12) + + // 1st-2nd line + // r7(s3 s2 s1 s0) + "uxtb.w r5, r7, ror #24 \n\t" // s3 + "uxtb.w r4, r7, ror #16 \n\t" // s2 + "uxtb.w r3, r7, ror #8 \n\t" // s1 + "uxtb.w r7, r7 \n\t" // s0 + // r8(s6 s5 s4 s7) + "uxtb.w r12, r8, ror #16 \n\t" // s6 + "uxtb.w r11, r8, ror #8 \n\t" // s5 + "uxtb.w r6, r8 \n\t" // s4 + "uxtb.w r8, r8, ror #24 \n\t" // s7 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldr.w r0, [r1,#152] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r7, r7, r3, lsl #8 \n\t" + "eor.w r7, r7, r4, lsl #16 \n\t" + "eor.w r7, r7, r5, lsl #24 \n\t" + "eor.w r8, r8, r6, lsl #8 \n\t" + "eor.w r8, r8, r11, lsl #16 \n\t" + "eor.w r8, r8, r12, lsl #24 \n\t" + "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) + + // 3rd-4th line + // r9(s9 s8 s11 s10) + "uxtb.w r5, r9, ror #8 \n\t" // s9 + "uxtb.w r7, r9 \n\t" // s8 + "uxtb.w r3, r9, ror #24 \n\t" // s11 + "uxtb.w r9, r9, ror #16 \n\t" // s10 + // r10(s12 s15 s14 s13) + "uxtb.w r12, r10 \n\t" // s12 + "uxtb.w r11, r10, ror #24 \n\t" // s15 + "uxtb.w r6, r10, ror #16 \n\t" // s14 + "uxtb.w r10, r10, ror #8 \n\t" // s13 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldr.w r0, [r1,#156] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r9, r9, r3, lsl #8 \n\t" + "eor.w r9, r9, r7, lsl #16 \n\t" + "eor.w r9, r9, r5, lsl #24 \n\t" + "eor.w r10, r10, r6, lsl #8 \n\t" + "eor.w r10, r10, r11, lsl #16 \n\t" + "eor.w r10, r10, r12, lsl #24 \n\t" + "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) + + // AddRoundKey and AddRoundConst(from roundKeys) + + // r9( s9 s8 s11 s10) + // r10(s12 s14 s14 s13) + + // MixColumn + "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 + "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 + "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 + // r4 ----------------> r4 + // round 13 + + // SubCell+ShiftRow+AC(c2) + // r3 (s3 s2 s1 s0) + // r4 (s7 s6 s5 s4) + // r5 (s11 s10 s9 s8) + // r6 (s15 s14 s13 s12) + + // 1st-2nd line + // r3(s3 s2 s1 s0) + "uxtb.w r9, r3, ror #24 \n\t" // s3 + "uxtb.w r8, r3, ror #16 \n\t" // s2 + "uxtb.w r7, r3, ror #8 \n\t" // s1 + "uxtb.w r3, r3 \n\t" // s0 + // r4(s6 s5 s4 s7) + "uxtb.w r12, r4, ror #16 \n\t" // s6 + "uxtb.w r11, r4, ror #8 \n\t" // s5 + "uxtb.w r10, r4 \n\t" // s4 + "uxtb.w r4, r4, ror #24 \n\t" // s7 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "eor.w r3, r3, r7, lsl #8 \n\t" + "eor.w r3, r3, r8, lsl #16 \n\t" + "eor.w r3, r3, r9, lsl #24 \n\t" + "eor.w r4, r4, r10, lsl #8 \n\t" + "eor.w r4, r4, r11, lsl #16 \n\t" + "eor.w r4, r4, r12, lsl #24 \n\t" + + // 3rd-4th line + // r5(s9 s8 s11 s10) + "uxtb.w r9, r5, ror #8 \n\t" // s9 + "uxtb.w r8, r5 \n\t" // s8 + "uxtb.w r7, r5, ror #24 \n\t" // s11 + "uxtb.w r5, r5, ror #16 \n\t" // s10 + // r6(s12 s15 s14 s13) + "uxtb.w r12, r6 \n\t" // s12 + "uxtb.w r11, r6, ror #24 \n\t" // s15 + "uxtb.w r10, r6, ror #16 \n\t" // s14 + "uxtb.w r6, r6, ror #8 \n\t" // s13 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "eor.w r5, r5, r7, lsl #8 \n\t" + "eor.w r5, r5, r8, lsl #16 \n\t" + "eor.w r5, r5, r9, lsl #24 \n\t" + "eor.w r6, r6, r10, lsl #8 \n\t" + "eor.w r6, r6, r11, lsl #16 \n\t" + "eor.w r6, r6, r12, lsl #24 \n\t" + + // AddRoundKey and AddRoundConst(from roundKeys) + "ldr.w r9, [r1,#48] \n\t" // load TK1 + "ldr.w r10, [r1,#52] \n\t" // load TK1 + "ldr.w r11, [r1,#160] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "ldr.w r12, [r1,#164] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + + "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) + "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) + // r8( s9 s8 s11 s10) + // r6(s12 s14 s14 s13) + + // MixColumn + "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 + "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 + "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 + // r8 ----------------> r8 + + // round 14 + + // SubCell+ShiftRow+AC(c2) + // r7 (s3 s2 s1 s0) + // r8 (s7 s6 s5 s4) + // r9 (s11 s10 s9 s8) + // r10(s15 s14 s13 s12) + + // 1st-2nd line + // r7(s3 s2 s1 s0) + "uxtb.w r5, r7, ror #24 \n\t" // s3 + "uxtb.w r4, r7, ror #16 \n\t" // s2 + "uxtb.w r3, r7, ror #8 \n\t" // s1 + "uxtb.w r7, r7 \n\t" // s0 + // r8(s6 s5 s4 s7) + "uxtb.w r12, r8, ror #16 \n\t" // s6 + "uxtb.w r11, r8, ror #8 \n\t" // s5 + "uxtb.w r6, r8 \n\t" // s4 + "uxtb.w r8, r8, ror #24 \n\t" // s7 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldr.w r0, [r1,#168] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r7, r7, r3, lsl #8 \n\t" + "eor.w r7, r7, r4, lsl #16 \n\t" + "eor.w r7, r7, r5, lsl #24 \n\t" + "eor.w r8, r8, r6, lsl #8 \n\t" + "eor.w r8, r8, r11, lsl #16 \n\t" + "eor.w r8, r8, r12, lsl #24 \n\t" + "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) + + // 3rd-4th line + // r9(s9 s8 s11 s10) + "uxtb.w r5, r9, ror #8 \n\t" // s9 + "uxtb.w r7, r9 \n\t" // s8 + "uxtb.w r3, r9, ror #24 \n\t" // s11 + "uxtb.w r9, r9, ror #16 \n\t" // s10 + // r10(s12 s15 s14 s13) + "uxtb.w r12, r10 \n\t" // s12 + "uxtb.w r11, r10, ror #24 \n\t" // s15 + "uxtb.w r6, r10, ror #16 \n\t" // s14 + "uxtb.w r10, r10, ror #8 \n\t" // s13 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldr.w r0, [r1,#172] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r9, r9, r3, lsl #8 \n\t" + "eor.w r9, r9, r7, lsl #16 \n\t" + "eor.w r9, r9, r5, lsl #24 \n\t" + "eor.w r10, r10, r6, lsl #8 \n\t" + "eor.w r10, r10, r11, lsl #16 \n\t" + "eor.w r10, r10, r12, lsl #24 \n\t" + "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) + + // AddRoundKey and AddRoundConst(from roundKeys) + + // r9( s9 s8 s11 s10) + // r10(s12 s14 s14 s13) + + // MixColumn + "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 + "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 + "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 + // r4 ----------------> r4 + // round 15 + + // SubCell+ShiftRow+AC(c2) + // r3 (s3 s2 s1 s0) + // r4 (s7 s6 s5 s4) + // r5 (s11 s10 s9 s8) + // r6 (s15 s14 s13 s12) + + // 1st-2nd line + // r3(s3 s2 s1 s0) + "uxtb.w r9, r3, ror #24 \n\t" // s3 + "uxtb.w r8, r3, ror #16 \n\t" // s2 + "uxtb.w r7, r3, ror #8 \n\t" // s1 + "uxtb.w r3, r3 \n\t" // s0 + // r4(s6 s5 s4 s7) + "uxtb.w r12, r4, ror #16 \n\t" // s6 + "uxtb.w r11, r4, ror #8 \n\t" // s5 + "uxtb.w r10, r4 \n\t" // s4 + "uxtb.w r4, r4, ror #24 \n\t" // s7 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "eor.w r3, r3, r7, lsl #8 \n\t" + "eor.w r3, r3, r8, lsl #16 \n\t" + "eor.w r3, r3, r9, lsl #24 \n\t" + "eor.w r4, r4, r10, lsl #8 \n\t" + "eor.w r4, r4, r11, lsl #16 \n\t" + "eor.w r4, r4, r12, lsl #24 \n\t" + + // 3rd-4th line + // r5(s9 s8 s11 s10) + "uxtb.w r9, r5, ror #8 \n\t" // s9 + "uxtb.w r8, r5 \n\t" // s8 + "uxtb.w r7, r5, ror #24 \n\t" // s11 + "uxtb.w r5, r5, ror #16 \n\t" // s10 + // r6(s12 s15 s14 s13) + "uxtb.w r12, r6 \n\t" // s12 + "uxtb.w r11, r6, ror #24 \n\t" // s15 + "uxtb.w r10, r6, ror #16 \n\t" // s14 + "uxtb.w r6, r6, ror #8 \n\t" // s13 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "eor.w r5, r5, r7, lsl #8 \n\t" + "eor.w r5, r5, r8, lsl #16 \n\t" + "eor.w r5, r5, r9, lsl #24 \n\t" + "eor.w r6, r6, r10, lsl #8 \n\t" + "eor.w r6, r6, r11, lsl #16 \n\t" + "eor.w r6, r6, r12, lsl #24 \n\t" + + // AddRoundKey and AddRoundConst(from roundKeys) + "ldr.w r9, [r1,#56] \n\t" // load TK1 + "ldr.w r10, [r1,#60] \n\t" // load TK1 + "ldr.w r11, [r1,#176] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "ldr.w r12, [r1,#180] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + + "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) + "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) + // r8( s9 s8 s11 s10) + // r6(s12 s14 s14 s13) + + // MixColumn + "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 + "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 + "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 + // r8 ----------------> r8 + + // round 16 + + // SubCell+ShiftRow+AC(c2) + // r7 (s3 s2 s1 s0) + // r8 (s7 s6 s5 s4) + // r9 (s11 s10 s9 s8) + // r10(s15 s14 s13 s12) + + // 1st-2nd line + // r7(s3 s2 s1 s0) + "uxtb.w r5, r7, ror #24 \n\t" // s3 + "uxtb.w r4, r7, ror #16 \n\t" // s2 + "uxtb.w r3, r7, ror #8 \n\t" // s1 + "uxtb.w r7, r7 \n\t" // s0 + // r8(s6 s5 s4 s7) + "uxtb.w r12, r8, ror #16 \n\t" // s6 + "uxtb.w r11, r8, ror #8 \n\t" // s5 + "uxtb.w r6, r8 \n\t" // s4 + "uxtb.w r8, r8, ror #24 \n\t" // s7 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldr.w r0, [r1,#184] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r7, r7, r3, lsl #8 \n\t" + "eor.w r7, r7, r4, lsl #16 \n\t" + "eor.w r7, r7, r5, lsl #24 \n\t" + "eor.w r8, r8, r6, lsl #8 \n\t" + "eor.w r8, r8, r11, lsl #16 \n\t" + "eor.w r8, r8, r12, lsl #24 \n\t" + "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) + + // 3rd-4th line + // r9(s9 s8 s11 s10) + "uxtb.w r5, r9, ror #8 \n\t" // s9 + "uxtb.w r7, r9 \n\t" // s8 + "uxtb.w r3, r9, ror #24 \n\t" // s11 + "uxtb.w r9, r9, ror #16 \n\t" // s10 + // r10(s12 s15 s14 s13) + "uxtb.w r12, r10 \n\t" // s12 + "uxtb.w r11, r10, ror #24 \n\t" // s15 + "uxtb.w r6, r10, ror #16 \n\t" // s14 + "uxtb.w r10, r10, ror #8 \n\t" // s13 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldr.w r0, [r1,#188] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r9, r9, r3, lsl #8 \n\t" + "eor.w r9, r9, r7, lsl #16 \n\t" + "eor.w r9, r9, r5, lsl #24 \n\t" + "eor.w r10, r10, r6, lsl #8 \n\t" + "eor.w r10, r10, r11, lsl #16 \n\t" + "eor.w r10, r10, r12, lsl #24 \n\t" + "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) + + // AddRoundKey and AddRoundConst(from roundKeys) + + // r9( s9 s8 s11 s10) + // r10(s12 s14 s14 s13) + + // MixColumn + "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 + "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 + "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 + // r4 ----------------> r4 + // round 17 + + // SubCell+ShiftRow+AC(c2) + // r3 (s3 s2 s1 s0) + // r4 (s7 s6 s5 s4) + // r5 (s11 s10 s9 s8) + // r6 (s15 s14 s13 s12) + + // 1st-2nd line + // r3(s3 s2 s1 s0) + "uxtb.w r9, r3, ror #24 \n\t" // s3 + "uxtb.w r8, r3, ror #16 \n\t" // s2 + "uxtb.w r7, r3, ror #8 \n\t" // s1 + "uxtb.w r3, r3 \n\t" // s0 + // r4(s6 s5 s4 s7) + "uxtb.w r12, r4, ror #16 \n\t" // s6 + "uxtb.w r11, r4, ror #8 \n\t" // s5 + "uxtb.w r10, r4 \n\t" // s4 + "uxtb.w r4, r4, ror #24 \n\t" // s7 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "eor.w r3, r3, r7, lsl #8 \n\t" + "eor.w r3, r3, r8, lsl #16 \n\t" + "eor.w r3, r3, r9, lsl #24 \n\t" + "eor.w r4, r4, r10, lsl #8 \n\t" + "eor.w r4, r4, r11, lsl #16 \n\t" + "eor.w r4, r4, r12, lsl #24 \n\t" + + // 3rd-4th line + // r5(s9 s8 s11 s10) + "uxtb.w r9, r5, ror #8 \n\t" // s9 + "uxtb.w r8, r5 \n\t" // s8 + "uxtb.w r7, r5, ror #24 \n\t" // s11 + "uxtb.w r5, r5, ror #16 \n\t" // s10 + // r6(s12 s15 s14 s13) + "uxtb.w r12, r6 \n\t" // s12 + "uxtb.w r11, r6, ror #24 \n\t" // s15 + "uxtb.w r10, r6, ror #16 \n\t" // s14 + "uxtb.w r6, r6, ror #8 \n\t" // s13 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "eor.w r5, r5, r7, lsl #8 \n\t" + "eor.w r5, r5, r8, lsl #16 \n\t" + "eor.w r5, r5, r9, lsl #24 \n\t" + "eor.w r6, r6, r10, lsl #8 \n\t" + "eor.w r6, r6, r11, lsl #16 \n\t" + "eor.w r6, r6, r12, lsl #24 \n\t" + + // AddRoundKey and AddRoundConst(from roundKeys) + "ldr.w r9, [r1,#0] \n\t" // load TK1 + "ldr.w r10, [r1,#4] \n\t" // load TK1 + "ldr.w r11, [r1,#192] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "ldr.w r12, [r1,#196] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + + "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) + "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) + // r8( s9 s8 s11 s10) + // r6(s12 s14 s14 s13) + + // MixColumn + "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 + "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 + "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 + // r8 ----------------> r8 + + // round 18 + + // SubCell+ShiftRow+AC(c2) + // r7 (s3 s2 s1 s0) + // r8 (s7 s6 s5 s4) + // r9 (s11 s10 s9 s8) + // r10(s15 s14 s13 s12) + + // 1st-2nd line + // r7(s3 s2 s1 s0) + "uxtb.w r5, r7, ror #24 \n\t" // s3 + "uxtb.w r4, r7, ror #16 \n\t" // s2 + "uxtb.w r3, r7, ror #8 \n\t" // s1 + "uxtb.w r7, r7 \n\t" // s0 + // r8(s6 s5 s4 s7) + "uxtb.w r12, r8, ror #16 \n\t" // s6 + "uxtb.w r11, r8, ror #8 \n\t" // s5 + "uxtb.w r6, r8 \n\t" // s4 + "uxtb.w r8, r8, ror #24 \n\t" // s7 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldr.w r0, [r1,#200] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r7, r7, r3, lsl #8 \n\t" + "eor.w r7, r7, r4, lsl #16 \n\t" + "eor.w r7, r7, r5, lsl #24 \n\t" + "eor.w r8, r8, r6, lsl #8 \n\t" + "eor.w r8, r8, r11, lsl #16 \n\t" + "eor.w r8, r8, r12, lsl #24 \n\t" + "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) + + // 3rd-4th line + // r9(s9 s8 s11 s10) + "uxtb.w r5, r9, ror #8 \n\t" // s9 + "uxtb.w r7, r9 \n\t" // s8 + "uxtb.w r3, r9, ror #24 \n\t" // s11 + "uxtb.w r9, r9, ror #16 \n\t" // s10 + // r10(s12 s15 s14 s13) + "uxtb.w r12, r10 \n\t" // s12 + "uxtb.w r11, r10, ror #24 \n\t" // s15 + "uxtb.w r6, r10, ror #16 \n\t" // s14 + "uxtb.w r10, r10, ror #8 \n\t" // s13 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldr.w r0, [r1,#204] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r9, r9, r3, lsl #8 \n\t" + "eor.w r9, r9, r7, lsl #16 \n\t" + "eor.w r9, r9, r5, lsl #24 \n\t" + "eor.w r10, r10, r6, lsl #8 \n\t" + "eor.w r10, r10, r11, lsl #16 \n\t" + "eor.w r10, r10, r12, lsl #24 \n\t" + "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) + + // AddRoundKey and AddRoundConst(from roundKeys) + + // r9( s9 s8 s11 s10) + // r10(s12 s14 s14 s13) + + // MixColumn + "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 + "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 + "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 + // r4 ----------------> r4 + // round 19 + + // SubCell+ShiftRow+AC(c2) + // r3 (s3 s2 s1 s0) + // r4 (s7 s6 s5 s4) + // r5 (s11 s10 s9 s8) + // r6 (s15 s14 s13 s12) + + // 1st-2nd line + // r3(s3 s2 s1 s0) + "uxtb.w r9, r3, ror #24 \n\t" // s3 + "uxtb.w r8, r3, ror #16 \n\t" // s2 + "uxtb.w r7, r3, ror #8 \n\t" // s1 + "uxtb.w r3, r3 \n\t" // s0 + // r4(s6 s5 s4 s7) + "uxtb.w r12, r4, ror #16 \n\t" // s6 + "uxtb.w r11, r4, ror #8 \n\t" // s5 + "uxtb.w r10, r4 \n\t" // s4 + "uxtb.w r4, r4, ror #24 \n\t" // s7 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "eor.w r3, r3, r7, lsl #8 \n\t" + "eor.w r3, r3, r8, lsl #16 \n\t" + "eor.w r3, r3, r9, lsl #24 \n\t" + "eor.w r4, r4, r10, lsl #8 \n\t" + "eor.w r4, r4, r11, lsl #16 \n\t" + "eor.w r4, r4, r12, lsl #24 \n\t" + + // 3rd-4th line + // r5(s9 s8 s11 s10) + "uxtb.w r9, r5, ror #8 \n\t" // s9 + "uxtb.w r8, r5 \n\t" // s8 + "uxtb.w r7, r5, ror #24 \n\t" // s11 + "uxtb.w r5, r5, ror #16 \n\t" // s10 + // r6(s12 s15 s14 s13) + "uxtb.w r12, r6 \n\t" // s12 + "uxtb.w r11, r6, ror #24 \n\t" // s15 + "uxtb.w r10, r6, ror #16 \n\t" // s14 + "uxtb.w r6, r6, ror #8 \n\t" // s13 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "eor.w r5, r5, r7, lsl #8 \n\t" + "eor.w r5, r5, r8, lsl #16 \n\t" + "eor.w r5, r5, r9, lsl #24 \n\t" + "eor.w r6, r6, r10, lsl #8 \n\t" + "eor.w r6, r6, r11, lsl #16 \n\t" + "eor.w r6, r6, r12, lsl #24 \n\t" + + // AddRoundKey and AddRoundConst(from roundKeys) + "ldr.w r9, [r1,#8] \n\t" // load TK1 + "ldr.w r10, [r1,#12] \n\t" // load TK1 + "ldr.w r11, [r1,#208] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "ldr.w r12, [r1,#212] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + + "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) + "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) + // r8( s9 s8 s11 s10) + // r6(s12 s14 s14 s13) + + // MixColumn + "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 + "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 + "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 + // r8 ----------------> r8 + + // round 20 + + // SubCell+ShiftRow+AC(c2) + // r7 (s3 s2 s1 s0) + // r8 (s7 s6 s5 s4) + // r9 (s11 s10 s9 s8) + // r10(s15 s14 s13 s12) + + // 1st-2nd line + // r7(s3 s2 s1 s0) + "uxtb.w r5, r7, ror #24 \n\t" // s3 + "uxtb.w r4, r7, ror #16 \n\t" // s2 + "uxtb.w r3, r7, ror #8 \n\t" // s1 + "uxtb.w r7, r7 \n\t" // s0 + // r8(s6 s5 s4 s7) + "uxtb.w r12, r8, ror #16 \n\t" // s6 + "uxtb.w r11, r8, ror #8 \n\t" // s5 + "uxtb.w r6, r8 \n\t" // s4 + "uxtb.w r8, r8, ror #24 \n\t" // s7 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldr.w r0, [r1,#216] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r7, r7, r3, lsl #8 \n\t" + "eor.w r7, r7, r4, lsl #16 \n\t" + "eor.w r7, r7, r5, lsl #24 \n\t" + "eor.w r8, r8, r6, lsl #8 \n\t" + "eor.w r8, r8, r11, lsl #16 \n\t" + "eor.w r8, r8, r12, lsl #24 \n\t" + "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) + + // 3rd-4th line + // r9(s9 s8 s11 s10) + "uxtb.w r5, r9, ror #8 \n\t" // s9 + "uxtb.w r7, r9 \n\t" // s8 + "uxtb.w r3, r9, ror #24 \n\t" // s11 + "uxtb.w r9, r9, ror #16 \n\t" // s10 + // r10(s12 s15 s14 s13) + "uxtb.w r12, r10 \n\t" // s12 + "uxtb.w r11, r10, ror #24 \n\t" // s15 + "uxtb.w r6, r10, ror #16 \n\t" // s14 + "uxtb.w r10, r10, ror #8 \n\t" // s13 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldr.w r0, [r1,#220] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r9, r9, r3, lsl #8 \n\t" + "eor.w r9, r9, r7, lsl #16 \n\t" + "eor.w r9, r9, r5, lsl #24 \n\t" + "eor.w r10, r10, r6, lsl #8 \n\t" + "eor.w r10, r10, r11, lsl #16 \n\t" + "eor.w r10, r10, r12, lsl #24 \n\t" + "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) + + // AddRoundKey and AddRoundConst(from roundKeys) + + // r9( s9 s8 s11 s10) + // r10(s12 s14 s14 s13) + + // MixColumn + "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 + "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 + "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 + // r4 ----------------> r4 + // round 21 + + // SubCell+ShiftRow+AC(c2) + // r3 (s3 s2 s1 s0) + // r4 (s7 s6 s5 s4) + // r5 (s11 s10 s9 s8) + // r6 (s15 s14 s13 s12) + + // 1st-2nd line + // r3(s3 s2 s1 s0) + "uxtb.w r9, r3, ror #24 \n\t" // s3 + "uxtb.w r8, r3, ror #16 \n\t" // s2 + "uxtb.w r7, r3, ror #8 \n\t" // s1 + "uxtb.w r3, r3 \n\t" // s0 + // r4(s6 s5 s4 s7) + "uxtb.w r12, r4, ror #16 \n\t" // s6 + "uxtb.w r11, r4, ror #8 \n\t" // s5 + "uxtb.w r10, r4 \n\t" // s4 + "uxtb.w r4, r4, ror #24 \n\t" // s7 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "eor.w r3, r3, r7, lsl #8 \n\t" + "eor.w r3, r3, r8, lsl #16 \n\t" + "eor.w r3, r3, r9, lsl #24 \n\t" + "eor.w r4, r4, r10, lsl #8 \n\t" + "eor.w r4, r4, r11, lsl #16 \n\t" + "eor.w r4, r4, r12, lsl #24 \n\t" + + // 3rd-4th line + // r5(s9 s8 s11 s10) + "uxtb.w r9, r5, ror #8 \n\t" // s9 + "uxtb.w r8, r5 \n\t" // s8 + "uxtb.w r7, r5, ror #24 \n\t" // s11 + "uxtb.w r5, r5, ror #16 \n\t" // s10 + // r6(s12 s15 s14 s13) + "uxtb.w r12, r6 \n\t" // s12 + "uxtb.w r11, r6, ror #24 \n\t" // s15 + "uxtb.w r10, r6, ror #16 \n\t" // s14 + "uxtb.w r6, r6, ror #8 \n\t" // s13 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "eor.w r5, r5, r7, lsl #8 \n\t" + "eor.w r5, r5, r8, lsl #16 \n\t" + "eor.w r5, r5, r9, lsl #24 \n\t" + "eor.w r6, r6, r10, lsl #8 \n\t" + "eor.w r6, r6, r11, lsl #16 \n\t" + "eor.w r6, r6, r12, lsl #24 \n\t" + + // AddRoundKey and AddRoundConst(from roundKeys) + "ldr.w r9, [r1,#16] \n\t" // load TK1 + "ldr.w r10, [r1,#20] \n\t" // load TK1 + "ldr.w r11, [r1,#224] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "ldr.w r12, [r1,#228] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + + "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) + "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) + // r8( s9 s8 s11 s10) + // r6(s12 s14 s14 s13) + + // MixColumn + "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 + "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 + "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 + // r8 ----------------> r8 + + // round 22 + + // SubCell+ShiftRow+AC(c2) + // r7 (s3 s2 s1 s0) + // r8 (s7 s6 s5 s4) + // r9 (s11 s10 s9 s8) + // r10(s15 s14 s13 s12) + + // 1st-2nd line + // r7(s3 s2 s1 s0) + "uxtb.w r5, r7, ror #24 \n\t" // s3 + "uxtb.w r4, r7, ror #16 \n\t" // s2 + "uxtb.w r3, r7, ror #8 \n\t" // s1 + "uxtb.w r7, r7 \n\t" // s0 + // r8(s6 s5 s4 s7) + "uxtb.w r12, r8, ror #16 \n\t" // s6 + "uxtb.w r11, r8, ror #8 \n\t" // s5 + "uxtb.w r6, r8 \n\t" // s4 + "uxtb.w r8, r8, ror #24 \n\t" // s7 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldr.w r0, [r1,#232] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r7, r7, r3, lsl #8 \n\t" + "eor.w r7, r7, r4, lsl #16 \n\t" + "eor.w r7, r7, r5, lsl #24 \n\t" + "eor.w r8, r8, r6, lsl #8 \n\t" + "eor.w r8, r8, r11, lsl #16 \n\t" + "eor.w r8, r8, r12, lsl #24 \n\t" + "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) + + // 3rd-4th line + // r9(s9 s8 s11 s10) + "uxtb.w r5, r9, ror #8 \n\t" // s9 + "uxtb.w r7, r9 \n\t" // s8 + "uxtb.w r3, r9, ror #24 \n\t" // s11 + "uxtb.w r9, r9, ror #16 \n\t" // s10 + // r10(s12 s15 s14 s13) + "uxtb.w r12, r10 \n\t" // s12 + "uxtb.w r11, r10, ror #24 \n\t" // s15 + "uxtb.w r6, r10, ror #16 \n\t" // s14 + "uxtb.w r10, r10, ror #8 \n\t" // s13 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldr.w r0, [r1,#236] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r9, r9, r3, lsl #8 \n\t" + "eor.w r9, r9, r7, lsl #16 \n\t" + "eor.w r9, r9, r5, lsl #24 \n\t" + "eor.w r10, r10, r6, lsl #8 \n\t" + "eor.w r10, r10, r11, lsl #16 \n\t" + "eor.w r10, r10, r12, lsl #24 \n\t" + "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) + + // AddRoundKey and AddRoundConst(from roundKeys) + + // r9( s9 s8 s11 s10) + // r10(s12 s14 s14 s13) + + // MixColumn + "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 + "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 + "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 + // r4 ----------------> r4 + // round 23 + + // SubCell+ShiftRow+AC(c2) + // r3 (s3 s2 s1 s0) + // r4 (s7 s6 s5 s4) + // r5 (s11 s10 s9 s8) + // r6 (s15 s14 s13 s12) + + // 1st-2nd line + // r3(s3 s2 s1 s0) + "uxtb.w r9, r3, ror #24 \n\t" // s3 + "uxtb.w r8, r3, ror #16 \n\t" // s2 + "uxtb.w r7, r3, ror #8 \n\t" // s1 + "uxtb.w r3, r3 \n\t" // s0 + // r4(s6 s5 s4 s7) + "uxtb.w r12, r4, ror #16 \n\t" // s6 + "uxtb.w r11, r4, ror #8 \n\t" // s5 + "uxtb.w r10, r4 \n\t" // s4 + "uxtb.w r4, r4, ror #24 \n\t" // s7 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "eor.w r3, r3, r7, lsl #8 \n\t" + "eor.w r3, r3, r8, lsl #16 \n\t" + "eor.w r3, r3, r9, lsl #24 \n\t" + "eor.w r4, r4, r10, lsl #8 \n\t" + "eor.w r4, r4, r11, lsl #16 \n\t" + "eor.w r4, r4, r12, lsl #24 \n\t" + + // 3rd-4th line + // r5(s9 s8 s11 s10) + "uxtb.w r9, r5, ror #8 \n\t" // s9 + "uxtb.w r8, r5 \n\t" // s8 + "uxtb.w r7, r5, ror #24 \n\t" // s11 + "uxtb.w r5, r5, ror #16 \n\t" // s10 + // r6(s12 s15 s14 s13) + "uxtb.w r12, r6 \n\t" // s12 + "uxtb.w r11, r6, ror #24 \n\t" // s15 + "uxtb.w r10, r6, ror #16 \n\t" // s14 + "uxtb.w r6, r6, ror #8 \n\t" // s13 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "eor.w r5, r5, r7, lsl #8 \n\t" + "eor.w r5, r5, r8, lsl #16 \n\t" + "eor.w r5, r5, r9, lsl #24 \n\t" + "eor.w r6, r6, r10, lsl #8 \n\t" + "eor.w r6, r6, r11, lsl #16 \n\t" + "eor.w r6, r6, r12, lsl #24 \n\t" + + // AddRoundKey and AddRoundConst(from roundKeys) + "ldr.w r9, [r1,#24] \n\t" // load TK1 + "ldr.w r10, [r1,#28] \n\t" // load TK1 + "ldr.w r11, [r1,#240] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "ldr.w r12, [r1,#244] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + + "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) + "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) + // r8( s9 s8 s11 s10) + // r6(s12 s14 s14 s13) + + // MixColumn + "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 + "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 + "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 + // r8 ----------------> r8 + + // round 24 + + // SubCell+ShiftRow+AC(c2) + // r7 (s3 s2 s1 s0) + // r8 (s7 s6 s5 s4) + // r9 (s11 s10 s9 s8) + // r10(s15 s14 s13 s12) + + // 1st-2nd line + // r7(s3 s2 s1 s0) + "uxtb.w r5, r7, ror #24 \n\t" // s3 + "uxtb.w r4, r7, ror #16 \n\t" // s2 + "uxtb.w r3, r7, ror #8 \n\t" // s1 + "uxtb.w r7, r7 \n\t" // s0 + // r8(s6 s5 s4 s7) + "uxtb.w r12, r8, ror #16 \n\t" // s6 + "uxtb.w r11, r8, ror #8 \n\t" // s5 + "uxtb.w r6, r8 \n\t" // s4 + "uxtb.w r8, r8, ror #24 \n\t" // s7 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldr.w r0, [r1,#248] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r7, r7, r3, lsl #8 \n\t" + "eor.w r7, r7, r4, lsl #16 \n\t" + "eor.w r7, r7, r5, lsl #24 \n\t" + "eor.w r8, r8, r6, lsl #8 \n\t" + "eor.w r8, r8, r11, lsl #16 \n\t" + "eor.w r8, r8, r12, lsl #24 \n\t" + "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) + + // 3rd-4th line + // r9(s9 s8 s11 s10) + "uxtb.w r5, r9, ror #8 \n\t" // s9 + "uxtb.w r7, r9 \n\t" // s8 + "uxtb.w r3, r9, ror #24 \n\t" // s11 + "uxtb.w r9, r9, ror #16 \n\t" // s10 + // r10(s12 s15 s14 s13) + "uxtb.w r12, r10 \n\t" // s12 + "uxtb.w r11, r10, ror #24 \n\t" // s15 + "uxtb.w r6, r10, ror #16 \n\t" // s14 + "uxtb.w r10, r10, ror #8 \n\t" // s13 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldr.w r0, [r1,#252] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r9, r9, r3, lsl #8 \n\t" + "eor.w r9, r9, r7, lsl #16 \n\t" + "eor.w r9, r9, r5, lsl #24 \n\t" + "eor.w r10, r10, r6, lsl #8 \n\t" + "eor.w r10, r10, r11, lsl #16 \n\t" + "eor.w r10, r10, r12, lsl #24 \n\t" + "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) + + // AddRoundKey and AddRoundConst(from roundKeys) + + // r9( s9 s8 s11 s10) + // r10(s12 s14 s14 s13) + + // MixColumn + "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 + "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 + "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 + // r4 ----------------> r4 + // round 25 + + // SubCell+ShiftRow+AC(c2) + // r3 (s3 s2 s1 s0) + // r4 (s7 s6 s5 s4) + // r5 (s11 s10 s9 s8) + // r6 (s15 s14 s13 s12) + + // 1st-2nd line + // r3(s3 s2 s1 s0) + "uxtb.w r9, r3, ror #24 \n\t" // s3 + "uxtb.w r8, r3, ror #16 \n\t" // s2 + "uxtb.w r7, r3, ror #8 \n\t" // s1 + "uxtb.w r3, r3 \n\t" // s0 + // r4(s6 s5 s4 s7) + "uxtb.w r12, r4, ror #16 \n\t" // s6 + "uxtb.w r11, r4, ror #8 \n\t" // s5 + "uxtb.w r10, r4 \n\t" // s4 + "uxtb.w r4, r4, ror #24 \n\t" // s7 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "eor.w r3, r3, r7, lsl #8 \n\t" + "eor.w r3, r3, r8, lsl #16 \n\t" + "eor.w r3, r3, r9, lsl #24 \n\t" + "eor.w r4, r4, r10, lsl #8 \n\t" + "eor.w r4, r4, r11, lsl #16 \n\t" + "eor.w r4, r4, r12, lsl #24 \n\t" + + // 3rd-4th line + // r5(s9 s8 s11 s10) + "uxtb.w r9, r5, ror #8 \n\t" // s9 + "uxtb.w r8, r5 \n\t" // s8 + "uxtb.w r7, r5, ror #24 \n\t" // s11 + "uxtb.w r5, r5, ror #16 \n\t" // s10 + // r6(s12 s15 s14 s13) + "uxtb.w r12, r6 \n\t" // s12 + "uxtb.w r11, r6, ror #24 \n\t" // s15 + "uxtb.w r10, r6, ror #16 \n\t" // s14 + "uxtb.w r6, r6, ror #8 \n\t" // s13 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "eor.w r5, r5, r7, lsl #8 \n\t" + "eor.w r5, r5, r8, lsl #16 \n\t" + "eor.w r5, r5, r9, lsl #24 \n\t" + "eor.w r6, r6, r10, lsl #8 \n\t" + "eor.w r6, r6, r11, lsl #16 \n\t" + "eor.w r6, r6, r12, lsl #24 \n\t" + + // AddRoundKey and AddRoundConst(from roundKeys) + "ldr.w r9, [r1,#32] \n\t" // load TK1 + "ldr.w r10, [r1,#36] \n\t" // load TK1 + "ldr.w r11, [r1,#256] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "ldr.w r12, [r1,#260] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + + "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) + "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) + // r8( s9 s8 s11 s10) + // r6(s12 s14 s14 s13) + + // MixColumn + "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 + "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 + "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 + // r8 ----------------> r8 + + // round 26 + + // SubCell+ShiftRow+AC(c2) + // r7 (s3 s2 s1 s0) + // r8 (s7 s6 s5 s4) + // r9 (s11 s10 s9 s8) + // r10(s15 s14 s13 s12) + + // 1st-2nd line + // r7(s3 s2 s1 s0) + "uxtb.w r5, r7, ror #24 \n\t" // s3 + "uxtb.w r4, r7, ror #16 \n\t" // s2 + "uxtb.w r3, r7, ror #8 \n\t" // s1 + "uxtb.w r7, r7 \n\t" // s0 + // r8(s6 s5 s4 s7) + "uxtb.w r12, r8, ror #16 \n\t" // s6 + "uxtb.w r11, r8, ror #8 \n\t" // s5 + "uxtb.w r6, r8 \n\t" // s4 + "uxtb.w r8, r8, ror #24 \n\t" // s7 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldr.w r0, [r1,#264] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r7, r7, r3, lsl #8 \n\t" + "eor.w r7, r7, r4, lsl #16 \n\t" + "eor.w r7, r7, r5, lsl #24 \n\t" + "eor.w r8, r8, r6, lsl #8 \n\t" + "eor.w r8, r8, r11, lsl #16 \n\t" + "eor.w r8, r8, r12, lsl #24 \n\t" + "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) + + // 3rd-4th line + // r9(s9 s8 s11 s10) + "uxtb.w r5, r9, ror #8 \n\t" // s9 + "uxtb.w r7, r9 \n\t" // s8 + "uxtb.w r3, r9, ror #24 \n\t" // s11 + "uxtb.w r9, r9, ror #16 \n\t" // s10 + // r10(s12 s15 s14 s13) + "uxtb.w r12, r10 \n\t" // s12 + "uxtb.w r11, r10, ror #24 \n\t" // s15 + "uxtb.w r6, r10, ror #16 \n\t" // s14 + "uxtb.w r10, r10, ror #8 \n\t" // s13 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldr.w r0, [r1,#268] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r9, r9, r3, lsl #8 \n\t" + "eor.w r9, r9, r7, lsl #16 \n\t" + "eor.w r9, r9, r5, lsl #24 \n\t" + "eor.w r10, r10, r6, lsl #8 \n\t" + "eor.w r10, r10, r11, lsl #16 \n\t" + "eor.w r10, r10, r12, lsl #24 \n\t" + "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) + + // AddRoundKey and AddRoundConst(from roundKeys) + + // r9( s9 s8 s11 s10) + // r10(s12 s14 s14 s13) + + // MixColumn + "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 + "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 + "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 + // r4 ----------------> r4 + // round 27 + + // SubCell+ShiftRow+AC(c2) + // r3 (s3 s2 s1 s0) + // r4 (s7 s6 s5 s4) + // r5 (s11 s10 s9 s8) + // r6 (s15 s14 s13 s12) + + // 1st-2nd line + // r3(s3 s2 s1 s0) + "uxtb.w r9, r3, ror #24 \n\t" // s3 + "uxtb.w r8, r3, ror #16 \n\t" // s2 + "uxtb.w r7, r3, ror #8 \n\t" // s1 + "uxtb.w r3, r3 \n\t" // s0 + // r4(s6 s5 s4 s7) + "uxtb.w r12, r4, ror #16 \n\t" // s6 + "uxtb.w r11, r4, ror #8 \n\t" // s5 + "uxtb.w r10, r4 \n\t" // s4 + "uxtb.w r4, r4, ror #24 \n\t" // s7 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "eor.w r3, r3, r7, lsl #8 \n\t" + "eor.w r3, r3, r8, lsl #16 \n\t" + "eor.w r3, r3, r9, lsl #24 \n\t" + "eor.w r4, r4, r10, lsl #8 \n\t" + "eor.w r4, r4, r11, lsl #16 \n\t" + "eor.w r4, r4, r12, lsl #24 \n\t" + + // 3rd-4th line + // r5(s9 s8 s11 s10) + "uxtb.w r9, r5, ror #8 \n\t" // s9 + "uxtb.w r8, r5 \n\t" // s8 + "uxtb.w r7, r5, ror #24 \n\t" // s11 + "uxtb.w r5, r5, ror #16 \n\t" // s10 + // r6(s12 s15 s14 s13) + "uxtb.w r12, r6 \n\t" // s12 + "uxtb.w r11, r6, ror #24 \n\t" // s15 + "uxtb.w r10, r6, ror #16 \n\t" // s14 + "uxtb.w r6, r6, ror #8 \n\t" // s13 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "eor.w r5, r5, r7, lsl #8 \n\t" + "eor.w r5, r5, r8, lsl #16 \n\t" + "eor.w r5, r5, r9, lsl #24 \n\t" + "eor.w r6, r6, r10, lsl #8 \n\t" + "eor.w r6, r6, r11, lsl #16 \n\t" + "eor.w r6, r6, r12, lsl #24 \n\t" + + // AddRoundKey and AddRoundConst(from roundKeys) + "ldr.w r9, [r1,#40] \n\t" // load TK1 + "ldr.w r10, [r1,#44] \n\t" // load TK1 + "ldr.w r11, [r1,#272] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "ldr.w r12, [r1,#276] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + + "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) + "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) + // r8( s9 s8 s11 s10) + // r6(s12 s14 s14 s13) + + // MixColumn + "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 + "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 + "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 + // r8 ----------------> r8 + + // round 28 + + // SubCell+ShiftRow+AC(c2) + // r7 (s3 s2 s1 s0) + // r8 (s7 s6 s5 s4) + // r9 (s11 s10 s9 s8) + // r10(s15 s14 s13 s12) + + // 1st-2nd line + // r7(s3 s2 s1 s0) + "uxtb.w r5, r7, ror #24 \n\t" // s3 + "uxtb.w r4, r7, ror #16 \n\t" // s2 + "uxtb.w r3, r7, ror #8 \n\t" // s1 + "uxtb.w r7, r7 \n\t" // s0 + // r8(s6 s5 s4 s7) + "uxtb.w r12, r8, ror #16 \n\t" // s6 + "uxtb.w r11, r8, ror #8 \n\t" // s5 + "uxtb.w r6, r8 \n\t" // s4 + "uxtb.w r8, r8, ror #24 \n\t" // s7 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldr.w r0, [r1,#280] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r7, r7, r3, lsl #8 \n\t" + "eor.w r7, r7, r4, lsl #16 \n\t" + "eor.w r7, r7, r5, lsl #24 \n\t" + "eor.w r8, r8, r6, lsl #8 \n\t" + "eor.w r8, r8, r11, lsl #16 \n\t" + "eor.w r8, r8, r12, lsl #24 \n\t" + "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) + + // 3rd-4th line + // r9(s9 s8 s11 s10) + "uxtb.w r5, r9, ror #8 \n\t" // s9 + "uxtb.w r7, r9 \n\t" // s8 + "uxtb.w r3, r9, ror #24 \n\t" // s11 + "uxtb.w r9, r9, ror #16 \n\t" // s10 + // r10(s12 s15 s14 s13) + "uxtb.w r12, r10 \n\t" // s12 + "uxtb.w r11, r10, ror #24 \n\t" // s15 + "uxtb.w r6, r10, ror #16 \n\t" // s14 + "uxtb.w r10, r10, ror #8 \n\t" // s13 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldr.w r0, [r1,#284] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r9, r9, r3, lsl #8 \n\t" + "eor.w r9, r9, r7, lsl #16 \n\t" + "eor.w r9, r9, r5, lsl #24 \n\t" + "eor.w r10, r10, r6, lsl #8 \n\t" + "eor.w r10, r10, r11, lsl #16 \n\t" + "eor.w r10, r10, r12, lsl #24 \n\t" + "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) + + // AddRoundKey and AddRoundConst(from roundKeys) + + // r9( s9 s8 s11 s10) + // r10(s12 s14 s14 s13) + + // MixColumn + "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 + "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 + "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 + // r4 ----------------> r4 + // round 29 + + // SubCell+ShiftRow+AC(c2) + // r3 (s3 s2 s1 s0) + // r4 (s7 s6 s5 s4) + // r5 (s11 s10 s9 s8) + // r6 (s15 s14 s13 s12) + + // 1st-2nd line + // r3(s3 s2 s1 s0) + "uxtb.w r9, r3, ror #24 \n\t" // s3 + "uxtb.w r8, r3, ror #16 \n\t" // s2 + "uxtb.w r7, r3, ror #8 \n\t" // s1 + "uxtb.w r3, r3 \n\t" // s0 + // r4(s6 s5 s4 s7) + "uxtb.w r12, r4, ror #16 \n\t" // s6 + "uxtb.w r11, r4, ror #8 \n\t" // s5 + "uxtb.w r10, r4 \n\t" // s4 + "uxtb.w r4, r4, ror #24 \n\t" // s7 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "eor.w r3, r3, r7, lsl #8 \n\t" + "eor.w r3, r3, r8, lsl #16 \n\t" + "eor.w r3, r3, r9, lsl #24 \n\t" + "eor.w r4, r4, r10, lsl #8 \n\t" + "eor.w r4, r4, r11, lsl #16 \n\t" + "eor.w r4, r4, r12, lsl #24 \n\t" + + // 3rd-4th line + // r5(s9 s8 s11 s10) + "uxtb.w r9, r5, ror #8 \n\t" // s9 + "uxtb.w r8, r5 \n\t" // s8 + "uxtb.w r7, r5, ror #24 \n\t" // s11 + "uxtb.w r5, r5, ror #16 \n\t" // s10 + // r6(s12 s15 s14 s13) + "uxtb.w r12, r6 \n\t" // s12 + "uxtb.w r11, r6, ror #24 \n\t" // s15 + "uxtb.w r10, r6, ror #16 \n\t" // s14 + "uxtb.w r6, r6, ror #8 \n\t" // s13 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "eor.w r5, r5, r7, lsl #8 \n\t" + "eor.w r5, r5, r8, lsl #16 \n\t" + "eor.w r5, r5, r9, lsl #24 \n\t" + "eor.w r6, r6, r10, lsl #8 \n\t" + "eor.w r6, r6, r11, lsl #16 \n\t" + "eor.w r6, r6, r12, lsl #24 \n\t" + + // AddRoundKey and AddRoundConst(from roundKeys) + "ldr.w r9, [r1,#48] \n\t" // load TK1 + "ldr.w r10, [r1,#52] \n\t" // load TK1 + "ldr.w r11, [r1,#288] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "ldr.w r12, [r1,#292] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + + "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) + "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) + // r8( s9 s8 s11 s10) + // r6(s12 s14 s14 s13) + + // MixColumn + "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 + "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 + "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 + // r8 ----------------> r8 + + // round 30 + + // SubCell+ShiftRow+AC(c2) + // r7 (s3 s2 s1 s0) + // r8 (s7 s6 s5 s4) + // r9 (s11 s10 s9 s8) + // r10(s15 s14 s13 s12) + + // 1st-2nd line + // r7(s3 s2 s1 s0) + "uxtb.w r5, r7, ror #24 \n\t" // s3 + "uxtb.w r4, r7, ror #16 \n\t" // s2 + "uxtb.w r3, r7, ror #8 \n\t" // s1 + "uxtb.w r7, r7 \n\t" // s0 + // r8(s6 s5 s4 s7) + "uxtb.w r12, r8, ror #16 \n\t" // s6 + "uxtb.w r11, r8, ror #8 \n\t" // s5 + "uxtb.w r6, r8 \n\t" // s4 + "uxtb.w r8, r8, ror #24 \n\t" // s7 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldr.w r0, [r1,#296] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r7, r7, r3, lsl #8 \n\t" + "eor.w r7, r7, r4, lsl #16 \n\t" + "eor.w r7, r7, r5, lsl #24 \n\t" + "eor.w r8, r8, r6, lsl #8 \n\t" + "eor.w r8, r8, r11, lsl #16 \n\t" + "eor.w r8, r8, r12, lsl #24 \n\t" + "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) + + // 3rd-4th line + // r9(s9 s8 s11 s10) + "uxtb.w r5, r9, ror #8 \n\t" // s9 + "uxtb.w r7, r9 \n\t" // s8 + "uxtb.w r3, r9, ror #24 \n\t" // s11 + "uxtb.w r9, r9, ror #16 \n\t" // s10 + // r10(s12 s15 s14 s13) + "uxtb.w r12, r10 \n\t" // s12 + "uxtb.w r11, r10, ror #24 \n\t" // s15 + "uxtb.w r6, r10, ror #16 \n\t" // s14 + "uxtb.w r10, r10, ror #8 \n\t" // s13 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldr.w r0, [r1,#300] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r9, r9, r3, lsl #8 \n\t" + "eor.w r9, r9, r7, lsl #16 \n\t" + "eor.w r9, r9, r5, lsl #24 \n\t" + "eor.w r10, r10, r6, lsl #8 \n\t" + "eor.w r10, r10, r11, lsl #16 \n\t" + "eor.w r10, r10, r12, lsl #24 \n\t" + "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) + + // AddRoundKey and AddRoundConst(from roundKeys) + + // r9( s9 s8 s11 s10) + // r10(s12 s14 s14 s13) + + // MixColumn + "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 + "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 + "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 + // r4 ----------------> r4 + // round 31 + + // SubCell+ShiftRow+AC(c2) + // r3 (s3 s2 s1 s0) + // r4 (s7 s6 s5 s4) + // r5 (s11 s10 s9 s8) + // r6 (s15 s14 s13 s12) + + // 1st-2nd line + // r3(s3 s2 s1 s0) + "uxtb.w r9, r3, ror #24 \n\t" // s3 + "uxtb.w r8, r3, ror #16 \n\t" // s2 + "uxtb.w r7, r3, ror #8 \n\t" // s1 + "uxtb.w r3, r3 \n\t" // s0 + // r4(s6 s5 s4 s7) + "uxtb.w r12, r4, ror #16 \n\t" // s6 + "uxtb.w r11, r4, ror #8 \n\t" // s5 + "uxtb.w r10, r4 \n\t" // s4 + "uxtb.w r4, r4, ror #24 \n\t" // s7 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "eor.w r3, r3, r7, lsl #8 \n\t" + "eor.w r3, r3, r8, lsl #16 \n\t" + "eor.w r3, r3, r9, lsl #24 \n\t" + "eor.w r4, r4, r10, lsl #8 \n\t" + "eor.w r4, r4, r11, lsl #16 \n\t" + "eor.w r4, r4, r12, lsl #24 \n\t" + + // 3rd-4th line + // r5(s9 s8 s11 s10) + "uxtb.w r9, r5, ror #8 \n\t" // s9 + "uxtb.w r8, r5 \n\t" // s8 + "uxtb.w r7, r5, ror #24 \n\t" // s11 + "uxtb.w r5, r5, ror #16 \n\t" // s10 + // r6(s12 s15 s14 s13) + "uxtb.w r12, r6 \n\t" // s12 + "uxtb.w r11, r6, ror #24 \n\t" // s15 + "uxtb.w r10, r6, ror #16 \n\t" // s14 + "uxtb.w r6, r6, ror #8 \n\t" // s13 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "eor.w r5, r5, r7, lsl #8 \n\t" + "eor.w r5, r5, r8, lsl #16 \n\t" + "eor.w r5, r5, r9, lsl #24 \n\t" + "eor.w r6, r6, r10, lsl #8 \n\t" + "eor.w r6, r6, r11, lsl #16 \n\t" + "eor.w r6, r6, r12, lsl #24 \n\t" + + // AddRoundKey and AddRoundConst(from roundKeys) + "ldr.w r9, [r1,#56] \n\t" // load TK1 + "ldr.w r10, [r1,#60] \n\t" // load TK1 + "ldr.w r11, [r1,#304] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "ldr.w r12, [r1,#308] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + + "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) + "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) + // r8( s9 s8 s11 s10) + // r6(s12 s14 s14 s13) + + // MixColumn + "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 + "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 + "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 + // r8 ----------------> r8 + + // round 32 + + // SubCell+ShiftRow+AC(c2) + // r7 (s3 s2 s1 s0) + // r8 (s7 s6 s5 s4) + // r9 (s11 s10 s9 s8) + // r10(s15 s14 s13 s12) + + // 1st-2nd line + // r7(s3 s2 s1 s0) + "uxtb.w r5, r7, ror #24 \n\t" // s3 + "uxtb.w r4, r7, ror #16 \n\t" // s2 + "uxtb.w r3, r7, ror #8 \n\t" // s1 + "uxtb.w r7, r7 \n\t" // s0 + // r8(s6 s5 s4 s7) + "uxtb.w r12, r8, ror #16 \n\t" // s6 + "uxtb.w r11, r8, ror #8 \n\t" // s5 + "uxtb.w r6, r8 \n\t" // s4 + "uxtb.w r8, r8, ror #24 \n\t" // s7 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldr.w r0, [r1,#312] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r7, r7, r3, lsl #8 \n\t" + "eor.w r7, r7, r4, lsl #16 \n\t" + "eor.w r7, r7, r5, lsl #24 \n\t" + "eor.w r8, r8, r6, lsl #8 \n\t" + "eor.w r8, r8, r11, lsl #16 \n\t" + "eor.w r8, r8, r12, lsl #24 \n\t" + "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) + + // 3rd-4th line + // r9(s9 s8 s11 s10) + "uxtb.w r5, r9, ror #8 \n\t" // s9 + "uxtb.w r7, r9 \n\t" // s8 + "uxtb.w r3, r9, ror #24 \n\t" // s11 + "uxtb.w r9, r9, ror #16 \n\t" // s10 + // r10(s12 s15 s14 s13) + "uxtb.w r12, r10 \n\t" // s12 + "uxtb.w r11, r10, ror #24 \n\t" // s15 + "uxtb.w r6, r10, ror #16 \n\t" // s14 + "uxtb.w r10, r10, ror #8 \n\t" // s13 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldr.w r0, [r1,#316] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r9, r9, r3, lsl #8 \n\t" + "eor.w r9, r9, r7, lsl #16 \n\t" + "eor.w r9, r9, r5, lsl #24 \n\t" + "eor.w r10, r10, r6, lsl #8 \n\t" + "eor.w r10, r10, r11, lsl #16 \n\t" + "eor.w r10, r10, r12, lsl #24 \n\t" + "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) + + // AddRoundKey and AddRoundConst(from roundKeys) + + // r9( s9 s8 s11 s10) + // r10(s12 s14 s14 s13) + + // MixColumn + "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 + "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 + "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 + // r4 ----------------> r4 + // round 33 + + // SubCell+ShiftRow+AC(c2) + // r3 (s3 s2 s1 s0) + // r4 (s7 s6 s5 s4) + // r5 (s11 s10 s9 s8) + // r6 (s15 s14 s13 s12) + + // 1st-2nd line + // r3(s3 s2 s1 s0) + "uxtb.w r9, r3, ror #24 \n\t" // s3 + "uxtb.w r8, r3, ror #16 \n\t" // s2 + "uxtb.w r7, r3, ror #8 \n\t" // s1 + "uxtb.w r3, r3 \n\t" // s0 + // r4(s6 s5 s4 s7) + "uxtb.w r12, r4, ror #16 \n\t" // s6 + "uxtb.w r11, r4, ror #8 \n\t" // s5 + "uxtb.w r10, r4 \n\t" // s4 + "uxtb.w r4, r4, ror #24 \n\t" // s7 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "eor.w r3, r3, r7, lsl #8 \n\t" + "eor.w r3, r3, r8, lsl #16 \n\t" + "eor.w r3, r3, r9, lsl #24 \n\t" + "eor.w r4, r4, r10, lsl #8 \n\t" + "eor.w r4, r4, r11, lsl #16 \n\t" + "eor.w r4, r4, r12, lsl #24 \n\t" + + // 3rd-4th line + // r5(s9 s8 s11 s10) + "uxtb.w r9, r5, ror #8 \n\t" // s9 + "uxtb.w r8, r5 \n\t" // s8 + "uxtb.w r7, r5, ror #24 \n\t" // s11 + "uxtb.w r5, r5, ror #16 \n\t" // s10 + // r6(s12 s15 s14 s13) + "uxtb.w r12, r6 \n\t" // s12 + "uxtb.w r11, r6, ror #24 \n\t" // s15 + "uxtb.w r10, r6, ror #16 \n\t" // s14 + "uxtb.w r6, r6, ror #8 \n\t" // s13 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "eor.w r5, r5, r7, lsl #8 \n\t" + "eor.w r5, r5, r8, lsl #16 \n\t" + "eor.w r5, r5, r9, lsl #24 \n\t" + "eor.w r6, r6, r10, lsl #8 \n\t" + "eor.w r6, r6, r11, lsl #16 \n\t" + "eor.w r6, r6, r12, lsl #24 \n\t" + + // AddRoundKey and AddRoundConst(from roundKeys) + "ldr.w r9, [r1,#0] \n\t" // load TK1 + "ldr.w r10, [r1,#4] \n\t" // load TK1 + "ldr.w r11, [r1,#320] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "ldr.w r12, [r1,#324] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + + "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) + "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) + // r8( s9 s8 s11 s10) + // r6(s12 s14 s14 s13) + + // MixColumn + "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 + "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 + "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 + // r8 ----------------> r8 + + // round 34 + + // SubCell+ShiftRow+AC(c2) + // r7 (s3 s2 s1 s0) + // r8 (s7 s6 s5 s4) + // r9 (s11 s10 s9 s8) + // r10(s15 s14 s13 s12) + + // 1st-2nd line + // r7(s3 s2 s1 s0) + "uxtb.w r5, r7, ror #24 \n\t" // s3 + "uxtb.w r4, r7, ror #16 \n\t" // s2 + "uxtb.w r3, r7, ror #8 \n\t" // s1 + "uxtb.w r7, r7 \n\t" // s0 + // r8(s6 s5 s4 s7) + "uxtb.w r12, r8, ror #16 \n\t" // s6 + "uxtb.w r11, r8, ror #8 \n\t" // s5 + "uxtb.w r6, r8 \n\t" // s4 + "uxtb.w r8, r8, ror #24 \n\t" // s7 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldr.w r0, [r1,#328] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r7, r7, r3, lsl #8 \n\t" + "eor.w r7, r7, r4, lsl #16 \n\t" + "eor.w r7, r7, r5, lsl #24 \n\t" + "eor.w r8, r8, r6, lsl #8 \n\t" + "eor.w r8, r8, r11, lsl #16 \n\t" + "eor.w r8, r8, r12, lsl #24 \n\t" + "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) + + // 3rd-4th line + // r9(s9 s8 s11 s10) + "uxtb.w r5, r9, ror #8 \n\t" // s9 + "uxtb.w r7, r9 \n\t" // s8 + "uxtb.w r3, r9, ror #24 \n\t" // s11 + "uxtb.w r9, r9, ror #16 \n\t" // s10 + // r10(s12 s15 s14 s13) + "uxtb.w r12, r10 \n\t" // s12 + "uxtb.w r11, r10, ror #24 \n\t" // s15 + "uxtb.w r6, r10, ror #16 \n\t" // s14 + "uxtb.w r10, r10, ror #8 \n\t" // s13 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldr.w r0, [r1,#332] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r9, r9, r3, lsl #8 \n\t" + "eor.w r9, r9, r7, lsl #16 \n\t" + "eor.w r9, r9, r5, lsl #24 \n\t" + "eor.w r10, r10, r6, lsl #8 \n\t" + "eor.w r10, r10, r11, lsl #16 \n\t" + "eor.w r10, r10, r12, lsl #24 \n\t" + "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) + + // AddRoundKey and AddRoundConst(from roundKeys) + + // r9( s9 s8 s11 s10) + // r10(s12 s14 s14 s13) + + // MixColumn + "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 + "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 + "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 + // r4 ----------------> r4 + // round 35 + + // SubCell+ShiftRow+AC(c2) + // r3 (s3 s2 s1 s0) + // r4 (s7 s6 s5 s4) + // r5 (s11 s10 s9 s8) + // r6 (s15 s14 s13 s12) + + // 1st-2nd line + // r3(s3 s2 s1 s0) + "uxtb.w r9, r3, ror #24 \n\t" // s3 + "uxtb.w r8, r3, ror #16 \n\t" // s2 + "uxtb.w r7, r3, ror #8 \n\t" // s1 + "uxtb.w r3, r3 \n\t" // s0 + // r4(s6 s5 s4 s7) + "uxtb.w r12, r4, ror #16 \n\t" // s6 + "uxtb.w r11, r4, ror #8 \n\t" // s5 + "uxtb.w r10, r4 \n\t" // s4 + "uxtb.w r4, r4, ror #24 \n\t" // s7 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "eor.w r3, r3, r7, lsl #8 \n\t" + "eor.w r3, r3, r8, lsl #16 \n\t" + "eor.w r3, r3, r9, lsl #24 \n\t" + "eor.w r4, r4, r10, lsl #8 \n\t" + "eor.w r4, r4, r11, lsl #16 \n\t" + "eor.w r4, r4, r12, lsl #24 \n\t" + + // 3rd-4th line + // r5(s9 s8 s11 s10) + "uxtb.w r9, r5, ror #8 \n\t" // s9 + "uxtb.w r8, r5 \n\t" // s8 + "uxtb.w r7, r5, ror #24 \n\t" // s11 + "uxtb.w r5, r5, ror #16 \n\t" // s10 + // r6(s12 s15 s14 s13) + "uxtb.w r12, r6 \n\t" // s12 + "uxtb.w r11, r6, ror #24 \n\t" // s15 + "uxtb.w r10, r6, ror #16 \n\t" // s14 + "uxtb.w r6, r6, ror #8 \n\t" // s13 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "eor.w r5, r5, r7, lsl #8 \n\t" + "eor.w r5, r5, r8, lsl #16 \n\t" + "eor.w r5, r5, r9, lsl #24 \n\t" + "eor.w r6, r6, r10, lsl #8 \n\t" + "eor.w r6, r6, r11, lsl #16 \n\t" + "eor.w r6, r6, r12, lsl #24 \n\t" + + // AddRoundKey and AddRoundConst(from roundKeys) + "ldr.w r9, [r1,#8] \n\t" // load TK1 + "ldr.w r10, [r1,#12] \n\t" // load TK1 + "ldr.w r11, [r1,#336] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "ldr.w r12, [r1,#340] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + + "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) + "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) + // r8( s9 s8 s11 s10) + // r6(s12 s14 s14 s13) + + // MixColumn + "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 + "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 + "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 + // r8 ----------------> r8 + + // round 36 + + // SubCell+ShiftRow+AC(c2) + // r7 (s3 s2 s1 s0) + // r8 (s7 s6 s5 s4) + // r9 (s11 s10 s9 s8) + // r10(s15 s14 s13 s12) + + // 1st-2nd line + // r7(s3 s2 s1 s0) + "uxtb.w r5, r7, ror #24 \n\t" // s3 + "uxtb.w r4, r7, ror #16 \n\t" // s2 + "uxtb.w r3, r7, ror #8 \n\t" // s1 + "uxtb.w r7, r7 \n\t" // s0 + // r8(s6 s5 s4 s7) + "uxtb.w r12, r8, ror #16 \n\t" // s6 + "uxtb.w r11, r8, ror #8 \n\t" // s5 + "uxtb.w r6, r8 \n\t" // s4 + "uxtb.w r8, r8, ror #24 \n\t" // s7 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldr.w r0, [r1,#344] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r7, r7, r3, lsl #8 \n\t" + "eor.w r7, r7, r4, lsl #16 \n\t" + "eor.w r7, r7, r5, lsl #24 \n\t" + "eor.w r8, r8, r6, lsl #8 \n\t" + "eor.w r8, r8, r11, lsl #16 \n\t" + "eor.w r8, r8, r12, lsl #24 \n\t" + "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) + + // 3rd-4th line + // r9(s9 s8 s11 s10) + "uxtb.w r5, r9, ror #8 \n\t" // s9 + "uxtb.w r7, r9 \n\t" // s8 + "uxtb.w r3, r9, ror #24 \n\t" // s11 + "uxtb.w r9, r9, ror #16 \n\t" // s10 + // r10(s12 s15 s14 s13) + "uxtb.w r12, r10 \n\t" // s12 + "uxtb.w r11, r10, ror #24 \n\t" // s15 + "uxtb.w r6, r10, ror #16 \n\t" // s14 + "uxtb.w r10, r10, ror #8 \n\t" // s13 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldr.w r0, [r1,#348] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r9, r9, r3, lsl #8 \n\t" + "eor.w r9, r9, r7, lsl #16 \n\t" + "eor.w r9, r9, r5, lsl #24 \n\t" + "eor.w r10, r10, r6, lsl #8 \n\t" + "eor.w r10, r10, r11, lsl #16 \n\t" + "eor.w r10, r10, r12, lsl #24 \n\t" + "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) + + // AddRoundKey and AddRoundConst(from roundKeys) + + // r9( s9 s8 s11 s10) + // r10(s12 s14 s14 s13) + + // MixColumn + "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 + "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 + "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 + // r4 ----------------> r4 + // round 37 + + // SubCell+ShiftRow+AC(c2) + // r3 (s3 s2 s1 s0) + // r4 (s7 s6 s5 s4) + // r5 (s11 s10 s9 s8) + // r6 (s15 s14 s13 s12) + + // 1st-2nd line + // r3(s3 s2 s1 s0) + "uxtb.w r9, r3, ror #24 \n\t" // s3 + "uxtb.w r8, r3, ror #16 \n\t" // s2 + "uxtb.w r7, r3, ror #8 \n\t" // s1 + "uxtb.w r3, r3 \n\t" // s0 + // r4(s6 s5 s4 s7) + "uxtb.w r12, r4, ror #16 \n\t" // s6 + "uxtb.w r11, r4, ror #8 \n\t" // s5 + "uxtb.w r10, r4 \n\t" // s4 + "uxtb.w r4, r4, ror #24 \n\t" // s7 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "eor.w r3, r3, r7, lsl #8 \n\t" + "eor.w r3, r3, r8, lsl #16 \n\t" + "eor.w r3, r3, r9, lsl #24 \n\t" + "eor.w r4, r4, r10, lsl #8 \n\t" + "eor.w r4, r4, r11, lsl #16 \n\t" + "eor.w r4, r4, r12, lsl #24 \n\t" + + // 3rd-4th line + // r5(s9 s8 s11 s10) + "uxtb.w r9, r5, ror #8 \n\t" // s9 + "uxtb.w r8, r5 \n\t" // s8 + "uxtb.w r7, r5, ror #24 \n\t" // s11 + "uxtb.w r5, r5, ror #16 \n\t" // s10 + // r6(s12 s15 s14 s13) + "uxtb.w r12, r6 \n\t" // s12 + "uxtb.w r11, r6, ror #24 \n\t" // s15 + "uxtb.w r10, r6, ror #16 \n\t" // s14 + "uxtb.w r6, r6, ror #8 \n\t" // s13 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "eor.w r5, r5, r7, lsl #8 \n\t" + "eor.w r5, r5, r8, lsl #16 \n\t" + "eor.w r5, r5, r9, lsl #24 \n\t" + "eor.w r6, r6, r10, lsl #8 \n\t" + "eor.w r6, r6, r11, lsl #16 \n\t" + "eor.w r6, r6, r12, lsl #24 \n\t" + + // AddRoundKey and AddRoundConst(from roundKeys) + "ldr.w r9, [r1,#16] \n\t" // load TK1 + "ldr.w r10, [r1,#20] \n\t" // load TK1 + "ldr.w r11, [r1,#352] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "ldr.w r12, [r1,#356] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + + "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) + "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) + // r8( s9 s8 s11 s10) + // r6(s12 s14 s14 s13) + + // MixColumn + "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 + "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 + "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 + // r8 ----------------> r8 + + // round 38 + + // SubCell+ShiftRow+AC(c2) + // r7 (s3 s2 s1 s0) + // r8 (s7 s6 s5 s4) + // r9 (s11 s10 s9 s8) + // r10(s15 s14 s13 s12) + + // 1st-2nd line + // r7(s3 s2 s1 s0) + "uxtb.w r5, r7, ror #24 \n\t" // s3 + "uxtb.w r4, r7, ror #16 \n\t" // s2 + "uxtb.w r3, r7, ror #8 \n\t" // s1 + "uxtb.w r7, r7 \n\t" // s0 + // r8(s6 s5 s4 s7) + "uxtb.w r12, r8, ror #16 \n\t" // s6 + "uxtb.w r11, r8, ror #8 \n\t" // s5 + "uxtb.w r6, r8 \n\t" // s4 + "uxtb.w r8, r8, ror #24 \n\t" // s7 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldr.w r0, [r1,#360] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r7, r7, r3, lsl #8 \n\t" + "eor.w r7, r7, r4, lsl #16 \n\t" + "eor.w r7, r7, r5, lsl #24 \n\t" + "eor.w r8, r8, r6, lsl #8 \n\t" + "eor.w r8, r8, r11, lsl #16 \n\t" + "eor.w r8, r8, r12, lsl #24 \n\t" + "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) + + // 3rd-4th line + // r9(s9 s8 s11 s10) + "uxtb.w r5, r9, ror #8 \n\t" // s9 + "uxtb.w r7, r9 \n\t" // s8 + "uxtb.w r3, r9, ror #24 \n\t" // s11 + "uxtb.w r9, r9, ror #16 \n\t" // s10 + // r10(s12 s15 s14 s13) + "uxtb.w r12, r10 \n\t" // s12 + "uxtb.w r11, r10, ror #24 \n\t" // s15 + "uxtb.w r6, r10, ror #16 \n\t" // s14 + "uxtb.w r10, r10, ror #8 \n\t" // s13 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldr.w r0, [r1,#364] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r9, r9, r3, lsl #8 \n\t" + "eor.w r9, r9, r7, lsl #16 \n\t" + "eor.w r9, r9, r5, lsl #24 \n\t" + "eor.w r10, r10, r6, lsl #8 \n\t" + "eor.w r10, r10, r11, lsl #16 \n\t" + "eor.w r10, r10, r12, lsl #24 \n\t" + "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) + + // AddRoundKey and AddRoundConst(from roundKeys) + + // r9( s9 s8 s11 s10) + // r10(s12 s14 s14 s13) + + // MixColumn + "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 + "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 + "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 + // r4 ----------------> r4 + // round 39 + + // SubCell+ShiftRow+AC(c2) + // r3 (s3 s2 s1 s0) + // r4 (s7 s6 s5 s4) + // r5 (s11 s10 s9 s8) + // r6 (s15 s14 s13 s12) + + // 1st-2nd line + // r3(s3 s2 s1 s0) + "uxtb.w r9, r3, ror #24 \n\t" // s3 + "uxtb.w r8, r3, ror #16 \n\t" // s2 + "uxtb.w r7, r3, ror #8 \n\t" // s1 + "uxtb.w r3, r3 \n\t" // s0 + // r4(s6 s5 s4 s7) + "uxtb.w r12, r4, ror #16 \n\t" // s6 + "uxtb.w r11, r4, ror #8 \n\t" // s5 + "uxtb.w r10, r4 \n\t" // s4 + "uxtb.w r4, r4, ror #24 \n\t" // s7 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "eor.w r3, r3, r7, lsl #8 \n\t" + "eor.w r3, r3, r8, lsl #16 \n\t" + "eor.w r3, r3, r9, lsl #24 \n\t" + "eor.w r4, r4, r10, lsl #8 \n\t" + "eor.w r4, r4, r11, lsl #16 \n\t" + "eor.w r4, r4, r12, lsl #24 \n\t" + + // 3rd-4th line + // r5(s9 s8 s11 s10) + "uxtb.w r9, r5, ror #8 \n\t" // s9 + "uxtb.w r8, r5 \n\t" // s8 + "uxtb.w r7, r5, ror #24 \n\t" // s11 + "uxtb.w r5, r5, ror #16 \n\t" // s10 + // r6(s12 s15 s14 s13) + "uxtb.w r12, r6 \n\t" // s12 + "uxtb.w r11, r6, ror #24 \n\t" // s15 + "uxtb.w r10, r6, ror #16 \n\t" // s14 + "uxtb.w r6, r6, ror #8 \n\t" // s13 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "eor.w r5, r5, r7, lsl #8 \n\t" + "eor.w r5, r5, r8, lsl #16 \n\t" + "eor.w r5, r5, r9, lsl #24 \n\t" + "eor.w r6, r6, r10, lsl #8 \n\t" + "eor.w r6, r6, r11, lsl #16 \n\t" + "eor.w r6, r6, r12, lsl #24 \n\t" + + // AddRoundKey and AddRoundConst(from roundKeys) + "ldr.w r9, [r1,#24] \n\t" // load TK1 + "ldr.w r10, [r1,#28] \n\t" // load TK1 + "ldr.w r11, [r1,#368] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "ldr.w r12, [r1,#372] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + + "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) + "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) + // r8( s9 s8 s11 s10) + // r6(s12 s14 s14 s13) + + // MixColumn + "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 + "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 + "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 + // r8 ----------------> r8 + + // round 40 + + // SubCell+ShiftRow+AC(c2) + // r7 (s3 s2 s1 s0) + // r8 (s7 s6 s5 s4) + // r9 (s11 s10 s9 s8) + // r10(s15 s14 s13 s12) + + // 1st-2nd line + // r7(s3 s2 s1 s0) + "uxtb.w r5, r7, ror #24 \n\t" // s3 + "uxtb.w r4, r7, ror #16 \n\t" // s2 + "uxtb.w r3, r7, ror #8 \n\t" // s1 + "uxtb.w r7, r7 \n\t" // s0 + // r8(s6 s5 s4 s7) + "uxtb.w r12, r8, ror #16 \n\t" // s6 + "uxtb.w r11, r8, ror #8 \n\t" // s5 + "uxtb.w r6, r8 \n\t" // s4 + "uxtb.w r8, r8, ror #24 \n\t" // s7 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldr.w r0, [r1,#376] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r7, r7, r3, lsl #8 \n\t" + "eor.w r7, r7, r4, lsl #16 \n\t" + "eor.w r7, r7, r5, lsl #24 \n\t" + "eor.w r8, r8, r6, lsl #8 \n\t" + "eor.w r8, r8, r11, lsl #16 \n\t" + "eor.w r8, r8, r12, lsl #24 \n\t" + "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) + + // 3rd-4th line + // r9(s9 s8 s11 s10) + "uxtb.w r5, r9, ror #8 \n\t" // s9 + "uxtb.w r7, r9 \n\t" // s8 + "uxtb.w r3, r9, ror #24 \n\t" // s11 + "uxtb.w r9, r9, ror #16 \n\t" // s10 + // r10(s12 s15 s14 s13) + "uxtb.w r12, r10 \n\t" // s12 + "uxtb.w r11, r10, ror #24 \n\t" // s15 + "uxtb.w r6, r10, ror #16 \n\t" // s14 + "uxtb.w r10, r10, ror #8 \n\t" // s13 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldr.w r0, [r1,#380] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r9, r9, r3, lsl #8 \n\t" + "eor.w r9, r9, r7, lsl #16 \n\t" + "eor.w r9, r9, r5, lsl #24 \n\t" + "eor.w r10, r10, r6, lsl #8 \n\t" + "eor.w r10, r10, r11, lsl #16 \n\t" + "eor.w r10, r10, r12, lsl #24 \n\t" + "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) + + // AddRoundKey and AddRoundConst(from roundKeys) + + // r9( s9 s8 s11 s10) + // r10(s12 s14 s14 s13) + + // MixColumn + "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 + "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 + "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 + // r4 ----------------> r4 + + "ldmia.w sp!, {r0} \n\t" // pop store pointer + // r0 reload + + "str.w r3, [r0,#0] \n\t" // store ciphertext + "str.w r4, [r0,#4] \n\t" // store ciphertext + "str.w r5, [r0,#8] \n\t" // store ciphertext + "str.w r6, [r0,#12] \n\t" // store ciphertext + + "ldmia.w sp!, {r4-r12,r14} \n\t" + : + : [block] "r" (block), [roundKeys] "r" (roundKeys), [pSBOX] "" (pSBOX) + : "cc"); +} + diff --git a/romulus/Implementations/crypto_aead/romulusn1+/opt32/api.h b/romulus/Implementations/crypto_aead/romulusn1+/opt32/api.h new file mode 100644 index 0000000..a4aa567 --- /dev/null +++ b/romulus/Implementations/crypto_aead/romulusn1+/opt32/api.h @@ -0,0 +1,5 @@ +#define CRYPTO_KEYBYTES 16 +#define CRYPTO_NSECBYTES 0 +#define CRYPTO_NPUBBYTES 16 +#define CRYPTO_ABYTES 16 +#define CRYPTO_NOOVERLAP 1 diff --git a/romulus/Implementations/crypto_aead/romulusn1+/opt32/crypto_aead.h b/romulus/Implementations/crypto_aead/romulusn1+/opt32/crypto_aead.h new file mode 100644 index 0000000..e2ca9b0 --- /dev/null +++ b/romulus/Implementations/crypto_aead/romulusn1+/opt32/crypto_aead.h @@ -0,0 +1,18 @@ + +int crypto_aead_encrypt( + unsigned char *c, unsigned long long *clen, + const unsigned char *m, unsigned long long mlen, + const unsigned char *ad, unsigned long long adlen, + const unsigned char *nsec, + const unsigned char *npub, + const unsigned char *k +); + +int crypto_aead_decrypt( + unsigned char *m, unsigned long long *mlen, + unsigned char *nsec, + const unsigned char *c, unsigned long long clen, + const unsigned char *ad, unsigned long long adlen, + const unsigned char *npub, + const unsigned char *k +); \ No newline at end of file diff --git a/romulus/Implementations/crypto_aead/romulusn1+/opt32/encrypt.c b/romulus/Implementations/crypto_aead/romulusn1+/opt32/encrypt.c new file mode 100644 index 0000000..fb144a9 --- /dev/null +++ b/romulus/Implementations/crypto_aead/romulusn1+/opt32/encrypt.c @@ -0,0 +1,270 @@ +#include "skinny128.h" +#include "tk_schedule.h" +#include "romulus.h" +#include +#include + +//Encryption and authentication using Romulus-N1 +int crypto_aead_encrypt + (unsigned char *c, unsigned long long *clen, + const unsigned char *m, unsigned long long mlen, + const unsigned char *ad, unsigned long long adlen, + const unsigned char *nsec, + const unsigned char *npub, + const unsigned char *k) { + + int i; + u32 tmp; + skinny_128_384_tks tks; + u8 state[BLOCKBYTES], pad[BLOCKBYTES]; + (void)nsec; + + // ----------------- Initialization ----------------- + *clen = mlen + TAGBYTES; + memset(tks.tk1, 0x00, KEYBYTES); + memset(state, 0x00, BLOCKBYTES); + tks.tk1[0] = 0x01; //56-bit LFSR counter + // ----------------- Initialization ----------------- + + // ----------------- Process the associated data ----------------- + //Handle the special case of no associated data + if (adlen == 0) { + UPDATE_CTR(tks.tk1); + SET_DOMAIN(tks, 0x1A); + precompute_rtk2_3(tks.rtk2_3, npub, k); + precompute_rtk1(tks.rtk1, tks.tk1); + skinny128_384_plus(state, state, tks.rtk1, tks.rtk2_3); + } else { + // Process all double blocks except the last + SET_DOMAIN(tks, 0x08); + while (adlen > 2*BLOCKBYTES) { + UPDATE_CTR(tks.tk1); + XOR_BLOCK(state, state, ad); + precompute_rtk2_3(tks.rtk2_3, ad + BLOCKBYTES, k); + precompute_rtk1(tks.rtk1, tks.tk1); + skinny128_384_plus(state, state, tks.rtk1, tks.rtk2_3); + UPDATE_CTR(tks.tk1); + ad += 2*BLOCKBYTES; + adlen -= 2*BLOCKBYTES; + } + //Pad and process the left-over blocks + UPDATE_CTR(tks.tk1); + if (adlen == 2*BLOCKBYTES) { + // Left-over complete double block + XOR_BLOCK(state, state, ad); + precompute_rtk2_3(tks.rtk2_3, ad + BLOCKBYTES, k); + precompute_rtk1(tks.rtk1, tks.tk1); + skinny128_384_plus(state, state, tks.rtk1, tks.rtk2_3); + UPDATE_CTR(tks.tk1); + SET_DOMAIN(tks, 0x18); + } else if (adlen > BLOCKBYTES) { + // Left-over partial double block + adlen -= BLOCKBYTES; + XOR_BLOCK(state, state, ad); + memcpy(pad, ad + BLOCKBYTES, adlen); + memset(pad + adlen, 0x00, 15 - adlen); + pad[15] = adlen; + precompute_rtk2_3(tks.rtk2_3, pad, k); + precompute_rtk1(tks.rtk1, tks.tk1); + skinny128_384_plus(state, state, tks.rtk1, tks.rtk2_3); + UPDATE_CTR(tks.tk1); + SET_DOMAIN(tks, 0x1A); + } else if (adlen == BLOCKBYTES) { + // Left-over complete single block + XOR_BLOCK(state, state, ad); + SET_DOMAIN(tks, 0x18); + } else { + // Left-over partial single block + for(i =0; i < (int)adlen; i++) + state[i] ^= ad[i]; + state[15] ^= adlen; + SET_DOMAIN(tks, 0x1A); + } + precompute_rtk2_3(tks.rtk2_3, npub, k); + precompute_rtk1(tks.rtk1, tks.tk1); + skinny128_384_plus(state, state, tks.rtk1, tks.rtk2_3); + } + // ----------------- Process the associated data ----------------- + + // ----------------- Process the plaintext ----------------- + memset(tks.tk1, 0, KEYBYTES); + tks.tk1[0] = 0x01; //init the 56-bit LFSR counter + if (mlen == 0) { + UPDATE_CTR(tks.tk1); + SET_DOMAIN(tks, 0x15); + precompute_rtk1(tks.rtk1, tks.tk1); + skinny128_384_plus(state, state, tks.rtk1, tks.rtk2_3); + } else { + //process all blocks except the last + SET_DOMAIN(tks, 0x04); + while (mlen > BLOCKBYTES) { + RHO(state,c,m); + UPDATE_CTR(tks.tk1); + precompute_rtk1(tks.rtk1, tks.tk1); + skinny128_384_plus(state, state, tks.rtk1, tks.rtk2_3); + c += BLOCKBYTES; + m += BLOCKBYTES; + mlen -= BLOCKBYTES; + } + //pad and process the last block + UPDATE_CTR(tks.tk1); + if (mlen < BLOCKBYTES) { + for(i = 0; i < (int)mlen; i++) { + tmp = m[i]; //use of tmp variable just in case 'c = m' + c[i] = m[i] ^ (state[i] >> 1) ^ (state[i] & 0x80) ^ (state[i] << 7); + state[i] ^= (u8)tmp; + } + state[15] ^= (u8)mlen; //padding + SET_DOMAIN(tks, 0x15); + } else { + RHO(state,c,m); + SET_DOMAIN(tks, 0x14); + } + precompute_rtk1(tks.rtk1, tks.tk1); + skinny128_384_plus(state, state, tks.rtk1, tks.rtk2_3); + c += mlen; + } + // ----------------- Process the plaintext ----------------- + + // ----------------- Generate the tag ----------------- + G(state, state); + memcpy(c, state, TAGBYTES); + // ----------------- Generate the tag ----------------- + + return 0; +} + + +//Decryption and tag verification using Romulus-N1 +int crypto_aead_decrypt + (unsigned char *m, unsigned long long *mlen, + unsigned char *nsec, + const unsigned char *c, unsigned long long clen, + const unsigned char *ad, unsigned long long adlen, + const unsigned char *npub, + const unsigned char *k) { + + int i; + u32 tmp; + skinny_128_384_tks tks; + u8 state[BLOCKBYTES], pad[BLOCKBYTES]; + (void)nsec; + + if (clen < TAGBYTES) + return -1; + + // ----------------- Initialization ----------------- + *mlen = clen - TAGBYTES; + memset(tks.tk1, 0x00, KEYBYTES); + memset(state, 0x00, BLOCKBYTES); + tks.tk1[0] = 0x01; //56-bit LFSR counter + // ----------------- Initialization ----------------- + + // ----------------- Process the associated data ----------------- + //Handle the special case of no associated data + if (adlen == 0) { + UPDATE_CTR(tks.tk1); + SET_DOMAIN(tks, 0x1A); + precompute_rtk2_3(tks.rtk2_3, npub, k); + precompute_rtk1(tks.rtk1, tks.tk1); + skinny128_384_plus(state, state, tks.rtk1, tks.rtk2_3); + } else { + // Process all double blocks except the last + SET_DOMAIN(tks, 0x08); + while (adlen > 2*BLOCKBYTES) { + UPDATE_CTR(tks.tk1); + XOR_BLOCK(state, state, ad); + precompute_rtk2_3(tks.rtk2_3, ad + BLOCKBYTES, k); + precompute_rtk1(tks.rtk1, tks.tk1); + skinny128_384_plus(state, state, tks.rtk1, tks.rtk2_3); + UPDATE_CTR(tks.tk1); + ad += 2*BLOCKBYTES; + adlen -= 2*BLOCKBYTES; + } + //Pad and process the left-over blocks + UPDATE_CTR(tks.tk1); + if (adlen == 2*BLOCKBYTES) { + // Left-over complete double block + XOR_BLOCK(state, state, ad); + precompute_rtk2_3(tks.rtk2_3, ad + BLOCKBYTES, k); + precompute_rtk1(tks.rtk1, tks.tk1); + skinny128_384_plus(state, state, tks.rtk1, tks.rtk2_3); + UPDATE_CTR(tks.tk1); + SET_DOMAIN(tks, 0x18); + } else if (adlen > BLOCKBYTES) { + // Left-over partial double block + adlen -= BLOCKBYTES; + XOR_BLOCK(state, state, ad); + memcpy(pad, ad + BLOCKBYTES, adlen); + memset(pad + adlen, 0x00, 15 - adlen); + pad[15] = adlen; + precompute_rtk2_3(tks.rtk2_3, pad, k); + precompute_rtk1(tks.rtk1, tks.tk1); + skinny128_384_plus(state, state, tks.rtk1, tks.rtk2_3); + UPDATE_CTR(tks.tk1); + SET_DOMAIN(tks, 0x1A); + } else if (adlen == BLOCKBYTES) { + // Left-over complete single block + XOR_BLOCK(state, state, ad); + SET_DOMAIN(tks, 0x18); + } else { + // Left-over partial single block + for(i =0; i < (int)adlen; i++) + state[i] ^= ad[i]; + state[15] ^= adlen; + SET_DOMAIN(tks, 0x1A); + } + precompute_rtk2_3(tks.rtk2_3, npub, k); + precompute_rtk1(tks.rtk1, tks.tk1); + skinny128_384_plus(state, state, tks.rtk1, tks.rtk2_3); + } + // ----------------- Process the associated data ----------------- + + // ----------------- Process the ciphertext ----------------- + clen -= TAGBYTES; + memset(tks.tk1, 0, KEYBYTES); + tks.tk1[0] = 0x01; //init the 56-bit LFSR counter + if (clen == 0) { + UPDATE_CTR(tks.tk1); + SET_DOMAIN(tks, 0x15); + precompute_rtk1(tks.rtk1, tks.tk1); + skinny128_384_plus(state, state, tks.rtk1, tks.rtk2_3); + } else { + //process all blocks except the last + SET_DOMAIN(tks, 0x04); + while (clen > BLOCKBYTES) { + RHO_INV(state,c,m); + UPDATE_CTR(tks.tk1); + precompute_rtk1(tks.rtk1, tks.tk1); + skinny128_384_plus(state, state, tks.rtk1, tks.rtk2_3); + c += BLOCKBYTES; + m += BLOCKBYTES; + clen -= BLOCKBYTES; + } + //pad and process the last block + UPDATE_CTR(tks.tk1); + if (clen < BLOCKBYTES) { + for(i = 0; i < (int)clen; i++) { + m[i] = c[i] ^ (state[i] >> 1) ^ (state[i] & 0x80) ^ (state[i] << 7); + state[i] ^= m[i]; + } + state[15] ^= (u8)clen; //padding + SET_DOMAIN(tks, 0x15); + } else { + RHO_INV(state,c,m); + SET_DOMAIN(tks, 0x14); + } + precompute_rtk1(tks.rtk1, tks.tk1); + skinny128_384_plus(state, state, tks.rtk1, tks.rtk2_3); + } + // ----------------- Process the plaintext ----------------- + + // ----------------- Generate and check the tag ----------------- + G(state,state); + tmp = 0; + for(i = 0; i < TAGBYTES; i++) + tmp |= state[i] ^ c[clen+i]; //constant-time tag comparison + // ----------------- Generate and check the tag ----------------- + + return tmp; +} \ No newline at end of file diff --git a/romulus/Implementations/crypto_aead/romulusn1+/opt32/romulus.h b/romulus/Implementations/crypto_aead/romulusn1+/opt32/romulus.h new file mode 100644 index 0000000..3a70219 --- /dev/null +++ b/romulus/Implementations/crypto_aead/romulusn1+/opt32/romulus.h @@ -0,0 +1,68 @@ +#ifndef ROMULUSN1_H_ +#define ROMULUSN1_H_ + +#include "skinny128.h" + +typedef unsigned char u8; +typedef unsigned int u32; +typedef struct { + u8 tk1[16]; //to manipulate tk1 byte-wise + u32 rtk1[4*16]; //to avoid tk schedule recomputations + u32 rtk2_3[4*SKINNY128_384_ROUNDS]; //all round tweakeys +} skinny_128_384_tks; + +#define TAGBYTES 16 +#define KEYBYTES 16 +#define BLOCKBYTES 16 + +#define SET_DOMAIN(tks, domain) ((tks).tk1[7] = (domain)) + +//G as defined in the Romulus specification in a 32-bit word-wise manner +#define G(x,y) ({ \ + tmp = ((u32*)(y))[0]; \ + ((u32*)(x))[0] = (tmp >> 1 & 0x7f7f7f7f) ^ ((tmp ^ (tmp << 7)) & 0x80808080); \ + tmp = ((u32*)(y))[1]; \ + ((u32*)(x))[1] = (tmp >> 1 & 0x7f7f7f7f) ^ ((tmp ^ (tmp << 7)) & 0x80808080); \ + tmp = ((u32*)(y))[2]; \ + ((u32*)(x))[2] = (tmp >> 1 & 0x7f7f7f7f) ^ ((tmp ^ (tmp << 7)) & 0x80808080); \ + tmp = ((u32*)(y))[3]; \ + ((u32*)(x))[3] = (tmp >> 1 & 0x7f7f7f7f) ^ ((tmp ^ (tmp << 7)) & 0x80808080); \ +}) + +//update the counter in tk1 in a 32-bit word-wise manner +#define UPDATE_CTR(tk1) ({ \ + tmp = ((u32*)(tk1))[1]; \ + ((u32*)(tk1))[1] = (tmp << 1) & 0x00ffffff; \ + ((u32*)(tk1))[1] |= (((u32*)(tk1))[0] >> 31); \ + ((u32*)(tk1))[1] |= tmp & 0xff000000; \ + ((u32*)(tk1))[0] <<= 1; \ + if ((tmp >> 23) & 0x01) \ + ((u32*)(tk1))[0] ^= 0x95; \ +}) + +//x <- y ^ z for 128-bit blocks +#define XOR_BLOCK(x,y,z) ({ \ + ((u32*)(x))[0] = ((u32*)(y))[0] ^ ((u32*)(z))[0]; \ + ((u32*)(x))[1] = ((u32*)(y))[1] ^ ((u32*)(z))[1]; \ + ((u32*)(x))[2] = ((u32*)(y))[2] ^ ((u32*)(z))[2]; \ + ((u32*)(x))[3] = ((u32*)(y))[3] ^ ((u32*)(z))[3]; \ +}) + + +//Rho as defined in the Romulus specification +//use pad as a tmp variable in case y = z +#define RHO(x,y,z) ({ \ + G(pad,x); \ + XOR_BLOCK(y, pad, z); \ + XOR_BLOCK(x, x, z); \ +}) + +//Rho inverse as defined in the Romulus specification +//use pad as a tmp variable in case y = z +#define RHO_INV(x, y, z) ({ \ + G(pad, x); \ + XOR_BLOCK(z, pad, y); \ + XOR_BLOCK(x, x, z); \ +}) + +#endif // ROMULUSN1_H_ \ No newline at end of file diff --git a/romulus/Implementations/crypto_aead/romulusn1+/opt32/skinny128.c b/romulus/Implementations/crypto_aead/romulusn1+/opt32/skinny128.c new file mode 100644 index 0000000..a1061d5 --- /dev/null +++ b/romulus/Implementations/crypto_aead/romulusn1+/opt32/skinny128.c @@ -0,0 +1,107 @@ +/****************************************************************************** +* Constant-time implementation of the SKINNY tweakable block ciphers. +* +* This implementation doesn't compute the ShiftRows operation. Some masks and +* shifts are applied during the MixColumns operation so that the proper bits +* are XORed together. Moreover, the row permutation within the MixColumns +* is omitted, as well as the bit permutation at the end of the Sbox. The rows +* are synchronized with the classical after only 4 rounds. Therefore, this +* implementation relies on a "QUADRUPLE_ROUND" routine. +* +* The Sbox computation takes advantage of some symmetry in the 8-bit Sbox to +* turn it into a 4-bit S-box computation. Although the last bit permutation +* within the Sbox is not computed, the bit ordering is synchronized with the +* classical representation after 2 calls. +* +* @author Alexandre Adomnicai, Nanyang Technological University, +* alexandre.adomnicai@ntu.edu.sg +* +* @date May 2020 +******************************************************************************/ +#include +#include +#include "skinny128.h" +#include "tk_schedule.h" + +/****************************************************************************** +* The MixColumns computation for rounds i such that (i % 4) == 0 +******************************************************************************/ +void mixcolumns_0(u32* state) { + u32 tmp; + for(int i = 0; i < 4; i++) { + tmp = ROR(state[i],24) & 0x0c0c0c0c; + state[i] ^= ROR(tmp,30); + tmp = ROR(state[i],16) & 0xc0c0c0c0; + state[i] ^= ROR(tmp,4); + tmp = ROR(state[i],8) & 0x0c0c0c0c; + state[i] ^= ROR(tmp,2); + } +} + +/****************************************************************************** +* The MixColumns computation for rounds i such that (i % 4) == 1 +******************************************************************************/ +void mixcolumns_1(u32* state) { + u32 tmp; + for(int i = 0; i < 4; i++) { + tmp = ROR(state[i],16) & 0x30303030; + state[i] ^= ROR(tmp,30); + tmp = state[i] & 0x03030303; + state[i] ^= ROR(tmp,28); + tmp = ROR(state[i],16) & 0x30303030; + state[i] ^= ROR(tmp,2); + } +} + +/****************************************************************************** +* The MixColumns computation for rounds i such that (i % 4) == 2 +******************************************************************************/ +void mixcolumns_2(u32* state) { + u32 tmp; + for(int i = 0; i < 4; i++) { + tmp = ROR(state[i],8) & 0xc0c0c0c0; + state[i] ^= ROR(tmp,6); + tmp = ROR(state[i],16) & 0x0c0c0c0c; + state[i] ^= ROR(tmp,28); + tmp = ROR(state[i],24) & 0xc0c0c0c0; + state[i] ^= ROR(tmp,2); + } +} + +/****************************************************************************** +* The MixColumns computation for rounds i such that (i % 4) == 3 +******************************************************************************/ +void mixcolumns_3(u32* state) { + u32 tmp; + for(int i = 0; i < 4; i++) { + tmp = state[i] & 0x03030303; + state[i] ^= ROR(tmp,30); + tmp = state[i] & 0x30303030; + state[i] ^= ROR(tmp,4); + tmp = state[i] & 0x03030303; + state[i] ^= ROR(tmp,26); + } +} + +/****************************************************************************** +* Encryption of a single block without any operation mode using SKINNY-128-384. +* RTK1 and RTK2_3 are given separately to take advantage of the fact that +* TK2 and TK3 remains the same through the entire data encryption/decryption. +******************************************************************************/ +void skinny128_384_plus(u8* ctext, const u8* ptext, const u32* rtk1, + const u32* rtk2_3) { + u32 tmp; // used in SWAPMOVE macro + u32 state[4]; // 128-bit state + packing(state, ptext); // from byte to bitsliced representation + QUADRUPLE_ROUND(state, rtk1, rtk2_3); + QUADRUPLE_ROUND(state, rtk1+16, rtk2_3+16); + QUADRUPLE_ROUND(state, rtk1+32, rtk2_3+32); + QUADRUPLE_ROUND(state, rtk1+48, rtk2_3+48); + QUADRUPLE_ROUND(state, rtk1, rtk2_3+64); + QUADRUPLE_ROUND(state, rtk1+16, rtk2_3+80); + QUADRUPLE_ROUND(state, rtk1+32, rtk2_3+96); + QUADRUPLE_ROUND(state, rtk1+48, rtk2_3+112); + QUADRUPLE_ROUND(state, rtk1, rtk2_3+128); + QUADRUPLE_ROUND(state, rtk1+16, rtk2_3+144); + unpacking(ctext, state); // from bitsliced to byte representation +} \ No newline at end of file diff --git a/romulus/Implementations/crypto_aead/romulusn1+/opt32/skinny128.h b/romulus/Implementations/crypto_aead/romulusn1+/opt32/skinny128.h new file mode 100644 index 0000000..bda1e9b --- /dev/null +++ b/romulus/Implementations/crypto_aead/romulusn1+/opt32/skinny128.h @@ -0,0 +1,95 @@ +#ifndef SKINNY128_H_ +#define SKINNY128_H_ + +typedef unsigned char u8; +typedef unsigned int u32; + +void skinny128_384_plus(u8* ctext, const u8* ptext, const u32* rtk1, const u32* rtk2_3); + +#define SKINNY128_384_ROUNDS 40 + +#define QUADRUPLE_ROUND(state, rtk1, rtk2_3) ({ \ + state[3] ^= ~(state[0] | state[1]); \ + SWAPMOVE(state[2], state[1], 0x55555555, 1); \ + SWAPMOVE(state[3], state[2], 0x55555555, 1); \ + state[1] ^= ~(state[2] | state[3]); \ + SWAPMOVE(state[1], state[0], 0x55555555, 1); \ + SWAPMOVE(state[0], state[3], 0x55555555, 1); \ + state[3] ^= ~(state[0] | state[1]); \ + SWAPMOVE(state[2], state[1], 0x55555555, 1); \ + SWAPMOVE(state[3], state[2], 0x55555555, 1); \ + state[1] ^= (state[2] | state[3]); \ + SWAPMOVE(state[3], state[0], 0x55555555, 0); \ + state[0] ^= (rtk1)[0]; \ + state[1] ^= (rtk1)[1]; \ + state[2] ^= (rtk1)[2]; \ + state[3] ^= (rtk1)[3]; \ + state[0] ^= (rtk2_3)[0]; \ + state[1] ^= (rtk2_3)[1]; \ + state[2] ^= (rtk2_3)[2]; \ + state[3] ^= (rtk2_3)[3]; \ + mixcolumns_0(state); \ + state[1] ^= ~(state[2] | state[3]); \ + SWAPMOVE(state[1], state[0], 0x55555555, 1); \ + SWAPMOVE(state[0], state[3], 0x55555555, 1); \ + state[3] ^= ~(state[0] | state[1]); \ + SWAPMOVE(state[2], state[1], 0x55555555, 1); \ + SWAPMOVE(state[3], state[2], 0x55555555, 1); \ + state[1] ^= ~(state[2] | state[3]); \ + SWAPMOVE(state[1], state[0], 0x55555555, 1); \ + SWAPMOVE(state[0], state[3], 0x55555555, 1); \ + state[3] ^= (state[0] | state[1]); \ + SWAPMOVE(state[1], state[2], 0x55555555, 0); \ + state[0] ^= (rtk1)[4]; \ + state[1] ^= (rtk1)[5]; \ + state[2] ^= (rtk1)[6]; \ + state[3] ^= (rtk1)[7]; \ + state[0] ^= (rtk2_3)[4]; \ + state[1] ^= (rtk2_3)[5]; \ + state[2] ^= (rtk2_3)[6]; \ + state[3] ^= (rtk2_3)[7]; \ + mixcolumns_1(state); \ + state[3] ^= ~(state[0] | state[1]); \ + SWAPMOVE(state[2], state[1], 0x55555555, 1); \ + SWAPMOVE(state[3], state[2], 0x55555555, 1); \ + state[1] ^= ~(state[2] | state[3]); \ + SWAPMOVE(state[1], state[0], 0x55555555, 1); \ + SWAPMOVE(state[0], state[3], 0x55555555, 1); \ + state[3] ^= ~(state[0] | state[1]); \ + SWAPMOVE(state[2], state[1], 0x55555555, 1); \ + SWAPMOVE(state[3], state[2], 0x55555555, 1); \ + state[1] ^= (state[2] | state[3]); \ + SWAPMOVE(state[3], state[0], 0x55555555, 0); \ + state[0] ^= (rtk1)[8]; \ + state[1] ^= (rtk1)[9]; \ + state[2] ^= (rtk1)[10]; \ + state[3] ^= (rtk1)[11]; \ + state[0] ^= (rtk2_3)[8]; \ + state[1] ^= (rtk2_3)[9]; \ + state[2] ^= (rtk2_3)[10]; \ + state[3] ^= (rtk2_3)[11]; \ + mixcolumns_2(state); \ + state[1] ^= ~(state[2] | state[3]); \ + SWAPMOVE(state[1], state[0], 0x55555555, 1); \ + SWAPMOVE(state[0], state[3], 0x55555555, 1); \ + state[3] ^= ~(state[0] | state[1]); \ + SWAPMOVE(state[2], state[1], 0x55555555, 1); \ + SWAPMOVE(state[3], state[2], 0x55555555, 1); \ + state[1] ^= ~(state[2] | state[3]); \ + SWAPMOVE(state[1], state[0], 0x55555555, 1); \ + SWAPMOVE(state[0], state[3], 0x55555555, 1); \ + state[3] ^= (state[0] | state[1]); \ + SWAPMOVE(state[1], state[2], 0x55555555, 0); \ + state[0] ^= (rtk1)[12]; \ + state[1] ^= (rtk1)[13]; \ + state[2] ^= (rtk1)[14]; \ + state[3] ^= (rtk1)[15]; \ + state[0] ^= (rtk2_3)[12]; \ + state[1] ^= (rtk2_3)[13]; \ + state[2] ^= (rtk2_3)[14]; \ + state[3] ^= (rtk2_3)[15]; \ + mixcolumns_3(state); \ +}) + + +#endif // SKINNY128_H_ \ No newline at end of file diff --git a/romulus/Implementations/crypto_aead/romulusn1+/opt32/tk_schedule.c b/romulus/Implementations/crypto_aead/romulusn1+/opt32/tk_schedule.c new file mode 100644 index 0000000..1da4277 --- /dev/null +++ b/romulus/Implementations/crypto_aead/romulusn1+/opt32/tk_schedule.c @@ -0,0 +1,368 @@ +/****************************************************************************** +* Implementation of the SKINNY tweakey schedule to match fixslicing. +* +* @author Alexandre Adomnicai, Nanyang Technological University, +* alexandre.adomnicai@ntu.edu.sg +* +* @date May 2020 +******************************************************************************/ +#include +#include //for memcmp +#include "tk_schedule.h" +#include "skinny128.h" + +typedef unsigned char u8; +typedef unsigned int u32; + +/****************************************************************************** +* The round constants according to the new representation. +******************************************************************************/ +u32 rconst_32_bs[160] = { + 0x00000004, 0xffffffbf, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x10000100, 0xfffffeff, 0x44000000, 0xfbffffff, 0x00000000, 0x04000000, + 0x00100000, 0x00100000, 0x00100001, 0xffefffff, 0x00440000, 0xffafffff, + 0x00400000, 0x00400000, 0x01000000, 0x01000000, 0x01401000, 0xffbfffff, + 0x01004000, 0xfefffbff, 0x00000400, 0x00000400, 0x00000010, 0x00000000, + 0x00010410, 0xfffffbef, 0x00000054, 0xffffffaf, 0x00000000, 0x00000040, + 0x00000100, 0x00000100, 0x10000140, 0xfffffeff, 0x44000000, 0xfffffeff, + 0x04000000, 0x04000000, 0x00100000, 0x00100000, 0x04000001, 0xfbffffff, + 0x00140000, 0xffafffff, 0x00400000, 0x00000000, 0x00000000, 0x00000000, + 0x01401000, 0xfebfffff, 0x01004400, 0xfffffbff, 0x00000000, 0x00000400, + 0x00000010, 0x00000010, 0x00010010, 0xffffffff, 0x00000004, 0xffffffaf, + 0x00000040, 0x00000040, 0x00000100, 0x00000000, 0x10000140, 0xffffffbf, + 0x40000100, 0xfbfffeff, 0x00000000, 0x04000000, 0x00100000, 0x00000000, + 0x04100001, 0xffefffff, 0x00440000, 0xffefffff, 0x00000000, 0x00400000, + 0x01000000, 0x01000000, 0x00401000, 0xffffffff, 0x00004000, 0xfeffffff, + 0x00000400, 0x00000000, 0x00000000, 0x00000000, 0x00010400, 0xfffffbff, + 0x00000014, 0xffffffbf, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x10000100, 0xffffffff, 0x40000000, 0xfbffffff, 0x00000000, 0x04000000, + 0x00100000, 0x00000000, 0x00100001, 0xffefffff, 0x00440000, 0xffafffff, + 0x00000000, 0x00400000, 0x01000000, 0x01000000, 0x01401000, 0xffffffff, + 0x00004000, 0xfeffffff, 0x00000400, 0x00000400, 0x00000010, 0x00000000, + 0x00010400, 0xfffffbff, 0x00000014, 0xffffffaf, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x10000140, 0xfffffeff, 0x44000000, 0xffffffff, + 0x00000000, 0x04000000, 0x00100000, 0x00100000, 0x00000001, 0xffefffff, + 0x00440000, 0xffafffff, 0x00400000, 0x00000000, 0x00000000, 0x01000000, + 0x01401000, 0xffbfffff, 0x01004000, 0xfffffbff, 0x00000400, 0x00000400, + 0x00000010, 0x00000000, 0x00010010, 0xfffffbff +}; + +/****************************************************************************** +* Pack the input into the bitsliced representation +* 24 28 56 60 88 92 120 124 | ... | 0 4 32 36 64 68 96 100 +* 25 29 57 61 89 93 121 125 | ... | 1 5 33 37 65 69 97 101 +* 26 30 58 62 90 94 122 126 | ... | 2 6 34 38 66 70 98 102 +* 27 31 59 63 91 95 123 127 | ... | 3 7 35 39 67 71 99 103 +******************************************************************************/ +void packing(u32* out, const u8* in) { + u32 tmp; + LE_LOAD(out, in); + LE_LOAD(out + 1, in + 8); + LE_LOAD(out + 2, in + 4); + LE_LOAD(out + 3, in + 12); + SWAPMOVE(out[0], out[0], 0x0a0a0a0a, 3); + SWAPMOVE(out[1], out[1], 0x0a0a0a0a, 3); + SWAPMOVE(out[2], out[2], 0x0a0a0a0a, 3); + SWAPMOVE(out[3], out[3], 0x0a0a0a0a, 3); + SWAPMOVE(out[2], out[0], 0x30303030, 2); + SWAPMOVE(out[1], out[0], 0x0c0c0c0c, 4); + SWAPMOVE(out[3], out[0], 0x03030303, 6); + SWAPMOVE(out[1], out[2], 0x0c0c0c0c, 2); + SWAPMOVE(out[3], out[2], 0x03030303, 4); + SWAPMOVE(out[3], out[1], 0x03030303, 2); +} + +/****************************************************************************** +* Unpack the input to a byte-wise representation +******************************************************************************/ +void unpacking(u8* out, u32 *in) { + u32 tmp; + SWAPMOVE(in[3], in[1], 0x03030303, 2); + SWAPMOVE(in[3], in[2], 0x03030303, 4); + SWAPMOVE(in[1], in[2], 0x0c0c0c0c, 2); + SWAPMOVE(in[3], in[0], 0x03030303, 6); + SWAPMOVE(in[1], in[0], 0x0c0c0c0c, 4); + SWAPMOVE(in[2], in[0], 0x30303030, 2); + SWAPMOVE(in[0], in[0], 0x0a0a0a0a, 3); + SWAPMOVE(in[1], in[1], 0x0a0a0a0a, 3); + SWAPMOVE(in[2], in[2], 0x0a0a0a0a, 3); + SWAPMOVE(in[3], in[3], 0x0a0a0a0a, 3); + LE_STORE(out, in[0]); + LE_STORE(out + 8, in[1]); + LE_STORE(out + 4, in[2]); + LE_STORE(out + 12, in[3]); +} + +/****************************************************************************** +* 0 4 1 5 +* 1 5 ---> 2 6 +* 2 6 3 7 +* 3 7 4 0 +******************************************************************************/ +void lfsr2_bs(u32* tk) { + u32 tmp; + tmp = tk[0] ^ (tk[2] & 0xaaaaaaaa); + tmp = ((tmp & 0xaaaaaaaa) >> 1) | ((tmp << 1) & 0xaaaaaaaa); + tk[0] = tk[1]; + tk[1] = tk[2]; + tk[2] = tk[3]; + tk[3] = tmp; +} + +/****************************************************************************** +* 0 4 7 3 +* 1 5 ---> 0 4 +* 2 6 1 5 +* 3 7 2 6 +******************************************************************************/ +void lfsr3_bs(u32* tk) { + u32 tmp; + tmp = tk[3] ^ ((tk[1] & 0xaaaaaaaa) >> 1); + tmp = ((tmp & 0xaaaaaaaa) >> 1) | ((tmp << 1) & 0xaaaaaaaa); + tk[3] = tk[2]; + tk[2] = tk[1]; + tk[1] = tk[0]; + tk[0] = tmp; +} + +/****************************************************************************** +* Apply the permutation in a bitsliced manner, twice +******************************************************************************/ +void permute_tk_2(u32* tk) { + u32 tmp; + for(int i =0; i < 4; i++) { + tmp = tk[i]; + tk[i] = ROR(tmp,14) & 0xcc00cc00; + tk[i] |= (tmp & 0x000000ff) << 16; + tk[i] |= (tmp & 0xcc000000)>> 2; + tk[i] |= (tmp & 0x0033cc00) >> 8; + tk[i] |= (tmp & 0x00cc0000) >>18; + } +} + +/****************************************************************************** +* Apply the permutation in a bitsliced manner, 4 times +******************************************************************************/ +void permute_tk_4(u32* tk) { + u32 tmp; + for(int i =0; i < 4; i++) { + tmp = tk[i]; + tk[i] = ROR(tmp,22) & 0xcc0000cc; + tk[i] |= ROR(tmp,16) & 0x3300cc00; + tk[i] |= ROR(tmp, 24) & 0x00cc3300; + tk[i] |= (tmp & 0x00cc00cc) >> 2; + } +} + +/****************************************************************************** +* Apply the permutation in a bitsliced manner, 6 times +******************************************************************************/ +void permute_tk_6(u32* tk) { + u32 tmp; + for(int i =0; i < 4; i++) { + tmp = tk[i]; + tk[i] = ROR(tmp,6) & 0xcccc0000; + tk[i] |= ROR(tmp,24) & 0x330000cc; + tk[i] |= ROR(tmp,10) & 0x3333; + tk[i] |= (tmp & 0xcc) << 14; + tk[i] |= (tmp & 0x3300) << 2; + } +} + +/****************************************************************************** +* Apply the permutation in a bitsliced manner, 8 times +******************************************************************************/ +void permute_tk_8(u32* tk) { + u32 tmp; + for(int i =0; i < 4; i++) { + tmp = tk[i]; + tk[i] = ROR(tmp,24) & 0xcc000033; + tk[i] |= ROR(tmp,8) & 0x33cc0000; + tk[i] |= ROR(tmp,26) & 0x00333300; + tk[i] |= (tmp & 0x00333300) >> 6; + } +} + +/****************************************************************************** +* Apply the permutation in a bitsliced manner, 10 times +******************************************************************************/ +void permute_tk_10(u32* tk) { + u32 tmp; + for(int i =0; i < 4; i++) { + tmp = tk[i]; + tk[i] = ROR(tmp,8) & 0xcc330000; + tk[i] |= ROR(tmp,26) & 0x33000033; + tk[i] |= ROR(tmp,22) & 0x00cccc00; + tk[i] |= (tmp & 0x00330000) >> 14; + tk[i] |= (tmp & 0xcc00) >> 2; + } +} + +/****************************************************************************** +* Apply the permutation in a bitsliced manner, 12 times +******************************************************************************/ +void permute_tk_12(u32* tk) { + u32 tmp; + for(int i =0; i < 4; i++) { + tmp = tk[i]; + tk[i] = ROR(tmp,8) & 0xcc33; + tk[i] |= ROR(tmp,30) & 0x00cc00cc; + tk[i] |= ROR(tmp,10) & 0x33330000; + tk[i] |= ROR(tmp,16) & 0xcc003300; + } +} + +/****************************************************************************** +* Apply the permutation in a bitsliced manner, 14 times +******************************************************************************/ +void permute_tk_14(u32* tk) { + u32 tmp; + for(int i =0; i < 4; i++) { + tmp = tk[i]; + tk[i] = ROR(tmp,24) & 0x0033cc00; + tk[i] |= ROR(tmp,14) & 0x00cc0000; + tk[i] |= ROR(tmp,30) & 0xcc000000; + tk[i] |= ROR(tmp,16) & 0x000000ff; + tk[i] |= ROR(tmp,18) & 0x33003300; + } +} + +/****************************************************************************** +* Precompute all LFSRs on TK2 +******************************************************************************/ +void precompute_lfsr_tk2(u32* tk, const u8* key, const int rounds) { + u32 tk2[4]; + packing(tk2, key); + memcpy(tk, tk2, 16); + for(int i = 0 ; i < rounds; i+=2) { + lfsr2_bs(tk2); + memcpy(tk+i*4+4, tk2, 16); + } +} + +/****************************************************************************** +* Precompute all LFSRs on TK3 +******************************************************************************/ +void precompute_lfsr_tk3(u32* tk, const u8* key, const int rounds) { + u32 tk3[4]; + packing(tk3, key); + tk[0] ^= tk3[0]; + tk[1] ^= tk3[1]; + tk[2] ^= tk3[2]; + tk[3] ^= tk3[3]; + for(int i = 0 ; i < rounds; i+=2) { + lfsr3_bs(tk3); + tk[i*4+4] ^= tk3[0]; + tk[i*4+5] ^= tk3[1]; + tk[i*4+6] ^= tk3[2]; + tk[i*4+7] ^= tk3[3]; + } +} + +/****************************************************************************** +* XOR TK with TK1 before applying the permutations. +* The key is then rearranged to match the barrel shiftrows representation. +******************************************************************************/ +void permute_tk(u32* tk, const u8* key, const int rounds) { + u32 test; + u32 tk1[4], tmp[4]; + packing(tk1, key); + memcpy(tmp, tk, 16); + tmp[0] ^= tk1[0]; + tmp[1] ^= tk1[1]; + tmp[2] ^= tk1[2]; + tmp[3] ^= tk1[3]; + for(int i = 0 ; i < rounds; i += 8) { + test = (i % 16 < 8) ? 1 : 0; //to apply the right power of P + tk[i*4] = tmp[2] & 0xf0f0f0f0; + tk[i*4+1] = tmp[3] & 0xf0f0f0f0; + tk[i*4+2] = tmp[0] & 0xf0f0f0f0; + tk[i*4+3] = tmp[1] & 0xf0f0f0f0; + memcpy(tmp, tk+i*4+4, 16); + XOR_BLOCKS(tmp, tk1); + if (test) + permute_tk_2(tmp); // applies P^2 + else + permute_tk_10(tmp); // applies P^10 + tk[i*4+4] = ROR(tmp[0],26) & 0xc3c3c3c3; + tk[i*4+5] = ROR(tmp[1],26) & 0xc3c3c3c3; + tk[i*4+6] = ROR(tmp[2],26) & 0xc3c3c3c3; + tk[i*4+7] = ROR(tmp[3],26) & 0xc3c3c3c3; + tk[i*4+8] = ROR(tmp[2],28) & 0x03030303; + tk[i*4+8] |= ROR(tmp[2],12) & 0x0c0c0c0c; + tk[i*4+9] = ROR(tmp[3],28) & 0x03030303; + tk[i*4+9] |= ROR(tmp[3],12) & 0x0c0c0c0c; + tk[i*4+10] = ROR(tmp[0],28) & 0x03030303; + tk[i*4+10] |= ROR(tmp[0],12) & 0x0c0c0c0c; + tk[i*4+11] = ROR(tmp[1],28) & 0x03030303; + tk[i*4+11] |= ROR(tmp[1],12) & 0x0c0c0c0c; + memcpy(tmp, tk+i*4+12, 16); + XOR_BLOCKS(tmp, tk1); + if (test) + permute_tk_4(tmp); // applies P^4 + else + permute_tk_12(tmp); // applies P^12 + for(int j = 0; j < 4; j++) { + tk[i*4+12+j] = ROR(tmp[j],14) & 0x30303030; + tk[i*4+12+j] |= ROR(tmp[j],6) & 0x0c0c0c0c; + } + tk[i*4+16] = ROR(tmp[2], 16) & 0xf0f0f0f0; + tk[i*4+17] = ROR(tmp[3], 16) & 0xf0f0f0f0; + tk[i*4+18] = ROR(tmp[0], 16) & 0xf0f0f0f0; + tk[i*4+19] = ROR(tmp[1], 16) & 0xf0f0f0f0; + memcpy(tmp, tk+i*4+20, 16); + XOR_BLOCKS(tmp, tk1); + if (test) + permute_tk_6(tmp); // applies P^6 + else + permute_tk_14(tmp); // applies P^14 + tk[i*4+20] = ROR(tmp[0], 10) & 0xc3c3c3c3; + tk[i*4+21] = ROR(tmp[1], 10) & 0xc3c3c3c3; + tk[i*4+22] = ROR(tmp[2], 10) & 0xc3c3c3c3; + tk[i*4+23] = ROR(tmp[3], 10) & 0xc3c3c3c3; + tk[i*4+24] = ROR(tmp[2],12) & 0x03030303; + tk[i*4+24] |= ROR(tmp[2],28) & 0x0c0c0c0c; + tk[i*4+25] = ROR(tmp[3],12) & 0x03030303; + tk[i*4+25] |= ROR(tmp[3],28) & 0x0c0c0c0c; + tk[i*4+26] = ROR(tmp[0],12) & 0x03030303; + tk[i*4+26] |= ROR(tmp[0],28) & 0x0c0c0c0c; + tk[i*4+27] = ROR(tmp[1],12) & 0x03030303; + tk[i*4+27] |= ROR(tmp[1],28) & 0x0c0c0c0c; + memcpy(tmp, tk+i*4+28, 16); + XOR_BLOCKS(tmp, tk1); + if (test) + permute_tk_8(tmp); // applies P^8 + for(int j = 0; j < 4; j++) { + tk[i*4+28+j] = ROR(tmp[j],30) & 0x30303030; + tk[i*4+28+j] |= ROR(tmp[j],22) & 0x0c0c0c0c; + } + if (test && (i+8 < rounds)) { //only if next loop iteration + tk[i*4+32] = tmp[2] & 0xf0f0f0f0; + tk[i*4+33] = tmp[3] & 0xf0f0f0f0; + tk[i*4+34] = tmp[0] & 0xf0f0f0f0; + tk[i*4+35] = tmp[1] & 0xf0f0f0f0; + } + } +} + +/****************************************************************************** +* Precompute LFSR2(TK2) ^ LFSR3(TK3) ^ rconst. +******************************************************************************/ +void precompute_rtk2_3(u32* rtk, const u8* tk2, const u8 * tk3) { + memset(rtk, 0x00, 16*SKINNY128_384_ROUNDS); + precompute_lfsr_tk2(rtk, tk2, SKINNY128_384_ROUNDS); + precompute_lfsr_tk3(rtk, tk3, SKINNY128_384_ROUNDS); + permute_tk(rtk, (u8*)(rtk+8), SKINNY128_384_ROUNDS); // rtk+8 is NULL + for(int i = 0; i < SKINNY128_384_ROUNDS; i++) { // add rconsts + for(int j = 0; j < 4; j++) + rtk[i*4+j] ^= rconst_32_bs[i*4+j]; + } +} + +/****************************************************************************** +* Precompute RTK1. +******************************************************************************/ +void precompute_rtk1(u32* rtk1, const u8* tk1) { + memset(rtk1, 0x00, 16*16); + permute_tk(rtk1, tk1, 16); +} \ No newline at end of file diff --git a/romulus/Implementations/crypto_aead/romulusn1+/opt32/tk_schedule.h b/romulus/Implementations/crypto_aead/romulusn1+/opt32/tk_schedule.h new file mode 100644 index 0000000..e1f64f8 --- /dev/null +++ b/romulus/Implementations/crypto_aead/romulusn1+/opt32/tk_schedule.h @@ -0,0 +1,39 @@ +#ifndef TK_SCHEDULE_H_ +#define TK_SCHEDULE_H_ + +typedef unsigned char u8; +typedef unsigned int u32; + +void packing(u32* out, const u8* in); +void unpacking(u8* out, u32 *in); +void precompute_rtk2_3(u32* rtk, const u8* tk2, const u8* tk3); +void precompute_rtk1(u32* rtk1, const u8* tk1); + +#define ROR(x,y) (((x) >> (y)) | ((x) << (32 - (y)))) + +#define XOR_BLOCKS(x,y) ({ \ + (x)[0] ^= (y)[0]; \ + (x)[1] ^= (y)[1]; \ + (x)[2] ^= (y)[2]; \ + (x)[3] ^= (y)[3]; \ +}) + +#define SWAPMOVE(a, b, mask, n) ({ \ + tmp = (b ^ (a >> n)) & mask; \ + b ^= tmp; \ + a ^= (tmp << n); \ +}) + +#define LE_LOAD(x, y) \ + *(x) = (((u32)(y)[3] << 24) | \ + ((u32)(y)[2] << 16) | \ + ((u32)(y)[1] << 8) | \ + (y)[0]); + +#define LE_STORE(x, y) \ + (x)[0] = (y) & 0xff; \ + (x)[1] = ((y) >> 8) & 0xff; \ + (x)[2] = ((y) >> 16) & 0xff; \ + (x)[3] = (y) >> 24; + +#endif // TK_SCHEDULE_H_ \ No newline at end of file diff --git a/romulus/Implementations/crypto_aead/romulusn1+v13/LWC_AEAD_KAT_128_128.txt b/romulus/Implementations/crypto_aead/romulusn1+v13/LWC_AEAD_KAT_128_128.txt deleted file mode 100644 index 3a8b9c7..0000000 --- a/romulus/Implementations/crypto_aead/romulusn1+v13/LWC_AEAD_KAT_128_128.txt +++ /dev/null @@ -1,7623 +0,0 @@ -Count = 1 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = -AD = -CT = 4F42AED219ECC79F4DAF3E3BAD52AEE7 - -Count = 2 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = -AD = 00 -CT = AB8FE298CF6A3261F1F6C89B2B5E3367 - -Count = 3 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = -AD = 0001 -CT = 0AD6EE5DE5280CC51CBCAFBFCE5E99DF - -Count = 4 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = -AD = 000102 -CT = 6CD9F20267266610D4F769EB602BFF17 - -Count = 5 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = -AD = 00010203 -CT = 19733DA1D8C16E0BD5F516A15BAA5908 - -Count = 6 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = -AD = 0001020304 -CT = 3A6D0641C711CF5B941364035663C7E7 - -Count = 7 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = -AD = 000102030405 -CT = B48A50D9E16DA2D0BCC784DB7C126536 - -Count = 8 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = -AD = 00010203040506 -CT = A3D9197875E4F92DA35A48B1E07483B7 - -Count = 9 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = -AD = 0001020304050607 -CT = B96653DC95ED31D43A9E19DA42A71ABA - -Count = 10 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = -AD = 000102030405060708 -CT = ACA17AF4073855420675302764B5DC89 - -Count = 11 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = -AD = 00010203040506070809 -CT = 7D79DF409392AA600A0D11CBFD906E80 - -Count = 12 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = -AD = 000102030405060708090A -CT = 092E181F40BE039D2E3E487E7077E445 - -Count = 13 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = -AD = 000102030405060708090A0B -CT = DC663A1D1901CE72BE4A7F3E4C3EB0BF - -Count = 14 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = -AD = 000102030405060708090A0B0C -CT = B50DD4A972DB1D311AFC204E29515C9B - -Count = 15 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = -AD = 000102030405060708090A0B0C0D -CT = 0F51E7B2AF267F0F22ABCD57F9A0D8C7 - -Count = 16 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = -AD = 000102030405060708090A0B0C0D0E -CT = 39C467A055B702ABA9857E2C9A7DB716 - -Count = 17 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = -AD = 000102030405060708090A0B0C0D0E0F -CT = 413D3F77845E976AC72596E765B26B6A - -Count = 18 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = -AD = 000102030405060708090A0B0C0D0E0F10 -CT = D17F367D07F02A0F93E1DE5385529556 - -Count = 19 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 5E8F2FC2BB627A819950B081BD9046A2 - -Count = 20 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = 099377EB20CE32F6C2741C0271D420BF - -Count = 21 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 67EDE73262D0E89E8563F79B2C81183F - -Count = 22 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = 0A02D202AC556A7C5D63BBCB48BD7C08 - -Count = 23 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = 26767C17A6F2827F555B8D821B087776 - -Count = 24 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 2FC4C0CD30343AD78C94300201C02CCC - -Count = 25 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = 65374F9820E14134A09BDD2736D35374 - -Count = 26 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = DD7653B181923EE9618FEE4167C4329F - -Count = 27 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = CF0F7BBBC999218F8965B0C95734F76A - -Count = 28 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = C4C21C764765BE3CD6AD1D4B8B7C3156 - -Count = 29 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = E364473014F0B6E717B31D068FFEDE07 - -Count = 30 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = DC61BD30632AFA362E341B65243E10F0 - -Count = 31 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 64795075A3EFFD16C578234D83263384 - -Count = 32 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = 7BAF89F08686EE2266C2A648795011A9 - -Count = 33 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 77B3BBEA06D2F03827E928080703A571 - -Count = 34 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00 -AD = -CT = DED8F65782F8D7BB14448E05D7A80579C3 - -Count = 35 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00 -AD = 00 -CT = 99A4A09B46BB14D231B8DB511AEFDBC594 - -Count = 36 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00 -AD = 0001 -CT = 51DC8ECEDEB19DB9FA94D6C99F78AC4068 - -Count = 37 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00 -AD = 000102 -CT = 255456D923B18D1E3584421C272E6B4309 - -Count = 38 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00 -AD = 00010203 -CT = 2BCF40227C025F52E4B1172B1F2849C931 - -Count = 39 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00 -AD = 0001020304 -CT = CA82DBD55E79213355DC8F9FA9F3F4BD75 - -Count = 40 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00 -AD = 000102030405 -CT = 85168B36CD4D1609980897F74C8BDA0217 - -Count = 41 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00 -AD = 00010203040506 -CT = 3714256F75518BE16DEBF9C2FFC6F50E9B - -Count = 42 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00 -AD = 0001020304050607 -CT = 06CB79EB83C7CD1F10FF9D2FA36DF223C3 - -Count = 43 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00 -AD = 000102030405060708 -CT = EE34A26BC739EEBEFC41236A6570099332 - -Count = 44 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00 -AD = 00010203040506070809 -CT = 25928856FCBB01EF7D9464FFF8C011EE41 - -Count = 45 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00 -AD = 000102030405060708090A -CT = B08153BD9658521865618224DF9B00A4F9 - -Count = 46 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00 -AD = 000102030405060708090A0B -CT = 7322A59A9CB8441BC9AE0DFCF046B13D6A - -Count = 47 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00 -AD = 000102030405060708090A0B0C -CT = 411210A9F99F4A2CF09096B26FD20A98A2 - -Count = 48 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00 -AD = 000102030405060708090A0B0C0D -CT = 1A01FEBD3B88C4A0A2B9D1466F18080D48 - -Count = 49 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00 -AD = 000102030405060708090A0B0C0D0E -CT = 399D10DBDEFAB2060B9A8606AA261E30A3 - -Count = 50 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00 -AD = 000102030405060708090A0B0C0D0E0F -CT = 9585BE4E12DE3302AC345C29C3B064A1B6 - -Count = 51 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 306F8744B7099CA9920B6B23B79E37F0ED - -Count = 52 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 86FB19886DA9F925904899E5C5A981FA73 - -Count = 53 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = F62A63F16D2635F7B67F5D524824099C87 - -Count = 54 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 4F4D192B18070E79470941779C2B3CDA3A - -Count = 55 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = 89DA3E4D3117CC7B68BA512853062C8891 - -Count = 56 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = 20C86CD1A407D256E2985EC8E3029D25AF - -Count = 57 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 20EF479CD5969B852112131FE39173FE39 - -Count = 58 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = 4FBB11855F19F28CB0518C833B5D6FA5A0 - -Count = 59 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 602B9FAFF092C914879B197CCD4237A42F - -Count = 60 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = 5ECAB4A6B4297D72310919DDF5CAB3ABB3 - -Count = 61 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 002D6FC7E333F55FA538DB0660F3E223E0 - -Count = 62 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = B299854F06DA4D94374F59CB2685743890 - -Count = 63 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = D91696580EA52E25BB7DEAB904985AC075 - -Count = 64 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 5FB3BEFC67B88F4540BB96993A5F77F578 - -Count = 65 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = 04A69765DD560A4F45BFD450EA459A1F7A - -Count = 66 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 1A13C5650F4FBA3D21C87AAD5A68BC4944 - -Count = 67 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001 -AD = -CT = DE2718ACE56400234A9661A0DCDCC9A2275E - -Count = 68 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001 -AD = 00 -CT = 998DA8848EA10E49CB12604A9297BEBF607C - -Count = 69 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001 -AD = 0001 -CT = 51E3D7A2D1DE4AD1F3A711BF70AA98826B47 - -Count = 70 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001 -AD = 000102 -CT = 255E2A81D0470AEBC8F43AE4FFB75A94E36C - -Count = 71 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001 -AD = 00010203 -CT = 2BB8C3732E76BB72D57288C087DC6B328EDC - -Count = 72 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001 -AD = 0001020304 -CT = CAB0EFA3D5A655759D15021239109914340B - -Count = 73 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001 -AD = 000102030405 -CT = 85FF0071C0D86B7D5B6F2C9F1BA59FF7CF98 - -Count = 74 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001 -AD = 00010203040506 -CT = 3746A524326D49ABED3BBC21B13D8EF2E377 - -Count = 75 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001 -AD = 0001020304050607 -CT = 066DA57BDAFA88D99685FFF41A481178F8A3 - -Count = 76 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001 -AD = 000102030405060708 -CT = EE35AFEA01C42BA26EDB52265FF296862D1A - -Count = 77 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001 -AD = 00010203040506070809 -CT = 252E02A72960148D822490371C9A77AE17CF - -Count = 78 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001 -AD = 000102030405060708090A -CT = B0C1CF61CE22A466AE4A306579614195500A - -Count = 79 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001 -AD = 000102030405060708090A0B -CT = 73F5FC6D7892EB5154DAC16F5C446DD0C1E5 - -Count = 80 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001 -AD = 000102030405060708090A0B0C -CT = 41AA335270650285F15BE31E376F23875011 - -Count = 81 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001 -AD = 000102030405060708090A0B0C0D -CT = 1A927483B0D97CC8F6F3CF3134450E583904 - -Count = 82 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001 -AD = 000102030405060708090A0B0C0D0E -CT = 39D9F75B9BCDA5685647869EE230BF06C9C0 - -Count = 83 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001 -AD = 000102030405060708090A0B0C0D0E0F -CT = 95A96E3455040C3FDC77937A9B14E02728B5 - -Count = 84 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 307855FB6E7162F75414F3A86F76B31AFABA - -Count = 85 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 86B31FA9A4B4429F89082B5D883418C6E443 - -Count = 86 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = F60A4CFA5CE8BBCB28612FF9F61F383775FA - -Count = 87 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 4F48090FBC0D05D52E787D3C55E1C6F45F3C - -Count = 88 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = 89BD80A5EAF691949F8E4D2094471CEDD000 - -Count = 89 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = 2021BE7369C8B9E53A77861A72B1F853B7AF - -Count = 90 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 20F2AF4E332D5877E6DAB5487313EA9D0DDC - -Count = 91 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = 4F7CC8CF78800CA852FC0071F77F08BA14FE - -Count = 92 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 6034528631EC07F09B54330446B542715B20 - -Count = 93 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = 5E4237D366CC45AE12C0677CEBD5063830CD - -Count = 94 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 000500EAA18D1587251DF97C15DCB2164157 - -Count = 95 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = B2B2D47351DBED4FC574BA3C7B73A530AE5A - -Count = 96 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = D96C15C34940E4529FBAF37EA2D446C5FEF6 - -Count = 97 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 5F51C34C14159CB614BA969182F46B14C1E9 - -Count = 98 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = 047BDEC235A030E8D0C7B7F0058BDAC666B4 - -Count = 99 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 1A9B1583E92745CB460F1B552AD3107F7B3C - -Count = 100 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102 -AD = -CT = DE27B34B578AE7EE9F6D724A58357E64084C57 - -Count = 101 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102 -AD = 00 -CT = 998D77F4E8339261CFD518F2433A832C46F4FD - -Count = 102 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102 -AD = 0001 -CT = 51E3F21B221B4DD7AE0FC2EF25541E2707BDD1 - -Count = 103 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102 -AD = 000102 -CT = 255ED80EB7031E4936331A80819C97FBE82570 - -Count = 104 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102 -AD = 00010203 -CT = 2BB84CC9AADDAC611381AAFADA998DCD067DB6 - -Count = 105 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102 -AD = 0001020304 -CT = CAB056EB1FCFD0FD907009155895BD3AF0A3D3 - -Count = 106 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102 -AD = 000102030405 -CT = 85FF408E3E8BFE90BAA972A4A7B299E120A2BF - -Count = 107 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102 -AD = 00010203040506 -CT = 37466E557CE9973710C0511317DEDB74CB6770 - -Count = 108 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102 -AD = 0001020304050607 -CT = 066D38418CF06AE11DB70D0AA9B060EBB819D0 - -Count = 109 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102 -AD = 000102030405060708 -CT = EE35C5817A2C1C30C1EAAFF6F8AB22DA523C3E - -Count = 110 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102 -AD = 00010203040506070809 -CT = 252EA9C1AD2621711B2077B262AD997DA80D08 - -Count = 111 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102 -AD = 000102030405060708090A -CT = B0C1791AD0CDBDFAFAB328867D8049F7C9614B - -Count = 112 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102 -AD = 000102030405060708090A0B -CT = 73F508EABCAFAAEC55D282A0680190A1FAC2C6 - -Count = 113 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102 -AD = 000102030405060708090A0B0C -CT = 41AAA967EC86257C42137E52D4CAC098D83DB5 - -Count = 114 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102 -AD = 000102030405060708090A0B0C0D -CT = 1A92684FF4DF91217387D8776D99B2B8E85640 - -Count = 115 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102 -AD = 000102030405060708090A0B0C0D0E -CT = 39D99070C11618D7E39491ABC21C9FDD7AE431 - -Count = 116 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102 -AD = 000102030405060708090A0B0C0D0E0F -CT = 95A9CC50CDA8D085A3C620C06996A4D4E7B594 - -Count = 117 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 307824298971AFD0B069135E2B6F15FBBF47D6 - -Count = 118 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 86B3B489242C429B0D3C25C0C469FD88601631 - -Count = 119 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = F60ADCDEBEE0E9463B31FC080C4C9E9FC1D249 - -Count = 120 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 4F4837C8515B917BE204D91C47E11C915E6F02 - -Count = 121 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = 89BDEA4D595282B7E492984987C124F64234F5 - -Count = 122 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = 2021C88A65F027427EA8E36E59F3D56097236A - -Count = 123 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 20F20F985145EF788727B9B07850922CE6CB92 - -Count = 124 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = 4F7CC6588C56B879455AD5B61B762C8F7C9987 - -Count = 125 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 6034C8F15F5641F74B88FB116440A2FA7D1330 - -Count = 126 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = 5E427AD9761BD7C026E55924F578672BE20AD9 - -Count = 127 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 0005A3B98DCC1E9917593C26C6844CF5043FBD - -Count = 128 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = B2B2A8D9F8B982EADA416B829A39F40A5BD391 - -Count = 129 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = D96C095A5FBA84AEBAFB6E577A3CC101F4F59B - -Count = 130 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 5F5143AD7D8F561BE8178933DD0094B81002E8 - -Count = 131 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = 047BDB8B114BBFD7802CBC24626F14C1288CF0 - -Count = 132 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 1A9B58C8A42D0A5593C303CDA102865BF90B0F - -Count = 133 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203 -AD = -CT = DE27B3C150EC780A5DA9CABFCB61A149003EAEEC - -Count = 134 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203 -AD = 00 -CT = 998D770169E944BC240A12EEAEAB23467D3A6816 - -Count = 135 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203 -AD = 0001 -CT = 51E3F265AB46992E8FDBFD423520FA2CFB0CAAE3 - -Count = 136 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203 -AD = 000102 -CT = 255ED81399E2709967472BE2DBB074EF92CE7995 - -Count = 137 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203 -AD = 00010203 -CT = 2BB84CB9B5D2B0D7321FA329FC633B1289D6C6A5 - -Count = 138 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203 -AD = 0001020304 -CT = CAB056AA205A4B641B8EDB60351EA8AC668575B8 - -Count = 139 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203 -AD = 000102030405 -CT = 85FF40FC3858860D1CF3662E54D9BDD12B8A0C05 - -Count = 140 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203 -AD = 00010203040506 -CT = 37466ECBE1AC0227375874D3719C070102ABFD1B - -Count = 141 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203 -AD = 0001020304050607 -CT = 066D386B903C627DDAB12854C79006B110C774E8 - -Count = 142 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203 -AD = 000102030405060708 -CT = EE35C5EC38EEB0D661D9292F44763596A058C59F - -Count = 143 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203 -AD = 00010203040506070809 -CT = 252EA99E66968A3B6A5EBD42E2B5084CFCB81DA0 - -Count = 144 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203 -AD = 000102030405060708090A -CT = B0C179ACECD3EAF74BE30679DC43632D0DA6F232 - -Count = 145 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203 -AD = 000102030405060708090A0B -CT = 73F5083ACE00D369A117301A1B545430B22EA93A - -Count = 146 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203 -AD = 000102030405060708090A0B0C -CT = 41AAA973305ABFE091A02053CC1708CEF98A789A - -Count = 147 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203 -AD = 000102030405060708090A0B0C0D -CT = 1A926838548D1B78E650D9D0A28D632814327EEA - -Count = 148 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203 -AD = 000102030405060708090A0B0C0D0E -CT = 39D99068B050C98A346D42011271C6CADE6CFE81 - -Count = 149 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203 -AD = 000102030405060708090A0B0C0D0E0F -CT = 95A9CC01EA19FD75ECD954A077B86EE6A99AC87C - -Count = 150 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 307824FC01557BFE8F63200FF30F896026A2E279 - -Count = 151 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 86B3B4DC1824C01D9282E4880EC2176A932A2790 - -Count = 152 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = F60ADC64AEB5EE736F503EE6D3B5A7D997DE58B1 - -Count = 153 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 4F48371B973FF11995609664FE89186F045A9D8D - -Count = 154 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = 89BDEA4070F09477098ADDC7ABC88B872960FDB3 - -Count = 155 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = 2021C84BD007510FD2868CB750A5FAC0A9C434A8 - -Count = 156 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 20F20FF1E268A18DB397F62A4586C7E304DC49AC - -Count = 157 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = 4F7CC6B93FF7F14E64AC2893910007D4AD532B1C - -Count = 158 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 6034C8391E39A4D4D693D05838198CD041532237 - -Count = 159 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = 5E427A3AEC7446564F4E4DEF5AA9BA0512650669 - -Count = 160 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 0005A3734A21C8C6A8A86D5B85DAEBDC0BC24B7E - -Count = 161 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = B2B2A81DC9FFBF35CC2837801A51F22C7338346F - -Count = 162 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = D96C092708C3531AC5037F91C626409425DE9780 - -Count = 163 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 5F5143FAF5C4F8227D199EBD62B74FFEF79D3280 - -Count = 164 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = 047BDBAE433DA7A8DE03FE962CD0D32685081FEA - -Count = 165 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 1A9B5844B4EEE6B66291059B449BD9C478FE0124 - -Count = 166 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304 -AD = -CT = DE27B3C1B49996E04DCCC8F5EFA7A7B17A5F6AD79E - -Count = 167 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304 -AD = 00 -CT = 998D7701C1B3E03C233776521D172840D73E6A83EC - -Count = 168 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304 -AD = 0001 -CT = 51E3F26591EDE1B4D54E61944C5D246C3946BABC9A - -Count = 169 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304 -AD = 000102 -CT = 255ED813C64DDA5222B2A0B93B1F6F68A51550D573 - -Count = 170 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304 -AD = 00010203 -CT = 2BB84CB90BAA1B92B3F56BE068C76FBB77EB4D61BA - -Count = 171 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304 -AD = 0001020304 -CT = CAB056AA880D228B27520A9387F6DA9F7BCA235E55 - -Count = 172 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304 -AD = 000102030405 -CT = 85FF40FCBF9B9A7ADD2037C37EC7314C72C2BE8288 - -Count = 173 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304 -AD = 00010203040506 -CT = 37466ECBEFF5587CEFB451B781E0CC5097DC3D09E7 - -Count = 174 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304 -AD = 0001020304050607 -CT = 066D386BDC7A38ABE257D9B95EDA853B076897FC9C - -Count = 175 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304 -AD = 000102030405060708 -CT = EE35C5ECBE911F7B6DAEBA6595B4B4EE3CD025E903 - -Count = 176 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304 -AD = 00010203040506070809 -CT = 252EA99EE559F40F99600E2080981149CC6CE0AB23 - -Count = 177 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304 -AD = 000102030405060708090A -CT = B0C179AC6924149D42BE922CA56659FE37DA00843A - -Count = 178 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304 -AD = 000102030405060708090A0B -CT = 73F5083A22E1D759272535670E83E74DC76296DDA4 - -Count = 179 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304 -AD = 000102030405060708090A0B0C -CT = 41AAA9737721D932D84C1E687BA57BCBF0F4FB41E0 - -Count = 180 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304 -AD = 000102030405060708090A0B0C0D -CT = 1A926838E431994B0E1A193E7BEBBAF40FDC03DF46 - -Count = 181 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304 -AD = 000102030405060708090A0B0C0D0E -CT = 39D99068499843685C23A1653445E369B91A3AAE12 - -Count = 182 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304 -AD = 000102030405060708090A0B0C0D0E0F -CT = 95A9CC016D8A44F6799DEE64CB76B0EEC7FBF5ED21 - -Count = 183 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 307824FCBDA1416B618E8EA5E908528A2836B2225D - -Count = 184 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 86B3B4DCA5C0DB4ADD793BD6E384C0A5EE575DED87 - -Count = 185 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = F60ADC6495D13F51CFE1DB1D0D90AD36BEC34B61FD - -Count = 186 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 4F48371B6AD561102EF48E8FA373E1E5D9ABD0C8B2 - -Count = 187 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = 89BDEA40E37BE69581FC8D54A18C55BF542A8AED56 - -Count = 188 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = 2021C84BC865FDFEB73B4C80CB6CF647EC8AD7EA6C - -Count = 189 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 20F20FF167C908744AE21F060BD92A4532AFE2EF82 - -Count = 190 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = 4F7CC6B92F746E0BF9546B782C79450F2E638BC32D - -Count = 191 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 6034C839C7F688688AAA436EEE57592F2E67ED346B - -Count = 192 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = 5E427A3A5956D824E3CAD5516351E979804F3555DD - -Count = 193 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 0005A3730F1B313E843761177B83973B055C40067B - -Count = 194 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = B2B2A81D5F7BED03483EBBF590414E1D14ED95CF87 - -Count = 195 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = D96C09271C9C6E7AB75132252DDB437DF3AF0BA178 - -Count = 196 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 5F5143FA555358CEE7D4951B3381CE6DFD4E8417B0 - -Count = 197 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = 047BDBAEF50391871C839155B57F0B4DD08008D081 - -Count = 198 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 1A9B58442B389361BFD50808FCB3B235561FD7E0B7 - -Count = 199 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405 -AD = -CT = DE27B3C1B43ABD71B0F7C07D84B65D53ADF724FB3296 - -Count = 200 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405 -AD = 00 -CT = 998D7701C14B373043208579E6ADFF66EB28C1106CFA - -Count = 201 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405 -AD = 0001 -CT = 51E3F26591E39541B5597FD63378217299CAE4ADBA68 - -Count = 202 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405 -AD = 000102 -CT = 255ED813C6C9C4732FCD1CD796FFE2EAAEE974383BD7 - -Count = 203 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405 -AD = 00010203 -CT = 2BB84CB90B56163D26FAB3B802F9BDD0F25D054419AE - -Count = 204 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405 -AD = 0001020304 -CT = CAB056AA88F153E95AB6989AFD030AD3450A6F5D31CD - -Count = 205 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405 -AD = 000102030405 -CT = 85FF40FCBFEBFF44B1CE0E58EC312410B5FC5AD6E411 - -Count = 206 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405 -AD = 00010203040506 -CT = 37466ECBEF0C271D27B5949D19049920F1FBBF90FA30 - -Count = 207 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405 -AD = 0001020304050607 -CT = 066D386BDC3B7A85F433D572924B6ECFD42B88EE97D9 - -Count = 208 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405 -AD = 000102030405060708 -CT = EE35C5ECBEB4CE29EFCEAF6FAC0368C9C496ED074499 - -Count = 209 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405 -AD = 00010203040506070809 -CT = 252EA99EE58ED63350A4A580E1625E16B70BA544C3FC - -Count = 210 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405 -AD = 000102030405060708090A -CT = B0C179AC69E83FFCCC0A88847E3DAAF9285ED7490EEB - -Count = 211 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405 -AD = 000102030405060708090A0B -CT = 73F5083A228D91ACC4C4F750A1492DD17036AD57FEC2 - -Count = 212 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405 -AD = 000102030405060708090A0B0C -CT = 41AAA97377B363268BE09920BF0ED8D4AC542FEF8822 - -Count = 213 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405 -AD = 000102030405060708090A0B0C0D -CT = 1A926838E49E5DCBD8550618160E0BE3B8428FD5033F - -Count = 214 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405 -AD = 000102030405060708090A0B0C0D0E -CT = 39D990684973CC10B83508B465332BF5C789487F6D5F - -Count = 215 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405 -AD = 000102030405060708090A0B0C0D0E0F -CT = 95A9CC016DB1C4255B3EB0E57C93FDC7B3DD99CEB855 - -Count = 216 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 307824FCBD3813765E40B0E00165936E8EBFB6769C5E - -Count = 217 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 86B3B4DCA59E42ACC89D49F06962A69EC6BABE36BD5C - -Count = 218 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = F60ADC6495BA22C2E26C8914B2F63E88DF606B64BB4F - -Count = 219 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 4F48371B6AF7C21613F01DA7242C2FD8077F48402712 - -Count = 220 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = 89BDEA40E36AD2212FF15220E10D0C6C52FBF05F7EEF - -Count = 221 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = 2021C84BC884EF4A5D7B325260A75A96812D0216EB82 - -Count = 222 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 20F20FF1674E0C47C078985064AE41C66A0B0EE11B2E - -Count = 223 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = 4F7CC6B92F63E4F3D01CEEBAAFA24304F2D2FB62D673 - -Count = 224 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 6034C839C70E918B1154CC8DEA9B14A4C770E252B441 - -Count = 225 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = 5E427A3A599A0A560EDF3B53734066FE97B12286C3B0 - -Count = 226 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 0005A3730F20B74E34EAF798A1262A6862F0A17F65BC - -Count = 227 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = B2B2A81D5FB5DE16D785B69814B67E3757EA618789C6 - -Count = 228 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = D96C09271C1D21F199EA3960E18BE120A44B85C6E482 - -Count = 229 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 5F5143FA55E22DF5DB2ADF8A2A460958964F4606D0C6 - -Count = 230 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = 047BDBAEF519551C9C85512981B9B0BE5005F051D3F3 - -Count = 231 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 1A9B58442BBDDC1C59D55C72CA3C8D099EDD999B540F - -Count = 232 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506 -AD = -CT = DE27B3C1B43A54D62518F1D00DEC368FB4F900E316568A - -Count = 233 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506 -AD = 00 -CT = 998D7701C14BB42EA6671F633F172905E74AF11CC33DD0 - -Count = 234 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506 -AD = 0001 -CT = 51E3F26591E3BE593CDE2B4D53A478BE4E41F0C9991F76 - -Count = 235 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506 -AD = 000102 -CT = 255ED813C6C9E755D8DFD4DBE2FB1ADDBFE6A35FEDCB35 - -Count = 236 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506 -AD = 00010203 -CT = 2BB84CB90B56B276FA150694A9920CDE8641E0402D5319 - -Count = 237 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506 -AD = 0001020304 -CT = CAB056AA88F11081BFC816EA54991825547B8E4DAFBA22 - -Count = 238 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506 -AD = 000102030405 -CT = 85FF40FCBFEB1699E54025CD9D8795C55AE334C9C775EB - -Count = 239 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506 -AD = 00010203040506 -CT = 37466ECBEF0CF67577D9829043BF00DCC1493608A5BEED - -Count = 240 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506 -AD = 0001020304050607 -CT = 066D386BDC3BFD5B0E86DBDF5C43B5A82060CC82FBF348 - -Count = 241 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506 -AD = 000102030405060708 -CT = EE35C5ECBEB4F7EF61D264B45AB316650310A0AA38582E - -Count = 242 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506 -AD = 00010203040506070809 -CT = 252EA99EE58EE9252C1B54E38E75CBB44658B78B4A6E96 - -Count = 243 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506 -AD = 000102030405060708090A -CT = B0C179AC69E858EA8587E97D8BCB17018F941F18631FCD - -Count = 244 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506 -AD = 000102030405060708090A0B -CT = 73F5083A228D1FA411B18A63640A216FCCE84842E1E389 - -Count = 245 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506 -AD = 000102030405060708090A0B0C -CT = 41AAA97377B3972F781A703972C76771CADAC6AFE81D17 - -Count = 246 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506 -AD = 000102030405060708090A0B0C0D -CT = 1A926838E49E79A1A3A3E7736793944B25907ACB09B638 - -Count = 247 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506 -AD = 000102030405060708090A0B0C0D0E -CT = 39D9906849736ACFEA213C88299219D0F70FAF4561CBD3 - -Count = 248 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506 -AD = 000102030405060708090A0B0C0D0E0F -CT = 95A9CC016DB1D56FCAAA1CC08D2494D27DB53543FD98DF - -Count = 249 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 307824FCBD38D1744CF85B79A21590C6D346AE0E2B25F1 - -Count = 250 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 86B3B4DCA59E27A27FD949222443797A4E6F64145E91AD - -Count = 251 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = F60ADC6495BAB58BFCBE5D5B847B7BD5906B9420665E7E - -Count = 252 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 4F48371B6AF7528668A2E81710B698298AAF65C237B749 - -Count = 253 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = 89BDEA40E36A9DF8D42E4A5C36AF68993424EBB389CE02 - -Count = 254 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = 2021C84BC884DC990D48914989FC10C1813537C51C55BA - -Count = 255 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 20F20FF1674EC0E2E0238E7828853A4390AC67275E2D9B - -Count = 256 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = 4F7CC6B92F63AA085212455CE6B80739F6EA5640C191C4 - -Count = 257 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 6034C839C70E7752A6D5487C1299EA7DFB694DDB17F08F - -Count = 258 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = 5E427A3A599AB55C49E5F13A392B8763F53E62F0F27013 - -Count = 259 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 0005A3730F2091229D1AF939EBA2735783539AE5BA2DEA - -Count = 260 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = B2B2A81D5FB5EAB1B0DEBFE9BDE71DF656B4507E9F428B - -Count = 261 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = D96C09271C1D955D5AC1AA84EDA53F7C9D3AAFB2F53E0F - -Count = 262 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 5F5143FA55E2401B0EFE803DE334D9E31E177F94A46EAB - -Count = 263 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = 047BDBAEF519DC1C94AA2F9A92F2C6F783B9B789F1BCB0 - -Count = 264 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 1A9B58442BBD1895EED27997565814639FF645489EEC03 - -Count = 265 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304050607 -AD = -CT = DE27B3C1B43A54C25541E3558F20E16231D5A5B964932993 - -Count = 266 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304050607 -AD = 00 -CT = 998D7701C14BB41DD88440E79286BB0F881C2D4D15A21A90 - -Count = 267 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304050607 -AD = 0001 -CT = 51E3F26591E3BE66901BFD188CDA8195238369EBDFA389BE - -Count = 268 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304050607 -AD = 000102 -CT = 255ED813C6C9E79EF60A4A2CA102BC2BB40A486A6B7A458D - -Count = 269 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304050607 -AD = 00010203 -CT = 2BB84CB90B56B23C3A24D6BC347EBD84AEA43B68DC3A296A - -Count = 270 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304050607 -AD = 0001020304 -CT = CAB056AA88F110F780CF8C5DEF2B02DEC09518D5537E6C12 - -Count = 271 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304050607 -AD = 000102030405 -CT = 85FF40FCBFEB16F5B6E5F6B395815F3E24036D4D5C19643F - -Count = 272 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304050607 -AD = 00010203040506 -CT = 37466ECBEF0CF6C929B3B6296031CF4D6B4B8DBD5CD168F9 - -Count = 273 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304050607 -AD = 0001020304050607 -CT = 066D386BDC3BFDE562EA36234D704F81F5D4EF4F4F8C94D9 - -Count = 274 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304050607 -AD = 000102030405060708 -CT = EE35C5ECBEB4F721C4E10C2EAD1F52D7BA3A2322D015F781 - -Count = 275 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304050607 -AD = 00010203040506070809 -CT = 252EA99EE58EE9DD41E7F080AC6D325B836A58F6B9E7EC98 - -Count = 276 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304050607 -AD = 000102030405060708090A -CT = B0C179AC69E8583FE372995E7F3A5E88A547D3D867384A2D - -Count = 277 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304050607 -AD = 000102030405060708090A0B -CT = 73F5083A228D1FA49365D30F651E04D242165876A65FC2F9 - -Count = 278 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304050607 -AD = 000102030405060708090A0B0C -CT = 41AAA97377B397586DA942529D44E6A9EC77296DE86B876D - -Count = 279 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304050607 -AD = 000102030405060708090A0B0C0D -CT = 1A926838E49E793326CE2061369ABE62C80775A01183CA0B - -Count = 280 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304050607 -AD = 000102030405060708090A0B0C0D0E -CT = 39D9906849736AFECC3456EF2226A0DB0BE4CBE2C3A35F18 - -Count = 281 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304050607 -AD = 000102030405060708090A0B0C0D0E0F -CT = 95A9CC016DB1D54691177FABFCC82952712B34743DE54B39 - -Count = 282 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304050607 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 307824FCBD38D15214C25638896988603686950EA6F5C529 - -Count = 283 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304050607 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 86B3B4DCA59E2775910E80406B9D2ABAB2B44C01F37C2A45 - -Count = 284 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304050607 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = F60ADC6495BAB5AA3D35E376752FE3D63656D6CDE3FC63FE - -Count = 285 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304050607 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 4F48371B6AF752A80AF9FC4EFF007EA310A32E6EA8B7D74D - -Count = 286 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304050607 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = 89BDEA40E36A9D3957589F78957638B2D322258E36AEBB90 - -Count = 287 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304050607 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = 2021C84BC884DC660BDCDB6FAD3DF1EC629736F26113AE95 - -Count = 288 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304050607 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 20F20FF1674EC0DF13D84925EC641BEF382E2EF866324500 - -Count = 289 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304050607 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = 4F7CC6B92F63AA2A103889764FDCC5FF7D593307FFDEA491 - -Count = 290 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304050607 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 6034C839C70E77FC408B47CBF8562492B47C9A24F84D5747 - -Count = 291 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304050607 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = 5E427A3A599AB5CF0F3C3A97B5BBF74668B5EEBE5BBCFA80 - -Count = 292 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304050607 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 0005A3730F2091FD079D58D1BA432A062AE116CCEF2C6073 - -Count = 293 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304050607 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = B2B2A81D5FB5EA29DC6FC6258762249B6F3035F969368E46 - -Count = 294 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304050607 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = D96C09271C1D9557627CF2979F2A7798EA9DC1515105F207 - -Count = 295 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304050607 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 5F5143FA55E240F9CA2B807EE669036CB7496E6314B45B04 - -Count = 296 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304050607 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = 047BDBAEF519DCC4CB659B9E46C0947928E2BED2566B71AC - -Count = 297 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304050607 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 1A9B58442BBD18F78BA6A4B49199CAF4F5877A07A7F83DFB - -Count = 298 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708 -AD = -CT = DE27B3C1B43A54C25A9EC999EE85073E014C3B51BB33005AA2 - -Count = 299 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708 -AD = 00 -CT = 998D7701C14BB41DBAB49A54B539BC64596BFB22EF2E22AAB1 - -Count = 300 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708 -AD = 0001 -CT = 51E3F26591E3BE66E22CE91A78ACF215C8844F7BBC630798EB - -Count = 301 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708 -AD = 000102 -CT = 255ED813C6C9E79E11CE5BADEF2CFEB4C405417749E0FF96C7 - -Count = 302 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708 -AD = 00010203 -CT = 2BB84CB90B56B23C16B7CF6F3A938BE1324EEE0F48A97CF4E6 - -Count = 303 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708 -AD = 0001020304 -CT = CAB056AA88F110F717C4CF9B5AC5A006E69BCE3ABE9A2F38B4 - -Count = 304 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708 -AD = 000102030405 -CT = 85FF40FCBFEB16F5ACAC99788BF7FCB713DD70BF183DB23949 - -Count = 305 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708 -AD = 00010203040506 -CT = 37466ECBEF0CF6C998DCB79668769B826DF0217FB83DA1D1C9 - -Count = 306 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708 -AD = 0001020304050607 -CT = 066D386BDC3BFDE56BC51ADE8D40C35B7F89F7DCF87A0F1E5E - -Count = 307 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708 -AD = 000102030405060708 -CT = EE35C5ECBEB4F721F449CE793744EE3D2AC66A0534A54A2AA1 - -Count = 308 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708 -AD = 00010203040506070809 -CT = 252EA99EE58EE9DD9F77B1FFCE885787DC74C91A02B93AB68E - -Count = 309 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708 -AD = 000102030405060708090A -CT = B0C179AC69E8583FD6406C55A0454FA8D791D2E54202C72D55 - -Count = 310 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708 -AD = 000102030405060708090A0B -CT = 73F5083A228D1FA4500C9645582EF057671305F1BA8CF7C61C - -Count = 311 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708 -AD = 000102030405060708090A0B0C -CT = 41AAA97377B39758FE208ACEA0DF3905DCC26958071C244BCC - -Count = 312 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708 -AD = 000102030405060708090A0B0C0D -CT = 1A926838E49E79330E75CB0133C7EA8AD437ECB29C19671536 - -Count = 313 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708 -AD = 000102030405060708090A0B0C0D0E -CT = 39D9906849736AFEE9405E0CFF495953DF6976F1E0FBB4BACD - -Count = 314 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708 -AD = 000102030405060708090A0B0C0D0E0F -CT = 95A9CC016DB1D54668F64F27C71C56F7BFBCCF165FAE3556AE - -Count = 315 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 307824FCBD38D152551E4086F7AA212973B17DC874F7C8FE07 - -Count = 316 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 86B3B4DCA59E27754179CD9E4DD1ACA1DAD93194A504E4C717 - -Count = 317 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = F60ADC6495BAB5AA384F5E9D8BB7F0BA6C3682901859E82D46 - -Count = 318 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 4F48371B6AF752A8C6D9C20E188670E544E67C9045590C4A7C - -Count = 319 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = 89BDEA40E36A9D39A5836D90C1631A78B45FA73BB74A1543A7 - -Count = 320 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = 2021C84BC884DC665C3E92098A96B7A4520A45952AA432B343 - -Count = 321 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 20F20FF1674EC0DF8AD19F8A19686AC963D4826E34DD80E2F3 - -Count = 322 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = 4F7CC6B92F63AA2AB82101C9BCD6A9720C628BA326367B733A - -Count = 323 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 6034C839C70E77FC0F98BD1922417F6DF1711732A2D9B0EED2 - -Count = 324 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = 5E427A3A599AB5CF749D2F10933470927B1C9CEAE1CB48C28A - -Count = 325 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 0005A3730F2091FDA37C9551BAFCDE193B1DB374B463436F95 - -Count = 326 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = B2B2A81D5FB5EA292C93C312559D9E3D8F7AF47AED076F0CBA - -Count = 327 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = D96C09271C1D9557D4C53964878103708501DC4363E1856960 - -Count = 328 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 5F5143FA55E240F9574C395B565DEA49FFAA048B83F1D2282D - -Count = 329 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = 047BDBAEF519DCC4E6C960B0A36DA6716E98A55D313B08332B - -Count = 330 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 1A9B58442BBD18F7F57EE355E2E1011A42AB5F2E013A5258C1 - -Count = 331 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506070809 -AD = -CT = DE27B3C1B43A54C25A720B0EEE5B3A487F26AB8B14A616BDB20D - -Count = 332 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506070809 -AD = 00 -CT = 998D7701C14BB41DBA9138AFBF15211BB432FEA348888655A204 - -Count = 333 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506070809 -AD = 0001 -CT = 51E3F26591E3BE66E2C33CBFA1F26164A7D38E8655623805A67F - -Count = 334 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506070809 -AD = 000102 -CT = 255ED813C6C9E79E1107B53FDFA17BBBFBD9055386C634EFFB11 - -Count = 335 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506070809 -AD = 00010203 -CT = 2BB84CB90B56B23C16EAF248B4144648B9B942A11DEFEFFB20C9 - -Count = 336 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506070809 -AD = 0001020304 -CT = CAB056AA88F110F7178FDE9B3FC79A245506EF74FC44A032DF18 - -Count = 337 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506070809 -AD = 000102030405 -CT = 85FF40FCBFEB16F5AC3B7B1DF2C76818BFBBFD5B468374B80B07 - -Count = 338 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506070809 -AD = 00010203040506 -CT = 37466ECBEF0CF6C998796069E82F058123D0EEF0EC0A9DD405A9 - -Count = 339 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506070809 -AD = 0001020304050607 -CT = 066D386BDC3BFDE56B07AACA3A01571CDD44E0E43203A4A0578C - -Count = 340 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506070809 -AD = 000102030405060708 -CT = EE35C5ECBEB4F721F4F3EC1674E7CDB36BC1BDF8478FB9973241 - -Count = 341 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506070809 -AD = 00010203040506070809 -CT = 252EA99EE58EE9DD9FA2325C5D87F86848959AD23F8167BA44A4 - -Count = 342 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506070809 -AD = 000102030405060708090A -CT = B0C179AC69E8583FD66B86DED6EE3452AE7B024355866A84A966 - -Count = 343 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506070809 -AD = 000102030405060708090A0B -CT = 73F5083A228D1FA45045D17A811C82E8D5A0258C63FB64BED07A - -Count = 344 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C -CT = 41AAA97377B39758FE9EB3F19E9F017FED91D05C211CC0D54B58 - -Count = 345 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C0D -CT = 1A926838E49E79330E6AD9A7C3D250899EAB6A55F09638058145 - -Count = 346 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C0D0E -CT = 39D9906849736AFEE9B99F3229B716DDCCCEA0C10649B7730F48 - -Count = 347 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C0D0E0F -CT = 95A9CC016DB1D54668CC506839D4AC0E8115BD38944655164256 - -Count = 348 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 307824FCBD38D152551D566D49661802EEB44D13FCB1E2FC054C - -Count = 349 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 86B3B4DCA59E277541E950266047EFB0901E26823B4B96AB47BA - -Count = 350 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = F60ADC6495BAB5AA38B3C22BC1ED0E05300D21D2E3259E0C82B8 - -Count = 351 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 4F48371B6AF752A8C6316F99A96AFB3EC83BD798F061D7F5F301 - -Count = 352 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = 89BDEA40E36A9D39A59DA0E82EB1459F9D053E9A52CBDC3C624E - -Count = 353 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = 2021C84BC884DC665C32F240BD690C856BCDB311B6B5CE000A2C - -Count = 354 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 20F20FF1674EC0DF8A55BF05A4A4EE578336A9A9E3CEAE582B1B - -Count = 355 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = 4F7CC6B92F63AA2AB89043FC00DA798E8CEAD28F5A8DF928E101 - -Count = 356 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 6034C839C70E77FC0FCED3A0E075EF46452E9AB9465FBCD3BB91 - -Count = 357 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = 5E427A3A599AB5CF74AFB5B47421E543D6929A1BDFEEC6A55BE6 - -Count = 358 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 0005A3730F2091FDA360BB0FADA5313F4DDCA5F016A04CF21BBD - -Count = 359 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = B2B2A81D5FB5EA292C080AEF4636189E435A8042D0809A1D927A - -Count = 360 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = D96C09271C1D9557D43BA33BDA86C651C62C9774A3F61EEAE263 - -Count = 361 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 5F5143FA55E240F9571617AD15C490A9BF3D29229118FB1E48BD - -Count = 362 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = 047BDBAEF519DCC4E65AFE252934F92194219430C35E080FB4FF - -Count = 363 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 1A9B58442BBD18F7F5EAD4A2F699F7607CB385CE9D92B748267B - -Count = 364 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A -AD = -CT = DE27B3C1B43A54C25A724A5B265549690C0CE6C6AEC1007F5B3617 - -Count = 365 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A -AD = 00 -CT = 998D7701C14BB41DBA91A2CF89F93DC9A36F3ED4F49766614CBB2A - -Count = 366 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A -AD = 0001 -CT = 51E3F26591E3BE66E2C31CED40DF4DC0A26D30A15BF18B037CB97E - -Count = 367 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A -AD = 000102 -CT = 255ED813C6C9E79E1107AD4D73C122CE67E272429BB8A6BB1B1BE1 - -Count = 368 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A -AD = 00010203 -CT = 2BB84CB90B56B23C16EA913827E85927B4F50B22DCEFE4AC9A5B03 - -Count = 369 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A -AD = 0001020304 -CT = CAB056AA88F110F7178FA14DF2DFE8631FB77E56F82771E017263D - -Count = 370 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A -AD = 000102030405 -CT = 85FF40FCBFEB16F5AC3B7F0151568928260700D463BDA20951E910 - -Count = 371 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A -AD = 00010203040506 -CT = 37466ECBEF0CF6C998792425E05AE24CE99DE56889EDBE35941374 - -Count = 372 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A -AD = 0001020304050607 -CT = 066D386BDC3BFDE56B07788D2C9B70A75A392C8019AE87F9B110C0 - -Count = 373 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A -AD = 000102030405060708 -CT = EE35C5ECBEB4F721F4F3F137A529550D5317A1D65173C074575C9F - -Count = 374 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A -AD = 00010203040506070809 -CT = 252EA99EE58EE9DD9FA2DFB75C8363AB5EE6CCAF4E73D6D558658A - -Count = 375 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A -AD = 000102030405060708090A -CT = B0C179AC69E8583FD66B5C33B800C6BFA3464D40F40DD201D5F8B8 - -Count = 376 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A -AD = 000102030405060708090A0B -CT = 73F5083A228D1FA450455696CB04754450C6CEDDE3A73CBB2B6D2D - -Count = 377 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C -CT = 41AAA97377B39758FE9E861BB533AD748C7E07AD64FCBB9F12EA44 - -Count = 378 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C0D -CT = 1A926838E49E79330E6AFB00E517E2E7BE6A26DFBB5F832086E715 - -Count = 379 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C0D0E -CT = 39D9906849736AFEE9B9EC2C400EC9DC2745C2434D6D1352ECCEEC - -Count = 380 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C0D0E0F -CT = 95A9CC016DB1D54668CCA079CC84132F9BDB0B18502444726D2E8C - -Count = 381 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 307824FCBD38D152551DC4876DCCFD4BE305A4A21CF880F3B50F64 - -Count = 382 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 86B3B4DCA59E277541E95D0979E6D89FFAE752108FE03681D3A5DF - -Count = 383 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = F60ADC6495BAB5AA38B38F5883C6FDF4B0BC27BEB901C0D685AE60 - -Count = 384 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 4F48371B6AF752A8C6317459134175AE321BD051D187AF63CF2202 - -Count = 385 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = 89BDEA40E36A9D39A59DFE857238C6B7ECD4B6A1351543779C642B - -Count = 386 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = 2021C84BC884DC665C3243D2C88FA3C9592189D88AC8A257A1F978 - -Count = 387 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 20F20FF1674EC0DF8A55CE1C54203D74FEB64D47C963AA84013AC4 - -Count = 388 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = 4F7CC6B92F63AA2AB8907B5DA4CE74183CA58FDB7F6E8529093A58 - -Count = 389 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 6034C839C70E77FC0FCED76EDB09CF1BD9E145FF249DAE32617B25 - -Count = 390 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = 5E427A3A599AB5CF74AFEB38A149816060441FB45B3003EE8EA918 - -Count = 391 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 0005A3730F2091FDA3602E94A52E3F1EDD6D54C2E513C767069351 - -Count = 392 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = B2B2A81D5FB5EA292C08122D87E56DC35F85A741BC78F5824E8768 - -Count = 393 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = D96C09271C1D9557D43B723A1C82D16492BE255CD23F1C1E1DCEB5 - -Count = 394 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 5F5143FA55E240F957165663A793227F007A35D1CAC3C7BE84CD32 - -Count = 395 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = 047BDBAEF519DCC4E65A5D467F54E3708F1F95CB8794DEF58CC0BE - -Count = 396 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 1A9B58442BBD18F7F5EA1BE20A5DD208616A2F7DE3BD9587DFBE9F - -Count = 397 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B -AD = -CT = DE27B3C1B43A54C25A724A5F132D2F74A13CE8DE40A2442775C881EC - -Count = 398 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B -AD = 00 -CT = 998D7701C14BB41DBA91A24023B53FC01A2A8AF6BFF38612E0D2E421 - -Count = 399 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B -AD = 0001 -CT = 51E3F26591E3BE66E2C31CBDAFA62412098632D0A43E1301EF69559D - -Count = 400 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B -AD = 000102 -CT = 255ED813C6C9E79E1107AD13E974C4752DDDAAA4F8282F639D88C2CC - -Count = 401 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B -AD = 00010203 -CT = 2BB84CB90B56B23C16EA91859EB385B2BF27FB7EE062D00B0C3F2F3D - -Count = 402 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B -AD = 0001020304 -CT = CAB056AA88F110F7178FA1C0C894FA25EAAF1C6F257B9F4D448775C9 - -Count = 403 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B -AD = 000102030405 -CT = 85FF40FCBFEB16F5AC3B7FEA5AE39C47574DEAE0ECC63974D52DC650 - -Count = 404 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B -AD = 00010203040506 -CT = 37466ECBEF0CF6C9987924ACD7260472B57B14EB473A149BE5684750 - -Count = 405 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B -AD = 0001020304050607 -CT = 066D386BDC3BFDE56B07782D1BBAEF8CCC66D4A11387554D764136B1 - -Count = 406 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B -AD = 000102030405060708 -CT = EE35C5ECBEB4F721F4F3F18FC13BF9CCC7CEA6B3800902EFF72D4457 - -Count = 407 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B -AD = 00010203040506070809 -CT = 252EA99EE58EE9DD9FA2DF9E15AA09BDCC0267E9CDCDFFB2D31A0A34 - -Count = 408 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B -AD = 000102030405060708090A -CT = B0C179AC69E8583FD66B5C0090148E0BB4FB8089A196FF2449127105 - -Count = 409 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B -CT = 73F5083A228D1FA45045563C160578593315740965FB0908B3125AB7 - -Count = 410 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C -CT = 41AAA97377B39758FE9E860691931F816C04031EE48C5CBF9245640F - -Count = 411 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C0D -CT = 1A926838E49E79330E6AFB76866B97BAE5ECB4D0D1DE94686C802170 - -Count = 412 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C0D0E -CT = 39D9906849736AFEE9B9EC58477BABA416FAA9F1E58B1EAA617A3666 - -Count = 413 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C0D0E0F -CT = 95A9CC016DB1D54668CCA0DCD4CC641FEE6CADA7C81EBD19953178F1 - -Count = 414 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 307824FCBD38D152551DC44EA874AC55FC80531604664C46C8A12351 - -Count = 415 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 86B3B4DCA59E277541E95D63E7477615DB609B5917C9185AB7EF73D4 - -Count = 416 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = F60ADC6495BAB5AA38B38FB323D969E16AFD916A07255AFCD9FE693F - -Count = 417 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 4F48371B6AF752A8C631742E4B1A8385C3A6DD4E4A09FA6D93F1AA13 - -Count = 418 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = 89BDEA40E36A9D39A59DFE66D70A432A1112BB12392981660C0DB0A9 - -Count = 419 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = 2021C84BC884DC665C3243C825C65D5A61B4288337038B2072A6D528 - -Count = 420 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 20F20FF1674EC0DF8A55CE236BD52D3A49A08C2B67E72A66CB545F08 - -Count = 421 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = 4F7CC6B92F63AA2AB8907B5264BEAEA6AB5C05FD49D24BCBFB30DF97 - -Count = 422 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 6034C839C70E77FC0FCED7C73F425C34BC72031B4733665D0BA7A087 - -Count = 423 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = 5E427A3A599AB5CF74AFEBB4CDC6D610506C82D6556F721C026BC99F - -Count = 424 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 0005A3730F2091FDA3602E153309E7C8D7FC9A10329410C17AD70250 - -Count = 425 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = B2B2A81D5FB5EA292C0812FCAD712D0A45E9CBA23F37FD1C34DC5B7A - -Count = 426 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = D96C09271C1D9557D43B72993C5248128B6A814D371BF626C3279C70 - -Count = 427 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 5F5143FA55E240F9571656B9032C911BD6FCDA74D177D0009C0A296D - -Count = 428 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = 047BDBAEF519DCC4E65A5DCD5F0CDDBF693FD9691E990FCA1C82F7E2 - -Count = 429 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 1A9B58442BBD18F7F5EA1B1DC2061869B4315879279688CF86CD3E96 - -Count = 430 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C -AD = -CT = DE27B3C1B43A54C25A724A5F572C13E81827C0AC0433B21F446D5F725B - -Count = 431 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C -AD = 00 -CT = 998D7701C14BB41DBA91A240DAED264D9141D3E492917106F5C3406AC1 - -Count = 432 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C -AD = 0001 -CT = 51E3F26591E3BE66E2C31CBDD59F77BECF1154A5D5EE6C89B2E3E964E5 - -Count = 433 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C -AD = 000102 -CT = 255ED813C6C9E79E1107AD13AC7965036592AA2D795865012A6EAEFEEA - -Count = 434 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C -AD = 00010203 -CT = 2BB84CB90B56B23C16EA9185A8A6B7F9E955AEEBF27FC15B03B9728009 - -Count = 435 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C -AD = 0001020304 -CT = CAB056AA88F110F7178FA1C075466E0C41679EB03A3524E8F86A6E04EF - -Count = 436 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C -AD = 000102030405 -CT = 85FF40FCBFEB16F5AC3B7FEAAA42004D53BC575AFB07F5650FF37EA3F5 - -Count = 437 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C -AD = 00010203040506 -CT = 37466ECBEF0CF6C9987924AC513F054655C039F5C581E6EB250986115D - -Count = 438 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C -AD = 0001020304050607 -CT = 066D386BDC3BFDE56B07782DF949CC6A9A9EF22720307461790F83BB6E - -Count = 439 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C -AD = 000102030405060708 -CT = EE35C5ECBEB4F721F4F3F18F72C748787C7979DE29141D374A8041E987 - -Count = 440 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C -AD = 00010203040506070809 -CT = 252EA99EE58EE9DD9FA2DF9E89B5F86CDB16327F182C33E9864A325FDC - -Count = 441 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A -CT = B0C179AC69E8583FD66B5C0036F27CA7A6DA61C1AE4826E4454E6719D6 - -Count = 442 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B -CT = 73F5083A228D1FA45045563C2097BDE4CCA8C3948DDBFFFED5E895C129 - -Count = 443 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C -CT = 41AAA97377B39758FE9E8606E674753186E13E517FD3145E1225CEA34E - -Count = 444 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C0D -CT = 1A926838E49E79330E6AFB76A7EB755D646528F81029CB9DD468108086 - -Count = 445 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C0D0E -CT = 39D9906849736AFEE9B9EC5851A65A0081CE9AE669E95E53114890A995 - -Count = 446 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C0D0E0F -CT = 95A9CC016DB1D54668CCA0DC7BB31CF3B7F35AD0F1291EF5CB19BE60A4 - -Count = 447 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 307824FCBD38D152551DC44E167B41EB091C45C196A8F3A0F6FCB26423 - -Count = 448 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 86B3B4DCA59E277541E95D63AFC5D036DA6C8DE3C8B26ABE9B7AFAB144 - -Count = 449 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = F60ADC6495BAB5AA38B38FB383C6FF654DC8A8E0FD77CB383F62088215 - -Count = 450 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 4F48371B6AF752A8C631742E725FBA12951B4FC7DD9CC5D05774524B22 - -Count = 451 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = 89BDEA40E36A9D39A59DFE66971525E5BBD4295B9F5F65162C926092FE - -Count = 452 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = 2021C84BC884DC665C3243C82229D4C6970E3BCCBF4C6B0A873885384E - -Count = 453 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 20F20FF1674EC0DF8A55CE2340E9E34DF8587AF6E8590247DAEF1A7E32 - -Count = 454 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = 4F7CC6B92F63AA2AB8907B52C01446904668BCBDBAD3DE8DEFF47E5ACE - -Count = 455 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 6034C839C70E77FC0FCED7C7D7474FCB2FE4B63F85C7E1271CD4FC2AB5 - -Count = 456 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = 5E427A3A599AB5CF74AFEBB4E5B246DF1685D5C9E3D4F8FCC36FE1AEA7 - -Count = 457 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 0005A3730F2091FDA3602E158EB670F41BC7814CA6B0D271E0473DD8FE - -Count = 458 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = B2B2A81D5FB5EA292C0812FCD91A67C5CFF3B26B831F121AF43FC52C4B - -Count = 459 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = D96C09271C1D9557D43B72998ECA36CAD8EFEDA95CA516457579BFFBE1 - -Count = 460 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 5F5143FA55E240F9571656B98240483FF4CE4B301455D1B2316D39A49C - -Count = 461 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = 047BDBAEF519DCC4E65A5DCD7ED59BCAD4267E5A558F8C72D6CD2C175D - -Count = 462 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 1A9B58442BBD18F7F5EA1B1D2467D6FE75012B1D82EE546A786E96B7F0 - -Count = 463 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D -AD = -CT = DE27B3C1B43A54C25A724A5F57FCD516143D44F4D95E60AF41CBB7D67EA7 - -Count = 464 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D -AD = 00 -CT = 998D7701C14BB41DBA91A240DA8297DEE8EAAEDCCC5D6949C9319A646D5E - -Count = 465 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D -AD = 0001 -CT = 51E3F26591E3BE66E2C31CBDD5BF59A3E748124D2E536220D1B6D375BA5E - -Count = 466 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D -AD = 000102 -CT = 255ED813C6C9E79E1107AD13AC8986CB303A99E68589E376CBBEE5BFF8BF - -Count = 467 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D -AD = 00010203 -CT = 2BB84CB90B56B23C16EA9185A8C3AC5D40C155F4943BE3C716BCB8410B84 - -Count = 468 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D -AD = 0001020304 -CT = CAB056AA88F110F7178FA1C07581F7E2D9CD48746B78A7215527907DCAD8 - -Count = 469 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D -AD = 000102030405 -CT = 85FF40FCBFEB16F5AC3B7FEAAAB7ADF1E728DD1EF957CE8D13B2DEB252B7 - -Count = 470 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D -AD = 00010203040506 -CT = 37466ECBEF0CF6C9987924AC51E000148AB483E1C93994B6663FF0BEA792 - -Count = 471 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D -AD = 0001020304050607 -CT = 066D386BDC3BFDE56B07782DF9F74DB4A854DFAB87C6367A46905233D72B - -Count = 472 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708 -CT = EE35C5ECBEB4F721F4F3F18F7254B8D0583627BB65A603492A2A64388E9D - -Count = 473 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D -AD = 00010203040506070809 -CT = 252EA99EE58EE9DD9FA2DF9E896C945FE27CD7768D1E2E19CC0B431EC85E - -Count = 474 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A -CT = B0C179AC69E8583FD66B5C00368DA5C8E7A4F39E63717EF9E33F2413B667 - -Count = 475 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B -CT = 73F5083A228D1FA45045563C200808F7E6ADB713B5C18BFE5EA5F8C7E2C6 - -Count = 476 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C -CT = 41AAA97377B39758FE9E8606E644627204F782E92CF589C5BC825CA86A94 - -Count = 477 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C0D -CT = 1A926838E49E79330E6AFB76A7B16DD06234A7AE36BAF09EC43AE81CD9C9 - -Count = 478 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C0D0E -CT = 39D9906849736AFEE9B9EC5851CBD529820E3B05C76967534DC6AB938CE4 - -Count = 479 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C0D0E0F -CT = 95A9CC016DB1D54668CCA0DC7BC6CA110EA817DF8C099E92F80055691891 - -Count = 480 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 307824FCBD38D152551DC44E16D5F3ED127A7B9FF98D62452FF287A7F709 - -Count = 481 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 86B3B4DCA59E277541E95D63AF66F2D97C20D1571B18578E84A91DFF266E - -Count = 482 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = F60ADC6495BAB5AA38B38FB383B7219FD6DEE5447393592FB0272879D69A - -Count = 483 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 4F48371B6AF752A8C631742E72BC295672AE5B1FC59403B0E9C725C7CEB1 - -Count = 484 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = 89BDEA40E36A9D39A59DFE6697D5C3F5F137D8F41FB11CF0B9A8E3ED7A24 - -Count = 485 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = 2021C84BC884DC665C3243C82295889A48E50D443032AB4F99F4DCE28ECC - -Count = 486 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 20F20FF1674EC0DF8A55CE234064C143DDE4D715952DDD458EB9FBA6757D - -Count = 487 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = 4F7CC6B92F63AA2AB8907B52C099D4F8690F3E5D056498C0D31604E045BE - -Count = 488 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 6034C839C70E77FC0FCED7C7D75BE9B2E350B31C2E0BFE7ED244CCB0F519 - -Count = 489 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = 5E427A3A599AB5CF74AFEBB4E555BC18457121237B00CA97D3F718CB2442 - -Count = 490 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 0005A3730F2091FDA3602E158EBED61D7BEB45C95C7571C510850D5C57BF - -Count = 491 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = B2B2A81D5FB5EA292C0812FCD919EB2D8B4830B36245C0DDCE43B8832979 - -Count = 492 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = D96C09271C1D9557D43B72998E41F60319EE1B7E90A009AA7C00D1DEDCC2 - -Count = 493 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 5F5143FA55E240F9571656B98236B03F0D9A77AD4F04B396D289EB5E8832 - -Count = 494 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = 047BDBAEF519DCC4E65A5DCD7E0C36F7275BF57BBE1E317CA5F5AE9C28CE - -Count = 495 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 1A9B58442BBD18F7F5EA1B1D243B3D979AFA55B4733E04B71A6A6285E7AC - -Count = 496 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E -AD = -CT = DE27B3C1B43A54C25A724A5F57FC59CFB04993ED986092A992EDFDAC29D238 - -Count = 497 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E -AD = 00 -CT = 998D7701C14BB41DBA91A240DA8260486C0DAB5420A3CAB0C2F30B1C53DA89 - -Count = 498 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E -AD = 0001 -CT = 51E3F26591E3BE66E2C31CBDD5BF8C268AA461A6DE2A660E9B1B6C977541C4 - -Count = 499 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E -AD = 000102 -CT = 255ED813C6C9E79E1107AD13AC89CB864346939F2B630C16D0850C1805D96B - -Count = 500 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E -AD = 00010203 -CT = 2BB84CB90B56B23C16EA9185A8C3292FC42021CA4361D3FB327BEF8BCB53AD - -Count = 501 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E -AD = 0001020304 -CT = CAB056AA88F110F7178FA1C075813764F4EC308AC0222AC0E1812CCDFA129C - -Count = 502 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405 -CT = 85FF40FCBFEB16F5AC3B7FEAAAB7C0344F02D2C6F23E58B6A71A40A34EC703 - -Count = 503 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E -AD = 00010203040506 -CT = 37466ECBEF0CF6C9987924AC51E05EA7538AD9CC731FE32F23DFB77573DA9F - -Count = 504 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E -AD = 0001020304050607 -CT = 066D386BDC3BFDE56B07782DF9F784C931377253EB809B105B89EF46388772 - -Count = 505 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708 -CT = EE35C5ECBEB4F721F4F3F18F72547664AC6F1DFB4AFD4543C9A5FD87519D78 - -Count = 506 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E -AD = 00010203040506070809 -CT = 252EA99EE58EE9DD9FA2DF9E896C8544A961788B4C6D3C4E3556BE833EDDA7 - -Count = 507 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A -CT = B0C179AC69E8583FD66B5C00368D4DA64860E063245F00FBD957883064977F - -Count = 508 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B -CT = 73F5083A228D1FA45045563C2008A441654086DD7BCD2D2529D9FA81B244B0 - -Count = 509 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C -CT = 41AAA97377B39758FE9E8606E64416AC94A12483933A272B5BA9A459C8F665 - -Count = 510 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C0D -CT = 1A926838E49E79330E6AFB76A7B1490013C80D4BCECB14EE7CDFF7997D4743 - -Count = 511 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C0D0E -CT = 39D9906849736AFEE9B9EC5851CBBF6E91E727DE1983AF8BA39820CD3A7759 - -Count = 512 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C0D0E0F -CT = 95A9CC016DB1D54668CCA0DC7BC64447F969D97146542EBA8D75A6C749CD02 - -Count = 513 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 307824FCBD38D152551DC44E16D56BAFEF778DC0A970739B28F88B81A123B5 - -Count = 514 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 86B3B4DCA59E277541E95D63AF66CF18B7D6409FCA8ACA004E187E0E5A6C55 - -Count = 515 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = F60ADC6495BAB5AA38B38FB383B7EE1ADB2FF6FED921ED1A41912503124C66 - -Count = 516 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 4F48371B6AF752A8C631742E72BC51660C8D5CD22EF5450F74C0E583B7CABD - -Count = 517 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = 89BDEA40E36A9D39A59DFE6697D508CF1D72865D896221B971C974B58F7AFB - -Count = 518 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = 2021C84BC884DC665C3243C82295227DAEFDC15670DEA4D863133FC25DFA0A - -Count = 519 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 20F20FF1674EC0DF8A55CE234064C6E8FCDDEC7D2F04B4E1EB1A974F05A345 - -Count = 520 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = 4F7CC6B92F63AA2AB8907B52C0998DB01683103C69DA6D7FC2CF02DB049124 - -Count = 521 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 6034C839C70E77FC0FCED7C7D75B237845754934B43C3C7E4550112C6D349F - -Count = 522 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = 5E427A3A599AB5CF74AFEBB4E555C6BBFA3068B2565380C310BEBE4621B066 - -Count = 523 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 0005A3730F2091FDA3602E158EBEE936F61500006F7111B2B0C374E7E51013 - -Count = 524 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = B2B2A81D5FB5EA292C0812FCD919237FD15BB858B3DCC192582F539DB8E835 - -Count = 525 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = D96C09271C1D9557D43B72998E41E2E2B0181AC634AFF351B629DA3F363857 - -Count = 526 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 5F5143FA55E240F9571656B9823639446197213786E05BCC787DE679A380D9 - -Count = 527 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = 047BDBAEF519DCC4E65A5DCD7E0C16937DEB03E39640F04C37543ABB86692D - -Count = 528 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 1A9B58442BBD18F7F5EA1B1D243BE2EC65EDAF30A9E34255A7F63A08A85557 - -Count = 529 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F -AD = -CT = DE27B3C1B43A54C25A724A5F57FC59B50AD6CC30AF7D617FA57C4D48A6E820CE - -Count = 530 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F -AD = 00 -CT = 998D7701C14BB41DBA91A240DA82606BC97BA43A842706EA35ED04EE12BD6038 - -Count = 531 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F -AD = 0001 -CT = 51E3F26591E3BE66E2C31CBDD5BF8CD5CEACA5CDC087D7121D6DB2362CBDD532 - -Count = 532 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102 -CT = 255ED813C6C9E79E1107AD13AC89CB046745C48E632A2E6D0A36F5109380738B - -Count = 533 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F -AD = 00010203 -CT = 2BB84CB90B56B23C16EA9185A8C3295723FECF5E556465E5E61C5527058EDAF5 - -Count = 534 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F -AD = 0001020304 -CT = CAB056AA88F110F7178FA1C0758137048D46DAF3D48AA4DA03D36238626B411E - -Count = 535 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405 -CT = 85FF40FCBFEB16F5AC3B7FEAAAB7C01ADF52045955F4C73E84DB2FCAF3767666 - -Count = 536 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F -AD = 00010203040506 -CT = 37466ECBEF0CF6C9987924AC51E05E0DE97EDC55A1F89690F5A30EDE77439212 - -Count = 537 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F -AD = 0001020304050607 -CT = 066D386BDC3BFDE56B07782DF9F784B3749282EDD2EE8198317FFBB41F8B4207 - -Count = 538 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708 -CT = EE35C5ECBEB4F721F4F3F18F7254768B4D6700A94F98C120F6DFDB063EBFC9E0 - -Count = 539 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F -AD = 00010203040506070809 -CT = 252EA99EE58EE9DD9FA2DF9E896C85F52671B3C0FD9AAE5F60B53B7D8B71A068 - -Count = 540 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A -CT = B0C179AC69E8583FD66B5C00368D4DBD8CF56F709E6E94E411369E9870139333 - -Count = 541 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B -CT = 73F5083A228D1FA45045563C2008A4E18AD9F8FBFDEAD8BB97FD1847F2427A22 - -Count = 542 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C -CT = 41AAA97377B39758FE9E8606E64416BEF1ED479FEA50F67CD90C446C5CD9A108 - -Count = 543 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C0D -CT = 1A926838E49E79330E6AFB76A7B1490999A6E9372649A78E70D4ADF5DA8FDD4C - -Count = 544 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C0D0E -CT = 39D9906849736AFEE9B9EC5851CBBFBF48040F0FCF26689DCF0182716BA11CC6 - -Count = 545 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C0D0E0F -CT = 95A9CC016DB1D54668CCA0DC7BC64485547AC7F5AB368E040FEFE52F74CB2FF5 - -Count = 546 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 307824FCBD38D152551DC44E16D56BC829914A6A405866D0F0110C48C38542F4 - -Count = 547 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 86B3B4DCA59E277541E95D63AF66CFA26E772932C04D9E1187672EE166D9E2D1 - -Count = 548 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = F60ADC6495BAB5AA38B38FB383B7EECDA542AC4871F3B201DFC85B8EA6EDD58E - -Count = 549 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 4F48371B6AF752A8C631742E72BC51EB5A6301B630D6609665BA52F168BB5157 - -Count = 550 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = 89BDEA40E36A9D39A59DFE6697D50897B6DAD629168745E03DFB09945969C8C0 - -Count = 551 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = 2021C84BC884DC665C3243C822952297D60C2E17F858F4FBDCC7F08EA2A0608A - -Count = 552 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 20F20FF1674EC0DF8A55CE234064C610BD6E2811093E4D16AEE7F9796109D7ED - -Count = 553 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = 4F7CC6B92F63AA2AB8907B52C0998D4C579EA1655C212EF2AD34E3BAA092935E - -Count = 554 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 6034C839C70E77FC0FCED7C7D75B238FB176B2543D1AF0AC63C6533424780A8A - -Count = 555 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = 5E427A3A599AB5CF74AFEBB4E555C69E3644DB3C4020CA7564FD0C0CDCB76829 - -Count = 556 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 0005A3730F2091FDA3602E158EBEE9328E07845FD9B81B808876937BEAA347E5 - -Count = 557 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = B2B2A81D5FB5EA292C0812FCD919233924D173BA77D2BD14347C03F03F358B59 - -Count = 558 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = D96C09271C1D9557D43B72998E41E2D9B57351F00118A6B9024626528D755CCA - -Count = 559 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 5F5143FA55E240F9571656B9823639F4BDDB0B81CEA48FACB24925B3550C38EE - -Count = 560 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = 047BDBAEF519DCC4E65A5DCD7E0C1687058784BD51F0B6E4A38967EC9CA550AC - -Count = 561 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 1A9B58442BBD18F7F5EA1B1D243BE22797201581EF2E787A3CD47BC751A4C7BF - -Count = 562 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10 -AD = -CT = DE27B3C1B43A54C25A724A5F57FC59B5913644C7291FE90382EA41A7DA15FADB55 - -Count = 563 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 00 -CT = 998D7701C14BB41DBA91A240DA82606BABBC71EFD1F260C303A6EDD891AB1C7B7B - -Count = 564 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 0001 -CT = 51E3F26591E3BE66E2C31CBDD5BF8CD58B1523E670219CE4BC86667F2AB5A96BBE - -Count = 565 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102 -CT = 255ED813C6C9E79E1107AD13AC89CB0464F50C585D2090295CB34540EF6F763AEE - -Count = 566 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 00010203 -CT = 2BB84CB90B56B23C16EA9185A8C3295775718CE92212194ED5EB63549F26379C86 - -Count = 567 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 0001020304 -CT = CAB056AA88F110F7178FA1C075813704BEC07F8232A8902EAD7CB4544D674F862B - -Count = 568 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405 -CT = 85FF40FCBFEB16F5AC3B7FEAAAB7C01ADA71A2CE8799D11FBBD4AF46C263541844 - -Count = 569 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 00010203040506 -CT = 37466ECBEF0CF6C9987924AC51E05E0DC76FFE63E0AA5FE23F8CD1604DC7953F8B - -Count = 570 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 0001020304050607 -CT = 066D386BDC3BFDE56B07782DF9F784B30BF524CDB7289784E9D2ED459E705FE885 - -Count = 571 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708 -CT = EE35C5ECBEB4F721F4F3F18F7254768B89F451125A41C30B6E0869E4E51AC44EE5 - -Count = 572 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 00010203040506070809 -CT = 252EA99EE58EE9DD9FA2DF9E896C85F5E3BC85313090A01A2E15DE2C612490EBB6 - -Count = 573 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A -CT = B0C179AC69E8583FD66B5C00368D4DBD93841304CB5A14C9812AAE1C43565F562E - -Count = 574 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B -CT = 73F5083A228D1FA45045563C2008A4E1B582B33CF37D345AE67E8B0E12794C494B - -Count = 575 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C -CT = 41AAA97377B39758FE9E8606E64416BE91732C477A72F8137A2F0F1FACB5F07C22 - -Count = 576 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C0D -CT = 1A926838E49E79330E6AFB76A7B149093C828AB041378F497F23A88CA4BC6CDA3B - -Count = 577 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C0D0E -CT = 39D9906849736AFEE9B9EC5851CBBFBF13E7E506E32C75E681208F6AD307C0874D - -Count = 578 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C0D0E0F -CT = 95A9CC016DB1D54668CCA0DC7BC644852CC1D92B2EA26C2A96177A75B4C52C77B5 - -Count = 579 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 307824FCBD38D152551DC44E16D56BC8A67A18202436A61D938636D29A9BFC445B - -Count = 580 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 86B3B4DCA59E277541E95D63AF66CFA2B1B49A11189BD0542FE3C7BCF3506E3A5A - -Count = 581 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = F60ADC6495BAB5AA38B38FB383B7EECD8EAA8286A8661AAFA9B80ABA599072A6E1 - -Count = 582 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 4F48371B6AF752A8C631742E72BC51EB8455FFD9C08C031C0614E43AFB17C00B7C - -Count = 583 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = 89BDEA40E36A9D39A59DFE6697D508975C79C94EECC960BCA95F588CE69E8EF45B - -Count = 584 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = 2021C84BC884DC665C3243C822952297A23845018771036E35A1AACC242D8264F3 - -Count = 585 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 20F20FF1674EC0DF8A55CE234064C610D12D05A8E280031A1E5A74C3589892523D - -Count = 586 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = 4F7CC6B92F63AA2AB8907B52C0998D4CD094C23B14BE9BC768CEAA792433807F83 - -Count = 587 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 6034C839C70E77FC0FCED7C7D75B238F4345CC4D6A5CAE28573AAFEC012BA4C39B - -Count = 588 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = 5E427A3A599AB5CF74AFEBB4E555C69E60B78930C63A44F145CA3E37FE1D556A59 - -Count = 589 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 0005A3730F2091FDA3602E158EBEE9324142A3D843F0ABB1FFE9C769922A76D141 - -Count = 590 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = B2B2A81D5FB5EA292C0812FCD91923393416E1FE7E358A239863D6536EE3B42217 - -Count = 591 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = D96C09271C1D9557D43B72998E41E2D9DFDF8B876AA39FFD1B69B3B5B5CAEE5539 - -Count = 592 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 5F5143FA55E240F9571656B9823639F43761F5054E01510A1C26C9C6B8A0F0A5B0 - -Count = 593 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = 047BDBAEF519DCC4E65A5DCD7E0C16873A36249638E05E3602DED1653A15827293 - -Count = 594 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 1A9B58442BBD18F7F5EA1B1D243BE2277D729B26C87EBC50EB37BC1DFE597113F7 - -Count = 595 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = -CT = DE27B3C1B43A54C25A724A5F57FC59B591856C25E18918BDE7769CD17A5939330459 - -Count = 596 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 00 -CT = 998D7701C14BB41DBA91A240DA82606BABF11E72C8E383FAD442D6F0DBDB5002B324 - -Count = 597 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 0001 -CT = 51E3F26591E3BE66E2C31CBDD5BF8CD58B6B6806A20A0E3C88FAAE3429D5CEFF9B21 - -Count = 598 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102 -CT = 255ED813C6C9E79E1107AD13AC89CB0464C6EDA4204ABB66A702DCD3553BEE434C9B - -Count = 599 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 00010203 -CT = 2BB84CB90B56B23C16EA9185A8C3295775EA1C927AE68B7F5DBEFC1B1D56CD15FE4F - -Count = 600 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 0001020304 -CT = CAB056AA88F110F7178FA1C075813704BEB2FD8AA1B4A3E79BE6EED9320BA7F2F3DA - -Count = 601 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405 -CT = 85FF40FCBFEB16F5AC3B7FEAAAB7C01ADA72A0ACFF5F94D1BD10C286BC86C9C941BC - -Count = 602 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 00010203040506 -CT = 37466ECBEF0CF6C9987924AC51E05E0DC7265150F7577802CCF4E64F29FD41C8A88E - -Count = 603 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 0001020304050607 -CT = 066D386BDC3BFDE56B07782DF9F784B30B607C19B5FDF87DAF3E73B7B7D3B23D693F - -Count = 604 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708 -CT = EE35C5ECBEB4F721F4F3F18F7254768B89BDCFA48E42866C883ED5A51B0B62B4257C - -Count = 605 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 00010203040506070809 -CT = 252EA99EE58EE9DD9FA2DF9E896C85F5E30FFA14BB26FC231AFD7D99C6034E9D6483 - -Count = 606 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A -CT = B0C179AC69E8583FD66B5C00368D4DBD9315186B984778F5623580E94E5B0CAC0C86 - -Count = 607 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B -CT = 73F5083A228D1FA45045563C2008A4E1B5F9264827915CB9FA12D219D2FAD86D3DF7 - -Count = 608 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C -CT = 41AAA97377B39758FE9E8606E64416BE91892FE0C794ACE9EA745F9B4B06F55BF1AA - -Count = 609 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C0D -CT = 1A926838E49E79330E6AFB76A7B149093C72894F550AA43A56D221AFB8D63FF6A145 - -Count = 610 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C0D0E -CT = 39D9906849736AFEE9B9EC5851CBBFBF1305E98F6E209A470D070CF75DE3E2067411 - -Count = 611 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C0D0E0F -CT = 95A9CC016DB1D54668CCA0DC7BC644852CB70AF4487701575A671ACAC61CA34A7778 - -Count = 612 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 307824FCBD38D152551DC44E16D56BC8A62079959EC90DB68D33C9B5C63C0FB09ED2 - -Count = 613 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 86B3B4DCA59E277541E95D63AF66CFA2B1C7C472C65284F6DBD0E428CC173F6A075F - -Count = 614 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = F60ADC6495BAB5AA38B38FB383B7EECD8E5D29D6EE5B5AFE4A402DB2CD2C6882F60A - -Count = 615 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 4F48371B6AF752A8C631742E72BC51EB841954DDE46FF1765EEE974836AE3299C37E - -Count = 616 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = 89BDEA40E36A9D39A59DFE6697D508975CEA59DBAD72E387666DE4FDFF3B2A3D4583 - -Count = 617 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = 2021C84BC884DC665C3243C822952297A20689E0DAAC1BDAF69CFF07A10A376AA30F - -Count = 618 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 20F20FF1674EC0DF8A55CE234064C610D177364CC17647D32F09AB80021AA2346184 - -Count = 619 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = 4F7CC6B92F63AA2AB8907B52C0998D4CD04717B230EA4CD664F8169E970B615EB598 - -Count = 620 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 6034C839C70E77FC0FCED7C7D75B238F4334684E646D68023737EC20D9652981B98C - -Count = 621 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = 5E427A3A599AB5CF74AFEBB4E555C69E60F54D5459D621550E9D549E0BA8C6315C80 - -Count = 622 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 0005A3730F2091FDA3602E158EBEE9324122B1D31056D9D60BB4D83F0D742E35F9BF - -Count = 623 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = B2B2A81D5FB5EA292C0812FCD919233934AB6CB9C976B36E1DA1797C051E6B46F965 - -Count = 624 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = D96C09271C1D9557D43B72998E41E2D9DF5ACC9934741BB5CB21A4B37192B3DA5A0E - -Count = 625 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 5F5143FA55E240F9571656B9823639F437C8C4F7EA1BA1ECC3ED46A67A52BDA466DF - -Count = 626 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = 047BDBAEF519DCC4E65A5DCD7E0C16873A30D7A534C9137B2156F4AE75E020FE55E2 - -Count = 627 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 1A9B58442BBD18F7F5EA1B1D243BE2277D080DC8FFDFDEE6780B7161C2CDEEAC2F79 - -Count = 628 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = -CT = DE27B3C1B43A54C25A724A5F57FC59B59185E2E69AB41F97D9F823171716E4CBDC812B - -Count = 629 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 00 -CT = 998D7701C14BB41DBA91A240DA82606BABF1785F5792519EFA56E587ED3DCAFA72B8F7 - -Count = 630 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 0001 -CT = 51E3F26591E3BE66E2C31CBDD5BF8CD58B6B86D43366FF024750E12F20F0877E0F88A9 - -Count = 631 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102 -CT = 255ED813C6C9E79E1107AD13AC89CB0464C6F500329DE6A1DFAD15D9A819C6A56B8CCB - -Count = 632 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 00010203 -CT = 2BB84CB90B56B23C16EA9185A8C3295775EA076BC8ABDDA1120C7BDECB1AA21879F970 - -Count = 633 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 0001020304 -CT = CAB056AA88F110F7178FA1C075813704BEB21AC2DD2A19334A598BFC6A87E9BBED9B8E - -Count = 634 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405 -CT = 85FF40FCBFEB16F5AC3B7FEAAAB7C01ADA7256CCABFD3E28F3B6830E14C47E56981E3C - -Count = 635 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 00010203040506 -CT = 37466ECBEF0CF6C9987924AC51E05E0DC726436019CDF31F28E95EDA3C7E5002713C52 - -Count = 636 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 0001020304050607 -CT = 066D386BDC3BFDE56B07782DF9F784B30B6077711CB0E0889AF0C78B5F79C65BD5E331 - -Count = 637 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708 -CT = EE35C5ECBEB4F721F4F3F18F7254768B89BDE7625AAC4477FA42DE2C8E55718D1747AC - -Count = 638 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 00010203040506070809 -CT = 252EA99EE58EE9DD9FA2DF9E896C85F5E30F9849D04895F6F3B95755F57CA40266ED81 - -Count = 639 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A -CT = B0C179AC69E8583FD66B5C00368D4DBD93157CBAEAD52F5D062B9F2F72C4AAB992242A - -Count = 640 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B -CT = 73F5083A228D1FA45045563C2008A4E1B5F91CF1DD8AFF8B5EDF3C833BC2A13B0EC57A - -Count = 641 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C -CT = 41AAA97377B39758FE9E8606E64416BE91895E8EA9293757102858D714F18E90FBB33E - -Count = 642 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C0D -CT = 1A926838E49E79330E6AFB76A7B149093C726A2EA950A7055F1ECE73FD6F49F7EA8CAA - -Count = 643 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C0D0E -CT = 39D9906849736AFEE9B9EC5851CBBFBF13056821E302D4E1B7E560AF7D5AA8D7B16022 - -Count = 644 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C0D0E0F -CT = 95A9CC016DB1D54668CCA0DC7BC644852CB7A8A3D5CFA93DB549FC5E57569895F16C43 - -Count = 645 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 307824FCBD38D152551DC44E16D56BC8A62071BE98A430416E158031FB2C94C0293DFD - -Count = 646 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 86B3B4DCA59E277541E95D63AF66CFA2B1C7A55E204C34372BA4E1ECDB4179397D3DF5 - -Count = 647 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = F60ADC6495BAB5AA38B38FB383B7EECD8E5D877313981C9A3D2F7EE3199C0DFA6D1083 - -Count = 648 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 4F48371B6AF752A8C631742E72BC51EB8419B7459A030FDEBBE95FC7D8E3491E8235CB - -Count = 649 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = 89BDEA40E36A9D39A59DFE6697D508975CEA588CA01ADA2E3D283255D8FBE4EA3A8F74 - -Count = 650 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = 2021C84BC884DC665C3243C822952297A2066F848E6C352A763AA059D7604B530DB172 - -Count = 651 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 20F20FF1674EC0DF8A55CE234064C610D1775E905F37CAC2C32DBBA627E4CA5D3379B3 - -Count = 652 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = 4F7CC6B92F63AA2AB8907B52C0998D4CD047B8BC33EBC6EA068AE4AFF6D999E6774371 - -Count = 653 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 6034C839C70E77FC0FCED7C7D75B238F4334B9FC4DA5C3D713B22B591CD838C38CB223 - -Count = 654 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = 5E427A3A599AB5CF74AFEBB4E555C69E60F505A4139F15D6BF201A1763A30AF781D5E3 - -Count = 655 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 0005A3730F2091FDA3602E158EBEE93241228319DB34D82BDF12723FE1CCEDE8F6B3F7 - -Count = 656 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = B2B2A81D5FB5EA292C0812FCD919233934AB157038200CD38E129BB2411449063136BA - -Count = 657 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = D96C09271C1D9557D43B72998E41E2D9DF5A44EE4DE7FD505CD75D4148A2A01EC6475A - -Count = 658 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 5F5143FA55E240F9571656B9823639F437C8597F88919FDB0398ACD57FE9A2F9884CCE - -Count = 659 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = 047BDBAEF519DCC4E65A5DCD7E0C16873A304597164B76083C10FD4A9BDF931C4D01AD - -Count = 660 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 1A9B58442BBD18F7F5EA1B1D243BE2277D08ABDBA8B3C03491B52274B24B244B824310 - -Count = 661 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = -CT = DE27B3C1B43A54C25A724A5F57FC59B59185E2EF06D8F0F70403903EE2A0FACC1B20EB03 - -Count = 662 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 00 -CT = 998D7701C14BB41DBA91A240DA82606BABF178C951715945DE2013BC7350B287F7F9C19B - -Count = 663 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 0001 -CT = 51E3F26591E3BE66E2C31CBDD5BF8CD58B6B86C02E89FF9853EA44979A0AABF43E7E788C - -Count = 664 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102 -CT = 255ED813C6C9E79E1107AD13AC89CB0464C6F55561DD9608CBAAB17DB7D2D5E63CE80038 - -Count = 665 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 00010203 -CT = 2BB84CB90B56B23C16EA9185A8C3295775EA072BC8156D4872FC3716E959E0DD75EBB2D0 - -Count = 666 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 0001020304 -CT = CAB056AA88F110F7178FA1C075813704BEB21AFB76BEFBC8A10B5784306C021F5B7E147F - -Count = 667 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405 -CT = 85FF40FCBFEB16F5AC3B7FEAAAB7C01ADA72560756200CF4F120C625CB2F267F3CDE83CC - -Count = 668 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 00010203040506 -CT = 37466ECBEF0CF6C9987924AC51E05E0DC726432BD27451060C933EBD63D81F96DD50A46C - -Count = 669 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 0001020304050607 -CT = 066D386BDC3BFDE56B07782DF9F784B30B60770CD3E51E7D972650F44E226599CA1B1301 - -Count = 670 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708 -CT = EE35C5ECBEB4F721F4F3F18F7254768B89BDE7478FB2EAF96CEA6B962D7AC4737902010A - -Count = 671 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 00010203040506070809 -CT = 252EA99EE58EE9DD9FA2DF9E896C85F5E30F98D4F513936DA3C8F7A7FFD0A080B9DAAB90 - -Count = 672 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A -CT = B0C179AC69E8583FD66B5C00368D4DBD93157CF5A4AB04071C49BB020B6D57D52868C843 - -Count = 673 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B -CT = 73F5083A228D1FA45045563C2008A4E1B5F91C58DA0144D18770D47E8F443D39C18AC211 - -Count = 674 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C -CT = 41AAA97377B39758FE9E8606E64416BE91895E95ED27A585881DC76984350C60243B0823 - -Count = 675 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C0D -CT = 1A926838E49E79330E6AFB76A7B149093C726A99F14F9B5463DA9AE4367CD987095BB73C - -Count = 676 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C0D0E -CT = 39D9906849736AFEE9B9EC5851CBBFBF1305686BC33C0E339D3D74F6F31037998CBE57F7 - -Count = 677 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C0D0E0F -CT = 95A9CC016DB1D54668CCA0DC7BC644852CB7A83E8F1656763B740E89B6B6559EB5A194A1 - -Count = 678 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 307824FCBD38D152551DC44E16D56BC8A620717F3EFF5996454348FA3CDE439FF7769B73 - -Count = 679 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 86B3B4DCA59E277541E95D63AF66CFA2B1C7A5467F536C0D1EC628013FDF7037E562ACEA - -Count = 680 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = F60ADC6495BAB5AA38B38FB383B7EECD8E5D87BF9B2A70681D617D3400F89688D3202C4B - -Count = 681 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 4F48371B6AF752A8C631742E72BC51EB8419B7B878F663C9D171118EE535C43D025017B3 - -Count = 682 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = 89BDEA40E36A9D39A59DFE6697D508975CEA5882C2E09E364689608132EF8642A2100CF4 - -Count = 683 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = 2021C84BC884DC665C3243C822952297A2066F8CAD96C2E6210815908682855BD9D3D160 - -Count = 684 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 20F20FF1674EC0DF8A55CE234064C610D1775EEAD8DF1AA8FE6D297723F9EA321E293F7C - -Count = 685 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = 4F7CC6B92F63AA2AB8907B52C0998D4CD047B8AE527D1733E42E51383804E310179B80B5 - -Count = 686 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 6034C839C70E77FC0FCED7C7D75B238F4334B9258903339E8326428D9B29A76DEB4563FB - -Count = 687 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = 5E427A3A599AB5CF74AFEBB4E555C69E60F50542CC94BAB44001D94B498E031139A85F25 - -Count = 688 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 0005A3730F2091FDA3602E158EBEE9324122837421BDFA7A10AC22629F7D8718AF76424F - -Count = 689 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = B2B2A81D5FB5EA292C0812FCD919233934AB155CE5B1F8A50A2BBE718372D9DC87B8F457 - -Count = 690 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = D96C09271C1D9557D43B72998E41E2D9DF5A44FA68D0E36A8AB3C4786D3E44A8185C3BCE - -Count = 691 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 5F5143FA55E240F9571656B9823639F437C859B1522C2375D5E1DCC8E9586604A25F48E6 - -Count = 692 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = 047BDBAEF519DCC4E65A5DCD7E0C16873A30456E2454CA1A9026F15BB7838B067B99F2C9 - -Count = 693 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 1A9B58442BBD18F7F5EA1B1D243BE2277D08ABAB666B77A61B3D5C93B73673BCACF93498 - -Count = 694 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = -CT = DE27B3C1B43A54C25A724A5F57FC59B59185E2EF4BB6543EF3A53A6E8C32739E20459AECC0 - -Count = 695 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 00 -CT = 998D7701C14BB41DBA91A240DA82606BABF178C9DD2EF6B903FA6C0A2B9DB7356073738495 - -Count = 696 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 0001 -CT = 51E3F26591E3BE66E2C31CBDD5BF8CD58B6B86C0EB97943AD21C627989995867824831C215 - -Count = 697 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102 -CT = 255ED813C6C9E79E1107AD13AC89CB0464C6F555276AA03223559F532B5D78D7EF05D3EA49 - -Count = 698 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 00010203 -CT = 2BB84CB90B56B23C16EA9185A8C3295775EA072BAF385D971DE283075839964320814A0007 - -Count = 699 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 0001020304 -CT = CAB056AA88F110F7178FA1C075813704BEB21AFBAD1A26D684CA5839C9951311F8B94A9D8F - -Count = 700 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405 -CT = 85FF40FCBFEB16F5AC3B7FEAAAB7C01ADA725607C490B420827341763CC8BDB52DD8C7AF15 - -Count = 701 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 00010203040506 -CT = 37466ECBEF0CF6C9987924AC51E05E0DC726432BBEE9372C2EE5CCB9AD966E80E16D4F0F3D - -Count = 702 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 0001020304050607 -CT = 066D386BDC3BFDE56B07782DF9F784B30B60770C5511433A142135250AD132F2888ECEE452 - -Count = 703 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708 -CT = EE35C5ECBEB4F721F4F3F18F7254768B89BDE7474607F5A47AB308B3859CEF8101B3B047C3 - -Count = 704 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 00010203040506070809 -CT = 252EA99EE58EE9DD9FA2DF9E896C85F5E30F98D4BBF50540B3F28688A06277C644AE945404 - -Count = 705 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A -CT = B0C179AC69E8583FD66B5C00368D4DBD93157CF52B9478EE46EF0245D17A6721474A742EB2 - -Count = 706 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B -CT = 73F5083A228D1FA45045563C2008A4E1B5F91C58B68A5EB29A39CE448103C9C1A4F0A8F090 - -Count = 707 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C -CT = 41AAA97377B39758FE9E8606E64416BE91895E95CD0892B7FA1AC9B912A3186A38962E5B34 - -Count = 708 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C0D -CT = 1A926838E49E79330E6AFB76A7B149093C726A99065E4346DF5BF0001D09A19C2A5BFFF265 - -Count = 709 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C0D0E -CT = 39D9906849736AFEE9B9EC5851CBBFBF1305686B8B1B44FAC558DD8A6B4A7519788FCC2517 - -Count = 710 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C0D0E0F -CT = 95A9CC016DB1D54668CCA0DC7BC644852CB7A83E03CC4AD5D531254C3651CCC541B9E2960B - -Count = 711 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 307824FCBD38D152551DC44E16D56BC8A620717FA16F38C1075743CC863714F4FD3019035E - -Count = 712 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 86B3B4DCA59E277541E95D63AF66CFA2B1C7A546D079C9C99BF394766A44EC71F474B2D543 - -Count = 713 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = F60ADC6495BAB5AA38B38FB383B7EECD8E5D87BF4B1C9D9EB40B69790E8596B434155DA540 - -Count = 714 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 4F48371B6AF752A8C631742E72BC51EB8419B7B8E4D6FA4F6BA8A63E4AA19BA7DE8EACAA98 - -Count = 715 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = 89BDEA40E36A9D39A59DFE6697D508975CEA588234B0E1A85254061813E42D6C2E791A24A6 - -Count = 716 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = 2021C84BC884DC665C3243C822952297A2066F8CF5E28FF3A7FC1185E040E32ED6B82AEEB0 - -Count = 717 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 20F20FF1674EC0DF8A55CE234064C610D1775EEA5AACE20A17309CCC1E0B562DFB87587A10 - -Count = 718 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = 4F7CC6B92F63AA2AB8907B52C0998D4CD047B8AE5B94DDF6FDB34B9A25BE48F48549EF0ADB - -Count = 719 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 6034C839C70E77FC0FCED7C7D75B238F4334B925CB15AED29BF297CABAB344128A51FCDA2B - -Count = 720 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = 5E427A3A599AB5CF74AFEBB4E555C69E60F505422E0F7EB0E04F47F577A2789BF5659633D9 - -Count = 721 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 0005A3730F2091FDA3602E158EBEE93241228374B85E36DDAB0608DD95A3246CAA42357A83 - -Count = 722 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = B2B2A81D5FB5EA292C0812FCD919233934AB155C1215131FF14DCCE1F9A3E9E3BA9F4675B6 - -Count = 723 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = D96C09271C1D9557D43B72998E41E2D9DF5A44FAAB3E353E5DAFA7A62A3720B0A168E70F28 - -Count = 724 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 5F5143FA55E240F9571656B9823639F437C859B1D0EF207DB7CE437862DBD9BB043CEA3822 - -Count = 725 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = 047BDBAEF519DCC4E65A5DCD7E0C16873A30456EEB591CFCC41E938565D44ECEDCEA13D0BE - -Count = 726 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 1A9B58442BBD18F7F5EA1B1D243BE2277D08ABAB0A8B0FAC2EF55E9A307AECF477A06A7CD6 - -Count = 727 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = -CT = DE27B3C1B43A54C25A724A5F57FC59B59185E2EF4B688EBE30100EAEC155A295EC555241B67C - -Count = 728 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 00 -CT = 998D7701C14BB41DBA91A240DA82606BABF178C9DD86B86E48BFB425228F839D53591E5314AF - -Count = 729 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 0001 -CT = 51E3F26591E3BE66E2C31CBDD5BF8CD58B6B86C0EB34E5C566E7EDC221AC165DA7FDF915CA9A - -Count = 730 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102 -CT = 255ED813C6C9E79E1107AD13AC89CB0464C6F55527626E810DFA14EEA429753026B3308CE14C - -Count = 731 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 00010203 -CT = 2BB84CB90B56B23C16EA9185A8C3295775EA072BAF4B910C0C99B836B2E175BE41C8E207C939 - -Count = 732 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 0001020304 -CT = CAB056AA88F110F7178FA1C075813704BEB21AFBAD02B12FACADCDF44FE5B9F5D020D91886DC - -Count = 733 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405 -CT = 85FF40FCBFEB16F5AC3B7FEAAAB7C01ADA725607C49E217038CA62827AB4CD8214750047ECC3 - -Count = 734 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 00010203040506 -CT = 37466ECBEF0CF6C9987924AC51E05E0DC726432BBE6ED6613D96D508D12F18469ADB99815017 - -Count = 735 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 0001020304050607 -CT = 066D386BDC3BFDE56B07782DF9F784B30B60770C55B8A647EB750DD2A5C0267C81774355563C - -Count = 736 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708 -CT = EE35C5ECBEB4F721F4F3F18F7254768B89BDE74746FEE09E8C24C0130F5F216C378131343336 - -Count = 737 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 00010203040506070809 -CT = 252EA99EE58EE9DD9FA2DF9E896C85F5E30F98D4BB941654DCFDBD55CD4B0562F41EF12A10F3 - -Count = 738 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A -CT = B0C179AC69E8583FD66B5C00368D4DBD93157CF52B9313D7324326FA0F0AC161C06787099D4B - -Count = 739 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B -CT = 73F5083A228D1FA45045563C2008A4E1B5F91C58B66956840ACED3CA10DAFFB9DBCF3FBB587C - -Count = 740 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C -CT = 41AAA97377B39758FE9E8606E64416BE91895E95CDAEF4DBC1727AE76B93DBBACE8F33CCD714 - -Count = 741 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C0D -CT = 1A926838E49E79330E6AFB76A7B149093C726A9906367033129C42228A79FD42492FF215EB78 - -Count = 742 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C0D0E -CT = 39D9906849736AFEE9B9EC5851CBBFBF1305686B8BFE702BA125B5D30250F67908DFA4CE88B8 - -Count = 743 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C0D0E0F -CT = 95A9CC016DB1D54668CCA0DC7BC644852CB7A83E03EAE2FF19CCAF1DDA8BFC28CF612248931B - -Count = 744 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 307824FCBD38D152551DC44E16D56BC8A620717FA1301E646C172236B3171FABBCCB1210DB29 - -Count = 745 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 86B3B4DCA59E277541E95D63AF66CFA2B1C7A546D0D44FA97C0C870A27714A624DEEF59AF2DE - -Count = 746 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = F60ADC6495BAB5AA38B38FB383B7EECD8E5D87BF4B030FABD24E3E40F9C44464CB029A5C5EB9 - -Count = 747 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 4F48371B6AF752A8C631742E72BC51EB8419B7B8E438F5DC8B09D8DC5439533A9CB24B09F98A - -Count = 748 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = 89BDEA40E36A9D39A59DFE6697D508975CEA58823414145DBB651630E84DD19C9EC7C6C85BC7 - -Count = 749 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = 2021C84BC884DC665C3243C822952297A2066F8CF5BA420766C74B91A73D3DDCDAD1920820A8 - -Count = 750 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 20F20FF1674EC0DF8A55CE234064C610D1775EEA5A97AAB890133FDE1ADA66CA026F91C843A4 - -Count = 751 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = 4F7CC6B92F63AA2AB8907B52C0998D4CD047B8AE5B46417BDCCCC71C6C88078A89E53A10758B - -Count = 752 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 6034C839C70E77FC0FCED7C7D75B238F4334B925CB439FF83D74756E275E05E5ED1D81A3D83C - -Count = 753 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = 5E427A3A599AB5CF74AFEBB4E555C69E60F505422E43693A96552C6798878C190FDF11719F3C - -Count = 754 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 0005A3730F2091FDA3602E158EBEE93241228374B8C0369EE2765A4CE8E15C91EAF4E1C1EAEA - -Count = 755 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = B2B2A81D5FB5EA292C0812FCD919233934AB155C12FBDA2D269771AAFD5E628F464B7E881BD7 - -Count = 756 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = D96C09271C1D9557D43B72998E41E2D9DF5A44FAABEF03CD711BFB8E8F0AAC4A903877648148 - -Count = 757 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 5F5143FA55E240F9571656B9823639F437C859B1D0B5FA6218BAC2D3D4FB89BEAED2DC15AE1A - -Count = 758 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = 047BDBAEF519DCC4E65A5DCD7E0C16873A30456EEBD28997B246BABE06F90F40CA37971E0FA0 - -Count = 759 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 1A9B58442BBD18F7F5EA1B1D243BE2277D08ABAB0A47C314DB9085BF2770CD9317B58F3E1485 - -Count = 760 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = -CT = DE27B3C1B43A54C25A724A5F57FC59B59185E2EF4B687C137DD77ED700429834C3A7B05955643A - -Count = 761 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 00 -CT = 998D7701C14BB41DBA91A240DA82606BABF178C9DD868D92778045161BBE0A2237AA56F1F1D881 - -Count = 762 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 0001 -CT = 51E3F26591E3BE66E2C31CBDD5BF8CD58B6B86C0EB34252C9852F8082D5306899D6BBD676BF017 - -Count = 763 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102 -CT = 255ED813C6C9E79E1107AD13AC89CB0464C6F5552762C972E3A41082CDADC17DC0FDF8B377B67E - -Count = 764 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 00010203 -CT = 2BB84CB90B56B23C16EA9185A8C3295775EA072BAF4B1ADC5D75D418B763E91FB1418BF698CA51 - -Count = 765 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 0001020304 -CT = CAB056AA88F110F7178FA1C075813704BEB21AFBAD02DEC93C4DBEBAF1B001B49B3E8C04A0FC5E - -Count = 766 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405 -CT = 85FF40FCBFEB16F5AC3B7FEAAAB7C01ADA725607C49E698F58D9ED3B0CDFD8B23EF38FF270A486 - -Count = 767 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 00010203040506 -CT = 37466ECBEF0CF6C9987924AC51E05E0DC726432BBE6E9B01ADF9D507F34A53A1F280D46002ADA6 - -Count = 768 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 0001020304050607 -CT = 066D386BDC3BFDE56B07782DF9F784B30B60770C55B83AE3474A70C74798443CBD57D8CAC5ADAC - -Count = 769 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708 -CT = EE35C5ECBEB4F721F4F3F18F7254768B89BDE74746FE75B762CA9368B906F196730045AA311E28 - -Count = 770 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 00010203040506070809 -CT = 252EA99EE58EE9DD9FA2DF9E896C85F5E30F98D4BB94217940BEF185840053C258ACE4533D37C4 - -Count = 771 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A -CT = B0C179AC69E8583FD66B5C00368D4DBD93157CF52B93769A1EC2DF4019DE6D26A2FF2D31063F28 - -Count = 772 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B -CT = 73F5083A228D1FA45045563C2008A4E1B5F91C58B6698ADDA1BF5DAC5BE104E66556E7BAE4903E - -Count = 773 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C -CT = 41AAA97377B39758FE9E8606E64416BE91895E95CDAEB23C1E54418BE76E5076C262D1DF3EB79D - -Count = 774 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C0D -CT = 1A926838E49E79330E6AFB76A7B149093C726A9906360B5586444B27A15824DB8FD5FD2F967793 - -Count = 775 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C0D0E -CT = 39D9906849736AFEE9B9EC5851CBBFBF1305686B8BFED995F72D69F3CF9B8F0C236B4E0CD91317 - -Count = 776 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C0D0E0F -CT = 95A9CC016DB1D54668CCA0DC7BC644852CB7A83E03EA8C6304B310ED84F648DB22B10ABA80F08F - -Count = 777 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 307824FCBD38D152551DC44E16D56BC8A620717FA130910B903925D16E53D8B75444B2EDE48F61 - -Count = 778 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 86B3B4DCA59E277541E95D63AF66CFA2B1C7A546D0D47D32E1BEFF94584E5BDB9526ECFADAB2D2 - -Count = 779 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = F60ADC6495BAB5AA38B38FB383B7EECD8E5D87BF4B0343FABDA4494EEB6E9F31812A28DCC302F0 - -Count = 780 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 4F48371B6AF752A8C631742E72BC51EB8419B7B8E4387E443FB49A3821FF2CB9BB49255430BC1C - -Count = 781 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = 89BDEA40E36A9D39A59DFE6697D508975CEA5882341402608E94FDB0BED73EB6C2CCBB25A21565 - -Count = 782 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = 2021C84BC884DC665C3243C822952297A2066F8CF5BA438E244389911110CB88A6031AB3F31229 - -Count = 783 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 20F20FF1674EC0DF8A55CE234064C610D1775EEA5A97961A8FED7740A98242AFE575DA52923D13 - -Count = 784 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = 4F7CC6B92F63AA2AB8907B52C0998D4CD047B8AE5B46DD2DE5C25EC53645B977BD84D26AF9A41C - -Count = 785 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 6034C839C70E77FC0FCED7C7D75B238F4334B925CB43D4D775645C99A6DEF06BF997BEC68656F6 - -Count = 786 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = 5E427A3A599AB5CF74AFEBB4E555C69E60F505422E4342219C62C4A6B5A5197505E745C4CCDA82 - -Count = 787 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 0005A3730F2091FDA3602E158EBEE93241228374B8C0387B4EF3423000B2AE994ACBDCCA8C4911 - -Count = 788 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = B2B2A81D5FB5EA292C0812FCD919233934AB155C12FBABC3B503FECD993412B0B4A9E7A3744A8C - -Count = 789 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = D96C09271C1D9557D43B72998E41E2D9DF5A44FAABEFC9F70075DD48764DF30000B286AA7D46E2 - -Count = 790 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 5F5143FA55E240F9571656B9823639F437C859B1D0B5FEC4DA35453B203581400AFEB70B771E16 - -Count = 791 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = 047BDBAEF519DCC4E65A5DCD7E0C16873A30456EEBD26A2D07C509EC25E6E4CAA2CE8915D5A2A4 - -Count = 792 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 1A9B58442BBD18F7F5EA1B1D243BE2277D08ABAB0A47AC540FDC6BFA24072713234C2F295E27FC - -Count = 793 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = -CT = DE27B3C1B43A54C25A724A5F57FC59B59185E2EF4B687C6DE4EBA173D3EC7EA5CE095188C1030AFE - -Count = 794 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 00 -CT = 998D7701C14BB41DBA91A240DA82606BABF178C9DD868D5ACB1305C649520A0719E059D8A4F55CEB - -Count = 795 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 0001 -CT = 51E3F26591E3BE66E2C31CBDD5BF8CD58B6B86C0EB34251634CA42CA45CDD6A11B4F71C9D63E7925 - -Count = 796 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102 -CT = 255ED813C6C9E79E1107AD13AC89CB0464C6F5552762C967FA46CD022C883330E7974406BA6ECDF3 - -Count = 797 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 00010203 -CT = 2BB84CB90B56B23C16EA9185A8C3295775EA072BAF4B1A6A281DD851AB2B6B4EF6DFDE0CFE169D2B - -Count = 798 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 0001020304 -CT = CAB056AA88F110F7178FA1C075813704BEB21AFBAD02DEE129B3061ACA4B9C372DE8FB599E9050A8 - -Count = 799 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405 -CT = 85FF40FCBFEB16F5AC3B7FEAAAB7C01ADA725607C49E694FA5FEA066211661879A83031E0977C623 - -Count = 800 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 00010203040506 -CT = 37466ECBEF0CF6C9987924AC51E05E0DC726432BBE6E9B27C069D0D8D747A1F00168A25997B8B909 - -Count = 801 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 0001020304050607 -CT = 066D386BDC3BFDE56B07782DF9F784B30B60770C55B83A6D8E97EA9DE04A9521C3B40B2C87ADFE03 - -Count = 802 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708 -CT = EE35C5ECBEB4F721F4F3F18F7254768B89BDE74746FE757DAB9B245A211ACC7742A4A8C0E69FE28A - -Count = 803 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 00010203040506070809 -CT = 252EA99EE58EE9DD9FA2DF9E896C85F5E30F98D4BB9421C4E9EF7680649ADA75185CFF4C03BAC5DC - -Count = 804 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A -CT = B0C179AC69E8583FD66B5C00368D4DBD93157CF52B9376E2A02646E5F089BA1FA55CAE8B6E7ECAB1 - -Count = 805 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B -CT = 73F5083A228D1FA45045563C2008A4E1B5F91C58B6698AAA4EA86D58F83E6101F42711F86157D571 - -Count = 806 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C -CT = 41AAA97377B39758FE9E8606E64416BE91895E95CDAEB22E5F5E9F6AEF9B42682D6C6B6150A1CAEC - -Count = 807 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C0D -CT = 1A926838E49E79330E6AFB76A7B149093C726A9906360B1D534218C0E20B382A6A1C4115C97236D5 - -Count = 808 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C0D0E -CT = 39D9906849736AFEE9B9EC5851CBBFBF1305686B8BFED99FD56CC74C5BD0669C19A94793556D9CC5 - -Count = 809 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C0D0E0F -CT = 95A9CC016DB1D54668CCA0DC7BC644852CB7A83E03EA8CBA8E3362C2CE8BE680A604114880CA6658 - -Count = 810 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 307824FCBD38D152551DC44E16D56BC8A620717FA130914E2E121E41A669A40D810158AE266AC40B - -Count = 811 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 86B3B4DCA59E277541E95D63AF66CFA2B1C7A546D0D47D940FD4F3CE694A619501E904BB40AB0E32 - -Count = 812 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = F60ADC6495BAB5AA38B38FB383B7EECD8E5D87BF4B034312ACA0AEA5F8B497E789B307864315978F - -Count = 813 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 4F48371B6AF752A8C631742E72BC51EB8419B7B8E4387EC118AB12D5310926EBF38164D20B51091F - -Count = 814 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = 89BDEA40E36A9D39A59DFE6697D508975CEA58823414029D16D72F98ADD54BFC4630ACE6F08EAF0C - -Count = 815 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = 2021C84BC884DC665C3243C822952297A2066F8CF5BA4380AE2AEC2F16D1ED75D84A87D342372B7C - -Count = 816 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 20F20FF1674EC0DF8A55CE234064C610D1775EEA5A979658CD2D2A329458189DFE037C585F5F2C32 - -Count = 817 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = 4F7CC6B92F63AA2AB8907B52C0998D4CD047B8AE5B46DD14B240F181D11AB8EF496BE3702900FDF6 - -Count = 818 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 6034C839C70E77FC0FCED7C7D75B238F4334B925CB43D4888CB47182AD5808DF08D3F25A9A746406 - -Count = 819 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = 5E427A3A599AB5CF74AFEBB4E555C69E60F505422E4342BBB03E64A05A57A1196E0D6DF65D068AFD - -Count = 820 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 0005A3730F2091FDA3602E158EBEE93241228374B8C0384BD7AC6351EC7F7C65FFF354CFE819FC36 - -Count = 821 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = B2B2A81D5FB5EA292C0812FCD919233934AB155C12FBABD8BAC1B6B0BD0AE8D680477283F9017452 - -Count = 822 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = D96C09271C1D9557D43B72998E41E2D9DF5A44FAABEFC956CBCF9CCEB5B86A7B830B64F08992DD51 - -Count = 823 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 5F5143FA55E240F9571656B9823639F437C859B1D0B5FE424641CD31319C45D765822F602A002D49 - -Count = 824 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = 047BDBAEF519DCC4E65A5DCD7E0C16873A30456EEBD26AD59F68FC2156E298A57A781EBC8ED69DE7 - -Count = 825 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 1A9B58442BBD18F7F5EA1B1D243BE2277D08ABAB0A47AC4A6B8837E6F8CDAFA3BE0078E3705B3F1A - -Count = 826 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = -CT = DE27B3C1B43A54C25A724A5F57FC59B59185E2EF4B687C6D4B1F7A3404552E100806538F83786BA733 - -Count = 827 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 00 -CT = 998D7701C14BB41DBA91A240DA82606BABF178C9DD868D5A132687DD91CC9BCD73993303DDDBCC1626 - -Count = 828 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 0001 -CT = 51E3F26591E3BE66E2C31CBDD5BF8CD58B6B86C0EB342516F0F07765B7B0D78B795C98C28795DDCA78 - -Count = 829 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102 -CT = 255ED813C6C9E79E1107AD13AC89CB0464C6F5552762C96763CAB21F64912F5F199F4095ECF11625CF - -Count = 830 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 00010203 -CT = 2BB84CB90B56B23C16EA9185A8C3295775EA072BAF4B1A6A197EE810EB23BBFB5ACFB5B36693095B83 - -Count = 831 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 0001020304 -CT = CAB056AA88F110F7178FA1C075813704BEB21AFBAD02DEE10A7DFAD3D86DB58FD862FA0B7F266762B1 - -Count = 832 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405 -CT = 85FF40FCBFEB16F5AC3B7FEAAAB7C01ADA725607C49E694F0D4523A4D095500282BE4BF93E25252EA3 - -Count = 833 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 00010203040506 -CT = 37466ECBEF0CF6C9987924AC51E05E0DC726432BBE6E9B2726D75F38620CA5488BD4C323206844E096 - -Count = 834 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 0001020304050607 -CT = 066D386BDC3BFDE56B07782DF9F784B30B60770C55B83A6DA5D64B576DF3B240E98768B1DFD64D4B63 - -Count = 835 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708 -CT = EE35C5ECBEB4F721F4F3F18F7254768B89BDE74746FE757D2F40C610BF53F2A7DB970879F1AD922D3B - -Count = 836 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 00010203040506070809 -CT = 252EA99EE58EE9DD9FA2DF9E896C85F5E30F98D4BB9421C4103822874952AC8ECC5755C9000C8DD817 - -Count = 837 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A -CT = B0C179AC69E8583FD66B5C00368D4DBD93157CF52B9376E2FC39E2F575928594DBB92037A70F85C455 - -Count = 838 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B -CT = 73F5083A228D1FA45045563C2008A4E1B5F91C58B6698AAAEF298FD33AC729DEE4F77C44D004FFF601 - -Count = 839 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C -CT = 41AAA97377B39758FE9E8606E64416BE91895E95CDAEB22E96582CC16F90612C5D23D8A20B89DF4BA5 - -Count = 840 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C0D -CT = 1A926838E49E79330E6AFB76A7B149093C726A9906360B1D612C867111298646CBE171E4966C9B7854 - -Count = 841 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C0D0E -CT = 39D9906849736AFEE9B9EC5851CBBFBF1305686B8BFED99F6D7DF876DEFDF264AC5642E3C12DCA7F1D - -Count = 842 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C0D0E0F -CT = 95A9CC016DB1D54668CCA0DC7BC644852CB7A83E03EA8CBA8F784F67A268998FA7E6F9FD3D9E9EBFE5 - -Count = 843 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 307824FCBD38D152551DC44E16D56BC8A620717FA130914E700C249363C7A322A59B3275AB093AD0F5 - -Count = 844 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 86B3B4DCA59E277541E95D63AF66CFA2B1C7A546D0D47D942C1983A30CD67FD527588C0CBD2A73993E - -Count = 845 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = F60ADC6495BAB5AA38B38FB383B7EECD8E5D87BF4B034312F8E00DCE82C34C7801DC938B32A80C64D3 - -Count = 846 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 4F48371B6AF752A8C631742E72BC51EB8419B7B8E4387EC130378F4913D20C368C45FA2C1E733032B6 - -Count = 847 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = 89BDEA40E36A9D39A59DFE6697D508975CEA58823414029D2DFB3945175E099DCB92E1EBDCA4663147 - -Count = 848 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = 2021C84BC884DC665C3243C822952297A2066F8CF5BA4380AA2F9B23D450D6585BCBFA732FB244FCCB - -Count = 849 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 20F20FF1674EC0DF8A55CE234064C610D1775EEA5A97965818219E57A854284AD0FB67637EBB11C433 - -Count = 850 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = 4F7CC6B92F63AA2AB8907B52C0998D4CD047B8AE5B46DD1428E55AF65769CABBA4C92BF7E5D91A8676 - -Count = 851 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 6034C839C70E77FC0FCED7C7D75B238F4334B925CB43D48853C4E10DBC21E7E7E12A009988DC3DB362 - -Count = 852 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = 5E427A3A599AB5CF74AFEBB4E555C69E60F505422E4342BB03D83BDFA9BCF2D9B48ED1D6D5B5C50B2B - -Count = 853 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 0005A3730F2091FDA3602E158EBEE93241228374B8C0384BA97FAFE86B9B664A9CE5FDB549BC9E6ED8 - -Count = 854 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = B2B2A81D5FB5EA292C0812FCD919233934AB155C12FBABD855A22F51F1E0109B9D1DA8D934FF5F9ECA - -Count = 855 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = D96C09271C1D9557D43B72998E41E2D9DF5A44FAABEFC956B418718B434E8563B5297C65B52C7DE60D - -Count = 856 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 5F5143FA55E240F9571656B9823639F437C859B1D0B5FE4256C6E5F4BB0EDEBB5E6826DA7E9CD5BD6F - -Count = 857 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = 047BDBAEF519DCC4E65A5DCD7E0C16873A30456EEBD26AD5B0FCF01D23A9A67568A25D3ADEFD1CEEB8 - -Count = 858 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 1A9B58442BBD18F7F5EA1B1D243BE2277D08ABAB0A47AC4AB16D1DA05886223E82C63F2D2981ECBB03 - -Count = 859 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = -CT = DE27B3C1B43A54C25A724A5F57FC59B59185E2EF4B687C6D4B4CE009CAF624E78A99898F75F372F3BA02 - -Count = 860 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 00 -CT = 998D7701C14BB41DBA91A240DA82606BABF178C9DD868D5A136E1828BA9C9E2BBA2C5FE44DCAA584EA5E - -Count = 861 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 0001 -CT = 51E3F26591E3BE66E2C31CBDD5BF8CD58B6B86C0EB342516F0062C866E5A73212199FCA83AC0E0DE5ED3 - -Count = 862 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102 -CT = 255ED813C6C9E79E1107AD13AC89CB0464C6F5552762C9676392DFC075703AB2514C66FA4E17B1D69258 - -Count = 863 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 00010203 -CT = 2BB84CB90B56B23C16EA9185A8C3295775EA072BAF4B1A6A1966D58C05C5312D51529764D3B84B6A9187 - -Count = 864 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 0001020304 -CT = CAB056AA88F110F7178FA1C075813704BEB21AFBAD02DEE10A8EE5B4458C20886F21E8D913CB1C086204 - -Count = 865 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405 -CT = 85FF40FCBFEB16F5AC3B7FEAAAB7C01ADA725607C49E694F0D583C8E97C6B5EB6358C5C9A9AE6E2F1325 - -Count = 866 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 00010203040506 -CT = 37466ECBEF0CF6C9987924AC51E05E0DC726432BBE6E9B2726495D230EC871C3D854C864D8EE1FBF4086 - -Count = 867 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 0001020304050607 -CT = 066D386BDC3BFDE56B07782DF9F784B30B60770C55B83A6DA5287C4AACE44DF798C23907B0D0FA216D45 - -Count = 868 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708 -CT = EE35C5ECBEB4F721F4F3F18F7254768B89BDE74746FE757D2F636E51B931EAAF18E6EBCE02EBBCC3A942 - -Count = 869 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 00010203040506070809 -CT = 252EA99EE58EE9DD9FA2DF9E896C85F5E30F98D4BB9421C410FCD4E1AD71E229A7F81F6354057F006A6B - -Count = 870 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A -CT = B0C179AC69E8583FD66B5C00368D4DBD93157CF52B9376E2FC300F2DFA65644CF002AA2D114601146EE6 - -Count = 871 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B -CT = 73F5083A228D1FA45045563C2008A4E1B5F91C58B6698AAAEFCD1C969D65ED16861199C0E9F0AA5B711F - -Count = 872 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C -CT = 41AAA97377B39758FE9E8606E64416BE91895E95CDAEB22E96452451E49882961B606C94F331353AB77B - -Count = 873 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C0D -CT = 1A926838E49E79330E6AFB76A7B149093C726A9906360B1D61822040B2CDA50C049B3C95D27D86F239D9 - -Count = 874 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C0D0E -CT = 39D9906849736AFEE9B9EC5851CBBFBF1305686B8BFED99F6DB7337ABB8F3392B9FA148EE14250E985C5 - -Count = 875 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C0D0E0F -CT = 95A9CC016DB1D54668CCA0DC7BC644852CB7A83E03EA8CBA8F45B9113E114D1FE64EDBDDF18E034D6B2E - -Count = 876 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 307824FCBD38D152551DC44E16D56BC8A620717FA130914E70D097860D44238F570076199926A715B513 - -Count = 877 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 86B3B4DCA59E277541E95D63AF66CFA2B1C7A546D0D47D942C8E76D36ECED21536D82FC4057786A7EA7C - -Count = 878 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = F60ADC6495BAB5AA38B38FB383B7EECD8E5D87BF4B034312F8DDBA58D59E5CFE6325CFDD35CF13EB6C7B - -Count = 879 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 4F48371B6AF752A8C631742E72BC51EB8419B7B8E4387EC13079E0A2EFCDE91C4FB98266B89D07DCCAAA - -Count = 880 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = 89BDEA40E36A9D39A59DFE6697D508975CEA58823414029D2D2FA528DFAAF4EE0E6F281C1738547D4F28 - -Count = 881 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = 2021C84BC884DC665C3243C822952297A2066F8CF5BA4380AA50217869CCC28896DD475A37C15C42CD6E - -Count = 882 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 20F20FF1674EC0DF8A55CE234064C610D1775EEA5A9796581894AA1C243A9FF21A9B55E6E73068B5CC6D - -Count = 883 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = 4F7CC6B92F63AA2AB8907B52C0998D4CD047B8AE5B46DD1428F13ED20A5018C2E65D1DB3B07C96D4BF4B - -Count = 884 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 6034C839C70E77FC0FCED7C7D75B238F4334B925CB43D48853128BD97F766CDE4030F95CB85AAC3CD033 - -Count = 885 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = 5E427A3A599AB5CF74AFEBB4E555C69E60F505422E4342BB03CBA9CD930B5A56BB28AC72EAA69A5FA40A - -Count = 886 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 0005A3730F2091FDA3602E158EBEE93241228374B8C0384BA9ED3E4D8F71EE60BD42701B022798D4A509 - -Count = 887 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = B2B2A81D5FB5EA292C0812FCD919233934AB155C12FBABD855BB722A205425D3292B5C3BC67D88B606E8 - -Count = 888 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = D96C09271C1D9557D43B72998E41E2D9DF5A44FAABEFC956B4A940D935BE9E1865D5FC3BDCC07F79CF75 - -Count = 889 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 5F5143FA55E240F9571656B9823639F437C859B1D0B5FE4256A9E017923F7C88E091173DA0674EF60CB9 - -Count = 890 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = 047BDBAEF519DCC4E65A5DCD7E0C16873A30456EEBD26AD5B0152C2BF2423B25C7879B9CCCC2ACD8ACB3 - -Count = 891 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 1A9B58442BBD18F7F5EA1B1D243BE2277D08ABAB0A47AC4AB1132409D07819A014227CE89FD9905B3E13 - -Count = 892 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = -CT = DE27B3C1B43A54C25A724A5F57FC59B59185E2EF4B687C6D4B4CA62D01C2BF892CACF3FAE10F46C412A0CE - -Count = 893 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 00 -CT = 998D7701C14BB41DBA91A240DA82606BABF178C9DD868D5A136E17A7482AFB7E5283781A013957B0AA62FF - -Count = 894 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 0001 -CT = 51E3F26591E3BE66E2C31CBDD5BF8CD58B6B86C0EB342516F0063912DE108B2103EFE2963AF9014E193D6A - -Count = 895 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102 -CT = 255ED813C6C9E79E1107AD13AC89CB0464C6F5552762C9676392B47857F9456F9F0D6D90D26CE959EA3EF8 - -Count = 896 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 00010203 -CT = 2BB84CB90B56B23C16EA9185A8C3295775EA072BAF4B1A6A1966002EB430294E55BBA1F49F3B1BEA8EEA38 - -Count = 897 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 0001020304 -CT = CAB056AA88F110F7178FA1C075813704BEB21AFBAD02DEE10A8E0088E94AA281A04917D1B97461B796D094 - -Count = 898 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405 -CT = 85FF40FCBFEB16F5AC3B7FEAAAB7C01ADA725607C49E694F0D587F213D8336970A2E6F09CD481912067CB5 - -Count = 899 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 00010203040506 -CT = 37466ECBEF0CF6C9987924AC51E05E0DC726432BBE6E9B272649BC0DCAE9BA723B1CA497F81F5017A4D986 - -Count = 900 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 0001020304050607 -CT = 066D386BDC3BFDE56B07782DF9F784B30B60770C55B83A6DA5289859E4320310550D9E011213746A61D7FC - -Count = 901 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708 -CT = EE35C5ECBEB4F721F4F3F18F7254768B89BDE74746FE757D2F63D8A7D7EF7772022B3E1D06617DA9671E55 - -Count = 902 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 00010203040506070809 -CT = 252EA99EE58EE9DD9FA2DF9E896C85F5E30F98D4BB9421C410FC0F7A1828F1EFE6652F0774E910A67E0E75 - -Count = 903 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A -CT = B0C179AC69E8583FD66B5C00368D4DBD93157CF52B9376E2FC3007046D7D88191C4829265FD03EED607792 - -Count = 904 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B -CT = 73F5083A228D1FA45045563C2008A4E1B5F91C58B6698AAAEFCDBC5931DFB2F754BC85115B557A43EE6192 - -Count = 905 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C -CT = 41AAA97377B39758FE9E8606E64416BE91895E95CDAEB22E964550BEF80E49A27CA456A016F50B16DB39B8 - -Count = 906 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C0D -CT = 1A926838E49E79330E6AFB76A7B149093C726A9906360B1D6182A419456461E3815E0923375E9A52994C2F - -Count = 907 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C0D0E -CT = 39D9906849736AFEE9B9EC5851CBBFBF1305686B8BFED99F6DB728F4C7A3471421792DA24E33A87232C475 - -Count = 908 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C0D0E0F -CT = 95A9CC016DB1D54668CCA0DC7BC644852CB7A83E03EA8CBA8F452A45838F01F48CBDD8EF862D27C6E05721 - -Count = 909 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 307824FCBD38D152551DC44E16D56BC8A620717FA130914E70D00FE55F9107771B7ADA3884F28E7A494EB4 - -Count = 910 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 86B3B4DCA59E277541E95D63AF66CFA2B1C7A546D0D47D942C8E73C35CF705AAA338334080E10A08F90DFB - -Count = 911 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = F60ADC6495BAB5AA38B38FB383B7EECD8E5D87BF4B034312F8DD61D0AE8BA643533D849A5400DFAE72D5A0 - -Count = 912 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 4F48371B6AF752A8C631742E72BC51EB8419B7B8E4387EC130796C3215DB5BEE8DA029B57913986ECD56B8 - -Count = 913 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = 89BDEA40E36A9D39A59DFE6697D508975CEA58823414029D2D2F4A99DCB3B31F94547EA0CBA0C5BA0DCBE9 - -Count = 914 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = 2021C84BC884DC665C3243C822952297A2066F8CF5BA4380AA50A94E589E6BD9337B26E8FE35FD9E1A682F - -Count = 915 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 20F20FF1674EC0DF8A55CE234064C610D1775EEA5A97965818941DAA39C0F23D0E274A990DFBA33EAF69A0 - -Count = 916 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = 4F7CC6B92F63AA2AB8907B52C0998D4CD047B8AE5B46DD1428F1215E0375021B087D683DA3440A707A1621 - -Count = 917 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 6034C839C70E77FC0FCED7C7D75B238F4334B925CB43D4885312147B455C85DE1F68D14F0E1F390D2DBAF7 - -Count = 918 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = 5E427A3A599AB5CF74AFEBB4E555C69E60F505422E4342BB03CBD0ECE83D92044430395F220BA51C71ECAC - -Count = 919 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 0005A3730F2091FDA3602E158EBEE93241228374B8C0384BA9EDD9EB62D6E6339A4B24DA0E35E130737441 - -Count = 920 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = B2B2A81D5FB5EA292C0812FCD919233934AB155C12FBABD855BB8ACEEE90F9D19B1D3577EE799E517190CA - -Count = 921 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = D96C09271C1D9557D43B72998E41E2D9DF5A44FAABEFC956B4A9D1DF20ABB708E9054A0677C19E1291C694 - -Count = 922 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 5F5143FA55E240F9571656B9823639F437C859B1D0B5FE4256A93001054D72B0F9E006C7F45D1202D8ADD3 - -Count = 923 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = 047BDBAEF519DCC4E65A5DCD7E0C16873A30456EEBD26AD5B0159C7C01227A6708152CD85614B42C0A164A - -Count = 924 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 1A9B58442BBD18F7F5EA1B1D243BE2277D08ABAB0A47AC4AB1138630E220CABB4E5585F512DC7870EE60C3 - -Count = 925 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = -CT = DE27B3C1B43A54C25A724A5F57FC59B59185E2EF4B687C6D4B4CA67E0E30207C5BA3578B1B6A16FA9C13714E - -Count = 926 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 00 -CT = 998D7701C14BB41DBA91A240DA82606BABF178C9DD868D5A136E17D91AFE6A65DBE6B79470271F38824DCC3B - -Count = 927 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 0001 -CT = 51E3F26591E3BE66E2C31CBDD5BF8CD58B6B86C0EB342516F00639A5C17BCA428F4309B31FB28F4CA224123B - -Count = 928 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102 -CT = 255ED813C6C9E79E1107AD13AC89CB0464C6F5552762C9676392B48FBC3C39D7B0D620040552C91BFA95241A - -Count = 929 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 00010203 -CT = 2BB84CB90B56B23C16EA9185A8C3295775EA072BAF4B1A6A196600EC778CC1BF6F2BB52E6E77923671FE807E - -Count = 930 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 0001020304 -CT = CAB056AA88F110F7178FA1C075813704BEB21AFBAD02DEE10A8E0059133887F1DCC8149D2C808DD32475EBFE - -Count = 931 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405 -CT = 85FF40FCBFEB16F5AC3B7FEAAAB7C01ADA725607C49E694F0D587F9F8A43F540410ED9DA78A62BFF19FFD54A - -Count = 932 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 00010203040506 -CT = 37466ECBEF0CF6C9987924AC51E05E0DC726432BBE6E9B272649BCAC36507D169E2A7386E88AEDEF2CF85BE3 - -Count = 933 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 0001020304050607 -CT = 066D386BDC3BFDE56B07782DF9F784B30B60770C55B83A6DA5289888021A78F5B773488567D97C75802E5023 - -Count = 934 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708 -CT = EE35C5ECBEB4F721F4F3F18F7254768B89BDE74746FE757D2F63D8DC51E70A25F34F002920EF1CD083DB5A6C - -Count = 935 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 00010203040506070809 -CT = 252EA99EE58EE9DD9FA2DF9E896C85F5E30F98D4BB9421C410FC0FE5C03BEF8662C1DCC17ABAA38A1FC65FE2 - -Count = 936 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A -CT = B0C179AC69E8583FD66B5C00368D4DBD93157CF52B9376E2FC3007B2F47236EAB23EA3F7C5522B2F80C24150 - -Count = 937 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B -CT = 73F5083A228D1FA45045563C2008A4E1B5F91C58B6698AAAEFCDBC5581D77AB23D3322AAFB07FEB207A3890A - -Count = 938 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C -CT = 41AAA97377B39758FE9E8606E64416BE91895E95CDAEB22E964550CF7ED4BBEFF592B131207683B75C2076B4 - -Count = 939 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C0D -CT = 1A926838E49E79330E6AFB76A7B149093C726A9906360B1D6182A410E783BE5F1B4FEAF899DB5E1C7DCF0928 - -Count = 940 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C0D0E -CT = 39D9906849736AFEE9B9EC5851CBBFBF1305686B8BFED99F6DB728DEDBAE87BA2F0EF6C9D0325377BDBA1B3A - -Count = 941 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C0D0E0F -CT = 95A9CC016DB1D54668CCA0DC7BC644852CB7A83E03EA8CBA8F452A8941DAA09F21E79423E3554E32CC025EE4 - -Count = 942 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 307824FCBD38D152551DC44E16D56BC8A620717FA130914E70D00FCD5E027D21B035DFC9C4FFF13EAC7DA236 - -Count = 943 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 86B3B4DCA59E277541E95D63AF66CFA2B1C7A546D0D47D942C8E730E0B86E912D11D58E92DA9BDC8D9CCC537 - -Count = 944 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = F60ADC6495BAB5AA38B38FB383B7EECD8E5D87BF4B034312F8DD617F33D94DB6E5970090DC17323AD94DF9AE - -Count = 945 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 4F48371B6AF752A8C631742E72BC51EB8419B7B8E4387EC130796CA6B018930DCE05B039F6ED9C161BCB6F5A - -Count = 946 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = 89BDEA40E36A9D39A59DFE6697D508975CEA58823414029D2D2F4A53DD29B295D9ABAE386C3D6048602EFC78 - -Count = 947 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = 2021C84BC884DC665C3243C822952297A2066F8CF5BA4380AA50A9828EF209CF303422A60D2618025DA5BD05 - -Count = 948 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 20F20FF1674EC0DF8A55CE234064C610D1775EEA5A97965818941DFA180012668CEA0FC43B851FF5C544ADBF - -Count = 949 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = 4F7CC6B92F63AA2AB8907B52C0998D4CD047B8AE5B46DD1428F1214D40AB9556C6FA8F2A93E23127E486A62E - -Count = 950 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 6034C839C70E77FC0FCED7C7D75B238F4334B925CB43D488531214E7739EC3A7E9B08F35F4CF7037E472B004 - -Count = 951 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = 5E427A3A599AB5CF74AFEBB4E555C69E60F505422E4342BB03CBD08E77B632E569EABA78EAF59D8BC4B719F9 - -Count = 952 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 0005A3730F2091FDA3602E158EBEE93241228374B8C0384BA9EDD94FF38302D70014C733CC226A2A2F45B05C - -Count = 953 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = B2B2A81D5FB5EA292C0812FCD919233934AB155C12FBABD855BB8AE7ED64BE35D90DA37AA37DF82EDE36DA56 - -Count = 954 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = D96C09271C1D9557D43B72998E41E2D9DF5A44FAABEFC956B4A9D115D043045FA26DB875D3CC138D70309E12 - -Count = 955 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 5F5143FA55E240F9571656B9823639F437C859B1D0B5FE4256A9306F7F08DCC004E1124766E0DCDC3F444FDA - -Count = 956 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = 047BDBAEF519DCC4E65A5DCD7E0C16873A30456EEBD26AD5B0159C4FC14B3C8ABA177E3D7858BF46965CAD31 - -Count = 957 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 1A9B58442BBD18F7F5EA1B1D243BE2277D08ABAB0A47AC4AB11386BBE143538367F6E20F9AF324B314C8BC92 - -Count = 958 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = -CT = DE27B3C1B43A54C25A724A5F57FC59B59185E2EF4B687C6D4B4CA67EEA8F5FEFEEBECC2C87B6D20D286E57200F - -Count = 959 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 00 -CT = 998D7701C14BB41DBA91A240DA82606BABF178C9DD868D5A136E17D9784CFD928F8FAAD4E353571B3C02B8A5D0 - -Count = 960 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 0001 -CT = 51E3F26591E3BE66E2C31CBDD5BF8CD58B6B86C0EB342516F00639A58CF56F4D25C025AC43753B57A780915894 - -Count = 961 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102 -CT = 255ED813C6C9E79E1107AD13AC89CB0464C6F5552762C9676392B48FC3FE92BDB4610C0CDF49816FAC3DD6B104 - -Count = 962 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 00010203 -CT = 2BB84CB90B56B23C16EA9185A8C3295775EA072BAF4B1A6A196600EC21843978418FA934A5A04EBCA369475BB8 - -Count = 963 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 0001020304 -CT = CAB056AA88F110F7178FA1C075813704BEB21AFBAD02DEE10A8E0059D8B90A23893857939E99BE953D86486E5A - -Count = 964 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405 -CT = 85FF40FCBFEB16F5AC3B7FEAAAB7C01ADA725607C49E694F0D587F9F97596FF51A4CA0DF5E2B316EA9FE58F0CE - -Count = 965 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 00010203040506 -CT = 37466ECBEF0CF6C9987924AC51E05E0DC726432BBE6E9B272649BCAC84F9E05C5FBB63ECF627B6C01D61F5081A - -Count = 966 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 0001020304050607 -CT = 066D386BDC3BFDE56B07782DF9F784B30B60770C55B83A6DA5289888833D861C9D4597FEA74AAF3B5BB57A0F1D - -Count = 967 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708 -CT = EE35C5ECBEB4F721F4F3F18F7254768B89BDE74746FE757D2F63D8DC693F822191C747E17507F46CB00CD73D8C - -Count = 968 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 00010203040506070809 -CT = 252EA99EE58EE9DD9FA2DF9E896C85F5E30F98D4BB9421C410FC0FE53069818EA777F2BC835FE5220E8BD6A66A - -Count = 969 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A -CT = B0C179AC69E8583FD66B5C00368D4DBD93157CF52B9376E2FC3007B2E17F56A87D5B3BEDC9A794F34391097808 - -Count = 970 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B -CT = 73F5083A228D1FA45045563C2008A4E1B5F91C58B6698AAAEFCDBC5505D83BEB1384AF00A9FCF7CA27CF873236 - -Count = 971 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C -CT = 41AAA97377B39758FE9E8606E64416BE91895E95CDAEB22E964550CF4D345976E4D5A483045D3EE40F10A9E550 - -Count = 972 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C0D -CT = 1A926838E49E79330E6AFB76A7B149093C726A9906360B1D6182A4102F06691BA2FBB55B91FFB34D1E27447998 - -Count = 973 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C0D0E -CT = 39D9906849736AFEE9B9EC5851CBBFBF1305686B8BFED99F6DB728DEEB23A4853362402096CEF71EF2E6AFBAAE - -Count = 974 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C0D0E0F -CT = 95A9CC016DB1D54668CCA0DC7BC644852CB7A83E03EA8CBA8F452A89DC162186848021E29268C16C5DD589F976 - -Count = 975 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 307824FCBD38D152551DC44E16D56BC8A620717FA130914E70D00FCD7F29FFE78650C0ECA34862E53C481330EB - -Count = 976 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 86B3B4DCA59E277541E95D63AF66CFA2B1C7A546D0D47D942C8E730EF55FAAAA7060F50496229256BC08C5C0F3 - -Count = 977 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = F60ADC6495BAB5AA38B38FB383B7EECD8E5D87BF4B034312F8DD617F1D04EB5FCD29884C31810D6CDA0456B878 - -Count = 978 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 4F48371B6AF752A8C631742E72BC51EB8419B7B8E4387EC130796CA6627A7640FCBA4F0291BA8C5678C958C727 - -Count = 979 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = 89BDEA40E36A9D39A59DFE6697D508975CEA58823414029D2D2F4A53511F454C26989B6E1709C54B08DD460DBC - -Count = 980 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = 2021C84BC884DC665C3243C822952297A2066F8CF5BA4380AA50A98244C0429FE55C4BF0A2E04CC85E2299BDFE - -Count = 981 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 20F20FF1674EC0DF8A55CE234064C610D1775EEA5A97965818941DFAAEDD02DDAC6C6AA9E7476617C7B3ED9385 - -Count = 982 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = 4F7CC6B92F63AA2AB8907B52C0998D4CD047B8AE5B46DD1428F1214D34C9139E4CCB0FB035204B6D6CE6C6AFFA - -Count = 983 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 6034C839C70E77FC0FCED7C7D75B238F4334B925CB43D488531214E7870341C92644A360694C89A771E193B5A3 - -Count = 984 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = 5E427A3A599AB5CF74AFEBB4E555C69E60F505422E4342BB03CBD08E6B6846B91D5F7401C58DEA06B0FFF34A6F - -Count = 985 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 0005A3730F2091FDA3602E158EBEE93241228374B8C0384BA9EDD94FC3A612627EBD881F80971F7C8AF0AF25A1 - -Count = 986 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = B2B2A81D5FB5EA292C0812FCD919233934AB155C12FBABD855BB8AE7250C94D7037DB9594EC6E4E4898C7A9FD6 - -Count = 987 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = D96C09271C1D9557D43B72998E41E2D9DF5A44FAABEFC956B4A9D115E061058CC9D37543D5EF0D44E5E0526EC0 - -Count = 988 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 5F5143FA55E240F9571656B9823639F437C859B1D0B5FE4256A9306FED8A9C478CE2A737C2BAD99CC472372134 - -Count = 989 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = 047BDBAEF519DCC4E65A5DCD7E0C16873A30456EEBD26AD5B0159C4F5703CFCFF5D3EE762B13FC6343029658BF - -Count = 990 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 1A9B58442BBD18F7F5EA1B1D243BE2277D08ABAB0A47AC4AB11386BBDCA56D751579E326047725FE5FF7C20BC8 - -Count = 991 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = -CT = DE27B3C1B43A54C25A724A5F57FC59B59185E2EF4B687C6D4B4CA67EEAD2BB8D82902B17A349C36631BB610CAC33 - -Count = 992 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 00 -CT = 998D7701C14BB41DBA91A240DA82606BABF178C9DD868D5A136E17D978EE4C9C5356C3CD0D7B6CB063D481E2B4D6 - -Count = 993 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 0001 -CT = 51E3F26591E3BE66E2C31CBDD5BF8CD58B6B86C0EB342516F00639A58C4329540F8C93C0B968D91F4CEF2FF0FAD6 - -Count = 994 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102 -CT = 255ED813C6C9E79E1107AD13AC89CB0464C6F5552762C9676392B48FC32CB5CFFEF5D3E8D2DE965CD6E162D60EA5 - -Count = 995 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 00010203 -CT = 2BB84CB90B56B23C16EA9185A8C3295775EA072BAF4B1A6A196600EC2193A13213BFD5EA456E10C707C39050158D - -Count = 996 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 0001020304 -CT = CAB056AA88F110F7178FA1C075813704BEB21AFBAD02DEE10A8E0059D800381738A6B5C851A24B39C6C52816B408 - -Count = 997 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405 -CT = 85FF40FCBFEB16F5AC3B7FEAAAB7C01ADA725607C49E694F0D587F9F97902FA024EA9CFC6199E760665C937A093B - -Count = 998 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 00010203040506 -CT = 37466ECBEF0CF6C9987924AC51E05E0DC726432BBE6E9B272649BCAC84153ECF688C4D783E8A00DAA3FD93DCDE36 - -Count = 999 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 0001020304050607 -CT = 066D386BDC3BFDE56B07782DF9F784B30B60770C55B83A6DA5289888831D135D17DA914104B915707C6C409E309D - -Count = 1000 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708 -CT = EE35C5ECBEB4F721F4F3F18F7254768B89BDE74746FE757D2F63D8DC6903B229E6D0E14304D8848A78D193E3DE2F - -Count = 1001 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 00010203040506070809 -CT = 252EA99EE58EE9DD9FA2DF9E896C85F5E30F98D4BB9421C410FC0FE530E5A79282F8819B722221CA7C818107BBE6 - -Count = 1002 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A -CT = B0C179AC69E8583FD66B5C00368D4DBD93157CF52B9376E2FC3007B2E1140A20A80437DC114DF162FEDA53664894 - -Count = 1003 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B -CT = 73F5083A228D1FA45045563C2008A4E1B5F91C58B6698AAAEFCDBC5505DB64117965291AF1E6DA80AC51C3A0EAA0 - -Count = 1004 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C -CT = 41AAA97377B39758FE9E8606E64416BE91895E95CDAEB22E964550CF4D4E965D476AB53AD9AAB54A81282FD42EEB - -Count = 1005 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C0D -CT = 1A926838E49E79330E6AFB76A7B149093C726A9906360B1D6182A4102FDEB0231EF80369F2B52CCEEC6A75F4DD25 - -Count = 1006 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C0D0E -CT = 39D9906849736AFEE9B9EC5851CBBFBF1305686B8BFED99F6DB728DEEBD3203FD2A2A608477F33EB433F75607A73 - -Count = 1007 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C0D0E0F -CT = 95A9CC016DB1D54668CCA0DC7BC644852CB7A83E03EA8CBA8F452A89DC3E3378F20E773C2A1167BE48CA9EAB78AF - -Count = 1008 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 307824FCBD38D152551DC44E16D56BC8A620717FA130914E70D00FCD7F2DCE588390F8125A4B552B36AC566D8B2E - -Count = 1009 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 86B3B4DCA59E277541E95D63AF66CFA2B1C7A546D0D47D942C8E730EF5284541F4BA7AD1747AB88A86D830727032 - -Count = 1010 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = F60ADC6495BAB5AA38B38FB383B7EECD8E5D87BF4B034312F8DD617F1DC54FEFB98634D815D255DBEB6141F7C2D0 - -Count = 1011 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 4F48371B6AF752A8C631742E72BC51EB8419B7B8E4387EC130796CA662BBDFEB6EDA39BC609FE20C6730002FE494 - -Count = 1012 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = 89BDEA40E36A9D39A59DFE6697D508975CEA58823414029D2D2F4A53516966AEF02E97815B67FB2F42CB31DBA6F9 - -Count = 1013 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = 2021C84BC884DC665C3243C822952297A2066F8CF5BA4380AA50A9824416747EBFE01F19402A06CC9144B1A801A4 - -Count = 1014 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 20F20FF1674EC0DF8A55CE234064C610D1775EEA5A97965818941DFAAE62C32778975109B7CA3759370095745CE2 - -Count = 1015 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = 4F7CC6B92F63AA2AB8907B52C0998D4CD047B8AE5B46DD1428F1214D34AD65BD0075156E4C92628A8572ECE8DF24 - -Count = 1016 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 6034C839C70E77FC0FCED7C7D75B238F4334B925CB43D488531214E787B4022D38DAB650E34DEECF35136102B64E - -Count = 1017 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = 5E427A3A599AB5CF74AFEBB4E555C69E60F505422E4342BB03CBD08E6B425FD89147A7082BB6CFBB5E70AD557D82 - -Count = 1018 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 0005A3730F2091FDA3602E158EBEE93241228374B8C0384BA9EDD94FC39FF3CD39F6DA939F75AD8BBA2C1698C508 - -Count = 1019 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = B2B2A81D5FB5EA292C0812FCD919233934AB155C12FBABD855BB8AE7255497C59322424D9426874DEC92B05D8EA3 - -Count = 1020 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = D96C09271C1D9557D43B72998E41E2D9DF5A44FAABEFC956B4A9D115E08DC49EEFB0DEFA1DB4C26EE4B38EF43405 - -Count = 1021 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 5F5143FA55E240F9571656B9823639F437C859B1D0B5FE4256A9306FEDF5AA7F8DBF1CF54B4898CAE46680967F85 - -Count = 1022 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = 047BDBAEF519DCC4E65A5DCD7E0C16873A30456EEBD26AD5B0159C4F57452D649671DB6D7653001F0947AC37A379 - -Count = 1023 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 1A9B58442BBD18F7F5EA1B1D243BE2277D08ABAB0A47AC4AB11386BBDCADF86130FA70E67BEC99AA0C4886D7345E - -Count = 1024 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = -CT = DE27B3C1B43A54C25A724A5F57FC59B59185E2EF4B687C6D4B4CA67EEAD2DA65B30B0ACCC36BA960737D163B806D32 - -Count = 1025 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 00 -CT = 998D7701C14BB41DBA91A240DA82606BABF178C9DD868D5A136E17D978EE8E794C41A8DE1B20508CE7B64F5187AF6C - -Count = 1026 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 0001 -CT = 51E3F26591E3BE66E2C31CBDD5BF8CD58B6B86C0EB342516F00639A58C4355EA18D0EB3E50D916490B645BF4377CF8 - -Count = 1027 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102 -CT = 255ED813C6C9E79E1107AD13AC89CB0464C6F5552762C9676392B48FC32CD4BD49E28AC474CA58BD4BE4768E1C34AA - -Count = 1028 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 00010203 -CT = 2BB84CB90B56B23C16EA9185A8C3295775EA072BAF4B1A6A196600EC219387FA708F7B2377916F06E6936A18FCA2C9 - -Count = 1029 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 0001020304 -CT = CAB056AA88F110F7178FA1C075813704BEB21AFBAD02DEE10A8E0059D8000098B446EEA2809D410953FE57090F1A8B - -Count = 1030 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405 -CT = 85FF40FCBFEB16F5AC3B7FEAAAB7C01ADA725607C49E694F0D587F9F979080D45CEACB2036D0CA7E8D042BD338C5E5 - -Count = 1031 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 00010203040506 -CT = 37466ECBEF0CF6C9987924AC51E05E0DC726432BBE6E9B272649BCAC84157505BA51FCF1DFA37DF0D8053CAD4CBFD5 - -Count = 1032 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 0001020304050607 -CT = 066D386BDC3BFDE56B07782DF9F784B30B60770C55B83A6DA5289888831D952ACF345C7E72D4EAD3190AAC6115D83E - -Count = 1033 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708 -CT = EE35C5ECBEB4F721F4F3F18F7254768B89BDE74746FE757D2F63D8DC6903782ED369A39CF024FE12947416C9FF25C0 - -Count = 1034 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 00010203040506070809 -CT = 252EA99EE58EE9DD9FA2DF9E896C85F5E30F98D4BB9421C410FC0FE530E5ECE480C33EE9B7F16FFBB923B19725E889 - -Count = 1035 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A -CT = B0C179AC69E8583FD66B5C00368D4DBD93157CF52B9376E2FC3007B2E1142588040EB00A8366154556D6877147DF32 - -Count = 1036 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B -CT = 73F5083A228D1FA45045563C2008A4E1B5F91C58B6698AAAEFCDBC5505DB54EA9C5599089A90A6E10FA497ECC5E61D - -Count = 1037 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C -CT = 41AAA97377B39758FE9E8606E64416BE91895E95CDAEB22E964550CF4D4E87543FDC15DFBDC7A86E083B59252D07D8 - -Count = 1038 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C0D -CT = 1A926838E49E79330E6AFB76A7B149093C726A9906360B1D6182A4102FDED3EC0CD39D474C58FF7B92EFCEA2C50E14 - -Count = 1039 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C0D0E -CT = 39D9906849736AFEE9B9EC5851CBBFBF1305686B8BFED99F6DB728DEEBD3B48FD77CF9BD3F0F930D252FB3914E6859 - -Count = 1040 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C0D0E0F -CT = 95A9CC016DB1D54668CCA0DC7BC644852CB7A83E03EA8CBA8F452A89DC3ED349788B6873856FBDDA6348F6159642D4 - -Count = 1041 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 307824FCBD38D152551DC44E16D56BC8A620717FA130914E70D00FCD7F2D46227AD14380B2A7F2B36E50176FABD906 - -Count = 1042 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 86B3B4DCA59E277541E95D63AF66CFA2B1C7A546D0D47D942C8E730EF528D49E4815BBA3EE34515F6224500C14CEF0 - -Count = 1043 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = F60ADC6495BAB5AA38B38FB383B7EECD8E5D87BF4B034312F8DD617F1DC5F2A83631EAB14C3B6109DD81C1FB1407E0 - -Count = 1044 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 4F48371B6AF752A8C631742E72BC51EB8419B7B8E4387EC130796CA662BB39C299BCFD54C029011B5A16CD048492B7 - -Count = 1045 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = 89BDEA40E36A9D39A59DFE6697D508975CEA58823414029D2D2F4A53516981FCE35C000BDF7A6EDAA661BF433D314D - -Count = 1046 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = 2021C84BC884DC665C3243C822952297A2066F8CF5BA4380AA50A98244165C9432824F03A7C18BFFC987D76BA56D78 - -Count = 1047 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 20F20FF1674EC0DF8A55CE234064C610D1775EEA5A97965818941DFAAE628A43321D3FAB966B3264AE16C757624FF6 - -Count = 1048 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = 4F7CC6B92F63AA2AB8907B52C0998D4CD047B8AE5B46DD1428F1214D34AD9F0F6F924971B9FBD97EC664D9C17C001C - -Count = 1049 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 6034C839C70E77FC0FCED7C7D75B238F4334B925CB43D488531214E787B4787CAD13067F6440FC2163B4C8897BDF58 - -Count = 1050 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = 5E427A3A599AB5CF74AFEBB4E555C69E60F505422E4342BB03CBD08E6B42824863E866072B25D20BFFA832A5EE5C1B - -Count = 1051 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 0005A3730F2091FDA3602E158EBEE93241228374B8C0384BA9EDD94FC39F216C77B8320EFF6C64C73F98CE9B1A68B4 - -Count = 1052 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = B2B2A81D5FB5EA292C0812FCD919233934AB155C12FBABD855BB8AE72554E69D0AEF2CEBFC058BB810316B9329537C - -Count = 1053 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = D96C09271C1D9557D43B72998E41E2D9DF5A44FAABEFC956B4A9D115E08D8A0E1257B2F4BA89ED6A5F6300C734EBCC - -Count = 1054 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 5F5143FA55E240F9571656B9823639F437C859B1D0B5FE4256A9306FEDF5FEB173F52B2FFEC68DF5E3F90614E20791 - -Count = 1055 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = 047BDBAEF519DCC4E65A5DCD7E0C16873A30456EEBD26AD5B0159C4F57453552B415F5AC8BB6B5DBA37F3AFA99CAC4 - -Count = 1056 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 1A9B58442BBD18F7F5EA1B1D243BE2277D08ABAB0A47AC4AB11386BBDCADA00B43508E0187446F06C8AC54CB2D9700 - -Count = 1057 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = -CT = DE27B3C1B43A54C25A724A5F57FC59B59185E2EF4B687C6D4B4CA67EEAD2DAE240737EB5F63221B6B5BA8C1AF1B567F2 - -Count = 1058 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 00 -CT = 998D7701C14BB41DBA91A240DA82606BABF178C9DD868D5A136E17D978EE8EC26FEEA3B851F89609ED89DE2E13FC43AE - -Count = 1059 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 0001 -CT = 51E3F26591E3BE66E2C31CBDD5BF8CD58B6B86C0EB342516F00639A58C43559BF895C379AF7AE332DA52B4A9CAC9C426 - -Count = 1060 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102 -CT = 255ED813C6C9E79E1107AD13AC89CB0464C6F5552762C9676392B48FC32CD42695AF998569D9CF70C01F83A8322B42F6 - -Count = 1061 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 00010203 -CT = 2BB84CB90B56B23C16EA9185A8C3295775EA072BAF4B1A6A196600EC2193871EA51629161BEEED07C1AE88D7E95A571C - -Count = 1062 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 0001020304 -CT = CAB056AA88F110F7178FA1C075813704BEB21AFBAD02DEE10A8E0059D800006A1A036BCEC0BBC71B52E35AEAA1B2C591 - -Count = 1063 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405 -CT = 85FF40FCBFEB16F5AC3B7FEAAAB7C01ADA725607C49E694F0D587F9F979080C9B6CDC4E53A8C638CC43C359D6EF6A0EE - -Count = 1064 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 00010203040506 -CT = 37466ECBEF0CF6C9987924AC51E05E0DC726432BBE6E9B272649BCAC841575588CBC74B6FCC33DC3256D51D269292563 - -Count = 1065 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 0001020304050607 -CT = 066D386BDC3BFDE56B07782DF9F784B30B60770C55B83A6DA5289888831D95AD156817A8DDFCC167CD1499D1DEF08690 - -Count = 1066 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708 -CT = EE35C5ECBEB4F721F4F3F18F7254768B89BDE74746FE757D2F63D8DC6903786A526A2A7799B1272598709B0DDFAE05E4 - -Count = 1067 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 00010203040506070809 -CT = 252EA99EE58EE9DD9FA2DF9E896C85F5E30F98D4BB9421C410FC0FE530E5ECC110D50F5164BC42BEE3CDAE48CE7B049A - -Count = 1068 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A -CT = B0C179AC69E8583FD66B5C00368D4DBD93157CF52B9376E2FC3007B2E11425F23ADB09B4C2183265025169987A7A8B7C - -Count = 1069 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B -CT = 73F5083A228D1FA45045563C2008A4E1B5F91C58B6698AAAEFCDBC5505DB545887519DAE89FDB7F6CF7A2244163777AB - -Count = 1070 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C -CT = 41AAA97377B39758FE9E8606E64416BE91895E95CDAEB22E964550CF4D4E879D0C3DCB42177F0D628543E554B0E3B691 - -Count = 1071 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C0D -CT = 1A926838E49E79330E6AFB76A7B149093C726A9906360B1D6182A4102FDED39BD4F91C303CE514D60A08637527357AA7 - -Count = 1072 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C0D0E -CT = 39D9906849736AFEE9B9EC5851CBBFBF1305686B8BFED99F6DB728DEEBD3B4C38ECB948A7FA6ECDC5012BC2714DC8255 - -Count = 1073 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C0D0E0F -CT = 95A9CC016DB1D54668CCA0DC7BC644852CB7A83E03EA8CBA8F452A89DC3ED33A6569265FEC0A693AFEF3C34E61B3D90E - -Count = 1074 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 307824FCBD38D152551DC44E16D56BC8A620717FA130914E70D00FCD7F2D464585D288467EDAE6815507237DCF62DE99 - -Count = 1075 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 86B3B4DCA59E277541E95D63AF66CFA2B1C7A546D0D47D942C8E730EF528D4B2B8570A516A70075EE50AAE067B183221 - -Count = 1076 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = F60ADC6495BAB5AA38B38FB383B7EECD8E5D87BF4B034312F8DD617F1DC5F2A9C09012D04660D249A6557A79BA6594B8 - -Count = 1077 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 4F48371B6AF752A8C631742E72BC51EB8419B7B8E4387EC130796CA662BB396967249FF5EBF75DB1848564F6953533E1 - -Count = 1078 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = 89BDEA40E36A9D39A59DFE6697D508975CEA58823414029D2D2F4A5351698111B98529EEAFF7E0BD1D41D496CBA99249 - -Count = 1079 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = 2021C84BC884DC665C3243C822952297A2066F8CF5BA4380AA50A98244165C60762DAF943C8621229A87EDAFF317AD3D - -Count = 1080 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 20F20FF1674EC0DF8A55CE234064C610D1775EEA5A97965818941DFAAE628AC0F573A56C4C6B3A1E0F00990BC43CAF64 - -Count = 1081 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = 4F7CC6B92F63AA2AB8907B52C0998D4CD047B8AE5B46DD1428F1214D34AD9F6168DCAF706905F39F4C51C6C3B8D8BB3D - -Count = 1082 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 6034C839C70E77FC0FCED7C7D75B238F4334B925CB43D488531214E787B478268D9DD797F94A6C15657463044BDEF47D - -Count = 1083 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = 5E427A3A599AB5CF74AFEBB4E555C69E60F505422E4342BB03CBD08E6B4282207CDC3D532369A7024A8CCF3BDCA4AD05 - -Count = 1084 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 0005A3730F2091FDA3602E158EBEE93241228374B8C0384BA9EDD94FC39F2183F5B9DAB76BF2357367ED21BE8C835E0C - -Count = 1085 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = B2B2A81D5FB5EA292C0812FCD919233934AB155C12FBABD855BB8AE72554E60CC3730EE1CCF20311132999544635B374 - -Count = 1086 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = D96C09271C1D9557D43B72998E41E2D9DF5A44FAABEFC956B4A9D115E08D8AC92CE5670A2CCBD2259AB93E7D43D39EB7 - -Count = 1087 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 5F5143FA55E240F9571656B9823639F437C859B1D0B5FE4256A9306FEDF5FEF4DB7932F49C4D2F67B002E0ADCE86B66B - -Count = 1088 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = 047BDBAEF519DCC4E65A5DCD7E0C16873A30456EEBD26AD5B0159C4F574535D3E79D8569A7E17BF6FF7080DF6E947B12 - -Count = 1089 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 1A9B58442BBD18F7F5EA1B1D243BE2277D08ABAB0A47AC4AB11386BBDCADA04A47B9E1731E9679190165412401BD62AB - diff --git a/romulus/Implementations/crypto_aead/romulusn1+v13/armcortexm/api.h b/romulus/Implementations/crypto_aead/romulusn1+v13/armcortexm/api.h deleted file mode 100644 index a4aa567..0000000 --- a/romulus/Implementations/crypto_aead/romulusn1+v13/armcortexm/api.h +++ /dev/null @@ -1,5 +0,0 @@ -#define CRYPTO_KEYBYTES 16 -#define CRYPTO_NSECBYTES 0 -#define CRYPTO_NPUBBYTES 16 -#define CRYPTO_ABYTES 16 -#define CRYPTO_NOOVERLAP 1 diff --git a/romulus/Implementations/crypto_aead/romulusn1+v13/armcortexm/crypto_aead.h b/romulus/Implementations/crypto_aead/romulusn1+v13/armcortexm/crypto_aead.h deleted file mode 100644 index 6f4ee42..0000000 --- a/romulus/Implementations/crypto_aead/romulusn1+v13/armcortexm/crypto_aead.h +++ /dev/null @@ -1,13 +0,0 @@ -//API required by the NIST for the LWC competition -int crypto_aead_encrypt(unsigned char *c, unsigned long long *clen, - const unsigned char *m, unsigned long long mlen, - const unsigned char *ad, unsigned long long adlen, - const unsigned char *nsec, const unsigned char *npub, - const unsigned char *k); - -//API required by the NIST for the LWC competition -int crypto_aead_decrypt(unsigned char *m, unsigned long long *outputmlen, - unsigned char *nsec, - const unsigned char *c, unsigned long long clen, - const unsigned char *ad, unsigned long long adlen, - const unsigned char *npub, const unsigned char *k); diff --git a/romulus/Implementations/crypto_aead/romulusn1+v13/armcortexm/encrypt.c b/romulus/Implementations/crypto_aead/romulusn1+v13/armcortexm/encrypt.c deleted file mode 100644 index 8b819f8..0000000 --- a/romulus/Implementations/crypto_aead/romulusn1+v13/armcortexm/encrypt.c +++ /dev/null @@ -1,261 +0,0 @@ -#include "skinny128.h" -#include "romulus.h" -#include - -//Encryption and authentication using Romulus-N1 -int crypto_aead_encrypt - (unsigned char *c, unsigned long long *clen, - const unsigned char *m, unsigned long long mlen, - const unsigned char *ad, unsigned long long adlen, - const unsigned char *nsec, - const unsigned char *npub, - const unsigned char *k) { - - u32 tmp; - skinny_128_384_tks tks; - u8 state[BLOCKBYTES], pad[BLOCKBYTES]; - (void)nsec; - - // ----------------- Initialization ----------------- - *clen = mlen + TAGBYTES; - memset(tks.tk1, 0x00, KEYBYTES); - memset(state, 0x00, BLOCKBYTES); - tks.tk1[0] = 0x01; // Init 56-bit LFSR counter - // ----------------- Initialization ----------------- - - // ----------------- Process the associated data ----------------- - if (adlen == 0) { // Handle the special case of no AD - UPDATE_CTR(tks.tk1); - SET_DOMAIN(tks, 0x1A); - tkschedule_lfsr(tks.rtk, npub, k, SKINNY128_384_ROUNDS); - tkschedule_perm(tks.rtk); - tkschedule_perm_tk1(tks.rtk1, tks.tk1); - skinny128_384(state, tks.rtk, state, tks.rtk1); - } else { // Process double blocks but the last - SET_DOMAIN(tks, 0x08); - while (adlen > 2*BLOCKBYTES) { - UPDATE_CTR(tks.tk1); - XOR_BLOCK(state, state, ad); - tkschedule_lfsr(tks.rtk, ad + BLOCKBYTES, k, SKINNY128_384_ROUNDS); - tkschedule_perm(tks.rtk); - tkschedule_perm_tk1(tks.rtk1, tks.tk1); - skinny128_384(state, tks.rtk, state, tks.rtk1); - UPDATE_CTR(tks.tk1); - ad += 2*BLOCKBYTES; - adlen -= 2*BLOCKBYTES; - } - // Pad and process the left-over blocks - UPDATE_CTR(tks.tk1); - if (adlen == 2*BLOCKBYTES) { // Left-over complete double block - XOR_BLOCK(state, state, ad); - tkschedule_lfsr(tks.rtk, ad + BLOCKBYTES, k, SKINNY128_384_ROUNDS); - tkschedule_perm(tks.rtk); - tkschedule_perm_tk1(tks.rtk1, tks.tk1); - skinny128_384(state, tks.rtk, state, tks.rtk1); - UPDATE_CTR(tks.tk1); - SET_DOMAIN(tks, 0x18); - } else if (adlen > BLOCKBYTES) { // Left-over partial double block - adlen -= BLOCKBYTES; - XOR_BLOCK(state, state, ad); - memcpy(pad, ad + BLOCKBYTES, adlen); - memset(pad + adlen, 0x00, 15 - adlen); - pad[15] = adlen; - tkschedule_lfsr(tks.rtk, pad, k, SKINNY128_384_ROUNDS); - tkschedule_perm(tks.rtk); - tkschedule_perm_tk1(tks.rtk1, tks.tk1); - skinny128_384(state, tks.rtk, state, tks.rtk1); - UPDATE_CTR(tks.tk1); - SET_DOMAIN(tks, 0x1A); - } else if (adlen == BLOCKBYTES) { // Left-over complete single block - XOR_BLOCK(state, state, ad); - SET_DOMAIN(tks, 0x18); - } else { // Left-over partial single block - for(int i = 0; i < (int)adlen; i++) - state[i] ^= ad[i]; - state[15] ^= adlen; // Padding - SET_DOMAIN(tks, 0x1A); - } - tkschedule_lfsr(tks.rtk, npub, k, SKINNY128_384_ROUNDS); - tkschedule_perm(tks.rtk); - tkschedule_perm_tk1(tks.rtk1, tks.tk1); - skinny128_384(state, tks.rtk, state, tks.rtk1); - } - // ----------------- Process the associated data ----------------- - - // ----------------- Process the plaintext ----------------- - memset(tks.tk1, 0x00, KEYBYTES/2); - tks.tk1[0] = 0x01; // Init the 56-bit LFSR counter - if (mlen == 0) { - UPDATE_CTR(tks.tk1); - SET_DOMAIN(tks, 0x15); - tkschedule_perm_tk1(tks.rtk1, tks.tk1); - skinny128_384(state, tks.rtk, state, tks.rtk1); - } else { // Process all blocks except the last - SET_DOMAIN(tks, 0x04); - while (mlen > BLOCKBYTES) { - RHO(state,c,m); - UPDATE_CTR(tks.tk1); - tkschedule_perm_tk1(tks.rtk1, tks.tk1); - skinny128_384(state, tks.rtk, state, tks.rtk1); - c += BLOCKBYTES; - m += BLOCKBYTES; - mlen -= BLOCKBYTES; - } - // Pad and process the last block - UPDATE_CTR(tks.tk1); - if (mlen < BLOCKBYTES) { // Last message single block is full - for(int i = 0; i < (int)mlen; i++) { - tmp = m[i]; // Use of tmp variable in case c = m - c[i] = m[i] ^ (state[i] >> 1) ^ (state[i] & 0x80) ^ (state[i] << 7); - state[i] ^= (u8)tmp; - } - state[15] ^= (u8)mlen; // Padding - SET_DOMAIN(tks, 0x15); - } else { // Last message single block is partial - RHO(state,c,m); - SET_DOMAIN(tks, 0x14); - } - tkschedule_perm_tk1(tks.rtk1, tks.tk1); - skinny128_384(state, tks.rtk, state, tks.rtk1); - c += mlen; - } - // ----------------- Process the plaintext ----------------- - - // ----------------- Generate the tag ----------------- - G(c,state); - // ----------------- Generate the tag ----------------- - - return 0; -} - - -//Decryption and tag verification using Romulus-N1 -int crypto_aead_decrypt - (unsigned char *m, unsigned long long *mlen, - unsigned char *nsec, - const unsigned char *c, unsigned long long clen, - const unsigned char *ad, unsigned long long adlen, - const unsigned char *npub, - const unsigned char *k) { - - u32 tmp; - skinny_128_384_tks tks; - u8 state[BLOCKBYTES], pad[BLOCKBYTES]; - (void)nsec; - - if (clen < TAGBYTES) - return -1; - - // ----------------- Initialization ----------------- - *mlen = clen - TAGBYTES; - memset(tks.tk1, 0x00, KEYBYTES); - memset(state, 0x00, BLOCKBYTES); - tks.tk1[0] = 0x01; // Init 56-bit LFSR counter - // ----------------- Initialization ----------------- - - // ----------------- Process the associated data ----------------- - if (adlen == 0) { // Handle the special case of no AD - UPDATE_CTR(tks.tk1); - SET_DOMAIN(tks, 0x1A); - tkschedule_lfsr(tks.rtk, npub, k, SKINNY128_384_ROUNDS); - tkschedule_perm(tks.rtk); - tkschedule_perm_tk1(tks.rtk1, tks.tk1); - skinny128_384(state, tks.rtk, state, tks.rtk1); - } else { // Process double blocks except the last - SET_DOMAIN(tks, 0x08); - while (adlen > 2*BLOCKBYTES) { - UPDATE_CTR(tks.tk1); - XOR_BLOCK(state, state, ad); - tkschedule_lfsr(tks.rtk, ad + BLOCKBYTES, k, SKINNY128_384_ROUNDS); - tkschedule_perm(tks.rtk); - tkschedule_perm_tk1(tks.rtk1, tks.tk1); - skinny128_384(state, tks.rtk, state, tks.rtk1); - UPDATE_CTR(tks.tk1); - ad += 2*BLOCKBYTES; - adlen -= 2*BLOCKBYTES; - } - // Pad and process the left-over blocks - UPDATE_CTR(tks.tk1); - if (adlen == 2*BLOCKBYTES) { // Left-over complete double block - XOR_BLOCK(state, state, ad); - tkschedule_lfsr(tks.rtk, ad + BLOCKBYTES, k, SKINNY128_384_ROUNDS); - tkschedule_perm(tks.rtk); - tkschedule_perm_tk1(tks.rtk1, tks.tk1); - skinny128_384(state, tks.rtk, state, tks.rtk1); - UPDATE_CTR(tks.tk1); - SET_DOMAIN(tks, 0x18); - } else if (adlen > BLOCKBYTES) { // Left-over partial double block - adlen -= BLOCKBYTES; - XOR_BLOCK(state, state, ad); - memcpy(pad, ad + BLOCKBYTES, adlen); - memset(pad + adlen, 0x00, 15 - adlen); - pad[15] = adlen; - tkschedule_lfsr(tks.rtk, pad, k, SKINNY128_384_ROUNDS); - tkschedule_perm(tks.rtk); - tkschedule_perm_tk1(tks.rtk1, tks.tk1); - skinny128_384(state, tks.rtk, state, tks.rtk1); - UPDATE_CTR(tks.tk1); - SET_DOMAIN(tks, 0x1A); - } else if (adlen == BLOCKBYTES) { // Left-over complete single block - XOR_BLOCK(state, state, ad); - SET_DOMAIN(tks, 0x18); - } else { // Left-over partial single block - for(int i = 0; i < (int)adlen; i++) - state[i] ^= ad[i]; - state[15] ^= adlen; // Padding - SET_DOMAIN(tks, 0x1A); - } - tkschedule_lfsr(tks.rtk, npub, k, SKINNY128_384_ROUNDS); - tkschedule_perm(tks.rtk); - tkschedule_perm_tk1(tks.rtk1, tks.tk1); - skinny128_384(state, tks.rtk, state, tks.rtk1); - } - // ----------------- Process the associated data ----------------- - - // ----------------- Process the ciphertext ----------------- - clen -= TAGBYTES; - memset(tks.tk1, 0x00, KEYBYTES/2); - tks.tk1[0] = 0x01; // Init the 56-bit LFSR counter - if (clen == 0) { - UPDATE_CTR(tks.tk1); - SET_DOMAIN(tks, 0x15); - tkschedule_perm_tk1(tks.rtk1, tks.tk1); - skinny128_384(state, tks.rtk, state, tks.rtk1); - } else { // Process all blocks except the last - SET_DOMAIN(tks, 0x04); - while (clen > BLOCKBYTES) { - RHO_INV(state,c,m); - UPDATE_CTR(tks.tk1); - tkschedule_perm_tk1(tks.rtk1, tks.tk1); - skinny128_384(state, tks.rtk, state, tks.rtk1); - c += BLOCKBYTES; - m += BLOCKBYTES; - clen -= BLOCKBYTES; - } - // Pad and process the last block - UPDATE_CTR(tks.tk1); - if (clen < BLOCKBYTES) { // Last message double block is partial - for(int i = 0; i < (int)clen; i++) { - m[i] = c[i] ^ (state[i] >> 1) ^ (state[i] & 0x80) ^ (state[i] << 7); - state[i] ^= m[i]; - } - state[15] ^= (u8)clen; // Padding - SET_DOMAIN(tks, 0x15); - } else { // Last message double block is full - RHO_INV(state,c,m); - SET_DOMAIN(tks, 0x14); - } - tkschedule_perm_tk1(tks.rtk1, tks.tk1); - skinny128_384(state, tks.rtk, state, tks.rtk1); - } - // ----------------- Process the plaintext ----------------- - - // ----------------- Generate and check the tag ----------------- - G(state,state); - tmp = 0; - for(int i = 0; i < TAGBYTES; i++) - tmp |= state[i] ^ c[clen+i]; // Constant-time tag comparison - // ----------------- Generate and check the tag ----------------- - - return tmp; -} \ No newline at end of file diff --git a/romulus/Implementations/crypto_aead/romulusn1+v13/armcortexm/romulus.h b/romulus/Implementations/crypto_aead/romulusn1+v13/armcortexm/romulus.h deleted file mode 100644 index 4c0e141..0000000 --- a/romulus/Implementations/crypto_aead/romulusn1+v13/armcortexm/romulus.h +++ /dev/null @@ -1,68 +0,0 @@ -#ifndef ROMULUSN1_H_ -#define ROMULUSN1_H_ - -#include "skinny128.h" - -typedef unsigned char u8; -typedef unsigned int u32; -typedef struct { - u8 tk1[16]; //to manipulate tk1 in a byte-wise manner - u32 rtk1[32]; //to avoid recomputation of the tk schedule - u32 rtk[4*SKINNY128_384_ROUNDS];//all round tweakeys -} skinny_128_384_tks; - -#define TAGBYTES 16 -#define KEYBYTES 16 -#define BLOCKBYTES 16 - -#define SET_DOMAIN(tks, domain) ((tks).tk1[7] = (domain)) - -//G as defined in the Romulus specification in a 32-bit word-wise manner -#define G(x,y) ({ \ - tmp = ((u32*)(y))[0]; \ - ((u32*)(x))[0] = (tmp >> 1 & 0x7f7f7f7f) ^ ((tmp ^ (tmp << 7)) & 0x80808080); \ - tmp = ((u32*)(y))[1]; \ - ((u32*)(x))[1] = (tmp >> 1 & 0x7f7f7f7f) ^ ((tmp ^ (tmp << 7)) & 0x80808080); \ - tmp = ((u32*)(y))[2]; \ - ((u32*)(x))[2] = (tmp >> 1 & 0x7f7f7f7f) ^ ((tmp ^ (tmp << 7)) & 0x80808080); \ - tmp = ((u32*)(y))[3]; \ - ((u32*)(x))[3] = (tmp >> 1 & 0x7f7f7f7f) ^ ((tmp ^ (tmp << 7)) & 0x80808080); \ -}) - -//update the counter in tk1 in a 32-bit word-wise manner -#define UPDATE_CTR(tk1) ({ \ - tmp = ((u32*)(tk1))[1]; \ - ((u32*)(tk1))[1] = (tmp << 1) & 0x00ffffff; \ - ((u32*)(tk1))[1] |= (((u32*)(tk1))[0] >> 31); \ - ((u32*)(tk1))[1] |= tmp & 0xff000000; \ - ((u32*)(tk1))[0] <<= 1; \ - if ((tmp >> 23) & 0x01) \ - ((u32*)(tk1))[0] ^= 0x95; \ -}) - -//x <- y ^ z for 128-bit blocks -#define XOR_BLOCK(x,y,z) ({ \ - ((u32*)(x))[0] = ((u32*)(y))[0] ^ ((u32*)(z))[0]; \ - ((u32*)(x))[1] = ((u32*)(y))[1] ^ ((u32*)(z))[1]; \ - ((u32*)(x))[2] = ((u32*)(y))[2] ^ ((u32*)(z))[2]; \ - ((u32*)(x))[3] = ((u32*)(y))[3] ^ ((u32*)(z))[3]; \ -}) - - -//Rho as defined in the Romulus specification -//use pad as a tmp variable in case y = z -#define RHO(x,y,z) ({ \ - G(pad,x); \ - XOR_BLOCK(y, pad, z); \ - XOR_BLOCK(x, x, z); \ -}) - -//Rho inverse as defined in the Romulus specification -//use pad as a tmp variable in case y = z -#define RHO_INV(x, y, z) ({ \ - G(pad, x); \ - XOR_BLOCK(z, pad, y); \ - XOR_BLOCK(x, x, z); \ -}) - -#endif // ROMULUSN1_H_ \ No newline at end of file diff --git a/romulus/Implementations/crypto_aead/romulusn1+v13/armcortexm/skinny128.h b/romulus/Implementations/crypto_aead/romulusn1+v13/armcortexm/skinny128.h deleted file mode 100644 index 7f53b7d..0000000 --- a/romulus/Implementations/crypto_aead/romulusn1+v13/armcortexm/skinny128.h +++ /dev/null @@ -1,15 +0,0 @@ -#ifndef SKINNY128_H_ -#define SKINNY128_H_ - -typedef unsigned char u8; -typedef unsigned int u32; - -#define SKINNY128_384_ROUNDS 40 - -extern void skinny128_384(u8* ctext, const u32* tk, const u8* ptext, const u32* rtk1); -extern void tkschedule_lfsr(u32* rtk, const u8* tk2, const u8* tk3, const int rounds); -extern void tkschedule_perm(u32* rtk); -extern void tkschedule_perm_tk1(u32* rtk1, const u8* tk1); - - -#endif // SKINNY128_H_ \ No newline at end of file diff --git a/romulus/Implementations/crypto_aead/romulusn1+v13/armcortexm/skinny128.s b/romulus/Implementations/crypto_aead/romulusn1+v13/armcortexm/skinny128.s deleted file mode 100644 index 2f938a0..0000000 --- a/romulus/Implementations/crypto_aead/romulusn1+v13/armcortexm/skinny128.s +++ /dev/null @@ -1,1706 +0,0 @@ -/******************************************************************************* -* ARM assembly implementation of fixsliced SKINNY-128-384. -* -* For more details, see the paper at: https:// -* -* @author Alexandre Adomnicai, Nanyang Technological University, -* alexandre.adomnicai@ntu.edu.sg -* -* @date May 2020 -*******************************************************************************/ - -.syntax unified -.thumb - -/******************************************************************************* -* applies P^2 on the tweakey state in a bitsliced manner -*******************************************************************************/ -.align 2 -p2: - movw r1, #0xcc00 - movt r1, #0xcc00 //r1 <- 0xcc00cc00 - movw r10, #0xcc00 - movt r10, #0x0033 //r10<- 0xcc000033 - and r11, r1, r6, ror #14 - bfi r11, r6, #16, #8 - and r12, r6, #0xcc000000 - orr r11, r11, r12, lsr #2 - and r12, r10, r6 - orr r11, r11, r12, lsr #8 - and r12, r6, #0x00cc0000 - orr r6, r11, r12, lsr #18 - and r11, r1, r7, ror #14 - bfi r11, r7, #16, #8 - and r12, r7, #0xcc000000 - orr r11, r11, r12, lsr #2 - and r12, r10, r7 - orr r11, r11, r12, lsr #8 - and r12, r7, #0x00cc0000 - orr r7, r11, r12, lsr #18 - and r11, r1, r8, ror #14 - bfi r11, r8, #16, #8 - and r12, r8, #0xcc000000 - orr r11, r11, r12, lsr #2 - and r12, r10, r8 - orr r11, r11, r12, lsr #8 - and r12, r8, #0x00cc0000 - orr r8, r11, r12, lsr #18 - and r11, r1, r9, ror #14 - bfi r11, r9, #16, #8 - and r12, r9, #0xcc000000 - orr r11, r11, r12, lsr #2 - and r12, r10, r9 - orr r11, r11, r12, lsr #8 - and r12, r9, #0x00cc0000 - orr r9, r11, r12, lsr #18 - bx lr - -/******************************************************************************* -* applies P^4 on the tweakey state in a bitsliced manner -*******************************************************************************/ -.align 2 -p4: - str.w r14, [sp] //store r14 on the stack - movw r14, #0x00cc - movt r14, #0xcc00 //r14<- 0xcc0000cc - movw r12, #0xcc00 - movt r12, #0x3300 //r12<- 0x3300cc00 - movw r11, #0x00cc - movt r11, #0x00cc //r11<- 0x00cc00cc - and r10, r14, r6, ror #22 - and r1, r12, r6, ror #16 - orr r10, r10, r1 - and r1, r6, r11 - orr r10, r10, r1, lsr #2 - movw r1, #0xcc33 //r1 <- 0x0000cc33 - and r6, r6, r1 - orr r6, r10, r6, ror #24 - and r10, r14, r7, ror #22 - and r1, r12, r7, ror #16 - orr r10, r10, r1 - and r1, r7, r11 - orr r10, r10, r1, lsr #2 - movw r1, #0xcc33 //r1 <- 0x0000cc33 - and r7, r7, r1 - orr r7, r10, r7, ror #24 - and r10, r14, r8, ror #22 - and r1, r12, r8, ror #16 - orr r10, r10, r1 - and r1, r8, r11 - orr r10, r10, r1, lsr #2 - movw r1, #0xcc33 //r1 <- 0x0000cc33 - and r8, r8, r1 - orr r8, r10, r8, ror #24 - and r10, r14, r9, ror #22 - ldr.w r14, [sp] //restore r14 - and r12, r12, r9, ror #16 - orr r10, r10, r12 - and r12, r9, r11 - orr r10, r10, r12, lsr #2 - movw r12, #0xcc33 //r1 <- 0x0000cc33 - and r9, r9, r12 - orr r9, r10, r9, ror #24 - bx lr - -/******************************************************************************* -* applies P^6 on the tweakey state in a bitsliced manner -*******************************************************************************/ -.align 2 -p6: - movw r1, #0x3333 //r1 <- 0x00003333 - movw r12, #0x00cc - movt r12, #0x3300 //r12<- 0x330000cc - and r10, r6, r1, ror #8 // --- permute r6 6 times - and r11, r12, r6, ror #24 - orr r11, r11, r10, ror #6 - and r10, r1, r6, ror #10 - orr r11, r11, r10 - and r10, r6, #0x000000cc - orr r11, r11, r10, lsl #14 - and r10, r6, #0x00003300 - orr r6, r11, r10, lsl #2 // permute r6 6 times --- - and r10, r7, r1, ror #8 // --- permute r7 6 times - and r11, r12, r7, ror #24 - orr r11, r11, r10, ror #6 - and r10, r1, r7, ror #10 - orr r11, r11, r10 - and r10, r7, #0x000000cc - orr r11, r11, r10, lsl #14 - and r10, r7, #0x00003300 - orr r7, r11, r10, lsl #2 // permute r7 6 times --- - and r10, r8, r1, ror #8 // --- permute r8 6 times - and r11, r12, r8, ror #24 - orr r11, r11, r10, ror #6 - and r10, r1, r8, ror #10 - orr r11, r11, r10 - and r10, r8, #0x000000cc - orr r11, r11, r10, lsl #14 - and r10, r8, #0x00003300 - orr r8, r11, r10, lsl #2 // permute r8 6 times --- - and r10, r9, r1, ror #8 // --- permute r9 6 times - and r11, r12, r9, ror #24 - orr r11, r11, r10, ror #6 - and r10, r1, r9, ror #10 - orr r11, r11, r10 - and r10, r9, #0x000000cc - orr r11, r11, r10, lsl #14 - and r10, r9, #0x00003300 // permute r9 6 times --- - orr r9, r11, r10, lsl #2 - bx lr - -/******************************************************************************* -* applies P^8 on the tweakey state in a bitsliced manner -*******************************************************************************/ -.align 2 -p8: - movw r12, #0x3333 //r12<- 0x00003333 - movw r1, #0x0000 - movt r1, #0x33cc //r1 <- 0x33cc0000 - and r10, r6, r1 // --- permute r6 8 times - and r11, r1, r6, ror #8 - orr r11, r11, r10, ror #24 - and r10, r6, r12, lsl #2 - orr r11, r11, r10, ror #26 - and r10, r6, r12, lsl #8 - orr r6, r11, r10, lsr #6 // permute r6 8 times --- - and r10, r7, r1 // --- permute r7 8 times - and r11, r1, r7, ror #8 - orr r11, r11, r10, ror #24 - and r10, r7, r12, lsl #2 - orr r11, r11, r10, ror #26 - and r10, r7, r12, lsl #8 - orr r7, r11, r10, lsr #6 // permute r7 8 times --- - and r10, r8, r1 // --- permute r8 8 times - and r11, r1, r8, ror #8 - orr r11, r11, r10, ror #24 - and r10, r8, r12, lsl #2 - orr r11, r11, r10, ror #26 - and r10, r8, r12, lsl #8 - orr r8, r11, r10, lsr #6 // permute r8 8 times --- - and r10, r9, r1 // --- permute r9 8 times - and r11, r1, r9, ror #8 - orr r11, r11, r10, ror #24 - and r10, r9, r12, lsl #2 - orr r11, r11, r10, ror #26 - and r10, r9, r12, lsl #8 - orr r9, r11, r10, lsr #6 // permute r9 8 times --- - bx lr - -/******************************************************************************* -* applies P^10 on the tweakey state in a bitsliced manner -*******************************************************************************/ -.align 2 -p10: - movw r12, #0x0033 - movt r12, #0x3300 //r12<- 0x33000033 - movw r1, #0xcc33 //r1 <- 0x0000cc33 - and r10, r6, r1, ror #8 // --- permute r6 10 times - and r11, r12, r6, ror #26 - orr r11, r11, r10, ror #8 - and r10, r6, r12, ror #24 - orr r11, r11, r10, ror #22 - and r10, r6, #0x00330000 - orr r11, r11, r10, lsr #14 - and r10, r6, #0x0000cc00 - orr r6, r11, r10, lsr #2 // permute r6 10 times --- - and r10, r7, r1, ror #8 // --- permute r6 10 times - and r11, r12, r7, ror #26 - orr r11, r11, r10, ror #8 - and r10, r7, r12, ror #24 - orr r11, r11, r10, ror #22 - and r10, r7, #0x00330000 - orr r11, r11, r10, lsr #14 - and r10, r7, #0x0000cc00 - orr r7, r11, r10, lsr #2 // permute r6 10 times --- - and r10, r8, r1, ror #8 // --- permute r6 10 times - and r11, r12, r8, ror #26 - orr r11, r11, r10, ror #8 - and r10, r8, r12, ror #24 - orr r11, r11, r10, ror #22 - and r10, r8, #0x00330000 - orr r11, r11, r10, lsr #14 - and r10, r8, #0x0000cc00 - orr r8, r11, r10, lsr #2 // permute r6 10 times --- - and r10, r9, r1, ror #8 // --- permute r6 10 times - and r11, r12, r9, ror #26 - orr r11, r11, r10, ror #8 - and r10, r9, r12, ror #24 - orr r11, r11, r10, ror #22 - and r10, r9, #0x00330000 - orr r11, r11, r10, lsr #14 - and r10, r9, #0x0000cc00 - orr r9, r11, r10, lsr #2 // permute r6 10 times --- - bx lr - -/******************************************************************************* -* applies P^12 on the tweakey state in a bitsliced manner -*******************************************************************************/ -.align 2 -p12: - str.w r14, [sp] //store r14 on the stack - movw r14, #0xcc33 //r14<- 0x0000cc33 - movw r12, #0x00cc - movt r12, #0x00cc //r12<- 0x00cc00cc - movw r1, #0x3300 - movt r1, #0xcc00 //r1 <- 0xcc003300 - and r10, r14, r6, ror #8 // --- permute r6 12 times - and r11, r12, r6, ror #30 - orr r11, r11, r10 - and r10, r1, r6, ror #16 - orr r11, r11, r10 - movw r10, #0xcccc //r10<- 0x0000cccc - and r10, r6, r10, ror #8 - orr r6, r11, r10, ror #10 // permute r6 12 times --- - and r10, r14, r7, ror #8 // --- permute r7 12 times - and r11, r12, r7, ror #30 - orr r11, r11, r10 - and r10, r1, r7, ror #16 - orr r11, r11, r10 - movw r10, #0xcccc //r10<- 0x0000cccc - and r10, r7, r10, ror #8 - orr r7, r11, r10, ror #10 // permute r7 12 times --- - and r10, r14, r8, ror #8 // --- permute r8 12 times - and r11, r12, r8, ror #30 - orr r11, r11, r10 - and r10, r1, r8, ror #16 - orr r11, r11, r10 - movw r10, #0xcccc //r10<- 0x0000cccc - and r10, r8, r10, ror #8 - orr r8, r11, r10, ror #10 // permute r8 12 times --- - and r10, r14, r9, ror #8 // --- permute r9 12 times - and r11, r12, r9, ror #30 - orr r11, r11, r10 - and r10, r1, r9, ror #16 - ldr.w r14, [sp] - orr r11, r11, r10 - movw r10, #0xcccc //r10<- 0x0000cccc - and r10, r9, r10, ror #8 - orr r9, r11, r10, ror #10 // permute r9 12 times --- - bx lr - -/******************************************************************************* -* applies P^14 on the tweakey state in a bitsliced manner -*******************************************************************************/ -.align 2 -p14: - movw r1, #0xcc00 - movt r1, #0x0033 //r1 <- 0x0033cc00 - movw r12, #0xcc00 - movt r12, #0xcc00 //r12<- 0x33003300 - and r10, r1, r6, ror #24 // --- permute r6 14 times - and r11, r6, #0x00000033 - orr r11, r10, r11, ror #14 - and r10, r6, #0x33000000 - orr r11, r11, r10, ror #30 - and r10, r6, #0x00ff0000 - orr r11, r11, r10, ror #16 - and r10, r6, r12 - orr r6, r11, r10, ror #18 // permute r6 14 times --- - and r10, r1, r7, ror #24 // --- permute r7 14 times - and r11, r7, #0x00000033 - orr r11, r10, r11, ror #14 - and r10, r7, #0x33000000 - orr r11, r11, r10, ror #30 - and r10, r7, #0x00ff0000 - orr r11, r11, r10, ror #16 - and r10, r7, r12 - orr r7, r11, r10, ror #18 // permute r7 14 times --- - and r10, r1, r8, ror #24 // --- permute r8 14 times - and r11, r8, #0x00000033 - orr r11, r10, r11, ror #14 - and r10, r8, #0x33000000 - orr r11, r11, r10, ror #30 - and r10, r8, #0x00ff0000 - orr r11, r11, r10, ror #16 - and r10, r8, r12 - orr r8, r11, r10, ror #18 // permute r8 14 times --- - and r10, r1, r9, ror #24 // --- permute r9 14 times - and r11, r9, #0x00000033 - orr r11, r10, r11, ror #14 - and r10, r9, #0x33000000 - orr r11, r11, r10, ror #30 - and r10, r9, #0x00ff0000 - orr r11, r11, r10, ror #16 - and r10, r9, r12 - orr r9, r11, r10, ror #18 // permute r9 14 times --- - bx lr - -.align 2 -packing: - eor r12, r2, r2, lsr #3 - and r12, r12, r10 - eor r2, r2, r12 - eor r2, r2, r12, lsl #3 //SWAPMOVE(r2, r2, 0x0a0a0a0a, 3) - eor r12, r3, r3, lsr #3 - and r12, r12, r10 - eor r3, r3, r12 - eor r3, r3, r12, lsl #3 //SWAPMOVE(r3, r3, 0x0a0a0a0a, 3) - eor r12, r4, r4, lsr #3 - and r12, r12, r10 - eor r4, r4, r12 - eor r4, r4, r12, lsl #3 //SWAPMOVE(r4, r4, 0x0a0a0a0a, 3) - eor r12, r5, r5, lsr #3 - and r12, r12, r10 - eor r5, r5, r12 - eor r5, r5, r12, lsl #3 //SWAPMOVE(r5, r5, 0x0a0a0a0a, 3) - eor r12, r2, r4, lsr #2 - and r12, r12, r11 - eor r2, r2, r12 - eor r4, r4, r12, lsl #2 //SWAPMOVE(r4, r2, 0x30303030, 2) - eor r12, r2, r3, lsr #4 - and r12, r12, r11, lsr #2 - eor r2, r2, r12 - eor r3, r3, r12, lsl #4 //SWAPMOVE(r3, r2, 0x0c0c0c0c, 4) - eor r12, r2, r5, lsr #6 - and r12, r12, r11, lsr #4 - eor r2, r2, r12 - eor r5, r5, r12, lsl #6 //SWAPMOVE(r5, r2, 0x03030303, 6) - eor r12, r4, r3, lsr #2 - and r12, r12, r11, lsr #2 - eor r4, r4, r12 - eor r3, r3, r12, lsl #2 //SWAPMOVE(r3, r4, 0x0c0c0c0c, 2) - eor r12, r4, r5, lsr #4 - and r12, r12, r11, lsr #4 - eor r4, r4, r12 - eor r5, r5, r12, lsl #4 //SWAPMOVE(r5, r4, 0x03030303, 4) - eor r12, r3, r5, lsr #2 - and r12, r12, r11, lsr #4 - eor r3, r3, r12 - eor r5, r5, r12, lsl #2 //SWAPMOVE(r5, r3, 0x03030303, 2) - bx lr - -/****************************************************************************** -* Compute LFSR2(TK2) ^ LFSR3(TK3) for all rounds. -* Performing both at the same time allows to save some memory accesses. -******************************************************************************/ -@ void tkschedule_lfsr(u32* tk, const u8* tk2, const u8* tk3, const int rounds) -.global tkschedule_lfsr -.type tkschedule_lfsr,%function -.align 2 -tkschedule_lfsr: - push {r0-r12, r14} - ldr.w r3, [r1, #8] //load tk2 (3rd word) - ldr.w r4, [r1, #4] //load tk2 (2nd word) - ldr.w r5, [r1, #12] //load tk2 (4th word) - ldr.w r12, [r1] //load tk2 (1st word) - mov r1, r2 //move tk3 address in r1 - mov r2, r12 //move 1st tk2 word in r2 - movw r10, #0x0a0a - movt r10, #0x0a0a //r10 <- 0x0a0a0a0a - movw r11, #0x3030 - movt r11, #0x3030 //r7 <- 0x30303030 - bl packing //pack tk2 - mov r6, r2 //move tk2 from r2-r5 to r6-r9 - mov r7, r3 //move tk2 from r2-r5 to r6-r9 - mov r8, r4 //move tk2 from r2-r5 to r6-r9 - mov r9, r5 //move tk2 from r2-r5 to r6-r9 - ldr.w r3, [r1, #8] //load tk3 (3rd word) - ldr.w r4, [r1, #4] //load tk3 (2nd word) - ldr.w r5, [r1, #12] //load tk3 (4th) word) - ldr.w r2, [r1] //load tk3 (1st) word) - bl packing //pack tk3 - eor r10, r10, r10, lsl #4 //r10<- 0xaaaaaaaa - ldr.w r1, [sp, #12] //load loop counter in r1 - eor r11, r2, r6 //tk2 ^ tk3 (1st word) - eor r12, r3, r7 //tk2 ^ tk3 (2nd word) - strd r11, r12, [r0], #8 //store in tk - eor r11, r4, r8 //tk2 ^ tk3 (3rd word) - eor r12, r5, r9 //tk2 ^ tk3 (4th word) - strd r11, r12, [r0], #8 //store in tk - loop: - and r12, r8, r10 // --- apply LFSR2 to tk2 - eor r12, r12, r6 - and r14, r10, r12, lsl #1 - and r12, r12, r10 - orr r6, r14, r12, lsr #1 // apply LFSR2 to tk2 --- - and r12, r3, r10 // --- apply LFSR3 to tk3 - eor r12, r5, r12, lsr #1 - and r14, r10, r12, lsl #1 - and r12, r12, r10 - orr r5, r14, r12, lsr #1 // apply LFSR3 to tk3 --- - eor r11, r5, r7 //tk2 ^ tk3 (1st word) - eor r12, r2, r8 //tk2 ^ tk3 (2nd word) - strd r11, r12, [r0], #8 //store in tk - eor r11, r3, r9 //tk2 ^ tk3 (3rd word) - eor r12, r4, r6 //tk2 ^ tk3 (4th word) - strd r11, r12, [r0], #24 //store in tk - and r12, r9, r10 // --- apply LFSR2 to tk2 - eor r12, r12, r7 - and r14, r10, r12, lsl #1 - and r12, r12, r10 - orr r7, r14, r12, lsr #1 // apply LFSR2 to tk2 --- - and r12, r2, r10 // --- apply LFSR3 to tk3 - eor r12, r4, r12, lsr #1 - and r14, r10, r12, lsl #1 - and r12, r12, r10 - orr r4, r14, r12, lsr #1 // apply LFSR3 to tk3 --- - eor r11, r4, r8 //tk2 ^ tk3 (1st word) - eor r12, r5, r9 //tk2 ^ tk3 (2nd word) - strd r11, r12, [r0], #8 //store in tk - eor r11, r2, r6 //tk2 ^ tk3 (3rd word) - eor r12, r3, r7 //tk2 ^ tk3 (4th word) - strd r11, r12, [r0], #24 //store in tk - and r12, r6, r10 // --- apply LFSR2 to tk2 - eor r12, r12, r8 - and r14, r10, r12, lsl #1 - and r12, r12, r10 - orr r8, r14, r12, lsr #1 // apply LFSR2 to tk2 --- - and r12, r5, r10 // --- apply LFSR3 to tk3 - eor r12, r3, r12, lsr #1 - and r14, r10, r12, lsl #1 - and r12, r12, r10 - orr r3, r14, r12, lsr #1 // apply LFSR3 to tk3 --- - eor r11, r3, r9 //tk2 ^ tk3 (1st word) - eor r12, r4, r6 //tk2 ^ tk3 (2nd word) - strd r11, r12, [r0], #8 //store in tk - eor r11, r5, r7 //tk2 ^ tk3 (3rd word) - eor r12, r2, r8 //tk2 ^ tk3 (4th word) - strd r11, r12, [r0], #24 //store in tk - and r12, r7, r10 // --- apply LFSR2 to tk2 - eor r12, r12, r9 - and r14, r10, r12, lsl #1 - and r12, r12, r10 - orr r9, r14, r12, lsr #1 // apply LFSR2 to tk2 --- - and r12, r4, r10 // --- apply LFSR3 to tk3 - eor r12, r2, r12, lsr #1 - and r14, r10, r12, lsl #1 - and r12, r12, r10 - orr r2, r14, r12, lsr #1 // apply LFSR3 to tk3 --- - eor r11, r2, r6 //tk2 ^ tk3 (1st word) - eor r12, r3, r7 //tk2 ^ tk3 (2nd word) - strd r11, r12, [r0], #8 //store in tk - eor r11, r4, r8 //tk2 ^ tk3 (3rd word) - eor r12, r5, r9 //tk2 ^ tk3 (4th word) - strd r11, r12, [r0], #24 //store in tk - subs.w r1, r1, #8 //decrease loop counter by 8 - bne loop - pop {r0-r12, r14} - bx lr - -@ void tkschedule_perm(u32* tk) -.global tkschedule_perm -.type tkschedule_perm,%function -.align 2 -tkschedule_perm: - push {r0-r12, lr} - sub.w sp, #4 //to store r14 in subroutines - ldm r0, {r6-r9} //load tk - movw r10, #0xf0f0 - movt r10, #0xf0f0 //r10<- 0xf0f0f0f0 - and r6, r6, r10 //tk &= 0xf0f0f0f0 (1st word) - and r7, r7, r10 //tk &= 0xf0f0f0f0 (2nd word) - and r8, r8, r10 //tk &= 0xf0f0f0f0 (3rd word) - and r9, r9, r10 //tk &= 0xf0f0f0f0 (4th word) - eor r8, r8, #0x00000004 //add rconst - eor r9, r9, #0x00000040 //add rconst - mvn r9, r9 //to remove a NOT in sbox calculations - strd r8, r9, [r0], #8 //store 1st half tk for 1st round - strd r6, r7, [r0], #8 //store 2nd half tk for 1st round - ldm r0, {r6-r9} //load tk - bl p2 //apply the permutation twice - movw r10, #0xc3c3 - movt r10, #0xc3c3 //r10<- 0xc3c3c3c3 - and r11, r10, r6, ror #26 //ror and mask to match fixslicing - and r12, r10, r7, ror #26 //ror and mask to match fixslicing - strd r11, r12, [r0], #8 //store 1st half tk for 2nd round - and r11, r10, r8, ror #26 //ror and mask to match fixslicing - and r12, r10, r9, ror #26 //ror and mask to match fixslicing - eor r11, r11, #0x10000000 //add rconst - eor r11, r11, #0x00000100 //add rconst - eor r12, r12, #0x00000100 //add rconst - mvn r12, r12 //to save a NOT in sbox calculations - strd r11, r12, [r0], #8 //store 2nd half tk for 2nd round - and r10, r10, r10, lsr #6 //r10<- 0x03030303 - and r11, r10, r6, ror #28 //--- ror and masks to match fixslicing - and r6, r6, r10, lsl #6 - orr r6, r11, r6, ror #12 - and r11, r10, r7, ror #28 - and r7, r7, r10, lsl #6 - orr r7, r11, r7, ror #12 - and r11, r10, r8, ror #28 - and r8, r8, r10, lsl #6 - orr r8, r11, r8, ror #12 - and r11, r10, r9, ror #28 - and r9, r9, r10, lsl #6 - orr r9, r11, r9, ror #12 //ror and masks to match fixslicing --- - eor r7, r7, #0x04000000 //add rconst - eor r8, r8, #0x44000000 //add rconst - eor r9, r9, #0x04000000 //add rconst - mvn r9, r9 //to save a NOT in sbox calculations - strd r8, r9, [r0], #8 //store 1st half tk for 3rd round - strd r6, r7, [r0], #8 //store 2nd half tk for 3rd round - ldm r0, {r6-r9} //load tk - bl p4 //apply the permutation 4 times - movw r10, #0xf0f0 - movt r10, #0xf0f0 //r10<- 0xf0f0f0f0 - and r11, r10, r6, ror #16 //ror and mask to match fixslicing - and r12, r10, r7, ror #16 //ror and mask to match fixslicing - eor r11, r11, #0x00400000 //add rconst - eor r12, r12, #0x00400000 //add rconst - strd r11, r12, [r0, #24] //store 2nd half tk for 5th round - and r11, r10, r8, ror #16 //ror and mask to match fixslicing - and r12, r10, r9, ror #16 //ror and mask to match fixslicing - eor r11, r11, #0x00440000 //add rconst - eor r12, r12, #0x00500000 //add rconst - mvn r12, r12 //to save a NOT in sbox calculations - strd r11, r12, [r0, #16] //store 1st half tk for 5th round - and r10, r10, r10, lsr #2 //r10<- 0x30303030 - and r11, r10, r6, ror #14 //--- ror and masks to match fixslicing - and r6, r6, r10, ror #4 - orr r6, r11, r6, ror #6 - and r11, r10, r7, ror #14 - and r7, r7, r10, ror #4 - orr r7, r11, r7, ror #6 - and r11, r10, r8, ror #14 - and r8, r8, r10, ror #4 - orr r8, r11, r8, ror #6 - and r11, r10, r9, ror #14 - and r9, r9, r10, ror #4 - orr r9, r11, r9, ror #6 //ror and masks to match fixslicing --- - eor r6, r6, #0x00100000 //add rconst - eor r7, r7, #0x00100000 //add rconst - eor r8, r8, #0x00100000 //add rconst - eor r8, r8, #0x00000001 //add rconst - eor r9, r9, #0x00100000 //add rconst - mvn r9, r9 //to save a NOT in sbox calculations - strd r6, r7, [r0], #8 //store 1st half tk for 4th round - strd r8, r9, [r0], #24 //store 2nd half tk for 4th round - ldm r0, {r6-r9} //load tk - bl p6 //apply the permutation 6 times - movw r10, #0xc3c3 - movt r10, #0xc3c3 //r10<- 0xc3c3c3c3 - and r11, r10, r6, ror #10 //ror and mask to match fixslicing - and r12, r10, r7, ror #10 //ror and mask to match fixslicing - eor r11, r11, #0x01000000 //add rconst - eor r12, r12, #0x01000000 //add rconst - strd r11, r12, [r0], #8 //store 1st half tk for 6th round - and r11, r10, r8, ror #10 //ror and mask to match fixslicing - and r12, r10, r9, ror #10 //ror and mask to match fixslicing - eor r11, r11, #0x01400000 //add rconst - eor r11, r11, #0x00001000 //add rconst - eor r12, r12, #0x00400000 //add rconst - mvn r12, r12 //to save a NOT in sbox calculations - strd r11, r12, [r0], #8 //store 2nd half tk for 6th round - and r10, r10, r10, lsr #6 //r10<- 0x03030303 - and r11, r10, r6, ror #12 //--- ror and masks to match fixslicing - and r6, r6, r10, lsl #6 - orr r6, r11, r6, ror #28 - and r11, r10, r7, ror #12 - and r7, r7, r10, lsl #6 - orr r7, r11, r7, ror #28 - and r11, r10, r8, ror #12 - and r8, r8, r10, lsl #6 - orr r8, r11, r8, ror #28 - and r11, r10, r9, ror #12 - and r9, r9, r10, lsl #6 - orr r9, r11, r9, ror #28 //ror and masks to match fixslicing --- - eor r6, r6, #0x00000400 //add rconst - eor r7, r7, #0x00000400 //add rconst - eor r8, r8, #0x01000000 //add rconst - eor r8, r8, #0x00004000 //add rconst - eor r9, r9, #0x01000000 //add rconst - eor r9, r9, #0x00000400 //add rconst - mvn r9, r9 //to save a NOT in sbox calculations - strd r8, r9, [r0], #8 //store 1st half tk for 7th round - strd r6, r7, [r0], #8 //store 2nd half tk for 7th round - ldm r0, {r6-r9} //load tk - bl p8 //apply the permutation 8 times - movw r10, #0xf0f0 - movt r10, #0xf0f0 //r10<- 0xf0f0f0f0 - and r11, r10, r6 //ror and mask to match fixslicing - and r12, r10, r7 //ror and mask to match fixslicing - eor r12, r12, #0x00000040 //add rconst - strd r11, r12, [r0, #24] //store 2nd half tk for 9th round - and r11, r10, r8 //ror and mask to match fixslicing - and r12, r10, r9 //ror and mask to match fixslicing - eor r11, r11, #0x00000054 //add rconst - eor r12, r12, #0x00000050 //add rconst - mvn r12, r12 //to save a NOT in sbox calculations - strd r11, r12, [r0, #16] //store 1st half tk for 9th round - and r10, r10, r10, lsr #2 //r10<- 0x30303030 - and r11, r10, r6, ror #30 //--- ror and masks to match fixslicing - and r6, r6, r10, ror #4 - orr r6, r11, r6, ror #22 - and r11, r10, r7, ror #30 - and r7, r7, r10, ror #4 - orr r7, r11, r7, ror #22 - and r11, r10, r8, ror #30 - and r8, r8, r10, ror #4 - orr r8, r11, r8, ror #22 - and r11, r10, r9, ror #30 - and r9, r9, r10, ror #4 - orr r9, r11, r9, ror #22 //ror and masks to match fixslicing --- - eor r6 ,r6, #0x00000010 - eor r8, r8, #0x00010000 - eor r8, r8, #0x00000410 - eor r9, r9, #0x00000410 - mvn r9, r9 //to save a NOT in sbox calculations - strd r6, r7, [r0], #8 //store 1st half tk for 8th round - strd r8, r9, [r0], #24 //store 2nd half tk for 8th round - ldm r0, {r6-r9} //load tk - bl p10 //apply the permutation 10 times - movw r10, #0xc3c3 - movt r10, #0xc3c3 //r10<- 0xc3c3c3c3 - and r11, r10, r6, ror #26 //ror and mask to match fixslicing - and r12, r10, r7, ror #26 //ror and mask to match fixslicing - eor r11, r11, #0x00000100 //add rconst - eor r12, r12, #0x00000100 //add rconst - strd r11, r12, [r0], #8 //store 1st half tk for 10th round - and r11, r10, r8, ror #26 //ror and mask to match fixslicing - and r12, r10, r9, ror #26 //ror and mask to match fixslicing - eor r11, r11, #0x10000000 //add rconst - eor r11, r11, #0x00000140 //add rconst - eor r12, r12, #0x00000100 //add rconst - mvn r12, r12 //to save a NOT in sbox calculations - strd r11, r12, [r0], #8 //store 2nd half tk for 10th round - and r10, r10, r10, lsr #6 //r10<- 0x03030303 - and r11, r10, r6, ror #28 //--- ror and masks to match fixslicing - and r6, r6, r10, lsl #6 - orr r6, r11, r6, ror #12 - and r11, r10, r7, ror #28 - and r7, r7, r10, lsl #6 - orr r7, r11, r7, ror #12 - and r11, r10, r8, ror #28 - and r8, r8, r10, lsl #6 - orr r8, r11, r8, ror #12 - and r11, r10, r9, ror #28 - and r9, r9, r10, lsl #6 - orr r9, r11, r9, ror #12 //ror and masks to match fixslicing --- - eor r6, r6, #0x04000000 //add rconst - eor r7, r7, #0x04000000 //add rconst - eor r8, r8, #0x44000000 //add rconst - eor r9, r9, #0x00000100 //add rconst - mvn r9, r9 //to save a NOT in sbox calculations - strd r8, r9, [r0], #8 //store 1st half tk for 11th round - strd r6, r7, [r0], #8 //store 2nd half tk for 11th round - ldm r0, {r6-r9} //load tk - bl p12 //apply the permutation 4 times - movw r10, #0xf0f0 - movt r10, #0xf0f0 //r10<- 0xf0f0f0f0 - and r11, r10, r6, ror #16 //ror and mask to match fixslicing - and r12, r10, r7, ror #16 //ror and mask to match fixslicing - eor r11, r11, #0x00400000 //add rconst - strd r11, r12, [r0, #24] //store 2nd half tk for 13th round - and r11, r10, r8, ror #16 //ror and mask to match fixslicing - and r12, r10, r9, ror #16 //ror and mask to match fixslicing - eor r11, r11, #0x00140000 //add rconst - eor r12, r12, #0x00500000 //add rconst - mvn r12, r12 //to save a NOT in sbox calculations - strd r11, r12, [r0, #16] //store 1st half tk for 13th round - and r10, r10, r10, lsr #2 //r10<- 0x30303030 - and r11, r10, r6, ror #14 //--- ror and masks to match fixslicing - and r6, r6, r10, ror #4 - orr r6, r11, r6, ror #6 - and r11, r10, r7, ror #14 - and r7, r7, r10, ror #4 - orr r7, r11, r7, ror #6 - and r11, r10, r8, ror #14 - and r8, r8, r10, ror #4 - orr r8, r11, r8, ror #6 - and r11, r10, r9, ror #14 - and r9, r9, r10, ror #4 - orr r9, r11, r9, ror #6 //ror and masks to match fixslicing --- - eor r6, r6, #0x00100000 //add rconst - eor r7, r7, #0x00100000 //add rconst - eor r8, r8, #0x04000000 //add rconst - eor r8, r8, #0x00000001 //add rconst - eor r9, r9, #0x04000000 //add rconst - mvn r9, r9 //to save a NOT in sbox calculations - strd r6, r7, [r0], #8 //store 1st half tk for 12th round - strd r8, r9, [r0], #24 //store 2nd half tk for 12th round - ldm r0, {r6-r9} //load tk - bl p14 //apply the permutation 6 times - movw r10, #0xc3c3 - movt r10, #0xc3c3 //r10<- 0xc3c3c3c3 - and r11, r10, r6, ror #10 //ror and mask to match fixslicing - and r12, r10, r7, ror #10 //ror and mask to match fixslicing - strd r11, r12, [r0], #8 //store 1st half tk for 14th round - and r11, r10, r8, ror #10 //ror and mask to match fixslicing - and r12, r10, r9, ror #10 //ror and mask to match fixslicing - eor r11, r11, #0x01400000 //add rconst - eor r11, r11, #0x00001000 //add rconst - eor r12, r12, #0x01400000 //add rconst - mvn r12, r12 //to save a NOT in sbox calculations - strd r11, r12, [r0], #8 //store 2nd half tk for 14th round - and r10, r10, r10, lsr #6 //r10<- 0x03030303 - and r11, r10, r6, ror #12 //--- ror and masks to match fixslicing - and r6, r6, r10, lsl #6 - orr r6, r11, r6, ror #28 - and r11, r10, r7, ror #12 - and r7, r7, r10, lsl #6 - orr r7, r11, r7, ror #28 - and r11, r10, r8, ror #12 - and r8, r8, r10, lsl #6 - orr r8, r11, r8, ror #28 - and r11, r10, r9, ror #12 - and r9, r9, r10, lsl #6 - orr r9, r11, r9, ror #28 //ror and masks to match fixslicing --- - eor r7, r7, #0x00000400 //add rconst - eor r8, r8, #0x01000000 //add rconst - eor r8, r8, #0x00004400 //add rconst - eor r9, r9, #0x00000400 //add const - mvn r9, r9 //to save a NOT in sbox calculations - strd r8, r9, [r0], #8 //store 1st half tk for 15th round - strd r6, r7, [r0], #8 //store 2nd half tk for 15th round - ldm r0, {r6-r9} //load tk - movw r10, #0xf0f0 - movt r10, #0xf0f0 //r10<- 0xf0f0f0f0 - and r11, r10, r6 //ror and mask to match fixslicing - and r12, r10, r7 //ror and mask to match fixslicing - eor r11, r11, #0x00000040 //add rconst - eor r12, r12, #0x00000040 //add rconst - strd r11, r12, [r0, #24] //store 2nd half tk for 17th round - and r11, r10, r8 //ror and mask to match fixslicing - and r12, r10, r9 //ror and mask to match fixslicing - eor r11, r11, #0x00000004 //add rconst - eor r12, r12, #0x00000050 //add rconst - mvn r12, r12 //to save a NOT in sbox calculations - strd r11, r12, [r0, #16] //store 1st half tk for 17th round - and r10, r10, r10, lsr #2 //r10<- 0x30303030 - and r11, r10, r6, ror #30 //--- ror and masks to match fixslicing - and r6, r6, r10, ror #4 - orr r6, r11, r6, ror #22 - and r11, r10, r7, ror #30 - and r7, r7, r10, ror #4 - orr r7, r11, r7, ror #22 - and r11, r10, r8, ror #30 - and r8, r8, r10, ror #4 - orr r8, r11, r8, ror #22 - and r11, r10, r9, ror #30 - and r9, r9, r10, ror #4 - orr r9, r11, r9, ror #22 //ror and masks to match fixslicing --- - eor r6 ,r6, #0x00000010 - eor r7 ,r7, #0x00000010 - eor r8, r8, #0x00000010 - eor r8, r8, #0x00010000 - mvn r9, r9 //to save a NOT in sbox calculations - strd r6, r7, [r0], #8 //store 1st half tk for 16th round - strd r8, r9, [r0], #24 //store 2nd half tk for 16th round - ldm r0, {r6-r9} //load tk - bl p2 //apply the permutation twice - movw r10, #0xc3c3 - movt r10, #0xc3c3 //r10<- 0xc3c3c3c3 - and r11, r10, r6, ror #26 //ror and mask to match fixslicing - and r12, r10, r7, ror #26 //ror and mask to match fixslicing - eor r11, r11, #0x00000100 //add rconst - strd r11, r12, [r0], #8 //store 1st half tk for 18th round - and r11, r10, r8, ror #26 //ror and mask to match fixslicing - and r12, r10, r9, ror #26 //ror and mask to match fixslicing - eor r11, r11, #0x10000000 //add rconst - eor r11, r11, #0x00000140 //add rconst - eor r12, r12, #0x00000040 //add rconst - mvn r12, r12 //to save a NOT in sbox calculations - strd r11, r12, [r0], #8 //store 2nd half tk for 18th round - and r10, r10, r10, lsr #6 //r10<- 0x03030303 - and r11, r10, r6, ror #28 //--- ror and masks to match fixslicing - and r6, r6, r10, lsl #6 - orr r6, r11, r6, ror #12 - and r11, r10, r7, ror #28 - and r7, r7, r10, lsl #6 - orr r7, r11, r7, ror #12 - and r11, r10, r8, ror #28 - and r8, r8, r10, lsl #6 - orr r8, r11, r8, ror #12 - and r11, r10, r9, ror #28 - and r9, r9, r10, lsl #6 - orr r9, r11, r9, ror #12 //ror and masks to match fixslicing --- - eor r7, r7, #0x04000000 //add rconst - eor r8, r8, #0x40000000 //add rconst - eor r8, r8, #0x00000100 //add rconst - eor r9, r9, #0x04000000 //add rconst - eor r9, r9, #0x00000100 //add rconst - mvn r9, r9 //to save a NOT in sbox calculations - strd r8, r9, [r0], #8 //store 1st half tk for 19th round - strd r6, r7, [r0], #8 //store 2nd half tk for 19th round - ldm r0, {r6-r9} //load tk - bl p4 //apply the permutation 4 times - movw r10, #0xf0f0 - movt r10, #0xf0f0 //r10<- 0xf0f0f0f0 - and r11, r10, r6, ror #16 //ror and mask to match fixslicing - and r12, r10, r7, ror #16 //ror and mask to match fixslicing - eor r12, r12, #0x00400000 //add rconst - strd r11, r12, [r0, #24] //store 2nd half tk for 21th round - and r11, r10, r8, ror #16 //ror and mask to match fixslicing - and r12, r10, r9, ror #16 //ror and mask to match fixslicing - eor r11, r11, #0x00440000 //add rconst - eor r12, r12, #0x00100000 //add rconst - mvn r12, r12 //to save a NOT in sbox calculations - strd r11, r12, [r0, #16] //store 1st half tk for 21th round - and r10, r10, r10, lsr #2 //r10<- 0x30303030 - and r11, r10, r6, ror #14 //--- ror and masks to match fixslicing - and r6, r6, r10, ror #4 - orr r6, r11, r6, ror #6 - and r11, r10, r7, ror #14 - and r7, r7, r10, ror #4 - orr r7, r11, r7, ror #6 - and r11, r10, r8, ror #14 - and r8, r8, r10, ror #4 - orr r8, r11, r8, ror #6 - and r11, r10, r9, ror #14 - and r9, r9, r10, ror #4 - orr r9, r11, r9, ror #6 //ror and masks to match fixslicing --- - eor r6, r6, #0x00100000 //add rconst - eor r8, r8, #0x04100000 //add rconst - eor r8, r8, #0x00000001 //add rconst - eor r9, r9, #0x00100000 //add rconst - mvn r9, r9 //to save a NOT in sbox calculations - strd r6, r7, [r0], #8 //store 1st half tk for 20th round - strd r8, r9, [r0], #24 //store 2nd half tk for 20th round - ldm r0, {r6-r9} //load tk - bl p6 //apply the permutation 6 times - movw r10, #0xc3c3 - movt r10, #0xc3c3 //r10<- 0xc3c3c3c3 - and r11, r10, r6, ror #10 //ror and mask to match fixslicing - and r12, r10, r7, ror #10 //ror and mask to match fixslicing - eor r11, r11, #0x01000000 //add rconst - eor r12, r12, #0x01000000 //add rconst - strd r11, r12, [r0], #8 //store 1st half tk for 22th round - and r11, r10, r8, ror #10 //ror and mask to match fixslicing - and r12, r10, r9, ror #10 //ror and mask to match fixslicing - eor r11, r11, #0x00400000 //add rconst - eor r11, r11, #0x00001000 //add rconst - mvn r12, r12 //to save a NOT in sbox calculations - strd r11, r12, [r0], #8 //store 2nd half tk for 22th round - and r10, r10, r10, lsr #6 //r10<- 0x03030303 - and r11, r10, r6, ror #12 //--- ror and masks to match fixslicing - and r6, r6, r10, lsl #6 - orr r6, r11, r6, ror #28 - and r11, r10, r7, ror #12 - and r7, r7, r10, lsl #6 - orr r7, r11, r7, ror #28 - and r11, r10, r8, ror #12 - and r8, r8, r10, lsl #6 - orr r8, r11, r8, ror #28 - and r11, r10, r9, ror #12 - and r9, r9, r10, lsl #6 - orr r9, r11, r9, ror #28 //ror and masks to match fixslicing --- - eor r6, r6, #0x00000400 //add rconst - eor r8, r8, #0x00004000 //add rconst - eor r9, r9, #0x01000000 //add rconst - mvn r9, r9 //to save a NOT in sbox calculations - strd r8, r9, [r0], #8 //store 1st half tk for 23th round - strd r6, r7, [r0], #8 //store 2nd half tk for 23th round - ldm r0, {r6-r9} //load tk - bl p8 //apply the permutation 8 times - movw r10, #0xf0f0 - movt r10, #0xf0f0 //r10<- 0xf0f0f0f0 - and r11, r10, r6 //ror and mask to match fixslicing - and r12, r10, r7 //ror and mask to match fixslicing - strd r11, r12, [r0, #24] //store 2nd half tk for 25th round - and r11, r10, r8 //ror and mask to match fixslicing - and r12, r10, r9 //ror and mask to match fixslicing - eor r11, r11, #0x00000014 //add rconst - eor r12, r12, #0x00000040 //add rconst - mvn r12, r12 //to save a NOT in sbox calculations - strd r11, r12, [r0, #16] //store 1st half tk for 25th round - and r10, r10, r10, lsr #2 //r10<- 0x30303030 - and r11, r10, r6, ror #30 //--- ror and masks to match fixslicing - and r6, r6, r10, ror #4 - orr r6, r11, r6, ror #22 - and r11, r10, r7, ror #30 - and r7, r7, r10, ror #4 - orr r7, r11, r7, ror #22 - and r11, r10, r8, ror #30 - and r8, r8, r10, ror #4 - orr r8, r11, r8, ror #22 - and r11, r10, r9, ror #30 - and r9, r9, r10, ror #4 - orr r9, r11, r9, ror #22 //ror and masks to match fixslicing --- - eor r8, r8, #0x00010400 - eor r9, r9, #0x00000400 - mvn r9, r9 //to save a NOT in sbox calculations - strd r6, r7, [r0], #8 //store 1st half tk for 24th round - strd r8, r9, [r0], #24 //store 2nd half tk for 24th round - ldm r0, {r6-r9} //load tk - bl p10 //apply the permutation 10 times - movw r10, #0xc3c3 - movt r10, #0xc3c3 //r10<- 0xc3c3c3c3 - and r11, r10, r6, ror #26 //ror and mask to match fixslicing - and r12, r10, r7, ror #26 //ror and mask to match fixslicing - strd r11, r12, [r0], #8 //store 1st half tk for 26th round - and r11, r10, r8, ror #26 //ror and mask to match fixslicing - and r12, r10, r9, ror #26 //ror and mask to match fixslicing - eor r11, r11, #0x10000000 //add rconst - eor r11, r11, #0x00000100 //add rconst - mvn r12, r12 //to save a NOT in sbox calculations - strd r11, r12, [r0], #8 //store 2nd half tk for 26th round - and r10, r10, r10, lsr #6 //r10<- 0x03030303 - and r11, r10, r6, ror #28 //--- ror and masks to match fixslicing - and r6, r6, r10, lsl #6 - orr r6, r11, r6, ror #12 - and r11, r10, r7, ror #28 - and r7, r7, r10, lsl #6 - orr r7, r11, r7, ror #12 - and r11, r10, r8, ror #28 - and r8, r8, r10, lsl #6 - orr r8, r11, r8, ror #12 - and r11, r10, r9, ror #28 - and r9, r9, r10, lsl #6 - orr r9, r11, r9, ror #12 //ror and masks to match fixslicing --- - eor r7, r7, #0x04000000 //add rconst - eor r8, r8, #0x40000000 //add rconst - eor r9, r9, #0x04000000 //add rconst - mvn r9, r9 //to save a NOT in sbox calculations - strd r8, r9, [r0], #8 //store 1st half tk for 27th round - strd r6, r7, [r0], #8 //store 2nd half tk for 27th round - ldm r0, {r6-r9} //load tk - bl p12 //apply the permutation 4 times - movw r10, #0xf0f0 - movt r10, #0xf0f0 //r10<- 0xf0f0f0f0 - and r11, r10, r6, ror #16 //ror and mask to match fixslicing - and r12, r10, r7, ror #16 //ror and mask to match fixslicing - eor r12, r12, #0x00400000 //add rconst - strd r11, r12, [r0, #24] //store 2nd half tk for 29th round - and r11, r10, r8, ror #16 //ror and mask to match fixslicing - and r12, r10, r9, ror #16 //ror and mask to match fixslicing - eor r11, r11, #0x00440000 //add rconst - eor r12, r12, #0x00500000 //add rconst - mvn r12, r12 //to save a NOT in sbox calculations - strd r11, r12, [r0, #16] //store 1st half tk for 29th round - and r10, r10, r10, lsr #2 //r10<- 0x30303030 - and r11, r10, r6, ror #14 //--- ror and masks to match fixslicing - and r6, r6, r10, ror #4 - orr r6, r11, r6, ror #6 - and r11, r10, r7, ror #14 - and r7, r7, r10, ror #4 - orr r7, r11, r7, ror #6 - and r11, r10, r8, ror #14 - and r8, r8, r10, ror #4 - orr r8, r11, r8, ror #6 - and r11, r10, r9, ror #14 - and r9, r9, r10, ror #4 - orr r9, r11, r9, ror #6 //ror and masks to match fixslicing --- - eor r6, r6, #0x00100000 //add rconst - eor r8, r8, #0x00100000 //add rconst - eor r8, r8, #0x00000001 //add rconst - eor r9, r9, #0x00100000 //add rconst - mvn r9, r9 //to save a NOT in sbox calculations - strd r6, r7, [r0], #8 //store 1st half tk for 28th round - strd r8, r9, [r0], #24 //store 2nd half tk for 28th round - ldm r0, {r6-r9} //load tk - bl p14 //apply the permutation 6 times - movw r10, #0xc3c3 - movt r10, #0xc3c3 //r10<- 0xc3c3c3c3 - and r11, r10, r6, ror #10 //ror and mask to match fixslicing - and r12, r10, r7, ror #10 //ror and mask to match fixslicing - eor r11, r11, #0x01000000 //add rconst - eor r12, r12, #0x01000000 //add rconst - strd r11, r12, [r0], #8 //store 1st half tk for 30th round - and r11, r10, r8, ror #10 //ror and mask to match fixslicing - and r12, r10, r9, ror #10 //ror and mask to match fixslicing - eor r11, r11, #0x01400000 //add rconst - eor r11, r11, #0x00001000 //add rconst - mvn r12, r12 //to save a NOT in sbox calculations - strd r11, r12, [r0], #8 //store 2nd half tk for 30th round - and r10, r10, r10, lsr #6 //r10<- 0x03030303 - and r11, r10, r6, ror #12 //--- ror and masks to match fixslicing - and r6, r6, r10, lsl #6 - orr r6, r11, r6, ror #28 - and r11, r10, r7, ror #12 - and r7, r7, r10, lsl #6 - orr r7, r11, r7, ror #28 - and r11, r10, r8, ror #12 - and r8, r8, r10, lsl #6 - orr r8, r11, r8, ror #28 - and r11, r10, r9, ror #12 - and r9, r9, r10, lsl #6 - orr r9, r11, r9, ror #28 //ror and masks to match fixslicing --- - eor r6, r6, #0x00000400 //add rconst - eor r7, r7, #0x00000400 //add rconst - eor r8, r8, #0x00004000 //add rconst - eor r9, r9, #0x01000000 //add rconst - mvn r9, r9 //to save a NOT in sbox calculations - strd r8, r9, [r0], #8 //store 1st half tk for 31th round - strd r6, r7, [r0], #8 //store 2nd half tk for 31th round - ldm r0, {r6-r9} //load tk - movw r10, #0xf0f0 - movt r10, #0xf0f0 //r10<- 0xf0f0f0f0 - and r11, r10, r6 //ror and mask to match fixslicing - and r12, r10, r7 //ror and mask to match fixslicing - strd r11, r12, [r0, #24] //store 2nd half tk for 33th round - and r11, r10, r8 //ror and mask to match fixslicing - and r12, r10, r9 //ror and mask to match fixslicing - eor r11, r11, #0x00000014 //add rconst - eor r12, r12, #0x00000050 //add rconst - mvn r12, r12 //to save a NOT in sbox calculations - strd r11, r12, [r0, #16] //store 1st half tk for 33th round - and r10, r10, r10, lsr #2 //r10<- 0x30303030 - and r11, r10, r6, ror #30 //--- ror and masks to match fixslicing - and r6, r6, r10, ror #4 - orr r6, r11, r6, ror #22 - and r11, r10, r7, ror #30 - and r7, r7, r10, ror #4 - orr r7, r11, r7, ror #22 - and r11, r10, r8, ror #30 - and r8, r8, r10, ror #4 - orr r8, r11, r8, ror #22 - and r11, r10, r9, ror #30 - and r9, r9, r10, ror #4 - orr r9, r11, r9, ror #22 //ror and masks to match fixslicing --- - eor r6 ,r6, #0x00000010 - eor r8, r8, #0x00010400 - eor r9, r9, #0x00000400 - mvn r9, r9 //to save a NOT in sbox calculations - strd r6, r7, [r0], #8 //store 1st half tk for 32th round - strd r8, r9, [r0], #24 //store 2nd half tk for 32th round - ldm r0, {r6-r9} //load tk - bl p2 //apply the permutation twice - movw r10, #0xc3c3 - movt r10, #0xc3c3 //r10<- 0xc3c3c3c3 - and r11, r10, r6, ror #26 //ror and mask to match fixslicing - and r12, r10, r7, ror #26 //ror and mask to match fixslicing - strd r11, r12, [r0], #8 //store 1st half tk for 34th round - and r11, r10, r8, ror #26 //ror and mask to match fixslicing - and r12, r10, r9, ror #26 //ror and mask to match fixslicing - eor r11, r11, #0x10000000 //add rconst - eor r11, r11, #0x00000140 //add rconst - eor r12, r12, #0x00000100 //add rconst - mvn r12, r12 //to save a NOT in sbox calculations - strd r11, r12, [r0], #8 //store 2nd half tk for 34th round - and r10, r10, r10, lsr #6 //r10<- 0x03030303 - and r11, r10, r6, ror #28 //--- ror and masks to match fixslicing - and r6, r6, r10, lsl #6 - orr r6, r11, r6, ror #12 - and r11, r10, r7, ror #28 - and r7, r7, r10, lsl #6 - orr r7, r11, r7, ror #12 - and r11, r10, r8, ror #28 - and r8, r8, r10, lsl #6 - orr r8, r11, r8, ror #12 - and r11, r10, r9, ror #28 - and r9, r9, r10, lsl #6 - orr r9, r11, r9, ror #12 //ror and masks to match fixslicing --- - eor r7, r7, #0x04000000 //add rconst - eor r8, r8, #0x44000000 //add rconst - mvn r9, r9 //to save a NOT in sbox calculations - strd r8, r9, [r0], #8 //store 1st half tk for 35th round - strd r6, r7, [r0], #8 //store 2nd half tk for 35th round - ldm r0, {r6-r9} //load tk - bl p4 //apply the permutation 4 times - movw r10, #0xf0f0 - movt r10, #0xf0f0 //r10<- 0xf0f0f0f0 - and r11, r10, r6, ror #16 //ror and mask to match fixslicing - and r12, r10, r7, ror #16 //ror and mask to match fixslicing - eor r11, r11, #0x00400000 //add rconst - strd r11, r12, [r0, #24] //store 2nd half tk for 37th round - and r11, r10, r8, ror #16 //ror and mask to match fixslicing - and r12, r10, r9, ror #16 //ror and mask to match fixslicing - eor r11, r11, #0x00440000 //add rconst - eor r12, r12, #0x00500000 //add rconst - mvn r12, r12 //to save a NOT in sbox calculations - strd r11, r12, [r0, #16] //store 1st half tk for 37th round - and r10, r10, r10, lsr #2 //r10<- 0x30303030 - and r11, r10, r6, ror #14 //--- ror and masks to match fixslicing - and r6, r6, r10, ror #4 - orr r6, r11, r6, ror #6 - and r11, r10, r7, ror #14 - and r7, r7, r10, ror #4 - orr r7, r11, r7, ror #6 - and r11, r10, r8, ror #14 - and r8, r8, r10, ror #4 - orr r8, r11, r8, ror #6 - and r11, r10, r9, ror #14 - and r9, r9, r10, ror #4 - orr r9, r11, r9, ror #6 //ror and masks to match fixslicing --- - eor r6, r6, #0x00100000 //add rconst - eor r7, r7, #0x00100000 //add rconst - eor r8, r8, #0x00000001 //add rconst - eor r9, r9, #0x00100000 //add rconst - mvn r9, r9 //to save a NOT in sbox calculations - strd r6, r7, [r0], #8 //store 1st half tk for 36th round - strd r8, r9, [r0], #24 //store 2nd half tk for 36th round - ldm r0, {r6-r9} //load tk - bl p6 //apply the permutation 6 times - movw r10, #0xc3c3 - movt r10, #0xc3c3 //r10<- 0xc3c3c3c3 - and r11, r10, r6, ror #10 //ror and mask to match fixslicing - and r12, r10, r7, ror #10 //ror and mask to match fixslicing - eor r12, r12, #0x01000000 //add rconst - strd r11, r12, [r0], #8 //store 1st half tk for 38th round - and r11, r10, r8, ror #10 //ror and mask to match fixslicing - and r12, r10, r9, ror #10 //ror and mask to match fixslicing - eor r11, r11, #0x01400000 //add rconst - eor r11, r11, #0x00001000 //add rconst - eor r12, r12, #0x00400000 //add rconst - mvn r12, r12 //to save a NOT in sbox calculations - strd r11, r12, [r0], #8 //store 2nd half tk for 38th round - and r10, r10, r10, lsr #6 //r10<- 0x03030303 - and r11, r10, r6, ror #12 //--- ror and masks to match fixslicing - and r6, r6, r10, lsl #6 - orr r6, r11, r6, ror #28 - and r11, r10, r7, ror #12 - and r7, r7, r10, lsl #6 - orr r7, r11, r7, ror #28 - and r11, r10, r8, ror #12 - and r8, r8, r10, lsl #6 - orr r8, r11, r8, ror #28 - and r11, r10, r9, ror #12 - and r9, r9, r10, lsl #6 - orr r9, r11, r9, ror #28 //ror and masks to match fixslicing --- - eor r6, r6, #0x00000400 //add rconst - eor r7, r7, #0x00000400 //add rconst - eor r8, r8, #0x01000000 - eor r8, r8, #0x00004000 //add rconst - eor r9, r9, #0x00000400 //add rconst - mvn r9, r9 //to save a NOT in sbox calculations - strd r8, r9, [r0], #8 //store 1st half tk for 39th round - strd r6, r7, [r0], #8 //store 2nd half tk for 39th round - ldm r0, {r6-r9} //load tk - bl p8 //apply the permutation 8 times - movw r10, #0x3030 - movt r10, #0x3030 //r10<- 0x30303030 - and r11, r10, r6, ror #30 //--- ror and masks to match fixslicing - and r6, r6, r10, ror #4 - orr r6, r11, r6, ror #22 - and r11, r10, r7, ror #30 - and r7, r7, r10, ror #4 - orr r7, r11, r7, ror #22 - and r11, r10, r8, ror #30 - and r8, r8, r10, ror #4 - orr r8, r11, r8, ror #22 - and r11, r10, r9, ror #30 - and r9, r9, r10, ror #4 - orr r9, r11, r9, ror #22 //ror and masks to match fixslicing --- - eor r6, r6, #0x00000010 - eor r8, r8, #0x00010000 - eor r8, r8, #0x00000010 - eor r9, r9, #0x00000400 - mvn r9, r9 //to save a NOT in sbox calculations - strd r6, r7, [r0], #8 //store 1st half tk for 40th round - strd r8, r9, [r0] //store 2nd half tk for 40th round - add.w sp, #4 - pop {r0-r12, lr} - bx lr - -/****************************************************************************** -* Applies the permutations P^2, ..., P^14 for rounds 0 to 16. Since P^16=Id, we -* don't need more calculations as no LFSR is applied to TK1. -******************************************************************************/ -@ void tkschedule_perm_tk1(u32* tk, const u8* key) -.global tkschedule_perm_tk1 -.type tkschedule_perm_tk1,%function -.align 2 -tkschedule_perm_tk1: - push {r0-r12, lr} - ldr.w r3, [r1, #8] //load tk1 (3rd word) - ldr.w r4, [r1, #4] //load tk1 (2nd word) - ldr.w r5, [r1, #12] //load tk1 (4th word) - ldr.w r2, [r1] //load tk1 (1st word) - movw r10, #0x0a0a - movt r10, #0x0a0a //r6 <- 0x0a0a0a0a - movw r11, #0x3030 - movt r11, #0x3030 //r7 <- 0x30303030 - bl packing //pack tk1 - mov r6, r2 //move tk1 from r2-r5 to r6-r9 - mov r7, r3 //move tk1 from r2-r5 to r6-r9 - mov r8, r4 //move tk1 from r2-r5 to r6-r9 - mov r9, r5 //move tk1 from r2-r5 to r6-r9 - movw r2, #0xf0f0 - movt r2, #0xf0f0 //r2<- 0xf0f0f0f0 - and r11, r8, r2 //tk &= 0xf0f0f0f0 (3rd word) - and r12, r9, r2 //tk &= 0xf0f0f0f0 (4th word) - strd r11, r12, [r0], #8 //store 1st half tk for 1st round - and r11, r6, r2 //tk &= 0xf0f0f0f0 (1st word) - and r12, r7, r2 //tk &= 0xf0f0f0f0 (2nd word) - strd r11, r12, [r0], #8 //store 2nd half tk for 1st round - - bl p2 //apply the permutation twice - movw r3, #0x0303 - movt r3, #0x0303 //r3<- 0x03030303 - and r11, r3, r6, ror #28 //--- ror and masks to match fixslicing - and r12, r6, r3, lsl #6 - orr r12, r11, r12, ror #12 - str.w r12, [r0, #8] - and r11, r3, r7, ror #28 - and r12, r7, r3, lsl #6 - orr r12, r11, r12, ror #12 - str.w r12, [r0, #12] - and r11, r3, r9, ror #28 - and r12, r9, r3, lsl #6 - orr r12, r11, r12, ror #12 - str.w r12, [r0, #4] - and r11, r3, r8, ror #28 - and r12, r8, r3, lsl #6 - orr r12, r11, r12, ror #12 - str.w r12, [r0], #16 //ror and masks to match fixslicing --- - bl p2 //apply the permutation 4 times - and r11, r2, r6, ror #16 //ror and mask to match fixslicing - and r12, r2, r7, ror #16 //ror and mask to match fixslicing - strd r11, r12, [r0, #8] //store 2nd half tk for 5th round - and r11, r2, r8, ror #16 //ror and mask to match fixslicing - and r12, r2, r9, ror #16 //ror and mask to match fixslicing - strd r11, r12, [r0], #16 //store 1st half tk for 5th round - bl p2 //apply the permutation 6 times - and r11, r3, r6, ror #12 //--- ror and masks to match fixslicing - and r12, r6, r3, lsl #6 - orr r12, r11, r12, ror #28 - str.w r12, [r0, #8] - and r11, r3, r7, ror #12 - and r12, r7, r3, lsl #6 - orr r12, r11, r12, ror #28 - str.w r12, [r0, #12] - and r11, r3, r9, ror #12 - and r12, r9, r3, lsl #6 - orr r12, r11, r12, ror #28 - str.w r12, [r0, #4] - and r11, r3, r8, ror #12 - and r12, r8, r3, lsl #6 - orr r12, r11, r12, ror #28 - str.w r12, [r0], #16 //ror and masks to match fixslicing --- - bl p2 //apply the permutation 8 times - and r11, r2, r6 //ror and mask to match fixslicing - and r12, r2, r7 //ror and mask to match fixslicing - strd r11, r12, [r0, #8] //store 2nd half tk for 9th round - and r11, r2, r8 //ror and mask to match fixslicing - and r12, r2, r9 //ror and mask to match fixslicing - strd r11, r12, [r0], #16 //store 1st half tk for 9th round - bl p2 //apply the permutation 10 - and r11, r3, r6, ror #28 //--- ror and masks to match fixslicing - and r12, r6, r3, lsl #6 - orr r12, r11, r12, ror #12 - str.w r12, [r0, #8] - and r11, r3, r7, ror #28 - and r12, r7, r3, lsl #6 - orr r12, r11, r12, ror #12 - str.w r12, [r0, #12] - and r11, r3, r9, ror #28 - and r12, r9, r3, lsl #6 - orr r12, r11, r12, ror #12 - str.w r12, [r0, #4] - and r11, r3, r8, ror #28 - and r12, r8, r3, lsl #6 - orr r12, r11, r12, ror #12 - str.w r12, [r0], #16 //ror and masks to match fixslicing --- - bl p2 //apply the permutation 12 times - and r11, r2, r6, ror #16 //ror and mask to match fixslicing - and r12, r2, r7, ror #16 //ror and mask to match fixslicing - strd r11, r12, [r0, #8] //store 2nd half tk for 5th round - and r11, r2, r8, ror #16 //ror and mask to match fixslicing - and r12, r2, r9, ror #16 //ror and mask to match fixslicing - strd r11, r12, [r0], #16 //store 1st half tk for 5th round - bl p2 //apply the permutation 14 times - and r11, r3, r6, ror #12 //--- ror and masks to match fixslicing - and r12, r6, r3, lsl #6 - orr r12, r11, r12, ror #28 - str.w r12, [r0, #8] - and r11, r3, r7, ror #12 - and r12, r7, r3, lsl #6 - orr r12, r11, r12, ror #28 - str.w r12, [r0, #12] - and r11, r3, r9, ror #12 - and r12, r9, r3, lsl #6 - orr r12, r11, r12, ror #28 - str.w r12, [r0, #4] - and r11, r3, r8, ror #12 - and r12, r8, r3, lsl #6 - orr r12, r11, r12, ror #28 - str.w r12, [r0] //ror and masks to match fixslicing --- - pop {r0-r12, lr} - bx lr - -.align 2 -quadruple_round: - orr r8, r2, r3 - eor r5, r5, r8 - mvn r5, r5 - eor r8, r3, r4, lsr #1 - and r8, r8, r6 - eor r3, r3, r8 - eor r4, r4, r8, lsl #1 //SWAPMOVE(r4, r3, 0x55555555, 1); - eor r8, r4, r5, lsr #1 - and r8, r8, r6 - eor r4, r4, r8 - eor r5, r5, r8, lsl #1 //SWAPMOVE(r5, r4, 0x55555555, 1); - orr r8, r4, r5 - eor r3, r3, r8 - mvn r3, r3 - eor r8, r2, r3, lsr #1 - and r8, r8, r6 - eor r2, r2, r8 - eor r3, r3, r8, lsl #1 //SWAPMOVE(r3, r2, 0x55555555, 1); - eor r8, r5, r2, lsr #1 - and r8, r8, r6 - eor r5, r5, r8 - eor r2, r2, r8, lsl #1 //SWAPMOVE(r2, r5, 0x55555555, 1); - orr r8, r2, r3 - eor r5, r5, r8 - mvn r5, r5 - eor r8, r3, r4, lsr #1 - and r8, r8, r6 - eor r3, r3, r8 - eor r4, r4, r8, lsl #1 //SWAPMOVE(r4, r3, 0x55555555, 1); - eor r8, r4, r5, lsr #1 - and r8, r8, r6 - eor r4, r4, r8 - eor r5, r5, r8, lsl #1 //SWAPMOVE(r5, r4, 0x55555555, 1); - orr r8, r4, r5 - eor r3, r3, r8 - eor r8, r2, r5 - and r8, r8, r6 - eor r2, r2, r8 - eor r5, r5, r8 //SWAPMOVE(r5, r2, 0x55555555, 0); - ldmia.w r1!, {r8-r11} //load rkeys in r8,...,r11 - eor r2, r2, r8 //add rtk_2_3 + rconst - eor r3, r3, r9 //add rtk_2_3 + rconst - eor r4, r4, r10 //add rtk_2_3 + rconst - eor r5, r5, r11 //add rtk_2_3 + rconst - ldmia.w r0!,{r8-r11} - eor r2, r2, r8 //add rtk_1 - eor r3, r3, r9 //add rtk_1 - eor r4, r4, r10 //add rtk_1 - eor r5, r5, r11 //add rtk_1 - and r8, r7, r2, ror #30 // --- mixcolumns 0 --- - eor r2, r2, r8, ror #24 - and r8, r7, r2, ror #18 - eor r2, r2, r8, ror #2 - and r8, r7, r2, ror #6 - eor r2, r2, r8, ror #4 - and r8, r7, r3, ror #30 - eor r3, r3, r8, ror #24 - and r8, r7, r3, ror #18 - eor r3, r3, r8, ror #2 - and r8, r7, r3, ror #6 - eor r3, r3, r8, ror #4 - and r8, r7, r4, ror #30 - eor r4, r4, r8, ror #24 - and r8, r7, r4, ror #18 - eor r4, r4, r8, ror #2 - and r8, r7, r4, ror #6 - eor r4, r4, r8, ror #4 - and r8, r7, r5, ror #30 - eor r5, r5, r8, ror #24 - and r8, r7, r5, ror #18 - eor r5, r5, r8, ror #2 - and r8, r7, r5, ror #6 - eor r5, r5, r8, ror #4 - orr r8, r4, r5 - eor r3, r3, r8 - mvn r3, r3 - eor r8, r2, r3, lsr #1 - and r8, r8, r6 - eor r2, r2, r8 - eor r3, r3, r8, lsl #1 //SWAPMOVE(r3, r2, 0x55555555, 1); - eor r8, r5, r2, lsr #1 - and r8, r8, r6 - eor r5, r5, r8 - eor r2, r2, r8, lsl #1 //SWAPMOVE(r2, r5, 0x55555555, 1); - orr r8, r2, r3 - eor r5, r5, r8 - mvn r5, r5 - eor r8, r3, r4, lsr #1 - and r8, r8, r6 - eor r3, r3, r8 - eor r4, r4, r8, lsl #1 //SWAPMOVE(r4, r3, 0x55555555, 1); - eor r8, r4, r5, lsr #1 - and r8, r8, r6 - eor r4, r4, r8 - eor r5, r5, r8, lsl #1 //SWAPMOVE(r5, r4, 0x55555555, 1); - orr r8, r4, r5 - eor r3, r3, r8 - mvn r3, r3 - eor r8, r2, r3, lsr #1 - and r8, r8, r6 - eor r2, r2, r8 - eor r3, r3, r8, lsl #1 //SWAPMOVE(r3, r2, 0x55555555, 1); - eor r8, r5, r2, lsr #1 - and r8, r8, r6 - eor r5, r5, r8 - eor r2, r2, r8, lsl #1 //SWAPMOVE(r2, r5, 0x55555555, 1); - orr r8, r2, r3 - eor r5, r5, r8 - eor r8, r3, r4 - and r8, r8, r6 - eor r3, r3, r8 - eor r4, r4, r8 //SWAPMOVE(r4, r3, 0x55555555, 0); - ldmia.w r1!, {r8-r11} //load rkeys in r8,...,r11 - eor r2, r2, r8 //add rkey + rconst - eor r3, r3, r9 //add rkey + rconst - eor r4, r4, r10 //add rkey + rconst - eor r5, r5, r11 //add rkey + rconst - and r8, r7, r2, ror #16 // --- mixcolumns 1 --- - eor r2, r2, r8, ror #30 - and r8, r7, r2, ror #28 - eor r2, r2, r8 - and r8, r7, r2, ror #16 - eor r2, r2, r8, ror #2 - and r8, r7, r3, ror #16 - eor r3, r3, r8, ror #30 - and r8, r7, r3, ror #28 - eor r3, r3, r8 - and r8, r7, r3, ror #16 - eor r3, r3, r8, ror #2 - and r8, r7, r4, ror #16 - eor r4, r4, r8, ror #30 - and r8, r7, r4, ror #28 - eor r4, r4, r8 - and r8, r7, r4, ror #16 - eor r4, r4, r8, ror #2 - and r8, r7, r5, ror #16 - eor r5, r5, r8, ror #30 - and r8, r7, r5, ror #28 - eor r5, r5, r8 - and r8, r7, r5, ror #16 - eor r5, r5, r8, ror #2 - orr r8, r2, r3 - eor r5, r5, r8 - mvn r5, r5 - eor r8, r3, r4, lsr #1 - and r8, r8, r6 - eor r3, r3, r8 - eor r4, r4, r8, lsl #1 //SWAPMOVE(r4, r3, 0x55555555, 1); - eor r8, r4, r5, lsr #1 - and r8, r8, r6 - eor r4, r4, r8 - eor r5, r5, r8, lsl #1 //SWAPMOVE(r5, r4, 0x55555555, 1); - orr r8, r4, r5 - eor r3, r3, r8 - mvn r3, r3 - eor r8, r2, r3, lsr #1 - and r8, r8, r6 - eor r2, r2, r8 - eor r3, r3, r8, lsl #1 //SWAPMOVE(r3, r2, 0x55555555, 1); - eor r8, r5, r2, lsr #1 - and r8, r8, r6 - eor r5, r5, r8 - eor r2, r2, r8, lsl #1 //SWAPMOVE(r2, r5, 0x55555555, 1); - orr r8, r2, r3 - eor r5, r5, r8 - mvn r5, r5 - eor r8, r3, r4, lsr #1 - and r8, r8, r6 - eor r3, r3, r8 - eor r4, r4, r8, lsl #1 //SWAPMOVE(r4, r3, 0x55555555, 1); - eor r8, r4, r5, lsr #1 - and r8, r8, r6 - eor r4, r4, r8 - eor r5, r5, r8, lsl #1 //SWAPMOVE(r5, r4, 0x55555555, 1); - orr r8, r4, r5 - eor r3, r3, r8 - eor r8, r2, r5 - and r8, r8, r6 - eor r2, r2, r8 - eor r5, r5, r8 //SWAPMOVE(r5, r2, 0x55555555, 0); - ldmia.w r1!, {r8-r11} //load rkeys in r8,...,r11 - eor r2, r2, r8 //add rtk_2_3 + rconst - eor r3, r3, r9 //add rtk_2_3 + rconst - eor r4, r4, r10 //add rtk_2_3 + rconst - eor r5, r5, r11 //add rtk_2_3 + rconst - ldmia.w r0!,{r8-r11} - eor r2, r2, r8 //add rtk_1 - eor r3, r3, r9 //add rtk_1 - eor r4, r4, r10 //add rtk_1 - eor r5, r5, r11 //add rtk_1 - and r8, r7, r2, ror #10 // --- mixcolumns 2 --- - eor r2, r2, r8, ror #4 - and r8, r7, r2, ror #6 - eor r2, r2, r8, ror #6 - and r8, r7, r2, ror #26 - eor r2, r2, r8 - and r8, r7, r3, ror #10 - eor r3, r3, r8, ror #4 - and r8, r7, r3, ror #6 - eor r3, r3, r8, ror #6 - and r8, r7, r3, ror #26 - eor r3, r3, r8 - and r8, r7, r4, ror #10 - eor r4, r4, r8, ror #4 - and r8, r7, r4, ror #6 - eor r4, r4, r8, ror #6 - and r8, r7, r4, ror #26 - eor r4, r4, r8 - and r8, r7, r5, ror #10 - eor r5, r5, r8, ror #4 - and r8, r7, r5, ror #6 - eor r5, r5, r8, ror #6 - and r8, r7, r5, ror #26 - eor r5, r5, r8 - orr r8, r4, r5 - eor r3, r3, r8 - mvn r3, r3 - eor r8, r2, r3, lsr #1 - and r8, r8, r6 - eor r2, r2, r8 - eor r3, r3, r8, lsl #1 //SWAPMOVE(r3, r2, 0x55555555, 1); - eor r8, r5, r2, lsr #1 - and r8, r8, r6 - eor r5, r5, r8 - eor r2, r2, r8, lsl #1 //SWAPMOVE(r2, r5, 0x55555555, 1); - orr r8, r2, r3 - eor r5, r5, r8 - mvn r5, r5 - eor r8, r3, r4, lsr #1 - and r8, r8, r6 - eor r3, r3, r8 - eor r4, r4, r8, lsl #1 //SWAPMOVE(r4, r3, 0x55555555, 1); - eor r8, r4, r5, lsr #1 - and r8, r8, r6 - eor r4, r4, r8 - eor r5, r5, r8, lsl #1 //SWAPMOVE(r5, r4, 0x55555555, 1); - orr r8, r4, r5 - eor r3, r3, r8 - mvn r3, r3 - eor r8, r2, r3, lsr #1 - and r8, r8, r6 - eor r2, r2, r8 - eor r3, r3, r8, lsl #1 //SWAPMOVE(r3, r2, 0x55555555, 1); - eor r8, r5, r2, lsr #1 - and r8, r8, r6 - eor r5, r5, r8 - eor r2, r2, r8, lsl #1 //SWAPMOVE(r2, r5, 0x55555555, 1); - orr r8, r2, r3 - eor r5, r5, r8 - eor r8, r3, r4 - and r8, r8, r6 - eor r3, r3, r8 - eor r4, r4, r8 //SWAPMOVE(r4, r3, 0x55555555, 0); - ldmia r1!, {r8-r11} //load rkeys in r8,...,r11 - eor r2, r2, r8 //add rkey + rconst - eor r3, r3, r9 //add rkey + rconst - eor r4, r4, r10 //add rkey + rconst - eor r5, r5, r11 //add rkey + rconst - and r8, r7, r2, ror #4 // --- mixcolumns 3 --- - eor r2, r2, r8, ror #26 - and r8, r7, r2 - eor r2, r2, r8, ror #4 - and r8, r7, r2, ror #4 - eor r2, r2, r8, ror #22 - and r8, r7, r3, ror #4 - eor r3, r3, r8, ror #26 - and r8, r7, r3 - eor r3, r3, r8, ror #4 - and r8, r7, r3, ror #4 - eor r3, r3, r8, ror #22 - and r8, r7, r4, ror #4 - eor r4, r4, r8, ror #26 - and r8, r7, r4 - eor r4, r4, r8, ror #4 - and r8, r7, r4, ror #4 - eor r4, r4, r8, ror #22 - and r8, r7, r5, ror #4 - eor r5, r5, r8, ror #26 - and r8, r7, r5 - eor r5, r5, r8, ror #4 - and r8, r7, r5, ror #4 - eor r5, r5, r8, ror #22 - bx lr - -/****************************************************************************** -* Encrypt a single block using fixsliced SKINNY-128-128. -******************************************************************************/ -@ void skinny128_384(u8* ctext, const u32* tk, const u8* ptext) -.global skinny128_384 -.type skinny128_384,%function -.align 2 -skinny128_384: - push {r0-r12, r14} - mov.w r0, r3 - ldr.w r3, [r2, #8] - ldr.w r4, [r2, #4] - ldr.w r5, [r2, #12] - ldr.w r2, [r2] - movw r6, #0x0a0a - movt r6, #0x0a0a //r6 <- 0x0a0a0a0a - movw r7, #0x3030 - movt r7, #0x3030 //r7 <- 0x30303030 - eor r12, r2, r2, lsr #3 - and r12, r12, r6 - eor r2, r2, r12 - eor r2, r2, r12, lsl #3 //SWAPMOVE(r2, r2, 0x0a0a0a0a, 3) - eor r12, r3, r3, lsr #3 - and r12, r12, r6 - eor r3, r3, r12 - eor r3, r3, r12, lsl #3 //SWAPMOVE(r3, r3, 0x0a0a0a0a, 3) - eor r12, r4, r4, lsr #3 - and r12, r12, r6 - eor r4, r4, r12 - eor r4, r4, r12, lsl #3 //SWAPMOVE(r4, r4, 0x0a0a0a0a, 3) - eor r12, r5, r5, lsr #3 - and r12, r12, r6 - eor r5, r5, r12 - eor r5, r5, r12, lsl #3 //SWAPMOVE(r5, r5, 0x0a0a0a0a, 3) - eor r12, r2, r4, lsr #2 - and r12, r12, r7 - eor r2, r2, r12 - eor r4, r4, r12, lsl #2 //SWAPMOVE(r4, r2, 0x30303030, 2) - eor r12, r2, r3, lsr #4 - and r12, r12, r7, lsr #2 - eor r2, r2, r12 - eor r3, r3, r12, lsl #4 //SWAPMOVE(r3, r2, 0x0c0c0c0c, 4) - eor r12, r2, r5, lsr #6 - and r12, r12, r7, lsr #4 - eor r2, r2, r12 - eor r5, r5, r12, lsl #6 //SWAPMOVE(r5, r2, 0x03030303, 6) - eor r12, r4, r3, lsr #2 - and r12, r12, r7, lsr #2 - eor r4, r4, r12 - eor r3, r3, r12, lsl #2 //SWAPMOVE(r3, r4, 0x0c0c0c0c, 2) - eor r12, r4, r5, lsr #4 - and r12, r12, r7, lsr #4 - eor r4, r4, r12 - eor r5, r5, r12, lsl #4 //SWAPMOVE(r5, r4, 0x03030303, 4) - eor r12, r3, r5, lsr #2 - and r12, r12, r7, lsr #4 - eor r3, r3, r12 - eor r5, r5, r12, lsl #2 //SWAPMOVE(r5, r3, 0x03030303, 2) - movw r6, #0x5555 - movt r6, #0x5555 //r6 <- 0x55555555 - bl quadruple_round - bl quadruple_round - bl quadruple_round - bl quadruple_round - sub.w r0, #128 // rtk1 repeats every 16 rounds - bl quadruple_round - bl quadruple_round - bl quadruple_round - bl quadruple_round - sub.w r0, #128 // rtk1 repeats every 16 rounds - bl quadruple_round - bl quadruple_round - movw r6, #0x0a0a - movt r6, #0x0a0a //r6 <- 0x0a0a0a0a - eor r10, r3, r5, lsr #2 - and r10, r10, r7, lsr #4 - eor r3, r3, r10 - eor r5, r5, r10, lsl #2 //SWAPMOVE(r5, r3, 0x03030303, 2) - eor r10, r4, r5, lsr #4 - and r10, r10, r7, lsr #4 - eor r4, r4, r10 - eor r5, r5, r10, lsl #4 //SWAPMOVE(r5, r4, 0x03030303, 4) - eor r10, r4, r3, lsr #2 - and r10, r10, r7, lsr #2 - eor r4, r4, r10 - eor r3, r3, r10, lsl #2 //SWAPMOVE(r3, r4, 0x0c0c0c0c, 2) - eor r10, r2, r5, lsr #6 - and r10, r10, r7, lsr #4 - eor r2, r2, r10 - eor r5, r5, r10, lsl #6 //SWAPMOVE(r5, r2, 0x03030303, 6) - eor r10, r2, r3, lsr #4 - and r10, r10, r7, lsr #2 - eor r2, r2, r10 - eor r3, r3, r10, lsl #4 //SWAPMOVE(r3, r2, 0x0c0c0c0c, 4) - eor r10, r2, r4, lsr #2 - and r10, r10, r7 - eor r2, r2, r10 - eor r4, r4, r10, lsl #2 //SWAPMOVE(r4, r2, 0x30303030, 2) - eor r10, r5, r5, lsr #3 - and r10, r10, r6 - eor r5, r5, r10 - eor r5, r5, r10, lsl #3 //SWAPMOVE(r5, r5, 0x0a0a0a0a, 3) - eor r10, r4, r4, lsr #3 - and r10, r10, r6 - eor r4, r4, r10 - eor r4, r4, r10, lsl #3 //SWAPMOVE(r4, r4, 0x0a0a0a0a, 3) - eor r10, r3, r3, lsr #3 - and r10, r10, r6 - eor r3, r3, r10 - eor r3, r3, r10, lsl #3 //SWAPMOVE(r3, r3, 0x0a0a0a0a, 3) - eor r10, r2, r2, lsr #3 - and r10, r10, r6 - eor r2, r2, r10 - eor r2, r2, r10, lsl #3 //SWAPMOVE(r2, r2, 0x0a0a0a0a, 3) - ldr.w r0, [sp], #4 - strd r2, r4, [r0] - strd r3, r5, [r0, #8] - pop {r1-r12,r14} - bx lr - \ No newline at end of file diff --git a/romulus/Implementations/crypto_aead/romulusn1+v13/armsrc_NEC/api.h b/romulus/Implementations/crypto_aead/romulusn1+v13/armsrc_NEC/api.h deleted file mode 100644 index a4aa567..0000000 --- a/romulus/Implementations/crypto_aead/romulusn1+v13/armsrc_NEC/api.h +++ /dev/null @@ -1,5 +0,0 @@ -#define CRYPTO_KEYBYTES 16 -#define CRYPTO_NSECBYTES 0 -#define CRYPTO_NPUBBYTES 16 -#define CRYPTO_ABYTES 16 -#define CRYPTO_NOOVERLAP 1 diff --git a/romulus/Implementations/crypto_aead/romulusn1+v13/armsrc_NEC/crypto_aead.h b/romulus/Implementations/crypto_aead/romulusn1+v13/armsrc_NEC/crypto_aead.h deleted file mode 100644 index cfc09d6..0000000 --- a/romulus/Implementations/crypto_aead/romulusn1+v13/armsrc_NEC/crypto_aead.h +++ /dev/null @@ -1,11 +0,0 @@ -int crypto_aead_encrypt(unsigned char *c, unsigned long long *clen, - const unsigned char *m, unsigned long long mlen, - const unsigned char *ad, unsigned long long adlen, - const unsigned char *nsec, const unsigned char *npub, - const unsigned char *k); - -int crypto_aead_decrypt(unsigned char *m, unsigned long long *outputmlen, - unsigned char *nsec, - const unsigned char *c, unsigned long long clen, - const unsigned char *ad, unsigned long long adlen, - const unsigned char *npub, const unsigned char *k); diff --git a/romulus/Implementations/crypto_aead/romulusn1+v13/armsrc_NEC/encrypt.c b/romulus/Implementations/crypto_aead/romulusn1+v13/armsrc_NEC/encrypt.c deleted file mode 100644 index 5a7d0e0..0000000 --- a/romulus/Implementations/crypto_aead/romulusn1+v13/armsrc_NEC/encrypt.c +++ /dev/null @@ -1,541 +0,0 @@ -/* - * Date: 29 November 2018 - * Contact: Thomas Peyrin - thomas.peyrin@gmail.com - * Mustafa Khairallah - mustafam001@e.ntu.edu.sg - */ - -#include "crypto_aead.h" -#include "api.h" -#include "skinny.h" -#include -#include - -void pad (const unsigned char* m, unsigned char* mp, int l, int len8) { - int i; - - for (i = 0; i < l; i++) { - if (i < len8) { - mp[i] = m[i]; - } - else if (i == l - 1) { - mp[i] = (len8 & 0x0f); - } - else { - mp[i] = 0x00; - } - } - -} - -void g8A (unsigned char* s, unsigned char* c) { - unsigned int tmps[4]; - unsigned int tmpc[4]; - - tmps[0] = *((unsigned int *)&s[0]); - tmps[1] = *((unsigned int *)&s[4]); - tmps[2] = *((unsigned int *)&s[8]); - tmps[3] = *((unsigned int *)&s[12]); - - // c[i] = (s[i] >> 1) ^ (s[i] & 0x80) ^ ((s[i] & 0x01) << 7); - // - // (s[i] >> 1) -> ((s[i]>>1)&0x7f) - // (s[i] & 0x80) -> (s[i])&0x80) not changed - // ((s[i] & 0x01) << 7) -> ((s[i]<<7)&0x80) - - // use word access because of speeding up - tmpc[0] = ((tmps[0]>>1) & 0x7f7f7f7f) ^ (tmps[0] & 0x80808080) ^ ((tmps[0]<<7) & 0x80808080); - tmpc[1] = ((tmps[1]>>1) & 0x7f7f7f7f) ^ (tmps[1] & 0x80808080) ^ ((tmps[1]<<7) & 0x80808080); - tmpc[2] = ((tmps[2]>>1) & 0x7f7f7f7f) ^ (tmps[2] & 0x80808080) ^ ((tmps[2]<<7) & 0x80808080); - tmpc[3] = ((tmps[3]>>1) & 0x7f7f7f7f) ^ (tmps[3] & 0x80808080) ^ ((tmps[3]<<7) & 0x80808080); - - *((unsigned int *)&c[0]) = tmpc[0]; - *((unsigned int *)&c[4]) = tmpc[1]; - *((unsigned int *)&c[8]) = tmpc[2]; - *((unsigned int *)&c[12]) = tmpc[3]; -} - -void g8A_for_Tag_Generation (unsigned char* s, unsigned char* c) { - unsigned int tmps[4]; - unsigned int tmpc[4]; - - tmps[0] = *((unsigned int *)&s[0]); - tmps[1] = *((unsigned int *)&s[4]); - tmps[2] = *((unsigned int *)&s[8]); - tmps[3] = *((unsigned int *)&s[12]); - - // c[i] = (s[i] >> 1) ^ (s[i] & 0x80) ^ ((s[i] & 0x01) << 7); - // - // (s[i] >> 1) -> ((s[i]>>1)&0x7f) - // (s[i] & 0x80) -> (s[i])&0x80) not changed - // ((s[i] & 0x01) << 7) -> ((s[i]<<7)&0x80) - - // use word access because of speeding up - tmpc[0] = ((tmps[0]>>1) & 0x7f7f7f7f) ^ (tmps[0] & 0x80808080) ^ ((tmps[0]<<7) & 0x80808080); - tmpc[1] = ((tmps[1]>>1) & 0x7f7f7f7f) ^ (tmps[1] & 0x80808080) ^ ((tmps[1]<<7) & 0x80808080); - tmpc[2] = ((tmps[2]>>1) & 0x7f7f7f7f) ^ (tmps[2] & 0x80808080) ^ ((tmps[2]<<7) & 0x80808080); - tmpc[3] = ((tmps[3]>>1) & 0x7f7f7f7f) ^ (tmps[3] & 0x80808080) ^ ((tmps[3]<<7) & 0x80808080); - - // use byte access because of memory alignment. - // c is not always in word(4 byte) alignment. - c[0] = tmpc[0] &0xFF; - c[1] = (tmpc[0]>>8) &0xFF; - c[2] = (tmpc[0]>>16)&0xFF; - c[3] = (tmpc[0]>>24)&0xFF; - c[4] = tmpc[1] &0xFF; - c[5] = (tmpc[1]>>8) &0xFF; - c[6] = (tmpc[1]>>16)&0xFF; - c[7] = (tmpc[1]>>24)&0xFF; - c[8] = tmpc[2] &0xFF; - c[9] = (tmpc[2]>>8) &0xFF; - c[10] = (tmpc[2]>>16)&0xFF; - c[11] = (tmpc[2]>>24)&0xFF; - c[12] = tmpc[3] &0xFF; - c[13] = (tmpc[3]>>8) &0xFF; - c[14] = (tmpc[3]>>16)&0xFF; - c[15] = (tmpc[3]>>24)&0xFF; -} - -void rho_ad_eqov16 (const unsigned char* m, - unsigned char* s) { - *((unsigned int *)&s[0]) ^= *((unsigned int *)&m[0]); - *((unsigned int *)&s[4]) ^= *((unsigned int *)&m[4]); - *((unsigned int *)&s[8]) ^= *((unsigned int *)&m[8]); - *((unsigned int *)&s[12]) ^= *((unsigned int *)&m[12]); -} - -void rho_ad_ud16 (const unsigned char* m, - unsigned char* s, - int len8) { - unsigned char mp [16]; - - pad(m,mp,16,len8); - *((unsigned int *)&s[0]) ^= *((unsigned int *)&mp[0]); - *((unsigned int *)&s[4]) ^= *((unsigned int *)&mp[4]); - *((unsigned int *)&s[8]) ^= *((unsigned int *)&mp[8]); - *((unsigned int *)&s[12]) ^= *((unsigned int *)&mp[12]); -} - -void rho_eqov16 (const unsigned char* m, - unsigned char* c, - unsigned char* s) { - g8A(s,c); - - *((unsigned int *)&s[0]) ^= *((unsigned int *)&m[0]); - *((unsigned int *)&s[4]) ^= *((unsigned int *)&m[4]); - *((unsigned int *)&s[8]) ^= *((unsigned int *)&m[8]); - *((unsigned int *)&s[12]) ^= *((unsigned int *)&m[12]); - - *((unsigned int *)&c[0]) ^= *((unsigned int *)&m[0]); - *((unsigned int *)&c[4]) ^= *((unsigned int *)&m[4]); - *((unsigned int *)&c[8]) ^= *((unsigned int *)&m[8]); - *((unsigned int *)&c[12]) ^= *((unsigned int *)&m[12]); -} - -void rho_ud16 (const unsigned char* m, - unsigned char* c, - unsigned char* s, - int len8, - int ver) { - int i; - unsigned char mp [16]; - - pad(m,mp,ver,len8); - - g8A(s,c); - *((unsigned int *)&s[0]) ^= *((unsigned int *)&mp[0]); - *((unsigned int *)&s[4]) ^= *((unsigned int *)&mp[4]); - *((unsigned int *)&s[8]) ^= *((unsigned int *)&mp[8]); - *((unsigned int *)&s[12]) ^= *((unsigned int *)&mp[12]); - for (i = 0; i < ver; i++) { - if (i < len8) { - c[i] = c[i] ^ mp[i]; - } - else { - c[i] = 0; - } - } -} - -void irho (unsigned char* m, - const unsigned char* c, - unsigned char* s, - int len8, - int ver) { - int i; - unsigned char cp [16]; - - pad(c,cp,ver,len8); - - g8A(s,m); - for (i = 0; i < ver; i++) { - if (i < len8) { - s[i] = s[i] ^ cp[i] ^ m[i]; - } - else { - s[i] = s[i] ^ cp[i]; - } - if (i < len8) { - m[i] = m[i] ^ cp[i]; - } - else { - m[i] = 0; - } - } -} - -void reset_lfsr_gf56 (unsigned char* CNT) { - *((unsigned int *)&CNT[0]) = 0x00000001; - *((unsigned int *)&CNT[4]) = 0x00000000; -} - -void lfsr_gf56 (unsigned char* CNT) { - unsigned int tmpCNT[2]; - unsigned int fb0; - - tmpCNT[0] = *((unsigned int *)&CNT[0]); // CNT3 CNT2 CNT1 CNT0 - tmpCNT[1] = *((unsigned int *)&CNT[4]); // CNT7 CNT6 CNT5 CNT4 - - fb0 = 0; - if ((tmpCNT[1] >> 23)&0x01) { - fb0 = 0x95; - } - - tmpCNT[1] = tmpCNT[1] << 1 | tmpCNT[0] >> 31; - tmpCNT[0] = tmpCNT[0] << 1 ^ fb0; - - *((unsigned int *)&CNT[0]) = tmpCNT[0]; - *((unsigned int *)&CNT[4]) = tmpCNT[1]; -} - -void block_cipher(unsigned char* s, - const unsigned char* k, unsigned char* T, - unsigned char* CNT, - skinny_ctrl* p_skinny_ctrl) { - p_skinny_ctrl->func_skinny_128_384_enc (s,p_skinny_ctrl,CNT,T,k); -} - -void nonce_encryption (const unsigned char* N, - unsigned char* CNT, - unsigned char*s, const unsigned char* k, - unsigned char D, - skinny_ctrl* p_skinny_ctrl) { - unsigned char T [16]; - - *((unsigned int *)&T[0]) = *((unsigned int *)&N[0]); - *((unsigned int *)&T[4]) = *((unsigned int *)&N[4]); - *((unsigned int *)&T[8]) = *((unsigned int *)&N[8]); - *((unsigned int *)&T[12]) = *((unsigned int *)&N[12]); - CNT[7] = D; - block_cipher(s,k,T,CNT,p_skinny_ctrl); - -} - -void generate_tag (unsigned char** c, unsigned char* s, - int n, unsigned long long* clen) { - g8A_for_Tag_Generation(s, *c); - *c = *c + n; - *c = *c - *clen; -} - -unsigned long long msg_encryption_eqov16 (const unsigned char** M, unsigned char** c, - const unsigned char* N, - unsigned char* CNT, - unsigned char*s, const unsigned char* k, - unsigned char D, - unsigned long long mlen, - skinny_ctrl* p_skinny_ctrl) { - rho_eqov16(*M, *c, s); - *c = *c + 16; - *M = *M + 16; - lfsr_gf56(CNT); - nonce_encryption(N,CNT,s,k,D,p_skinny_ctrl); - return mlen - 16; -} - -unsigned long long msg_encryption_ud16 (const unsigned char** M, unsigned char** c, - const unsigned char* N, - unsigned char* CNT, - unsigned char*s, const unsigned char* k, - unsigned char D, - unsigned long long mlen, - skinny_ctrl* p_skinny_ctrl) { - rho_ud16(*M, *c, s, mlen, 16); - *c = *c + mlen; - *M = *M + mlen; - lfsr_gf56(CNT); - nonce_encryption(N,CNT,s,k,D,p_skinny_ctrl); - return 0; -} - -unsigned long long msg_decryption (unsigned char** M, const unsigned char** c, - const unsigned char* N, - unsigned char* CNT, - unsigned char*s, const unsigned char* k, - unsigned char D, - unsigned long long clen, - skinny_ctrl* p_skinny_ctrl) { - int len8; - - if (clen >= 16) { - len8 = 16; - clen = clen - 16; - } - else { - len8 = clen; - clen = 0; - } - irho(*M, *c, s, len8, 16); - *c = *c + len8; - *M = *M + len8; - lfsr_gf56(CNT); - nonce_encryption(N,CNT,s,k,D,p_skinny_ctrl); - return clen; -} - -unsigned long long ad_encryption_eqov32 (const unsigned char** A, unsigned char* s, - const unsigned char* k, unsigned long long adlen, - unsigned char* CNT, - unsigned char D, - skinny_ctrl* p_skinny_ctrl) { - - unsigned char T [16]; - - rho_ad_eqov16(*A, s); - *A = *A + 16; - lfsr_gf56(CNT); - - //pad(*A, T, 16, 16); - *((unsigned int *)&T[0]) = *((unsigned int *)&(*A)[0]); - *((unsigned int *)&T[4]) = *((unsigned int *)&(*A)[4]); - *((unsigned int *)&T[8]) = *((unsigned int *)&(*A)[8]); - *((unsigned int *)&T[12]) = *((unsigned int *)&(*A)[12]); - *A = *A + 16; - CNT[7] = D; - block_cipher(s,k,T,CNT,p_skinny_ctrl); - lfsr_gf56(CNT); - - return adlen - 32; -} - -unsigned long long ad_encryption_ov16 (const unsigned char** A, unsigned char* s, - const unsigned char* k, unsigned long long adlen, - unsigned char* CNT, - unsigned char D, - skinny_ctrl* p_skinny_ctrl) { - - unsigned char T [16]; - - adlen = adlen - 16; - rho_ad_eqov16(*A, s); - *A = *A + 16; - lfsr_gf56(CNT); - - pad(*A, T, 16, adlen); - *A = *A + adlen; - CNT[7] = D; - block_cipher(s,k,T,CNT,p_skinny_ctrl); - lfsr_gf56(CNT); - - return 0; -} - -unsigned long long ad_encryption_eq16 (const unsigned char** A, unsigned char* s, - unsigned char* CNT) { - - rho_ad_eqov16(*A, s); - *A = *A + 16; - lfsr_gf56(CNT); - - return 0; -} - -unsigned long long ad_encryption_ud16 (const unsigned char** A, unsigned char* s, - unsigned long long adlen, - unsigned char* CNT) { - - rho_ad_ud16(*A, s, adlen); - *A = *A + adlen; - lfsr_gf56(CNT); - - return 0; -} - -int crypto_aead_encrypt ( - unsigned char* c, unsigned long long* clen, - const unsigned char* m, unsigned long long mlen, - const unsigned char* ad, unsigned long long adlen, - const unsigned char* nsec, - const unsigned char* npub, - const unsigned char* k - ) -{ - unsigned char s[16]; - // size 7 -> 8 for word access - unsigned char CNT[8]; - const unsigned char* A; - const unsigned char* M; - const unsigned char* N; - - skinny_ctrl l_skinny_ctrl; - - (void) nsec; - A = ad; - M = m; - N = npub; - - l_skinny_ctrl.func_skinny_128_384_enc = skinny_128_384_enc123_12; - - *((unsigned int *)&s[0]) = 0x00000000; - *((unsigned int *)&s[4]) = 0x00000000; - *((unsigned int *)&s[8]) = 0x00000000; - *((unsigned int *)&s[12]) = 0x00000000; - reset_lfsr_gf56(CNT); - - if (adlen == 0) { // AD is an empty string - lfsr_gf56(CNT); - nonce_encryption(N,CNT,s,k,0x1a,&l_skinny_ctrl); - } - else while (adlen > 0) { - if (adlen < 16) { // The last block of AD is odd and incomplete - adlen = ad_encryption_ud16(&A,s,adlen,CNT); - nonce_encryption(N,CNT,s,k,0x1a,&l_skinny_ctrl); - } - else if (adlen == 16) { // The last block of AD is odd and complete - adlen = ad_encryption_eq16(&A,s,CNT); - nonce_encryption(N,CNT,s,k,0x18,&l_skinny_ctrl); - } - else if (adlen < (32)) { // The last block of AD is even and incomplete - adlen = ad_encryption_ov16(&A,s,k,adlen,CNT,0x08,&l_skinny_ctrl); - nonce_encryption(N,CNT,s,k,0x1a,&l_skinny_ctrl); - } - else if (adlen == (32)) { // The last block of AD is even and complete - adlen = ad_encryption_eqov32(&A,s,k,adlen,CNT,0x08,&l_skinny_ctrl); - nonce_encryption(N,CNT,s,k,0x18,&l_skinny_ctrl); - } - else { // A normal full pair of blocks of AD - adlen = ad_encryption_eqov32(&A,s,k,adlen,CNT,0x08,&l_skinny_ctrl); - } - } - - // because, nonce_encryption is called at the last block of AD encryption - l_skinny_ctrl.func_skinny_128_384_enc = skinny_128_384_enc1_1; - - reset_lfsr_gf56(CNT); - - *clen = mlen + 16; - - if (mlen == 0) { // M is an empty string - lfsr_gf56(CNT); - nonce_encryption(N,CNT,s,k,0x15,&l_skinny_ctrl); - } - else while (mlen > 0) { - if (mlen < 16) { // The last block of M is incomplete - mlen = msg_encryption_ud16(&M,&c,N,CNT,s,k,0x15,mlen,&l_skinny_ctrl); - } - else if (mlen == 16) { // The last block of M is complete - mlen = msg_encryption_eqov16(&M,&c,N,CNT,s,k,0x14,mlen,&l_skinny_ctrl); - } - else { // A normal full message block - mlen = msg_encryption_eqov16(&M,&c,N,CNT,s,k,0x04,mlen,&l_skinny_ctrl); - } - } - - // Tag generation - generate_tag(&c,s,16,clen); - - return 0; -} - -int crypto_aead_decrypt( -unsigned char *m,unsigned long long *mlen, -unsigned char *nsec, -const unsigned char *c,unsigned long long clen, -const unsigned char *ad,unsigned long long adlen, -const unsigned char *npub, -const unsigned char *k -) -{ - - unsigned char s[16]; - unsigned char T[16]; - // size 7 -> 8 for word access - unsigned char CNT[8]; - const unsigned char* A; - unsigned char* M; - const unsigned char* N; - unsigned int i; - - skinny_ctrl l_skinny_ctrl; - - (void) nsec; - A = ad; - M = m; - N = npub; - - l_skinny_ctrl.func_skinny_128_384_enc = skinny_128_384_enc123_12; - - for (i = 0; i < 16; i++) { - s[i] = 0; - } - reset_lfsr_gf56(CNT); - - if (adlen == 0) { // AD is an empty string - lfsr_gf56(CNT); - nonce_encryption(N,CNT,s,k,0x1a,&l_skinny_ctrl); - } - else while (adlen > 0) { - if (adlen < 16) { // The last block of AD is odd and incomplete - adlen = ad_encryption_ud16(&A,s,adlen,CNT); - nonce_encryption(N,CNT,s,k,0x1a,&l_skinny_ctrl); - } - else if (adlen == 16) { // The last block of AD is odd and complete - adlen = ad_encryption_eq16(&A,s,CNT); - nonce_encryption(N,CNT,s,k,0x18,&l_skinny_ctrl); - } - else if (adlen < (32)) { // The last block of AD is even and incomplete - adlen = ad_encryption_ov16(&A,s,k,adlen,CNT,0x08,&l_skinny_ctrl); - nonce_encryption(N,CNT,s,k,0x1a,&l_skinny_ctrl); - } - else if (adlen == (32)) { // The last block of AD is even and complete - adlen = ad_encryption_eqov32(&A,s,k,adlen,CNT,0x08,&l_skinny_ctrl); - nonce_encryption(N,CNT,s,k,0x18,&l_skinny_ctrl); - } - else { // A normal full pair of blocks of AD - adlen = ad_encryption_eqov32(&A,s,k,adlen,CNT,0x08,&l_skinny_ctrl); - } - } - - l_skinny_ctrl.func_skinny_128_384_enc = skinny_128_384_enc1_1; - reset_lfsr_gf56(CNT); - - clen = clen - 16; - *mlen = clen; - - if (clen == 0) { // C is an empty string - lfsr_gf56(CNT); - nonce_encryption(N,CNT,s,k,0x15,&l_skinny_ctrl); - } - else while (clen > 0) { - if (clen < 16) { // The last block of C is incomplete - clen = msg_decryption(&M,&c,N,CNT,s,k,0x15,clen,&l_skinny_ctrl); - } - else if (clen == 16) { // The last block of C is complete - clen = msg_decryption(&M,&c,N,CNT,s,k,0x14,clen,&l_skinny_ctrl); - } - else { // A normal full message block - clen = msg_decryption(&M,&c,N,CNT,s,k,0x04,clen,&l_skinny_ctrl); - } - } - - // Tag generation - g8A_for_Tag_Generation(s, T); - for (i = 0; i < 16; i++) { - if (T[i] != (*(c+i))) { - return -1; - } - } - - return 0; -} - - diff --git a/romulus/Implementations/crypto_aead/romulusn1+v13/armsrc_NEC/skinny.h b/romulus/Implementations/crypto_aead/romulusn1+v13/armsrc_NEC/skinny.h deleted file mode 100644 index 2da62ae..0000000 --- a/romulus/Implementations/crypto_aead/romulusn1+v13/armsrc_NEC/skinny.h +++ /dev/null @@ -1,8 +0,0 @@ -typedef struct ___skinny_ctrl { - unsigned char roundKeys[704]; // number of round : 40 - void (*func_skinny_128_384_enc)(unsigned char*, struct ___skinny_ctrl*, unsigned char* CNT, unsigned char* T, const unsigned char* K); -} skinny_ctrl; - -extern void skinny_128_384_enc123_12 (unsigned char* input, skinny_ctrl* pskinny_ctrl, unsigned char* CNT, unsigned char* T, const unsigned char* K); -extern void skinny_128_384_enc12_12 (unsigned char* input, skinny_ctrl* pskinny_ctrl, unsigned char* CNT, unsigned char* T, const unsigned char* K); -extern void skinny_128_384_enc1_1 (unsigned char* input, skinny_ctrl* pskinny_ctrl, unsigned char* CNT, unsigned char* T, const unsigned char* K); diff --git a/romulus/Implementations/crypto_aead/romulusn1+v13/armsrc_NEC/skinny_key_schedule2.c b/romulus/Implementations/crypto_aead/romulusn1+v13/armsrc_NEC/skinny_key_schedule2.c deleted file mode 100644 index 1315e83..0000000 --- a/romulus/Implementations/crypto_aead/romulusn1+v13/armsrc_NEC/skinny_key_schedule2.c +++ /dev/null @@ -1,2163 +0,0 @@ -/****************************************************************************** - * Copyright (c) 2020, NEC Corporation. - * - * THIS CODE IS FURNISHED TO YOU "AS IS" WITHOUT WARRANTY OF ANY KIND. - * - *****************************************************************************/ - -/* - * SKINNY-128-384 - * - * load * AC(c0 c1) ^ TK3 - * calc AC(c0 c1) ^ TK2 -> store - * ART(TK2) - * - * number of rounds : 40 - */ - -__attribute__((aligned(4))) -void RunEncryptionKeyScheduleTK2(unsigned char *roundKeys) -{ - // r0 : points to roundKeys(& masterKey) - // r1-r4 : key state - // r5-r6 : temp use - // r7 : constant(0xfefefefe) - // r8 : constant(0x01010101) - // r9 : temp use - // r10 : temp use - asm volatile( - "stmdb sp!, {r4-r10} \n\t" - "ldr.w r1, [r0,#16] \n\t" // load master key - "ldr.w r2, [r0,#20] \n\t" // load master key - "ldr.w r3, [r0,#24] \n\t" // load master key - "ldr.w r4, [r0,#28] \n\t" // load master key - "mov.w r7, #0xfefefefe \n\t" - "mov.w r8, #0x01010101 \n\t" - - // round 1 - - "ldr.w r9, [r0,#384] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#388] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#64] \n\t" - "str.w r10, [r0,#68] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 2 - - "ldr.w r9, [r0,#392] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#396] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#72] \n\t" - "str.w r10, [r0,#76] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 3 - - "ldr.w r9, [r0,#400] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#404] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#80] \n\t" - "str.w r10, [r0,#84] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 4 - - "ldr.w r9, [r0,#408] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#412] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#88] \n\t" - "str.w r10, [r0,#92] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 5 - - "ldr.w r9, [r0,#416] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#420] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#96] \n\t" - "str.w r10, [r0,#100] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 6 - - "ldr.w r9, [r0,#424] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#428] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#104] \n\t" - "str.w r10, [r0,#108] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 7 - - "ldr.w r9, [r0,#432] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#436] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#112] \n\t" - "str.w r10, [r0,#116] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 8 - - "ldr.w r9, [r0,#440] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#444] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#120] \n\t" - "str.w r10, [r0,#124] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 9 - - "ldr.w r9, [r0,#448] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#452] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#128] \n\t" - "str.w r10, [r0,#132] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 10 - - "ldr.w r9, [r0,#456] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#460] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#136] \n\t" - "str.w r10, [r0,#140] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 11 - - "ldr.w r9, [r0,#464] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#468] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#144] \n\t" - "str.w r10, [r0,#148] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 12 - - "ldr.w r9, [r0,#472] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#476] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#152] \n\t" - "str.w r10, [r0,#156] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 13 - - "ldr.w r9, [r0,#480] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#484] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#160] \n\t" - "str.w r10, [r0,#164] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 14 - - "ldr.w r9, [r0,#488] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#492] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#168] \n\t" - "str.w r10, [r0,#172] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 15 - - "ldr.w r9, [r0,#496] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#500] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#176] \n\t" - "str.w r10, [r0,#180] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 16 - - "ldr.w r9, [r0,#504] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#508] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#184] \n\t" - "str.w r10, [r0,#188] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 17 - - "ldr.w r9, [r0,#512] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#516] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#192] \n\t" - "str.w r10, [r0,#196] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 18 - - "ldr.w r9, [r0,#520] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#524] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#200] \n\t" - "str.w r10, [r0,#204] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 19 - - "ldr.w r9, [r0,#528] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#532] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#208] \n\t" - "str.w r10, [r0,#212] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 20 - - "ldr.w r9, [r0,#536] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#540] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#216] \n\t" - "str.w r10, [r0,#220] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 21 - - "ldr.w r9, [r0,#544] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#548] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#224] \n\t" - "str.w r10, [r0,#228] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 22 - - "ldr.w r9, [r0,#552] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#556] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#232] \n\t" - "str.w r10, [r0,#236] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 23 - - "ldr.w r9, [r0,#560] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#564] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#240] \n\t" - "str.w r10, [r0,#244] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 24 - - "ldr.w r9, [r0,#568] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#572] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#248] \n\t" - "str.w r10, [r0,#252] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 25 - - "ldr.w r9, [r0,#576] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#580] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#256] \n\t" - "str.w r10, [r0,#260] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 26 - - "ldr.w r9, [r0,#584] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#588] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#264] \n\t" - "str.w r10, [r0,#268] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 27 - - "ldr.w r9, [r0,#592] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#596] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#272] \n\t" - "str.w r10, [r0,#276] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 28 - - "ldr.w r9, [r0,#600] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#604] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#280] \n\t" - "str.w r10, [r0,#284] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 29 - - "ldr.w r9, [r0,#608] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#612] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#288] \n\t" - "str.w r10, [r0,#292] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 30 - - "ldr.w r9, [r0,#616] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#620] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#296] \n\t" - "str.w r10, [r0,#300] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 31 - - "ldr.w r9, [r0,#624] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#628] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#304] \n\t" - "str.w r10, [r0,#308] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 32 - - "ldr.w r9, [r0,#632] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#636] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#312] \n\t" - "str.w r10, [r0,#316] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 33 - - "ldr.w r9, [r0,#640] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#644] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#320] \n\t" - "str.w r10, [r0,#324] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 34 - - "ldr.w r9, [r0,#648] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#652] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#328] \n\t" - "str.w r10, [r0,#332] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 35 - - "ldr.w r9, [r0,#656] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#660] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#336] \n\t" - "str.w r10, [r0,#340] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 36 - - "ldr.w r9, [r0,#664] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#668] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#344] \n\t" - "str.w r10, [r0,#348] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 37 - - "ldr.w r9, [r0,#672] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#676] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#352] \n\t" - "str.w r10, [r0,#356] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 38 - - "ldr.w r9, [r0,#680] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#684] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#360] \n\t" - "str.w r10, [r0,#364] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 39 - - "ldr.w r9, [r0,#688] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#692] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#368] \n\t" - "str.w r10, [r0,#372] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 40 - - "ldr.w r9, [r0,#696] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#700] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#376] \n\t" - "str.w r10, [r0,#380] \n\t" - - // permutation - - // not need to calculate (not used) - - "ldmia.w sp!, {r4-r10} \n\t" - : - : [roundKeys] "r" (roundKeys) - : "cc"); -} diff --git a/romulus/Implementations/crypto_aead/romulusn1+v13/armsrc_NEC/skinny_key_schedule3.c b/romulus/Implementations/crypto_aead/romulusn1+v13/armsrc_NEC/skinny_key_schedule3.c deleted file mode 100644 index 0b8f83b..0000000 --- a/romulus/Implementations/crypto_aead/romulusn1+v13/armsrc_NEC/skinny_key_schedule3.c +++ /dev/null @@ -1,2201 +0,0 @@ -/****************************************************************************** - * Copyright (c) 2020, NEC Corporation. - * - * THIS CODE IS FURNISHED TO YOU "AS IS" WITHOUT WARRANTY OF ANY KIND. - * - *****************************************************************************/ - -/* - * SKINNY-128-384 - * - * AC(c0 c1) ^ TK3 -> store - * ART(TK3) - * - * number of rounds : 40 - */ - -__attribute__((aligned(4))) -void RunEncryptionKeyScheduleTK3(unsigned char *roundKeys, unsigned char *pRC) -{ - // r0 : points to roundKeys(& masterKey) - // r1 : points to RC - // r2-r5 : key state - // r6-r7 : temp use - // r8 : constant(0x7f7f7f7f) - // r9 : constant(0x80808080) - asm volatile( - "stmdb sp!, {r4-r9} \n\t" - "ldr.w r2, [r0,#32] \n\t" // load master key - "ldr.w r3, [r0,#36] \n\t" // load master key - "ldr.w r4, [r0,#40] \n\t" // load master key - "ldr.w r5, [r0,#44] \n\t" // load master key - "mov.w r8, #0x7f7f7f7f \n\t" - "mov.w r9, #0x80808080 \n\t" - - // round 1 - - // AC(c0 c1) - "ldrb.w r6, [r1,#0] \n\t" // load RC - - "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc - "and.w r6, r6, #0xf \n\t" - "eor.w r6, r6, r2 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#384] \n\t" - "str.w r7, [r0,#388] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 2 - - // AC(c0 c1) - "ldrb.w r6, [r1,#1] \n\t" // load RC - - "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc - "and.w r6, r6, #0xf \n\t" - "eor.w r6, r6, r2 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#392] \n\t" - "str.w r7, [r0,#396] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 3 - - // AC(c0 c1) - "ldrb.w r6, [r1,#2] \n\t" // load RC - - "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc - "and.w r6, r6, #0xf \n\t" - "eor.w r6, r6, r2 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#400] \n\t" - "str.w r7, [r0,#404] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 4 - - // AC(c0 c1) - "ldrb.w r6, [r1,#3] \n\t" // load RC - - "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc - "and.w r6, r6, #0xf \n\t" - "eor.w r6, r6, r2 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#408] \n\t" - "str.w r7, [r0,#412] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 5 - - // AC(c0 c1) - "ldrb.w r6, [r1,#4] \n\t" // load RC - - "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc - "and.w r6, r6, #0xf \n\t" - "eor.w r6, r6, r2 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#416] \n\t" - "str.w r7, [r0,#420] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 6 - - // AC(c0 c1) - "ldrb.w r6, [r1,#5] \n\t" // load RC - - "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc - "and.w r6, r6, #0xf \n\t" - "eor.w r6, r6, r2 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#424] \n\t" - "str.w r7, [r0,#428] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 7 - - // AC(c0 c1) - "ldrb.w r6, [r1,#6] \n\t" // load RC - - "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc - "and.w r6, r6, #0xf \n\t" - "eor.w r6, r6, r2 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#432] \n\t" - "str.w r7, [r0,#436] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 8 - - // AC(c0 c1) - "ldrb.w r6, [r1,#7] \n\t" // load RC - - "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc - "and.w r6, r6, #0xf \n\t" - "eor.w r6, r6, r2 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#440] \n\t" - "str.w r7, [r0,#444] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 9 - - // AC(c0 c1) - "ldrb.w r6, [r1,#8] \n\t" // load RC - - "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc - "and.w r6, r6, #0xf \n\t" - "eor.w r6, r6, r2 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#448] \n\t" - "str.w r7, [r0,#452] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 10 - - // AC(c0 c1) - "ldrb.w r6, [r1,#9] \n\t" // load RC - - "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc - "and.w r6, r6, #0xf \n\t" - "eor.w r6, r6, r2 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#456] \n\t" - "str.w r7, [r0,#460] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 11 - - // AC(c0 c1) - "ldrb.w r6, [r1,#10] \n\t" // load RC - - "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc - "and.w r6, r6, #0xf \n\t" - "eor.w r6, r6, r2 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#464] \n\t" - "str.w r7, [r0,#468] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 12 - - // AC(c0 c1) - "ldrb.w r6, [r1,#11] \n\t" // load RC - - "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc - "and.w r6, r6, #0xf \n\t" - "eor.w r6, r6, r2 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#472] \n\t" - "str.w r7, [r0,#476] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 13 - - // AC(c0 c1) - "ldrb.w r6, [r1,#12] \n\t" // load RC - - "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc - "and.w r6, r6, #0xf \n\t" - "eor.w r6, r6, r2 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#480] \n\t" - "str.w r7, [r0,#484] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 14 - - // AC(c0 c1) - "ldrb.w r6, [r1,#13] \n\t" // load RC - - "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc - "and.w r6, r6, #0xf \n\t" - "eor.w r6, r6, r2 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#488] \n\t" - "str.w r7, [r0,#492] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 15 - - // AC(c0 c1) - "ldrb.w r6, [r1,#14] \n\t" // load RC - - "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc - "and.w r6, r6, #0xf \n\t" - "eor.w r6, r6, r2 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#496] \n\t" - "str.w r7, [r0,#500] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 16 - - // AC(c0 c1) - "ldrb.w r6, [r1,#15] \n\t" // load RC - - "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc - "and.w r6, r6, #0xf \n\t" - "eor.w r6, r6, r2 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#504] \n\t" - "str.w r7, [r0,#508] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 17 - - // AC(c0 c1) - "ldrb.w r6, [r1,#16] \n\t" // load RC - - "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc - "and.w r6, r6, #0xf \n\t" - "eor.w r6, r6, r2 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#512] \n\t" - "str.w r7, [r0,#516] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 18 - - // AC(c0 c1) - "ldrb.w r6, [r1,#17] \n\t" // load RC - - "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc - "and.w r6, r6, #0xf \n\t" - "eor.w r6, r6, r2 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#520] \n\t" - "str.w r7, [r0,#524] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 19 - - // AC(c0 c1) - "ldrb.w r6, [r1,#18] \n\t" // load RC - - "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc - "and.w r6, r6, #0xf \n\t" - "eor.w r6, r6, r2 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#528] \n\t" - "str.w r7, [r0,#532] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 20 - - // AC(c0 c1) - "ldrb.w r6, [r1,#19] \n\t" // load RC - - "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc - "and.w r6, r6, #0xf \n\t" - "eor.w r6, r6, r2 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#536] \n\t" - "str.w r7, [r0,#540] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 21 - - // AC(c0 c1) - "ldrb.w r6, [r1,#20] \n\t" // load RC - - "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc - "and.w r6, r6, #0xf \n\t" - "eor.w r6, r6, r2 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#544] \n\t" - "str.w r7, [r0,#548] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 22 - - // AC(c0 c1) - "ldrb.w r6, [r1,#21] \n\t" // load RC - - "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc - "and.w r6, r6, #0xf \n\t" - "eor.w r6, r6, r2 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#552] \n\t" - "str.w r7, [r0,#556] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 23 - - // AC(c0 c1) - "ldrb.w r6, [r1,#22] \n\t" // load RC - - "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc - "and.w r6, r6, #0xf \n\t" - "eor.w r6, r6, r2 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#560] \n\t" - "str.w r7, [r0,#564] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 24 - - // AC(c0 c1) - "ldrb.w r6, [r1,#23] \n\t" // load RC - - "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc - "and.w r6, r6, #0xf \n\t" - "eor.w r6, r6, r2 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#568] \n\t" - "str.w r7, [r0,#572] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 25 - - // AC(c0 c1) - "ldrb.w r6, [r1,#24] \n\t" // load RC - - "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc - "and.w r6, r6, #0xf \n\t" - "eor.w r6, r6, r2 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#576] \n\t" - "str.w r7, [r0,#580] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 26 - - // AC(c0 c1) - "ldrb.w r6, [r1,#25] \n\t" // load RC - - "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc - "and.w r6, r6, #0xf \n\t" - "eor.w r6, r6, r2 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#584] \n\t" - "str.w r7, [r0,#588] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 27 - - // AC(c0 c1) - "ldrb.w r6, [r1,#26] \n\t" // load RC - - "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc - "and.w r6, r6, #0xf \n\t" - "eor.w r6, r6, r2 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#592] \n\t" - "str.w r7, [r0,#596] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 28 - - // AC(c0 c1) - "ldrb.w r6, [r1,#27] \n\t" // load RC - - "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc - "and.w r6, r6, #0xf \n\t" - "eor.w r6, r6, r2 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#600] \n\t" - "str.w r7, [r0,#604] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 29 - - // AC(c0 c1) - "ldrb.w r6, [r1,#28] \n\t" // load RC - - "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc - "and.w r6, r6, #0xf \n\t" - "eor.w r6, r6, r2 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#608] \n\t" - "str.w r7, [r0,#612] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 30 - - // AC(c0 c1) - "ldrb.w r6, [r1,#29] \n\t" // load RC - - "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc - "and.w r6, r6, #0xf \n\t" - "eor.w r6, r6, r2 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#616] \n\t" - "str.w r7, [r0,#620] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 31 - - // AC(c0 c1) - "ldrb.w r6, [r1,#30] \n\t" // load RC - - "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc - "and.w r6, r6, #0xf \n\t" - "eor.w r6, r6, r2 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#624] \n\t" - "str.w r7, [r0,#628] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 32 - - // AC(c0 c1) - "ldrb.w r6, [r1,#31] \n\t" // load RC - - "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc - "and.w r6, r6, #0xf \n\t" - "eor.w r6, r6, r2 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#632] \n\t" - "str.w r7, [r0,#636] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 33 - - // AC(c0 c1) - "ldrb.w r6, [r1,#32] \n\t" // load RC - - "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc - "and.w r6, r6, #0xf \n\t" - "eor.w r6, r6, r2 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#640] \n\t" - "str.w r7, [r0,#644] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 34 - - // AC(c0 c1) - "ldrb.w r6, [r1,#33] \n\t" // load RC - - "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc - "and.w r6, r6, #0xf \n\t" - "eor.w r6, r6, r2 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#648] \n\t" - "str.w r7, [r0,#652] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 35 - - // AC(c0 c1) - "ldrb.w r6, [r1,#34] \n\t" // load RC - - "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc - "and.w r6, r6, #0xf \n\t" - "eor.w r6, r6, r2 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#656] \n\t" - "str.w r7, [r0,#660] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 36 - - // AC(c0 c1) - "ldrb.w r6, [r1,#35] \n\t" // load RC - - "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc - "and.w r6, r6, #0xf \n\t" - "eor.w r6, r6, r2 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#664] \n\t" - "str.w r7, [r0,#668] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 37 - - // AC(c0 c1) - "ldrb.w r6, [r1,#36] \n\t" // load RC - - "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc - "and.w r6, r6, #0xf \n\t" - "eor.w r6, r6, r2 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#672] \n\t" - "str.w r7, [r0,#676] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 38 - - // AC(c0 c1) - "ldrb.w r6, [r1,#37] \n\t" // load RC - - "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc - "and.w r6, r6, #0xf \n\t" - "eor.w r6, r6, r2 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#680] \n\t" - "str.w r7, [r0,#684] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 39 - - // AC(c0 c1) - "ldrb.w r6, [r1,#38] \n\t" // load RC - - "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc - "and.w r6, r6, #0xf \n\t" - "eor.w r6, r6, r2 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#688] \n\t" - "str.w r7, [r0,#692] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 40 - - // AC(c0 c1) - "ldrb.w r6, [r1,#39] \n\t" // load RC - - "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc - "and.w r6, r6, #0xf \n\t" - "eor.w r6, r6, r2 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#696] \n\t" - "str.w r7, [r0,#700] \n\t" - - // permutation - - // not need to calculate (not used) - - "ldmia.w sp!, {r4-r9} \n\t" - : - : [roundKeys] "r" (roundKeys), [pRC] "r" (pRC) - : "cc"); -} diff --git a/romulus/Implementations/crypto_aead/romulusn1+v13/armsrc_NEC/skinny_main.c b/romulus/Implementations/crypto_aead/romulusn1+v13/armsrc_NEC/skinny_main.c deleted file mode 100644 index e266958..0000000 --- a/romulus/Implementations/crypto_aead/romulusn1+v13/armsrc_NEC/skinny_main.c +++ /dev/null @@ -1,3462 +0,0 @@ -/****************************************************************************** - * Copyright (c) 2020, NEC Corporation. - * - * THIS CODE IS FURNISHED TO YOU "AS IS" WITHOUT WARRANTY OF ANY KIND. - * - *****************************************************************************/ - -/* - * SKINNY-128-384 - * - * ART(TK1) -> store - * load AC(c0 c1) ^ TK3 ^ TK2 - * load TK1 - * calc AC(c0 c1) ^ TK3 ^ TK2 ^ TK1 -> use at (AC->ART) - * SC->SR->(AC->ART)->MC - * - * number of rounds : 40 - */ - -#include "skinny.h" - -/* - * S-BOX - */ -unsigned char SBOX[512] -= { - // Original - 0x65, 0x4c, 0x6a, 0x42, 0x4b, 0x63, 0x43, 0x6b, 0x55, 0x75, 0x5a, 0x7a, 0x53, 0x73, 0x5b, 0x7b, - 0x35, 0x8c, 0x3a, 0x81, 0x89, 0x33, 0x80, 0x3b, 0x95, 0x25, 0x98, 0x2a, 0x90, 0x23, 0x99, 0x2b, - 0xe5, 0xcc, 0xe8, 0xc1, 0xc9, 0xe0, 0xc0, 0xe9, 0xd5, 0xf5, 0xd8, 0xf8, 0xd0, 0xf0, 0xd9, 0xf9, - 0xa5, 0x1c, 0xa8, 0x12, 0x1b, 0xa0, 0x13, 0xa9, 0x05, 0xb5, 0x0a, 0xb8, 0x03, 0xb0, 0x0b, 0xb9, - 0x32, 0x88, 0x3c, 0x85, 0x8d, 0x34, 0x84, 0x3d, 0x91, 0x22, 0x9c, 0x2c, 0x94, 0x24, 0x9d, 0x2d, - 0x62, 0x4a, 0x6c, 0x45, 0x4d, 0x64, 0x44, 0x6d, 0x52, 0x72, 0x5c, 0x7c, 0x54, 0x74, 0x5d, 0x7d, - 0xa1, 0x1a, 0xac, 0x15, 0x1d, 0xa4, 0x14, 0xad, 0x02, 0xb1, 0x0c, 0xbc, 0x04, 0xb4, 0x0d, 0xbd, - 0xe1, 0xc8, 0xec, 0xc5, 0xcd, 0xe4, 0xc4, 0xed, 0xd1, 0xf1, 0xdc, 0xfc, 0xd4, 0xf4, 0xdd, 0xfd, - 0x36, 0x8e, 0x38, 0x82, 0x8b, 0x30, 0x83, 0x39, 0x96, 0x26, 0x9a, 0x28, 0x93, 0x20, 0x9b, 0x29, - 0x66, 0x4e, 0x68, 0x41, 0x49, 0x60, 0x40, 0x69, 0x56, 0x76, 0x58, 0x78, 0x50, 0x70, 0x59, 0x79, - 0xa6, 0x1e, 0xaa, 0x11, 0x19, 0xa3, 0x10, 0xab, 0x06, 0xb6, 0x08, 0xba, 0x00, 0xb3, 0x09, 0xbb, - 0xe6, 0xce, 0xea, 0xc2, 0xcb, 0xe3, 0xc3, 0xeb, 0xd6, 0xf6, 0xda, 0xfa, 0xd3, 0xf3, 0xdb, 0xfb, - 0x31, 0x8a, 0x3e, 0x86, 0x8f, 0x37, 0x87, 0x3f, 0x92, 0x21, 0x9e, 0x2e, 0x97, 0x27, 0x9f, 0x2f, - 0x61, 0x48, 0x6e, 0x46, 0x4f, 0x67, 0x47, 0x6f, 0x51, 0x71, 0x5e, 0x7e, 0x57, 0x77, 0x5f, 0x7f, - 0xa2, 0x18, 0xae, 0x16, 0x1f, 0xa7, 0x17, 0xaf, 0x01, 0xb2, 0x0e, 0xbe, 0x07, 0xb7, 0x0f, 0xbf, - 0xe2, 0xca, 0xee, 0xc6, 0xcf, 0xe7, 0xc7, 0xef, 0xd2, 0xf2, 0xde, 0xfe, 0xd7, 0xf7, 0xdf, 0xff, - - // Original ^ c2(0x02) - 0x67, 0x4e, 0x68, 0x40, 0x49, 0x61, 0x41, 0x69, 0x57, 0x77, 0x58, 0x78, 0x51, 0x71, 0x59, 0x79, - 0x37, 0x8e, 0x38, 0x83, 0x8b, 0x31, 0x82, 0x39, 0x97, 0x27, 0x9a, 0x28, 0x92, 0x21, 0x9b, 0x29, - 0xe7, 0xce, 0xea, 0xc3, 0xcb, 0xe2, 0xc2, 0xeb, 0xd7, 0xf7, 0xda, 0xfa, 0xd2, 0xf2, 0xdb, 0xfb, - 0xa7, 0x1e, 0xaa, 0x10, 0x19, 0xa2, 0x11, 0xab, 0x07, 0xb7, 0x08, 0xba, 0x01, 0xb2, 0x09, 0xbb, - 0x30, 0x8a, 0x3e, 0x87, 0x8f, 0x36, 0x86, 0x3f, 0x93, 0x20, 0x9e, 0x2e, 0x96, 0x26, 0x9f, 0x2f, - 0x60, 0x48, 0x6e, 0x47, 0x4f, 0x66, 0x46, 0x6f, 0x50, 0x70, 0x5e, 0x7e, 0x56, 0x76, 0x5f, 0x7f, - 0xa3, 0x18, 0xae, 0x17, 0x1f, 0xa6, 0x16, 0xaf, 0x00, 0xb3, 0x0e, 0xbe, 0x06, 0xb6, 0x0f, 0xbf, - 0xe3, 0xca, 0xee, 0xc7, 0xcf, 0xe6, 0xc6, 0xef, 0xd3, 0xf3, 0xde, 0xfe, 0xd6, 0xf6, 0xdf, 0xff, - 0x34, 0x8c, 0x3a, 0x80, 0x89, 0x32, 0x81, 0x3b, 0x94, 0x24, 0x98, 0x2a, 0x91, 0x22, 0x99, 0x2b, - 0x64, 0x4c, 0x6a, 0x43, 0x4b, 0x62, 0x42, 0x6b, 0x54, 0x74, 0x5a, 0x7a, 0x52, 0x72, 0x5b, 0x7b, - 0xa4, 0x1c, 0xa8, 0x13, 0x1b, 0xa1, 0x12, 0xa9, 0x04, 0xb4, 0x0a, 0xb8, 0x02, 0xb1, 0x0b, 0xb9, - 0xe4, 0xcc, 0xe8, 0xc0, 0xc9, 0xe1, 0xc1, 0xe9, 0xd4, 0xf4, 0xd8, 0xf8, 0xd1, 0xf1, 0xd9, 0xf9, - 0x33, 0x88, 0x3c, 0x84, 0x8d, 0x35, 0x85, 0x3d, 0x90, 0x23, 0x9c, 0x2c, 0x95, 0x25, 0x9d, 0x2d, - 0x63, 0x4a, 0x6c, 0x44, 0x4d, 0x65, 0x45, 0x6d, 0x53, 0x73, 0x5c, 0x7c, 0x55, 0x75, 0x5d, 0x7d, - 0xa0, 0x1a, 0xac, 0x14, 0x1d, 0xa5, 0x15, 0xad, 0x03, 0xb0, 0x0c, 0xbc, 0x05, 0xb5, 0x0d, 0xbd, - 0xe0, 0xc8, 0xec, 0xc4, 0xcd, 0xe5, 0xc5, 0xed, 0xd0, 0xf0, 0xdc, 0xfc, 0xd5, 0xf5, 0xdd, 0xfd, -}; - -/* - * Round Constants - */ -unsigned char RC[56] -= { - 0x01, 0x03, 0x07, 0x0F, 0x1F, 0x3E, 0x3D, 0x3B, - 0x37, 0x2F, 0x1E, 0x3C, 0x39, 0x33, 0x27, 0x0E, - 0x1D, 0x3A, 0x35, 0x2B, 0x16, 0x2C, 0x18, 0x30, - 0x21, 0x02, 0x05, 0x0B, 0x17, 0x2E, 0x1C, 0x38, - 0x31, 0x23, 0x06, 0x0D, 0x1B, 0x36, 0x2D, 0x1A, - 0x34, 0x29, 0x12, 0x24, 0x08, 0x11, 0x22, 0x04, - 0x09, 0x13, 0x26, 0x0c, 0x19, 0x32, 0x25, 0x0a,}; - -extern void Encrypt(unsigned char *block, unsigned char *roundKeys, unsigned char *pSBOX) __attribute__((noinline)); -extern void RunEncryptionKeyScheduleTK2(unsigned char *roundKeys) __attribute__((noinline)); -extern void RunEncryptionKeyScheduleTK3(unsigned char *roundKeys, unsigned char *pRC) __attribute__((noinline)); - -void skinny_128_384_enc123_12 (unsigned char* input, skinny_ctrl* pskinny_ctrl, unsigned char* CNT, unsigned char* T, const unsigned char* K) -{ - *((unsigned int *)&pskinny_ctrl->roundKeys[0] ) = *((unsigned int *)&CNT[0]); - *((unsigned int *)&pskinny_ctrl->roundKeys[4] ) = *((unsigned int *)&CNT[4]); - *((unsigned int *)&pskinny_ctrl->roundKeys[16]) = *((unsigned int *)&T[0]); - *((unsigned int *)&pskinny_ctrl->roundKeys[20]) = *((unsigned int *)&T[4]); - *((unsigned int *)&pskinny_ctrl->roundKeys[24]) = *((unsigned int *)&T[8]); - *((unsigned int *)&pskinny_ctrl->roundKeys[28]) = *((unsigned int *)&T[12]); - *((unsigned int *)&pskinny_ctrl->roundKeys[32]) = *((unsigned int *)&K[0]); - *((unsigned int *)&pskinny_ctrl->roundKeys[36]) = *((unsigned int *)&K[4]); - *((unsigned int *)&pskinny_ctrl->roundKeys[40]) = *((unsigned int *)&K[8]); - *((unsigned int *)&pskinny_ctrl->roundKeys[44]) = *((unsigned int *)&K[12]); - - RunEncryptionKeyScheduleTK3(pskinny_ctrl->roundKeys, RC); - RunEncryptionKeyScheduleTK2(pskinny_ctrl->roundKeys); - Encrypt(input, pskinny_ctrl->roundKeys, SBOX); - - pskinny_ctrl->func_skinny_128_384_enc = skinny_128_384_enc12_12; -} - -void skinny_128_384_enc12_12 (unsigned char* input, skinny_ctrl* pskinny_ctrl, unsigned char* CNT, unsigned char* T, const unsigned char* K) -{ - (void)K; - - *((unsigned int *)&pskinny_ctrl->roundKeys[0] ) = *((unsigned int *)&CNT[0]); - *((unsigned int *)&pskinny_ctrl->roundKeys[4] ) = *((unsigned int *)&CNT[4]); - *((unsigned int *)&pskinny_ctrl->roundKeys[16]) = *((unsigned int *)&T[0]); - *((unsigned int *)&pskinny_ctrl->roundKeys[20]) = *((unsigned int *)&T[4]); - *((unsigned int *)&pskinny_ctrl->roundKeys[24]) = *((unsigned int *)&T[8]); - *((unsigned int *)&pskinny_ctrl->roundKeys[28]) = *((unsigned int *)&T[12]); - - RunEncryptionKeyScheduleTK2(pskinny_ctrl->roundKeys); - Encrypt(input, pskinny_ctrl->roundKeys, SBOX); -} - -extern void skinny_128_384_enc1_1 (unsigned char* input, skinny_ctrl* pskinny_ctrl, unsigned char* CNT, unsigned char* T, const unsigned char* K) -{ - (void)T; - (void)K; - - *((unsigned int *)&pskinny_ctrl->roundKeys[0] ) = *((unsigned int *)&CNT[0]); - *((unsigned int *)&pskinny_ctrl->roundKeys[4] ) = *((unsigned int *)&CNT[4]); - - Encrypt(input, pskinny_ctrl->roundKeys, SBOX); -} - -__attribute__((aligned(4))) -void Encrypt(unsigned char *block, unsigned char *roundKeys, unsigned char *pSBOX) -{ - // r0 : ponits to plaintext - // r1 : points to roundKeys(& masterKey) - // r2 : points to SBOX - // r3-r6 : cipher state - // r7-r12: temp use - // r14 : temp use - asm volatile( - "stmdb sp!, {r4-r12,r14} \n\t" - "stmdb.w sp!, {r0} \n\t" // push store pointer - -// ART(TK1) - - "ldm.w r1, {r3-r4} \n\t" // load master key - - // round 1-2 - -// // round key store(do not need) -// "str.w r3, [r1,#0] \n\t" -// "str.w r4, [r1,#4] \n\t" - - // premutation - - // r3 ( k3 k2 k1 k0) --- --- --- --- - // r4 ( k7 k6 k5 k4) --- --- --- --- - // r5 (--- --- --- ---) -----> k5 k0 k7 k1 - // r6 (--- --- --- ---) k3 k4 k6 k2 -#ifdef STM32F4 // for Cortex-M4 - "ror.w r5,r4, #16 \n\t" // r5( k5 k4 k7 k6) - "bfi.w r5,r3, #16,#8 \n\t" // r5( k5 k0 k7 k6) - "pkhtb.w r6,r3, r3, asr #16 \n\t" // r6( k3 k2 k3 k2) - "ror.w r3, #8 \n\t" // r3( k0 k3 k2 k1) - "bfi.w r5,r3, #0,#8 \n\t" // r5( k5 k4 k2 k6) - "bfi.w r6,r4, #16,#8 \n\t" // r6( k3 k4 k3 k2) - "ror.w r4,#16 \n\t" // r4( k5 k4 k7 k6) - "bfi.w r6,r4, #8,#8 \n\t" // r6( k3 k4 k6 k2) -#else // for Cortex-M3 - "rev.w r5, r4 \n\t" // r5( k4 k5 k6 k7) - "lsl.w r5, r5, #8 \n\t" // r5( k5 k6 k7 ---) - "bfi.w r5,r3, #16,#8 \n\t" // r5( k5 k0 k7 ---) - "lsr.w r3, r3, #8 \n\t" // r3(--- k3 k2 k1) - "bfi.w r5,r3, #0, #8 \n\t" // r5( k5 k0 k7 k1) - "rev16.w r6, r3 \n\t" // r6( k3 --- k1 k2) - "bfi.w r6,r4, #16,#8 \n\t" // r6( k3 k4 k1 k2) - "lsr.w r4, r4, #16 \n\t" // r4(-- --- k7 k6) - "bfi.w r6,r4, #8, #8 \n\t" // r6( k3 k4 k6 k2) -#endif - // round 3-4 - - // round key store - "str.w r5, [r1,#8] \n\t" - "str.w r6, [r1,#12] \n\t" - - // premutation - - // r3 (--- --- --- ---) k5 k0 k7 k1 - // r4 (--- --- --- ---) k3 k4 k6 k2 - // r5 ( k3 k2 k1 k0) -----> --- --- --- --- - // r6 ( k7 k6 k5 k4) --- --- --- --- -#ifdef STM32F4 // for Cortex-M4 - "ror.w r3,r6, #16 \n\t" // r3( k5 k4 k7 k6) - "bfi.w r3,r5, #16,#8 \n\t" // r3( k5 k0 k7 k6) - "pkhtb.w r4,r5, r5, asr #16 \n\t" // r4( k3 k2 k3 k2) - "ror.w r5, #8 \n\t" // r5( k0 k3 k2 k1) - "bfi.w r3,r5, #0,#8 \n\t" // r3( k5 k4 k2 k6) - "bfi.w r4,r6, #16,#8 \n\t" // r4( k3 k4 k3 k2) - "ror.w r6,#16 \n\t" // r6( k5 k4 k7 k6) - "bfi.w r4,r6, #8,#8 \n\t" // r4( k3 k4 k6 k2) -#else // for Cortex-M3 - "rev.w r3, r6 \n\t" // r3( k4 k5 k6 k7) - "lsl.w r3, r3, #8 \n\t" // r3( k5 k6 k7 ---) - "bfi.w r3,r5, #16,#8 \n\t" // r3( k5 k0 k7 ---) - "lsr.w r5, r5, #8 \n\t" // r5(--- k3 k2 k1) - "bfi.w r3,r5, #0, #8 \n\t" // r3( k5 k0 k7 k1) - "rev16.w r4, r5 \n\t" // r4( k3 --- k1 k2) - "bfi.w r4,r6, #16,#8 \n\t" // r4( k3 k4 k1 k2) - "lsr.w r6, r6, #16 \n\t" // r6(-- --- k7 k6) - "bfi.w r4,r6, #8, #8 \n\t" // r4( k3 k4 k6 k2) -#endif - - // round 5-6 - - // round key store - "str.w r3, [r1,#16] \n\t" - "str.w r4, [r1,#20] \n\t" - - // premutation - - // r3 ( k3 k2 k1 k0) --- --- --- --- - // r4 ( k7 k6 k5 k4) --- --- --- --- - // r5 (--- --- --- ---) -----> k5 k0 k7 k1 - // r6 (--- --- --- ---) k3 k4 k6 k2 -#ifdef STM32F4 // for Cortex-M4 - "ror.w r5,r4, #16 \n\t" // r5( k5 k4 k7 k6) - "bfi.w r5,r3, #16,#8 \n\t" // r5( k5 k0 k7 k6) - "pkhtb.w r6,r3, r3, asr #16 \n\t" // r6( k3 k2 k3 k2) - "ror.w r3, #8 \n\t" // r3( k0 k3 k2 k1) - "bfi.w r5,r3, #0,#8 \n\t" // r5( k5 k4 k2 k6) - "bfi.w r6,r4, #16,#8 \n\t" // r6( k3 k4 k3 k2) - "ror.w r4,#16 \n\t" // r4( k5 k4 k7 k6) - "bfi.w r6,r4, #8,#8 \n\t" // r6( k3 k4 k6 k2) -#else // for Cortex-M3 - "rev.w r5, r4 \n\t" // r5( k4 k5 k6 k7) - "lsl.w r5, r5, #8 \n\t" // r5( k5 k6 k7 ---) - "bfi.w r5,r3, #16,#8 \n\t" // r5( k5 k0 k7 ---) - "lsr.w r3, r3, #8 \n\t" // r3(--- k3 k2 k1) - "bfi.w r5,r3, #0, #8 \n\t" // r5( k5 k0 k7 k1) - "rev16.w r6, r3 \n\t" // r6( k3 --- k1 k2) - "bfi.w r6,r4, #16,#8 \n\t" // r6( k3 k4 k1 k2) - "lsr.w r4, r4, #16 \n\t" // r4(-- --- k7 k6) - "bfi.w r6,r4, #8, #8 \n\t" // r6( k3 k4 k6 k2) -#endif - // round 7-8 - - // round key store - "str.w r5, [r1,#24] \n\t" - "str.w r6, [r1,#28] \n\t" - - // premutation - - // r3 (--- --- --- ---) k5 k0 k7 k1 - // r4 (--- --- --- ---) k3 k4 k6 k2 - // r5 ( k3 k2 k1 k0) -----> --- --- --- --- - // r6 ( k7 k6 k5 k4) --- --- --- --- -#ifdef STM32F4 // for Cortex-M4 - "ror.w r3,r6, #16 \n\t" // r3( k5 k4 k7 k6) - "bfi.w r3,r5, #16,#8 \n\t" // r3( k5 k0 k7 k6) - "pkhtb.w r4,r5, r5, asr #16 \n\t" // r4( k3 k2 k3 k2) - "ror.w r5, #8 \n\t" // r5( k0 k3 k2 k1) - "bfi.w r3,r5, #0,#8 \n\t" // r3( k5 k4 k2 k6) - "bfi.w r4,r6, #16,#8 \n\t" // r4( k3 k4 k3 k2) - "ror.w r6,#16 \n\t" // r6( k5 k4 k7 k6) - "bfi.w r4,r6, #8,#8 \n\t" // r4( k3 k4 k6 k2) -#else // for Cortex-M3 - "rev.w r3, r6 \n\t" // r3( k4 k5 k6 k7) - "lsl.w r3, r3, #8 \n\t" // r3( k5 k6 k7 ---) - "bfi.w r3,r5, #16,#8 \n\t" // r3( k5 k0 k7 ---) - "lsr.w r5, r5, #8 \n\t" // r5(--- k3 k2 k1) - "bfi.w r3,r5, #0, #8 \n\t" // r3( k5 k0 k7 k1) - "rev16.w r4, r5 \n\t" // r4( k3 --- k1 k2) - "bfi.w r4,r6, #16,#8 \n\t" // r4( k3 k4 k1 k2) - "lsr.w r6, r6, #16 \n\t" // r6(-- --- k7 k6) - "bfi.w r4,r6, #8, #8 \n\t" // r4( k3 k4 k6 k2) -#endif - - // round 9-10 - - // round key store - "str.w r3, [r1,#32] \n\t" - "str.w r4, [r1,#36] \n\t" - - // premutation - - // r3 ( k3 k2 k1 k0) --- --- --- --- - // r4 ( k7 k6 k5 k4) --- --- --- --- - // r5 (--- --- --- ---) -----> k5 k0 k7 k1 - // r6 (--- --- --- ---) k3 k4 k6 k2 -#ifdef STM32F4 // for Cortex-M4 - "ror.w r5,r4, #16 \n\t" // r5( k5 k4 k7 k6) - "bfi.w r5,r3, #16,#8 \n\t" // r5( k5 k0 k7 k6) - "pkhtb.w r6,r3, r3, asr #16 \n\t" // r6( k3 k2 k3 k2) - "ror.w r3, #8 \n\t" // r3( k0 k3 k2 k1) - "bfi.w r5,r3, #0,#8 \n\t" // r5( k5 k4 k2 k6) - "bfi.w r6,r4, #16,#8 \n\t" // r6( k3 k4 k3 k2) - "ror.w r4,#16 \n\t" // r4( k5 k4 k7 k6) - "bfi.w r6,r4, #8,#8 \n\t" // r6( k3 k4 k6 k2) -#else // for Cortex-M3 - "rev.w r5, r4 \n\t" // r5( k4 k5 k6 k7) - "lsl.w r5, r5, #8 \n\t" // r5( k5 k6 k7 ---) - "bfi.w r5,r3, #16,#8 \n\t" // r5( k5 k0 k7 ---) - "lsr.w r3, r3, #8 \n\t" // r3(--- k3 k2 k1) - "bfi.w r5,r3, #0, #8 \n\t" // r5( k5 k0 k7 k1) - "rev16.w r6, r3 \n\t" // r6( k3 --- k1 k2) - "bfi.w r6,r4, #16,#8 \n\t" // r6( k3 k4 k1 k2) - "lsr.w r4, r4, #16 \n\t" // r4(-- --- k7 k6) - "bfi.w r6,r4, #8, #8 \n\t" // r6( k3 k4 k6 k2) -#endif - // round 11-12 - - // round key store - "str.w r5, [r1,#40] \n\t" - "str.w r6, [r1,#44] \n\t" - - // premutation - - // r3 (--- --- --- ---) k5 k0 k7 k1 - // r4 (--- --- --- ---) k3 k4 k6 k2 - // r5 ( k3 k2 k1 k0) -----> --- --- --- --- - // r6 ( k7 k6 k5 k4) --- --- --- --- -#ifdef STM32F4 // for Cortex-M4 - "ror.w r3,r6, #16 \n\t" // r3( k5 k4 k7 k6) - "bfi.w r3,r5, #16,#8 \n\t" // r3( k5 k0 k7 k6) - "pkhtb.w r4,r5, r5, asr #16 \n\t" // r4( k3 k2 k3 k2) - "ror.w r5, #8 \n\t" // r5( k0 k3 k2 k1) - "bfi.w r3,r5, #0,#8 \n\t" // r3( k5 k4 k2 k6) - "bfi.w r4,r6, #16,#8 \n\t" // r4( k3 k4 k3 k2) - "ror.w r6,#16 \n\t" // r6( k5 k4 k7 k6) - "bfi.w r4,r6, #8,#8 \n\t" // r4( k3 k4 k6 k2) -#else // for Cortex-M3 - "rev.w r3, r6 \n\t" // r3( k4 k5 k6 k7) - "lsl.w r3, r3, #8 \n\t" // r3( k5 k6 k7 ---) - "bfi.w r3,r5, #16,#8 \n\t" // r3( k5 k0 k7 ---) - "lsr.w r5, r5, #8 \n\t" // r5(--- k3 k2 k1) - "bfi.w r3,r5, #0, #8 \n\t" // r3( k5 k0 k7 k1) - "rev16.w r4, r5 \n\t" // r4( k3 --- k1 k2) - "bfi.w r4,r6, #16,#8 \n\t" // r4( k3 k4 k1 k2) - "lsr.w r6, r6, #16 \n\t" // r6(-- --- k7 k6) - "bfi.w r4,r6, #8, #8 \n\t" // r4( k3 k4 k6 k2) -#endif - - // round 13-14 - - // round key store - "str.w r3, [r1,#48] \n\t" - "str.w r4, [r1,#52] \n\t" - - // premutation - - // r3 ( k3 k2 k1 k0) --- --- --- --- - // r4 ( k7 k6 k5 k4) --- --- --- --- - // r5 (--- --- --- ---) -----> k5 k0 k7 k1 - // r6 (--- --- --- ---) k3 k4 k6 k2 -#ifdef STM32F4 // for Cortex-M4 - "ror.w r5,r4, #16 \n\t" // r5( k5 k4 k7 k6) - "bfi.w r5,r3, #16,#8 \n\t" // r5( k5 k0 k7 k6) - "pkhtb.w r6,r3, r3, asr #16 \n\t" // r6( k3 k2 k3 k2) - "ror.w r3, #8 \n\t" // r3( k0 k3 k2 k1) - "bfi.w r5,r3, #0,#8 \n\t" // r5( k5 k4 k2 k6) - "bfi.w r6,r4, #16,#8 \n\t" // r6( k3 k4 k3 k2) - "ror.w r4,#16 \n\t" // r4( k5 k4 k7 k6) - "bfi.w r6,r4, #8,#8 \n\t" // r6( k3 k4 k6 k2) -#else // for Cortex-M3 - "rev.w r5, r4 \n\t" // r5( k4 k5 k6 k7) - "lsl.w r5, r5, #8 \n\t" // r5( k5 k6 k7 ---) - "bfi.w r5,r3, #16,#8 \n\t" // r5( k5 k0 k7 ---) - "lsr.w r3, r3, #8 \n\t" // r3(--- k3 k2 k1) - "bfi.w r5,r3, #0, #8 \n\t" // r5( k5 k0 k7 k1) - "rev16.w r6, r3 \n\t" // r6( k3 --- k1 k2) - "bfi.w r6,r4, #16,#8 \n\t" // r6( k3 k4 k1 k2) - "lsr.w r4, r4, #16 \n\t" // r4(-- --- k7 k6) - "bfi.w r6,r4, #8, #8 \n\t" // r6( k3 k4 k6 k2) -#endif - // round 15-16 - - // round key store - "str.w r5, [r1,#56] \n\t" - "str.w r6, [r1,#60] \n\t" - - // premutation - - // not need to calculate (not used) - -// SC->(AC->ART)->SR->MC - - "add.w r14, r2, #256 \n\t" // point to SBOX ^ c2(0x02) - - "ldm.w r0, {r3-r6} \n\t" // load plaintext - // r0 now free to overwrite - - // round 1 - - // SubCell+ShiftRow+AC(c2) - // r3 (s3 s2 s1 s0) - // r4 (s7 s6 s5 s4) - // r5 (s11 s10 s9 s8) - // r6 (s15 s14 s13 s12) - - // 1st-2nd line - // r3(s3 s2 s1 s0) - "uxtb.w r9, r3, ror #24 \n\t" // s3 - "uxtb.w r8, r3, ror #16 \n\t" // s2 - "uxtb.w r7, r3, ror #8 \n\t" // s1 - "uxtb.w r3, r3 \n\t" // s0 - // r4(s6 s5 s4 s7) - "uxtb.w r12, r4, ror #16 \n\t" // s6 - "uxtb.w r11, r4, ror #8 \n\t" // s5 - "uxtb.w r10, r4 \n\t" // s4 - "uxtb.w r4, r4, ror #24 \n\t" // s7 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "eor.w r3, r3, r7, lsl #8 \n\t" - "eor.w r3, r3, r8, lsl #16 \n\t" - "eor.w r3, r3, r9, lsl #24 \n\t" - "eor.w r4, r4, r10, lsl #8 \n\t" - "eor.w r4, r4, r11, lsl #16 \n\t" - "eor.w r4, r4, r12, lsl #24 \n\t" - - // 3rd-4th line - // r5(s9 s8 s11 s10) - "uxtb.w r9, r5, ror #8 \n\t" // s9 - "uxtb.w r8, r5 \n\t" // s8 - "uxtb.w r7, r5, ror #24 \n\t" // s11 - "uxtb.w r5, r5, ror #16 \n\t" // s10 - // r6(s12 s15 s14 s13) - "uxtb.w r12, r6 \n\t" // s12 - "uxtb.w r11, r6, ror #24 \n\t" // s15 - "uxtb.w r10, r6, ror #16 \n\t" // s14 - "uxtb.w r6, r6, ror #8 \n\t" // s13 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "eor.w r5, r5, r7, lsl #8 \n\t" - "eor.w r5, r5, r8, lsl #16 \n\t" - "eor.w r5, r5, r9, lsl #24 \n\t" - "eor.w r6, r6, r10, lsl #8 \n\t" - "eor.w r6, r6, r11, lsl #16 \n\t" - "eor.w r6, r6, r12, lsl #24 \n\t" - - // AddRoundKey and AddRoundConst(from roundKeys) - "ldr.w r9, [r1,#0] \n\t" // load TK1 - "ldr.w r10, [r1,#4] \n\t" // load TK1 - "ldr.w r11, [r1,#64] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "ldr.w r12, [r1,#68] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - - "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) - "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) - // r8( s9 s8 s11 s10) - // r6(s12 s14 s14 s13) - - // MixColumn - "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 - "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 - "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 - // r8 ----------------> r8 - - // round 2 - - // SubCell+ShiftRow+AC(c2) - // r7 (s3 s2 s1 s0) - // r8 (s7 s6 s5 s4) - // r9 (s11 s10 s9 s8) - // r10(s15 s14 s13 s12) - - // 1st-2nd line - // r7(s3 s2 s1 s0) - "uxtb.w r5, r7, ror #24 \n\t" // s3 - "uxtb.w r4, r7, ror #16 \n\t" // s2 - "uxtb.w r3, r7, ror #8 \n\t" // s1 - "uxtb.w r7, r7 \n\t" // s0 - // r8(s6 s5 s4 s7) - "uxtb.w r12, r8, ror #16 \n\t" // s6 - "uxtb.w r11, r8, ror #8 \n\t" // s5 - "uxtb.w r6, r8 \n\t" // s4 - "uxtb.w r8, r8, ror #24 \n\t" // s7 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldr.w r0, [r1,#72] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r7, r7, r3, lsl #8 \n\t" - "eor.w r7, r7, r4, lsl #16 \n\t" - "eor.w r7, r7, r5, lsl #24 \n\t" - "eor.w r8, r8, r6, lsl #8 \n\t" - "eor.w r8, r8, r11, lsl #16 \n\t" - "eor.w r8, r8, r12, lsl #24 \n\t" - "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) - - // 3rd-4th line - // r9(s9 s8 s11 s10) - "uxtb.w r5, r9, ror #8 \n\t" // s9 - "uxtb.w r7, r9 \n\t" // s8 - "uxtb.w r3, r9, ror #24 \n\t" // s11 - "uxtb.w r9, r9, ror #16 \n\t" // s10 - // r10(s12 s15 s14 s13) - "uxtb.w r12, r10 \n\t" // s12 - "uxtb.w r11, r10, ror #24 \n\t" // s15 - "uxtb.w r6, r10, ror #16 \n\t" // s14 - "uxtb.w r10, r10, ror #8 \n\t" // s13 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldr.w r0, [r1,#76] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r9, r9, r3, lsl #8 \n\t" - "eor.w r9, r9, r7, lsl #16 \n\t" - "eor.w r9, r9, r5, lsl #24 \n\t" - "eor.w r10, r10, r6, lsl #8 \n\t" - "eor.w r10, r10, r11, lsl #16 \n\t" - "eor.w r10, r10, r12, lsl #24 \n\t" - "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) - - // AddRoundKey and AddRoundConst(from roundKeys) - - // r9( s9 s8 s11 s10) - // r10(s12 s14 s14 s13) - - // MixColumn - "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 - "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 - "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 - // r4 ----------------> r4 - // round 3 - - // SubCell+ShiftRow+AC(c2) - // r3 (s3 s2 s1 s0) - // r4 (s7 s6 s5 s4) - // r5 (s11 s10 s9 s8) - // r6 (s15 s14 s13 s12) - - // 1st-2nd line - // r3(s3 s2 s1 s0) - "uxtb.w r9, r3, ror #24 \n\t" // s3 - "uxtb.w r8, r3, ror #16 \n\t" // s2 - "uxtb.w r7, r3, ror #8 \n\t" // s1 - "uxtb.w r3, r3 \n\t" // s0 - // r4(s6 s5 s4 s7) - "uxtb.w r12, r4, ror #16 \n\t" // s6 - "uxtb.w r11, r4, ror #8 \n\t" // s5 - "uxtb.w r10, r4 \n\t" // s4 - "uxtb.w r4, r4, ror #24 \n\t" // s7 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "eor.w r3, r3, r7, lsl #8 \n\t" - "eor.w r3, r3, r8, lsl #16 \n\t" - "eor.w r3, r3, r9, lsl #24 \n\t" - "eor.w r4, r4, r10, lsl #8 \n\t" - "eor.w r4, r4, r11, lsl #16 \n\t" - "eor.w r4, r4, r12, lsl #24 \n\t" - - // 3rd-4th line - // r5(s9 s8 s11 s10) - "uxtb.w r9, r5, ror #8 \n\t" // s9 - "uxtb.w r8, r5 \n\t" // s8 - "uxtb.w r7, r5, ror #24 \n\t" // s11 - "uxtb.w r5, r5, ror #16 \n\t" // s10 - // r6(s12 s15 s14 s13) - "uxtb.w r12, r6 \n\t" // s12 - "uxtb.w r11, r6, ror #24 \n\t" // s15 - "uxtb.w r10, r6, ror #16 \n\t" // s14 - "uxtb.w r6, r6, ror #8 \n\t" // s13 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "eor.w r5, r5, r7, lsl #8 \n\t" - "eor.w r5, r5, r8, lsl #16 \n\t" - "eor.w r5, r5, r9, lsl #24 \n\t" - "eor.w r6, r6, r10, lsl #8 \n\t" - "eor.w r6, r6, r11, lsl #16 \n\t" - "eor.w r6, r6, r12, lsl #24 \n\t" - - // AddRoundKey and AddRoundConst(from roundKeys) - "ldr.w r9, [r1,#8] \n\t" // load TK1 - "ldr.w r10, [r1,#12] \n\t" // load TK1 - "ldr.w r11, [r1,#80] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "ldr.w r12, [r1,#84] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - - "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) - "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) - // r8( s9 s8 s11 s10) - // r6(s12 s14 s14 s13) - - // MixColumn - "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 - "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 - "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 - // r8 ----------------> r8 - - // round 4 - - // SubCell+ShiftRow+AC(c2) - // r7 (s3 s2 s1 s0) - // r8 (s7 s6 s5 s4) - // r9 (s11 s10 s9 s8) - // r10(s15 s14 s13 s12) - - // 1st-2nd line - // r7(s3 s2 s1 s0) - "uxtb.w r5, r7, ror #24 \n\t" // s3 - "uxtb.w r4, r7, ror #16 \n\t" // s2 - "uxtb.w r3, r7, ror #8 \n\t" // s1 - "uxtb.w r7, r7 \n\t" // s0 - // r8(s6 s5 s4 s7) - "uxtb.w r12, r8, ror #16 \n\t" // s6 - "uxtb.w r11, r8, ror #8 \n\t" // s5 - "uxtb.w r6, r8 \n\t" // s4 - "uxtb.w r8, r8, ror #24 \n\t" // s7 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldr.w r0, [r1,#88] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r7, r7, r3, lsl #8 \n\t" - "eor.w r7, r7, r4, lsl #16 \n\t" - "eor.w r7, r7, r5, lsl #24 \n\t" - "eor.w r8, r8, r6, lsl #8 \n\t" - "eor.w r8, r8, r11, lsl #16 \n\t" - "eor.w r8, r8, r12, lsl #24 \n\t" - "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) - - // 3rd-4th line - // r9(s9 s8 s11 s10) - "uxtb.w r5, r9, ror #8 \n\t" // s9 - "uxtb.w r7, r9 \n\t" // s8 - "uxtb.w r3, r9, ror #24 \n\t" // s11 - "uxtb.w r9, r9, ror #16 \n\t" // s10 - // r10(s12 s15 s14 s13) - "uxtb.w r12, r10 \n\t" // s12 - "uxtb.w r11, r10, ror #24 \n\t" // s15 - "uxtb.w r6, r10, ror #16 \n\t" // s14 - "uxtb.w r10, r10, ror #8 \n\t" // s13 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldr.w r0, [r1,#92] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r9, r9, r3, lsl #8 \n\t" - "eor.w r9, r9, r7, lsl #16 \n\t" - "eor.w r9, r9, r5, lsl #24 \n\t" - "eor.w r10, r10, r6, lsl #8 \n\t" - "eor.w r10, r10, r11, lsl #16 \n\t" - "eor.w r10, r10, r12, lsl #24 \n\t" - "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) - - // AddRoundKey and AddRoundConst(from roundKeys) - - // r9( s9 s8 s11 s10) - // r10(s12 s14 s14 s13) - - // MixColumn - "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 - "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 - "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 - // r4 ----------------> r4 - // round 5 - - // SubCell+ShiftRow+AC(c2) - // r3 (s3 s2 s1 s0) - // r4 (s7 s6 s5 s4) - // r5 (s11 s10 s9 s8) - // r6 (s15 s14 s13 s12) - - // 1st-2nd line - // r3(s3 s2 s1 s0) - "uxtb.w r9, r3, ror #24 \n\t" // s3 - "uxtb.w r8, r3, ror #16 \n\t" // s2 - "uxtb.w r7, r3, ror #8 \n\t" // s1 - "uxtb.w r3, r3 \n\t" // s0 - // r4(s6 s5 s4 s7) - "uxtb.w r12, r4, ror #16 \n\t" // s6 - "uxtb.w r11, r4, ror #8 \n\t" // s5 - "uxtb.w r10, r4 \n\t" // s4 - "uxtb.w r4, r4, ror #24 \n\t" // s7 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "eor.w r3, r3, r7, lsl #8 \n\t" - "eor.w r3, r3, r8, lsl #16 \n\t" - "eor.w r3, r3, r9, lsl #24 \n\t" - "eor.w r4, r4, r10, lsl #8 \n\t" - "eor.w r4, r4, r11, lsl #16 \n\t" - "eor.w r4, r4, r12, lsl #24 \n\t" - - // 3rd-4th line - // r5(s9 s8 s11 s10) - "uxtb.w r9, r5, ror #8 \n\t" // s9 - "uxtb.w r8, r5 \n\t" // s8 - "uxtb.w r7, r5, ror #24 \n\t" // s11 - "uxtb.w r5, r5, ror #16 \n\t" // s10 - // r6(s12 s15 s14 s13) - "uxtb.w r12, r6 \n\t" // s12 - "uxtb.w r11, r6, ror #24 \n\t" // s15 - "uxtb.w r10, r6, ror #16 \n\t" // s14 - "uxtb.w r6, r6, ror #8 \n\t" // s13 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "eor.w r5, r5, r7, lsl #8 \n\t" - "eor.w r5, r5, r8, lsl #16 \n\t" - "eor.w r5, r5, r9, lsl #24 \n\t" - "eor.w r6, r6, r10, lsl #8 \n\t" - "eor.w r6, r6, r11, lsl #16 \n\t" - "eor.w r6, r6, r12, lsl #24 \n\t" - - // AddRoundKey and AddRoundConst(from roundKeys) - "ldr.w r9, [r1,#16] \n\t" // load TK1 - "ldr.w r10, [r1,#20] \n\t" // load TK1 - "ldr.w r11, [r1,#96] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "ldr.w r12, [r1,#100] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - - "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) - "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) - // r8( s9 s8 s11 s10) - // r6(s12 s14 s14 s13) - - // MixColumn - "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 - "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 - "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 - // r8 ----------------> r8 - - // round 6 - - // SubCell+ShiftRow+AC(c2) - // r7 (s3 s2 s1 s0) - // r8 (s7 s6 s5 s4) - // r9 (s11 s10 s9 s8) - // r10(s15 s14 s13 s12) - - // 1st-2nd line - // r7(s3 s2 s1 s0) - "uxtb.w r5, r7, ror #24 \n\t" // s3 - "uxtb.w r4, r7, ror #16 \n\t" // s2 - "uxtb.w r3, r7, ror #8 \n\t" // s1 - "uxtb.w r7, r7 \n\t" // s0 - // r8(s6 s5 s4 s7) - "uxtb.w r12, r8, ror #16 \n\t" // s6 - "uxtb.w r11, r8, ror #8 \n\t" // s5 - "uxtb.w r6, r8 \n\t" // s4 - "uxtb.w r8, r8, ror #24 \n\t" // s7 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldr.w r0, [r1,#104] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r7, r7, r3, lsl #8 \n\t" - "eor.w r7, r7, r4, lsl #16 \n\t" - "eor.w r7, r7, r5, lsl #24 \n\t" - "eor.w r8, r8, r6, lsl #8 \n\t" - "eor.w r8, r8, r11, lsl #16 \n\t" - "eor.w r8, r8, r12, lsl #24 \n\t" - "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) - - // 3rd-4th line - // r9(s9 s8 s11 s10) - "uxtb.w r5, r9, ror #8 \n\t" // s9 - "uxtb.w r7, r9 \n\t" // s8 - "uxtb.w r3, r9, ror #24 \n\t" // s11 - "uxtb.w r9, r9, ror #16 \n\t" // s10 - // r10(s12 s15 s14 s13) - "uxtb.w r12, r10 \n\t" // s12 - "uxtb.w r11, r10, ror #24 \n\t" // s15 - "uxtb.w r6, r10, ror #16 \n\t" // s14 - "uxtb.w r10, r10, ror #8 \n\t" // s13 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldr.w r0, [r1,#108] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r9, r9, r3, lsl #8 \n\t" - "eor.w r9, r9, r7, lsl #16 \n\t" - "eor.w r9, r9, r5, lsl #24 \n\t" - "eor.w r10, r10, r6, lsl #8 \n\t" - "eor.w r10, r10, r11, lsl #16 \n\t" - "eor.w r10, r10, r12, lsl #24 \n\t" - "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) - - // AddRoundKey and AddRoundConst(from roundKeys) - - // r9( s9 s8 s11 s10) - // r10(s12 s14 s14 s13) - - // MixColumn - "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 - "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 - "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 - // r4 ----------------> r4 - // round 7 - - // SubCell+ShiftRow+AC(c2) - // r3 (s3 s2 s1 s0) - // r4 (s7 s6 s5 s4) - // r5 (s11 s10 s9 s8) - // r6 (s15 s14 s13 s12) - - // 1st-2nd line - // r3(s3 s2 s1 s0) - "uxtb.w r9, r3, ror #24 \n\t" // s3 - "uxtb.w r8, r3, ror #16 \n\t" // s2 - "uxtb.w r7, r3, ror #8 \n\t" // s1 - "uxtb.w r3, r3 \n\t" // s0 - // r4(s6 s5 s4 s7) - "uxtb.w r12, r4, ror #16 \n\t" // s6 - "uxtb.w r11, r4, ror #8 \n\t" // s5 - "uxtb.w r10, r4 \n\t" // s4 - "uxtb.w r4, r4, ror #24 \n\t" // s7 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "eor.w r3, r3, r7, lsl #8 \n\t" - "eor.w r3, r3, r8, lsl #16 \n\t" - "eor.w r3, r3, r9, lsl #24 \n\t" - "eor.w r4, r4, r10, lsl #8 \n\t" - "eor.w r4, r4, r11, lsl #16 \n\t" - "eor.w r4, r4, r12, lsl #24 \n\t" - - // 3rd-4th line - // r5(s9 s8 s11 s10) - "uxtb.w r9, r5, ror #8 \n\t" // s9 - "uxtb.w r8, r5 \n\t" // s8 - "uxtb.w r7, r5, ror #24 \n\t" // s11 - "uxtb.w r5, r5, ror #16 \n\t" // s10 - // r6(s12 s15 s14 s13) - "uxtb.w r12, r6 \n\t" // s12 - "uxtb.w r11, r6, ror #24 \n\t" // s15 - "uxtb.w r10, r6, ror #16 \n\t" // s14 - "uxtb.w r6, r6, ror #8 \n\t" // s13 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "eor.w r5, r5, r7, lsl #8 \n\t" - "eor.w r5, r5, r8, lsl #16 \n\t" - "eor.w r5, r5, r9, lsl #24 \n\t" - "eor.w r6, r6, r10, lsl #8 \n\t" - "eor.w r6, r6, r11, lsl #16 \n\t" - "eor.w r6, r6, r12, lsl #24 \n\t" - - // AddRoundKey and AddRoundConst(from roundKeys) - "ldr.w r9, [r1,#24] \n\t" // load TK1 - "ldr.w r10, [r1,#28] \n\t" // load TK1 - "ldr.w r11, [r1,#112] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "ldr.w r12, [r1,#116] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - - "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) - "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) - // r8( s9 s8 s11 s10) - // r6(s12 s14 s14 s13) - - // MixColumn - "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 - "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 - "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 - // r8 ----------------> r8 - - // round 8 - - // SubCell+ShiftRow+AC(c2) - // r7 (s3 s2 s1 s0) - // r8 (s7 s6 s5 s4) - // r9 (s11 s10 s9 s8) - // r10(s15 s14 s13 s12) - - // 1st-2nd line - // r7(s3 s2 s1 s0) - "uxtb.w r5, r7, ror #24 \n\t" // s3 - "uxtb.w r4, r7, ror #16 \n\t" // s2 - "uxtb.w r3, r7, ror #8 \n\t" // s1 - "uxtb.w r7, r7 \n\t" // s0 - // r8(s6 s5 s4 s7) - "uxtb.w r12, r8, ror #16 \n\t" // s6 - "uxtb.w r11, r8, ror #8 \n\t" // s5 - "uxtb.w r6, r8 \n\t" // s4 - "uxtb.w r8, r8, ror #24 \n\t" // s7 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldr.w r0, [r1,#120] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r7, r7, r3, lsl #8 \n\t" - "eor.w r7, r7, r4, lsl #16 \n\t" - "eor.w r7, r7, r5, lsl #24 \n\t" - "eor.w r8, r8, r6, lsl #8 \n\t" - "eor.w r8, r8, r11, lsl #16 \n\t" - "eor.w r8, r8, r12, lsl #24 \n\t" - "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) - - // 3rd-4th line - // r9(s9 s8 s11 s10) - "uxtb.w r5, r9, ror #8 \n\t" // s9 - "uxtb.w r7, r9 \n\t" // s8 - "uxtb.w r3, r9, ror #24 \n\t" // s11 - "uxtb.w r9, r9, ror #16 \n\t" // s10 - // r10(s12 s15 s14 s13) - "uxtb.w r12, r10 \n\t" // s12 - "uxtb.w r11, r10, ror #24 \n\t" // s15 - "uxtb.w r6, r10, ror #16 \n\t" // s14 - "uxtb.w r10, r10, ror #8 \n\t" // s13 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldr.w r0, [r1,#124] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r9, r9, r3, lsl #8 \n\t" - "eor.w r9, r9, r7, lsl #16 \n\t" - "eor.w r9, r9, r5, lsl #24 \n\t" - "eor.w r10, r10, r6, lsl #8 \n\t" - "eor.w r10, r10, r11, lsl #16 \n\t" - "eor.w r10, r10, r12, lsl #24 \n\t" - "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) - - // AddRoundKey and AddRoundConst(from roundKeys) - - // r9( s9 s8 s11 s10) - // r10(s12 s14 s14 s13) - - // MixColumn - "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 - "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 - "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 - // r4 ----------------> r4 - // round 9 - - // SubCell+ShiftRow+AC(c2) - // r3 (s3 s2 s1 s0) - // r4 (s7 s6 s5 s4) - // r5 (s11 s10 s9 s8) - // r6 (s15 s14 s13 s12) - - // 1st-2nd line - // r3(s3 s2 s1 s0) - "uxtb.w r9, r3, ror #24 \n\t" // s3 - "uxtb.w r8, r3, ror #16 \n\t" // s2 - "uxtb.w r7, r3, ror #8 \n\t" // s1 - "uxtb.w r3, r3 \n\t" // s0 - // r4(s6 s5 s4 s7) - "uxtb.w r12, r4, ror #16 \n\t" // s6 - "uxtb.w r11, r4, ror #8 \n\t" // s5 - "uxtb.w r10, r4 \n\t" // s4 - "uxtb.w r4, r4, ror #24 \n\t" // s7 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "eor.w r3, r3, r7, lsl #8 \n\t" - "eor.w r3, r3, r8, lsl #16 \n\t" - "eor.w r3, r3, r9, lsl #24 \n\t" - "eor.w r4, r4, r10, lsl #8 \n\t" - "eor.w r4, r4, r11, lsl #16 \n\t" - "eor.w r4, r4, r12, lsl #24 \n\t" - - // 3rd-4th line - // r5(s9 s8 s11 s10) - "uxtb.w r9, r5, ror #8 \n\t" // s9 - "uxtb.w r8, r5 \n\t" // s8 - "uxtb.w r7, r5, ror #24 \n\t" // s11 - "uxtb.w r5, r5, ror #16 \n\t" // s10 - // r6(s12 s15 s14 s13) - "uxtb.w r12, r6 \n\t" // s12 - "uxtb.w r11, r6, ror #24 \n\t" // s15 - "uxtb.w r10, r6, ror #16 \n\t" // s14 - "uxtb.w r6, r6, ror #8 \n\t" // s13 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "eor.w r5, r5, r7, lsl #8 \n\t" - "eor.w r5, r5, r8, lsl #16 \n\t" - "eor.w r5, r5, r9, lsl #24 \n\t" - "eor.w r6, r6, r10, lsl #8 \n\t" - "eor.w r6, r6, r11, lsl #16 \n\t" - "eor.w r6, r6, r12, lsl #24 \n\t" - - // AddRoundKey and AddRoundConst(from roundKeys) - "ldr.w r9, [r1,#32] \n\t" // load TK1 - "ldr.w r10, [r1,#36] \n\t" // load TK1 - "ldr.w r11, [r1,#128] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "ldr.w r12, [r1,#132] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - - "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) - "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) - // r8( s9 s8 s11 s10) - // r6(s12 s14 s14 s13) - - // MixColumn - "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 - "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 - "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 - // r8 ----------------> r8 - - // round 10 - - // SubCell+ShiftRow+AC(c2) - // r7 (s3 s2 s1 s0) - // r8 (s7 s6 s5 s4) - // r9 (s11 s10 s9 s8) - // r10(s15 s14 s13 s12) - - // 1st-2nd line - // r7(s3 s2 s1 s0) - "uxtb.w r5, r7, ror #24 \n\t" // s3 - "uxtb.w r4, r7, ror #16 \n\t" // s2 - "uxtb.w r3, r7, ror #8 \n\t" // s1 - "uxtb.w r7, r7 \n\t" // s0 - // r8(s6 s5 s4 s7) - "uxtb.w r12, r8, ror #16 \n\t" // s6 - "uxtb.w r11, r8, ror #8 \n\t" // s5 - "uxtb.w r6, r8 \n\t" // s4 - "uxtb.w r8, r8, ror #24 \n\t" // s7 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldr.w r0, [r1,#136] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r7, r7, r3, lsl #8 \n\t" - "eor.w r7, r7, r4, lsl #16 \n\t" - "eor.w r7, r7, r5, lsl #24 \n\t" - "eor.w r8, r8, r6, lsl #8 \n\t" - "eor.w r8, r8, r11, lsl #16 \n\t" - "eor.w r8, r8, r12, lsl #24 \n\t" - "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) - - // 3rd-4th line - // r9(s9 s8 s11 s10) - "uxtb.w r5, r9, ror #8 \n\t" // s9 - "uxtb.w r7, r9 \n\t" // s8 - "uxtb.w r3, r9, ror #24 \n\t" // s11 - "uxtb.w r9, r9, ror #16 \n\t" // s10 - // r10(s12 s15 s14 s13) - "uxtb.w r12, r10 \n\t" // s12 - "uxtb.w r11, r10, ror #24 \n\t" // s15 - "uxtb.w r6, r10, ror #16 \n\t" // s14 - "uxtb.w r10, r10, ror #8 \n\t" // s13 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldr.w r0, [r1,#140] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r9, r9, r3, lsl #8 \n\t" - "eor.w r9, r9, r7, lsl #16 \n\t" - "eor.w r9, r9, r5, lsl #24 \n\t" - "eor.w r10, r10, r6, lsl #8 \n\t" - "eor.w r10, r10, r11, lsl #16 \n\t" - "eor.w r10, r10, r12, lsl #24 \n\t" - "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) - - // AddRoundKey and AddRoundConst(from roundKeys) - - // r9( s9 s8 s11 s10) - // r10(s12 s14 s14 s13) - - // MixColumn - "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 - "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 - "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 - // r4 ----------------> r4 - // round 11 - - // SubCell+ShiftRow+AC(c2) - // r3 (s3 s2 s1 s0) - // r4 (s7 s6 s5 s4) - // r5 (s11 s10 s9 s8) - // r6 (s15 s14 s13 s12) - - // 1st-2nd line - // r3(s3 s2 s1 s0) - "uxtb.w r9, r3, ror #24 \n\t" // s3 - "uxtb.w r8, r3, ror #16 \n\t" // s2 - "uxtb.w r7, r3, ror #8 \n\t" // s1 - "uxtb.w r3, r3 \n\t" // s0 - // r4(s6 s5 s4 s7) - "uxtb.w r12, r4, ror #16 \n\t" // s6 - "uxtb.w r11, r4, ror #8 \n\t" // s5 - "uxtb.w r10, r4 \n\t" // s4 - "uxtb.w r4, r4, ror #24 \n\t" // s7 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "eor.w r3, r3, r7, lsl #8 \n\t" - "eor.w r3, r3, r8, lsl #16 \n\t" - "eor.w r3, r3, r9, lsl #24 \n\t" - "eor.w r4, r4, r10, lsl #8 \n\t" - "eor.w r4, r4, r11, lsl #16 \n\t" - "eor.w r4, r4, r12, lsl #24 \n\t" - - // 3rd-4th line - // r5(s9 s8 s11 s10) - "uxtb.w r9, r5, ror #8 \n\t" // s9 - "uxtb.w r8, r5 \n\t" // s8 - "uxtb.w r7, r5, ror #24 \n\t" // s11 - "uxtb.w r5, r5, ror #16 \n\t" // s10 - // r6(s12 s15 s14 s13) - "uxtb.w r12, r6 \n\t" // s12 - "uxtb.w r11, r6, ror #24 \n\t" // s15 - "uxtb.w r10, r6, ror #16 \n\t" // s14 - "uxtb.w r6, r6, ror #8 \n\t" // s13 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "eor.w r5, r5, r7, lsl #8 \n\t" - "eor.w r5, r5, r8, lsl #16 \n\t" - "eor.w r5, r5, r9, lsl #24 \n\t" - "eor.w r6, r6, r10, lsl #8 \n\t" - "eor.w r6, r6, r11, lsl #16 \n\t" - "eor.w r6, r6, r12, lsl #24 \n\t" - - // AddRoundKey and AddRoundConst(from roundKeys) - "ldr.w r9, [r1,#40] \n\t" // load TK1 - "ldr.w r10, [r1,#44] \n\t" // load TK1 - "ldr.w r11, [r1,#144] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "ldr.w r12, [r1,#148] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - - "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) - "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) - // r8( s9 s8 s11 s10) - // r6(s12 s14 s14 s13) - - // MixColumn - "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 - "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 - "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 - // r8 ----------------> r8 - - // round 12 - - // SubCell+ShiftRow+AC(c2) - // r7 (s3 s2 s1 s0) - // r8 (s7 s6 s5 s4) - // r9 (s11 s10 s9 s8) - // r10(s15 s14 s13 s12) - - // 1st-2nd line - // r7(s3 s2 s1 s0) - "uxtb.w r5, r7, ror #24 \n\t" // s3 - "uxtb.w r4, r7, ror #16 \n\t" // s2 - "uxtb.w r3, r7, ror #8 \n\t" // s1 - "uxtb.w r7, r7 \n\t" // s0 - // r8(s6 s5 s4 s7) - "uxtb.w r12, r8, ror #16 \n\t" // s6 - "uxtb.w r11, r8, ror #8 \n\t" // s5 - "uxtb.w r6, r8 \n\t" // s4 - "uxtb.w r8, r8, ror #24 \n\t" // s7 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldr.w r0, [r1,#152] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r7, r7, r3, lsl #8 \n\t" - "eor.w r7, r7, r4, lsl #16 \n\t" - "eor.w r7, r7, r5, lsl #24 \n\t" - "eor.w r8, r8, r6, lsl #8 \n\t" - "eor.w r8, r8, r11, lsl #16 \n\t" - "eor.w r8, r8, r12, lsl #24 \n\t" - "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) - - // 3rd-4th line - // r9(s9 s8 s11 s10) - "uxtb.w r5, r9, ror #8 \n\t" // s9 - "uxtb.w r7, r9 \n\t" // s8 - "uxtb.w r3, r9, ror #24 \n\t" // s11 - "uxtb.w r9, r9, ror #16 \n\t" // s10 - // r10(s12 s15 s14 s13) - "uxtb.w r12, r10 \n\t" // s12 - "uxtb.w r11, r10, ror #24 \n\t" // s15 - "uxtb.w r6, r10, ror #16 \n\t" // s14 - "uxtb.w r10, r10, ror #8 \n\t" // s13 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldr.w r0, [r1,#156] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r9, r9, r3, lsl #8 \n\t" - "eor.w r9, r9, r7, lsl #16 \n\t" - "eor.w r9, r9, r5, lsl #24 \n\t" - "eor.w r10, r10, r6, lsl #8 \n\t" - "eor.w r10, r10, r11, lsl #16 \n\t" - "eor.w r10, r10, r12, lsl #24 \n\t" - "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) - - // AddRoundKey and AddRoundConst(from roundKeys) - - // r9( s9 s8 s11 s10) - // r10(s12 s14 s14 s13) - - // MixColumn - "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 - "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 - "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 - // r4 ----------------> r4 - // round 13 - - // SubCell+ShiftRow+AC(c2) - // r3 (s3 s2 s1 s0) - // r4 (s7 s6 s5 s4) - // r5 (s11 s10 s9 s8) - // r6 (s15 s14 s13 s12) - - // 1st-2nd line - // r3(s3 s2 s1 s0) - "uxtb.w r9, r3, ror #24 \n\t" // s3 - "uxtb.w r8, r3, ror #16 \n\t" // s2 - "uxtb.w r7, r3, ror #8 \n\t" // s1 - "uxtb.w r3, r3 \n\t" // s0 - // r4(s6 s5 s4 s7) - "uxtb.w r12, r4, ror #16 \n\t" // s6 - "uxtb.w r11, r4, ror #8 \n\t" // s5 - "uxtb.w r10, r4 \n\t" // s4 - "uxtb.w r4, r4, ror #24 \n\t" // s7 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "eor.w r3, r3, r7, lsl #8 \n\t" - "eor.w r3, r3, r8, lsl #16 \n\t" - "eor.w r3, r3, r9, lsl #24 \n\t" - "eor.w r4, r4, r10, lsl #8 \n\t" - "eor.w r4, r4, r11, lsl #16 \n\t" - "eor.w r4, r4, r12, lsl #24 \n\t" - - // 3rd-4th line - // r5(s9 s8 s11 s10) - "uxtb.w r9, r5, ror #8 \n\t" // s9 - "uxtb.w r8, r5 \n\t" // s8 - "uxtb.w r7, r5, ror #24 \n\t" // s11 - "uxtb.w r5, r5, ror #16 \n\t" // s10 - // r6(s12 s15 s14 s13) - "uxtb.w r12, r6 \n\t" // s12 - "uxtb.w r11, r6, ror #24 \n\t" // s15 - "uxtb.w r10, r6, ror #16 \n\t" // s14 - "uxtb.w r6, r6, ror #8 \n\t" // s13 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "eor.w r5, r5, r7, lsl #8 \n\t" - "eor.w r5, r5, r8, lsl #16 \n\t" - "eor.w r5, r5, r9, lsl #24 \n\t" - "eor.w r6, r6, r10, lsl #8 \n\t" - "eor.w r6, r6, r11, lsl #16 \n\t" - "eor.w r6, r6, r12, lsl #24 \n\t" - - // AddRoundKey and AddRoundConst(from roundKeys) - "ldr.w r9, [r1,#48] \n\t" // load TK1 - "ldr.w r10, [r1,#52] \n\t" // load TK1 - "ldr.w r11, [r1,#160] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "ldr.w r12, [r1,#164] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - - "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) - "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) - // r8( s9 s8 s11 s10) - // r6(s12 s14 s14 s13) - - // MixColumn - "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 - "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 - "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 - // r8 ----------------> r8 - - // round 14 - - // SubCell+ShiftRow+AC(c2) - // r7 (s3 s2 s1 s0) - // r8 (s7 s6 s5 s4) - // r9 (s11 s10 s9 s8) - // r10(s15 s14 s13 s12) - - // 1st-2nd line - // r7(s3 s2 s1 s0) - "uxtb.w r5, r7, ror #24 \n\t" // s3 - "uxtb.w r4, r7, ror #16 \n\t" // s2 - "uxtb.w r3, r7, ror #8 \n\t" // s1 - "uxtb.w r7, r7 \n\t" // s0 - // r8(s6 s5 s4 s7) - "uxtb.w r12, r8, ror #16 \n\t" // s6 - "uxtb.w r11, r8, ror #8 \n\t" // s5 - "uxtb.w r6, r8 \n\t" // s4 - "uxtb.w r8, r8, ror #24 \n\t" // s7 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldr.w r0, [r1,#168] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r7, r7, r3, lsl #8 \n\t" - "eor.w r7, r7, r4, lsl #16 \n\t" - "eor.w r7, r7, r5, lsl #24 \n\t" - "eor.w r8, r8, r6, lsl #8 \n\t" - "eor.w r8, r8, r11, lsl #16 \n\t" - "eor.w r8, r8, r12, lsl #24 \n\t" - "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) - - // 3rd-4th line - // r9(s9 s8 s11 s10) - "uxtb.w r5, r9, ror #8 \n\t" // s9 - "uxtb.w r7, r9 \n\t" // s8 - "uxtb.w r3, r9, ror #24 \n\t" // s11 - "uxtb.w r9, r9, ror #16 \n\t" // s10 - // r10(s12 s15 s14 s13) - "uxtb.w r12, r10 \n\t" // s12 - "uxtb.w r11, r10, ror #24 \n\t" // s15 - "uxtb.w r6, r10, ror #16 \n\t" // s14 - "uxtb.w r10, r10, ror #8 \n\t" // s13 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldr.w r0, [r1,#172] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r9, r9, r3, lsl #8 \n\t" - "eor.w r9, r9, r7, lsl #16 \n\t" - "eor.w r9, r9, r5, lsl #24 \n\t" - "eor.w r10, r10, r6, lsl #8 \n\t" - "eor.w r10, r10, r11, lsl #16 \n\t" - "eor.w r10, r10, r12, lsl #24 \n\t" - "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) - - // AddRoundKey and AddRoundConst(from roundKeys) - - // r9( s9 s8 s11 s10) - // r10(s12 s14 s14 s13) - - // MixColumn - "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 - "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 - "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 - // r4 ----------------> r4 - // round 15 - - // SubCell+ShiftRow+AC(c2) - // r3 (s3 s2 s1 s0) - // r4 (s7 s6 s5 s4) - // r5 (s11 s10 s9 s8) - // r6 (s15 s14 s13 s12) - - // 1st-2nd line - // r3(s3 s2 s1 s0) - "uxtb.w r9, r3, ror #24 \n\t" // s3 - "uxtb.w r8, r3, ror #16 \n\t" // s2 - "uxtb.w r7, r3, ror #8 \n\t" // s1 - "uxtb.w r3, r3 \n\t" // s0 - // r4(s6 s5 s4 s7) - "uxtb.w r12, r4, ror #16 \n\t" // s6 - "uxtb.w r11, r4, ror #8 \n\t" // s5 - "uxtb.w r10, r4 \n\t" // s4 - "uxtb.w r4, r4, ror #24 \n\t" // s7 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "eor.w r3, r3, r7, lsl #8 \n\t" - "eor.w r3, r3, r8, lsl #16 \n\t" - "eor.w r3, r3, r9, lsl #24 \n\t" - "eor.w r4, r4, r10, lsl #8 \n\t" - "eor.w r4, r4, r11, lsl #16 \n\t" - "eor.w r4, r4, r12, lsl #24 \n\t" - - // 3rd-4th line - // r5(s9 s8 s11 s10) - "uxtb.w r9, r5, ror #8 \n\t" // s9 - "uxtb.w r8, r5 \n\t" // s8 - "uxtb.w r7, r5, ror #24 \n\t" // s11 - "uxtb.w r5, r5, ror #16 \n\t" // s10 - // r6(s12 s15 s14 s13) - "uxtb.w r12, r6 \n\t" // s12 - "uxtb.w r11, r6, ror #24 \n\t" // s15 - "uxtb.w r10, r6, ror #16 \n\t" // s14 - "uxtb.w r6, r6, ror #8 \n\t" // s13 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "eor.w r5, r5, r7, lsl #8 \n\t" - "eor.w r5, r5, r8, lsl #16 \n\t" - "eor.w r5, r5, r9, lsl #24 \n\t" - "eor.w r6, r6, r10, lsl #8 \n\t" - "eor.w r6, r6, r11, lsl #16 \n\t" - "eor.w r6, r6, r12, lsl #24 \n\t" - - // AddRoundKey and AddRoundConst(from roundKeys) - "ldr.w r9, [r1,#56] \n\t" // load TK1 - "ldr.w r10, [r1,#60] \n\t" // load TK1 - "ldr.w r11, [r1,#176] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "ldr.w r12, [r1,#180] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - - "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) - "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) - // r8( s9 s8 s11 s10) - // r6(s12 s14 s14 s13) - - // MixColumn - "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 - "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 - "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 - // r8 ----------------> r8 - - // round 16 - - // SubCell+ShiftRow+AC(c2) - // r7 (s3 s2 s1 s0) - // r8 (s7 s6 s5 s4) - // r9 (s11 s10 s9 s8) - // r10(s15 s14 s13 s12) - - // 1st-2nd line - // r7(s3 s2 s1 s0) - "uxtb.w r5, r7, ror #24 \n\t" // s3 - "uxtb.w r4, r7, ror #16 \n\t" // s2 - "uxtb.w r3, r7, ror #8 \n\t" // s1 - "uxtb.w r7, r7 \n\t" // s0 - // r8(s6 s5 s4 s7) - "uxtb.w r12, r8, ror #16 \n\t" // s6 - "uxtb.w r11, r8, ror #8 \n\t" // s5 - "uxtb.w r6, r8 \n\t" // s4 - "uxtb.w r8, r8, ror #24 \n\t" // s7 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldr.w r0, [r1,#184] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r7, r7, r3, lsl #8 \n\t" - "eor.w r7, r7, r4, lsl #16 \n\t" - "eor.w r7, r7, r5, lsl #24 \n\t" - "eor.w r8, r8, r6, lsl #8 \n\t" - "eor.w r8, r8, r11, lsl #16 \n\t" - "eor.w r8, r8, r12, lsl #24 \n\t" - "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) - - // 3rd-4th line - // r9(s9 s8 s11 s10) - "uxtb.w r5, r9, ror #8 \n\t" // s9 - "uxtb.w r7, r9 \n\t" // s8 - "uxtb.w r3, r9, ror #24 \n\t" // s11 - "uxtb.w r9, r9, ror #16 \n\t" // s10 - // r10(s12 s15 s14 s13) - "uxtb.w r12, r10 \n\t" // s12 - "uxtb.w r11, r10, ror #24 \n\t" // s15 - "uxtb.w r6, r10, ror #16 \n\t" // s14 - "uxtb.w r10, r10, ror #8 \n\t" // s13 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldr.w r0, [r1,#188] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r9, r9, r3, lsl #8 \n\t" - "eor.w r9, r9, r7, lsl #16 \n\t" - "eor.w r9, r9, r5, lsl #24 \n\t" - "eor.w r10, r10, r6, lsl #8 \n\t" - "eor.w r10, r10, r11, lsl #16 \n\t" - "eor.w r10, r10, r12, lsl #24 \n\t" - "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) - - // AddRoundKey and AddRoundConst(from roundKeys) - - // r9( s9 s8 s11 s10) - // r10(s12 s14 s14 s13) - - // MixColumn - "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 - "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 - "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 - // r4 ----------------> r4 - // round 17 - - // SubCell+ShiftRow+AC(c2) - // r3 (s3 s2 s1 s0) - // r4 (s7 s6 s5 s4) - // r5 (s11 s10 s9 s8) - // r6 (s15 s14 s13 s12) - - // 1st-2nd line - // r3(s3 s2 s1 s0) - "uxtb.w r9, r3, ror #24 \n\t" // s3 - "uxtb.w r8, r3, ror #16 \n\t" // s2 - "uxtb.w r7, r3, ror #8 \n\t" // s1 - "uxtb.w r3, r3 \n\t" // s0 - // r4(s6 s5 s4 s7) - "uxtb.w r12, r4, ror #16 \n\t" // s6 - "uxtb.w r11, r4, ror #8 \n\t" // s5 - "uxtb.w r10, r4 \n\t" // s4 - "uxtb.w r4, r4, ror #24 \n\t" // s7 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "eor.w r3, r3, r7, lsl #8 \n\t" - "eor.w r3, r3, r8, lsl #16 \n\t" - "eor.w r3, r3, r9, lsl #24 \n\t" - "eor.w r4, r4, r10, lsl #8 \n\t" - "eor.w r4, r4, r11, lsl #16 \n\t" - "eor.w r4, r4, r12, lsl #24 \n\t" - - // 3rd-4th line - // r5(s9 s8 s11 s10) - "uxtb.w r9, r5, ror #8 \n\t" // s9 - "uxtb.w r8, r5 \n\t" // s8 - "uxtb.w r7, r5, ror #24 \n\t" // s11 - "uxtb.w r5, r5, ror #16 \n\t" // s10 - // r6(s12 s15 s14 s13) - "uxtb.w r12, r6 \n\t" // s12 - "uxtb.w r11, r6, ror #24 \n\t" // s15 - "uxtb.w r10, r6, ror #16 \n\t" // s14 - "uxtb.w r6, r6, ror #8 \n\t" // s13 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "eor.w r5, r5, r7, lsl #8 \n\t" - "eor.w r5, r5, r8, lsl #16 \n\t" - "eor.w r5, r5, r9, lsl #24 \n\t" - "eor.w r6, r6, r10, lsl #8 \n\t" - "eor.w r6, r6, r11, lsl #16 \n\t" - "eor.w r6, r6, r12, lsl #24 \n\t" - - // AddRoundKey and AddRoundConst(from roundKeys) - "ldr.w r9, [r1,#0] \n\t" // load TK1 - "ldr.w r10, [r1,#4] \n\t" // load TK1 - "ldr.w r11, [r1,#192] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "ldr.w r12, [r1,#196] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - - "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) - "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) - // r8( s9 s8 s11 s10) - // r6(s12 s14 s14 s13) - - // MixColumn - "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 - "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 - "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 - // r8 ----------------> r8 - - // round 18 - - // SubCell+ShiftRow+AC(c2) - // r7 (s3 s2 s1 s0) - // r8 (s7 s6 s5 s4) - // r9 (s11 s10 s9 s8) - // r10(s15 s14 s13 s12) - - // 1st-2nd line - // r7(s3 s2 s1 s0) - "uxtb.w r5, r7, ror #24 \n\t" // s3 - "uxtb.w r4, r7, ror #16 \n\t" // s2 - "uxtb.w r3, r7, ror #8 \n\t" // s1 - "uxtb.w r7, r7 \n\t" // s0 - // r8(s6 s5 s4 s7) - "uxtb.w r12, r8, ror #16 \n\t" // s6 - "uxtb.w r11, r8, ror #8 \n\t" // s5 - "uxtb.w r6, r8 \n\t" // s4 - "uxtb.w r8, r8, ror #24 \n\t" // s7 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldr.w r0, [r1,#200] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r7, r7, r3, lsl #8 \n\t" - "eor.w r7, r7, r4, lsl #16 \n\t" - "eor.w r7, r7, r5, lsl #24 \n\t" - "eor.w r8, r8, r6, lsl #8 \n\t" - "eor.w r8, r8, r11, lsl #16 \n\t" - "eor.w r8, r8, r12, lsl #24 \n\t" - "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) - - // 3rd-4th line - // r9(s9 s8 s11 s10) - "uxtb.w r5, r9, ror #8 \n\t" // s9 - "uxtb.w r7, r9 \n\t" // s8 - "uxtb.w r3, r9, ror #24 \n\t" // s11 - "uxtb.w r9, r9, ror #16 \n\t" // s10 - // r10(s12 s15 s14 s13) - "uxtb.w r12, r10 \n\t" // s12 - "uxtb.w r11, r10, ror #24 \n\t" // s15 - "uxtb.w r6, r10, ror #16 \n\t" // s14 - "uxtb.w r10, r10, ror #8 \n\t" // s13 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldr.w r0, [r1,#204] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r9, r9, r3, lsl #8 \n\t" - "eor.w r9, r9, r7, lsl #16 \n\t" - "eor.w r9, r9, r5, lsl #24 \n\t" - "eor.w r10, r10, r6, lsl #8 \n\t" - "eor.w r10, r10, r11, lsl #16 \n\t" - "eor.w r10, r10, r12, lsl #24 \n\t" - "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) - - // AddRoundKey and AddRoundConst(from roundKeys) - - // r9( s9 s8 s11 s10) - // r10(s12 s14 s14 s13) - - // MixColumn - "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 - "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 - "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 - // r4 ----------------> r4 - // round 19 - - // SubCell+ShiftRow+AC(c2) - // r3 (s3 s2 s1 s0) - // r4 (s7 s6 s5 s4) - // r5 (s11 s10 s9 s8) - // r6 (s15 s14 s13 s12) - - // 1st-2nd line - // r3(s3 s2 s1 s0) - "uxtb.w r9, r3, ror #24 \n\t" // s3 - "uxtb.w r8, r3, ror #16 \n\t" // s2 - "uxtb.w r7, r3, ror #8 \n\t" // s1 - "uxtb.w r3, r3 \n\t" // s0 - // r4(s6 s5 s4 s7) - "uxtb.w r12, r4, ror #16 \n\t" // s6 - "uxtb.w r11, r4, ror #8 \n\t" // s5 - "uxtb.w r10, r4 \n\t" // s4 - "uxtb.w r4, r4, ror #24 \n\t" // s7 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "eor.w r3, r3, r7, lsl #8 \n\t" - "eor.w r3, r3, r8, lsl #16 \n\t" - "eor.w r3, r3, r9, lsl #24 \n\t" - "eor.w r4, r4, r10, lsl #8 \n\t" - "eor.w r4, r4, r11, lsl #16 \n\t" - "eor.w r4, r4, r12, lsl #24 \n\t" - - // 3rd-4th line - // r5(s9 s8 s11 s10) - "uxtb.w r9, r5, ror #8 \n\t" // s9 - "uxtb.w r8, r5 \n\t" // s8 - "uxtb.w r7, r5, ror #24 \n\t" // s11 - "uxtb.w r5, r5, ror #16 \n\t" // s10 - // r6(s12 s15 s14 s13) - "uxtb.w r12, r6 \n\t" // s12 - "uxtb.w r11, r6, ror #24 \n\t" // s15 - "uxtb.w r10, r6, ror #16 \n\t" // s14 - "uxtb.w r6, r6, ror #8 \n\t" // s13 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "eor.w r5, r5, r7, lsl #8 \n\t" - "eor.w r5, r5, r8, lsl #16 \n\t" - "eor.w r5, r5, r9, lsl #24 \n\t" - "eor.w r6, r6, r10, lsl #8 \n\t" - "eor.w r6, r6, r11, lsl #16 \n\t" - "eor.w r6, r6, r12, lsl #24 \n\t" - - // AddRoundKey and AddRoundConst(from roundKeys) - "ldr.w r9, [r1,#8] \n\t" // load TK1 - "ldr.w r10, [r1,#12] \n\t" // load TK1 - "ldr.w r11, [r1,#208] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "ldr.w r12, [r1,#212] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - - "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) - "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) - // r8( s9 s8 s11 s10) - // r6(s12 s14 s14 s13) - - // MixColumn - "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 - "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 - "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 - // r8 ----------------> r8 - - // round 20 - - // SubCell+ShiftRow+AC(c2) - // r7 (s3 s2 s1 s0) - // r8 (s7 s6 s5 s4) - // r9 (s11 s10 s9 s8) - // r10(s15 s14 s13 s12) - - // 1st-2nd line - // r7(s3 s2 s1 s0) - "uxtb.w r5, r7, ror #24 \n\t" // s3 - "uxtb.w r4, r7, ror #16 \n\t" // s2 - "uxtb.w r3, r7, ror #8 \n\t" // s1 - "uxtb.w r7, r7 \n\t" // s0 - // r8(s6 s5 s4 s7) - "uxtb.w r12, r8, ror #16 \n\t" // s6 - "uxtb.w r11, r8, ror #8 \n\t" // s5 - "uxtb.w r6, r8 \n\t" // s4 - "uxtb.w r8, r8, ror #24 \n\t" // s7 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldr.w r0, [r1,#216] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r7, r7, r3, lsl #8 \n\t" - "eor.w r7, r7, r4, lsl #16 \n\t" - "eor.w r7, r7, r5, lsl #24 \n\t" - "eor.w r8, r8, r6, lsl #8 \n\t" - "eor.w r8, r8, r11, lsl #16 \n\t" - "eor.w r8, r8, r12, lsl #24 \n\t" - "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) - - // 3rd-4th line - // r9(s9 s8 s11 s10) - "uxtb.w r5, r9, ror #8 \n\t" // s9 - "uxtb.w r7, r9 \n\t" // s8 - "uxtb.w r3, r9, ror #24 \n\t" // s11 - "uxtb.w r9, r9, ror #16 \n\t" // s10 - // r10(s12 s15 s14 s13) - "uxtb.w r12, r10 \n\t" // s12 - "uxtb.w r11, r10, ror #24 \n\t" // s15 - "uxtb.w r6, r10, ror #16 \n\t" // s14 - "uxtb.w r10, r10, ror #8 \n\t" // s13 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldr.w r0, [r1,#220] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r9, r9, r3, lsl #8 \n\t" - "eor.w r9, r9, r7, lsl #16 \n\t" - "eor.w r9, r9, r5, lsl #24 \n\t" - "eor.w r10, r10, r6, lsl #8 \n\t" - "eor.w r10, r10, r11, lsl #16 \n\t" - "eor.w r10, r10, r12, lsl #24 \n\t" - "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) - - // AddRoundKey and AddRoundConst(from roundKeys) - - // r9( s9 s8 s11 s10) - // r10(s12 s14 s14 s13) - - // MixColumn - "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 - "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 - "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 - // r4 ----------------> r4 - // round 21 - - // SubCell+ShiftRow+AC(c2) - // r3 (s3 s2 s1 s0) - // r4 (s7 s6 s5 s4) - // r5 (s11 s10 s9 s8) - // r6 (s15 s14 s13 s12) - - // 1st-2nd line - // r3(s3 s2 s1 s0) - "uxtb.w r9, r3, ror #24 \n\t" // s3 - "uxtb.w r8, r3, ror #16 \n\t" // s2 - "uxtb.w r7, r3, ror #8 \n\t" // s1 - "uxtb.w r3, r3 \n\t" // s0 - // r4(s6 s5 s4 s7) - "uxtb.w r12, r4, ror #16 \n\t" // s6 - "uxtb.w r11, r4, ror #8 \n\t" // s5 - "uxtb.w r10, r4 \n\t" // s4 - "uxtb.w r4, r4, ror #24 \n\t" // s7 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "eor.w r3, r3, r7, lsl #8 \n\t" - "eor.w r3, r3, r8, lsl #16 \n\t" - "eor.w r3, r3, r9, lsl #24 \n\t" - "eor.w r4, r4, r10, lsl #8 \n\t" - "eor.w r4, r4, r11, lsl #16 \n\t" - "eor.w r4, r4, r12, lsl #24 \n\t" - - // 3rd-4th line - // r5(s9 s8 s11 s10) - "uxtb.w r9, r5, ror #8 \n\t" // s9 - "uxtb.w r8, r5 \n\t" // s8 - "uxtb.w r7, r5, ror #24 \n\t" // s11 - "uxtb.w r5, r5, ror #16 \n\t" // s10 - // r6(s12 s15 s14 s13) - "uxtb.w r12, r6 \n\t" // s12 - "uxtb.w r11, r6, ror #24 \n\t" // s15 - "uxtb.w r10, r6, ror #16 \n\t" // s14 - "uxtb.w r6, r6, ror #8 \n\t" // s13 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "eor.w r5, r5, r7, lsl #8 \n\t" - "eor.w r5, r5, r8, lsl #16 \n\t" - "eor.w r5, r5, r9, lsl #24 \n\t" - "eor.w r6, r6, r10, lsl #8 \n\t" - "eor.w r6, r6, r11, lsl #16 \n\t" - "eor.w r6, r6, r12, lsl #24 \n\t" - - // AddRoundKey and AddRoundConst(from roundKeys) - "ldr.w r9, [r1,#16] \n\t" // load TK1 - "ldr.w r10, [r1,#20] \n\t" // load TK1 - "ldr.w r11, [r1,#224] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "ldr.w r12, [r1,#228] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - - "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) - "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) - // r8( s9 s8 s11 s10) - // r6(s12 s14 s14 s13) - - // MixColumn - "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 - "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 - "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 - // r8 ----------------> r8 - - // round 22 - - // SubCell+ShiftRow+AC(c2) - // r7 (s3 s2 s1 s0) - // r8 (s7 s6 s5 s4) - // r9 (s11 s10 s9 s8) - // r10(s15 s14 s13 s12) - - // 1st-2nd line - // r7(s3 s2 s1 s0) - "uxtb.w r5, r7, ror #24 \n\t" // s3 - "uxtb.w r4, r7, ror #16 \n\t" // s2 - "uxtb.w r3, r7, ror #8 \n\t" // s1 - "uxtb.w r7, r7 \n\t" // s0 - // r8(s6 s5 s4 s7) - "uxtb.w r12, r8, ror #16 \n\t" // s6 - "uxtb.w r11, r8, ror #8 \n\t" // s5 - "uxtb.w r6, r8 \n\t" // s4 - "uxtb.w r8, r8, ror #24 \n\t" // s7 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldr.w r0, [r1,#232] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r7, r7, r3, lsl #8 \n\t" - "eor.w r7, r7, r4, lsl #16 \n\t" - "eor.w r7, r7, r5, lsl #24 \n\t" - "eor.w r8, r8, r6, lsl #8 \n\t" - "eor.w r8, r8, r11, lsl #16 \n\t" - "eor.w r8, r8, r12, lsl #24 \n\t" - "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) - - // 3rd-4th line - // r9(s9 s8 s11 s10) - "uxtb.w r5, r9, ror #8 \n\t" // s9 - "uxtb.w r7, r9 \n\t" // s8 - "uxtb.w r3, r9, ror #24 \n\t" // s11 - "uxtb.w r9, r9, ror #16 \n\t" // s10 - // r10(s12 s15 s14 s13) - "uxtb.w r12, r10 \n\t" // s12 - "uxtb.w r11, r10, ror #24 \n\t" // s15 - "uxtb.w r6, r10, ror #16 \n\t" // s14 - "uxtb.w r10, r10, ror #8 \n\t" // s13 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldr.w r0, [r1,#236] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r9, r9, r3, lsl #8 \n\t" - "eor.w r9, r9, r7, lsl #16 \n\t" - "eor.w r9, r9, r5, lsl #24 \n\t" - "eor.w r10, r10, r6, lsl #8 \n\t" - "eor.w r10, r10, r11, lsl #16 \n\t" - "eor.w r10, r10, r12, lsl #24 \n\t" - "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) - - // AddRoundKey and AddRoundConst(from roundKeys) - - // r9( s9 s8 s11 s10) - // r10(s12 s14 s14 s13) - - // MixColumn - "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 - "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 - "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 - // r4 ----------------> r4 - // round 23 - - // SubCell+ShiftRow+AC(c2) - // r3 (s3 s2 s1 s0) - // r4 (s7 s6 s5 s4) - // r5 (s11 s10 s9 s8) - // r6 (s15 s14 s13 s12) - - // 1st-2nd line - // r3(s3 s2 s1 s0) - "uxtb.w r9, r3, ror #24 \n\t" // s3 - "uxtb.w r8, r3, ror #16 \n\t" // s2 - "uxtb.w r7, r3, ror #8 \n\t" // s1 - "uxtb.w r3, r3 \n\t" // s0 - // r4(s6 s5 s4 s7) - "uxtb.w r12, r4, ror #16 \n\t" // s6 - "uxtb.w r11, r4, ror #8 \n\t" // s5 - "uxtb.w r10, r4 \n\t" // s4 - "uxtb.w r4, r4, ror #24 \n\t" // s7 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "eor.w r3, r3, r7, lsl #8 \n\t" - "eor.w r3, r3, r8, lsl #16 \n\t" - "eor.w r3, r3, r9, lsl #24 \n\t" - "eor.w r4, r4, r10, lsl #8 \n\t" - "eor.w r4, r4, r11, lsl #16 \n\t" - "eor.w r4, r4, r12, lsl #24 \n\t" - - // 3rd-4th line - // r5(s9 s8 s11 s10) - "uxtb.w r9, r5, ror #8 \n\t" // s9 - "uxtb.w r8, r5 \n\t" // s8 - "uxtb.w r7, r5, ror #24 \n\t" // s11 - "uxtb.w r5, r5, ror #16 \n\t" // s10 - // r6(s12 s15 s14 s13) - "uxtb.w r12, r6 \n\t" // s12 - "uxtb.w r11, r6, ror #24 \n\t" // s15 - "uxtb.w r10, r6, ror #16 \n\t" // s14 - "uxtb.w r6, r6, ror #8 \n\t" // s13 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "eor.w r5, r5, r7, lsl #8 \n\t" - "eor.w r5, r5, r8, lsl #16 \n\t" - "eor.w r5, r5, r9, lsl #24 \n\t" - "eor.w r6, r6, r10, lsl #8 \n\t" - "eor.w r6, r6, r11, lsl #16 \n\t" - "eor.w r6, r6, r12, lsl #24 \n\t" - - // AddRoundKey and AddRoundConst(from roundKeys) - "ldr.w r9, [r1,#24] \n\t" // load TK1 - "ldr.w r10, [r1,#28] \n\t" // load TK1 - "ldr.w r11, [r1,#240] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "ldr.w r12, [r1,#244] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - - "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) - "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) - // r8( s9 s8 s11 s10) - // r6(s12 s14 s14 s13) - - // MixColumn - "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 - "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 - "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 - // r8 ----------------> r8 - - // round 24 - - // SubCell+ShiftRow+AC(c2) - // r7 (s3 s2 s1 s0) - // r8 (s7 s6 s5 s4) - // r9 (s11 s10 s9 s8) - // r10(s15 s14 s13 s12) - - // 1st-2nd line - // r7(s3 s2 s1 s0) - "uxtb.w r5, r7, ror #24 \n\t" // s3 - "uxtb.w r4, r7, ror #16 \n\t" // s2 - "uxtb.w r3, r7, ror #8 \n\t" // s1 - "uxtb.w r7, r7 \n\t" // s0 - // r8(s6 s5 s4 s7) - "uxtb.w r12, r8, ror #16 \n\t" // s6 - "uxtb.w r11, r8, ror #8 \n\t" // s5 - "uxtb.w r6, r8 \n\t" // s4 - "uxtb.w r8, r8, ror #24 \n\t" // s7 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldr.w r0, [r1,#248] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r7, r7, r3, lsl #8 \n\t" - "eor.w r7, r7, r4, lsl #16 \n\t" - "eor.w r7, r7, r5, lsl #24 \n\t" - "eor.w r8, r8, r6, lsl #8 \n\t" - "eor.w r8, r8, r11, lsl #16 \n\t" - "eor.w r8, r8, r12, lsl #24 \n\t" - "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) - - // 3rd-4th line - // r9(s9 s8 s11 s10) - "uxtb.w r5, r9, ror #8 \n\t" // s9 - "uxtb.w r7, r9 \n\t" // s8 - "uxtb.w r3, r9, ror #24 \n\t" // s11 - "uxtb.w r9, r9, ror #16 \n\t" // s10 - // r10(s12 s15 s14 s13) - "uxtb.w r12, r10 \n\t" // s12 - "uxtb.w r11, r10, ror #24 \n\t" // s15 - "uxtb.w r6, r10, ror #16 \n\t" // s14 - "uxtb.w r10, r10, ror #8 \n\t" // s13 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldr.w r0, [r1,#252] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r9, r9, r3, lsl #8 \n\t" - "eor.w r9, r9, r7, lsl #16 \n\t" - "eor.w r9, r9, r5, lsl #24 \n\t" - "eor.w r10, r10, r6, lsl #8 \n\t" - "eor.w r10, r10, r11, lsl #16 \n\t" - "eor.w r10, r10, r12, lsl #24 \n\t" - "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) - - // AddRoundKey and AddRoundConst(from roundKeys) - - // r9( s9 s8 s11 s10) - // r10(s12 s14 s14 s13) - - // MixColumn - "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 - "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 - "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 - // r4 ----------------> r4 - // round 25 - - // SubCell+ShiftRow+AC(c2) - // r3 (s3 s2 s1 s0) - // r4 (s7 s6 s5 s4) - // r5 (s11 s10 s9 s8) - // r6 (s15 s14 s13 s12) - - // 1st-2nd line - // r3(s3 s2 s1 s0) - "uxtb.w r9, r3, ror #24 \n\t" // s3 - "uxtb.w r8, r3, ror #16 \n\t" // s2 - "uxtb.w r7, r3, ror #8 \n\t" // s1 - "uxtb.w r3, r3 \n\t" // s0 - // r4(s6 s5 s4 s7) - "uxtb.w r12, r4, ror #16 \n\t" // s6 - "uxtb.w r11, r4, ror #8 \n\t" // s5 - "uxtb.w r10, r4 \n\t" // s4 - "uxtb.w r4, r4, ror #24 \n\t" // s7 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "eor.w r3, r3, r7, lsl #8 \n\t" - "eor.w r3, r3, r8, lsl #16 \n\t" - "eor.w r3, r3, r9, lsl #24 \n\t" - "eor.w r4, r4, r10, lsl #8 \n\t" - "eor.w r4, r4, r11, lsl #16 \n\t" - "eor.w r4, r4, r12, lsl #24 \n\t" - - // 3rd-4th line - // r5(s9 s8 s11 s10) - "uxtb.w r9, r5, ror #8 \n\t" // s9 - "uxtb.w r8, r5 \n\t" // s8 - "uxtb.w r7, r5, ror #24 \n\t" // s11 - "uxtb.w r5, r5, ror #16 \n\t" // s10 - // r6(s12 s15 s14 s13) - "uxtb.w r12, r6 \n\t" // s12 - "uxtb.w r11, r6, ror #24 \n\t" // s15 - "uxtb.w r10, r6, ror #16 \n\t" // s14 - "uxtb.w r6, r6, ror #8 \n\t" // s13 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "eor.w r5, r5, r7, lsl #8 \n\t" - "eor.w r5, r5, r8, lsl #16 \n\t" - "eor.w r5, r5, r9, lsl #24 \n\t" - "eor.w r6, r6, r10, lsl #8 \n\t" - "eor.w r6, r6, r11, lsl #16 \n\t" - "eor.w r6, r6, r12, lsl #24 \n\t" - - // AddRoundKey and AddRoundConst(from roundKeys) - "ldr.w r9, [r1,#32] \n\t" // load TK1 - "ldr.w r10, [r1,#36] \n\t" // load TK1 - "ldr.w r11, [r1,#256] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "ldr.w r12, [r1,#260] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - - "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) - "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) - // r8( s9 s8 s11 s10) - // r6(s12 s14 s14 s13) - - // MixColumn - "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 - "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 - "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 - // r8 ----------------> r8 - - // round 26 - - // SubCell+ShiftRow+AC(c2) - // r7 (s3 s2 s1 s0) - // r8 (s7 s6 s5 s4) - // r9 (s11 s10 s9 s8) - // r10(s15 s14 s13 s12) - - // 1st-2nd line - // r7(s3 s2 s1 s0) - "uxtb.w r5, r7, ror #24 \n\t" // s3 - "uxtb.w r4, r7, ror #16 \n\t" // s2 - "uxtb.w r3, r7, ror #8 \n\t" // s1 - "uxtb.w r7, r7 \n\t" // s0 - // r8(s6 s5 s4 s7) - "uxtb.w r12, r8, ror #16 \n\t" // s6 - "uxtb.w r11, r8, ror #8 \n\t" // s5 - "uxtb.w r6, r8 \n\t" // s4 - "uxtb.w r8, r8, ror #24 \n\t" // s7 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldr.w r0, [r1,#264] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r7, r7, r3, lsl #8 \n\t" - "eor.w r7, r7, r4, lsl #16 \n\t" - "eor.w r7, r7, r5, lsl #24 \n\t" - "eor.w r8, r8, r6, lsl #8 \n\t" - "eor.w r8, r8, r11, lsl #16 \n\t" - "eor.w r8, r8, r12, lsl #24 \n\t" - "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) - - // 3rd-4th line - // r9(s9 s8 s11 s10) - "uxtb.w r5, r9, ror #8 \n\t" // s9 - "uxtb.w r7, r9 \n\t" // s8 - "uxtb.w r3, r9, ror #24 \n\t" // s11 - "uxtb.w r9, r9, ror #16 \n\t" // s10 - // r10(s12 s15 s14 s13) - "uxtb.w r12, r10 \n\t" // s12 - "uxtb.w r11, r10, ror #24 \n\t" // s15 - "uxtb.w r6, r10, ror #16 \n\t" // s14 - "uxtb.w r10, r10, ror #8 \n\t" // s13 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldr.w r0, [r1,#268] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r9, r9, r3, lsl #8 \n\t" - "eor.w r9, r9, r7, lsl #16 \n\t" - "eor.w r9, r9, r5, lsl #24 \n\t" - "eor.w r10, r10, r6, lsl #8 \n\t" - "eor.w r10, r10, r11, lsl #16 \n\t" - "eor.w r10, r10, r12, lsl #24 \n\t" - "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) - - // AddRoundKey and AddRoundConst(from roundKeys) - - // r9( s9 s8 s11 s10) - // r10(s12 s14 s14 s13) - - // MixColumn - "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 - "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 - "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 - // r4 ----------------> r4 - // round 27 - - // SubCell+ShiftRow+AC(c2) - // r3 (s3 s2 s1 s0) - // r4 (s7 s6 s5 s4) - // r5 (s11 s10 s9 s8) - // r6 (s15 s14 s13 s12) - - // 1st-2nd line - // r3(s3 s2 s1 s0) - "uxtb.w r9, r3, ror #24 \n\t" // s3 - "uxtb.w r8, r3, ror #16 \n\t" // s2 - "uxtb.w r7, r3, ror #8 \n\t" // s1 - "uxtb.w r3, r3 \n\t" // s0 - // r4(s6 s5 s4 s7) - "uxtb.w r12, r4, ror #16 \n\t" // s6 - "uxtb.w r11, r4, ror #8 \n\t" // s5 - "uxtb.w r10, r4 \n\t" // s4 - "uxtb.w r4, r4, ror #24 \n\t" // s7 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "eor.w r3, r3, r7, lsl #8 \n\t" - "eor.w r3, r3, r8, lsl #16 \n\t" - "eor.w r3, r3, r9, lsl #24 \n\t" - "eor.w r4, r4, r10, lsl #8 \n\t" - "eor.w r4, r4, r11, lsl #16 \n\t" - "eor.w r4, r4, r12, lsl #24 \n\t" - - // 3rd-4th line - // r5(s9 s8 s11 s10) - "uxtb.w r9, r5, ror #8 \n\t" // s9 - "uxtb.w r8, r5 \n\t" // s8 - "uxtb.w r7, r5, ror #24 \n\t" // s11 - "uxtb.w r5, r5, ror #16 \n\t" // s10 - // r6(s12 s15 s14 s13) - "uxtb.w r12, r6 \n\t" // s12 - "uxtb.w r11, r6, ror #24 \n\t" // s15 - "uxtb.w r10, r6, ror #16 \n\t" // s14 - "uxtb.w r6, r6, ror #8 \n\t" // s13 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "eor.w r5, r5, r7, lsl #8 \n\t" - "eor.w r5, r5, r8, lsl #16 \n\t" - "eor.w r5, r5, r9, lsl #24 \n\t" - "eor.w r6, r6, r10, lsl #8 \n\t" - "eor.w r6, r6, r11, lsl #16 \n\t" - "eor.w r6, r6, r12, lsl #24 \n\t" - - // AddRoundKey and AddRoundConst(from roundKeys) - "ldr.w r9, [r1,#40] \n\t" // load TK1 - "ldr.w r10, [r1,#44] \n\t" // load TK1 - "ldr.w r11, [r1,#272] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "ldr.w r12, [r1,#276] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - - "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) - "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) - // r8( s9 s8 s11 s10) - // r6(s12 s14 s14 s13) - - // MixColumn - "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 - "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 - "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 - // r8 ----------------> r8 - - // round 28 - - // SubCell+ShiftRow+AC(c2) - // r7 (s3 s2 s1 s0) - // r8 (s7 s6 s5 s4) - // r9 (s11 s10 s9 s8) - // r10(s15 s14 s13 s12) - - // 1st-2nd line - // r7(s3 s2 s1 s0) - "uxtb.w r5, r7, ror #24 \n\t" // s3 - "uxtb.w r4, r7, ror #16 \n\t" // s2 - "uxtb.w r3, r7, ror #8 \n\t" // s1 - "uxtb.w r7, r7 \n\t" // s0 - // r8(s6 s5 s4 s7) - "uxtb.w r12, r8, ror #16 \n\t" // s6 - "uxtb.w r11, r8, ror #8 \n\t" // s5 - "uxtb.w r6, r8 \n\t" // s4 - "uxtb.w r8, r8, ror #24 \n\t" // s7 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldr.w r0, [r1,#280] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r7, r7, r3, lsl #8 \n\t" - "eor.w r7, r7, r4, lsl #16 \n\t" - "eor.w r7, r7, r5, lsl #24 \n\t" - "eor.w r8, r8, r6, lsl #8 \n\t" - "eor.w r8, r8, r11, lsl #16 \n\t" - "eor.w r8, r8, r12, lsl #24 \n\t" - "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) - - // 3rd-4th line - // r9(s9 s8 s11 s10) - "uxtb.w r5, r9, ror #8 \n\t" // s9 - "uxtb.w r7, r9 \n\t" // s8 - "uxtb.w r3, r9, ror #24 \n\t" // s11 - "uxtb.w r9, r9, ror #16 \n\t" // s10 - // r10(s12 s15 s14 s13) - "uxtb.w r12, r10 \n\t" // s12 - "uxtb.w r11, r10, ror #24 \n\t" // s15 - "uxtb.w r6, r10, ror #16 \n\t" // s14 - "uxtb.w r10, r10, ror #8 \n\t" // s13 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldr.w r0, [r1,#284] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r9, r9, r3, lsl #8 \n\t" - "eor.w r9, r9, r7, lsl #16 \n\t" - "eor.w r9, r9, r5, lsl #24 \n\t" - "eor.w r10, r10, r6, lsl #8 \n\t" - "eor.w r10, r10, r11, lsl #16 \n\t" - "eor.w r10, r10, r12, lsl #24 \n\t" - "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) - - // AddRoundKey and AddRoundConst(from roundKeys) - - // r9( s9 s8 s11 s10) - // r10(s12 s14 s14 s13) - - // MixColumn - "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 - "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 - "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 - // r4 ----------------> r4 - // round 29 - - // SubCell+ShiftRow+AC(c2) - // r3 (s3 s2 s1 s0) - // r4 (s7 s6 s5 s4) - // r5 (s11 s10 s9 s8) - // r6 (s15 s14 s13 s12) - - // 1st-2nd line - // r3(s3 s2 s1 s0) - "uxtb.w r9, r3, ror #24 \n\t" // s3 - "uxtb.w r8, r3, ror #16 \n\t" // s2 - "uxtb.w r7, r3, ror #8 \n\t" // s1 - "uxtb.w r3, r3 \n\t" // s0 - // r4(s6 s5 s4 s7) - "uxtb.w r12, r4, ror #16 \n\t" // s6 - "uxtb.w r11, r4, ror #8 \n\t" // s5 - "uxtb.w r10, r4 \n\t" // s4 - "uxtb.w r4, r4, ror #24 \n\t" // s7 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "eor.w r3, r3, r7, lsl #8 \n\t" - "eor.w r3, r3, r8, lsl #16 \n\t" - "eor.w r3, r3, r9, lsl #24 \n\t" - "eor.w r4, r4, r10, lsl #8 \n\t" - "eor.w r4, r4, r11, lsl #16 \n\t" - "eor.w r4, r4, r12, lsl #24 \n\t" - - // 3rd-4th line - // r5(s9 s8 s11 s10) - "uxtb.w r9, r5, ror #8 \n\t" // s9 - "uxtb.w r8, r5 \n\t" // s8 - "uxtb.w r7, r5, ror #24 \n\t" // s11 - "uxtb.w r5, r5, ror #16 \n\t" // s10 - // r6(s12 s15 s14 s13) - "uxtb.w r12, r6 \n\t" // s12 - "uxtb.w r11, r6, ror #24 \n\t" // s15 - "uxtb.w r10, r6, ror #16 \n\t" // s14 - "uxtb.w r6, r6, ror #8 \n\t" // s13 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "eor.w r5, r5, r7, lsl #8 \n\t" - "eor.w r5, r5, r8, lsl #16 \n\t" - "eor.w r5, r5, r9, lsl #24 \n\t" - "eor.w r6, r6, r10, lsl #8 \n\t" - "eor.w r6, r6, r11, lsl #16 \n\t" - "eor.w r6, r6, r12, lsl #24 \n\t" - - // AddRoundKey and AddRoundConst(from roundKeys) - "ldr.w r9, [r1,#48] \n\t" // load TK1 - "ldr.w r10, [r1,#52] \n\t" // load TK1 - "ldr.w r11, [r1,#288] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "ldr.w r12, [r1,#292] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - - "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) - "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) - // r8( s9 s8 s11 s10) - // r6(s12 s14 s14 s13) - - // MixColumn - "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 - "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 - "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 - // r8 ----------------> r8 - - // round 30 - - // SubCell+ShiftRow+AC(c2) - // r7 (s3 s2 s1 s0) - // r8 (s7 s6 s5 s4) - // r9 (s11 s10 s9 s8) - // r10(s15 s14 s13 s12) - - // 1st-2nd line - // r7(s3 s2 s1 s0) - "uxtb.w r5, r7, ror #24 \n\t" // s3 - "uxtb.w r4, r7, ror #16 \n\t" // s2 - "uxtb.w r3, r7, ror #8 \n\t" // s1 - "uxtb.w r7, r7 \n\t" // s0 - // r8(s6 s5 s4 s7) - "uxtb.w r12, r8, ror #16 \n\t" // s6 - "uxtb.w r11, r8, ror #8 \n\t" // s5 - "uxtb.w r6, r8 \n\t" // s4 - "uxtb.w r8, r8, ror #24 \n\t" // s7 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldr.w r0, [r1,#296] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r7, r7, r3, lsl #8 \n\t" - "eor.w r7, r7, r4, lsl #16 \n\t" - "eor.w r7, r7, r5, lsl #24 \n\t" - "eor.w r8, r8, r6, lsl #8 \n\t" - "eor.w r8, r8, r11, lsl #16 \n\t" - "eor.w r8, r8, r12, lsl #24 \n\t" - "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) - - // 3rd-4th line - // r9(s9 s8 s11 s10) - "uxtb.w r5, r9, ror #8 \n\t" // s9 - "uxtb.w r7, r9 \n\t" // s8 - "uxtb.w r3, r9, ror #24 \n\t" // s11 - "uxtb.w r9, r9, ror #16 \n\t" // s10 - // r10(s12 s15 s14 s13) - "uxtb.w r12, r10 \n\t" // s12 - "uxtb.w r11, r10, ror #24 \n\t" // s15 - "uxtb.w r6, r10, ror #16 \n\t" // s14 - "uxtb.w r10, r10, ror #8 \n\t" // s13 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldr.w r0, [r1,#300] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r9, r9, r3, lsl #8 \n\t" - "eor.w r9, r9, r7, lsl #16 \n\t" - "eor.w r9, r9, r5, lsl #24 \n\t" - "eor.w r10, r10, r6, lsl #8 \n\t" - "eor.w r10, r10, r11, lsl #16 \n\t" - "eor.w r10, r10, r12, lsl #24 \n\t" - "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) - - // AddRoundKey and AddRoundConst(from roundKeys) - - // r9( s9 s8 s11 s10) - // r10(s12 s14 s14 s13) - - // MixColumn - "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 - "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 - "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 - // r4 ----------------> r4 - // round 31 - - // SubCell+ShiftRow+AC(c2) - // r3 (s3 s2 s1 s0) - // r4 (s7 s6 s5 s4) - // r5 (s11 s10 s9 s8) - // r6 (s15 s14 s13 s12) - - // 1st-2nd line - // r3(s3 s2 s1 s0) - "uxtb.w r9, r3, ror #24 \n\t" // s3 - "uxtb.w r8, r3, ror #16 \n\t" // s2 - "uxtb.w r7, r3, ror #8 \n\t" // s1 - "uxtb.w r3, r3 \n\t" // s0 - // r4(s6 s5 s4 s7) - "uxtb.w r12, r4, ror #16 \n\t" // s6 - "uxtb.w r11, r4, ror #8 \n\t" // s5 - "uxtb.w r10, r4 \n\t" // s4 - "uxtb.w r4, r4, ror #24 \n\t" // s7 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "eor.w r3, r3, r7, lsl #8 \n\t" - "eor.w r3, r3, r8, lsl #16 \n\t" - "eor.w r3, r3, r9, lsl #24 \n\t" - "eor.w r4, r4, r10, lsl #8 \n\t" - "eor.w r4, r4, r11, lsl #16 \n\t" - "eor.w r4, r4, r12, lsl #24 \n\t" - - // 3rd-4th line - // r5(s9 s8 s11 s10) - "uxtb.w r9, r5, ror #8 \n\t" // s9 - "uxtb.w r8, r5 \n\t" // s8 - "uxtb.w r7, r5, ror #24 \n\t" // s11 - "uxtb.w r5, r5, ror #16 \n\t" // s10 - // r6(s12 s15 s14 s13) - "uxtb.w r12, r6 \n\t" // s12 - "uxtb.w r11, r6, ror #24 \n\t" // s15 - "uxtb.w r10, r6, ror #16 \n\t" // s14 - "uxtb.w r6, r6, ror #8 \n\t" // s13 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "eor.w r5, r5, r7, lsl #8 \n\t" - "eor.w r5, r5, r8, lsl #16 \n\t" - "eor.w r5, r5, r9, lsl #24 \n\t" - "eor.w r6, r6, r10, lsl #8 \n\t" - "eor.w r6, r6, r11, lsl #16 \n\t" - "eor.w r6, r6, r12, lsl #24 \n\t" - - // AddRoundKey and AddRoundConst(from roundKeys) - "ldr.w r9, [r1,#56] \n\t" // load TK1 - "ldr.w r10, [r1,#60] \n\t" // load TK1 - "ldr.w r11, [r1,#304] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "ldr.w r12, [r1,#308] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - - "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) - "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) - // r8( s9 s8 s11 s10) - // r6(s12 s14 s14 s13) - - // MixColumn - "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 - "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 - "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 - // r8 ----------------> r8 - - // round 32 - - // SubCell+ShiftRow+AC(c2) - // r7 (s3 s2 s1 s0) - // r8 (s7 s6 s5 s4) - // r9 (s11 s10 s9 s8) - // r10(s15 s14 s13 s12) - - // 1st-2nd line - // r7(s3 s2 s1 s0) - "uxtb.w r5, r7, ror #24 \n\t" // s3 - "uxtb.w r4, r7, ror #16 \n\t" // s2 - "uxtb.w r3, r7, ror #8 \n\t" // s1 - "uxtb.w r7, r7 \n\t" // s0 - // r8(s6 s5 s4 s7) - "uxtb.w r12, r8, ror #16 \n\t" // s6 - "uxtb.w r11, r8, ror #8 \n\t" // s5 - "uxtb.w r6, r8 \n\t" // s4 - "uxtb.w r8, r8, ror #24 \n\t" // s7 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldr.w r0, [r1,#312] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r7, r7, r3, lsl #8 \n\t" - "eor.w r7, r7, r4, lsl #16 \n\t" - "eor.w r7, r7, r5, lsl #24 \n\t" - "eor.w r8, r8, r6, lsl #8 \n\t" - "eor.w r8, r8, r11, lsl #16 \n\t" - "eor.w r8, r8, r12, lsl #24 \n\t" - "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) - - // 3rd-4th line - // r9(s9 s8 s11 s10) - "uxtb.w r5, r9, ror #8 \n\t" // s9 - "uxtb.w r7, r9 \n\t" // s8 - "uxtb.w r3, r9, ror #24 \n\t" // s11 - "uxtb.w r9, r9, ror #16 \n\t" // s10 - // r10(s12 s15 s14 s13) - "uxtb.w r12, r10 \n\t" // s12 - "uxtb.w r11, r10, ror #24 \n\t" // s15 - "uxtb.w r6, r10, ror #16 \n\t" // s14 - "uxtb.w r10, r10, ror #8 \n\t" // s13 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldr.w r0, [r1,#316] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r9, r9, r3, lsl #8 \n\t" - "eor.w r9, r9, r7, lsl #16 \n\t" - "eor.w r9, r9, r5, lsl #24 \n\t" - "eor.w r10, r10, r6, lsl #8 \n\t" - "eor.w r10, r10, r11, lsl #16 \n\t" - "eor.w r10, r10, r12, lsl #24 \n\t" - "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) - - // AddRoundKey and AddRoundConst(from roundKeys) - - // r9( s9 s8 s11 s10) - // r10(s12 s14 s14 s13) - - // MixColumn - "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 - "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 - "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 - // r4 ----------------> r4 - // round 33 - - // SubCell+ShiftRow+AC(c2) - // r3 (s3 s2 s1 s0) - // r4 (s7 s6 s5 s4) - // r5 (s11 s10 s9 s8) - // r6 (s15 s14 s13 s12) - - // 1st-2nd line - // r3(s3 s2 s1 s0) - "uxtb.w r9, r3, ror #24 \n\t" // s3 - "uxtb.w r8, r3, ror #16 \n\t" // s2 - "uxtb.w r7, r3, ror #8 \n\t" // s1 - "uxtb.w r3, r3 \n\t" // s0 - // r4(s6 s5 s4 s7) - "uxtb.w r12, r4, ror #16 \n\t" // s6 - "uxtb.w r11, r4, ror #8 \n\t" // s5 - "uxtb.w r10, r4 \n\t" // s4 - "uxtb.w r4, r4, ror #24 \n\t" // s7 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "eor.w r3, r3, r7, lsl #8 \n\t" - "eor.w r3, r3, r8, lsl #16 \n\t" - "eor.w r3, r3, r9, lsl #24 \n\t" - "eor.w r4, r4, r10, lsl #8 \n\t" - "eor.w r4, r4, r11, lsl #16 \n\t" - "eor.w r4, r4, r12, lsl #24 \n\t" - - // 3rd-4th line - // r5(s9 s8 s11 s10) - "uxtb.w r9, r5, ror #8 \n\t" // s9 - "uxtb.w r8, r5 \n\t" // s8 - "uxtb.w r7, r5, ror #24 \n\t" // s11 - "uxtb.w r5, r5, ror #16 \n\t" // s10 - // r6(s12 s15 s14 s13) - "uxtb.w r12, r6 \n\t" // s12 - "uxtb.w r11, r6, ror #24 \n\t" // s15 - "uxtb.w r10, r6, ror #16 \n\t" // s14 - "uxtb.w r6, r6, ror #8 \n\t" // s13 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "eor.w r5, r5, r7, lsl #8 \n\t" - "eor.w r5, r5, r8, lsl #16 \n\t" - "eor.w r5, r5, r9, lsl #24 \n\t" - "eor.w r6, r6, r10, lsl #8 \n\t" - "eor.w r6, r6, r11, lsl #16 \n\t" - "eor.w r6, r6, r12, lsl #24 \n\t" - - // AddRoundKey and AddRoundConst(from roundKeys) - "ldr.w r9, [r1,#0] \n\t" // load TK1 - "ldr.w r10, [r1,#4] \n\t" // load TK1 - "ldr.w r11, [r1,#320] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "ldr.w r12, [r1,#324] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - - "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) - "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) - // r8( s9 s8 s11 s10) - // r6(s12 s14 s14 s13) - - // MixColumn - "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 - "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 - "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 - // r8 ----------------> r8 - - // round 34 - - // SubCell+ShiftRow+AC(c2) - // r7 (s3 s2 s1 s0) - // r8 (s7 s6 s5 s4) - // r9 (s11 s10 s9 s8) - // r10(s15 s14 s13 s12) - - // 1st-2nd line - // r7(s3 s2 s1 s0) - "uxtb.w r5, r7, ror #24 \n\t" // s3 - "uxtb.w r4, r7, ror #16 \n\t" // s2 - "uxtb.w r3, r7, ror #8 \n\t" // s1 - "uxtb.w r7, r7 \n\t" // s0 - // r8(s6 s5 s4 s7) - "uxtb.w r12, r8, ror #16 \n\t" // s6 - "uxtb.w r11, r8, ror #8 \n\t" // s5 - "uxtb.w r6, r8 \n\t" // s4 - "uxtb.w r8, r8, ror #24 \n\t" // s7 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldr.w r0, [r1,#328] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r7, r7, r3, lsl #8 \n\t" - "eor.w r7, r7, r4, lsl #16 \n\t" - "eor.w r7, r7, r5, lsl #24 \n\t" - "eor.w r8, r8, r6, lsl #8 \n\t" - "eor.w r8, r8, r11, lsl #16 \n\t" - "eor.w r8, r8, r12, lsl #24 \n\t" - "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) - - // 3rd-4th line - // r9(s9 s8 s11 s10) - "uxtb.w r5, r9, ror #8 \n\t" // s9 - "uxtb.w r7, r9 \n\t" // s8 - "uxtb.w r3, r9, ror #24 \n\t" // s11 - "uxtb.w r9, r9, ror #16 \n\t" // s10 - // r10(s12 s15 s14 s13) - "uxtb.w r12, r10 \n\t" // s12 - "uxtb.w r11, r10, ror #24 \n\t" // s15 - "uxtb.w r6, r10, ror #16 \n\t" // s14 - "uxtb.w r10, r10, ror #8 \n\t" // s13 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldr.w r0, [r1,#332] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r9, r9, r3, lsl #8 \n\t" - "eor.w r9, r9, r7, lsl #16 \n\t" - "eor.w r9, r9, r5, lsl #24 \n\t" - "eor.w r10, r10, r6, lsl #8 \n\t" - "eor.w r10, r10, r11, lsl #16 \n\t" - "eor.w r10, r10, r12, lsl #24 \n\t" - "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) - - // AddRoundKey and AddRoundConst(from roundKeys) - - // r9( s9 s8 s11 s10) - // r10(s12 s14 s14 s13) - - // MixColumn - "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 - "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 - "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 - // r4 ----------------> r4 - // round 35 - - // SubCell+ShiftRow+AC(c2) - // r3 (s3 s2 s1 s0) - // r4 (s7 s6 s5 s4) - // r5 (s11 s10 s9 s8) - // r6 (s15 s14 s13 s12) - - // 1st-2nd line - // r3(s3 s2 s1 s0) - "uxtb.w r9, r3, ror #24 \n\t" // s3 - "uxtb.w r8, r3, ror #16 \n\t" // s2 - "uxtb.w r7, r3, ror #8 \n\t" // s1 - "uxtb.w r3, r3 \n\t" // s0 - // r4(s6 s5 s4 s7) - "uxtb.w r12, r4, ror #16 \n\t" // s6 - "uxtb.w r11, r4, ror #8 \n\t" // s5 - "uxtb.w r10, r4 \n\t" // s4 - "uxtb.w r4, r4, ror #24 \n\t" // s7 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "eor.w r3, r3, r7, lsl #8 \n\t" - "eor.w r3, r3, r8, lsl #16 \n\t" - "eor.w r3, r3, r9, lsl #24 \n\t" - "eor.w r4, r4, r10, lsl #8 \n\t" - "eor.w r4, r4, r11, lsl #16 \n\t" - "eor.w r4, r4, r12, lsl #24 \n\t" - - // 3rd-4th line - // r5(s9 s8 s11 s10) - "uxtb.w r9, r5, ror #8 \n\t" // s9 - "uxtb.w r8, r5 \n\t" // s8 - "uxtb.w r7, r5, ror #24 \n\t" // s11 - "uxtb.w r5, r5, ror #16 \n\t" // s10 - // r6(s12 s15 s14 s13) - "uxtb.w r12, r6 \n\t" // s12 - "uxtb.w r11, r6, ror #24 \n\t" // s15 - "uxtb.w r10, r6, ror #16 \n\t" // s14 - "uxtb.w r6, r6, ror #8 \n\t" // s13 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "eor.w r5, r5, r7, lsl #8 \n\t" - "eor.w r5, r5, r8, lsl #16 \n\t" - "eor.w r5, r5, r9, lsl #24 \n\t" - "eor.w r6, r6, r10, lsl #8 \n\t" - "eor.w r6, r6, r11, lsl #16 \n\t" - "eor.w r6, r6, r12, lsl #24 \n\t" - - // AddRoundKey and AddRoundConst(from roundKeys) - "ldr.w r9, [r1,#8] \n\t" // load TK1 - "ldr.w r10, [r1,#12] \n\t" // load TK1 - "ldr.w r11, [r1,#336] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "ldr.w r12, [r1,#340] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - - "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) - "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) - // r8( s9 s8 s11 s10) - // r6(s12 s14 s14 s13) - - // MixColumn - "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 - "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 - "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 - // r8 ----------------> r8 - - // round 36 - - // SubCell+ShiftRow+AC(c2) - // r7 (s3 s2 s1 s0) - // r8 (s7 s6 s5 s4) - // r9 (s11 s10 s9 s8) - // r10(s15 s14 s13 s12) - - // 1st-2nd line - // r7(s3 s2 s1 s0) - "uxtb.w r5, r7, ror #24 \n\t" // s3 - "uxtb.w r4, r7, ror #16 \n\t" // s2 - "uxtb.w r3, r7, ror #8 \n\t" // s1 - "uxtb.w r7, r7 \n\t" // s0 - // r8(s6 s5 s4 s7) - "uxtb.w r12, r8, ror #16 \n\t" // s6 - "uxtb.w r11, r8, ror #8 \n\t" // s5 - "uxtb.w r6, r8 \n\t" // s4 - "uxtb.w r8, r8, ror #24 \n\t" // s7 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldr.w r0, [r1,#344] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r7, r7, r3, lsl #8 \n\t" - "eor.w r7, r7, r4, lsl #16 \n\t" - "eor.w r7, r7, r5, lsl #24 \n\t" - "eor.w r8, r8, r6, lsl #8 \n\t" - "eor.w r8, r8, r11, lsl #16 \n\t" - "eor.w r8, r8, r12, lsl #24 \n\t" - "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) - - // 3rd-4th line - // r9(s9 s8 s11 s10) - "uxtb.w r5, r9, ror #8 \n\t" // s9 - "uxtb.w r7, r9 \n\t" // s8 - "uxtb.w r3, r9, ror #24 \n\t" // s11 - "uxtb.w r9, r9, ror #16 \n\t" // s10 - // r10(s12 s15 s14 s13) - "uxtb.w r12, r10 \n\t" // s12 - "uxtb.w r11, r10, ror #24 \n\t" // s15 - "uxtb.w r6, r10, ror #16 \n\t" // s14 - "uxtb.w r10, r10, ror #8 \n\t" // s13 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldr.w r0, [r1,#348] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r9, r9, r3, lsl #8 \n\t" - "eor.w r9, r9, r7, lsl #16 \n\t" - "eor.w r9, r9, r5, lsl #24 \n\t" - "eor.w r10, r10, r6, lsl #8 \n\t" - "eor.w r10, r10, r11, lsl #16 \n\t" - "eor.w r10, r10, r12, lsl #24 \n\t" - "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) - - // AddRoundKey and AddRoundConst(from roundKeys) - - // r9( s9 s8 s11 s10) - // r10(s12 s14 s14 s13) - - // MixColumn - "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 - "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 - "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 - // r4 ----------------> r4 - // round 37 - - // SubCell+ShiftRow+AC(c2) - // r3 (s3 s2 s1 s0) - // r4 (s7 s6 s5 s4) - // r5 (s11 s10 s9 s8) - // r6 (s15 s14 s13 s12) - - // 1st-2nd line - // r3(s3 s2 s1 s0) - "uxtb.w r9, r3, ror #24 \n\t" // s3 - "uxtb.w r8, r3, ror #16 \n\t" // s2 - "uxtb.w r7, r3, ror #8 \n\t" // s1 - "uxtb.w r3, r3 \n\t" // s0 - // r4(s6 s5 s4 s7) - "uxtb.w r12, r4, ror #16 \n\t" // s6 - "uxtb.w r11, r4, ror #8 \n\t" // s5 - "uxtb.w r10, r4 \n\t" // s4 - "uxtb.w r4, r4, ror #24 \n\t" // s7 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "eor.w r3, r3, r7, lsl #8 \n\t" - "eor.w r3, r3, r8, lsl #16 \n\t" - "eor.w r3, r3, r9, lsl #24 \n\t" - "eor.w r4, r4, r10, lsl #8 \n\t" - "eor.w r4, r4, r11, lsl #16 \n\t" - "eor.w r4, r4, r12, lsl #24 \n\t" - - // 3rd-4th line - // r5(s9 s8 s11 s10) - "uxtb.w r9, r5, ror #8 \n\t" // s9 - "uxtb.w r8, r5 \n\t" // s8 - "uxtb.w r7, r5, ror #24 \n\t" // s11 - "uxtb.w r5, r5, ror #16 \n\t" // s10 - // r6(s12 s15 s14 s13) - "uxtb.w r12, r6 \n\t" // s12 - "uxtb.w r11, r6, ror #24 \n\t" // s15 - "uxtb.w r10, r6, ror #16 \n\t" // s14 - "uxtb.w r6, r6, ror #8 \n\t" // s13 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "eor.w r5, r5, r7, lsl #8 \n\t" - "eor.w r5, r5, r8, lsl #16 \n\t" - "eor.w r5, r5, r9, lsl #24 \n\t" - "eor.w r6, r6, r10, lsl #8 \n\t" - "eor.w r6, r6, r11, lsl #16 \n\t" - "eor.w r6, r6, r12, lsl #24 \n\t" - - // AddRoundKey and AddRoundConst(from roundKeys) - "ldr.w r9, [r1,#16] \n\t" // load TK1 - "ldr.w r10, [r1,#20] \n\t" // load TK1 - "ldr.w r11, [r1,#352] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "ldr.w r12, [r1,#356] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - - "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) - "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) - // r8( s9 s8 s11 s10) - // r6(s12 s14 s14 s13) - - // MixColumn - "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 - "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 - "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 - // r8 ----------------> r8 - - // round 38 - - // SubCell+ShiftRow+AC(c2) - // r7 (s3 s2 s1 s0) - // r8 (s7 s6 s5 s4) - // r9 (s11 s10 s9 s8) - // r10(s15 s14 s13 s12) - - // 1st-2nd line - // r7(s3 s2 s1 s0) - "uxtb.w r5, r7, ror #24 \n\t" // s3 - "uxtb.w r4, r7, ror #16 \n\t" // s2 - "uxtb.w r3, r7, ror #8 \n\t" // s1 - "uxtb.w r7, r7 \n\t" // s0 - // r8(s6 s5 s4 s7) - "uxtb.w r12, r8, ror #16 \n\t" // s6 - "uxtb.w r11, r8, ror #8 \n\t" // s5 - "uxtb.w r6, r8 \n\t" // s4 - "uxtb.w r8, r8, ror #24 \n\t" // s7 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldr.w r0, [r1,#360] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r7, r7, r3, lsl #8 \n\t" - "eor.w r7, r7, r4, lsl #16 \n\t" - "eor.w r7, r7, r5, lsl #24 \n\t" - "eor.w r8, r8, r6, lsl #8 \n\t" - "eor.w r8, r8, r11, lsl #16 \n\t" - "eor.w r8, r8, r12, lsl #24 \n\t" - "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) - - // 3rd-4th line - // r9(s9 s8 s11 s10) - "uxtb.w r5, r9, ror #8 \n\t" // s9 - "uxtb.w r7, r9 \n\t" // s8 - "uxtb.w r3, r9, ror #24 \n\t" // s11 - "uxtb.w r9, r9, ror #16 \n\t" // s10 - // r10(s12 s15 s14 s13) - "uxtb.w r12, r10 \n\t" // s12 - "uxtb.w r11, r10, ror #24 \n\t" // s15 - "uxtb.w r6, r10, ror #16 \n\t" // s14 - "uxtb.w r10, r10, ror #8 \n\t" // s13 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldr.w r0, [r1,#364] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r9, r9, r3, lsl #8 \n\t" - "eor.w r9, r9, r7, lsl #16 \n\t" - "eor.w r9, r9, r5, lsl #24 \n\t" - "eor.w r10, r10, r6, lsl #8 \n\t" - "eor.w r10, r10, r11, lsl #16 \n\t" - "eor.w r10, r10, r12, lsl #24 \n\t" - "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) - - // AddRoundKey and AddRoundConst(from roundKeys) - - // r9( s9 s8 s11 s10) - // r10(s12 s14 s14 s13) - - // MixColumn - "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 - "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 - "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 - // r4 ----------------> r4 - // round 39 - - // SubCell+ShiftRow+AC(c2) - // r3 (s3 s2 s1 s0) - // r4 (s7 s6 s5 s4) - // r5 (s11 s10 s9 s8) - // r6 (s15 s14 s13 s12) - - // 1st-2nd line - // r3(s3 s2 s1 s0) - "uxtb.w r9, r3, ror #24 \n\t" // s3 - "uxtb.w r8, r3, ror #16 \n\t" // s2 - "uxtb.w r7, r3, ror #8 \n\t" // s1 - "uxtb.w r3, r3 \n\t" // s0 - // r4(s6 s5 s4 s7) - "uxtb.w r12, r4, ror #16 \n\t" // s6 - "uxtb.w r11, r4, ror #8 \n\t" // s5 - "uxtb.w r10, r4 \n\t" // s4 - "uxtb.w r4, r4, ror #24 \n\t" // s7 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "eor.w r3, r3, r7, lsl #8 \n\t" - "eor.w r3, r3, r8, lsl #16 \n\t" - "eor.w r3, r3, r9, lsl #24 \n\t" - "eor.w r4, r4, r10, lsl #8 \n\t" - "eor.w r4, r4, r11, lsl #16 \n\t" - "eor.w r4, r4, r12, lsl #24 \n\t" - - // 3rd-4th line - // r5(s9 s8 s11 s10) - "uxtb.w r9, r5, ror #8 \n\t" // s9 - "uxtb.w r8, r5 \n\t" // s8 - "uxtb.w r7, r5, ror #24 \n\t" // s11 - "uxtb.w r5, r5, ror #16 \n\t" // s10 - // r6(s12 s15 s14 s13) - "uxtb.w r12, r6 \n\t" // s12 - "uxtb.w r11, r6, ror #24 \n\t" // s15 - "uxtb.w r10, r6, ror #16 \n\t" // s14 - "uxtb.w r6, r6, ror #8 \n\t" // s13 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "eor.w r5, r5, r7, lsl #8 \n\t" - "eor.w r5, r5, r8, lsl #16 \n\t" - "eor.w r5, r5, r9, lsl #24 \n\t" - "eor.w r6, r6, r10, lsl #8 \n\t" - "eor.w r6, r6, r11, lsl #16 \n\t" - "eor.w r6, r6, r12, lsl #24 \n\t" - - // AddRoundKey and AddRoundConst(from roundKeys) - "ldr.w r9, [r1,#24] \n\t" // load TK1 - "ldr.w r10, [r1,#28] \n\t" // load TK1 - "ldr.w r11, [r1,#368] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "ldr.w r12, [r1,#372] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - - "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) - "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) - // r8( s9 s8 s11 s10) - // r6(s12 s14 s14 s13) - - // MixColumn - "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 - "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 - "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 - // r8 ----------------> r8 - - // round 40 - - // SubCell+ShiftRow+AC(c2) - // r7 (s3 s2 s1 s0) - // r8 (s7 s6 s5 s4) - // r9 (s11 s10 s9 s8) - // r10(s15 s14 s13 s12) - - // 1st-2nd line - // r7(s3 s2 s1 s0) - "uxtb.w r5, r7, ror #24 \n\t" // s3 - "uxtb.w r4, r7, ror #16 \n\t" // s2 - "uxtb.w r3, r7, ror #8 \n\t" // s1 - "uxtb.w r7, r7 \n\t" // s0 - // r8(s6 s5 s4 s7) - "uxtb.w r12, r8, ror #16 \n\t" // s6 - "uxtb.w r11, r8, ror #8 \n\t" // s5 - "uxtb.w r6, r8 \n\t" // s4 - "uxtb.w r8, r8, ror #24 \n\t" // s7 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldr.w r0, [r1,#376] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r7, r7, r3, lsl #8 \n\t" - "eor.w r7, r7, r4, lsl #16 \n\t" - "eor.w r7, r7, r5, lsl #24 \n\t" - "eor.w r8, r8, r6, lsl #8 \n\t" - "eor.w r8, r8, r11, lsl #16 \n\t" - "eor.w r8, r8, r12, lsl #24 \n\t" - "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) - - // 3rd-4th line - // r9(s9 s8 s11 s10) - "uxtb.w r5, r9, ror #8 \n\t" // s9 - "uxtb.w r7, r9 \n\t" // s8 - "uxtb.w r3, r9, ror #24 \n\t" // s11 - "uxtb.w r9, r9, ror #16 \n\t" // s10 - // r10(s12 s15 s14 s13) - "uxtb.w r12, r10 \n\t" // s12 - "uxtb.w r11, r10, ror #24 \n\t" // s15 - "uxtb.w r6, r10, ror #16 \n\t" // s14 - "uxtb.w r10, r10, ror #8 \n\t" // s13 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldr.w r0, [r1,#380] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r9, r9, r3, lsl #8 \n\t" - "eor.w r9, r9, r7, lsl #16 \n\t" - "eor.w r9, r9, r5, lsl #24 \n\t" - "eor.w r10, r10, r6, lsl #8 \n\t" - "eor.w r10, r10, r11, lsl #16 \n\t" - "eor.w r10, r10, r12, lsl #24 \n\t" - "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) - - // AddRoundKey and AddRoundConst(from roundKeys) - - // r9( s9 s8 s11 s10) - // r10(s12 s14 s14 s13) - - // MixColumn - "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 - "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 - "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 - // r4 ----------------> r4 - - "ldmia.w sp!, {r0} \n\t" // pop store pointer - // r0 reload - - "str.w r3, [r0,#0] \n\t" // store ciphertext - "str.w r4, [r0,#4] \n\t" // store ciphertext - "str.w r5, [r0,#8] \n\t" // store ciphertext - "str.w r6, [r0,#12] \n\t" // store ciphertext - - "ldmia.w sp!, {r4-r12,r14} \n\t" - : - : [block] "r" (block), [roundKeys] "r" (roundKeys), [pSBOX] "" (pSBOX) - : "cc"); -} - diff --git a/romulus/Implementations/crypto_aead/romulusn1+v13/opt32/api.h b/romulus/Implementations/crypto_aead/romulusn1+v13/opt32/api.h deleted file mode 100644 index a4aa567..0000000 --- a/romulus/Implementations/crypto_aead/romulusn1+v13/opt32/api.h +++ /dev/null @@ -1,5 +0,0 @@ -#define CRYPTO_KEYBYTES 16 -#define CRYPTO_NSECBYTES 0 -#define CRYPTO_NPUBBYTES 16 -#define CRYPTO_ABYTES 16 -#define CRYPTO_NOOVERLAP 1 diff --git a/romulus/Implementations/crypto_aead/romulusn1+v13/opt32/crypto_aead.h b/romulus/Implementations/crypto_aead/romulusn1+v13/opt32/crypto_aead.h deleted file mode 100644 index e2ca9b0..0000000 --- a/romulus/Implementations/crypto_aead/romulusn1+v13/opt32/crypto_aead.h +++ /dev/null @@ -1,18 +0,0 @@ - -int crypto_aead_encrypt( - unsigned char *c, unsigned long long *clen, - const unsigned char *m, unsigned long long mlen, - const unsigned char *ad, unsigned long long adlen, - const unsigned char *nsec, - const unsigned char *npub, - const unsigned char *k -); - -int crypto_aead_decrypt( - unsigned char *m, unsigned long long *mlen, - unsigned char *nsec, - const unsigned char *c, unsigned long long clen, - const unsigned char *ad, unsigned long long adlen, - const unsigned char *npub, - const unsigned char *k -); \ No newline at end of file diff --git a/romulus/Implementations/crypto_aead/romulusn1+v13/opt32/encrypt.c b/romulus/Implementations/crypto_aead/romulusn1+v13/opt32/encrypt.c deleted file mode 100644 index fb144a9..0000000 --- a/romulus/Implementations/crypto_aead/romulusn1+v13/opt32/encrypt.c +++ /dev/null @@ -1,270 +0,0 @@ -#include "skinny128.h" -#include "tk_schedule.h" -#include "romulus.h" -#include -#include - -//Encryption and authentication using Romulus-N1 -int crypto_aead_encrypt - (unsigned char *c, unsigned long long *clen, - const unsigned char *m, unsigned long long mlen, - const unsigned char *ad, unsigned long long adlen, - const unsigned char *nsec, - const unsigned char *npub, - const unsigned char *k) { - - int i; - u32 tmp; - skinny_128_384_tks tks; - u8 state[BLOCKBYTES], pad[BLOCKBYTES]; - (void)nsec; - - // ----------------- Initialization ----------------- - *clen = mlen + TAGBYTES; - memset(tks.tk1, 0x00, KEYBYTES); - memset(state, 0x00, BLOCKBYTES); - tks.tk1[0] = 0x01; //56-bit LFSR counter - // ----------------- Initialization ----------------- - - // ----------------- Process the associated data ----------------- - //Handle the special case of no associated data - if (adlen == 0) { - UPDATE_CTR(tks.tk1); - SET_DOMAIN(tks, 0x1A); - precompute_rtk2_3(tks.rtk2_3, npub, k); - precompute_rtk1(tks.rtk1, tks.tk1); - skinny128_384_plus(state, state, tks.rtk1, tks.rtk2_3); - } else { - // Process all double blocks except the last - SET_DOMAIN(tks, 0x08); - while (adlen > 2*BLOCKBYTES) { - UPDATE_CTR(tks.tk1); - XOR_BLOCK(state, state, ad); - precompute_rtk2_3(tks.rtk2_3, ad + BLOCKBYTES, k); - precompute_rtk1(tks.rtk1, tks.tk1); - skinny128_384_plus(state, state, tks.rtk1, tks.rtk2_3); - UPDATE_CTR(tks.tk1); - ad += 2*BLOCKBYTES; - adlen -= 2*BLOCKBYTES; - } - //Pad and process the left-over blocks - UPDATE_CTR(tks.tk1); - if (adlen == 2*BLOCKBYTES) { - // Left-over complete double block - XOR_BLOCK(state, state, ad); - precompute_rtk2_3(tks.rtk2_3, ad + BLOCKBYTES, k); - precompute_rtk1(tks.rtk1, tks.tk1); - skinny128_384_plus(state, state, tks.rtk1, tks.rtk2_3); - UPDATE_CTR(tks.tk1); - SET_DOMAIN(tks, 0x18); - } else if (adlen > BLOCKBYTES) { - // Left-over partial double block - adlen -= BLOCKBYTES; - XOR_BLOCK(state, state, ad); - memcpy(pad, ad + BLOCKBYTES, adlen); - memset(pad + adlen, 0x00, 15 - adlen); - pad[15] = adlen; - precompute_rtk2_3(tks.rtk2_3, pad, k); - precompute_rtk1(tks.rtk1, tks.tk1); - skinny128_384_plus(state, state, tks.rtk1, tks.rtk2_3); - UPDATE_CTR(tks.tk1); - SET_DOMAIN(tks, 0x1A); - } else if (adlen == BLOCKBYTES) { - // Left-over complete single block - XOR_BLOCK(state, state, ad); - SET_DOMAIN(tks, 0x18); - } else { - // Left-over partial single block - for(i =0; i < (int)adlen; i++) - state[i] ^= ad[i]; - state[15] ^= adlen; - SET_DOMAIN(tks, 0x1A); - } - precompute_rtk2_3(tks.rtk2_3, npub, k); - precompute_rtk1(tks.rtk1, tks.tk1); - skinny128_384_plus(state, state, tks.rtk1, tks.rtk2_3); - } - // ----------------- Process the associated data ----------------- - - // ----------------- Process the plaintext ----------------- - memset(tks.tk1, 0, KEYBYTES); - tks.tk1[0] = 0x01; //init the 56-bit LFSR counter - if (mlen == 0) { - UPDATE_CTR(tks.tk1); - SET_DOMAIN(tks, 0x15); - precompute_rtk1(tks.rtk1, tks.tk1); - skinny128_384_plus(state, state, tks.rtk1, tks.rtk2_3); - } else { - //process all blocks except the last - SET_DOMAIN(tks, 0x04); - while (mlen > BLOCKBYTES) { - RHO(state,c,m); - UPDATE_CTR(tks.tk1); - precompute_rtk1(tks.rtk1, tks.tk1); - skinny128_384_plus(state, state, tks.rtk1, tks.rtk2_3); - c += BLOCKBYTES; - m += BLOCKBYTES; - mlen -= BLOCKBYTES; - } - //pad and process the last block - UPDATE_CTR(tks.tk1); - if (mlen < BLOCKBYTES) { - for(i = 0; i < (int)mlen; i++) { - tmp = m[i]; //use of tmp variable just in case 'c = m' - c[i] = m[i] ^ (state[i] >> 1) ^ (state[i] & 0x80) ^ (state[i] << 7); - state[i] ^= (u8)tmp; - } - state[15] ^= (u8)mlen; //padding - SET_DOMAIN(tks, 0x15); - } else { - RHO(state,c,m); - SET_DOMAIN(tks, 0x14); - } - precompute_rtk1(tks.rtk1, tks.tk1); - skinny128_384_plus(state, state, tks.rtk1, tks.rtk2_3); - c += mlen; - } - // ----------------- Process the plaintext ----------------- - - // ----------------- Generate the tag ----------------- - G(state, state); - memcpy(c, state, TAGBYTES); - // ----------------- Generate the tag ----------------- - - return 0; -} - - -//Decryption and tag verification using Romulus-N1 -int crypto_aead_decrypt - (unsigned char *m, unsigned long long *mlen, - unsigned char *nsec, - const unsigned char *c, unsigned long long clen, - const unsigned char *ad, unsigned long long adlen, - const unsigned char *npub, - const unsigned char *k) { - - int i; - u32 tmp; - skinny_128_384_tks tks; - u8 state[BLOCKBYTES], pad[BLOCKBYTES]; - (void)nsec; - - if (clen < TAGBYTES) - return -1; - - // ----------------- Initialization ----------------- - *mlen = clen - TAGBYTES; - memset(tks.tk1, 0x00, KEYBYTES); - memset(state, 0x00, BLOCKBYTES); - tks.tk1[0] = 0x01; //56-bit LFSR counter - // ----------------- Initialization ----------------- - - // ----------------- Process the associated data ----------------- - //Handle the special case of no associated data - if (adlen == 0) { - UPDATE_CTR(tks.tk1); - SET_DOMAIN(tks, 0x1A); - precompute_rtk2_3(tks.rtk2_3, npub, k); - precompute_rtk1(tks.rtk1, tks.tk1); - skinny128_384_plus(state, state, tks.rtk1, tks.rtk2_3); - } else { - // Process all double blocks except the last - SET_DOMAIN(tks, 0x08); - while (adlen > 2*BLOCKBYTES) { - UPDATE_CTR(tks.tk1); - XOR_BLOCK(state, state, ad); - precompute_rtk2_3(tks.rtk2_3, ad + BLOCKBYTES, k); - precompute_rtk1(tks.rtk1, tks.tk1); - skinny128_384_plus(state, state, tks.rtk1, tks.rtk2_3); - UPDATE_CTR(tks.tk1); - ad += 2*BLOCKBYTES; - adlen -= 2*BLOCKBYTES; - } - //Pad and process the left-over blocks - UPDATE_CTR(tks.tk1); - if (adlen == 2*BLOCKBYTES) { - // Left-over complete double block - XOR_BLOCK(state, state, ad); - precompute_rtk2_3(tks.rtk2_3, ad + BLOCKBYTES, k); - precompute_rtk1(tks.rtk1, tks.tk1); - skinny128_384_plus(state, state, tks.rtk1, tks.rtk2_3); - UPDATE_CTR(tks.tk1); - SET_DOMAIN(tks, 0x18); - } else if (adlen > BLOCKBYTES) { - // Left-over partial double block - adlen -= BLOCKBYTES; - XOR_BLOCK(state, state, ad); - memcpy(pad, ad + BLOCKBYTES, adlen); - memset(pad + adlen, 0x00, 15 - adlen); - pad[15] = adlen; - precompute_rtk2_3(tks.rtk2_3, pad, k); - precompute_rtk1(tks.rtk1, tks.tk1); - skinny128_384_plus(state, state, tks.rtk1, tks.rtk2_3); - UPDATE_CTR(tks.tk1); - SET_DOMAIN(tks, 0x1A); - } else if (adlen == BLOCKBYTES) { - // Left-over complete single block - XOR_BLOCK(state, state, ad); - SET_DOMAIN(tks, 0x18); - } else { - // Left-over partial single block - for(i =0; i < (int)adlen; i++) - state[i] ^= ad[i]; - state[15] ^= adlen; - SET_DOMAIN(tks, 0x1A); - } - precompute_rtk2_3(tks.rtk2_3, npub, k); - precompute_rtk1(tks.rtk1, tks.tk1); - skinny128_384_plus(state, state, tks.rtk1, tks.rtk2_3); - } - // ----------------- Process the associated data ----------------- - - // ----------------- Process the ciphertext ----------------- - clen -= TAGBYTES; - memset(tks.tk1, 0, KEYBYTES); - tks.tk1[0] = 0x01; //init the 56-bit LFSR counter - if (clen == 0) { - UPDATE_CTR(tks.tk1); - SET_DOMAIN(tks, 0x15); - precompute_rtk1(tks.rtk1, tks.tk1); - skinny128_384_plus(state, state, tks.rtk1, tks.rtk2_3); - } else { - //process all blocks except the last - SET_DOMAIN(tks, 0x04); - while (clen > BLOCKBYTES) { - RHO_INV(state,c,m); - UPDATE_CTR(tks.tk1); - precompute_rtk1(tks.rtk1, tks.tk1); - skinny128_384_plus(state, state, tks.rtk1, tks.rtk2_3); - c += BLOCKBYTES; - m += BLOCKBYTES; - clen -= BLOCKBYTES; - } - //pad and process the last block - UPDATE_CTR(tks.tk1); - if (clen < BLOCKBYTES) { - for(i = 0; i < (int)clen; i++) { - m[i] = c[i] ^ (state[i] >> 1) ^ (state[i] & 0x80) ^ (state[i] << 7); - state[i] ^= m[i]; - } - state[15] ^= (u8)clen; //padding - SET_DOMAIN(tks, 0x15); - } else { - RHO_INV(state,c,m); - SET_DOMAIN(tks, 0x14); - } - precompute_rtk1(tks.rtk1, tks.tk1); - skinny128_384_plus(state, state, tks.rtk1, tks.rtk2_3); - } - // ----------------- Process the plaintext ----------------- - - // ----------------- Generate and check the tag ----------------- - G(state,state); - tmp = 0; - for(i = 0; i < TAGBYTES; i++) - tmp |= state[i] ^ c[clen+i]; //constant-time tag comparison - // ----------------- Generate and check the tag ----------------- - - return tmp; -} \ No newline at end of file diff --git a/romulus/Implementations/crypto_aead/romulusn1+v13/opt32/romulus.h b/romulus/Implementations/crypto_aead/romulusn1+v13/opt32/romulus.h deleted file mode 100644 index 3a70219..0000000 --- a/romulus/Implementations/crypto_aead/romulusn1+v13/opt32/romulus.h +++ /dev/null @@ -1,68 +0,0 @@ -#ifndef ROMULUSN1_H_ -#define ROMULUSN1_H_ - -#include "skinny128.h" - -typedef unsigned char u8; -typedef unsigned int u32; -typedef struct { - u8 tk1[16]; //to manipulate tk1 byte-wise - u32 rtk1[4*16]; //to avoid tk schedule recomputations - u32 rtk2_3[4*SKINNY128_384_ROUNDS]; //all round tweakeys -} skinny_128_384_tks; - -#define TAGBYTES 16 -#define KEYBYTES 16 -#define BLOCKBYTES 16 - -#define SET_DOMAIN(tks, domain) ((tks).tk1[7] = (domain)) - -//G as defined in the Romulus specification in a 32-bit word-wise manner -#define G(x,y) ({ \ - tmp = ((u32*)(y))[0]; \ - ((u32*)(x))[0] = (tmp >> 1 & 0x7f7f7f7f) ^ ((tmp ^ (tmp << 7)) & 0x80808080); \ - tmp = ((u32*)(y))[1]; \ - ((u32*)(x))[1] = (tmp >> 1 & 0x7f7f7f7f) ^ ((tmp ^ (tmp << 7)) & 0x80808080); \ - tmp = ((u32*)(y))[2]; \ - ((u32*)(x))[2] = (tmp >> 1 & 0x7f7f7f7f) ^ ((tmp ^ (tmp << 7)) & 0x80808080); \ - tmp = ((u32*)(y))[3]; \ - ((u32*)(x))[3] = (tmp >> 1 & 0x7f7f7f7f) ^ ((tmp ^ (tmp << 7)) & 0x80808080); \ -}) - -//update the counter in tk1 in a 32-bit word-wise manner -#define UPDATE_CTR(tk1) ({ \ - tmp = ((u32*)(tk1))[1]; \ - ((u32*)(tk1))[1] = (tmp << 1) & 0x00ffffff; \ - ((u32*)(tk1))[1] |= (((u32*)(tk1))[0] >> 31); \ - ((u32*)(tk1))[1] |= tmp & 0xff000000; \ - ((u32*)(tk1))[0] <<= 1; \ - if ((tmp >> 23) & 0x01) \ - ((u32*)(tk1))[0] ^= 0x95; \ -}) - -//x <- y ^ z for 128-bit blocks -#define XOR_BLOCK(x,y,z) ({ \ - ((u32*)(x))[0] = ((u32*)(y))[0] ^ ((u32*)(z))[0]; \ - ((u32*)(x))[1] = ((u32*)(y))[1] ^ ((u32*)(z))[1]; \ - ((u32*)(x))[2] = ((u32*)(y))[2] ^ ((u32*)(z))[2]; \ - ((u32*)(x))[3] = ((u32*)(y))[3] ^ ((u32*)(z))[3]; \ -}) - - -//Rho as defined in the Romulus specification -//use pad as a tmp variable in case y = z -#define RHO(x,y,z) ({ \ - G(pad,x); \ - XOR_BLOCK(y, pad, z); \ - XOR_BLOCK(x, x, z); \ -}) - -//Rho inverse as defined in the Romulus specification -//use pad as a tmp variable in case y = z -#define RHO_INV(x, y, z) ({ \ - G(pad, x); \ - XOR_BLOCK(z, pad, y); \ - XOR_BLOCK(x, x, z); \ -}) - -#endif // ROMULUSN1_H_ \ No newline at end of file diff --git a/romulus/Implementations/crypto_aead/romulusn1+v13/opt32/skinny128.c b/romulus/Implementations/crypto_aead/romulusn1+v13/opt32/skinny128.c deleted file mode 100644 index a1061d5..0000000 --- a/romulus/Implementations/crypto_aead/romulusn1+v13/opt32/skinny128.c +++ /dev/null @@ -1,107 +0,0 @@ -/****************************************************************************** -* Constant-time implementation of the SKINNY tweakable block ciphers. -* -* This implementation doesn't compute the ShiftRows operation. Some masks and -* shifts are applied during the MixColumns operation so that the proper bits -* are XORed together. Moreover, the row permutation within the MixColumns -* is omitted, as well as the bit permutation at the end of the Sbox. The rows -* are synchronized with the classical after only 4 rounds. Therefore, this -* implementation relies on a "QUADRUPLE_ROUND" routine. -* -* The Sbox computation takes advantage of some symmetry in the 8-bit Sbox to -* turn it into a 4-bit S-box computation. Although the last bit permutation -* within the Sbox is not computed, the bit ordering is synchronized with the -* classical representation after 2 calls. -* -* @author Alexandre Adomnicai, Nanyang Technological University, -* alexandre.adomnicai@ntu.edu.sg -* -* @date May 2020 -******************************************************************************/ -#include -#include -#include "skinny128.h" -#include "tk_schedule.h" - -/****************************************************************************** -* The MixColumns computation for rounds i such that (i % 4) == 0 -******************************************************************************/ -void mixcolumns_0(u32* state) { - u32 tmp; - for(int i = 0; i < 4; i++) { - tmp = ROR(state[i],24) & 0x0c0c0c0c; - state[i] ^= ROR(tmp,30); - tmp = ROR(state[i],16) & 0xc0c0c0c0; - state[i] ^= ROR(tmp,4); - tmp = ROR(state[i],8) & 0x0c0c0c0c; - state[i] ^= ROR(tmp,2); - } -} - -/****************************************************************************** -* The MixColumns computation for rounds i such that (i % 4) == 1 -******************************************************************************/ -void mixcolumns_1(u32* state) { - u32 tmp; - for(int i = 0; i < 4; i++) { - tmp = ROR(state[i],16) & 0x30303030; - state[i] ^= ROR(tmp,30); - tmp = state[i] & 0x03030303; - state[i] ^= ROR(tmp,28); - tmp = ROR(state[i],16) & 0x30303030; - state[i] ^= ROR(tmp,2); - } -} - -/****************************************************************************** -* The MixColumns computation for rounds i such that (i % 4) == 2 -******************************************************************************/ -void mixcolumns_2(u32* state) { - u32 tmp; - for(int i = 0; i < 4; i++) { - tmp = ROR(state[i],8) & 0xc0c0c0c0; - state[i] ^= ROR(tmp,6); - tmp = ROR(state[i],16) & 0x0c0c0c0c; - state[i] ^= ROR(tmp,28); - tmp = ROR(state[i],24) & 0xc0c0c0c0; - state[i] ^= ROR(tmp,2); - } -} - -/****************************************************************************** -* The MixColumns computation for rounds i such that (i % 4) == 3 -******************************************************************************/ -void mixcolumns_3(u32* state) { - u32 tmp; - for(int i = 0; i < 4; i++) { - tmp = state[i] & 0x03030303; - state[i] ^= ROR(tmp,30); - tmp = state[i] & 0x30303030; - state[i] ^= ROR(tmp,4); - tmp = state[i] & 0x03030303; - state[i] ^= ROR(tmp,26); - } -} - -/****************************************************************************** -* Encryption of a single block without any operation mode using SKINNY-128-384. -* RTK1 and RTK2_3 are given separately to take advantage of the fact that -* TK2 and TK3 remains the same through the entire data encryption/decryption. -******************************************************************************/ -void skinny128_384_plus(u8* ctext, const u8* ptext, const u32* rtk1, - const u32* rtk2_3) { - u32 tmp; // used in SWAPMOVE macro - u32 state[4]; // 128-bit state - packing(state, ptext); // from byte to bitsliced representation - QUADRUPLE_ROUND(state, rtk1, rtk2_3); - QUADRUPLE_ROUND(state, rtk1+16, rtk2_3+16); - QUADRUPLE_ROUND(state, rtk1+32, rtk2_3+32); - QUADRUPLE_ROUND(state, rtk1+48, rtk2_3+48); - QUADRUPLE_ROUND(state, rtk1, rtk2_3+64); - QUADRUPLE_ROUND(state, rtk1+16, rtk2_3+80); - QUADRUPLE_ROUND(state, rtk1+32, rtk2_3+96); - QUADRUPLE_ROUND(state, rtk1+48, rtk2_3+112); - QUADRUPLE_ROUND(state, rtk1, rtk2_3+128); - QUADRUPLE_ROUND(state, rtk1+16, rtk2_3+144); - unpacking(ctext, state); // from bitsliced to byte representation -} \ No newline at end of file diff --git a/romulus/Implementations/crypto_aead/romulusn1+v13/opt32/skinny128.h b/romulus/Implementations/crypto_aead/romulusn1+v13/opt32/skinny128.h deleted file mode 100644 index bda1e9b..0000000 --- a/romulus/Implementations/crypto_aead/romulusn1+v13/opt32/skinny128.h +++ /dev/null @@ -1,95 +0,0 @@ -#ifndef SKINNY128_H_ -#define SKINNY128_H_ - -typedef unsigned char u8; -typedef unsigned int u32; - -void skinny128_384_plus(u8* ctext, const u8* ptext, const u32* rtk1, const u32* rtk2_3); - -#define SKINNY128_384_ROUNDS 40 - -#define QUADRUPLE_ROUND(state, rtk1, rtk2_3) ({ \ - state[3] ^= ~(state[0] | state[1]); \ - SWAPMOVE(state[2], state[1], 0x55555555, 1); \ - SWAPMOVE(state[3], state[2], 0x55555555, 1); \ - state[1] ^= ~(state[2] | state[3]); \ - SWAPMOVE(state[1], state[0], 0x55555555, 1); \ - SWAPMOVE(state[0], state[3], 0x55555555, 1); \ - state[3] ^= ~(state[0] | state[1]); \ - SWAPMOVE(state[2], state[1], 0x55555555, 1); \ - SWAPMOVE(state[3], state[2], 0x55555555, 1); \ - state[1] ^= (state[2] | state[3]); \ - SWAPMOVE(state[3], state[0], 0x55555555, 0); \ - state[0] ^= (rtk1)[0]; \ - state[1] ^= (rtk1)[1]; \ - state[2] ^= (rtk1)[2]; \ - state[3] ^= (rtk1)[3]; \ - state[0] ^= (rtk2_3)[0]; \ - state[1] ^= (rtk2_3)[1]; \ - state[2] ^= (rtk2_3)[2]; \ - state[3] ^= (rtk2_3)[3]; \ - mixcolumns_0(state); \ - state[1] ^= ~(state[2] | state[3]); \ - SWAPMOVE(state[1], state[0], 0x55555555, 1); \ - SWAPMOVE(state[0], state[3], 0x55555555, 1); \ - state[3] ^= ~(state[0] | state[1]); \ - SWAPMOVE(state[2], state[1], 0x55555555, 1); \ - SWAPMOVE(state[3], state[2], 0x55555555, 1); \ - state[1] ^= ~(state[2] | state[3]); \ - SWAPMOVE(state[1], state[0], 0x55555555, 1); \ - SWAPMOVE(state[0], state[3], 0x55555555, 1); \ - state[3] ^= (state[0] | state[1]); \ - SWAPMOVE(state[1], state[2], 0x55555555, 0); \ - state[0] ^= (rtk1)[4]; \ - state[1] ^= (rtk1)[5]; \ - state[2] ^= (rtk1)[6]; \ - state[3] ^= (rtk1)[7]; \ - state[0] ^= (rtk2_3)[4]; \ - state[1] ^= (rtk2_3)[5]; \ - state[2] ^= (rtk2_3)[6]; \ - state[3] ^= (rtk2_3)[7]; \ - mixcolumns_1(state); \ - state[3] ^= ~(state[0] | state[1]); \ - SWAPMOVE(state[2], state[1], 0x55555555, 1); \ - SWAPMOVE(state[3], state[2], 0x55555555, 1); \ - state[1] ^= ~(state[2] | state[3]); \ - SWAPMOVE(state[1], state[0], 0x55555555, 1); \ - SWAPMOVE(state[0], state[3], 0x55555555, 1); \ - state[3] ^= ~(state[0] | state[1]); \ - SWAPMOVE(state[2], state[1], 0x55555555, 1); \ - SWAPMOVE(state[3], state[2], 0x55555555, 1); \ - state[1] ^= (state[2] | state[3]); \ - SWAPMOVE(state[3], state[0], 0x55555555, 0); \ - state[0] ^= (rtk1)[8]; \ - state[1] ^= (rtk1)[9]; \ - state[2] ^= (rtk1)[10]; \ - state[3] ^= (rtk1)[11]; \ - state[0] ^= (rtk2_3)[8]; \ - state[1] ^= (rtk2_3)[9]; \ - state[2] ^= (rtk2_3)[10]; \ - state[3] ^= (rtk2_3)[11]; \ - mixcolumns_2(state); \ - state[1] ^= ~(state[2] | state[3]); \ - SWAPMOVE(state[1], state[0], 0x55555555, 1); \ - SWAPMOVE(state[0], state[3], 0x55555555, 1); \ - state[3] ^= ~(state[0] | state[1]); \ - SWAPMOVE(state[2], state[1], 0x55555555, 1); \ - SWAPMOVE(state[3], state[2], 0x55555555, 1); \ - state[1] ^= ~(state[2] | state[3]); \ - SWAPMOVE(state[1], state[0], 0x55555555, 1); \ - SWAPMOVE(state[0], state[3], 0x55555555, 1); \ - state[3] ^= (state[0] | state[1]); \ - SWAPMOVE(state[1], state[2], 0x55555555, 0); \ - state[0] ^= (rtk1)[12]; \ - state[1] ^= (rtk1)[13]; \ - state[2] ^= (rtk1)[14]; \ - state[3] ^= (rtk1)[15]; \ - state[0] ^= (rtk2_3)[12]; \ - state[1] ^= (rtk2_3)[13]; \ - state[2] ^= (rtk2_3)[14]; \ - state[3] ^= (rtk2_3)[15]; \ - mixcolumns_3(state); \ -}) - - -#endif // SKINNY128_H_ \ No newline at end of file diff --git a/romulus/Implementations/crypto_aead/romulusn1+v13/opt32/tk_schedule.c b/romulus/Implementations/crypto_aead/romulusn1+v13/opt32/tk_schedule.c deleted file mode 100644 index 1da4277..0000000 --- a/romulus/Implementations/crypto_aead/romulusn1+v13/opt32/tk_schedule.c +++ /dev/null @@ -1,368 +0,0 @@ -/****************************************************************************** -* Implementation of the SKINNY tweakey schedule to match fixslicing. -* -* @author Alexandre Adomnicai, Nanyang Technological University, -* alexandre.adomnicai@ntu.edu.sg -* -* @date May 2020 -******************************************************************************/ -#include -#include //for memcmp -#include "tk_schedule.h" -#include "skinny128.h" - -typedef unsigned char u8; -typedef unsigned int u32; - -/****************************************************************************** -* The round constants according to the new representation. -******************************************************************************/ -u32 rconst_32_bs[160] = { - 0x00000004, 0xffffffbf, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x10000100, 0xfffffeff, 0x44000000, 0xfbffffff, 0x00000000, 0x04000000, - 0x00100000, 0x00100000, 0x00100001, 0xffefffff, 0x00440000, 0xffafffff, - 0x00400000, 0x00400000, 0x01000000, 0x01000000, 0x01401000, 0xffbfffff, - 0x01004000, 0xfefffbff, 0x00000400, 0x00000400, 0x00000010, 0x00000000, - 0x00010410, 0xfffffbef, 0x00000054, 0xffffffaf, 0x00000000, 0x00000040, - 0x00000100, 0x00000100, 0x10000140, 0xfffffeff, 0x44000000, 0xfffffeff, - 0x04000000, 0x04000000, 0x00100000, 0x00100000, 0x04000001, 0xfbffffff, - 0x00140000, 0xffafffff, 0x00400000, 0x00000000, 0x00000000, 0x00000000, - 0x01401000, 0xfebfffff, 0x01004400, 0xfffffbff, 0x00000000, 0x00000400, - 0x00000010, 0x00000010, 0x00010010, 0xffffffff, 0x00000004, 0xffffffaf, - 0x00000040, 0x00000040, 0x00000100, 0x00000000, 0x10000140, 0xffffffbf, - 0x40000100, 0xfbfffeff, 0x00000000, 0x04000000, 0x00100000, 0x00000000, - 0x04100001, 0xffefffff, 0x00440000, 0xffefffff, 0x00000000, 0x00400000, - 0x01000000, 0x01000000, 0x00401000, 0xffffffff, 0x00004000, 0xfeffffff, - 0x00000400, 0x00000000, 0x00000000, 0x00000000, 0x00010400, 0xfffffbff, - 0x00000014, 0xffffffbf, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x10000100, 0xffffffff, 0x40000000, 0xfbffffff, 0x00000000, 0x04000000, - 0x00100000, 0x00000000, 0x00100001, 0xffefffff, 0x00440000, 0xffafffff, - 0x00000000, 0x00400000, 0x01000000, 0x01000000, 0x01401000, 0xffffffff, - 0x00004000, 0xfeffffff, 0x00000400, 0x00000400, 0x00000010, 0x00000000, - 0x00010400, 0xfffffbff, 0x00000014, 0xffffffaf, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x10000140, 0xfffffeff, 0x44000000, 0xffffffff, - 0x00000000, 0x04000000, 0x00100000, 0x00100000, 0x00000001, 0xffefffff, - 0x00440000, 0xffafffff, 0x00400000, 0x00000000, 0x00000000, 0x01000000, - 0x01401000, 0xffbfffff, 0x01004000, 0xfffffbff, 0x00000400, 0x00000400, - 0x00000010, 0x00000000, 0x00010010, 0xfffffbff -}; - -/****************************************************************************** -* Pack the input into the bitsliced representation -* 24 28 56 60 88 92 120 124 | ... | 0 4 32 36 64 68 96 100 -* 25 29 57 61 89 93 121 125 | ... | 1 5 33 37 65 69 97 101 -* 26 30 58 62 90 94 122 126 | ... | 2 6 34 38 66 70 98 102 -* 27 31 59 63 91 95 123 127 | ... | 3 7 35 39 67 71 99 103 -******************************************************************************/ -void packing(u32* out, const u8* in) { - u32 tmp; - LE_LOAD(out, in); - LE_LOAD(out + 1, in + 8); - LE_LOAD(out + 2, in + 4); - LE_LOAD(out + 3, in + 12); - SWAPMOVE(out[0], out[0], 0x0a0a0a0a, 3); - SWAPMOVE(out[1], out[1], 0x0a0a0a0a, 3); - SWAPMOVE(out[2], out[2], 0x0a0a0a0a, 3); - SWAPMOVE(out[3], out[3], 0x0a0a0a0a, 3); - SWAPMOVE(out[2], out[0], 0x30303030, 2); - SWAPMOVE(out[1], out[0], 0x0c0c0c0c, 4); - SWAPMOVE(out[3], out[0], 0x03030303, 6); - SWAPMOVE(out[1], out[2], 0x0c0c0c0c, 2); - SWAPMOVE(out[3], out[2], 0x03030303, 4); - SWAPMOVE(out[3], out[1], 0x03030303, 2); -} - -/****************************************************************************** -* Unpack the input to a byte-wise representation -******************************************************************************/ -void unpacking(u8* out, u32 *in) { - u32 tmp; - SWAPMOVE(in[3], in[1], 0x03030303, 2); - SWAPMOVE(in[3], in[2], 0x03030303, 4); - SWAPMOVE(in[1], in[2], 0x0c0c0c0c, 2); - SWAPMOVE(in[3], in[0], 0x03030303, 6); - SWAPMOVE(in[1], in[0], 0x0c0c0c0c, 4); - SWAPMOVE(in[2], in[0], 0x30303030, 2); - SWAPMOVE(in[0], in[0], 0x0a0a0a0a, 3); - SWAPMOVE(in[1], in[1], 0x0a0a0a0a, 3); - SWAPMOVE(in[2], in[2], 0x0a0a0a0a, 3); - SWAPMOVE(in[3], in[3], 0x0a0a0a0a, 3); - LE_STORE(out, in[0]); - LE_STORE(out + 8, in[1]); - LE_STORE(out + 4, in[2]); - LE_STORE(out + 12, in[3]); -} - -/****************************************************************************** -* 0 4 1 5 -* 1 5 ---> 2 6 -* 2 6 3 7 -* 3 7 4 0 -******************************************************************************/ -void lfsr2_bs(u32* tk) { - u32 tmp; - tmp = tk[0] ^ (tk[2] & 0xaaaaaaaa); - tmp = ((tmp & 0xaaaaaaaa) >> 1) | ((tmp << 1) & 0xaaaaaaaa); - tk[0] = tk[1]; - tk[1] = tk[2]; - tk[2] = tk[3]; - tk[3] = tmp; -} - -/****************************************************************************** -* 0 4 7 3 -* 1 5 ---> 0 4 -* 2 6 1 5 -* 3 7 2 6 -******************************************************************************/ -void lfsr3_bs(u32* tk) { - u32 tmp; - tmp = tk[3] ^ ((tk[1] & 0xaaaaaaaa) >> 1); - tmp = ((tmp & 0xaaaaaaaa) >> 1) | ((tmp << 1) & 0xaaaaaaaa); - tk[3] = tk[2]; - tk[2] = tk[1]; - tk[1] = tk[0]; - tk[0] = tmp; -} - -/****************************************************************************** -* Apply the permutation in a bitsliced manner, twice -******************************************************************************/ -void permute_tk_2(u32* tk) { - u32 tmp; - for(int i =0; i < 4; i++) { - tmp = tk[i]; - tk[i] = ROR(tmp,14) & 0xcc00cc00; - tk[i] |= (tmp & 0x000000ff) << 16; - tk[i] |= (tmp & 0xcc000000)>> 2; - tk[i] |= (tmp & 0x0033cc00) >> 8; - tk[i] |= (tmp & 0x00cc0000) >>18; - } -} - -/****************************************************************************** -* Apply the permutation in a bitsliced manner, 4 times -******************************************************************************/ -void permute_tk_4(u32* tk) { - u32 tmp; - for(int i =0; i < 4; i++) { - tmp = tk[i]; - tk[i] = ROR(tmp,22) & 0xcc0000cc; - tk[i] |= ROR(tmp,16) & 0x3300cc00; - tk[i] |= ROR(tmp, 24) & 0x00cc3300; - tk[i] |= (tmp & 0x00cc00cc) >> 2; - } -} - -/****************************************************************************** -* Apply the permutation in a bitsliced manner, 6 times -******************************************************************************/ -void permute_tk_6(u32* tk) { - u32 tmp; - for(int i =0; i < 4; i++) { - tmp = tk[i]; - tk[i] = ROR(tmp,6) & 0xcccc0000; - tk[i] |= ROR(tmp,24) & 0x330000cc; - tk[i] |= ROR(tmp,10) & 0x3333; - tk[i] |= (tmp & 0xcc) << 14; - tk[i] |= (tmp & 0x3300) << 2; - } -} - -/****************************************************************************** -* Apply the permutation in a bitsliced manner, 8 times -******************************************************************************/ -void permute_tk_8(u32* tk) { - u32 tmp; - for(int i =0; i < 4; i++) { - tmp = tk[i]; - tk[i] = ROR(tmp,24) & 0xcc000033; - tk[i] |= ROR(tmp,8) & 0x33cc0000; - tk[i] |= ROR(tmp,26) & 0x00333300; - tk[i] |= (tmp & 0x00333300) >> 6; - } -} - -/****************************************************************************** -* Apply the permutation in a bitsliced manner, 10 times -******************************************************************************/ -void permute_tk_10(u32* tk) { - u32 tmp; - for(int i =0; i < 4; i++) { - tmp = tk[i]; - tk[i] = ROR(tmp,8) & 0xcc330000; - tk[i] |= ROR(tmp,26) & 0x33000033; - tk[i] |= ROR(tmp,22) & 0x00cccc00; - tk[i] |= (tmp & 0x00330000) >> 14; - tk[i] |= (tmp & 0xcc00) >> 2; - } -} - -/****************************************************************************** -* Apply the permutation in a bitsliced manner, 12 times -******************************************************************************/ -void permute_tk_12(u32* tk) { - u32 tmp; - for(int i =0; i < 4; i++) { - tmp = tk[i]; - tk[i] = ROR(tmp,8) & 0xcc33; - tk[i] |= ROR(tmp,30) & 0x00cc00cc; - tk[i] |= ROR(tmp,10) & 0x33330000; - tk[i] |= ROR(tmp,16) & 0xcc003300; - } -} - -/****************************************************************************** -* Apply the permutation in a bitsliced manner, 14 times -******************************************************************************/ -void permute_tk_14(u32* tk) { - u32 tmp; - for(int i =0; i < 4; i++) { - tmp = tk[i]; - tk[i] = ROR(tmp,24) & 0x0033cc00; - tk[i] |= ROR(tmp,14) & 0x00cc0000; - tk[i] |= ROR(tmp,30) & 0xcc000000; - tk[i] |= ROR(tmp,16) & 0x000000ff; - tk[i] |= ROR(tmp,18) & 0x33003300; - } -} - -/****************************************************************************** -* Precompute all LFSRs on TK2 -******************************************************************************/ -void precompute_lfsr_tk2(u32* tk, const u8* key, const int rounds) { - u32 tk2[4]; - packing(tk2, key); - memcpy(tk, tk2, 16); - for(int i = 0 ; i < rounds; i+=2) { - lfsr2_bs(tk2); - memcpy(tk+i*4+4, tk2, 16); - } -} - -/****************************************************************************** -* Precompute all LFSRs on TK3 -******************************************************************************/ -void precompute_lfsr_tk3(u32* tk, const u8* key, const int rounds) { - u32 tk3[4]; - packing(tk3, key); - tk[0] ^= tk3[0]; - tk[1] ^= tk3[1]; - tk[2] ^= tk3[2]; - tk[3] ^= tk3[3]; - for(int i = 0 ; i < rounds; i+=2) { - lfsr3_bs(tk3); - tk[i*4+4] ^= tk3[0]; - tk[i*4+5] ^= tk3[1]; - tk[i*4+6] ^= tk3[2]; - tk[i*4+7] ^= tk3[3]; - } -} - -/****************************************************************************** -* XOR TK with TK1 before applying the permutations. -* The key is then rearranged to match the barrel shiftrows representation. -******************************************************************************/ -void permute_tk(u32* tk, const u8* key, const int rounds) { - u32 test; - u32 tk1[4], tmp[4]; - packing(tk1, key); - memcpy(tmp, tk, 16); - tmp[0] ^= tk1[0]; - tmp[1] ^= tk1[1]; - tmp[2] ^= tk1[2]; - tmp[3] ^= tk1[3]; - for(int i = 0 ; i < rounds; i += 8) { - test = (i % 16 < 8) ? 1 : 0; //to apply the right power of P - tk[i*4] = tmp[2] & 0xf0f0f0f0; - tk[i*4+1] = tmp[3] & 0xf0f0f0f0; - tk[i*4+2] = tmp[0] & 0xf0f0f0f0; - tk[i*4+3] = tmp[1] & 0xf0f0f0f0; - memcpy(tmp, tk+i*4+4, 16); - XOR_BLOCKS(tmp, tk1); - if (test) - permute_tk_2(tmp); // applies P^2 - else - permute_tk_10(tmp); // applies P^10 - tk[i*4+4] = ROR(tmp[0],26) & 0xc3c3c3c3; - tk[i*4+5] = ROR(tmp[1],26) & 0xc3c3c3c3; - tk[i*4+6] = ROR(tmp[2],26) & 0xc3c3c3c3; - tk[i*4+7] = ROR(tmp[3],26) & 0xc3c3c3c3; - tk[i*4+8] = ROR(tmp[2],28) & 0x03030303; - tk[i*4+8] |= ROR(tmp[2],12) & 0x0c0c0c0c; - tk[i*4+9] = ROR(tmp[3],28) & 0x03030303; - tk[i*4+9] |= ROR(tmp[3],12) & 0x0c0c0c0c; - tk[i*4+10] = ROR(tmp[0],28) & 0x03030303; - tk[i*4+10] |= ROR(tmp[0],12) & 0x0c0c0c0c; - tk[i*4+11] = ROR(tmp[1],28) & 0x03030303; - tk[i*4+11] |= ROR(tmp[1],12) & 0x0c0c0c0c; - memcpy(tmp, tk+i*4+12, 16); - XOR_BLOCKS(tmp, tk1); - if (test) - permute_tk_4(tmp); // applies P^4 - else - permute_tk_12(tmp); // applies P^12 - for(int j = 0; j < 4; j++) { - tk[i*4+12+j] = ROR(tmp[j],14) & 0x30303030; - tk[i*4+12+j] |= ROR(tmp[j],6) & 0x0c0c0c0c; - } - tk[i*4+16] = ROR(tmp[2], 16) & 0xf0f0f0f0; - tk[i*4+17] = ROR(tmp[3], 16) & 0xf0f0f0f0; - tk[i*4+18] = ROR(tmp[0], 16) & 0xf0f0f0f0; - tk[i*4+19] = ROR(tmp[1], 16) & 0xf0f0f0f0; - memcpy(tmp, tk+i*4+20, 16); - XOR_BLOCKS(tmp, tk1); - if (test) - permute_tk_6(tmp); // applies P^6 - else - permute_tk_14(tmp); // applies P^14 - tk[i*4+20] = ROR(tmp[0], 10) & 0xc3c3c3c3; - tk[i*4+21] = ROR(tmp[1], 10) & 0xc3c3c3c3; - tk[i*4+22] = ROR(tmp[2], 10) & 0xc3c3c3c3; - tk[i*4+23] = ROR(tmp[3], 10) & 0xc3c3c3c3; - tk[i*4+24] = ROR(tmp[2],12) & 0x03030303; - tk[i*4+24] |= ROR(tmp[2],28) & 0x0c0c0c0c; - tk[i*4+25] = ROR(tmp[3],12) & 0x03030303; - tk[i*4+25] |= ROR(tmp[3],28) & 0x0c0c0c0c; - tk[i*4+26] = ROR(tmp[0],12) & 0x03030303; - tk[i*4+26] |= ROR(tmp[0],28) & 0x0c0c0c0c; - tk[i*4+27] = ROR(tmp[1],12) & 0x03030303; - tk[i*4+27] |= ROR(tmp[1],28) & 0x0c0c0c0c; - memcpy(tmp, tk+i*4+28, 16); - XOR_BLOCKS(tmp, tk1); - if (test) - permute_tk_8(tmp); // applies P^8 - for(int j = 0; j < 4; j++) { - tk[i*4+28+j] = ROR(tmp[j],30) & 0x30303030; - tk[i*4+28+j] |= ROR(tmp[j],22) & 0x0c0c0c0c; - } - if (test && (i+8 < rounds)) { //only if next loop iteration - tk[i*4+32] = tmp[2] & 0xf0f0f0f0; - tk[i*4+33] = tmp[3] & 0xf0f0f0f0; - tk[i*4+34] = tmp[0] & 0xf0f0f0f0; - tk[i*4+35] = tmp[1] & 0xf0f0f0f0; - } - } -} - -/****************************************************************************** -* Precompute LFSR2(TK2) ^ LFSR3(TK3) ^ rconst. -******************************************************************************/ -void precompute_rtk2_3(u32* rtk, const u8* tk2, const u8 * tk3) { - memset(rtk, 0x00, 16*SKINNY128_384_ROUNDS); - precompute_lfsr_tk2(rtk, tk2, SKINNY128_384_ROUNDS); - precompute_lfsr_tk3(rtk, tk3, SKINNY128_384_ROUNDS); - permute_tk(rtk, (u8*)(rtk+8), SKINNY128_384_ROUNDS); // rtk+8 is NULL - for(int i = 0; i < SKINNY128_384_ROUNDS; i++) { // add rconsts - for(int j = 0; j < 4; j++) - rtk[i*4+j] ^= rconst_32_bs[i*4+j]; - } -} - -/****************************************************************************** -* Precompute RTK1. -******************************************************************************/ -void precompute_rtk1(u32* rtk1, const u8* tk1) { - memset(rtk1, 0x00, 16*16); - permute_tk(rtk1, tk1, 16); -} \ No newline at end of file diff --git a/romulus/Implementations/crypto_aead/romulusn1+v13/opt32/tk_schedule.h b/romulus/Implementations/crypto_aead/romulusn1+v13/opt32/tk_schedule.h deleted file mode 100644 index e1f64f8..0000000 --- a/romulus/Implementations/crypto_aead/romulusn1+v13/opt32/tk_schedule.h +++ /dev/null @@ -1,39 +0,0 @@ -#ifndef TK_SCHEDULE_H_ -#define TK_SCHEDULE_H_ - -typedef unsigned char u8; -typedef unsigned int u32; - -void packing(u32* out, const u8* in); -void unpacking(u8* out, u32 *in); -void precompute_rtk2_3(u32* rtk, const u8* tk2, const u8* tk3); -void precompute_rtk1(u32* rtk1, const u8* tk1); - -#define ROR(x,y) (((x) >> (y)) | ((x) << (32 - (y)))) - -#define XOR_BLOCKS(x,y) ({ \ - (x)[0] ^= (y)[0]; \ - (x)[1] ^= (y)[1]; \ - (x)[2] ^= (y)[2]; \ - (x)[3] ^= (y)[3]; \ -}) - -#define SWAPMOVE(a, b, mask, n) ({ \ - tmp = (b ^ (a >> n)) & mask; \ - b ^= tmp; \ - a ^= (tmp << n); \ -}) - -#define LE_LOAD(x, y) \ - *(x) = (((u32)(y)[3] << 24) | \ - ((u32)(y)[2] << 16) | \ - ((u32)(y)[1] << 8) | \ - (y)[0]); - -#define LE_STORE(x, y) \ - (x)[0] = (y) & 0xff; \ - (x)[1] = ((y) >> 8) & 0xff; \ - (x)[2] = ((y) >> 16) & 0xff; \ - (x)[3] = (y) >> 24; - -#endif // TK_SCHEDULE_H_ \ No newline at end of file diff --git a/romulus/Implementations/crypto_aead/romulusn1/LWC_AEAD_KAT_128_128.txt b/romulus/Implementations/crypto_aead/romulusn1/LWC_AEAD_KAT_128_128.txt new file mode 100644 index 0000000..4b26771 --- /dev/null +++ b/romulus/Implementations/crypto_aead/romulusn1/LWC_AEAD_KAT_128_128.txt @@ -0,0 +1,7623 @@ +Count = 1 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = +AD = +CT = 5D8DB25AACB3DAB45FBC2F8D77849F90 + +Count = 2 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = +AD = 00 +CT = 2590094BA7DD1CDFF6BDED1878B0BD55 + +Count = 3 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = +AD = 0001 +CT = 4937850252E6D938F72E2B1FF82010F0 + +Count = 4 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = +AD = 000102 +CT = E7DCCDB0D67928143E899ABE363CFEE8 + +Count = 5 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = +AD = 00010203 +CT = 2D2BB0BDCDAC9654A3963D19E009747A + +Count = 6 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = +AD = 0001020304 +CT = 2C0C713C7E14D20E10CC1B4F53DAB25D + +Count = 7 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = +AD = 000102030405 +CT = D8187667C1012A51481B6F59AD035B03 + +Count = 8 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = +AD = 00010203040506 +CT = 186BE82956155733C134EE9F3C610B40 + +Count = 9 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = +AD = 0001020304050607 +CT = FB03DA497168FDC76C46EA493128FB21 + +Count = 10 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = +AD = 000102030405060708 +CT = 816165DEEAB6C80DE8864774A49072E2 + +Count = 11 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = +AD = 00010203040506070809 +CT = 3E22DE085B28D78718CE4C5E7C1204E8 + +Count = 12 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = +AD = 000102030405060708090A +CT = CB0B3FEFEC9BE98878D986A303DFBE7A + +Count = 13 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = +AD = 000102030405060708090A0B +CT = AC0CA2C2CACD2732C43C43C5CB5F86EA + +Count = 14 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = +AD = 000102030405060708090A0B0C +CT = E7C5F6D0C7A8B9F37CA6C30D363631B3 + +Count = 15 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = +AD = 000102030405060708090A0B0C0D +CT = C3A4A90F657EBEBD39D453FA70F33F95 + +Count = 16 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = +AD = 000102030405060708090A0B0C0D0E +CT = BBD0C3A7C4A83BCCC513DAAF3BB64A14 + +Count = 17 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = +AD = 000102030405060708090A0B0C0D0E0F +CT = 475DFEF7D5E4DF7601A5F5328F5B3202 + +Count = 18 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 76BB89DEB0612755D51D434D81640CB6 + +Count = 19 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = E3A6CA1B8E0085A23D2AB246582AEF69 + +Count = 20 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = 65B90C937A2CACB77C49D22E77714C40 + +Count = 21 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = B2BFD659B0D754B9669683DF9B204771 + +Count = 22 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = B72E1A9BE61EC88663775B6F3A52C687 + +Count = 23 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = 4B6C6DA866173D7A31BE33DE30649B6F + +Count = 24 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 4D272CEF7E2436CBAD05EB840ADDF50C + +Count = 25 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = C5B2B5129BC0FB1F631DFE5BAD13617D + +Count = 26 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = F9B1337FC80AF556C629CD1A3CE60289 + +Count = 27 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = 51AECBF4B5FD04C28E81BAE33C624782 + +Count = 28 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 6B365E1BEB957E29706E1A6B4D369B08 + +Count = 29 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 3E94DDAD9B54A80A63E732D455034F44 + +Count = 30 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = B95EB2054634122D7E21EC8B96886292 + +Count = 31 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = B21D8F9AFB9AECEFE2DD1A1D469B30A5 + +Count = 32 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = 912B3867BD1F7FD7D6F748A57132D7E2 + +Count = 33 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 3FFF0D2D366D022A7996B16FA0E10E3E + +Count = 34 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00 +AD = +CT = 896531796709540239DD66621B504BD255 + +Count = 35 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00 +AD = 00 +CT = CB4D354361E0B2E89B7BD3375F5547437E + +Count = 36 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00 +AD = 0001 +CT = E5848409AE5E6B818278BD2040538F5BB2 + +Count = 37 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00 +AD = 000102 +CT = 806BF4587AAB07F61BDE79BF9145ED1C68 + +Count = 38 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00 +AD = 00010203 +CT = 9F4ABF3154B82222B2BE79CAE5B1AB3D51 + +Count = 39 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00 +AD = 0001020304 +CT = 1DD99011A4D7C2F1F124875416F2D28F0C + +Count = 40 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00 +AD = 000102030405 +CT = F593BEE046974B2CC11D02EF653D0DB1CA + +Count = 41 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00 +AD = 00010203040506 +CT = 3EDA90F7D2759E6F4214C2F230FEB252D6 + +Count = 42 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00 +AD = 0001020304050607 +CT = 15E8BED67663B68E0F339AA42CC4F2E0FA + +Count = 43 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00 +AD = 000102030405060708 +CT = 39C835814421D0B83C2CDEAE889CF24A43 + +Count = 44 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00 +AD = 00010203040506070809 +CT = 49146B139EEBF3CC8EA7B58A4B1A294D16 + +Count = 45 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00 +AD = 000102030405060708090A +CT = 8424BD1C5F613284F41020CE5CA3B35727 + +Count = 46 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00 +AD = 000102030405060708090A0B +CT = BE8797C1AFC2D86DFF138744955561CA37 + +Count = 47 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00 +AD = 000102030405060708090A0B0C +CT = F27C17F0824684707B7A650C5EA969A869 + +Count = 48 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00 +AD = 000102030405060708090A0B0C0D +CT = 2698B02CD3E31D9CB183AD0A79D0E48730 + +Count = 49 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00 +AD = 000102030405060708090A0B0C0D0E +CT = AC4AD9AF378D1CC394D3D4B6BF58345448 + +Count = 50 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00 +AD = 000102030405060708090A0B0C0D0E0F +CT = B52C077CDF95B0B1042DA4416B4993EF49 + +Count = 51 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = A39AFEEFD207F0A9244E605717E89D3F3B + +Count = 52 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = A34CC912FA5979ECFDB301405B4FF2ED0E + +Count = 53 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = A88DF0A0DD2B3EDD93433FB55E91624EB7 + +Count = 54 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = ECFC8E80537C0CF49F81078D6BD17A6C54 + +Count = 55 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = 50C1B2D557F0BF8A412409DC5866406330 + +Count = 56 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = A84611C8A12D14415E5137041AE4093E25 + +Count = 57 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 64CB4C15C7F683C9315FF1547F9B88592E + +Count = 58 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = 9FBDF7230BB71D2FEABB4B8D30893318A0 + +Count = 59 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 7C77DE69DB5E70EF82478A5359C427AC69 + +Count = 60 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = AE611D3BD628C9725BC52E9DA75E13EA2A + +Count = 61 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 583574D0ADC671B4F415B652E1429AE002 + +Count = 62 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 8EDD383FB7959C9521E725AAD9018B2D94 + +Count = 63 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = CB8E638615CC4DDBDDCEFFDFFD94410EC9 + +Count = 64 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 3A41AAEC53B9D24C2935D81F90C22BCE93 + +Count = 65 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = 917DFFDF4B653B7074286C6005CACFBACE + +Count = 66 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 644FAB331F78B6E33CF33A40DE2BE610C0 + +Count = 67 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001 +AD = +CT = 89A64DF193A360AF3E6FC48141B6586E3B1E + +Count = 68 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001 +AD = 00 +CT = CBF1B80E483D9EF0F57253FC4DD0A5AB9FD5 + +Count = 69 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001 +AD = 0001 +CT = E54BEF623FCFB4F52F1517AC988701AA4AFB + +Count = 70 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001 +AD = 000102 +CT = 807328F525631E49628D522C3BD9B2C7C5C5 + +Count = 71 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001 +AD = 00010203 +CT = 9F3F11B71DB3373451E5FB912B2CDDA8BC65 + +Count = 72 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001 +AD = 0001020304 +CT = 1D078CEE44AEEB8F0E604C910453EADC240B + +Count = 73 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001 +AD = 000102030405 +CT = F594B97B57D45213A42288B2F12D3672B170 + +Count = 74 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001 +AD = 00010203040506 +CT = 3E59C0A5879DCC8DD0FCE587A737C45F91EB + +Count = 75 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001 +AD = 0001020304050607 +CT = 15D3204FD5DEEBA4340D8CA17449FD37E44C + +Count = 76 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001 +AD = 000102030405060708 +CT = 39A676FEC61603470BD45CCE896B657BDC02 + +Count = 77 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001 +AD = 00010203040506070809 +CT = 495F8F7E68FBA41C90FA78FBF4439C6A3F7E + +Count = 78 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001 +AD = 000102030405060708090A +CT = 8435B2186DFD36B919055062F2F989CBBAE1 + +Count = 79 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001 +AD = 000102030405060708090A0B +CT = BE5717D62C51F51DDE8B636B9D8E5F2BF88F + +Count = 80 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001 +AD = 000102030405060708090A0B0C +CT = F2E6D9B7A23D70F1DCF52EF76DE78C149755 + +Count = 81 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001 +AD = 000102030405060708090A0B0C0D +CT = 26BD89FE25C807CD7617C10EE791F20C433E + +Count = 82 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001 +AD = 000102030405060708090A0B0C0D0E +CT = ACC9166406EE05365B4450BFA3939D5505AE + +Count = 83 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001 +AD = 000102030405060708090A0B0C0D0E0F +CT = B560C3E6FCA2D45C84B7521FEC7AE70C683A + +Count = 84 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = A3DCE06AED6E58402984CC6CB5988D17F21E + +Count = 85 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = A371B8B7368799620C41C268A50C8D7A4307 + +Count = 86 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = A884DC7D2F6C3B39B4353D45628BB53457CB + +Count = 87 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = ECBB74117DE14417EE7D3062604B327DAA55 + +Count = 88 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = 502C7F2681565F747DF466235090C63795DF + +Count = 89 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = A85B0036F16932E6E0029CC06ECA2AA37408 + +Count = 90 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 64A7CC6150FDC5D4328311939BAC76601870 + +Count = 91 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = 9F09D2268B5A30D390EA6AE03F587B9037B6 + +Count = 92 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 7CE73113B374B44563F6CA5BEF58DF9C34BC + +Count = 93 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = AE5C1D611E319C2DF192093B1EA1879EC319 + +Count = 94 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 5867CD78FC3FEDCF5F74D8030C10A5BF1756 + +Count = 95 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 8E3347D2EC3C4491D7E4D3B49DA32AA8B406 + +Count = 96 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = CBA5825E3F31D5216047511956A5032BE70E + +Count = 97 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 3A47B197412D5480C60F969D0173B4DFD703 + +Count = 98 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = 91991F00D8465A0EDA19794F6455BBBD7AF1 + +Count = 99 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 64BC2FEB86350C228B4A9C2CC991E0DC296C + +Count = 100 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102 +AD = +CT = 89A6BC83977A85A0318201CCD82D7000C630A0 + +Count = 101 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102 +AD = 00 +CT = CBF1A87612DE2BA707DCC4A048AD947F2F2094 + +Count = 102 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102 +AD = 0001 +CT = E54B7677F7F06905FDC116165B1790BAEAD56E + +Count = 103 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102 +AD = 000102 +CT = 8073F501F34C01B9AAA76110E03224E53CE06B + +Count = 104 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102 +AD = 00010203 +CT = 9F3F60F4DDCADB0EEB780215525534907ADDFE + +Count = 105 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102 +AD = 0001020304 +CT = 1D07AAE80B44EF2756869A51D0573BD421B337 + +Count = 106 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102 +AD = 000102030405 +CT = F5941EBE1793796B3DE284EE47B1BEE699F6FC + +Count = 107 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102 +AD = 00010203040506 +CT = 3E59841591349FCA4E8EB52346B8A02C0FE4EB + +Count = 108 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102 +AD = 0001020304050607 +CT = 15D3A5CBC45A837D85C92F0DC004FB10200011 + +Count = 109 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102 +AD = 000102030405060708 +CT = 39A67B7230DDA7EA57D3CAFA5A0452B0216717 + +Count = 110 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102 +AD = 00010203040506070809 +CT = 495F891769CFA2A3AA6B5AF51C77F0D043DF18 + +Count = 111 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102 +AD = 000102030405060708090A +CT = 84355B2400CFF6B13FBB58D8A25E6DF13883C0 + +Count = 112 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102 +AD = 000102030405060708090A0B +CT = BE57E3EB0D34916A3D9F0A432A090E00733555 + +Count = 113 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102 +AD = 000102030405060708090A0B0C +CT = F2E67F826B7A07D562E952B75395515097637C + +Count = 114 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102 +AD = 000102030405060708090A0B0C0D +CT = 26BD5476E060A04DAD6A02EC842117B0D6AD37 + +Count = 115 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102 +AD = 000102030405060708090A0B0C0D0E +CT = ACC9DFC08A365B4FD0AEF0122E84687D352CC5 + +Count = 116 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102 +AD = 000102030405060708090A0B0C0D0E0F +CT = B5604D0AC0C837A483FEA4C4839BFC4ABB620C + +Count = 117 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = A3DCE6C39516D216919AC04F2A6BB5AABEE839 + +Count = 118 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = A3716FA2A75BD400E7D7D84625FDBFE51EE170 + +Count = 119 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = A8844F1AF57963CA4AFA6FAE068AC5F45D0BBB + +Count = 120 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = ECBB638D3BD19827A7313ABE1ADCE7AF400F09 + +Count = 121 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = 502CE5F43FA8BBF9DA8901DF75D1EE7F647CE1 + +Count = 122 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = A85B713D48ED36C9D8A0E57AC2DFDD2E1BE76E + +Count = 123 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 64A76EC0F741F2988D882667541EB1FB93DB6B + +Count = 124 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = 9F092EB59A86E8FA8C71CFBF3D3270EA7893A3 + +Count = 125 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 7CE77BD2D1DC2F4EE3C3546875671FE5EF50BE + +Count = 126 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = AE5C18C442BBA1C6455ED97D52F4BDDF7BA004 + +Count = 127 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 58670D71E17C9B52B03EF6FBBDB608B25A658E + +Count = 128 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 8E3359A0501D6B729A20856E6FAE9C27E7DF0F + +Count = 129 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = CBA5ACD47741A41D7A26735808109F2A21A68E + +Count = 130 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 3A47EFF70847EF3C1A9B3D12C91680561F9DEF + +Count = 131 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = 91995B7246CED2BA5C9C238CEA095E56D82E58 + +Count = 132 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 64BCEF20F6D6E2C14D590E5E5C18EAC51B85DB + +Count = 133 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203 +AD = +CT = 89A6BC50C5231E96E9A06F662291F50541343A21 + +Count = 134 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203 +AD = 00 +CT = CBF1A8AFD542DF241765EA528A660A008214DD10 + +Count = 135 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203 +AD = 0001 +CT = E54B761ECB1214E3B4840BE1F78E8B1A241654CA + +Count = 136 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203 +AD = 000102 +CT = 8073F503CF01D899A898B8AC0A0086ADF9B10DC9 + +Count = 137 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203 +AD = 00010203 +CT = 9F3F600219C38BA35749779C85AB185F8D58D716 + +Count = 138 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203 +AD = 0001020304 +CT = 1D07AA1D2CEDA0AE4A5CC86D8948A0BAF1FD228A + +Count = 139 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203 +AD = 000102030405 +CT = F5941EF44248AB6CA452A775BBF6296B5C3D6875 + +Count = 140 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203 +AD = 00010203040506 +CT = 3E59844DAD26524DFF5E2B09490729C2B5AD9B0B + +Count = 141 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203 +AD = 0001020304050607 +CT = 15D3A59134FC14180F76BB1EAADA3BDBC2F9D452 + +Count = 142 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203 +AD = 000102030405060708 +CT = 39A67BEA301210D5421EB58242A63869383997FF + +Count = 143 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203 +AD = 00010203040506070809 +CT = 495F89652AB32FD2476D37D9BBEAFAB62104D720 + +Count = 144 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203 +AD = 000102030405060708090A +CT = 84355B90E2D8DFF037A6C6937D1D03593D4CFE08 + +Count = 145 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203 +AD = 000102030405060708090A0B +CT = BE57E303E466E38065B2CC81284482C2E303D55C + +Count = 146 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203 +AD = 000102030405060708090A0B0C +CT = F2E67F04BDB59589CFCB3A0B6EC837A1E2DF97A4 + +Count = 147 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203 +AD = 000102030405060708090A0B0C0D +CT = 26BD543E37F280C725A54A67FC324DCD391A997A + +Count = 148 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203 +AD = 000102030405060708090A0B0C0D0E +CT = ACC9DFB18BCF6128B759994FB82215BE3703D913 + +Count = 149 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203 +AD = 000102030405060708090A0B0C0D0E0F +CT = B5604DCF35AA4A34A87A463B1874857DB4F962DE + +Count = 150 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = A3DCE6A3567643F03F7B36BB429EA434CBD1186C + +Count = 151 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = A3716FAF16631A092D139552726AAE3353BD2840 + +Count = 152 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = A8844FEE41C029DE90B1D4265BB3BDB9ECB6C7BF + +Count = 153 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = ECBB6385EC68E5767D77E8498D4D78493B39230B + +Count = 154 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = 502CE5C9379E3C9591B0459F237E06B4C2438F58 + +Count = 155 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = A85B7100BB7EE6E3B708A3BBFB3D11717C9ED1F0 + +Count = 156 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 64A76E090BD453C59C5D823A23E7798058490A8B + +Count = 157 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = 9F092EE00DE05B81EF8EEF3B5C7CC74272E90114 + +Count = 158 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 7CE77BF21466DC958D7B5C1BC8EEC7C1B5818879 + +Count = 159 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = AE5C18C2108923808B6077D5459ACB9ECCD50272 + +Count = 160 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 58670DEDB3A866C899C875ABB33B29346ADA9D3E + +Count = 161 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 8E33595679C049D63E09F1825702080211A6EA6D + +Count = 162 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = CBA5AC3E357D81CEC1EE3A4C9D2A7AF6873D64C1 + +Count = 163 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 3A47EF6D8137AA45DF262F3DBF5BC39109F3947C + +Count = 164 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = 91995B955D8733D8C5733A966B75BFE2C7C9FFCA + +Count = 165 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 64BCEF8D47A2C0D41BFBAE751C37F584119223AC + +Count = 166 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304 +AD = +CT = 89A6BC509C67AAD3A5EFFBCC98336B63A07B527F5B + +Count = 167 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304 +AD = 00 +CT = CBF1A8AF0382EFB2BF936EE6C55D90F62DD169F472 + +Count = 168 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304 +AD = 0001 +CT = E54B761E4A7B6826D0D57CB16F93FBD8E37C9459D9 + +Count = 169 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304 +AD = 000102 +CT = 8073F503267C666EBFC2ACA2F74AB38DECFA04D1AC + +Count = 170 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304 +AD = 00010203 +CT = 9F3F6002F8D617E6EF9C02237105E509C424DC88BA + +Count = 171 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304 +AD = 0001020304 +CT = 1D07AA1D70E56AE9662FE300FE4FDC272A7812A8D9 + +Count = 172 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304 +AD = 000102030405 +CT = F5941EF434491C2F373675A69E09D550574AEC7EB5 + +Count = 173 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304 +AD = 00010203040506 +CT = 3E59844D00DDE437474C86C3C391FFBD62BA210BF6 + +Count = 174 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304 +AD = 0001020304050607 +CT = 15D3A591833EBB45A53AB6B966651ACA7DB64F3B1E + +Count = 175 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304 +AD = 000102030405060708 +CT = 39A67BEA2B2DD643AF84210E8E7F5C5F3FAEEBB31D + +Count = 176 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304 +AD = 00010203040506070809 +CT = 495F89651BDBCF34AFA4CCE73E809175DD8A5AA557 + +Count = 177 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304 +AD = 000102030405060708090A +CT = 84355B90FC96AD5EC7BEDBB3F883253F80CB75DB5A + +Count = 178 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304 +AD = 000102030405060708090A0B +CT = BE57E3035FE7292680AC70399EBFDCE6D62634BBCE + +Count = 179 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304 +AD = 000102030405060708090A0B0C +CT = F2E67F043065FEB165E921A35FA0FAE6BE9D647BC0 + +Count = 180 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304 +AD = 000102030405060708090A0B0C0D +CT = 26BD543E0E393F7C2D10D85AE5DC41849DDA30BA15 + +Count = 181 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304 +AD = 000102030405060708090A0B0C0D0E +CT = ACC9DFB1047EA62A44DDF4B9B97E84A6D32C8BF25E + +Count = 182 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304 +AD = 000102030405060708090A0B0C0D0E0F +CT = B5604DCF952A28CF2E9B3996A2F97E81E8B1693758 + +Count = 183 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = A3DCE6A36D0791C3EA2740F0D45210C613FE78F7BF + +Count = 184 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = A3716FAF5C6985F9F5DD6AC93EFEB55CDC949ADF62 + +Count = 185 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = A8844FEE4724BF8D5DE5457EC5260536842C4A9FDF + +Count = 186 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = ECBB6385038F6A8AAC4068BF9061C1ACE347085A88 + +Count = 187 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = 502CE5C9F6C16C14D006373B6B033FD49190D4D379 + +Count = 188 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = A85B710074AFAC543F4C1FB5BFFB424708BD1C2D3C + +Count = 189 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 64A76E0931601661BA56D3BDE826A72AF91FF4DB11 + +Count = 190 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = 9F092EE04E39D2D95D3D3A0A82B0FB30F5CAFB5A72 + +Count = 191 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 7CE77BF23E209ADBAA4867CA1AD63E4A4B17908DBB + +Count = 192 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = AE5C18C2DAAA0B1734508E058378F38E225683C576 + +Count = 193 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 58670DED3A8423F21461DFF629ED1871C3D24300A6 + +Count = 194 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 8E3359569760D6B2EDAA58CA752B872B3282A58221 + +Count = 195 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = CBA5AC3E70349D65556CE95F8752B25B50A15CD742 + +Count = 196 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 3A47EF6DC17B9A572E2D91D4E5E2AC6355AF9FE2C1 + +Count = 197 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = 91995B95E277D8FB4F7C4E89C71B3DAA3C7D9F11D7 + +Count = 198 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 64BCEF8DAECE7BFBCECFAC4AC6D4E02941704AD26E + +Count = 199 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405 +AD = +CT = 89A6BC509C2FAFE883D718EA3F5F57E38E272B77D25C + +Count = 200 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405 +AD = 00 +CT = CBF1A8AF0311531E76CD7D5A5C0F193F16DB95633BA9 + +Count = 201 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405 +AD = 0001 +CT = E54B761E4A8F7A5481E94FEF54CA1AE0415DE60EBEE6 + +Count = 202 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405 +AD = 000102 +CT = 8073F50326B51A12A721C9F740978A08EDA84893113C + +Count = 203 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405 +AD = 00010203 +CT = 9F3F6002F89F03F1649909A837D362FFA0A17AF16923 + +Count = 204 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405 +AD = 0001020304 +CT = 1D07AA1D70FD93D8AD81C92EDB62E1BD2060E447ADC0 + +Count = 205 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405 +AD = 000102030405 +CT = F5941EF434BC19515366CAC1483BCDC362220A4F42C8 + +Count = 206 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405 +AD = 00010203040506 +CT = 3E59844D00E14DADF939EAF32281367E1746ADF98FB9 + +Count = 207 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405 +AD = 0001020304050607 +CT = 15D3A591835709D5565C3730DA132B03D85329436823 + +Count = 208 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405 +AD = 000102030405060708 +CT = 39A67BEA2BD6D90D81ED955D8376C88C6F11B1960CAF + +Count = 209 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405 +AD = 00010203040506070809 +CT = 495F89651B34FC582DBDE637D560A03C50D2602A139B + +Count = 210 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405 +AD = 000102030405060708090A +CT = 84355B90FCA6B7C672A8793E786E0DD765509EE26F49 + +Count = 211 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405 +AD = 000102030405060708090A0B +CT = BE57E3035F319DF8C9A266D028347B4B7564A4DD88D2 + +Count = 212 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405 +AD = 000102030405060708090A0B0C +CT = F2E67F043069B7DDD4AA08D9187A5F77E8B08789402B + +Count = 213 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405 +AD = 000102030405060708090A0B0C0D +CT = 26BD543E0ED967C9E2853313F569D149C542C111B44E + +Count = 214 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405 +AD = 000102030405060708090A0B0C0D0E +CT = ACC9DFB1049535079CFED2BEB61C07B2E57F022758EC + +Count = 215 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405 +AD = 000102030405060708090A0B0C0D0E0F +CT = B5604DCF9517BD1D054EE697F87E318B941ADF98793D + +Count = 216 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = A3DCE6A36D4297E17AB1D4995AD0232A524B82373D43 + +Count = 217 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = A3716FAF5CE0D18EEE11EE35D240CE1CD9C82ECBFB0C + +Count = 218 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = A8844FEE475AD01DD366B7A5DF95993CDE37EDA9A1AD + +Count = 219 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = ECBB638503C5A69D62915DBE4610A0E506187B455627 + +Count = 220 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = 502CE5C9F6B61792CC7D63763627B59F8B33C6949AC8 + +Count = 221 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = A85B710074775636362676B385F4052FACBDCADF91B9 + +Count = 222 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 64A76E093101B9388CD9E26D43A815609EBC162946AD + +Count = 223 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = 9F092EE04EA8DD7E6D74C5BF0DB5A5540B82896CC7B7 + +Count = 224 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 7CE77BF23E7218E3A3D96DF3080D6483D7DD0EDE8F68 + +Count = 225 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = AE5C18C2DAC4B780B27880BE1C515C290244D733D2D8 + +Count = 226 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 58670DED3A072B115E3F32D9E0F32F373295475D8BAC + +Count = 227 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 8E33595697706EC5B15B3E2BBDB942755AD0350D9F92 + +Count = 228 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = CBA5AC3E706CA807B2486D1E3CA7810694AF79A7B859 + +Count = 229 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 3A47EF6DC17BF40AC008B551E37823BF51A187322FD9 + +Count = 230 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = 91995B95E221BD7995620D3519F76C1029125CAC9CAC + +Count = 231 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 64BCEF8DAE0A31D8680989A449F2E58560B49F2D152A + +Count = 232 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506 +AD = +CT = 89A6BC509C2FA1FF3F4E0AB9C88687267DE87350261075 + +Count = 233 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506 +AD = 00 +CT = CBF1A8AF0311E9BD5B64B5DFE06E40BE30D204028CF036 + +Count = 234 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506 +AD = 0001 +CT = E54B761E4A8F0D37FACC5DEC04D2A31C7B96AB12928278 + +Count = 235 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506 +AD = 000102 +CT = 8073F50326B592A1EE20F00DFE3530C533116919E61B65 + +Count = 236 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506 +AD = 00010203 +CT = 9F3F6002F89F5CA9A1F7027050810A065F7DCEE14FCAE7 + +Count = 237 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506 +AD = 0001020304 +CT = 1D07AA1D70FD65652D08DB9A2723FF22B693819CDAAFB9 + +Count = 238 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506 +AD = 000102030405 +CT = F5941EF434BCE811951B4E6696711CAA3B970AB07D51A8 + +Count = 239 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506 +AD = 00010203040506 +CT = 3E59844D00E1B3ABE12D08BFC0C94A65B732668A69BC93 + +Count = 240 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506 +AD = 0001020304050607 +CT = 15D3A59183579562B9AAD9D8181D5C865B8C67CDC1ECE7 + +Count = 241 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506 +AD = 000102030405060708 +CT = 39A67BEA2BD662BDF9A57E079E8E78475C4F469AA33A8B + +Count = 242 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506 +AD = 00010203040506070809 +CT = 495F89651B34602E9821BEB5160FEB8EC3967B843FF5B3 + +Count = 243 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506 +AD = 000102030405060708090A +CT = 84355B90FCA6CC35FC8938ED9B13443C7873F1B29D2329 + +Count = 244 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506 +AD = 000102030405060708090A0B +CT = BE57E3035F312165A5BA118A8DD563A5847F45A6EFD745 + +Count = 245 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506 +AD = 000102030405060708090A0B0C +CT = F2E67F04306927025A70A33143986457D7BDC1D8C712AC + +Count = 246 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506 +AD = 000102030405060708090A0B0C0D +CT = 26BD543E0ED9A943ABA14D2B9F8DE867081F685ABF1946 + +Count = 247 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506 +AD = 000102030405060708090A0B0C0D0E +CT = ACC9DFB104957F8A75BCE7374CEDA18819B7F13457FE75 + +Count = 248 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506 +AD = 000102030405060708090A0B0C0D0E0F +CT = B5604DCF9517E31B6BABB9E17918DB17E00FB21B32EBA6 + +Count = 249 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = A3DCE6A36D42452E818C71B1F541293A1DCC309023F2F2 + +Count = 250 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = A3716FAF5CE05A8FE616983B390B0AA9AB0861A376A06A + +Count = 251 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = A8844FEE475A9B26F62F9605D466A5305780BC46438A5D + +Count = 252 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = ECBB638503C55987EB4130247764492D9C99C070EB8290 + +Count = 253 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = 502CE5C9F6B61A6440354E590924C9D151A649E538ACB7 + +Count = 254 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = A85B710074776A5C4BD6F1163129B788B9C6EA8492DE60 + +Count = 255 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 64A76E093101B46438C5B6359BB7A913345ABC45FE41C8 + +Count = 256 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = 9F092EE04EA80A396E12AD005CDDFC4533911AD713BC09 + +Count = 257 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 7CE77BF23E72ADF20321DA3D70AB6FAC7E4DCF9366F8CA + +Count = 258 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = AE5C18C2DAC4C616257EC249AE14EDD6A46F6DA407B116 + +Count = 259 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 58670DED3A0718E408602D57C9B52399421CAE9D5504F5 + +Count = 260 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 8E3359569770A998B2154EBE1725275067B8B914175150 + +Count = 261 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = CBA5AC3E706C381C66BF4BCA7F95DD357A37BC62BF1942 + +Count = 262 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 3A47EF6DC17B531465C0092F651CC6143CB7C85BD269FA + +Count = 263 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = 91995B95E221DDD146A8C9CC6A5DCF6DEB0D900F11B8EA + +Count = 264 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 64BCEF8DAE0A005332E5A90D15F6E284E614170154455E + +Count = 265 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304050607 +AD = +CT = 89A6BC509C2FA19985D311F6C23A1390FC6988E50507AB8D + +Count = 266 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304050607 +AD = 00 +CT = CBF1A8AF0311E9921AA571635480AB54E9FDD9283C9CCE2A + +Count = 267 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304050607 +AD = 0001 +CT = E54B761E4A8F0D1DC7578E7B54A2749B6686E16AEEE18CB3 + +Count = 268 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304050607 +AD = 000102 +CT = 8073F50326B592E50A18B4CC7D509FAE42922A4240933916 + +Count = 269 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304050607 +AD = 00010203 +CT = 9F3F6002F89F5CA221DF6F6802181422C9D58113FA0C1F8E + +Count = 270 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304050607 +AD = 0001020304 +CT = 1D07AA1D70FD6573D467D9C06A2F200BE279E534614A0E71 + +Count = 271 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304050607 +AD = 000102030405 +CT = F5941EF434BCE8E3D11701B6ED6F8615D9FE435C334C80B0 + +Count = 272 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304050607 +AD = 00010203040506 +CT = 3E59844D00E1B3B1DE488E2024209622CEBFB416F2B049CC + +Count = 273 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304050607 +AD = 0001020304050607 +CT = 15D3A591835795972446B68ADFBB5648BD562A91C282C561 + +Count = 274 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304050607 +AD = 000102030405060708 +CT = 39A67BEA2BD6620D7EB1EC8ED0236A6C6000D21AAC612C8C + +Count = 275 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304050607 +AD = 00010203040506070809 +CT = 495F89651B3460E653C63F2392D4FFFB56D1E6CC9D12BDE7 + +Count = 276 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304050607 +AD = 000102030405060708090A +CT = 84355B90FCA6CC9632C53A40C3587A709B61B6B97D5E94DF + +Count = 277 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304050607 +AD = 000102030405060708090A0B +CT = BE57E3035F3121F15DDD175F4020C66A0B35CA199A06AA19 + +Count = 278 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304050607 +AD = 000102030405060708090A0B0C +CT = F2E67F0430692732ABAFADE7A55B4052D1ED39FEBCCEDC48 + +Count = 279 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304050607 +AD = 000102030405060708090A0B0C0D +CT = 26BD543E0ED9A9C73FD8D0FB43FBC7A628E3EBEDA23153A6 + +Count = 280 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304050607 +AD = 000102030405060708090A0B0C0D0E +CT = ACC9DFB104957F6FD5CBB4C0E9CACCE84AA7A9080A969E72 + +Count = 281 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304050607 +AD = 000102030405060708090A0B0C0D0E0F +CT = B5604DCF9517E3380D869A39E999C7DA1D09A175C55FC6C8 + +Count = 282 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304050607 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = A3DCE6A36D424519CD441690EDE24A7016FA3F9C8ECF1743 + +Count = 283 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304050607 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = A3716FAF5CE05AE08CF6E8DB3384E492FDCD2260E7104447 + +Count = 284 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304050607 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = A8844FEE475A9B1052B82AD79B12930FB2217A9E7312778C + +Count = 285 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304050607 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = ECBB638503C55975D8FF28ABECE30538676B1D1E6DBF7D37 + +Count = 286 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304050607 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = 502CE5C9F6B61A27CC90BE87B03B9AE15A3BEB7A216A6DDF + +Count = 287 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304050607 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = A85B710074776A797490043C5857C688BA83A14EBD97B62A + +Count = 288 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304050607 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 64A76E093101B414F8C0EE08AB16D15A947F3BC628766E48 + +Count = 289 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304050607 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = 9F092EE04EA80A59121EAA4661144E91E6E6CC25F4272936 + +Count = 290 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304050607 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 7CE77BF23E72AD3C84BB3E1B9C0382C1D7759F93E6B27B7D + +Count = 291 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304050607 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = AE5C18C2DAC4C6630CC80DA962408CC406363A9B40AA3A6D + +Count = 292 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304050607 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 58670DED3A07188359CE6D7451B00C55106E2AFA8DD2E81A + +Count = 293 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304050607 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 8E3359569770A9A42912DCD82E02B3054DCF687AE2117B4A + +Count = 294 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304050607 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = CBA5AC3E706C38CC5F630EEDDBEAC819C2DEEF2201711B29 + +Count = 295 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304050607 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 3A47EF6DC17B5364167C534D49662E61B849ED74226F370E + +Count = 296 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304050607 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = 91995B95E221DDAC10A9C0E8248D2EB6CA92650238AA8D5A + +Count = 297 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 0001020304050607 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 64BCEF8DAE0A00AB16046BBEAB8E9CFA426C2728187A849D + +Count = 298 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708 +AD = +CT = 89A6BC509C2FA19946BB90A56E0513305B63E9890AB3569F53 + +Count = 299 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708 +AD = 00 +CT = CBF1A8AF0311E992A78A32AA8D4E740C68D754B32319FEA66F + +Count = 300 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708 +AD = 0001 +CT = E54B761E4A8F0D1D9444592A2FB4B251A691B45D2B5D477A7C + +Count = 301 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708 +AD = 000102 +CT = 8073F50326B592E59269DA4A89B869C4E11E35833A4F669BB4 + +Count = 302 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708 +AD = 00010203 +CT = 9F3F6002F89F5CA2B4D05823AD1B6DC0165A9BFA05716B3E02 + +Count = 303 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708 +AD = 0001020304 +CT = 1D07AA1D70FD65735A730665EACE083909FEE6B522ACBBE28F + +Count = 304 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708 +AD = 000102030405 +CT = F5941EF434BCE8E38E2364E46E4AD44F13298E0F5CF40EC4E8 + +Count = 305 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708 +AD = 00010203040506 +CT = 3E59844D00E1B3B13E86348437080D7B960C8083022638C655 + +Count = 306 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708 +AD = 0001020304050607 +CT = 15D3A59183579597383CDCC93C39AA74539A915959F14221A7 + +Count = 307 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708 +AD = 000102030405060708 +CT = 39A67BEA2BD6620D0DACB3835A5C3B014477CB3E4A2C7F385A + +Count = 308 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708 +AD = 00010203040506070809 +CT = 495F89651B3460E65FB0E607DBC745C42DFC69B76A1450E12A + +Count = 309 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708 +AD = 000102030405060708090A +CT = 84355B90FCA6CC96DBE97B4A3C18D5343EE196FAD5BCEF366F + +Count = 310 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708 +AD = 000102030405060708090A0B +CT = BE57E3035F3121F1079764C09DE7C5F2EED33F8C0523DE2FA9 + +Count = 311 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708 +AD = 000102030405060708090A0B0C +CT = F2E67F043069273262BEAC89B4CFD665D649D82000D9BF8F2E + +Count = 312 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708 +AD = 000102030405060708090A0B0C0D +CT = 26BD543E0ED9A9C7D029DAF78D5B25A2E2630A6E5C413FCA84 + +Count = 313 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708 +AD = 000102030405060708090A0B0C0D0E +CT = ACC9DFB104957F6F5BBBF988040E2E57CAAA9B4A10F16767D6 + +Count = 314 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708 +AD = 000102030405060708090A0B0C0D0E0F +CT = B5604DCF9517E3384C5D55A7102322C089D2AAC80B0DD3F390 + +Count = 315 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = A3DCE6A36D4245193B3BBC18566222D350060CD97126E3E051 + +Count = 316 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = A3716FAF5CE05AE0DB29F2899321EEB2B708480CAA6CECF092 + +Count = 317 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = A8844FEE475A9B10ACB5AEA87BB37AE1EBE36077E57E8CAFB5 + +Count = 318 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = ECBB638503C5597536469C3C42947E378E2F3DADA92C93FDF6 + +Count = 319 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = 502CE5C9F6B61A27736FFC2AD3DCE21991BD31BF256604D5E0 + +Count = 320 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = A85B710074776A79958222CB75B72337A721FBC3D1AE9A4DE5 + +Count = 321 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 64A76E093101B4145E94C0E8C6557EE393955E0ECACEC695F5 + +Count = 322 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = 9F092EE04EA80A598D2A37B080E1821C3F5CB61BE972ED498D + +Count = 323 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 7CE77BF23E72AD3CB72D897D9AE735007518C5A5D2A669F316 + +Count = 324 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = AE5C18C2DAC4C663566417ED8EB94F5592506E7BE90926FF9A + +Count = 325 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 58670DED3A0718839BC1CA87FCF0985878ADDA3EBE9D44BDD9 + +Count = 326 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 8E3359569770A9A49D021752031963E9214F6FD35CF7E0F6B6 + +Count = 327 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = CBA5AC3E706C38CCB715CC1ADA9DD5C35DDA6BB564083CA68A + +Count = 328 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 3A47EF6DC17B5364E37275FCDBED9446A9A7366055C306AC84 + +Count = 329 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = 91995B95E221DDAC697DFAD028C5429DBF79B1C978BD7158AF + +Count = 330 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 64BCEF8DAE0A00AB4938CABA8D23BC7550D5449065BD3F7D12 + +Count = 331 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506070809 +AD = +CT = 89A6BC509C2FA199469FCDBBF235311CE7D092D277C4292A932B + +Count = 332 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506070809 +AD = 00 +CT = CBF1A8AF0311E992A7412EA125B6D913A932EBA9523B2DDF40ED + +Count = 333 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506070809 +AD = 0001 +CT = E54B761E4A8F0D1D94D9ED21708B33C930E8D64D5E099D812BAC + +Count = 334 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506070809 +AD = 000102 +CT = 8073F50326B592E5922BB08D428DF0106F7C30DC44B408600C6E + +Count = 335 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506070809 +AD = 00010203 +CT = 9F3F6002F89F5CA2B48DDFEDDDBEE5BB2B07EA73374D7485EE14 + +Count = 336 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506070809 +AD = 0001020304 +CT = 1D07AA1D70FD65735A2C35ED369F523FA92CEA9EA3BE5A55315F + +Count = 337 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506070809 +AD = 000102030405 +CT = F5941EF434BCE8E38E632112FEC62EAB408619506C9EF38C65DD + +Count = 338 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506070809 +AD = 00010203040506 +CT = 3E59844D00E1B3B13E8E6C6825759002B59792F435F7D0D38464 + +Count = 339 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506070809 +AD = 0001020304050607 +CT = 15D3A5918357959738589E7A682BE14924935695447AAE7E7E0F + +Count = 340 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506070809 +AD = 000102030405060708 +CT = 39A67BEA2BD6620D0D46042D74EBF959CC0A2D224DCE310E001F + +Count = 341 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506070809 +AD = 00010203040506070809 +CT = 495F89651B3460E65F00A51B0AF19ADF71E72BA56DE7A0BD4E97 + +Count = 342 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506070809 +AD = 000102030405060708090A +CT = 84355B90FCA6CC96DB8296BEF5B088045831D3427DA6043CD5C5 + +Count = 343 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506070809 +AD = 000102030405060708090A0B +CT = BE57E3035F3121F1071DAF86350AD9959D3CE809808293D449F3 + +Count = 344 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C +CT = F2E67F043069273262C433D936865AC6E597FD3BC72C7F4156F6 + +Count = 345 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C0D +CT = 26BD543E0ED9A9C7D06C71B3695053CFF6417A8BDCC9BFB59A45 + +Count = 346 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C0D0E +CT = ACC9DFB104957F6F5B615DDEA8DBF165499792ECF451796244D2 + +Count = 347 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C0D0E0F +CT = B5604DCF9517E3384C47A262AA449EF56499D617414D4C896D14 + +Count = 348 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = A3DCE6A36D4245193B10165C52472EDEA889A874C5BBFE52EB60 + +Count = 349 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = A3716FAF5CE05AE0DB7AD233BBD67B7CE69C2E24776CBD359A6D + +Count = 350 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = A8844FEE475A9B10ACE26EBC4AFC66F8C650B1A34A72FD6C381B + +Count = 351 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = ECBB638503C559753693BAA1F38895D566F7733329FD6BD33E70 + +Count = 352 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = 502CE5C9F6B61A27732426427ED1387907CACD3965EA199A8CA1 + +Count = 353 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = A85B710074776A79954E9F2AAB40A78352F69DC25CE275BF9D69 + +Count = 354 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 64A76E093101B4145E1F10A3C510F1E81A18BB132EC4391F6320 + +Count = 355 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = 9F092EE04EA80A598D8798266FE34946A56D264F7A3368507CE3 + +Count = 356 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 7CE77BF23E72AD3CB7F3C0459254AE638C1B311E9A4FDA5D8FFC + +Count = 357 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = AE5C18C2DAC4C66356195E86697FB985CA206B3CC767102ED955 + +Count = 358 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 58670DED3A0718839B4B249A2F8A0450622AAA7251550C80A214 + +Count = 359 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 8E3359569770A9A49DCFC180A11F1EAC687C96A86BB2F6020BC0 + +Count = 360 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = CBA5AC3E706C38CCB7F9796EEB02DCC4A0B70D5E10DA36F43CA3 + +Count = 361 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 3A47EF6DC17B5364E30F5ABC7445C2ACE584CB7394A0FB627481 + +Count = 362 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = 91995B95E221DDAC6916E6AC4F1E28F356222FE712A65E84C864 + +Count = 363 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 64BCEF8DAE0A00AB494C04D312335F8453C3EA680350031D65EF + +Count = 364 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A +AD = +CT = 89A6BC509C2FA199469F9291A2B928035B7A9162ED79E25484C2D9 + +Count = 365 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A +AD = 00 +CT = CBF1A8AF0311E992A7410E80696CD31C78B016DCB28A74B3CAC8EC + +Count = 366 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A +AD = 0001 +CT = E54B761E4A8F0D1D94D92F4496A44241FBDDDB98923ED251AFBB84 + +Count = 367 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A +AD = 000102 +CT = 8073F50326B592E5922BADF85D5CF35D5133EC822D1D74B22E8861 + +Count = 368 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A +AD = 00010203 +CT = 9F3F6002F89F5CA2B48DF52ECBA388CEAEEF3D1A6EF3B7CF290F24 + +Count = 369 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A +AD = 0001020304 +CT = 1D07AA1D70FD65735A2CD0562EF2C4EECC0154E2CE09EA0FA3095D + +Count = 370 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A +AD = 000102030405 +CT = F5941EF434BCE8E38E63F5464A36ADCF52862227C7B8BFAD99B70A + +Count = 371 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A +AD = 00010203040506 +CT = 3E59844D00E1B3B13E8E65B6B5FC804A9DA164C902C904E4389D9E + +Count = 372 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A +AD = 0001020304050607 +CT = 15D3A591835795973858CF04FEABE60D1E1E246503EFAE853E3B79 + +Count = 373 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A +AD = 000102030405060708 +CT = 39A67BEA2BD6620D0D4665C789F2AAC742B2307251D21AFEC58C30 + +Count = 374 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A +AD = 00010203040506070809 +CT = 495F89651B3460E65F003BBDF847AC520277D4DDAFE82A679E9D72 + +Count = 375 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A +AD = 000102030405060708090A +CT = 84355B90FCA6CC96DB82A956EABD342A354426E5F2C932B533855B + +Count = 376 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A +AD = 000102030405060708090A0B +CT = BE57E3035F3121F1071DA18CDA52B8CE04977143170032ECCA2634 + +Count = 377 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C +CT = F2E67F043069273262C42DFDD300D0C91F8C395C29DDD8E707298B + +Count = 378 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C0D +CT = 26BD543E0ED9A9C7D06C11BFDCA90B0E2B2D847D8AC38A25DCB55A + +Count = 379 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C0D0E +CT = ACC9DFB104957F6F5B61F438580D17993CA385FEC9E22B1464219E + +Count = 380 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C0D0E0F +CT = B5604DCF9517E3384C4771FA651FEDCF609B8E989E710F63F8C44D + +Count = 381 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C0D0E0F10 +CT = A3DCE6A36D4245193B10BDB1C9986BB9C82B700CD9E86D67651ADF + +Count = 382 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = A3716FAF5CE05AE0DB7A87ED7BAABD344781C5DEBD929CDF35315F + +Count = 383 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = A8844FEE475A9B10ACE25F6CA27879ECA03D99003434A047442254 + +Count = 384 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = ECBB638503C559753693A570BA2858CCC1ACD5E166C67D8C759749 + +Count = 385 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = 502CE5C9F6B61A277324D94CFC276CD7F9802497ABBECA77EFE7CD + +Count = 386 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = A85B710074776A79954E9376221015102E311312967A81139E2EDC + +Count = 387 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 64A76E093101B4145E1F1CA7CA41E27A5410CA641FCD12D1A66E1B + +Count = 388 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = 9F092EE04EA80A598D87EE16981CC94ADA577F0106BA00A1AF834E + +Count = 389 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 7CE77BF23E72AD3CB7F3C0E452F3849E6685C6A315572083BF43BC + +Count = 390 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = AE5C18C2DAC4C6635619794E57701A9A76F8871D5FD150BC032F3E + +Count = 391 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 58670DED3A0718839B4B0CBEACF0FD0A0915284E9843360146358D + +Count = 392 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 8E3359569770A9A49DCF7AF198A04DFF7CEA7D15824A20AC22B1B2 + +Count = 393 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = CBA5AC3E706C38CCB7F9D32407009A5CBA128889375D44573BEB27 + +Count = 394 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 3A47EF6DC17B5364E30F0A6D86B1CD7ED30D320EEF65C7E93BD745 + +Count = 395 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = 91995B95E221DDAC69161CED64750593F8F257D7AD44CD600A675D + +Count = 396 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 64BCEF8DAE0A00AB494C0607E02E55ABC48EEEC95A9BB941412F01 + +Count = 397 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B +AD = +CT = 89A6BC509C2FA199469F92E4CCD4EA0AB3B86151E2AF867E3C52C63F + +Count = 398 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B +AD = 00 +CT = CBF1A8AF0311E992A7410E62739CF4BCDF02206D1BDDABBF8D38EFD8 + +Count = 399 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B +AD = 0001 +CT = E54B761E4A8F0D1D94D92F14971B1D5C0185F3763B427AC5BCA7DB42 + +Count = 400 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B +AD = 000102 +CT = 8073F50326B592E5922BAD63B910B24B780BFEC1AC9A900991D7882D + +Count = 401 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B +AD = 00010203 +CT = 9F3F6002F89F5CA2B48DF5303AA4AA98FBC31032573C0E4C73CA84D6 + +Count = 402 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B +AD = 0001020304 +CT = 1D07AA1D70FD65735A2CD02358810F9D3DB409742E1DA75E3F25A96C + +Count = 403 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B +AD = 000102030405 +CT = F5941EF434BCE8E38E63F5FD5C59382E06F61ADC780F88F32F086B5F + +Count = 404 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B +AD = 00010203040506 +CT = 3E59844D00E1B3B13E8E65DB163251A7D847D47823AEE1211D8ACB92 + +Count = 405 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B +AD = 0001020304050607 +CT = 15D3A591835795973858CFFD1AEB47F50B389CACD43B4FFC05E82D6D + +Count = 406 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B +AD = 000102030405060708 +CT = 39A67BEA2BD6620D0D466558F3AC8AAC85E5027F1B77CDA2DB7220AB + +Count = 407 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B +AD = 00010203040506070809 +CT = 495F89651B3460E65F003BA7CA8F9912996AA2EEE11090D1FC837598 + +Count = 408 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B +AD = 000102030405060708090A +CT = 84355B90FCA6CC96DB82A9670A853BE08F1871DB76A4D411B6C39B75 + +Count = 409 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B +CT = BE57E3035F3121F1071DA1550CB7A1684360EB2C1BE9C4F3917909FB + +Count = 410 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C +CT = F2E67F043069273262C42D958C7E2781B92C288FCAD82605764B9F6C + +Count = 411 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C0D +CT = 26BD543E0ED9A9C7D06C1135C14831394BCF300849D12DDE1A3251C5 + +Count = 412 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C0D0E +CT = ACC9DFB104957F6F5B61F44EBA3102C9D86AFEB7414AE4B27FC718AD + +Count = 413 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C0D0E0F +CT = B5604DCF9517E3384C47714B4DD98B970B3292894EB8B6B344370C84 + +Count = 414 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C0D0E0F10 +CT = A3DCE6A36D4245193B10BD96705CFCC76C0AB7B5A5A940ACD1B57EE5 + +Count = 415 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = A3716FAF5CE05AE0DB7A87E354CE8BA50471F683A7B2DA7E22A7EEEF + +Count = 416 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = A8844FEE475A9B10ACE25F7D795043D95F30B924E74C8D6F322D45F3 + +Count = 417 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = ECBB638503C559753693A57043643C166DE2FAE4461152C4C94E8BA8 + +Count = 418 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = 502CE5C9F6B61A277324D9536A0616E7F7069ED479DC3B7ED7B981DB + +Count = 419 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = A85B710074776A79954E93052B105EC480A39ACC47B47BB2C3F40A4E + +Count = 420 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 64A76E093101B4145E1F1C952549E7FDAC3312967D8C7E8F0B2E7AA7 + +Count = 421 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = 9F092EE04EA80A598D87EE1DFF9EEE05DA2E19A1E205BECE77347975 + +Count = 422 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 7CE77BF23E72AD3CB7F3C0D19F7F360758E720AB7D56C36A405B9D5C + +Count = 423 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = AE5C18C2DAC4C66356197960D6E678CB5EDCB3A72DF9DB270125129D + +Count = 424 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 58670DED3A0718839B4B0C60ED6BF88C9EBF36816CD03CE799E63AB2 + +Count = 425 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 8E3359569770A9A49DCF7ACA23991977320EB6FAF58A6E3C95906392 + +Count = 426 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = CBA5AC3E706C38CCB7F9D3C1F7A2F72C6FC2055EE3A59A12FA9CC3A2 + +Count = 427 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 3A47EF6DC17B5364E30F0AC6AC81983CD0B235C4966515A17E3F35A0 + +Count = 428 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = 91995B95E221DDAC69161C9D1447FF1E7CAC22BFCE56351ADFE1FCF5 + +Count = 429 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 64BCEF8DAE0A00AB494C067512232E32D015B2CD9104ECB2624D5BFC + +Count = 430 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C +AD = +CT = 89A6BC509C2FA199469F92E4F4AF154849D57C7D8292B982AD3E17428D + +Count = 431 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C +AD = 00 +CT = CBF1A8AF0311E992A7410E6238DE59ED371A2ADCE0241578FE5CF3A918 + +Count = 432 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C +AD = 0001 +CT = E54B761E4A8F0D1D94D92F149B7956F748FC788C2EDF784A728CF6CF00 + +Count = 433 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C +AD = 000102 +CT = 8073F50326B592E5922BAD631EA40AC47AFEFCC38937B3E2B27AD964BB + +Count = 434 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C +AD = 00010203 +CT = 9F3F6002F89F5CA2B48DF5300DA117F3AC375F8031EAEF2B0F41794EA5 + +Count = 435 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C +AD = 0001020304 +CT = 1D07AA1D70FD65735A2CD02305410C0213ADD832F7898255181E8FF92A + +Count = 436 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C +AD = 000102030405 +CT = F5941EF434BCE8E38E63F5FD9C5B0819703E983BD74A67B02119687831 + +Count = 437 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C +AD = 00010203040506 +CT = 3E59844D00E1B3B13E8E65DB34E8339153B199D9CC357745DCBE3F55BC + +Count = 438 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C +AD = 0001020304050607 +CT = 15D3A591835795973858CFFDF3377ECCCB6121F26AAF3E18BF6A95C4A8 + +Count = 439 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C +AD = 000102030405060708 +CT = 39A67BEA2BD6620D0D46655816343951452C21C09476DD1C487D2C652C + +Count = 440 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C +AD = 00010203040506070809 +CT = 495F89651B3460E65F003BA766447A7A15D3A4FEFAA4D3B2EA561E7222 + +Count = 441 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A +CT = 84355B90FCA6CC96DB82A96791BD63A245D49398C2420B979832983C0D + +Count = 442 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B +CT = BE57E3035F3121F1071DA155CF4A17BF40BC3EC11AA824F4402E561E10 + +Count = 443 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C +CT = F2E67F043069273262C42D95222308E443EA42C5A5936EF2A21936F2AA + +Count = 444 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C0D +CT = 26BD543E0ED9A9C7D06C11353B43287DBA3E95BDF7807A5113443BDE08 + +Count = 445 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C0D0E +CT = ACC9DFB104957F6F5B61F44EE01DED7AA3DC969105904F668164D99013 + +Count = 446 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C0D0E0F +CT = B5604DCF9517E3384C47714B37EFD062B76AF7AA238CFC064D0EF2A27F + +Count = 447 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C0D0E0F10 +CT = A3DCE6A36D4245193B10BD96D97DC7384B0335DB0A19A03A054B4179C0 + +Count = 448 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = A3716FAF5CE05AE0DB7A87E3F097A4EC96E292AE6CB5C93C2B187FF840 + +Count = 449 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = A8844FEE475A9B10ACE25F7D4951741A29C58C003F56C941E0F22D728A + +Count = 450 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = ECBB638503C559753693A570DD3BF29BC31EB365D95AF7504CC004B559 + +Count = 451 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = 502CE5C9F6B61A277324D953B6F3543C941BF7970CD8DD446639A0A405 + +Count = 452 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = A85B710074776A79954E9305A92B54FA762076D4F39D2CC0E0AF888326 + +Count = 453 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 64A76E093101B4145E1F1C95360D6484B2F2EF17FED6082F50ACADAC28 + +Count = 454 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = 9F092EE04EA80A598D87EE1D3599766262F6899DB5FA8BBA8EF5E4C0CF + +Count = 455 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 7CE77BF23E72AD3CB7F3C0D12D8F92AFD8BA9243A3E4B58253A490050A + +Count = 456 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = AE5C18C2DAC4C6635619796053D15200011AA4774858BF32795302344F + +Count = 457 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 58670DED3A0718839B4B0C602E2246FB3A122D0B68A4038297E2BDF5C9 + +Count = 458 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 8E3359569770A9A49DCF7ACAF4EC1B460C99E341418418EFD8497910CE + +Count = 459 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = CBA5AC3E706C38CCB7F9D3C15DB8C7276DA8DD06FE0AB521984A819ABE + +Count = 460 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 3A47EF6DC17B5364E30F0AC65F8976E5542D272876BBD75E6A73DCD8B2 + +Count = 461 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = 91995B95E221DDAC69161C9DD1AC54F1B472DF8116B0DA4EA72CE74F93 + +Count = 462 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 64BCEF8DAE0A00AB494C067520624AF353D3639A1A4A05192FD2423015 + +Count = 463 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D +AD = +CT = 89A6BC509C2FA199469F92E4F44E84E0B73FD12BB3A11F24A69E66EDCCB9 + +Count = 464 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D +AD = 00 +CT = CBF1A8AF0311E992A7410E6238D308A319AD332685CC1542F789377FFECE + +Count = 465 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D +AD = 0001 +CT = E54B761E4A8F0D1D94D92F149BCC0565595660B5E94F1689BB21F2DE11DC + +Count = 466 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D +AD = 000102 +CT = 8073F50326B592E5922BAD631EE51DA79CE26570DF8C3853708E064AABD2 + +Count = 467 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D +AD = 00010203 +CT = 9F3F6002F89F5CA2B48DF5300D06D5360DD3A670BC441A30071DF36AF59A + +Count = 468 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D +AD = 0001020304 +CT = 1D07AA1D70FD65735A2CD02305D98C884C87CA3A37108906EC0BF0138BE8 + +Count = 469 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D +AD = 000102030405 +CT = F5941EF434BCE8E38E63F5FD9C29E7EA72790318C43A8BF5BA9019591CF8 + +Count = 470 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D +AD = 00010203040506 +CT = 3E59844D00E1B3B13E8E65DB34666BD5DA1DA9034FED5BD2B7AA4743E2D3 + +Count = 471 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D +AD = 0001020304050607 +CT = 15D3A591835795973858CFFDF307DF365E80C97DD9ACF80062B5EB97999A + +Count = 472 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708 +CT = 39A67BEA2BD6620D0D4665581612A322D64E013F11D696747BC67F1B04B1 + +Count = 473 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D +AD = 00010203040506070809 +CT = 495F89651B3460E65F003BA766C5655B71C3DFF387DEEB05C05ED6B35A10 + +Count = 474 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A +CT = 84355B90FCA6CC96DB82A967919FEA8415E53D7A7220060979A935CDF1C8 + +Count = 475 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B +CT = BE57E3035F3121F1071DA155CFEDF1DEEEF26257EE2F8C041F9A25EB24DB + +Count = 476 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C +CT = F2E67F043069273262C42D95223280395621A41E4CC74970DE908FE57924 + +Count = 477 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C0D +CT = 26BD543E0ED9A9C7D06C11353B99A50289743A4B9861189374B48F239289 + +Count = 478 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C0D0E +CT = ACC9DFB104957F6F5B61F44EE0C80C644199087B888DD4C7ECA1E0C26B0F + +Count = 479 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C0D0E0F +CT = B5604DCF9517E3384C47714B37003ABC06AEE0D5EDE750923B0790C497FA + +Count = 480 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C0D0E0F10 +CT = A3DCE6A36D4245193B10BD96D968ED9E6E36842FD004605646C1C9DA8879 + +Count = 481 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = A3716FAF5CE05AE0DB7A87E3F0936D9C97F72D229C8A70D4D19BA107D278 + +Count = 482 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = A8844FEE475A9B10ACE25F7D4971EDCDD955274D42D7D11B7BA0E2CEC34A + +Count = 483 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = ECBB638503C559753693A570DD6EC6D3F59F8E3666D4A688A1E3CDF95F0A + +Count = 484 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = 502CE5C9F6B61A277324D953B68BA9E929FB69A23840A4C1243D5F169384 + +Count = 485 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = A85B710074776A79954E9305A94EA8472FE52FD05A98E8A24E7C56740996 + +Count = 486 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 64A76E093101B4145E1F1C95363320087EAF5A53754A031473A4901AAC25 + +Count = 487 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = 9F092EE04EA80A598D87EE1D359A3B3BC967894061E428D641F7DA101CAE + +Count = 488 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 7CE77BF23E72AD3CB7F3C0D12D8229B8CD0DE1B785B58708DA49625FDBF6 + +Count = 489 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = AE5C18C2DAC4C66356197960539BB76597E9A475C532C314CC3C7D67749C + +Count = 490 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 58670DED3A0718839B4B0C602EFFB7A748B509FB1FD678E0328A08CF2281 + +Count = 491 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 8E3359569770A9A49DCF7ACAF4E2D23AAD12F17721A5B869DC52AB3C2F89 + +Count = 492 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = CBA5AC3E706C38CCB7F9D3C15D40A13950A24988B34FA34C41A2870DD147 + +Count = 493 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 3A47EF6DC17B5364E30F0AC65F7BAF16D976F3845F7A4F8F00E13601CD12 + +Count = 494 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = 91995B95E221DDAC69161C9DD1729B3ED9AC4E758F70454C46E848DDDD13 + +Count = 495 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 64BCEF8DAE0A00AB494C067520521442B18305C06090BCE3C8079947CA22 + +Count = 496 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E +AD = +CT = 89A6BC509C2FA199469F92E4F44EC9B3C9BD79C57363EA31627C468FC320FB + +Count = 497 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E +AD = 00 +CT = CBF1A8AF0311E992A7410E6238D3654083FE3E26D37A49833A577289DB55F7 + +Count = 498 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E +AD = 0001 +CT = E54B761E4A8F0D1D94D92F149BCCA2D271F21245B09D18DE310E92E6F0785F + +Count = 499 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E +AD = 000102 +CT = 8073F50326B592E5922BAD631EE5A340C7437F33A11643252108FACDE10E19 + +Count = 500 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E +AD = 00010203 +CT = 9F3F6002F89F5CA2B48DF5300D06E413CF3EAB03A96A7AA23EF24AA1B1ECB7 + +Count = 501 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E +AD = 0001020304 +CT = 1D07AA1D70FD65735A2CD02305D94C22D7A53FE8F49B0C32BE8BE415107657 + +Count = 502 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405 +CT = F5941EF434BCE8E38E63F5FD9C29D53D1442C71F8A8AB5D621572B9D30B3E5 + +Count = 503 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E +AD = 00010203040506 +CT = 3E59844D00E1B3B13E8E65DB34669B9DB75CB0A4074E23E87A5E2233FE4608 + +Count = 504 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E +AD = 0001020304050607 +CT = 15D3A591835795973858CFFDF307BC468DD97C514FB11440733D15B31B5BE4 + +Count = 505 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708 +CT = 39A67BEA2BD6620D0D4665581612730869370DEA8499682BB345C03855BA17 + +Count = 506 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E +AD = 00010203040506070809 +CT = 495F89651B3460E65F003BA766C584EE56B4006B940005372886CB1A384181 + +Count = 507 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A +CT = 84355B90FCA6CC96DB82A967919F4A99A636A8B69FEF9216F9C8DC3D77A193 + +Count = 508 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B +CT = BE57E3035F3121F1071DA155CFEDED4C22B6F50581FE06F18FAA980073D9BA + +Count = 509 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C +CT = F2E67F043069273262C42D9522322A51DBABBABE6721C6306613659FA601BD + +Count = 510 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C0D +CT = 26BD543E0ED9A9C7D06C11353B99693909056B2EF996E6229B94F2013A74B2 + +Count = 511 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C0D0E +CT = ACC9DFB104957F6F5B61F44EE0C869C71C0CB8762E514F09CF0A21AEDB81D4 + +Count = 512 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C0D0E0F +CT = B5604DCF9517E3384C47714B3700BBF0F001D86FC9F615863D2DC83CAC8FF0 + +Count = 513 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C0D0E0F10 +CT = A3DCE6A36D4245193B10BD96D968370EF2B772EFD247B3E625E465765930BF + +Count = 514 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = A3716FAF5CE05AE0DB7A87E3F093418CAA419883DFFCD026DC2DE9E8F9D79B + +Count = 515 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = A8844FEE475A9B10ACE25F7D4971965BCA1220B92E72041348ACD1D3C61D9D + +Count = 516 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = ECBB638503C559753693A570DD6E9700CA69C5F45848C360A840EA687F7DB8 + +Count = 517 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = 502CE5C9F6B61A277324D953B68B26159BE4BBFB6AD8707E7FE67DCAC72F1D + +Count = 518 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = A85B710074776A79954E9305A94EFAC8269C42835617A89F988CA411350E6C + +Count = 519 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 64A76E093101B4145E1F1C953633EBE68B73AF2F2F129FDC071DC1CFD103D9 + +Count = 520 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = 9F092EE04EA80A598D87EE1D359A5D6C7B5DB2DC1B08A685519C39D653E792 + +Count = 521 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 7CE77BF23E72AD3CB7F3C0D12D82CD3877555749BBEFA63E0CDDF8686A6B50 + +Count = 522 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = AE5C18C2DAC4C66356197960539B94AC7C981A1EB8FC885C722A58522F0998 + +Count = 523 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 58670DED3A0718839B4B0C602EFFACB4792F2DC524E3A3D2E9206E09466046 + +Count = 524 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 8E3359569770A9A49DCF7ACAF4E2E95B63BEBED1E85CDB2C9FDEFC79871C81 + +Count = 525 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = CBA5AC3E706C38CCB7F9D3C15D40BE6218C546B18190E6584D0DB54A0075DD + +Count = 526 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 3A47EF6DC17B5364E30F0AC65F7B45FEB6B453B5BEA263B8904C406D0A9D4B + +Count = 527 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = 91995B95E221DDAC69161C9DD17293D7FC0F125B069465ED66C616437FA7C4 + +Count = 528 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 64BCEF8DAE0A00AB494C06752052D3280C1AD26CCCA796092B0A19B362CCFB + +Count = 529 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F +AD = +CT = 89A6BC509C2FA199469F92E4F44EC9AC8BAB9A9CDE663E2524E5419DAF1CB3A2 + +Count = 530 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F +AD = 00 +CT = CBF1A8AF0311E992A7410E6238D365080A4D41C454A8BEEB50A1A7649C8B16EC + +Count = 531 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F +AD = 0001 +CT = E54B761E4A8F0D1D94D92F149BCCA21AB298FA39442AE3C541E36E613E518411 + +Count = 532 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102 +CT = 8073F50326B592E5922BAD631EE5A3E3FDCA807EAD619F00611A02607C26B4D8 + +Count = 533 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F +AD = 00010203 +CT = 9F3F6002F89F5CA2B48DF5300D06E4E1BCF2E64DEE8B40A9B0AA7C4AD87603B3 + +Count = 534 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F +AD = 0001020304 +CT = 1D07AA1D70FD65735A2CD02305D94CE87022715909B026F38DEC90AE138FA180 + +Count = 535 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405 +CT = F5941EF434BCE8E38E63F5FD9C29D5B72AF07C6EE263E52FE799C494591E3198 + +Count = 536 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F +AD = 00010203040506 +CT = 3E59844D00E1B3B13E8E65DB34669B94A2B9484D07EAE8299950EBFCF77D914C + +Count = 537 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F +AD = 0001020304050607 +CT = 15D3A591835795973858CFFDF307BC17988464F432FA169CB3465FA9E75F3639 + +Count = 538 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708 +CT = 39A67BEA2BD6620D0D466558161273B7FABD89F76F62F2E919D87C8CE1470039 + +Count = 539 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F +AD = 00010203040506070809 +CT = 495F89651B3460E65F003BA766C5845FFDCE87040396207628F852A4E0D9E3C4 + +Count = 540 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A +CT = 84355B90FCA6CC96DB82A967919F4A90F0A26D5E34E478BECDFEA1A7211A98DA + +Count = 541 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B +CT = BE57E3035F3121F1071DA155CFEDEDE8E073795B221B5E7C50DBB0BE13D4D34B + +Count = 542 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C +CT = F2E67F043069273262C42D9522322AA4B2D116659872E5B1B3FE2C6209D6E9AD + +Count = 543 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C0D +CT = 26BD543E0ED9A9C7D06C11353B99691071FB698F92CF70E988EE4FE89C3E3772 + +Count = 544 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C0D0E +CT = ACC9DFB104957F6F5B61F44EE0C8699E8923FCC6C04E9C14062EC561D0D552D1 + +Count = 545 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C0D0E0F +CT = B5604DCF9517E3384C47714B3700BB7FA36059931CA7AE1A7629D328138ABC67 + +Count = 546 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C0D0E0F10 +CT = A3DCE6A36D4245193B10BD96D9683745A4287E79442816291B92B2BEF391305B + +Count = 547 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = A3716FAF5CE05AE0DB7A87E3F093413FAECD775190D3C752BA247338F5B58747 + +Count = 548 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = A8844FEE475A9B10ACE25F7D497196D9D5648ED203496CECA94515EAD10D1C37 + +Count = 549 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = ECBB638503C559753693A570DD6E971D7C65C1479C354A8C0300126A9B6CF80A + +Count = 550 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = 502CE5C9F6B61A277324D953B68B262E514BF34D9E8321D157820A57086AE864 + +Count = 551 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = A85B710074776A79954E9305A94EFA7E8AA4D039DD6EFBF9C5B19E6B30F0965B + +Count = 552 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 64A76E093101B4145E1F1C953633EB130294F4394AB6D8B9D34BE130CCDC9D5C + +Count = 553 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = 9F092EE04EA80A598D87EE1D359A5DB7DB0C69FE14FC29CBE149E421911F8A81 + +Count = 554 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 7CE77BF23E72AD3CB7F3C0D12D82CDC9CC9BB4AC903244AC7C982E8B06DBAF2F + +Count = 555 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = AE5C18C2DAC4C66356197960539B947062A6FE7EE3158633E9CF80ADD8D36E7A + +Count = 556 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 58670DED3A0718839B4B0C602EFFAC3E456256C20264845C7BDF170818B04920 + +Count = 557 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 8E3359569770A9A49DCF7ACAF4E2E950173F98DE373B5F02B96F4D7E37A225C7 + +Count = 558 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = CBA5AC3E706C38CCB7F9D3C15D40BE093AD6899DA2348699CA6541385448B8AF + +Count = 559 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 3A47EF6DC17B5364E30F0AC65F7B45F09A2CAD0EFBF59D5A7F632C37EFF6A4A6 + +Count = 560 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = 91995B95E221DDAC69161C9DD1729334BEC34F623D36C3B4F5664297F3AB8CA5 + +Count = 561 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 64BCEF8DAE0A00AB494C06752052D3D922B691D7A897DA13800F1B50751BD936 + +Count = 562 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10 +AD = +CT = 89A6BC509C2FA199469F92E4F44EC9AC0C5D8989EE6956F22274DDCF77D3EBB027 + +Count = 563 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 00 +CT = CBF1A8AF0311E992A7410E6238D36508C5101008FAE7658C775BA521C991AD6EE5 + +Count = 564 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 0001 +CT = E54B761E4A8F0D1D94D92F149BCCA21A729DC7CB0E344E2A8EC366B57E42D4BEEF + +Count = 565 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102 +CT = 8073F50326B592E5922BAD631EE5A3E34BBEA5F08E1C093031FA50CAA73B97E543 + +Count = 566 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 00010203 +CT = 9F3F6002F89F5CA2B48DF5300D06E4E1062C51D0FB40DDD4E0066EC1ACAB3685DB + +Count = 567 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 0001020304 +CT = 1D07AA1D70FD65735A2CD02305D94CE8DAEF127824152F02F59070A7B66A028C26 + +Count = 568 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405 +CT = F5941EF434BCE8E38E63F5FD9C29D5B7305FFAD4FB96449D45392C11A462957671 + +Count = 569 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 00010203040506 +CT = 3E59844D00E1B3B13E8E65DB34669B9430069FFB6341D9FF07A90576BA2C2452BB + +Count = 570 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 0001020304050607 +CT = 15D3A591835795973858CFFDF307BC17384B3F0B012E46029DDC4C4F50DAAC69C4 + +Count = 571 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708 +CT = 39A67BEA2BD6620D0D466558161273B7000712B1D507FD80ADBE37FB89545BBA3A + +Count = 572 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 00010203040506070809 +CT = 495F89651B3460E65F003BA766C5845FC03A7A61145A0C357E8FBB1A81AF8E6032 + +Count = 573 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A +CT = 84355B90FCA6CC96DB82A967919F4A90C362813649CB8781D9BA6466B93D12332D + +Count = 574 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B +CT = BE57E3035F3121F1071DA155CFEDEDE8D7B7ED0AB2E05851C2EDCD710A84312EC9 + +Count = 575 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C +CT = F2E67F043069273262C42D9522322AA4311CA4B094E656DDEA7E8A3799A156AC6C + +Count = 576 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C0D +CT = 26BD543E0ED9A9C7D06C11353B9969108B1B8470007BE203536AA650907CFE4AE5 + +Count = 577 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C0D0E +CT = ACC9DFB104957F6F5B61F44EE0C8699E2F0A6F843ECC18E939A25C4308B80E514D + +Count = 578 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C0D0E0F +CT = B5604DCF9517E3384C47714B3700BB7F3DB7199B8A93DB1669AE4DC48E990F9D00 + +Count = 579 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = A3DCE6A36D4245193B10BD96D9683745128B9F12B76A5F7C6EB018E050C7ECF98F + +Count = 580 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = A3716FAF5CE05AE0DB7A87E3F093413F05BA91719F7DE32B57E95BB8E3F58DA974 + +Count = 581 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = A8844FEE475A9B10ACE25F7D497196D907639463FFEB3E5119F7E2E4A625E50B26 + +Count = 582 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = ECBB638503C559753693A570DD6E971DCAFA470A815BD9A2388D364D1C8F22A944 + +Count = 583 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = 502CE5C9F6B61A277324D953B68B262E37A93CB0BD49746F8D79A96E3AE3001AF5 + +Count = 584 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = A85B710074776A79954E9305A94EFA7ED2B0063F0E6A8C1F0CD44400A9348A2330 + +Count = 585 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 64A76E093101B4145E1F1C953633EB133E1EDA2BA48BD4C06B8D039A61A90F20DC + +Count = 586 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = 9F092EE04EA80A598D87EE1D359A5DB71A912A0C20CE78A16F742355BA7D230F6B + +Count = 587 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 7CE77BF23E72AD3CB7F3C0D12D82CDC9E5CBC0D2E5106EC34E7773ECCA071E9755 + +Count = 588 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = AE5C18C2DAC4C66356197960539B94705DA2118988EAE6DCECD166978624864A76 + +Count = 589 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 58670DED3A0718839B4B0C602EFFAC3E882C363EB4D4A378D4F71B8E78E59CF7D2 + +Count = 590 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 8E3359569770A9A49DCF7ACAF4E2E950AEE77A110297CF3197E919C8CE7E80A3C8 + +Count = 591 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = CBA5AC3E706C38CCB7F9D3C15D40BE0939EF345D78008D932159F4A928AC2C78E9 + +Count = 592 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 3A47EF6DC17B5364E30F0AC65F7B45F03C29281DC969C99BC12207C4767B8D4CF0 + +Count = 593 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = 91995B95E221DDAC69161C9DD17293349C6A3CEA8901C57049C6885FD5F42E911C + +Count = 594 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 64BCEF8DAE0A00AB494C06752052D3D91AF23ED67B55039053EAC8212749DCBEBC + +Count = 595 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = +CT = 89A6BC509C2FA199469F92E4F44EC9AC0CA96C1E852DCB5DA3B09A3B24257F8AD8B2 + +Count = 596 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 00 +CT = CBF1A8AF0311E992A7410E6238D36508C58C19F7687623D7A4ED57004FC7C91AC7AD + +Count = 597 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 0001 +CT = E54B761E4A8F0D1D94D92F149BCCA21A72CB5971CB1E707838A51DAE972CE545F2C4 + +Count = 598 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102 +CT = 8073F50326B592E5922BAD631EE5A3E34BEC9C4A6F6A52785FA99FCD7DB045536F4F + +Count = 599 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 00010203 +CT = 9F3F6002F89F5CA2B48DF5300D06E4E1069F29C5EEFEA639FA291021E88592219F3A + +Count = 600 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 0001020304 +CT = 1D07AA1D70FD65735A2CD02305D94CE8DAAF0900CA19723DB701432D97BBB1F64FF2 + +Count = 601 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405 +CT = F5941EF434BCE8E38E63F5FD9C29D5B730D32CA2854B1ACDC4D756D85EBDFFE495BB + +Count = 602 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 00010203040506 +CT = 3E59844D00E1B3B13E8E65DB34669B94308EBCEE78B8574649CEE64EAFD0BE037A52 + +Count = 603 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 0001020304050607 +CT = 15D3A591835795973858CFFDF307BC1738453248B842D5660CF3E982F2579872C55C + +Count = 604 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708 +CT = 39A67BEA2BD6620D0D466558161273B700F8F6684F21B76C02C3EC3C032115FD7CD4 + +Count = 605 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 00010203040506070809 +CT = 495F89651B3460E65F003BA766C5845FC02E3AACEACF260DD04BF6BC718000E62B49 + +Count = 606 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A +CT = 84355B90FCA6CC96DB82A967919F4A90C3BABF3658F1B9092F4D2E918FB00F83CF43 + +Count = 607 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B +CT = BE57E3035F3121F1071DA155CFEDEDE8D77478DC2F13E625E2C3061EE7E53D90FE1C + +Count = 608 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C +CT = F2E67F043069273262C42D9522322AA4317E0E0735CDAE040D8EDF8DA40242133E08 + +Count = 609 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C0D +CT = 26BD543E0ED9A9C7D06C11353B9969108BE5C623AD54D816FB37B70896F20CBAE447 + +Count = 610 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C0D0E +CT = ACC9DFB104957F6F5B61F44EE0C8699E2FF5B255AA79A96DFB36418CED39648EDCD3 + +Count = 611 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C0D0E0F +CT = B5604DCF9517E3384C47714B3700BB7F3D40AF72CFAC10F564EAE4665F8C8C0CF542 + +Count = 612 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = A3DCE6A36D4245193B10BD96D968374512018681E227B257D853F251AAD55F8BB8DC + +Count = 613 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = A3716FAF5CE05AE0DB7A87E3F093413F05F9F252A83B6893DC1BE2A29ABC754BAC80 + +Count = 614 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = A8844FEE475A9B10ACE25F7D497196D9075736801AA4A93FFA9EAC5DEA6E6C380063 + +Count = 615 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = ECBB638503C559753693A570DD6E971DCAB960C8271EAAC167B0178BE0E8EF38F4FF + +Count = 616 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = 502CE5C9F6B61A277324D953B68B262E37ABC4058A4C6B4627C03277F735EBBA22A5 + +Count = 617 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = A85B710074776A79954E9305A94EFA7ED2E405E8595CBA2EECA2359D17E27C60BDE9 + +Count = 618 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 64A76E093101B4145E1F1C953633EB133E94835103A7BC7B1656398E52C2A442F854 + +Count = 619 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = 9F092EE04EA80A598D87EE1D359A5DB71A3562174CC69729E5C449A71F258D455F34 + +Count = 620 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 7CE77BF23E72AD3CB7F3C0D12D82CDC9E5BB7CF81E0720BD0101311A1EAB53857C40 + +Count = 621 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = AE5C18C2DAC4C66356197960539B94705DF19613841B1A5EDE571A901CF79F01D758 + +Count = 622 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 58670DED3A0718839B4B0C602EFFAC3E885C2D7D6EAC13656AE074354710D4494A12 + +Count = 623 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 8E3359569770A9A49DCF7ACAF4E2E950AE67E7C28843C2FC13DE85FAA6F0C9A487BC + +Count = 624 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = CBA5AC3E706C38CCB7F9D3C15D40BE09393D36D12DAAD91D815EC01ED4372C063E1C + +Count = 625 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 3A47EF6DC17B5364E30F0AC65F7B45F03C42CE48A44DB2CEFC82A6900D2779743B10 + +Count = 626 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = 91995B95E221DDAC69161C9DD17293349C57F5387D16F696A78A1CD9914D46B523CB + +Count = 627 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 64BCEF8DAE0A00AB494C06752052D3D91AF0BE6DCCFCE9B4B58F71CB01F024B988B5 + +Count = 628 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = +CT = 89A6BC509C2FA199469F92E4F44EC9AC0CA94C3305469D5624234B9042C38E684B8344 + +Count = 629 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 00 +CT = CBF1A8AF0311E992A7410E6238D36508C58C929E7A4950FD260F848FABAB411752D693 + +Count = 630 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 0001 +CT = E54B761E4A8F0D1D94D92F149BCCA21A72CB58A2FF1DFBEDFCF34448C989C778BF7BA5 + +Count = 631 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102 +CT = 8073F50326B592E5922BAD631EE5A3E34BEC397A5D170E75F27486B4B0D4437C7B8A20 + +Count = 632 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 00010203 +CT = 9F3F6002F89F5CA2B48DF5300D06E4E1069FC986D252A0B3F18596BB04D7BB2E377C00 + +Count = 633 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 0001020304 +CT = 1D07AA1D70FD65735A2CD02305D94CE8DAAF550C387DF76D7C197F263484E9014CBACC + +Count = 634 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405 +CT = F5941EF434BCE8E38E63F5FD9C29D5B730D3CA9724EFE7193160C734E94B7ED3B8C553 + +Count = 635 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 00010203040506 +CT = 3E59844D00E1B3B13E8E65DB34669B94308E93F434A2F4A1A62F6DB761C4CADF074522 + +Count = 636 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 0001020304050607 +CT = 15D3A591835795973858CFFDF307BC17384571B3C909F800AED34AE89FB31E74B43A68 + +Count = 637 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708 +CT = 39A67BEA2BD6620D0D466558161273B700F893A11318D587FA2CB15846A226DAC123C5 + +Count = 638 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 00010203040506070809 +CT = 495F89651B3460E65F003BA766C5845FC02E3B7922105D790D46EABEBE8BB38D94A7AD + +Count = 639 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A +CT = 84355B90FCA6CC96DB82A967919F4A90C3BA38F22E7A84D1E2A1E5E648EB611BE31EED + +Count = 640 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B +CT = BE57E3035F3121F1071DA155CFEDEDE8D7741AFFC9374EF422DA78A0947590CE40A3D5 + +Count = 641 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C +CT = F2E67F043069273262C42D9522322AA4317E00FDA6B508D1952934EC15D91392146360 + +Count = 642 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C0D +CT = 26BD543E0ED9A9C7D06C11353B9969108BE56AE5E5CC355885E194A39BC6DFBF9739C4 + +Count = 643 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C0D0E +CT = ACC9DFB104957F6F5B61F44EE0C8699E2FF5B679114C21744E5790FA890549261F3379 + +Count = 644 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C0D0E0F +CT = B5604DCF9517E3384C47714B3700BB7F3D40E6E7E741B394D3171FC0DC88FC51807108 + +Count = 645 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = A3DCE6A36D4245193B10BD96D968374512010A63819B6A687F2699C012AC9798C0FDC8 + +Count = 646 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = A3716FAF5CE05AE0DB7A87E3F093413F05F928296657C783DD436817A2D22D008C08B8 + +Count = 647 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = A8844FEE475A9B10ACE25F7D497196D90757C1A5C4856C52BAA1D1CD706F2D65EDA8EB + +Count = 648 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = ECBB638503C559753693A570DD6E971DCAB9274DFEE95CE6E72D2DD3FF8C3B6C0BAB93 + +Count = 649 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = 502CE5C9F6B61A277324D953B68B262E37AB7317AF9059647A3B91BC413739668B1094 + +Count = 650 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = A85B710074776A79954E9305A94EFA7ED2E4E78ED9C6F62DC648D810CE9DAE966D536A + +Count = 651 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 64A76E093101B4145E1F1C953633EB133E945B7E192DCC6FEDE9356643C679FF99EFAF + +Count = 652 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = 9F092EE04EA80A598D87EE1D359A5DB71A35BCE639E7DD5D3428E9FE4D7CF74A1D2D5E + +Count = 653 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 7CE77BF23E72AD3CB7F3C0D12D82CDC9E5BBB19B23785F2BF1BB77088041E96ED5BA82 + +Count = 654 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = AE5C18C2DAC4C66356197960539B94705DF1A7B571308D4536C518F4DB528398F6B9E0 + +Count = 655 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 58670DED3A0718839B4B0C602EFFAC3E885C11B1B6021A1E6E40C3F2955D438A23C49D + +Count = 656 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 8E3359569770A9A49DCF7ACAF4E2E950AE67B5A7B1FF4EFD1BF4ECD26F2478D7816C61 + +Count = 657 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = CBA5AC3E706C38CCB7F9D3C15D40BE09393D37B923B32620F169689B2F027A4992902E + +Count = 658 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 3A47EF6DC17B5364E30F0AC65F7B45F03C4293B22AF20BC83500E8B0B239B38532565F + +Count = 659 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = 91995B95E221DDAC69161C9DD17293349C57393E6420C35BDD2DE2B1A140043CFC0A33 + +Count = 660 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 64BCEF8DAE0A00AB494C06752052D3D91AF0A9698DFB67FCDDB695B8E8F367828047E9 + +Count = 661 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = +CT = 89A6BC509C2FA199469F92E4F44EC9AC0CA94C51DD70ACE370C0DA9D4D2EC4A2CE0A6A79 + +Count = 662 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 00 +CT = CBF1A8AF0311E992A7410E6238D36508C58C9227233403032D58AD0615B5D9A12EFDCCFE + +Count = 663 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 0001 +CT = E54B761E4A8F0D1D94D92F149BCCA21A72CB58D43D381B0504534E8EF1C2325753392029 + +Count = 664 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102 +CT = 8073F50326B592E5922BAD631EE5A3E34BEC3910084D0A403F98E8AE2D6072401EB77C61 + +Count = 665 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 00010203 +CT = 9F3F6002F89F5CA2B48DF5300D06E4E1069FC9120029E41EFE8035485903EC0D2809B4B6 + +Count = 666 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 0001020304 +CT = 1D07AA1D70FD65735A2CD02305D94CE8DAAF5563669ECAE799D39596E8F9A83CBBFB09CD + +Count = 667 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405 +CT = F5941EF434BCE8E38E63F5FD9C29D5B730D3CA98FF65DA03FC553D7C03AF46A5DF01ECB3 + +Count = 668 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 00010203040506 +CT = 3E59844D00E1B3B13E8E65DB34669B94308E934815B606FA2A3409341560AC76D0B86D18 + +Count = 669 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 0001020304050607 +CT = 15D3A591835795973858CFFDF307BC173845710A7BBF4FED1D084970CDC52233307DAD60 + +Count = 670 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708 +CT = 39A67BEA2BD6620D0D466558161273B700F8932506289E5B0E98E82C747728DBF623D9ED + +Count = 671 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 00010203040506070809 +CT = 495F89651B3460E65F003BA766C5845FC02E3B627A82DB0576FD5CD86D7140555DCE3A85 + +Count = 672 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A +CT = 84355B90FCA6CC96DB82A967919F4A90C3BA382DFFE9B226770F9203F5658CE04CD5B781 + +Count = 673 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B +CT = BE57E3035F3121F1071DA155CFEDEDE8D7741A582AEE51FC5811FF63FD9B4D278F5C1D7E + +Count = 674 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C +CT = F2E67F043069273262C42D9522322AA4317E00D1B2300B90CBEC9FAF879AB03D60B42398 + +Count = 675 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C0D +CT = 26BD543E0ED9A9C7D06C11353B9969108BE56AFF755E36F548586D24BF52784BFB889A22 + +Count = 676 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C0D0E +CT = ACC9DFB104957F6F5B61F44EE0C8699E2FF5B6F4128798CD689B779502FAC14909CB5D3B + +Count = 677 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C0D0E0F +CT = B5604DCF9517E3384C47714B3700BB7F3D40E66D03770772F60900CCDD45A7028B548ADD + +Count = 678 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = A3DCE6A36D4245193B10BD96D968374512010AD104888743AED8F9AC40D4CC34C8BB7A6A + +Count = 679 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = A3716FAF5CE05AE0DB7A87E3F093413F05F928410F89F44893EAB61B32D4E1C88FD847D7 + +Count = 680 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = A8844FEE475A9B10ACE25F7D497196D90757C1015A969EC47FEC5933E5FF98189A0B9CCA + +Count = 681 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = ECBB638503C559753693A570DD6E971DCAB927BEE30206BA97A14DF90E4065CB30F3B263 + +Count = 682 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = 502CE5C9F6B61A277324D953B68B262E37AB733A70F4A3356975D52EA57504415F66E373 + +Count = 683 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = A85B710074776A79954E9305A94EFA7ED2E4E796921E6560050A6439A8A38F97160FC20E + +Count = 684 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 64A76E093101B4145E1F1C953633EB133E945B1D5BAC3C730A80835A54B9C1F603BB6D90 + +Count = 685 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = 9F092EE04EA80A598D87EE1D359A5DB71A35BC35F41AF6B455642D4479E1399F81EC9820 + +Count = 686 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 7CE77BF23E72AD3CB7F3C0D12D82CDC9E5BBB1451353ACD814EDCC8D1D6215FEAE5C9BDA + +Count = 687 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = AE5C18C2DAC4C66356197960539B94705DF1A74085C8E7329A1C25DBC35617014449D505 + +Count = 688 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 58670DED3A0718839B4B0C602EFFAC3E885C1154D40BA3FF909BB5A4B685A0B4367AAF90 + +Count = 689 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 8E3359569770A9A49DCF7ACAF4E2E950AE67B599AB4713F7CD8CF36C9C6623C374988DF1 + +Count = 690 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = CBA5AC3E706C38CCB7F9D3C15D40BE09393D3773922532D80E626ED3C2648F35F6FB7907 + +Count = 691 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 3A47EF6DC17B5364E30F0AC65F7B45F03C429302190564D2466D890501DFE0B65D523BE4 + +Count = 692 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = 91995B95E221DDAC69161C9DD17293349C5739661318AD1CF59CC0A57F573120F7C6DE4E + +Count = 693 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 64BCEF8DAE0A00AB494C06752052D3D91AF0A9381174704A4D4154AF63DEF51AEB3E9F56 + +Count = 694 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = +CT = 89A6BC509C2FA199469F92E4F44EC9AC0CA94C5180267144074C1B13FC99BA5A50111CF892 + +Count = 695 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 00 +CT = CBF1A8AF0311E992A7410E6238D36508C58C92275521A1DA4F1603FD6B229652AFA34107E6 + +Count = 696 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 0001 +CT = E54B761E4A8F0D1D94D92F149BCCA21A72CB58D4D3317BBE35ED34F32856200D183D2E4C98 + +Count = 697 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102 +CT = 8073F50326B592E5922BAD631EE5A3E34BEC3910603DD20D122FEEA121DBE6DBC13A3AD33C + +Count = 698 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 00010203 +CT = 9F3F6002F89F5CA2B48DF5300D06E4E1069FC91269DF79D7E8B3BCB9DD8B23037677B4908C + +Count = 699 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 0001020304 +CT = 1D07AA1D70FD65735A2CD02305D94CE8DAAF5563A1878A6DFAAE80C564E644F2284F346AD4 + +Count = 700 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405 +CT = F5941EF434BCE8E38E63F5FD9C29D5B730D3CA98871F208C158B75157825FAE0D910A3A8DD + +Count = 701 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 00010203040506 +CT = 3E59844D00E1B3B13E8E65DB34669B94308E9348DB2C3EF3734DCF605A3C48A78E879F0799 + +Count = 702 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 0001020304050607 +CT = 15D3A591835795973858CFFDF307BC173845710A46A45458A4088B12D2BFE29C21A12B1E6C + +Count = 703 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708 +CT = 39A67BEA2BD6620D0D466558161273B700F893252B6D13AA3479DFFFB7C531735A6E06C69F + +Count = 704 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 00010203040506070809 +CT = 495F89651B3460E65F003BA766C5845FC02E3B629F77F5C6D127034CB0C8A06333153D1AA7 + +Count = 705 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A +CT = 84355B90FCA6CC96DB82A967919F4A90C3BA382DB3E0A7F7D65DCAD7CE6FE6273CCC1F9FD8 + +Count = 706 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B +CT = BE57E3035F3121F1071DA155CFEDEDE8D7741A583CB31838FB408FB2FDF857CEB5BC01A038 + +Count = 707 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C +CT = F2E67F043069273262C42D9522322AA4317E00D11376E8812094A35E613B24601A31804761 + +Count = 708 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C0D +CT = 26BD543E0ED9A9C7D06C11353B9969108BE56AFF6C570DB375D12898D5A1A2429C5A92B419 + +Count = 709 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C0D0E +CT = ACC9DFB104957F6F5B61F44EE0C8699E2FF5B6F4B2995A24B84EDB1FA34D6C5D5DCE318AA5 + +Count = 710 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C0D0E0F +CT = B5604DCF9517E3384C47714B3700BB7F3D40E66DF9F1FB757F121AB21F121427DF504AA945 + +Count = 711 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = A3DCE6A36D4245193B10BD96D968374512010AD1716B26D110D8BF097E82A07D794CA4B121 + +Count = 712 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = A3716FAF5CE05AE0DB7A87E3F093413F05F92841764EDA927DC0688F6B3A7EB08731F9FD53 + +Count = 713 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = A8844FEE475A9B10ACE25F7D497196D90757C10106851AA3A088B067F52721AC8FF4DD8A7C + +Count = 714 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = ECBB638503C559753693A570DD6E971DCAB927BE347E8FF604B847271DED5F53FFF6FBA4F5 + +Count = 715 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = 502CE5C9F6B61A277324D953B68B262E37AB733ACADFBCEDC6D246B5A1B0C3FC14D8C896C6 + +Count = 716 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = A85B710074776A79954E9305A94EFA7ED2E4E79674F8413D0F6C925906AF0F73BC1CCE9C50 + +Count = 717 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 64A76E093101B4145E1F1C953633EB133E945B1DE7D7CF8C25728170DF22D829F8C7BB3722 + +Count = 718 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = 9F092EE04EA80A598D87EE1D359A5DB71A35BC351DA819B5F27ED931FE71D3F61412ED83D1 + +Count = 719 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 7CE77BF23E72AD3CB7F3C0D12D82CDC9E5BBB145A36E23E620B1315999631E363D179F2CD0 + +Count = 720 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = AE5C18C2DAC4C66356197960539B94705DF1A740D289C4A97751256C55455CCA6B5586EA4B + +Count = 721 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 58670DED3A0718839B4B0C602EFFAC3E885C1154640D99F1807E6B2DF71671D03FDA25E4B6 + +Count = 722 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 8E3359569770A9A49DCF7ACAF4E2E950AE67B5998281CD30AAA8144F92E3612CA78084DCD3 + +Count = 723 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = CBA5AC3E706C38CCB7F9D3C15D40BE09393D377324AC589C08766DFA9C5A87DA4187D75B42 + +Count = 724 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 3A47EF6DC17B5364E30F0AC65F7B45F03C429302E29B409CC1E99C2AABDD51A909BCB32D97 + +Count = 725 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = 91995B95E221DDAC69161C9DD17293349C5739663B35207E8AAC5B6E50EB0E387363265109 + +Count = 726 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 64BCEF8DAE0A00AB494C06752052D3D91AF0A938A1BE1B8A92FD450CACB63AAB2ADE1E4FEA + +Count = 727 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = +CT = 89A6BC509C2FA199469F92E4F44EC9AC0CA94C5180BD3E3DFF61F263A30D387517374CB3DD93 + +Count = 728 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 00 +CT = CBF1A8AF0311E992A7410E6238D36508C58C922755D79AE05909854CC8F8C1F22E029538B1F4 + +Count = 729 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 0001 +CT = E54B761E4A8F0D1D94D92F149BCCA21A72CB58D4D3D6A450D26E4A7D78DF95C01B6FAD7DF846 + +Count = 730 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102 +CT = 8073F50326B592E5922BAD631EE5A3E34BEC391060F32CD9243A78A5B5A1BF0EC1A09A720275 + +Count = 731 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 00010203 +CT = 9F3F6002F89F5CA2B48DF5300D06E4E1069FC91269F2F5EE7152E6C4E4EF9750257C4A7DDCDC + +Count = 732 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 0001020304 +CT = 1D07AA1D70FD65735A2CD02305D94CE8DAAF5563A1C4538571A7C26F46AC1953EF02A90F6A6F + +Count = 733 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405 +CT = F5941EF434BCE8E38E63F5FD9C29D5B730D3CA98871D08F1D229715DC290826E01B4DF4AE197 + +Count = 734 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 00010203040506 +CT = 3E59844D00E1B3B13E8E65DB34669B94308E9348DB97DAD326554E8CBC59EE9F3D5FD2A32BEB + +Count = 735 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 0001020304050607 +CT = 15D3A591835795973858CFFDF307BC173845710A46C611FB5A02615E60240AF443B10F3E73B7 + +Count = 736 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708 +CT = 39A67BEA2BD6620D0D466558161273B700F893252B55F165E78019FE44DC0FF1DB875EF181B5 + +Count = 737 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 00010203040506070809 +CT = 495F89651B3460E65F003BA766C5845FC02E3B629FCF0616F2D90F359B391814051EB66ADBA0 + +Count = 738 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A +CT = 84355B90FCA6CC96DB82A967919F4A90C3BA382DB307D1B262640DC786B756A8CC7B18411205 + +Count = 739 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B +CT = BE57E3035F3121F1071DA155CFEDEDE8D7741A583C5C3EB455A7975E005F3BE7A7C02B48B591 + +Count = 740 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C +CT = F2E67F043069273262C42D9522322AA4317E00D11363E6998C08311CC08AB7249C7C890CF9F1 + +Count = 741 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C0D +CT = 26BD543E0ED9A9C7D06C11353B9969108BE56AFF6C3C4AA2E6F1FAB279D09D73612E7854DD87 + +Count = 742 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C0D0E +CT = ACC9DFB104957F6F5B61F44EE0C8699E2FF5B6F4B2B6DAC766581DCDE9B4D4D4011BFC660332 + +Count = 743 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C0D0E0F +CT = B5604DCF9517E3384C47714B3700BB7F3D40E66DF97FB367507C777A8835E3ABFB1ACBAA78BC + +Count = 744 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = A3DCE6A36D4245193B10BD96D968374512010AD1717DF135D098EF6B8940D32AAA04F1DE1A3B + +Count = 745 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = A3716FAF5CE05AE0DB7A87E3F093413F05F92841766687F021FF2CEA1B90E4D50F8073599EE2 + +Count = 746 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = A8844FEE475A9B10ACE25F7D497196D90757C10106EAAA45F17A7DB4AF372E295BE1772CF5D9 + +Count = 747 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = ECBB638503C559753693A570DD6E971DCAB927BE34A12258AC44CFA81E63DB2862F2F169080E + +Count = 748 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = 502CE5C9F6B61A277324D953B68B262E37AB733ACAFC5C6F6CC7E3503D5A8AD69DFEFAD44612 + +Count = 749 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = A85B710074776A79954E9305A94EFA7ED2E4E796744321F7F6A9FA4272CC244B793226FCF1C0 + +Count = 750 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 64A76E093101B4145E1F1C953633EB133E945B1DE75376F55928664F323BE8739D8F06B6114D + +Count = 751 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = 9F092EE04EA80A598D87EE1D359A5DB71A35BC351D69093A5F8EDA01CA1B359E85F2E1AE609D + +Count = 752 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 7CE77BF23E72AD3CB7F3C0D12D82CDC9E5BBB145A3EA0D521C7F69DD882A176D0F032E9E04FE + +Count = 753 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = AE5C18C2DAC4C66356197960539B94705DF1A740D249165DE58011409CD0323451558C8C6752 + +Count = 754 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 58670DED3A0718839B4B0C602EFFAC3E885C11546449D7B846A5FBBCC6149A7C8027C9D5EC27 + +Count = 755 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 8E3359569770A9A49DCF7ACAF4E2E950AE67B59982F1F17FF8030683AFDB306B58F6E7BC1845 + +Count = 756 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = CBA5AC3E706C38CCB7F9D3C15D40BE09393D3773241455FE43979DD2FBC4722E980E9454C67B + +Count = 757 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 3A47EF6DC17B5364E30F0AC65F7B45F03C429302E27573CACB37F9BD41A9653B74DDB0461B93 + +Count = 758 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = 91995B95E221DDAC69161C9DD17293349C5739663B0F1493876ED5AA4B1DDA7A8B40B6C0C3EE + +Count = 759 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 64BCEF8DAE0A00AB494C06752052D3D91AF0A938A11753B83F1BC754861E118AD98DBABE0FB2 + +Count = 760 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = +CT = 89A6BC509C2FA199469F92E4F44EC9AC0CA94C5180BDC17F74AE60A69B99B6FABBA303E5C93824 + +Count = 761 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 00 +CT = CBF1A8AF0311E992A7410E6238D36508C58C922755D721147D0AA943EF6A22F693D811AC6FF557 + +Count = 762 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 0001 +CT = E54B761E4A8F0D1D94D92F149BCCA21A72CB58D4D3D60D64C669D306FF4FE70FE08005F3BC7829 + +Count = 763 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102 +CT = 8073F50326B592E5922BAD631EE5A3E34BEC391060F3DD25E7C0EC709D6121D7CDCB52002CBF95 + +Count = 764 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 00010203 +CT = 9F3F6002F89F5CA2B48DF5300D06E4E1069FC91269F26A54F0FD17CD8E37F7BB4777374E70DE74 + +Count = 765 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 0001020304 +CT = 1D07AA1D70FD65735A2CD02305D94CE8DAAF5563A1C47EF7885539CC83FC29531A5362A61BA485 + +Count = 766 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405 +CT = F5941EF434BCE8E38E63F5FD9C29D5B730D3CA98871DD2149B4C08F5ED9A7540FED36E7E3CF4BA + +Count = 767 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 00010203040506 +CT = 3E59844D00E1B3B13E8E65DB34669B94308E9348DB97F1938DDE26B61EC79B04CC13FF4F15F7AC + +Count = 768 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 0001020304050607 +CT = 15D3A591835795973858CFFDF307BC173845710A46C6161C982AED835309ACD1AD1062B68011F6 + +Count = 769 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708 +CT = 39A67BEA2BD6620D0D466558161273B700F893252B55AC67185E8747758A6DBA1BFDE9F2757F65 + +Count = 770 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 00010203040506070809 +CT = 495F89651B3460E65F003BA766C5845FC02E3B629FCF8670444A1CD802EC8B43C4BF47141C1445 + +Count = 771 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A +CT = 84355B90FCA6CC96DB82A967919F4A90C3BA382DB3074C4C886A05D7EAC99C26179DD7E3C0EB0A + +Count = 772 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B +CT = BE57E3035F3121F1071DA155CFEDEDE8D7741A583C5C940A11AA483317A90BF09F8018E69FD7EC + +Count = 773 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C +CT = F2E67F043069273262C42D9522322AA4317E00D113636EC4A724E6C1476A10825480D6D43A3996 + +Count = 774 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C0D +CT = 26BD543E0ED9A9C7D06C11353B9969108BE56AFF6C3C5CF9F4A408C1DADEB9D83FAC0196B79984 + +Count = 775 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C0D0E +CT = ACC9DFB104957F6F5B61F44EE0C8699E2FF5B6F4B2B6CB6FCC68E43D3D58B3905461EC4D595468 + +Count = 776 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C0D0E0F +CT = B5604DCF9517E3384C47714B3700BB7F3D40E66DF97FE1B802F1B2774DCD463CF7E6CF81AED6B2 + +Count = 777 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = A3DCE6A36D4245193B10BD96D968374512010AD1717DBA76036198B43A2968A931348C18273009 + +Count = 778 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = A3716FAF5CE05AE0DB7A87E3F093413F05F928417666A53DEB31612AB4E6D8F7DA118671F3C0A7 + +Count = 779 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = A8844FEE475A9B10ACE25F7D497196D90757C10106EA2DB73A6E3B93D91282E2561D7A8FBDDADA + +Count = 780 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = ECBB638503C559753693A570DD6E971DCAB927BE34A1458A61B1B8E7FA362F3E64A8AE0C45E152 + +Count = 781 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = 502CE5C9F6B61A277324D953B68B262E37AB733ACAFC59D5E525B69FAA9AE7EAF90FBDE4515330 + +Count = 782 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = A85B710074776A79954E9305A94EFA7ED2E4E7967443E82E93EB58278E5DC0E38CFE888A8C10E7 + +Count = 783 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 64A76E093101B4145E1F1C953633EB133E945B1DE753235993EDD696E624D1E023A486FA703DA9 + +Count = 784 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = 9F092EE04EA80A598D87EE1D359A5DB71A35BC351D69F705DCD2FC55FA904EA0B9FE1C63591DDC + +Count = 785 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 7CE77BF23E72AD3CB7F3C0D12D82CDC9E5BBB145A3EABB8FE0D8599B17FE0B823525C03FD1E97C + +Count = 786 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = AE5C18C2DAC4C66356197960539B94705DF1A740D249CB3B27C6FD73E907204D5E24B150C10BAD + +Count = 787 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 58670DED3A0718839B4B0C602EFFAC3E885C11546449B89D1B19BF30FDCC7F3602ABEC5625586A + +Count = 788 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 8E3359569770A9A49DCF7ACAF4E2E950AE67B59982F11B0C6E9E82CAD8CF5E57B05CD7B86A564F + +Count = 789 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = CBA5AC3E706C38CCB7F9D3C15D40BE09393D377324144981571DC2CFACF2BE10F5227D31A56ADD + +Count = 790 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 3A47EF6DC17B5364E30F0AC65F7B45F03C429302E275973F3D6242FE660B1C3772F2F66B1F33EF + +Count = 791 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = 91995B95E221DDAC69161C9DD17293349C5739663B0F19E11C112F8BE3ED34AE813908E16E1413 + +Count = 792 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 64BCEF8DAE0A00AB494C06752052D3D91AF0A938A117EC4CE357976CE74C45F8E3B69ECBA445F9 + +Count = 793 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = +CT = 89A6BC509C2FA199469F92E4F44EC9AC0CA94C5180BDC12B6AB4BB0EF4B75D0438BFF307A68EF3BD + +Count = 794 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 00 +CT = CBF1A8AF0311E992A7410E6238D36508C58C922755D7212BCB014ED542AAFED9656083B1500DF5FA + +Count = 795 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 0001 +CT = E54B761E4A8F0D1D94D92F149BCCA21A72CB58D4D3D60D434E2F465097A408A9F33A090DC32570B5 + +Count = 796 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102 +CT = 8073F50326B592E5922BAD631EE5A3E34BEC391060F3DD81768A6D94E4FD7448F59F17F548F00A17 + +Count = 797 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 00010203 +CT = 9F3F6002F89F5CA2B48DF5300D06E4E1069FC91269F26A9DA7911AE5559090220B572831625D0E30 + +Count = 798 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 0001020304 +CT = 1D07AA1D70FD65735A2CD02305D94CE8DAAF5563A1C47E75715EDA60D68A57CA64EFD8B19D30F2D1 + +Count = 799 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405 +CT = F5941EF434BCE8E38E63F5FD9C29D5B730D3CA98871DD2DE57C6EFE50421483CE3F9B9C4C3943DAD + +Count = 800 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 00010203040506 +CT = 3E59844D00E1B3B13E8E65DB34669B94308E9348DB97F151D1DF8418C6FEBED03860466AC55E356B + +Count = 801 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 0001020304050607 +CT = 15D3A591835795973858CFFDF307BC173845710A46C616C0651143F92B9F87E05168F807D297547D + +Count = 802 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708 +CT = 39A67BEA2BD6620D0D466558161273B700F893252B55ACC1E1816F078C804FBACD12DB7573E37460 + +Count = 803 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 00010203040506070809 +CT = 495F89651B3460E65F003BA766C5845FC02E3B629FCF868070C2476104D701F8A6F9B74DD2B6A988 + +Count = 804 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A +CT = 84355B90FCA6CC96DB82A967919F4A90C3BA382DB3074CE4373634E66D83CB01128776D26576909F + +Count = 805 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B +CT = BE57E3035F3121F1071DA155CFEDEDE8D7741A583C5C9498CD21E4DAC2D2F50CB05AD79A30C56C3F + +Count = 806 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C +CT = F2E67F043069273262C42D9522322AA4317E00D113636EDB45BEAE7429CFDCD22D7B3BBE84FFA30A + +Count = 807 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C0D +CT = 26BD543E0ED9A9C7D06C11353B9969108BE56AFF6C3C5C1ED5F56A0F853617CD054ED50A9B88D786 + +Count = 808 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C0D0E +CT = ACC9DFB104957F6F5B61F44EE0C8699E2FF5B6F4B2B6CB445C3B9759323C946AAC9B42AE1233513C + +Count = 809 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C0D0E0F +CT = B5604DCF9517E3384C47714B3700BB7F3D40E66DF97FE1D93FA46BEFC851EC1F532781AF79F92F8A + +Count = 810 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = A3DCE6A36D4245193B10BD96D968374512010AD1717DBA7B1E10EEDBD39395D9D8BC06C3EF9632A2 + +Count = 811 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = A3716FAF5CE05AE0DB7A87E3F093413F05F928417666A5CF901D920EE1E7143797ED3DA5300105E0 + +Count = 812 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = A8844FEE475A9B10ACE25F7D497196D90757C10106EA2DBA1350CF5B4D6EE2805042EFFD711C154B + +Count = 813 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = ECBB638503C559753693A570DD6E971DCAB927BE34A1452530E621017B5C76B66632497E0ECB533D + +Count = 814 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = 502CE5C9F6B61A277324D953B68B262E37AB733ACAFC5961CEE3D9A8F3DA8E97D073A6885AAEA595 + +Count = 815 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = A85B710074776A79954E9305A94EFA7ED2E4E7967443E8FB2697E258057AF950930F493BF8E39A7B + +Count = 816 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 64A76E093101B4145E1F1C953633EB133E945B1DE7532397206FD7449E71F1E957EC9C295D8E8C84 + +Count = 817 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = 9F092EE04EA80A598D87EE1D359A5DB71A35BC351D69F73F98E9D400A8836BC3DDF0D84F8256D732 + +Count = 818 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 7CE77BF23E72AD3CB7F3C0D12D82CDC9E5BBB145A3EABB67C5780CF94A855A660A70B7B6C385DA9B + +Count = 819 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = AE5C18C2DAC4C66356197960539B94705DF1A740D249CBD213FF2B98E2C29B66EFA740A31487AD05 + +Count = 820 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 58670DED3A0718839B4B0C602EFFAC3E885C11546449B80BA72F3E1CA5FC0716B00D4494B7C1A14C + +Count = 821 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 8E3359569770A9A49DCF7ACAF4E2E950AE67B59982F11BD96C33D099E6EED52E6E39996D14D84A19 + +Count = 822 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = CBA5AC3E706C38CCB7F9D3C15D40BE09393D3773241449D4522A04E1DC228A362D786C755B71D0DC + +Count = 823 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 3A47EF6DC17B5364E30F0AC65F7B45F03C429302E27597B1ABA626E297E17BE8C2AD78C5527EEB96 + +Count = 824 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = 91995B95E221DDAC69161C9DD17293349C5739663B0F1931FA235FB96352B97D3DA3C2273DD9672A + +Count = 825 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 64BCEF8DAE0A00AB494C06752052D3D91AF0A938A117EC0234A91024DE027600FD2287DDFBDCA30A + +Count = 826 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = +CT = 89A6BC509C2FA199469F92E4F44EC9AC0CA94C5180BDC12B651DF05CE4CD11E1E84D74E62D437D9E78 + +Count = 827 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 00 +CT = CBF1A8AF0311E992A7410E6238D36508C58C922755D7212BFDFDA95B65C96072C947362861968571A3 + +Count = 828 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 0001 +CT = E54B761E4A8F0D1D94D92F149BCCA21A72CB58D4D3D60D43B49BBEBA3BC0645C0F30DAD857FA313335 + +Count = 829 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102 +CT = 8073F50326B592E5922BAD631EE5A3E34BEC391060F3DD81FE16FBB42FF9DEF1AAD06ED1F34E70742D + +Count = 830 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 00010203 +CT = 9F3F6002F89F5CA2B48DF5300D06E4E1069FC91269F26A9DD81C877A23E5398B762812E119B530A6BF + +Count = 831 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 0001020304 +CT = 1D07AA1D70FD65735A2CD02305D94CE8DAAF5563A1C47E75DD8742110FE5788D49B021554244D3E1B7 + +Count = 832 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405 +CT = F5941EF434BCE8E38E63F5FD9C29D5B730D3CA98871DD2DEA51E33E2A575D5FC0A4C3F2BB5C459C3DB + +Count = 833 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 00010203040506 +CT = 3E59844D00E1B3B13E8E65DB34669B94308E9348DB97F1510CA10402C866AB4B557354B5A57D381DC4 + +Count = 834 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 0001020304050607 +CT = 15D3A591835795973858CFFDF307BC173845710A46C616C03588D65179E46E59B3C149E40785FB7829 + +Count = 835 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708 +CT = 39A67BEA2BD6620D0D466558161273B700F893252B55ACC19809F2F5EB41405645031CA93AF44117A7 + +Count = 836 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 00010203040506070809 +CT = 495F89651B3460E65F003BA766C5845FC02E3B629FCF8680D38CCD4F60CAF41BDD96BDD3FBB97828AE + +Count = 837 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A +CT = 84355B90FCA6CC96DB82A967919F4A90C3BA382DB3074CE42C9230A3772B545611B1F06431969DB4B1 + +Count = 838 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B +CT = BE57E3035F3121F1071DA155CFEDEDE8D7741A583C5C949815A4956560B590BE6CF0B37305673172C0 + +Count = 839 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C +CT = F2E67F043069273262C42D9522322AA4317E00D113636EDBB6AA6D82A88A15039C42C42CF1834A22F5 + +Count = 840 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C0D +CT = 26BD543E0ED9A9C7D06C11353B9969108BE56AFF6C3C5C1EF5E570FEA7D151B13E26A1F100E6DE0341 + +Count = 841 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C0D0E +CT = ACC9DFB104957F6F5B61F44EE0C8699E2FF5B6F4B2B6CB443B682C570AAE8CB3643E6A44D3F70E5609 + +Count = 842 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C0D0E0F +CT = B5604DCF9517E3384C47714B3700BB7F3D40E66DF97FE1D99A5E80B46589A54C92516F2705766C0D67 + +Count = 843 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = A3DCE6A36D4245193B10BD96D968374512010AD1717DBA7BB0BEEDA48DDE343E597BB926043E19A18E + +Count = 844 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = A3716FAF5CE05AE0DB7A87E3F093413F05F928417666A5CFE89F8DF69FE6F3EB77AE2E371B2F478F2D + +Count = 845 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = A8844FEE475A9B10ACE25F7D497196D90757C10106EA2DBADC61F9A65005BE569F663A4B322FCF3CBC + +Count = 846 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = ECBB638503C559753693A570DD6E971DCAB927BE34A1452587D344915AA84928871C2F2632FE9B9681 + +Count = 847 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = 502CE5C9F6B61A277324D953B68B262E37AB733ACAFC5961E77AED7524D80E87F522C5732A5F1AC924 + +Count = 848 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = A85B710074776A79954E9305A94EFA7ED2E4E7967443E8FB8CA77786C93D877CB546603BB5883051BF + +Count = 849 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 64A76E093101B4145E1F1C953633EB133E945B1DE753239743E58124AD68686F88F5823BD6306D261A + +Count = 850 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = 9F092EE04EA80A598D87EE1D359A5DB71A35BC351D69F73F6B6EDA52534FCE987897FE835B430EA404 + +Count = 851 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 7CE77BF23E72AD3CB7F3C0D12D82CDC9E5BBB145A3EABB67DE576FD3B3D7297D7C2AF893A3CEFF52CC + +Count = 852 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = AE5C18C2DAC4C66356197960539B94705DF1A740D249CBD28C06674D82D3F835D45A3DD26D4652225A + +Count = 853 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 58670DED3A0718839B4B0C602EFFAC3E885C11546449B80B256E97B4D398FF0FE6E22602FAC35621D2 + +Count = 854 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 8E3359569770A9A49DCF7ACAF4E2E950AE67B59982F11BD942C5429A44650829F19C410F259270AEE7 + +Count = 855 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = CBA5AC3E706C38CCB7F9D3C15D40BE09393D3773241449D435166D995323E3CDA731AD551797BA2800 + +Count = 856 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 3A47EF6DC17B5364E30F0AC65F7B45F03C429302E27597B1CAD58B5560A6C494141D8C54AF0EAE19FA + +Count = 857 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = 91995B95E221DDAC69161C9DD17293349C5739663B0F193111E9156399D2DA47C23457847A99031A90 + +Count = 858 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 64BCEF8DAE0A00AB494C06752052D3D91AF0A938A117EC02C6AA1EE25D30ADF13BFCCD64681E1B5967 + +Count = 859 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = +CT = 89A6BC509C2FA199469F92E4F44EC9AC0CA94C5180BDC12B65072F8F123D31B58D756E3C71B90268B46D + +Count = 860 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 00 +CT = CBF1A8AF0311E992A7410E6238D36508C58C922755D7212BFDA0244BB016D874B0F97F0E13563EA7499D + +Count = 861 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 0001 +CT = E54B761E4A8F0D1D94D92F149BCCA21A72CB58D4D3D60D43B4857B37AE2F569A9A159796C643ACEEB18C + +Count = 862 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102 +CT = 8073F50326B592E5922BAD631EE5A3E34BEC391060F3DD81FEF369E10F12014B3C3787B35F154668A653 + +Count = 863 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 00010203 +CT = 9F3F6002F89F5CA2B48DF5300D06E4E1069FC91269F26A9DD88D20BD040DF5D460DCD2AF068CA306E5D8 + +Count = 864 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 0001020304 +CT = 1D07AA1D70FD65735A2CD02305D94CE8DAAF5563A1C47E75DD169D273C3A02B19BFD97F1073CF9296FF9 + +Count = 865 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405 +CT = F5941EF434BCE8E38E63F5FD9C29D5B730D3CA98871DD2DEA520D3153B8413998AD3AA8D74B521E6917A + +Count = 866 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 00010203040506 +CT = 3E59844D00E1B3B13E8E65DB34669B94308E9348DB97F1510CABAF1D34008C4C2C5B27276A65CA3F7E0F + +Count = 867 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 0001020304050607 +CT = 15D3A591835795973858CFFDF307BC173845710A46C616C035AF2A53629C1420E7B37C34D52E96E92E0C + +Count = 868 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708 +CT = 39A67BEA2BD6620D0D466558161273B700F893252B55ACC198EA39DCB4ABF81A5F8A67200AE1DC296F1B + +Count = 869 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 00010203040506070809 +CT = 495F89651B3460E65F003BA766C5845FC02E3B629FCF8680D3CBD752612AA8F335FFD9BBD2EA65DCD386 + +Count = 870 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A +CT = 84355B90FCA6CC96DB82A967919F4A90C3BA382DB3074CE42C4720018DFC224267F682A67679EAC364DF + +Count = 871 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B +CT = BE57E3035F3121F1071DA155CFEDEDE8D7741A583C5C9498159B35FFA86644E4C1C0DAC4C9118E816276 + +Count = 872 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C +CT = F2E67F043069273262C42D9522322AA4317E00D113636EDBB6B72D168F8AABDE2DC1EB26525A06913C41 + +Count = 873 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C0D +CT = 26BD543E0ED9A9C7D06C11353B9969108BE56AFF6C3C5C1EF5381907A959487594749E0F05E8034A4915 + +Count = 874 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C0D0E +CT = ACC9DFB104957F6F5B61F44EE0C8699E2FF5B6F4B2B6CB443B0303FBBF3BA21D9926AEE9497478CF4677 + +Count = 875 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C0D0E0F +CT = B5604DCF9517E3384C47714B3700BB7F3D40E66DF97FE1D99AFE812FAF4389C0859C6128EAC989F20798 + +Count = 876 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = A3DCE6A36D4245193B10BD96D968374512010AD1717DBA7BB034A92D18A6806E891FEC39457703781B68 + +Count = 877 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = A3716FAF5CE05AE0DB7A87E3F093413F05F928417666A5CFE868388136AF867C63D17471FD74E4CD8BD5 + +Count = 878 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = A8844FEE475A9B10ACE25F7D497196D90757C10106EA2DBADCE83B6E82AF1D7A618566389C23CC52A07C + +Count = 879 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = ECBB638503C559753693A570DD6E971DCAB927BE34A1452587E91923061ADE7115F0D590DD8FAAFAA93D + +Count = 880 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = 502CE5C9F6B61A277324D953B68B262E37AB733ACAFC5961E771F6656E2530794BECE38B140A1A29471A + +Count = 881 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = A85B710074776A79954E9305A94EFA7ED2E4E7967443E8FB8C1BA5DF9B00C5924B521B80AB5121540272 + +Count = 882 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 64A76E093101B4145E1F1C953633EB133E945B1DE753239743A66C5BB70929DA94A65FBF4BE8C115BE13 + +Count = 883 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = 9F092EE04EA80A598D87EE1D359A5DB71A35BC351D69F73F6B85C0C4BEAEA2DE22D5AAF284B5D81DDBEA + +Count = 884 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 7CE77BF23E72AD3CB7F3C0D12D82CDC9E5BBB145A3EABB67DEEEB49266EA300E014FF8264859B80323FC + +Count = 885 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = AE5C18C2DAC4C66356197960539B94705DF1A740D249CBD28C2486881FF48A722A7FABC4DA5DC8E4D71C + +Count = 886 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 58670DED3A0718839B4B0C602EFFAC3E885C11546449B80B2532F77CABF4DC9EA535CCF3C62AF71A0591 + +Count = 887 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 8E3359569770A9A49DCF7ACAF4E2E950AE67B59982F11BD942306CA0B27D3A4557DD3ED221A5F018A1C2 + +Count = 888 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = CBA5AC3E706C38CCB7F9D3C15D40BE09393D3773241449D435D4DA5F3A0925F34CD2C0F4048F88F2C236 + +Count = 889 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 3A47EF6DC17B5364E30F0AC65F7B45F03C429302E27597B1CAC160CBB74E98426ECCE4DD0FD2F9AA342D + +Count = 890 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = 91995B95E221DDAC69161C9DD17293349C5739663B0F193111A5771528ABB14A7F4723D426ACD0630BCF + +Count = 891 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 64BCEF8DAE0A00AB494C06752052D3D91AF0A938A117EC02C6DBE3B9107D989B27DF9F978F2C3844C8A4 + +Count = 892 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = +CT = 89A6BC509C2FA199469F92E4F44EC9AC0CA94C5180BDC12B6507F297E028E30E4F53B780371F1CF7F27045 + +Count = 893 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 00 +CT = CBF1A8AF0311E992A7410E6238D36508C58C922755D7212BFDA05B39CAF8397940D5E3E28E62DB217A80F5 + +Count = 894 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 0001 +CT = E54B761E4A8F0D1D94D92F149BCCA21A72CB58D4D3D60D43B485D0ACBCF911DB2B0A54977DB2F46F87DC58 + +Count = 895 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102 +CT = 8073F50326B592E5922BAD631EE5A3E34BEC391060F3DD81FEF3F7E3D33C80DE3FE4B3A5EE00725E0F2497 + +Count = 896 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 00010203 +CT = 9F3F6002F89F5CA2B48DF5300D06E4E1069FC91269F26A9DD88D4C90B2164BA63D11EE2D48EA78C4DB7AB7 + +Count = 897 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 0001020304 +CT = 1D07AA1D70FD65735A2CD02305D94CE8DAAF5563A1C47E75DD1602B9D7271A759FB4789CEABE7E5C7CC96B + +Count = 898 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405 +CT = F5941EF434BCE8E38E63F5FD9C29D5B730D3CA98871DD2DEA520B5F198338601A9ED8C2B5B65890482FAC4 + +Count = 899 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 00010203040506 +CT = 3E59844D00E1B3B13E8E65DB34669B94308E9348DB97F1510CAB9049CBB5C9FE2F398A60CA9CD7E861F3C3 + +Count = 900 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 0001020304050607 +CT = 15D3A591835795973858CFFDF307BC173845710A46C616C035AF8477AE1CAD2A1A54322DFA87D3903B8C43 + +Count = 901 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708 +CT = 39A67BEA2BD6620D0D466558161273B700F893252B55ACC198EA33256FD2CB32C417950BE78742DA311A7E + +Count = 902 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 00010203040506070809 +CT = 495F89651B3460E65F003BA766C5845FC02E3B629FCF8680D3CBBBD9715175DB6A739D1BFBA2ED53CE70E0 + +Count = 903 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A +CT = 84355B90FCA6CC96DB82A967919F4A90C3BA382DB3074CE42C47C86EB507BBF3A44851E5A88008B8EB5D68 + +Count = 904 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B +CT = BE57E3035F3121F1071DA155CFEDEDE8D7741A583C5C9498159B4FDB1B3538092A7987E89A9C4A60E3D910 + +Count = 905 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C +CT = F2E67F043069273262C42D9522322AA4317E00D113636EDBB6B780692B93811714505A742BD280FCAA5C8A + +Count = 906 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C0D +CT = 26BD543E0ED9A9C7D06C11353B9969108BE56AFF6C3C5C1EF53852B56067FFA6828FFA385A1E9762D1801D + +Count = 907 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C0D0E +CT = ACC9DFB104957F6F5B61F44EE0C8699E2FF5B6F4B2B6CB443B03033E050C4B1D715ADD636CB4EE4B2A9306 + +Count = 908 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C0D0E0F +CT = B5604DCF9517E3384C47714B3700BB7F3D40E66DF97FE1D99AFED09B7E4DF269B05ED77DD65CF2CFC80BF9 + +Count = 909 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C0D0E0F10 +CT = A3DCE6A36D4245193B10BD96D968374512010AD1717DBA7BB034CB21DD5010F214AAE6AF65E045537223A4 + +Count = 910 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = A3716FAF5CE05AE0DB7A87E3F093413F05F928417666A5CFE8688CF519B300DDF2FAC71294FC20EA75B57D + +Count = 911 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = A8844FEE475A9B10ACE25F7D497196D90757C10106EA2DBADCE86648E1D1327D9900A39F2B4DA3F6E3AF0E + +Count = 912 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = ECBB638503C559753693A570DD6E971DCAB927BE34A1452587E96BAC194E0A790F5A9C3CACAF2B38031A50 + +Count = 913 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = 502CE5C9F6B61A277324D953B68B262E37AB733ACAFC5961E7710294411EA50A4FF6F3992281165BA89E64 + +Count = 914 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = A85B710074776A79954E9305A94EFA7ED2E4E7967443E8FB8C1B6E6E6B1BEEE840788DAF2D97C72B39AF36 + +Count = 915 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 64A76E093101B4145E1F1C953633EB133E945B1DE753239743A6263F7C9F5E307ECC7898AC5463F618E665 + +Count = 916 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = 9F092EE04EA80A598D87EE1D359A5DB71A35BC351D69F73F6B8587F9097FA165FA512B77C119B9F44F59E6 + +Count = 917 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 7CE77BF23E72AD3CB7F3C0D12D82CDC9E5BBB145A3EABB67DEEE937FD2E8613C6ED9B523ADFAA7F0D23B7F + +Count = 918 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = AE5C18C2DAC4C66356197960539B94705DF1A740D249CBD28C24D4C7AFDFF7BB2B665AA48A3806B63B553E + +Count = 919 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 58670DED3A0718839B4B0C602EFFAC3E885C11546449B80B2532C0175220696168D5E5BD2B534C68DC1899 + +Count = 920 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 8E3359569770A9A49DCF7ACAF4E2E950AE67B59982F11BD94230A55D194059AC56E57FB2BF4D8501E0B8D9 + +Count = 921 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = CBA5AC3E706C38CCB7F9D3C15D40BE09393D3773241449D435D41B479850E1E948A11D7D3FE2A12BCD58C2 + +Count = 922 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 3A47EF6DC17B5364E30F0AC65F7B45F03C429302E27597B1CAC14A539E9C829B50AE11DA406D0E1AE3960E + +Count = 923 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = 91995B95E221DDAC69161C9DD17293349C5739663B0F193111A58CC80EE5FCAC888384B4398E97A7E53907 + +Count = 924 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 64BCEF8DAE0A00AB494C06752052D3D91AF0A938A117EC02C6DB1B2C539BE31DBEF61606526BC683520DE6 + +Count = 925 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = +CT = 89A6BC509C2FA199469F92E4F44EC9AC0CA94C5180BDC12B6507F2C02AD32D7923E16206D902FDB8BFC314F0 + +Count = 926 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 00 +CT = CBF1A8AF0311E992A7410E6238D36508C58C922755D7212BFDA05BB7DE54D47585E13D638FF425DB5CA6CC67 + +Count = 927 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 0001 +CT = E54B761E4A8F0D1D94D92F149BCCA21A72CB58D4D3D60D43B485D0EAD56FFA973D1537D86647F3476C431343 + +Count = 928 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102 +CT = 8073F50326B592E5922BAD631EE5A3E34BEC391060F3DD81FEF3F7A495E8DA53D948714266389906A4E103A2 + +Count = 929 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 00010203 +CT = 9F3F6002F89F5CA2B48DF5300D06E4E1069FC91269F26A9DD88D4CA249E448998021E672F192BC47FC4F5EED + +Count = 930 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 0001020304 +CT = 1D07AA1D70FD65735A2CD02305D94CE8DAAF5563A1C47E75DD1602335D2F55B0EAA00B9575D1118327BAE174 + +Count = 931 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405 +CT = F5941EF434BCE8E38E63F5FD9C29D5B730D3CA98871DD2DEA520B5C2B979450E85F45323C4B9917CDAE36F05 + +Count = 932 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 00010203040506 +CT = 3E59844D00E1B3B13E8E65DB34669B94308E9348DB97F1510CAB90A06151F8DCA29A71867F7AD9F854D743F4 + +Count = 933 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 0001020304050607 +CT = 15D3A591835795973858CFFDF307BC173845710A46C616C035AF849E70A4A61296B9454E2B956BA7D1B65A7A + +Count = 934 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708 +CT = 39A67BEA2BD6620D0D466558161273B700F893252B55ACC198EA33B2FCC43406ED2E2A5FF47A732499322C3D + +Count = 935 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 00010203040506070809 +CT = 495F89651B3460E65F003BA766C5845FC02E3B629FCF8680D3CBBB0007DB5D1231DC641BC68630424FAF7EE4 + +Count = 936 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A +CT = 84355B90FCA6CC96DB82A967919F4A90C3BA382DB3074CE42C47C87E64B29D4BAA816EADF4E21253B01F763E + +Count = 937 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B +CT = BE57E3035F3121F1071DA155CFEDEDE8D7741A583C5C9498159B4F1DA0A49E44100DAD40B4D991651D50C540 + +Count = 938 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C +CT = F2E67F043069273262C42D9522322AA4317E00D113636EDBB6B780FF023FB6729CDBA222D10D2B9CB998D639 + +Count = 939 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C0D +CT = 26BD543E0ED9A9C7D06C11353B9969108BE56AFF6C3C5C1EF538527DE475C93397F29CC37D4954E3471E2E0F + +Count = 940 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C0D0E +CT = ACC9DFB104957F6F5B61F44EE0C8699E2FF5B6F4B2B6CB443B0303B20C0A7386CD3D428575E5D7108D6159A3 + +Count = 941 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C0D0E0F +CT = B5604DCF9517E3384C47714B3700BB7F3D40E66DF97FE1D99AFED0932DBFF91B8D08FE58E665482EA20F726C + +Count = 942 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C0D0E0F10 +CT = A3DCE6A36D4245193B10BD96D968374512010AD1717DBA7BB034CBC5D5A2448F7E80F149B29860561FFE1C64 + +Count = 943 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = A3716FAF5CE05AE0DB7A87E3F093413F05F928417666A5CFE8688CD948391F3CFE2948EDB7E0F12A5B1D5676 + +Count = 944 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = A8844FEE475A9B10ACE25F7D497196D90757C10106EA2DBADCE866754CAE156DBEF2CBF26E7BA69B223C4EE1 + +Count = 945 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = ECBB638503C559753693A570DD6E971DCAB927BE34A1452587E96B792F1020CA832C02756DE4F063525A771D + +Count = 946 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = 502CE5C9F6B61A277324D953B68B262E37AB733ACAFC5961E77102EB3E137CE1ABD5AE04F7962B565B7D9291 + +Count = 947 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = A85B710074776A79954E9305A94EFA7ED2E4E7967443E8FB8C1B6E6B8EF79E61BAA16763262D6A8BE542227D + +Count = 948 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 64A76E093101B4145E1F1C953633EB133E945B1DE753239743A62627AB23F2A1975E41DD208251446E1EECF0 + +Count = 949 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = 9F092EE04EA80A598D87EE1D359A5DB71A35BC351D69F73F6B8587F1E1C6A38D6B13765902CE21D9D9A810B1 + +Count = 950 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 7CE77BF23E72AD3CB7F3C0D12D82CDC9E5BBB145A3EABB67DEEE93A79A79CE13F04B2B3120E4C43FCBB1BA18 + +Count = 951 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = AE5C18C2DAC4C66356197960539B94705DF1A740D249CBD28C24D4B79AC9756019AA3B9C9E52C999D3A523CC + +Count = 952 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 58670DED3A0718839B4B0C602EFFAC3E885C11546449B80B2532C041C555AE45FF8AF0183C68CE905FBDE702 + +Count = 953 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 8E3359569770A9A49DCF7ACAF4E2E950AE67B59982F11BD94230A5296E6E67E19503955AB8FE8D166BAECF83 + +Count = 954 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = CBA5AC3E706C38CCB7F9D3C15D40BE09393D3773241449D435D41B5D43CAB6DA8DDB4DCEE3DFCB030B0C3D1C + +Count = 955 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 3A47EF6DC17B5364E30F0AC65F7B45F03C429302E27597B1CAC14A36E960811C3824A4322D4396DF9ACFA98D + +Count = 956 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = 91995B95E221DDAC69161C9DD17293349C5739663B0F193111A58CECC6BCA83B3B3AACC8EC52AE64B3F8C6F1 + +Count = 957 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 64BCEF8DAE0A00AB494C06752052D3D91AF0A938A117EC02C6DB1B8900BA5D208630737213E258B3868B168B + +Count = 958 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = +CT = 89A6BC509C2FA199469F92E4F44EC9AC0CA94C5180BDC12B6507F2C011834329EF723989EB1C8E613398D5F9DD + +Count = 959 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 00 +CT = CBF1A8AF0311E992A7410E6238D36508C58C922755D7212BFDA05BB783BE60440826050ECE69E21D25EFF9E906 + +Count = 960 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 0001 +CT = E54B761E4A8F0D1D94D92F149BCCA21A72CB58D4D3D60D43B485D0EA35A6C1D9ECDCE8C8C4AA91AD55FF8E0357 + +Count = 961 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102 +CT = 8073F50326B592E5922BAD631EE5A3E34BEC391060F3DD81FEF3F7A46CB31004340E2F360EF50B74F5091B2FCE + +Count = 962 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 00010203 +CT = 9F3F6002F89F5CA2B48DF5300D06E4E1069FC91269F26A9DD88D4CA268064C8B9167809ABD7233F80F73474047 + +Count = 963 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 0001020304 +CT = 1D07AA1D70FD65735A2CD02305D94CE8DAAF5563A1C47E75DD16023334B7E431BD66B41DAD7B03F619AF2EB54E + +Count = 964 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405 +CT = F5941EF434BCE8E38E63F5FD9C29D5B730D3CA98871DD2DEA520B5C2139678D125B58A63430FE7B8381ABF8C6C + +Count = 965 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 00010203040506 +CT = 3E59844D00E1B3B13E8E65DB34669B94308E9348DB97F1510CAB90A0B7DF0ECCDA2D3A6C262522842EB9F7D472 + +Count = 966 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 0001020304050607 +CT = 15D3A591835795973858CFFDF307BC173845710A46C616C035AF849E9DC154BDF1C096555F11DBD63EAF2F33DA + +Count = 967 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708 +CT = 39A67BEA2BD6620D0D466558161273B700F893252B55ACC198EA33B27597CB395494C73FA5CC83CB1BAE4825E4 + +Count = 968 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 00010203040506070809 +CT = 495F89651B3460E65F003BA766C5845FC02E3B629FCF8680D3CBBB0070787B832BADE64AC441BFD650014DFF8C + +Count = 969 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A +CT = 84355B90FCA6CC96DB82A967919F4A90C3BA382DB3074CE42C47C87E4F224636DA5FAB981BEB72E71A0945B778 + +Count = 970 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B +CT = BE57E3035F3121F1071DA155CFEDEDE8D7741A583C5C9498159B4F1D244E831488D44DE9B89FDE8F56A075B997 + +Count = 971 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C +CT = F2E67F043069273262C42D9522322AA4317E00D113636EDBB6B780FF7F03F32EA5C8714E9AA3B99F0DFF6E0FD2 + +Count = 972 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C0D +CT = 26BD543E0ED9A9C7D06C11353B9969108BE56AFF6C3C5C1EF538527D05C6C8FBE18B0543CA771D6D1808D7C9CE + +Count = 973 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C0D0E +CT = ACC9DFB104957F6F5B61F44EE0C8699E2FF5B6F4B2B6CB443B0303B293CD78DC04E9161A155603B79399B877FA + +Count = 974 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C0D0E0F +CT = B5604DCF9517E3384C47714B3700BB7F3D40E66DF97FE1D99AFED0934E5CDD79ECF371D2592A72BF4183DC1A77 + +Count = 975 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C0D0E0F10 +CT = A3DCE6A36D4245193B10BD96D968374512010AD1717DBA7BB034CBC5023DE8D8431D60481598D710FD62E1467F + +Count = 976 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = A3716FAF5CE05AE0DB7A87E3F093413F05F928417666A5CFE8688CD94EAEF84FA7883DE288038D2D4F38C0302C + +Count = 977 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = A8844FEE475A9B10ACE25F7D497196D90757C10106EA2DBADCE866755CBDF842400D3227E882D01B8D05C3DC2D + +Count = 978 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = ECBB638503C559753693A570DD6E971DCAB927BE34A1452587E96B79A08D7B3D32310D2B7DA92E852C36B0FBBB + +Count = 979 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = 502CE5C9F6B61A277324D953B68B262E37AB733ACAFC5961E77102EB9F529650B8B170C9633DB2236055725FF1 + +Count = 980 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = A85B710074776A79954E9305A94EFA7ED2E4E7967443E8FB8C1B6E6B99004CD6EAE717151036671C65527FFD18 + +Count = 981 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 64A76E093101B4145E1F1C953633EB133E945B1DE753239743A62627CF046DDD99FF700DAD57E9F6DC2EAE2242 + +Count = 982 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = 9F092EE04EA80A598D87EE1D359A5DB71A35BC351D69F73F6B8587F1A27D04E11DA91EC8C817DDB4E8CBD287C5 + +Count = 983 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 7CE77BF23E72AD3CB7F3C0D12D82CDC9E5BBB145A3EABB67DEEE93A76BC0716A6B27FA79D92F44B59558DDC850 + +Count = 984 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = AE5C18C2DAC4C66356197960539B94705DF1A740D249CBD28C24D4B7AC8A89EC572CDD829C857367F03818E880 + +Count = 985 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 58670DED3A0718839B4B0C602EFFAC3E885C11546449B80B2532C041741AC4AF9F36B7A4C73BDF208EECF9E379 + +Count = 986 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 8E3359569770A9A49DCF7ACAF4E2E950AE67B59982F11BD94230A52994C73A87D85362B6ED26FC1219DE649DAE + +Count = 987 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = CBA5AC3E706C38CCB7F9D3C15D40BE09393D3773241449D435D41B5D7EB108028D41355343C02FD0AEB16BCB3D + +Count = 988 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 3A47EF6DC17B5364E30F0AC65F7B45F03C429302E27597B1CAC14A36AE329C9017421BA1F351794106DDD98DE7 + +Count = 989 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = 91995B95E221DDAC69161C9DD17293349C5739663B0F193111A58CECED52F94134FE98B765B3F79387FCAD7D8B + +Count = 990 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 64BCEF8DAE0A00AB494C06752052D3D91AF0A938A117EC02C6DB1B893B1410B68C8CD38EC2F5F4D673FCBD9240 + +Count = 991 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = +CT = 89A6BC509C2FA199469F92E4F44EC9AC0CA94C5180BDC12B6507F2C011AEB33CD92B73BCD51921B6D8B7ACD28177 + +Count = 992 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 00 +CT = CBF1A8AF0311E992A7410E6238D36508C58C922755D7212BFDA05BB783FD2F3B676A25ABA2C578FFC5DA1E662E7A + +Count = 993 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 0001 +CT = E54B761E4A8F0D1D94D92F149BCCA21A72CB58D4D3D60D43B485D0EA35847C559177CF8B3BCE5AA73F418AECBB61 + +Count = 994 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102 +CT = 8073F50326B592E5922BAD631EE5A3E34BEC391060F3DD81FEF3F7A46CE58F5169CA927DF9C001CC74D57EF03079 + +Count = 995 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 00010203 +CT = 9F3F6002F89F5CA2B48DF5300D06E4E1069FC91269F26A9DD88D4CA2682064302CA4198619E34D6E5201EB6C11E0 + +Count = 996 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 0001020304 +CT = 1D07AA1D70FD65735A2CD02305D94CE8DAAF5563A1C47E75DD160233341AD5E85C26903A33C37C1A0593F0BB79EA + +Count = 997 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405 +CT = F5941EF434BCE8E38E63F5FD9C29D5B730D3CA98871DD2DEA520B5C2133B48E120581981926616D4A491C53E6C87 + +Count = 998 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 00010203040506 +CT = 3E59844D00E1B3B13E8E65DB34669B94308E9348DB97F1510CAB90A0B786E33E6C73CCED600B3FF01D35D2A67BEC + +Count = 999 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 0001020304050607 +CT = 15D3A591835795973858CFFDF307BC173845710A46C616C035AF849E9DB598A7601FCCAF139EF17AF15404532CA3 + +Count = 1000 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708 +CT = 39A67BEA2BD6620D0D466558161273B700F893252B55ACC198EA33B275D601880D035AD1E3DDBDC3769F5E30EE8F + +Count = 1001 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 00010203040506070809 +CT = 495F89651B3460E65F003BA766C5845FC02E3B629FCF8680D3CBBB007099F6D6C164328EC5BA03CAD1C048C2AA0A + +Count = 1002 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A +CT = 84355B90FCA6CC96DB82A967919F4A90C3BA382DB3074CE42C47C87E4F657C94C5978541F837145F62B573D84554 + +Count = 1003 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B +CT = BE57E3035F3121F1071DA155CFEDEDE8D7741A583C5C9498159B4F1D2432D961A432317651B74F5B3C80C52FDF90 + +Count = 1004 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C +CT = F2E67F043069273262C42D9522322AA4317E00D113636EDBB6B780FF7FD3948F12EF4027D839A7F769E4BB37DEB9 + +Count = 1005 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C0D +CT = 26BD543E0ED9A9C7D06C11353B9969108BE56AFF6C3C5C1EF538527D059470230EB5BD28E4C8C325494C46369253 + +Count = 1006 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C0D0E +CT = ACC9DFB104957F6F5B61F44EE0C8699E2FF5B6F4B2B6CB443B0303B293A7BC7870EE86B3DE524ECFC61FE95490A5 + +Count = 1007 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C0D0E0F +CT = B5604DCF9517E3384C47714B3700BB7F3D40E66DF97FE1D99AFED0934E1599FED621BF5A64F4853399DB394FE22F + +Count = 1008 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C0D0E0F10 +CT = A3DCE6A36D4245193B10BD96D968374512010AD1717DBA7BB034CBC50291FA8A4DDD7FFD1C5FE156F284A7D8A3E8 + +Count = 1009 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = A3716FAF5CE05AE0DB7A87E3F093413F05F928417666A5CFE8688CD94E773B55A28EEC364715C17B6540A424236F + +Count = 1010 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = A8844FEE475A9B10ACE25F7D497196D90757C10106EA2DBADCE866755C271E61D239FEFEBE71C88E6FEF4BE606E7 + +Count = 1011 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = ECBB638503C559753693A570DD6E971DCAB927BE34A1452587E96B79A09A176F28780E943EBBE48F97D0E9C7B78C + +Count = 1012 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = 502CE5C9F6B61A277324D953B68B262E37AB733ACAFC5961E77102EB9F63C6C6490995B0A71D9392DA725FF8D8D5 + +Count = 1013 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = A85B710074776A79954E9305A94EFA7ED2E4E7967443E8FB8C1B6E6B99A1C74AB41D4E344B6214F89830601D934B + +Count = 1014 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 64A76E093101B4145E1F1C953633EB133E945B1DE753239743A62627CF4C2E798B7D16ADCF4C7268D0A355AAA347 + +Count = 1015 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = 9F092EE04EA80A598D87EE1D359A5DB71A35BC351D69F73F6B8587F1A2D065EE366110A5F21C199EA2D98427AA66 + +Count = 1016 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 7CE77BF23E72AD3CB7F3C0D12D82CDC9E5BBB145A3EABB67DEEE93A76B5D4366A4A4708EFB1F37C0AA22B14328E2 + +Count = 1017 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = AE5C18C2DAC4C66356197960539B94705DF1A740D249CBD28C24D4B7AC05CB7BE2AD254A616E11F652CA21FE34B3 + +Count = 1018 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 58670DED3A0718839B4B0C602EFFAC3E885C11546449B80B2532C04174A175DD4C852A8535881F4A1430B96A95E2 + +Count = 1019 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 8E3359569770A9A49DCF7ACAF4E2E950AE67B59982F11BD94230A529940D0AACA8158F720FE715D730F8257DBE60 + +Count = 1020 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = CBA5AC3E706C38CCB7F9D3C15D40BE09393D3773241449D435D41B5D7E896C919E007CBC00CFE901F5BA3E90D7CF + +Count = 1021 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 3A47EF6DC17B5364E30F0AC65F7B45F03C429302E27597B1CAC14A36AEA4095E5C1E70E0E3E63E868B77CC6930C5 + +Count = 1022 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = 91995B95E221DDAC69161C9DD17293349C5739663B0F193111A58CECED3DF0E6BFDC4BC9B7ADE7B3387AEDAC7F77 + +Count = 1023 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 64BCEF8DAE0A00AB494C06752052D3D91AF0A938A117EC02C6DB1B893BEE878AF8BF741FB176BBA8C9CE8967D2C8 + +Count = 1024 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = +CT = 89A6BC509C2FA199469F92E4F44EC9AC0CA94C5180BDC12B6507F2C011AE849E84E6AA27C1F8411F5242D79011EDAA + +Count = 1025 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 00 +CT = CBF1A8AF0311E992A7410E6238D36508C58C922755D7212BFDA05BB783FDAD2E2102D2C0BF95DDAF4C0F6A2D89F1F0 + +Count = 1026 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 0001 +CT = E54B761E4A8F0D1D94D92F149BCCA21A72CB58D4D3D60D43B485D0EA358451C4D177A7206CD390B3AC4754657BD2EC + +Count = 1027 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102 +CT = 8073F50326B592E5922BAD631EE5A3E34BEC391060F3DD81FEF3F7A46CE5D9585D1196515AED9F0A292E1B224559A3 + +Count = 1028 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 00010203 +CT = 9F3F6002F89F5CA2B48DF5300D06E4E1069FC91269F26A9DD88D4CA26820C3912986381096CAA092BA842375032CE1 + +Count = 1029 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 0001020304 +CT = 1D07AA1D70FD65735A2CD02305D94CE8DAAF5563A1C47E75DD160233341A5AD16232B65366B673B1292119394D07DF + +Count = 1030 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405 +CT = F5941EF434BCE8E38E63F5FD9C29D5B730D3CA98871DD2DEA520B5C2133B5B447059ECC5545C59DEB6E69EED273BB3 + +Count = 1031 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 00010203040506 +CT = 3E59844D00E1B3B13E8E65DB34669B94308E9348DB97F1510CAB90A0B78678528873675705EC50FC7334C0F01FAABD + +Count = 1032 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 0001020304050607 +CT = 15D3A591835795973858CFFDF307BC173845710A46C616C035AF849E9DB51F4CE603F1027FD905409CB59ED28BC630 + +Count = 1033 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708 +CT = 39A67BEA2BD6620D0D466558161273B700F893252B55ACC198EA33B275D64B6D728E1161DBF2EBDE8E58B76B4C4F2D + +Count = 1034 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 00010203040506070809 +CT = 495F89651B3460E65F003BA766C5845FC02E3B629FCF8680D3CBBB0070990A44EE82F80AA1D3C06DF8AE4B3CE63DAC + +Count = 1035 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A +CT = 84355B90FCA6CC96DB82A967919F4A90C3BA382DB3074CE42C47C87E4F6595DA69D74395DFC1D3D3A94FF9EB34B15E + +Count = 1036 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B +CT = BE57E3035F3121F1071DA155CFEDEDE8D7741A583C5C9498159B4F1D24323E0F9C02389070C1068A9DBEF65101D4A4 + +Count = 1037 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C +CT = F2E67F043069273262C42D9522322AA4317E00D113636EDBB6B780FF7FD3E8CCA38A203DA4312FEC69FCE66C11E37D + +Count = 1038 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C0D +CT = 26BD543E0ED9A9C7D06C11353B9969108BE56AFF6C3C5C1EF538527D059422DD590229CFADB791B0727F743B2C2ECA + +Count = 1039 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C0D0E +CT = ACC9DFB104957F6F5B61F44EE0C8699E2FF5B6F4B2B6CB443B0303B293A718A89C7ED1DBC5882C0FDC62A28F31A849 + +Count = 1040 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C0D0E0F +CT = B5604DCF9517E3384C47714B3700BB7F3D40E66DF97FE1D99AFED0934E152C3BCE19350FDEFBCE851DD35490EA4865 + +Count = 1041 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C0D0E0F10 +CT = A3DCE6A36D4245193B10BD96D968374512010AD1717DBA7BB034CBC50291AF29B3D4E5EA27FC27FCED907DC5E6CDD3 + +Count = 1042 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = A3716FAF5CE05AE0DB7A87E3F093413F05F928417666A5CFE8688CD94E77C19D1A20EF9121F74DC46BB031F1EF9942 + +Count = 1043 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = A8844FEE475A9B10ACE25F7D497196D90757C10106EA2DBADCE866755C27C71AA2C1DFBDBB4E316218110BD7D1CEC0 + +Count = 1044 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = ECBB638503C559753693A570DD6E971DCAB927BE34A1452587E96B79A09A55C0AC253063B0E1898B2CC60C9ED7D269 + +Count = 1045 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = 502CE5C9F6B61A277324D953B68B262E37AB733ACAFC5961E77102EB9F633F7F41EF13DA1023B3E74453FAACCF6A47 + +Count = 1046 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = A85B710074776A79954E9305A94EFA7ED2E4E7967443E8FB8C1B6E6B99A17C6BE85557C0FC2AE31C24E56630F15C76 + +Count = 1047 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 64A76E093101B4145E1F1C953633EB133E945B1DE753239743A62627CF4CAD4A331BC1A09349791B3F9EBB065730FB + +Count = 1048 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = 9F092EE04EA80A598D87EE1D359A5DB71A35BC351D69F73F6B8587F1A2D0E8A7B6EFA09A6CE41A03762D19158B1277 + +Count = 1049 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 7CE77BF23E72AD3CB7F3C0D12D82CDC9E5BBB145A3EABB67DEEE93A76B5D0C008094A73DAF1766F4465EA8049E0FB3 + +Count = 1050 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = AE5C18C2DAC4C66356197960539B94705DF1A740D249CBD28C24D4B7AC057913F066D6EDDAE7F1A8FA81339D717E5E + +Count = 1051 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 58670DED3A0718839B4B0C602EFFAC3E885C11546449B80B2532C04174A169F48795EA264B16CEEC3D5E5F5ABD6BB9 + +Count = 1052 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 8E3359569770A9A49DCF7ACAF4E2E950AE67B59982F11BD94230A529940DAC7DD1F9E06EF9927FBB330DEEE674C4A1 + +Count = 1053 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = CBA5AC3E706C38CCB7F9D3C15D40BE09393D3773241449D435D41B5D7E8972F64B2B08CEC19FB5DC89641A6CA54FCF + +Count = 1054 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 3A47EF6DC17B5364E30F0AC65F7B45F03C429302E27597B1CAC14A36AEA4B16D2FD73976EC4E4F5AC9AD29C1D18AF4 + +Count = 1055 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = 91995B95E221DDAC69161C9DD17293349C5739663B0F193111A58CECED3DCD3A64D6407B89DCFDE4D03CD27BB31495 + +Count = 1056 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 64BCEF8DAE0A00AB494C06752052D3D91AF0A938A117EC02C6DB1B893BEED64DAAAF814B14BFA5D3DB7BB8150A7AFD + +Count = 1057 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = +CT = 89A6BC509C2FA199469F92E4F44EC9AC0CA94C5180BDC12B6507F2C011AE842519A073B121A07F9C85D86B7E5E1B621C + +Count = 1058 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 00 +CT = CBF1A8AF0311E992A7410E6238D36508C58C922755D7212BFDA05BB783FDAD544063DDB220006783AE86E7550D1D6C60 + +Count = 1059 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 0001 +CT = E54B761E4A8F0D1D94D92F149BCCA21A72CB58D4D3D60D43B485D0EA358451589FA4C15860BCAAC29D71DC55063E8D54 + +Count = 1060 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102 +CT = 8073F50326B592E5922BAD631EE5A3E34BEC391060F3DD81FEF3F7A46CE5D9F0F630235D028C510D0CD8D785A9748CF9 + +Count = 1061 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 00010203 +CT = 9F3F6002F89F5CA2B48DF5300D06E4E1069FC91269F26A9DD88D4CA26820C3967DA37EAC13B5A4EDF635C8F3FFD39DC4 + +Count = 1062 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 0001020304 +CT = 1D07AA1D70FD65735A2CD02305D94CE8DAAF5563A1C47E75DD160233341A5A70579BB463AC6B12BEE2E8C870C6373B6C + +Count = 1063 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405 +CT = F5941EF434BCE8E38E63F5FD9C29D5B730D3CA98871DD2DEA520B5C2133B5BBF6BE399C7FCE31D4B67F01A9A9D1C975D + +Count = 1064 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 00010203040506 +CT = 3E59844D00E1B3B13E8E65DB34669B94308E9348DB97F1510CAB90A0B786787517167BD05D87984B6508725A5E729FDC + +Count = 1065 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 0001020304050607 +CT = 15D3A591835795973858CFFDF307BC173845710A46C616C035AF849E9DB51FCADD4CFA88485F3932286CE428AAD0BC7C + +Count = 1066 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708 +CT = 39A67BEA2BD6620D0D466558161273B700F893252B55ACC198EA33B275D64BA1EE7E1BBFFC73291EB646FC02FBB0F625 + +Count = 1067 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 00010203040506070809 +CT = 495F89651B3460E65F003BA766C5845FC02E3B629FCF8680D3CBBB0070990A49AB45EA92A6663204D9A42D02D9ED2F5C + +Count = 1068 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A +CT = 84355B90FCA6CC96DB82A967919F4A90C3BA382DB3074CE42C47C87E4F6595E372E2D628EB160E612D2DACCB50CA2764 + +Count = 1069 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B +CT = BE57E3035F3121F1071DA155CFEDEDE8D7741A583C5C9498159B4F1D24323E6E598BA32C3CDDD0B46B4A46CA4EFFE7E3 + +Count = 1070 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C +CT = F2E67F043069273262C42D9522322AA4317E00D113636EDBB6B780FF7FD3E8C43EAC44997404DBD80AD4EDDB96C3A1B4 + +Count = 1071 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C0D +CT = 26BD543E0ED9A9C7D06C11353B9969108BE56AFF6C3C5C1EF538527D059422E03204F80949392C6D0D0203637FDBAE45 + +Count = 1072 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C0D0E +CT = ACC9DFB104957F6F5B61F44EE0C8699E2FF5B6F4B2B6CB443B0303B293A71875E7558BCEED9C4361E53F8BACE7A3B8B0 + +Count = 1073 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C0D0E0F +CT = B5604DCF9517E3384C47714B3700BB7F3D40E66DF97FE1D99AFED0934E152CA74713E91D184E479F6E425C8C6EE0A2A8 + +Count = 1074 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C0D0E0F10 +CT = A3DCE6A36D4245193B10BD96D968374512010AD1717DBA7BB034CBC50291AFF342F8384B0654DDCB7EC36E0A71E3ADB2 + +Count = 1075 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = A3716FAF5CE05AE0DB7A87E3F093413F05F928417666A5CFE8688CD94E77C19A81DF8DF304EC4824B63E9067F50C99DE + +Count = 1076 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = A8844FEE475A9B10ACE25F7D497196D90757C10106EA2DBADCE866755C27C75B1A7094D2D210035B7D7A5CF32BBE6E3A + +Count = 1077 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = ECBB638503C559753693A570DD6E971DCAB927BE34A1452587E96B79A09A55BADFC073A7E8D46A55AE45EEBA6FB9EB30 + +Count = 1078 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = 502CE5C9F6B61A277324D953B68B262E37AB733ACAFC5961E77102EB9F633FA6BFCFDB404B5F61D851C61EAFFC659780 + +Count = 1079 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = A85B710074776A79954E9305A94EFA7ED2E4E7967443E8FB8C1B6E6B99A17C54AD522C7B09D8A0FD2F4F5C233B33A4B7 + +Count = 1080 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 64A76E093101B4145E1F1C953633EB133E945B1DE753239743A62627CF4CAD181CFB80A0149DC9A4E5EFA4976B390F71 + +Count = 1081 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = 9F092EE04EA80A598D87EE1D359A5DB71A35BC351D69F73F6B8587F1A2D0E86D2617D1F3B17EF10A096A3FFB7C3D161F + +Count = 1082 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 7CE77BF23E72AD3CB7F3C0D12D82CDC9E5BBB145A3EABB67DEEE93A76B5D0C668A59DC41917DD1D9427F2CECC73AA527 + +Count = 1083 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = AE5C18C2DAC4C66356197960539B94705DF1A740D249CBD28C24D4B7AC0579620578E900A9A7D489F6D37FBD3F9B3811 + +Count = 1084 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 58670DED3A0718839B4B0C602EFFAC3E885C11546449B80B2532C04174A16959F85ECE5C0B2D4386C45F51A49A8CEAC9 + +Count = 1085 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 8E3359569770A9A49DCF7ACAF4E2E950AE67B59982F11BD94230A529940DACC07249D049E3A8AA32949C719A06379D7E + +Count = 1086 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = CBA5AC3E706C38CCB7F9D3C15D40BE09393D3773241449D435D41B5D7E8972C4ADA6708ED83BCFD3C856F87A0900783E + +Count = 1087 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 3A47EF6DC17B5364E30F0AC65F7B45F03C429302E27597B1CAC14A36AEA4B1B0CA5D3AEA0875CD3184C7681AAE6AE531 + +Count = 1088 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = 91995B95E221DDAC69161C9DD17293349C5739663B0F193111A58CECED3DCDF780D0ADDE739814BBEC0D9498824E6725 + +Count = 1089 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B0C0D0E0F +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 64BCEF8DAE0A00AB494C06752052D3D91AF0A938A117EC02C6DB1B893BEED6441FA8D67F5C20E9B50D6B7FEB1D07C91A + diff --git a/romulus/Implementations/crypto_aead/romulusn1/armcortexm/api.h b/romulus/Implementations/crypto_aead/romulusn1/armcortexm/api.h new file mode 100644 index 0000000..a4aa567 --- /dev/null +++ b/romulus/Implementations/crypto_aead/romulusn1/armcortexm/api.h @@ -0,0 +1,5 @@ +#define CRYPTO_KEYBYTES 16 +#define CRYPTO_NSECBYTES 0 +#define CRYPTO_NPUBBYTES 16 +#define CRYPTO_ABYTES 16 +#define CRYPTO_NOOVERLAP 1 diff --git a/romulus/Implementations/crypto_aead/romulusn1/armcortexm/crypto_aead.h b/romulus/Implementations/crypto_aead/romulusn1/armcortexm/crypto_aead.h new file mode 100644 index 0000000..6f4ee42 --- /dev/null +++ b/romulus/Implementations/crypto_aead/romulusn1/armcortexm/crypto_aead.h @@ -0,0 +1,13 @@ +//API required by the NIST for the LWC competition +int crypto_aead_encrypt(unsigned char *c, unsigned long long *clen, + const unsigned char *m, unsigned long long mlen, + const unsigned char *ad, unsigned long long adlen, + const unsigned char *nsec, const unsigned char *npub, + const unsigned char *k); + +//API required by the NIST for the LWC competition +int crypto_aead_decrypt(unsigned char *m, unsigned long long *outputmlen, + unsigned char *nsec, + const unsigned char *c, unsigned long long clen, + const unsigned char *ad, unsigned long long adlen, + const unsigned char *npub, const unsigned char *k); diff --git a/romulus/Implementations/crypto_aead/romulusn1/armcortexm/encrypt.c b/romulus/Implementations/crypto_aead/romulusn1/armcortexm/encrypt.c new file mode 100644 index 0000000..8b819f8 --- /dev/null +++ b/romulus/Implementations/crypto_aead/romulusn1/armcortexm/encrypt.c @@ -0,0 +1,261 @@ +#include "skinny128.h" +#include "romulus.h" +#include + +//Encryption and authentication using Romulus-N1 +int crypto_aead_encrypt + (unsigned char *c, unsigned long long *clen, + const unsigned char *m, unsigned long long mlen, + const unsigned char *ad, unsigned long long adlen, + const unsigned char *nsec, + const unsigned char *npub, + const unsigned char *k) { + + u32 tmp; + skinny_128_384_tks tks; + u8 state[BLOCKBYTES], pad[BLOCKBYTES]; + (void)nsec; + + // ----------------- Initialization ----------------- + *clen = mlen + TAGBYTES; + memset(tks.tk1, 0x00, KEYBYTES); + memset(state, 0x00, BLOCKBYTES); + tks.tk1[0] = 0x01; // Init 56-bit LFSR counter + // ----------------- Initialization ----------------- + + // ----------------- Process the associated data ----------------- + if (adlen == 0) { // Handle the special case of no AD + UPDATE_CTR(tks.tk1); + SET_DOMAIN(tks, 0x1A); + tkschedule_lfsr(tks.rtk, npub, k, SKINNY128_384_ROUNDS); + tkschedule_perm(tks.rtk); + tkschedule_perm_tk1(tks.rtk1, tks.tk1); + skinny128_384(state, tks.rtk, state, tks.rtk1); + } else { // Process double blocks but the last + SET_DOMAIN(tks, 0x08); + while (adlen > 2*BLOCKBYTES) { + UPDATE_CTR(tks.tk1); + XOR_BLOCK(state, state, ad); + tkschedule_lfsr(tks.rtk, ad + BLOCKBYTES, k, SKINNY128_384_ROUNDS); + tkschedule_perm(tks.rtk); + tkschedule_perm_tk1(tks.rtk1, tks.tk1); + skinny128_384(state, tks.rtk, state, tks.rtk1); + UPDATE_CTR(tks.tk1); + ad += 2*BLOCKBYTES; + adlen -= 2*BLOCKBYTES; + } + // Pad and process the left-over blocks + UPDATE_CTR(tks.tk1); + if (adlen == 2*BLOCKBYTES) { // Left-over complete double block + XOR_BLOCK(state, state, ad); + tkschedule_lfsr(tks.rtk, ad + BLOCKBYTES, k, SKINNY128_384_ROUNDS); + tkschedule_perm(tks.rtk); + tkschedule_perm_tk1(tks.rtk1, tks.tk1); + skinny128_384(state, tks.rtk, state, tks.rtk1); + UPDATE_CTR(tks.tk1); + SET_DOMAIN(tks, 0x18); + } else if (adlen > BLOCKBYTES) { // Left-over partial double block + adlen -= BLOCKBYTES; + XOR_BLOCK(state, state, ad); + memcpy(pad, ad + BLOCKBYTES, adlen); + memset(pad + adlen, 0x00, 15 - adlen); + pad[15] = adlen; + tkschedule_lfsr(tks.rtk, pad, k, SKINNY128_384_ROUNDS); + tkschedule_perm(tks.rtk); + tkschedule_perm_tk1(tks.rtk1, tks.tk1); + skinny128_384(state, tks.rtk, state, tks.rtk1); + UPDATE_CTR(tks.tk1); + SET_DOMAIN(tks, 0x1A); + } else if (adlen == BLOCKBYTES) { // Left-over complete single block + XOR_BLOCK(state, state, ad); + SET_DOMAIN(tks, 0x18); + } else { // Left-over partial single block + for(int i = 0; i < (int)adlen; i++) + state[i] ^= ad[i]; + state[15] ^= adlen; // Padding + SET_DOMAIN(tks, 0x1A); + } + tkschedule_lfsr(tks.rtk, npub, k, SKINNY128_384_ROUNDS); + tkschedule_perm(tks.rtk); + tkschedule_perm_tk1(tks.rtk1, tks.tk1); + skinny128_384(state, tks.rtk, state, tks.rtk1); + } + // ----------------- Process the associated data ----------------- + + // ----------------- Process the plaintext ----------------- + memset(tks.tk1, 0x00, KEYBYTES/2); + tks.tk1[0] = 0x01; // Init the 56-bit LFSR counter + if (mlen == 0) { + UPDATE_CTR(tks.tk1); + SET_DOMAIN(tks, 0x15); + tkschedule_perm_tk1(tks.rtk1, tks.tk1); + skinny128_384(state, tks.rtk, state, tks.rtk1); + } else { // Process all blocks except the last + SET_DOMAIN(tks, 0x04); + while (mlen > BLOCKBYTES) { + RHO(state,c,m); + UPDATE_CTR(tks.tk1); + tkschedule_perm_tk1(tks.rtk1, tks.tk1); + skinny128_384(state, tks.rtk, state, tks.rtk1); + c += BLOCKBYTES; + m += BLOCKBYTES; + mlen -= BLOCKBYTES; + } + // Pad and process the last block + UPDATE_CTR(tks.tk1); + if (mlen < BLOCKBYTES) { // Last message single block is full + for(int i = 0; i < (int)mlen; i++) { + tmp = m[i]; // Use of tmp variable in case c = m + c[i] = m[i] ^ (state[i] >> 1) ^ (state[i] & 0x80) ^ (state[i] << 7); + state[i] ^= (u8)tmp; + } + state[15] ^= (u8)mlen; // Padding + SET_DOMAIN(tks, 0x15); + } else { // Last message single block is partial + RHO(state,c,m); + SET_DOMAIN(tks, 0x14); + } + tkschedule_perm_tk1(tks.rtk1, tks.tk1); + skinny128_384(state, tks.rtk, state, tks.rtk1); + c += mlen; + } + // ----------------- Process the plaintext ----------------- + + // ----------------- Generate the tag ----------------- + G(c,state); + // ----------------- Generate the tag ----------------- + + return 0; +} + + +//Decryption and tag verification using Romulus-N1 +int crypto_aead_decrypt + (unsigned char *m, unsigned long long *mlen, + unsigned char *nsec, + const unsigned char *c, unsigned long long clen, + const unsigned char *ad, unsigned long long adlen, + const unsigned char *npub, + const unsigned char *k) { + + u32 tmp; + skinny_128_384_tks tks; + u8 state[BLOCKBYTES], pad[BLOCKBYTES]; + (void)nsec; + + if (clen < TAGBYTES) + return -1; + + // ----------------- Initialization ----------------- + *mlen = clen - TAGBYTES; + memset(tks.tk1, 0x00, KEYBYTES); + memset(state, 0x00, BLOCKBYTES); + tks.tk1[0] = 0x01; // Init 56-bit LFSR counter + // ----------------- Initialization ----------------- + + // ----------------- Process the associated data ----------------- + if (adlen == 0) { // Handle the special case of no AD + UPDATE_CTR(tks.tk1); + SET_DOMAIN(tks, 0x1A); + tkschedule_lfsr(tks.rtk, npub, k, SKINNY128_384_ROUNDS); + tkschedule_perm(tks.rtk); + tkschedule_perm_tk1(tks.rtk1, tks.tk1); + skinny128_384(state, tks.rtk, state, tks.rtk1); + } else { // Process double blocks except the last + SET_DOMAIN(tks, 0x08); + while (adlen > 2*BLOCKBYTES) { + UPDATE_CTR(tks.tk1); + XOR_BLOCK(state, state, ad); + tkschedule_lfsr(tks.rtk, ad + BLOCKBYTES, k, SKINNY128_384_ROUNDS); + tkschedule_perm(tks.rtk); + tkschedule_perm_tk1(tks.rtk1, tks.tk1); + skinny128_384(state, tks.rtk, state, tks.rtk1); + UPDATE_CTR(tks.tk1); + ad += 2*BLOCKBYTES; + adlen -= 2*BLOCKBYTES; + } + // Pad and process the left-over blocks + UPDATE_CTR(tks.tk1); + if (adlen == 2*BLOCKBYTES) { // Left-over complete double block + XOR_BLOCK(state, state, ad); + tkschedule_lfsr(tks.rtk, ad + BLOCKBYTES, k, SKINNY128_384_ROUNDS); + tkschedule_perm(tks.rtk); + tkschedule_perm_tk1(tks.rtk1, tks.tk1); + skinny128_384(state, tks.rtk, state, tks.rtk1); + UPDATE_CTR(tks.tk1); + SET_DOMAIN(tks, 0x18); + } else if (adlen > BLOCKBYTES) { // Left-over partial double block + adlen -= BLOCKBYTES; + XOR_BLOCK(state, state, ad); + memcpy(pad, ad + BLOCKBYTES, adlen); + memset(pad + adlen, 0x00, 15 - adlen); + pad[15] = adlen; + tkschedule_lfsr(tks.rtk, pad, k, SKINNY128_384_ROUNDS); + tkschedule_perm(tks.rtk); + tkschedule_perm_tk1(tks.rtk1, tks.tk1); + skinny128_384(state, tks.rtk, state, tks.rtk1); + UPDATE_CTR(tks.tk1); + SET_DOMAIN(tks, 0x1A); + } else if (adlen == BLOCKBYTES) { // Left-over complete single block + XOR_BLOCK(state, state, ad); + SET_DOMAIN(tks, 0x18); + } else { // Left-over partial single block + for(int i = 0; i < (int)adlen; i++) + state[i] ^= ad[i]; + state[15] ^= adlen; // Padding + SET_DOMAIN(tks, 0x1A); + } + tkschedule_lfsr(tks.rtk, npub, k, SKINNY128_384_ROUNDS); + tkschedule_perm(tks.rtk); + tkschedule_perm_tk1(tks.rtk1, tks.tk1); + skinny128_384(state, tks.rtk, state, tks.rtk1); + } + // ----------------- Process the associated data ----------------- + + // ----------------- Process the ciphertext ----------------- + clen -= TAGBYTES; + memset(tks.tk1, 0x00, KEYBYTES/2); + tks.tk1[0] = 0x01; // Init the 56-bit LFSR counter + if (clen == 0) { + UPDATE_CTR(tks.tk1); + SET_DOMAIN(tks, 0x15); + tkschedule_perm_tk1(tks.rtk1, tks.tk1); + skinny128_384(state, tks.rtk, state, tks.rtk1); + } else { // Process all blocks except the last + SET_DOMAIN(tks, 0x04); + while (clen > BLOCKBYTES) { + RHO_INV(state,c,m); + UPDATE_CTR(tks.tk1); + tkschedule_perm_tk1(tks.rtk1, tks.tk1); + skinny128_384(state, tks.rtk, state, tks.rtk1); + c += BLOCKBYTES; + m += BLOCKBYTES; + clen -= BLOCKBYTES; + } + // Pad and process the last block + UPDATE_CTR(tks.tk1); + if (clen < BLOCKBYTES) { // Last message double block is partial + for(int i = 0; i < (int)clen; i++) { + m[i] = c[i] ^ (state[i] >> 1) ^ (state[i] & 0x80) ^ (state[i] << 7); + state[i] ^= m[i]; + } + state[15] ^= (u8)clen; // Padding + SET_DOMAIN(tks, 0x15); + } else { // Last message double block is full + RHO_INV(state,c,m); + SET_DOMAIN(tks, 0x14); + } + tkschedule_perm_tk1(tks.rtk1, tks.tk1); + skinny128_384(state, tks.rtk, state, tks.rtk1); + } + // ----------------- Process the plaintext ----------------- + + // ----------------- Generate and check the tag ----------------- + G(state,state); + tmp = 0; + for(int i = 0; i < TAGBYTES; i++) + tmp |= state[i] ^ c[clen+i]; // Constant-time tag comparison + // ----------------- Generate and check the tag ----------------- + + return tmp; +} \ No newline at end of file diff --git a/romulus/Implementations/crypto_aead/romulusn1/armcortexm/romulus.h b/romulus/Implementations/crypto_aead/romulusn1/armcortexm/romulus.h new file mode 100644 index 0000000..4c0e141 --- /dev/null +++ b/romulus/Implementations/crypto_aead/romulusn1/armcortexm/romulus.h @@ -0,0 +1,68 @@ +#ifndef ROMULUSN1_H_ +#define ROMULUSN1_H_ + +#include "skinny128.h" + +typedef unsigned char u8; +typedef unsigned int u32; +typedef struct { + u8 tk1[16]; //to manipulate tk1 in a byte-wise manner + u32 rtk1[32]; //to avoid recomputation of the tk schedule + u32 rtk[4*SKINNY128_384_ROUNDS];//all round tweakeys +} skinny_128_384_tks; + +#define TAGBYTES 16 +#define KEYBYTES 16 +#define BLOCKBYTES 16 + +#define SET_DOMAIN(tks, domain) ((tks).tk1[7] = (domain)) + +//G as defined in the Romulus specification in a 32-bit word-wise manner +#define G(x,y) ({ \ + tmp = ((u32*)(y))[0]; \ + ((u32*)(x))[0] = (tmp >> 1 & 0x7f7f7f7f) ^ ((tmp ^ (tmp << 7)) & 0x80808080); \ + tmp = ((u32*)(y))[1]; \ + ((u32*)(x))[1] = (tmp >> 1 & 0x7f7f7f7f) ^ ((tmp ^ (tmp << 7)) & 0x80808080); \ + tmp = ((u32*)(y))[2]; \ + ((u32*)(x))[2] = (tmp >> 1 & 0x7f7f7f7f) ^ ((tmp ^ (tmp << 7)) & 0x80808080); \ + tmp = ((u32*)(y))[3]; \ + ((u32*)(x))[3] = (tmp >> 1 & 0x7f7f7f7f) ^ ((tmp ^ (tmp << 7)) & 0x80808080); \ +}) + +//update the counter in tk1 in a 32-bit word-wise manner +#define UPDATE_CTR(tk1) ({ \ + tmp = ((u32*)(tk1))[1]; \ + ((u32*)(tk1))[1] = (tmp << 1) & 0x00ffffff; \ + ((u32*)(tk1))[1] |= (((u32*)(tk1))[0] >> 31); \ + ((u32*)(tk1))[1] |= tmp & 0xff000000; \ + ((u32*)(tk1))[0] <<= 1; \ + if ((tmp >> 23) & 0x01) \ + ((u32*)(tk1))[0] ^= 0x95; \ +}) + +//x <- y ^ z for 128-bit blocks +#define XOR_BLOCK(x,y,z) ({ \ + ((u32*)(x))[0] = ((u32*)(y))[0] ^ ((u32*)(z))[0]; \ + ((u32*)(x))[1] = ((u32*)(y))[1] ^ ((u32*)(z))[1]; \ + ((u32*)(x))[2] = ((u32*)(y))[2] ^ ((u32*)(z))[2]; \ + ((u32*)(x))[3] = ((u32*)(y))[3] ^ ((u32*)(z))[3]; \ +}) + + +//Rho as defined in the Romulus specification +//use pad as a tmp variable in case y = z +#define RHO(x,y,z) ({ \ + G(pad,x); \ + XOR_BLOCK(y, pad, z); \ + XOR_BLOCK(x, x, z); \ +}) + +//Rho inverse as defined in the Romulus specification +//use pad as a tmp variable in case y = z +#define RHO_INV(x, y, z) ({ \ + G(pad, x); \ + XOR_BLOCK(z, pad, y); \ + XOR_BLOCK(x, x, z); \ +}) + +#endif // ROMULUSN1_H_ \ No newline at end of file diff --git a/romulus/Implementations/crypto_aead/romulusn1/armcortexm/skinny128.h b/romulus/Implementations/crypto_aead/romulusn1/armcortexm/skinny128.h new file mode 100644 index 0000000..4c8f956 --- /dev/null +++ b/romulus/Implementations/crypto_aead/romulusn1/armcortexm/skinny128.h @@ -0,0 +1,17 @@ +#ifndef SKINNY128_H_ +#define SKINNY128_H_ + +typedef unsigned char u8; +typedef unsigned int u32; + +#define SKINNY128_128_ROUNDS 40 +#define SKINNY128_256_ROUNDS 48 +#define SKINNY128_384_ROUNDS 56 + +extern void skinny128_384(u8* ctext, const u32* tk, const u8* ptext, const u32* rtk1); +extern void tkschedule_lfsr(u32* rtk, const u8* tk2, const u8* tk3, const int rounds); +extern void tkschedule_perm(u32* rtk); +extern void tkschedule_perm_tk1(u32* rtk1, const u8* tk1); + + +#endif // SKINNY128_H_ \ No newline at end of file diff --git a/romulus/Implementations/crypto_aead/romulusn1/armcortexm/skinny128.s b/romulus/Implementations/crypto_aead/romulusn1/armcortexm/skinny128.s new file mode 100644 index 0000000..dcd4852 --- /dev/null +++ b/romulus/Implementations/crypto_aead/romulusn1/armcortexm/skinny128.s @@ -0,0 +1,1974 @@ +/******************************************************************************* +* ARM assembly implementation of fixsliced SKINNY-128-384. +* +* For more details, see the paper at: https:// +* +* @author Alexandre Adomnicai, Nanyang Technological University, +* alexandre.adomnicai@ntu.edu.sg +* +* @date May 2020 +*******************************************************************************/ + +.syntax unified +.thumb + +/******************************************************************************* +* applies P^2 on the tweakey state in a bitsliced manner +*******************************************************************************/ +.align 2 +p2: + movw r1, #0xcc00 + movt r1, #0xcc00 //r1 <- 0xcc00cc00 + movw r10, #0xcc00 + movt r10, #0x0033 //r10<- 0xcc000033 + and r11, r1, r6, ror #14 + bfi r11, r6, #16, #8 + and r12, r6, #0xcc000000 + orr r11, r11, r12, lsr #2 + and r12, r10, r6 + orr r11, r11, r12, lsr #8 + and r12, r6, #0x00cc0000 + orr r6, r11, r12, lsr #18 + and r11, r1, r7, ror #14 + bfi r11, r7, #16, #8 + and r12, r7, #0xcc000000 + orr r11, r11, r12, lsr #2 + and r12, r10, r7 + orr r11, r11, r12, lsr #8 + and r12, r7, #0x00cc0000 + orr r7, r11, r12, lsr #18 + and r11, r1, r8, ror #14 + bfi r11, r8, #16, #8 + and r12, r8, #0xcc000000 + orr r11, r11, r12, lsr #2 + and r12, r10, r8 + orr r11, r11, r12, lsr #8 + and r12, r8, #0x00cc0000 + orr r8, r11, r12, lsr #18 + and r11, r1, r9, ror #14 + bfi r11, r9, #16, #8 + and r12, r9, #0xcc000000 + orr r11, r11, r12, lsr #2 + and r12, r10, r9 + orr r11, r11, r12, lsr #8 + and r12, r9, #0x00cc0000 + orr r9, r11, r12, lsr #18 + bx lr + +/******************************************************************************* +* applies P^4 on the tweakey state in a bitsliced manner +*******************************************************************************/ +.align 2 +p4: + str.w r14, [sp] //store r14 on the stack + movw r14, #0x00cc + movt r14, #0xcc00 //r14<- 0xcc0000cc + movw r12, #0xcc00 + movt r12, #0x3300 //r12<- 0x3300cc00 + movw r11, #0x00cc + movt r11, #0x00cc //r11<- 0x00cc00cc + and r10, r14, r6, ror #22 + and r1, r12, r6, ror #16 + orr r10, r10, r1 + and r1, r6, r11 + orr r10, r10, r1, lsr #2 + movw r1, #0xcc33 //r1 <- 0x0000cc33 + and r6, r6, r1 + orr r6, r10, r6, ror #24 + and r10, r14, r7, ror #22 + and r1, r12, r7, ror #16 + orr r10, r10, r1 + and r1, r7, r11 + orr r10, r10, r1, lsr #2 + movw r1, #0xcc33 //r1 <- 0x0000cc33 + and r7, r7, r1 + orr r7, r10, r7, ror #24 + and r10, r14, r8, ror #22 + and r1, r12, r8, ror #16 + orr r10, r10, r1 + and r1, r8, r11 + orr r10, r10, r1, lsr #2 + movw r1, #0xcc33 //r1 <- 0x0000cc33 + and r8, r8, r1 + orr r8, r10, r8, ror #24 + and r10, r14, r9, ror #22 + ldr.w r14, [sp] //restore r14 + and r12, r12, r9, ror #16 + orr r10, r10, r12 + and r12, r9, r11 + orr r10, r10, r12, lsr #2 + movw r12, #0xcc33 //r1 <- 0x0000cc33 + and r9, r9, r12 + orr r9, r10, r9, ror #24 + bx lr + +/******************************************************************************* +* applies P^6 on the tweakey state in a bitsliced manner +*******************************************************************************/ +.align 2 +p6: + movw r1, #0x3333 //r1 <- 0x00003333 + movw r12, #0x00cc + movt r12, #0x3300 //r12<- 0x330000cc + and r10, r6, r1, ror #8 // --- permute r6 6 times + and r11, r12, r6, ror #24 + orr r11, r11, r10, ror #6 + and r10, r1, r6, ror #10 + orr r11, r11, r10 + and r10, r6, #0x000000cc + orr r11, r11, r10, lsl #14 + and r10, r6, #0x00003300 + orr r6, r11, r10, lsl #2 // permute r6 6 times --- + and r10, r7, r1, ror #8 // --- permute r7 6 times + and r11, r12, r7, ror #24 + orr r11, r11, r10, ror #6 + and r10, r1, r7, ror #10 + orr r11, r11, r10 + and r10, r7, #0x000000cc + orr r11, r11, r10, lsl #14 + and r10, r7, #0x00003300 + orr r7, r11, r10, lsl #2 // permute r7 6 times --- + and r10, r8, r1, ror #8 // --- permute r8 6 times + and r11, r12, r8, ror #24 + orr r11, r11, r10, ror #6 + and r10, r1, r8, ror #10 + orr r11, r11, r10 + and r10, r8, #0x000000cc + orr r11, r11, r10, lsl #14 + and r10, r8, #0x00003300 + orr r8, r11, r10, lsl #2 // permute r8 6 times --- + and r10, r9, r1, ror #8 // --- permute r9 6 times + and r11, r12, r9, ror #24 + orr r11, r11, r10, ror #6 + and r10, r1, r9, ror #10 + orr r11, r11, r10 + and r10, r9, #0x000000cc + orr r11, r11, r10, lsl #14 + and r10, r9, #0x00003300 // permute r9 6 times --- + orr r9, r11, r10, lsl #2 + bx lr + +/******************************************************************************* +* applies P^8 on the tweakey state in a bitsliced manner +*******************************************************************************/ +.align 2 +p8: + movw r12, #0x3333 //r12<- 0x00003333 + movw r1, #0x0000 + movt r1, #0x33cc //r1 <- 0x33cc0000 + and r10, r6, r1 // --- permute r6 8 times + and r11, r1, r6, ror #8 + orr r11, r11, r10, ror #24 + and r10, r6, r12, lsl #2 + orr r11, r11, r10, ror #26 + and r10, r6, r12, lsl #8 + orr r6, r11, r10, lsr #6 // permute r6 8 times --- + and r10, r7, r1 // --- permute r7 8 times + and r11, r1, r7, ror #8 + orr r11, r11, r10, ror #24 + and r10, r7, r12, lsl #2 + orr r11, r11, r10, ror #26 + and r10, r7, r12, lsl #8 + orr r7, r11, r10, lsr #6 // permute r7 8 times --- + and r10, r8, r1 // --- permute r8 8 times + and r11, r1, r8, ror #8 + orr r11, r11, r10, ror #24 + and r10, r8, r12, lsl #2 + orr r11, r11, r10, ror #26 + and r10, r8, r12, lsl #8 + orr r8, r11, r10, lsr #6 // permute r8 8 times --- + and r10, r9, r1 // --- permute r9 8 times + and r11, r1, r9, ror #8 + orr r11, r11, r10, ror #24 + and r10, r9, r12, lsl #2 + orr r11, r11, r10, ror #26 + and r10, r9, r12, lsl #8 + orr r9, r11, r10, lsr #6 // permute r9 8 times --- + bx lr + +/******************************************************************************* +* applies P^10 on the tweakey state in a bitsliced manner +*******************************************************************************/ +.align 2 +p10: + movw r12, #0x0033 + movt r12, #0x3300 //r12<- 0x33000033 + movw r1, #0xcc33 //r1 <- 0x0000cc33 + and r10, r6, r1, ror #8 // --- permute r6 10 times + and r11, r12, r6, ror #26 + orr r11, r11, r10, ror #8 + and r10, r6, r12, ror #24 + orr r11, r11, r10, ror #22 + and r10, r6, #0x00330000 + orr r11, r11, r10, lsr #14 + and r10, r6, #0x0000cc00 + orr r6, r11, r10, lsr #2 // permute r6 10 times --- + and r10, r7, r1, ror #8 // --- permute r6 10 times + and r11, r12, r7, ror #26 + orr r11, r11, r10, ror #8 + and r10, r7, r12, ror #24 + orr r11, r11, r10, ror #22 + and r10, r7, #0x00330000 + orr r11, r11, r10, lsr #14 + and r10, r7, #0x0000cc00 + orr r7, r11, r10, lsr #2 // permute r6 10 times --- + and r10, r8, r1, ror #8 // --- permute r6 10 times + and r11, r12, r8, ror #26 + orr r11, r11, r10, ror #8 + and r10, r8, r12, ror #24 + orr r11, r11, r10, ror #22 + and r10, r8, #0x00330000 + orr r11, r11, r10, lsr #14 + and r10, r8, #0x0000cc00 + orr r8, r11, r10, lsr #2 // permute r6 10 times --- + and r10, r9, r1, ror #8 // --- permute r6 10 times + and r11, r12, r9, ror #26 + orr r11, r11, r10, ror #8 + and r10, r9, r12, ror #24 + orr r11, r11, r10, ror #22 + and r10, r9, #0x00330000 + orr r11, r11, r10, lsr #14 + and r10, r9, #0x0000cc00 + orr r9, r11, r10, lsr #2 // permute r6 10 times --- + bx lr + +/******************************************************************************* +* applies P^12 on the tweakey state in a bitsliced manner +*******************************************************************************/ +.align 2 +p12: + str.w r14, [sp] //store r14 on the stack + movw r14, #0xcc33 //r14<- 0x0000cc33 + movw r12, #0x00cc + movt r12, #0x00cc //r12<- 0x00cc00cc + movw r1, #0x3300 + movt r1, #0xcc00 //r1 <- 0xcc003300 + and r10, r14, r6, ror #8 // --- permute r6 12 times + and r11, r12, r6, ror #30 + orr r11, r11, r10 + and r10, r1, r6, ror #16 + orr r11, r11, r10 + movw r10, #0xcccc //r10<- 0x0000cccc + and r10, r6, r10, ror #8 + orr r6, r11, r10, ror #10 // permute r6 12 times --- + and r10, r14, r7, ror #8 // --- permute r7 12 times + and r11, r12, r7, ror #30 + orr r11, r11, r10 + and r10, r1, r7, ror #16 + orr r11, r11, r10 + movw r10, #0xcccc //r10<- 0x0000cccc + and r10, r7, r10, ror #8 + orr r7, r11, r10, ror #10 // permute r7 12 times --- + and r10, r14, r8, ror #8 // --- permute r8 12 times + and r11, r12, r8, ror #30 + orr r11, r11, r10 + and r10, r1, r8, ror #16 + orr r11, r11, r10 + movw r10, #0xcccc //r10<- 0x0000cccc + and r10, r8, r10, ror #8 + orr r8, r11, r10, ror #10 // permute r8 12 times --- + and r10, r14, r9, ror #8 // --- permute r9 12 times + and r11, r12, r9, ror #30 + orr r11, r11, r10 + and r10, r1, r9, ror #16 + ldr.w r14, [sp] + orr r11, r11, r10 + movw r10, #0xcccc //r10<- 0x0000cccc + and r10, r9, r10, ror #8 + orr r9, r11, r10, ror #10 // permute r9 12 times --- + bx lr + +/******************************************************************************* +* applies P^14 on the tweakey state in a bitsliced manner +*******************************************************************************/ +.align 2 +p14: + movw r1, #0xcc00 + movt r1, #0x0033 //r1 <- 0x0033cc00 + movw r12, #0xcc00 + movt r12, #0xcc00 //r12<- 0x33003300 + and r10, r1, r6, ror #24 // --- permute r6 14 times + and r11, r6, #0x00000033 + orr r11, r10, r11, ror #14 + and r10, r6, #0x33000000 + orr r11, r11, r10, ror #30 + and r10, r6, #0x00ff0000 + orr r11, r11, r10, ror #16 + and r10, r6, r12 + orr r6, r11, r10, ror #18 // permute r6 14 times --- + and r10, r1, r7, ror #24 // --- permute r7 14 times + and r11, r7, #0x00000033 + orr r11, r10, r11, ror #14 + and r10, r7, #0x33000000 + orr r11, r11, r10, ror #30 + and r10, r7, #0x00ff0000 + orr r11, r11, r10, ror #16 + and r10, r7, r12 + orr r7, r11, r10, ror #18 // permute r7 14 times --- + and r10, r1, r8, ror #24 // --- permute r8 14 times + and r11, r8, #0x00000033 + orr r11, r10, r11, ror #14 + and r10, r8, #0x33000000 + orr r11, r11, r10, ror #30 + and r10, r8, #0x00ff0000 + orr r11, r11, r10, ror #16 + and r10, r8, r12 + orr r8, r11, r10, ror #18 // permute r8 14 times --- + and r10, r1, r9, ror #24 // --- permute r9 14 times + and r11, r9, #0x00000033 + orr r11, r10, r11, ror #14 + and r10, r9, #0x33000000 + orr r11, r11, r10, ror #30 + and r10, r9, #0x00ff0000 + orr r11, r11, r10, ror #16 + and r10, r9, r12 + orr r9, r11, r10, ror #18 // permute r9 14 times --- + bx lr + +.align 2 +packing: + eor r12, r2, r2, lsr #3 + and r12, r12, r10 + eor r2, r2, r12 + eor r2, r2, r12, lsl #3 //SWAPMOVE(r2, r2, 0x0a0a0a0a, 3) + eor r12, r3, r3, lsr #3 + and r12, r12, r10 + eor r3, r3, r12 + eor r3, r3, r12, lsl #3 //SWAPMOVE(r3, r3, 0x0a0a0a0a, 3) + eor r12, r4, r4, lsr #3 + and r12, r12, r10 + eor r4, r4, r12 + eor r4, r4, r12, lsl #3 //SWAPMOVE(r4, r4, 0x0a0a0a0a, 3) + eor r12, r5, r5, lsr #3 + and r12, r12, r10 + eor r5, r5, r12 + eor r5, r5, r12, lsl #3 //SWAPMOVE(r5, r5, 0x0a0a0a0a, 3) + eor r12, r2, r4, lsr #2 + and r12, r12, r11 + eor r2, r2, r12 + eor r4, r4, r12, lsl #2 //SWAPMOVE(r4, r2, 0x30303030, 2) + eor r12, r2, r3, lsr #4 + and r12, r12, r11, lsr #2 + eor r2, r2, r12 + eor r3, r3, r12, lsl #4 //SWAPMOVE(r3, r2, 0x0c0c0c0c, 4) + eor r12, r2, r5, lsr #6 + and r12, r12, r11, lsr #4 + eor r2, r2, r12 + eor r5, r5, r12, lsl #6 //SWAPMOVE(r5, r2, 0x03030303, 6) + eor r12, r4, r3, lsr #2 + and r12, r12, r11, lsr #2 + eor r4, r4, r12 + eor r3, r3, r12, lsl #2 //SWAPMOVE(r3, r4, 0x0c0c0c0c, 2) + eor r12, r4, r5, lsr #4 + and r12, r12, r11, lsr #4 + eor r4, r4, r12 + eor r5, r5, r12, lsl #4 //SWAPMOVE(r5, r4, 0x03030303, 4) + eor r12, r3, r5, lsr #2 + and r12, r12, r11, lsr #4 + eor r3, r3, r12 + eor r5, r5, r12, lsl #2 //SWAPMOVE(r5, r3, 0x03030303, 2) + bx lr + +/****************************************************************************** +* Compute LFSR2(TK2) ^ LFSR3(TK3) for all rounds. +* Performing both at the same time allows to save some memory accesses. +******************************************************************************/ +@ void tkschedule_lfsr(u32* tk, const u8* tk2, const u8* tk3, const int rounds) +.global tkschedule_lfsr +.type tkschedule_lfsr,%function +.align 2 +tkschedule_lfsr: + push {r0-r12, r14} + ldr.w r3, [r1, #8] //load tk2 (3rd word) + ldr.w r4, [r1, #4] //load tk2 (2nd word) + ldr.w r5, [r1, #12] //load tk2 (4th word) + ldr.w r12, [r1] //load tk2 (1st word) + mov r1, r2 //move tk3 address in r1 + mov r2, r12 //move 1st tk2 word in r2 + movw r10, #0x0a0a + movt r10, #0x0a0a //r10 <- 0x0a0a0a0a + movw r11, #0x3030 + movt r11, #0x3030 //r7 <- 0x30303030 + bl packing //pack tk2 + mov r6, r2 //move tk2 from r2-r5 to r6-r9 + mov r7, r3 //move tk2 from r2-r5 to r6-r9 + mov r8, r4 //move tk2 from r2-r5 to r6-r9 + mov r9, r5 //move tk2 from r2-r5 to r6-r9 + ldr.w r3, [r1, #8] //load tk3 (3rd word) + ldr.w r4, [r1, #4] //load tk3 (2nd word) + ldr.w r5, [r1, #12] //load tk3 (4th) word) + ldr.w r2, [r1] //load tk3 (1st) word) + bl packing //pack tk3 + eor r10, r10, r10, lsl #4 //r10<- 0xaaaaaaaa + ldr.w r1, [sp, #12] //load loop counter in r1 + eor r11, r2, r6 //tk2 ^ tk3 (1st word) + eor r12, r3, r7 //tk2 ^ tk3 (2nd word) + strd r11, r12, [r0], #8 //store in tk + eor r11, r4, r8 //tk2 ^ tk3 (3rd word) + eor r12, r5, r9 //tk2 ^ tk3 (4th word) + strd r11, r12, [r0], #8 //store in tk + loop: + and r12, r8, r10 // --- apply LFSR2 to tk2 + eor r12, r12, r6 + and r14, r10, r12, lsl #1 + and r12, r12, r10 + orr r6, r14, r12, lsr #1 // apply LFSR2 to tk2 --- + and r12, r3, r10 // --- apply LFSR3 to tk3 + eor r12, r5, r12, lsr #1 + and r14, r10, r12, lsl #1 + and r12, r12, r10 + orr r5, r14, r12, lsr #1 // apply LFSR3 to tk3 --- + eor r11, r5, r7 //tk2 ^ tk3 (1st word) + eor r12, r2, r8 //tk2 ^ tk3 (2nd word) + strd r11, r12, [r0], #8 //store in tk + eor r11, r3, r9 //tk2 ^ tk3 (3rd word) + eor r12, r4, r6 //tk2 ^ tk3 (4th word) + strd r11, r12, [r0], #24 //store in tk + and r12, r9, r10 // --- apply LFSR2 to tk2 + eor r12, r12, r7 + and r14, r10, r12, lsl #1 + and r12, r12, r10 + orr r7, r14, r12, lsr #1 // apply LFSR2 to tk2 --- + and r12, r2, r10 // --- apply LFSR3 to tk3 + eor r12, r4, r12, lsr #1 + and r14, r10, r12, lsl #1 + and r12, r12, r10 + orr r4, r14, r12, lsr #1 // apply LFSR3 to tk3 --- + eor r11, r4, r8 //tk2 ^ tk3 (1st word) + eor r12, r5, r9 //tk2 ^ tk3 (2nd word) + strd r11, r12, [r0], #8 //store in tk + eor r11, r2, r6 //tk2 ^ tk3 (3rd word) + eor r12, r3, r7 //tk2 ^ tk3 (4th word) + strd r11, r12, [r0], #24 //store in tk + and r12, r6, r10 // --- apply LFSR2 to tk2 + eor r12, r12, r8 + and r14, r10, r12, lsl #1 + and r12, r12, r10 + orr r8, r14, r12, lsr #1 // apply LFSR2 to tk2 --- + and r12, r5, r10 // --- apply LFSR3 to tk3 + eor r12, r3, r12, lsr #1 + and r14, r10, r12, lsl #1 + and r12, r12, r10 + orr r3, r14, r12, lsr #1 // apply LFSR3 to tk3 --- + eor r11, r3, r9 //tk2 ^ tk3 (1st word) + eor r12, r4, r6 //tk2 ^ tk3 (2nd word) + strd r11, r12, [r0], #8 //store in tk + eor r11, r5, r7 //tk2 ^ tk3 (3rd word) + eor r12, r2, r8 //tk2 ^ tk3 (4th word) + strd r11, r12, [r0], #24 //store in tk + and r12, r7, r10 // --- apply LFSR2 to tk2 + eor r12, r12, r9 + and r14, r10, r12, lsl #1 + and r12, r12, r10 + orr r9, r14, r12, lsr #1 // apply LFSR2 to tk2 --- + and r12, r4, r10 // --- apply LFSR3 to tk3 + eor r12, r2, r12, lsr #1 + and r14, r10, r12, lsl #1 + and r12, r12, r10 + orr r2, r14, r12, lsr #1 // apply LFSR3 to tk3 --- + eor r11, r2, r6 //tk2 ^ tk3 (1st word) + eor r12, r3, r7 //tk2 ^ tk3 (2nd word) + strd r11, r12, [r0], #8 //store in tk + eor r11, r4, r8 //tk2 ^ tk3 (3rd word) + eor r12, r5, r9 //tk2 ^ tk3 (4th word) + strd r11, r12, [r0], #24 //store in tk + subs.w r1, r1, #8 //decrease loop counter by 8 + bne loop + pop {r0-r12, r14} + bx lr + +/****************************************************************************** +* Applies the permutation P and add the round constants to all round tweakeys. +******************************************************************************/ +@ void tkschedule_perm(u32* tk) +.global tkschedule_perm +.type tkschedule_perm,%function +.align 2 +tkschedule_perm: + push {r0-r12, lr} + sub.w sp, #4 //to store r14 in subroutines + ldm r0, {r6-r9} //load tk + movw r10, #0xf0f0 + movt r10, #0xf0f0 //r10<- 0xf0f0f0f0 + and r6, r6, r10 //tk &= 0xf0f0f0f0 (1st word) + and r7, r7, r10 //tk &= 0xf0f0f0f0 (2nd word) + and r8, r8, r10 //tk &= 0xf0f0f0f0 (3rd word) + and r9, r9, r10 //tk &= 0xf0f0f0f0 (4th word) + eor r8, r8, #0x00000004 //add rconst + eor r9, r9, #0x00000040 //add rconst + mvn r9, r9 //to remove a NOT in sbox calculations + strd r8, r9, [r0], #8 //store 1st half tk for 1st round + strd r6, r7, [r0], #8 //store 2nd half tk for 1st round + ldm r0, {r6-r9} //load tk + bl p2 //apply the permutation twice + movw r10, #0xc3c3 + movt r10, #0xc3c3 //r10<- 0xc3c3c3c3 + and r11, r10, r6, ror #26 //ror and mask to match fixslicing + and r12, r10, r7, ror #26 //ror and mask to match fixslicing + strd r11, r12, [r0], #8 //store 1st half tk for 2nd round + and r11, r10, r8, ror #26 //ror and mask to match fixslicing + and r12, r10, r9, ror #26 //ror and mask to match fixslicing + eor r11, r11, #0x10000000 //add rconst + eor r11, r11, #0x00000100 //add rconst + eor r12, r12, #0x00000100 //add rconst + mvn r12, r12 //to save a NOT in sbox calculations + strd r11, r12, [r0], #8 //store 2nd half tk for 2nd round + and r10, r10, r10, lsr #6 //r10<- 0x03030303 + and r11, r10, r6, ror #28 //--- ror and masks to match fixslicing + and r6, r6, r10, lsl #6 + orr r6, r11, r6, ror #12 + and r11, r10, r7, ror #28 + and r7, r7, r10, lsl #6 + orr r7, r11, r7, ror #12 + and r11, r10, r8, ror #28 + and r8, r8, r10, lsl #6 + orr r8, r11, r8, ror #12 + and r11, r10, r9, ror #28 + and r9, r9, r10, lsl #6 + orr r9, r11, r9, ror #12 //ror and masks to match fixslicing --- + eor r7, r7, #0x04000000 //add rconst + eor r8, r8, #0x44000000 //add rconst + eor r9, r9, #0x04000000 //add rconst + mvn r9, r9 //to save a NOT in sbox calculations + strd r8, r9, [r0], #8 //store 1st half tk for 3rd round + strd r6, r7, [r0], #8 //store 2nd half tk for 3rd round + ldm r0, {r6-r9} //load tk + bl p4 //apply the permutation 4 times + movw r10, #0xf0f0 + movt r10, #0xf0f0 //r10<- 0xf0f0f0f0 + and r11, r10, r6, ror #16 //ror and mask to match fixslicing + and r12, r10, r7, ror #16 //ror and mask to match fixslicing + eor r11, r11, #0x00400000 //add rconst + eor r12, r12, #0x00400000 //add rconst + strd r11, r12, [r0, #24] //store 2nd half tk for 5th round + and r11, r10, r8, ror #16 //ror and mask to match fixslicing + and r12, r10, r9, ror #16 //ror and mask to match fixslicing + eor r11, r11, #0x00440000 //add rconst + eor r12, r12, #0x00500000 //add rconst + mvn r12, r12 //to save a NOT in sbox calculations + strd r11, r12, [r0, #16] //store 1st half tk for 5th round + and r10, r10, r10, lsr #2 //r10<- 0x30303030 + and r11, r10, r6, ror #14 //--- ror and masks to match fixslicing + and r6, r6, r10, ror #4 + orr r6, r11, r6, ror #6 + and r11, r10, r7, ror #14 + and r7, r7, r10, ror #4 + orr r7, r11, r7, ror #6 + and r11, r10, r8, ror #14 + and r8, r8, r10, ror #4 + orr r8, r11, r8, ror #6 + and r11, r10, r9, ror #14 + and r9, r9, r10, ror #4 + orr r9, r11, r9, ror #6 //ror and masks to match fixslicing --- + eor r6, r6, #0x00100000 //add rconst + eor r7, r7, #0x00100000 //add rconst + eor r8, r8, #0x00100000 //add rconst + eor r8, r8, #0x00000001 //add rconst + eor r9, r9, #0x00100000 //add rconst + mvn r9, r9 //to save a NOT in sbox calculations + strd r6, r7, [r0], #8 //store 1st half tk for 4th round + strd r8, r9, [r0], #24 //store 2nd half tk for 4th round + ldm r0, {r6-r9} //load tk + bl p6 //apply the permutation 6 times + movw r10, #0xc3c3 + movt r10, #0xc3c3 //r10<- 0xc3c3c3c3 + and r11, r10, r6, ror #10 //ror and mask to match fixslicing + and r12, r10, r7, ror #10 //ror and mask to match fixslicing + eor r11, r11, #0x01000000 //add rconst + eor r12, r12, #0x01000000 //add rconst + strd r11, r12, [r0], #8 //store 1st half tk for 6th round + and r11, r10, r8, ror #10 //ror and mask to match fixslicing + and r12, r10, r9, ror #10 //ror and mask to match fixslicing + eor r11, r11, #0x01400000 //add rconst + eor r11, r11, #0x00001000 //add rconst + eor r12, r12, #0x00400000 //add rconst + mvn r12, r12 //to save a NOT in sbox calculations + strd r11, r12, [r0], #8 //store 2nd half tk for 6th round + and r10, r10, r10, lsr #6 //r10<- 0x03030303 + and r11, r10, r6, ror #12 //--- ror and masks to match fixslicing + and r6, r6, r10, lsl #6 + orr r6, r11, r6, ror #28 + and r11, r10, r7, ror #12 + and r7, r7, r10, lsl #6 + orr r7, r11, r7, ror #28 + and r11, r10, r8, ror #12 + and r8, r8, r10, lsl #6 + orr r8, r11, r8, ror #28 + and r11, r10, r9, ror #12 + and r9, r9, r10, lsl #6 + orr r9, r11, r9, ror #28 //ror and masks to match fixslicing --- + eor r6, r6, #0x00000400 //add rconst + eor r7, r7, #0x00000400 //add rconst + eor r8, r8, #0x01000000 //add rconst + eor r8, r8, #0x00004000 //add rconst + eor r9, r9, #0x01000000 //add rconst + eor r9, r9, #0x00000400 //add rconst + mvn r9, r9 //to save a NOT in sbox calculations + strd r8, r9, [r0], #8 //store 1st half tk for 7th round + strd r6, r7, [r0], #8 //store 2nd half tk for 7th round + ldm r0, {r6-r9} //load tk + bl p8 //apply the permutation 8 times + movw r10, #0xf0f0 + movt r10, #0xf0f0 //r10<- 0xf0f0f0f0 + and r11, r10, r6 //ror and mask to match fixslicing + and r12, r10, r7 //ror and mask to match fixslicing + eor r12, r12, #0x00000040 //add rconst + strd r11, r12, [r0, #24] //store 2nd half tk for 9th round + and r11, r10, r8 //ror and mask to match fixslicing + and r12, r10, r9 //ror and mask to match fixslicing + eor r11, r11, #0x00000054 //add rconst + eor r12, r12, #0x00000050 //add rconst + mvn r12, r12 //to save a NOT in sbox calculations + strd r11, r12, [r0, #16] //store 1st half tk for 9th round + and r10, r10, r10, lsr #2 //r10<- 0x30303030 + and r11, r10, r6, ror #30 //--- ror and masks to match fixslicing + and r6, r6, r10, ror #4 + orr r6, r11, r6, ror #22 + and r11, r10, r7, ror #30 + and r7, r7, r10, ror #4 + orr r7, r11, r7, ror #22 + and r11, r10, r8, ror #30 + and r8, r8, r10, ror #4 + orr r8, r11, r8, ror #22 + and r11, r10, r9, ror #30 + and r9, r9, r10, ror #4 + orr r9, r11, r9, ror #22 //ror and masks to match fixslicing --- + eor r6 ,r6, #0x00000010 + eor r8, r8, #0x00010000 + eor r8, r8, #0x00000410 + eor r9, r9, #0x00000410 + mvn r9, r9 //to save a NOT in sbox calculations + strd r6, r7, [r0], #8 //store 1st half tk for 8th round + strd r8, r9, [r0], #24 //store 2nd half tk for 8th round + ldm r0, {r6-r9} //load tk + bl p10 //apply the permutation 10 times + movw r10, #0xc3c3 + movt r10, #0xc3c3 //r10<- 0xc3c3c3c3 + and r11, r10, r6, ror #26 //ror and mask to match fixslicing + and r12, r10, r7, ror #26 //ror and mask to match fixslicing + eor r11, r11, #0x00000100 //add rconst + eor r12, r12, #0x00000100 //add rconst + strd r11, r12, [r0], #8 //store 1st half tk for 10th round + and r11, r10, r8, ror #26 //ror and mask to match fixslicing + and r12, r10, r9, ror #26 //ror and mask to match fixslicing + eor r11, r11, #0x10000000 //add rconst + eor r11, r11, #0x00000140 //add rconst + eor r12, r12, #0x00000100 //add rconst + mvn r12, r12 //to save a NOT in sbox calculations + strd r11, r12, [r0], #8 //store 2nd half tk for 10th round + and r10, r10, r10, lsr #6 //r10<- 0x03030303 + and r11, r10, r6, ror #28 //--- ror and masks to match fixslicing + and r6, r6, r10, lsl #6 + orr r6, r11, r6, ror #12 + and r11, r10, r7, ror #28 + and r7, r7, r10, lsl #6 + orr r7, r11, r7, ror #12 + and r11, r10, r8, ror #28 + and r8, r8, r10, lsl #6 + orr r8, r11, r8, ror #12 + and r11, r10, r9, ror #28 + and r9, r9, r10, lsl #6 + orr r9, r11, r9, ror #12 //ror and masks to match fixslicing --- + eor r6, r6, #0x04000000 //add rconst + eor r7, r7, #0x04000000 //add rconst + eor r8, r8, #0x44000000 //add rconst + eor r9, r9, #0x00000100 //add rconst + mvn r9, r9 //to save a NOT in sbox calculations + strd r8, r9, [r0], #8 //store 1st half tk for 11th round + strd r6, r7, [r0], #8 //store 2nd half tk for 11th round + ldm r0, {r6-r9} //load tk + bl p12 //apply the permutation 4 times + movw r10, #0xf0f0 + movt r10, #0xf0f0 //r10<- 0xf0f0f0f0 + and r11, r10, r6, ror #16 //ror and mask to match fixslicing + and r12, r10, r7, ror #16 //ror and mask to match fixslicing + eor r11, r11, #0x00400000 //add rconst + strd r11, r12, [r0, #24] //store 2nd half tk for 13th round + and r11, r10, r8, ror #16 //ror and mask to match fixslicing + and r12, r10, r9, ror #16 //ror and mask to match fixslicing + eor r11, r11, #0x00140000 //add rconst + eor r12, r12, #0x00500000 //add rconst + mvn r12, r12 //to save a NOT in sbox calculations + strd r11, r12, [r0, #16] //store 1st half tk for 13th round + and r10, r10, r10, lsr #2 //r10<- 0x30303030 + and r11, r10, r6, ror #14 //--- ror and masks to match fixslicing + and r6, r6, r10, ror #4 + orr r6, r11, r6, ror #6 + and r11, r10, r7, ror #14 + and r7, r7, r10, ror #4 + orr r7, r11, r7, ror #6 + and r11, r10, r8, ror #14 + and r8, r8, r10, ror #4 + orr r8, r11, r8, ror #6 + and r11, r10, r9, ror #14 + and r9, r9, r10, ror #4 + orr r9, r11, r9, ror #6 //ror and masks to match fixslicing --- + eor r6, r6, #0x00100000 //add rconst + eor r7, r7, #0x00100000 //add rconst + eor r8, r8, #0x04000000 //add rconst + eor r8, r8, #0x00000001 //add rconst + eor r9, r9, #0x04000000 //add rconst + mvn r9, r9 //to save a NOT in sbox calculations + strd r6, r7, [r0], #8 //store 1st half tk for 12th round + strd r8, r9, [r0], #24 //store 2nd half tk for 12th round + ldm r0, {r6-r9} //load tk + bl p14 //apply the permutation 6 times + movw r10, #0xc3c3 + movt r10, #0xc3c3 //r10<- 0xc3c3c3c3 + and r11, r10, r6, ror #10 //ror and mask to match fixslicing + and r12, r10, r7, ror #10 //ror and mask to match fixslicing + strd r11, r12, [r0], #8 //store 1st half tk for 14th round + and r11, r10, r8, ror #10 //ror and mask to match fixslicing + and r12, r10, r9, ror #10 //ror and mask to match fixslicing + eor r11, r11, #0x01400000 //add rconst + eor r11, r11, #0x00001000 //add rconst + eor r12, r12, #0x01400000 //add rconst + mvn r12, r12 //to save a NOT in sbox calculations + strd r11, r12, [r0], #8 //store 2nd half tk for 14th round + and r10, r10, r10, lsr #6 //r10<- 0x03030303 + and r11, r10, r6, ror #12 //--- ror and masks to match fixslicing + and r6, r6, r10, lsl #6 + orr r6, r11, r6, ror #28 + and r11, r10, r7, ror #12 + and r7, r7, r10, lsl #6 + orr r7, r11, r7, ror #28 + and r11, r10, r8, ror #12 + and r8, r8, r10, lsl #6 + orr r8, r11, r8, ror #28 + and r11, r10, r9, ror #12 + and r9, r9, r10, lsl #6 + orr r9, r11, r9, ror #28 //ror and masks to match fixslicing --- + eor r7, r7, #0x00000400 //add rconst + eor r8, r8, #0x01000000 //add rconst + eor r8, r8, #0x00004400 //add rconst + eor r9, r9, #0x00000400 //add const + mvn r9, r9 //to save a NOT in sbox calculations + strd r8, r9, [r0], #8 //store 1st half tk for 15th round + strd r6, r7, [r0], #8 //store 2nd half tk for 15th round + ldm r0, {r6-r9} //load tk + movw r10, #0xf0f0 + movt r10, #0xf0f0 //r10<- 0xf0f0f0f0 + and r11, r10, r6 //ror and mask to match fixslicing + and r12, r10, r7 //ror and mask to match fixslicing + eor r11, r11, #0x00000040 //add rconst + eor r12, r12, #0x00000040 //add rconst + strd r11, r12, [r0, #24] //store 2nd half tk for 17th round + and r11, r10, r8 //ror and mask to match fixslicing + and r12, r10, r9 //ror and mask to match fixslicing + eor r11, r11, #0x00000004 //add rconst + eor r12, r12, #0x00000050 //add rconst + mvn r12, r12 //to save a NOT in sbox calculations + strd r11, r12, [r0, #16] //store 1st half tk for 17th round + and r10, r10, r10, lsr #2 //r10<- 0x30303030 + and r11, r10, r6, ror #30 //--- ror and masks to match fixslicing + and r6, r6, r10, ror #4 + orr r6, r11, r6, ror #22 + and r11, r10, r7, ror #30 + and r7, r7, r10, ror #4 + orr r7, r11, r7, ror #22 + and r11, r10, r8, ror #30 + and r8, r8, r10, ror #4 + orr r8, r11, r8, ror #22 + and r11, r10, r9, ror #30 + and r9, r9, r10, ror #4 + orr r9, r11, r9, ror #22 //ror and masks to match fixslicing --- + eor r6 ,r6, #0x00000010 + eor r7 ,r7, #0x00000010 + eor r8, r8, #0x00000010 + eor r8, r8, #0x00010000 + mvn r9, r9 //to save a NOT in sbox calculations + strd r6, r7, [r0], #8 //store 1st half tk for 16th round + strd r8, r9, [r0], #24 //store 2nd half tk for 16th round + ldm r0, {r6-r9} //load tk + bl p2 //apply the permutation twice + movw r10, #0xc3c3 + movt r10, #0xc3c3 //r10<- 0xc3c3c3c3 + and r11, r10, r6, ror #26 //ror and mask to match fixslicing + and r12, r10, r7, ror #26 //ror and mask to match fixslicing + eor r11, r11, #0x00000100 //add rconst + strd r11, r12, [r0], #8 //store 1st half tk for 18th round + and r11, r10, r8, ror #26 //ror and mask to match fixslicing + and r12, r10, r9, ror #26 //ror and mask to match fixslicing + eor r11, r11, #0x10000000 //add rconst + eor r11, r11, #0x00000140 //add rconst + eor r12, r12, #0x00000040 //add rconst + mvn r12, r12 //to save a NOT in sbox calculations + strd r11, r12, [r0], #8 //store 2nd half tk for 18th round + and r10, r10, r10, lsr #6 //r10<- 0x03030303 + and r11, r10, r6, ror #28 //--- ror and masks to match fixslicing + and r6, r6, r10, lsl #6 + orr r6, r11, r6, ror #12 + and r11, r10, r7, ror #28 + and r7, r7, r10, lsl #6 + orr r7, r11, r7, ror #12 + and r11, r10, r8, ror #28 + and r8, r8, r10, lsl #6 + orr r8, r11, r8, ror #12 + and r11, r10, r9, ror #28 + and r9, r9, r10, lsl #6 + orr r9, r11, r9, ror #12 //ror and masks to match fixslicing --- + eor r7, r7, #0x04000000 //add rconst + eor r8, r8, #0x40000000 //add rconst + eor r8, r8, #0x00000100 //add rconst + eor r9, r9, #0x04000000 //add rconst + eor r9, r9, #0x00000100 //add rconst + mvn r9, r9 //to save a NOT in sbox calculations + strd r8, r9, [r0], #8 //store 1st half tk for 19th round + strd r6, r7, [r0], #8 //store 2nd half tk for 19th round + ldm r0, {r6-r9} //load tk + bl p4 //apply the permutation 4 times + movw r10, #0xf0f0 + movt r10, #0xf0f0 //r10<- 0xf0f0f0f0 + and r11, r10, r6, ror #16 //ror and mask to match fixslicing + and r12, r10, r7, ror #16 //ror and mask to match fixslicing + eor r12, r12, #0x00400000 //add rconst + strd r11, r12, [r0, #24] //store 2nd half tk for 21th round + and r11, r10, r8, ror #16 //ror and mask to match fixslicing + and r12, r10, r9, ror #16 //ror and mask to match fixslicing + eor r11, r11, #0x00440000 //add rconst + eor r12, r12, #0x00100000 //add rconst + mvn r12, r12 //to save a NOT in sbox calculations + strd r11, r12, [r0, #16] //store 1st half tk for 21th round + and r10, r10, r10, lsr #2 //r10<- 0x30303030 + and r11, r10, r6, ror #14 //--- ror and masks to match fixslicing + and r6, r6, r10, ror #4 + orr r6, r11, r6, ror #6 + and r11, r10, r7, ror #14 + and r7, r7, r10, ror #4 + orr r7, r11, r7, ror #6 + and r11, r10, r8, ror #14 + and r8, r8, r10, ror #4 + orr r8, r11, r8, ror #6 + and r11, r10, r9, ror #14 + and r9, r9, r10, ror #4 + orr r9, r11, r9, ror #6 //ror and masks to match fixslicing --- + eor r6, r6, #0x00100000 //add rconst + eor r8, r8, #0x04100000 //add rconst + eor r8, r8, #0x00000001 //add rconst + eor r9, r9, #0x00100000 //add rconst + mvn r9, r9 //to save a NOT in sbox calculations + strd r6, r7, [r0], #8 //store 1st half tk for 20th round + strd r8, r9, [r0], #24 //store 2nd half tk for 20th round + ldm r0, {r6-r9} //load tk + bl p6 //apply the permutation 6 times + movw r10, #0xc3c3 + movt r10, #0xc3c3 //r10<- 0xc3c3c3c3 + and r11, r10, r6, ror #10 //ror and mask to match fixslicing + and r12, r10, r7, ror #10 //ror and mask to match fixslicing + eor r11, r11, #0x01000000 //add rconst + eor r12, r12, #0x01000000 //add rconst + strd r11, r12, [r0], #8 //store 1st half tk for 22th round + and r11, r10, r8, ror #10 //ror and mask to match fixslicing + and r12, r10, r9, ror #10 //ror and mask to match fixslicing + eor r11, r11, #0x00400000 //add rconst + eor r11, r11, #0x00001000 //add rconst + mvn r12, r12 //to save a NOT in sbox calculations + strd r11, r12, [r0], #8 //store 2nd half tk for 22th round + and r10, r10, r10, lsr #6 //r10<- 0x03030303 + and r11, r10, r6, ror #12 //--- ror and masks to match fixslicing + and r6, r6, r10, lsl #6 + orr r6, r11, r6, ror #28 + and r11, r10, r7, ror #12 + and r7, r7, r10, lsl #6 + orr r7, r11, r7, ror #28 + and r11, r10, r8, ror #12 + and r8, r8, r10, lsl #6 + orr r8, r11, r8, ror #28 + and r11, r10, r9, ror #12 + and r9, r9, r10, lsl #6 + orr r9, r11, r9, ror #28 //ror and masks to match fixslicing --- + eor r6, r6, #0x00000400 //add rconst + eor r8, r8, #0x00004000 //add rconst + eor r9, r9, #0x01000000 //add rconst + mvn r9, r9 //to save a NOT in sbox calculations + strd r8, r9, [r0], #8 //store 1st half tk for 23th round + strd r6, r7, [r0], #8 //store 2nd half tk for 23th round + ldm r0, {r6-r9} //load tk + bl p8 //apply the permutation 8 times + movw r10, #0xf0f0 + movt r10, #0xf0f0 //r10<- 0xf0f0f0f0 + and r11, r10, r6 //ror and mask to match fixslicing + and r12, r10, r7 //ror and mask to match fixslicing + strd r11, r12, [r0, #24] //store 2nd half tk for 25th round + and r11, r10, r8 //ror and mask to match fixslicing + and r12, r10, r9 //ror and mask to match fixslicing + eor r11, r11, #0x00000014 //add rconst + eor r12, r12, #0x00000040 //add rconst + mvn r12, r12 //to save a NOT in sbox calculations + strd r11, r12, [r0, #16] //store 1st half tk for 25th round + and r10, r10, r10, lsr #2 //r10<- 0x30303030 + and r11, r10, r6, ror #30 //--- ror and masks to match fixslicing + and r6, r6, r10, ror #4 + orr r6, r11, r6, ror #22 + and r11, r10, r7, ror #30 + and r7, r7, r10, ror #4 + orr r7, r11, r7, ror #22 + and r11, r10, r8, ror #30 + and r8, r8, r10, ror #4 + orr r8, r11, r8, ror #22 + and r11, r10, r9, ror #30 + and r9, r9, r10, ror #4 + orr r9, r11, r9, ror #22 //ror and masks to match fixslicing --- + eor r8, r8, #0x00010400 + eor r9, r9, #0x00000400 + mvn r9, r9 //to save a NOT in sbox calculations + strd r6, r7, [r0], #8 //store 1st half tk for 24th round + strd r8, r9, [r0], #24 //store 2nd half tk for 24th round + ldm r0, {r6-r9} //load tk + bl p10 //apply the permutation 10 times + movw r10, #0xc3c3 + movt r10, #0xc3c3 //r10<- 0xc3c3c3c3 + and r11, r10, r6, ror #26 //ror and mask to match fixslicing + and r12, r10, r7, ror #26 //ror and mask to match fixslicing + strd r11, r12, [r0], #8 //store 1st half tk for 26th round + and r11, r10, r8, ror #26 //ror and mask to match fixslicing + and r12, r10, r9, ror #26 //ror and mask to match fixslicing + eor r11, r11, #0x10000000 //add rconst + eor r11, r11, #0x00000100 //add rconst + mvn r12, r12 //to save a NOT in sbox calculations + strd r11, r12, [r0], #8 //store 2nd half tk for 26th round + and r10, r10, r10, lsr #6 //r10<- 0x03030303 + and r11, r10, r6, ror #28 //--- ror and masks to match fixslicing + and r6, r6, r10, lsl #6 + orr r6, r11, r6, ror #12 + and r11, r10, r7, ror #28 + and r7, r7, r10, lsl #6 + orr r7, r11, r7, ror #12 + and r11, r10, r8, ror #28 + and r8, r8, r10, lsl #6 + orr r8, r11, r8, ror #12 + and r11, r10, r9, ror #28 + and r9, r9, r10, lsl #6 + orr r9, r11, r9, ror #12 //ror and masks to match fixslicing --- + eor r7, r7, #0x04000000 //add rconst + eor r8, r8, #0x40000000 //add rconst + eor r9, r9, #0x04000000 //add rconst + mvn r9, r9 //to save a NOT in sbox calculations + strd r8, r9, [r0], #8 //store 1st half tk for 27th round + strd r6, r7, [r0], #8 //store 2nd half tk for 27th round + ldm r0, {r6-r9} //load tk + bl p12 //apply the permutation 4 times + movw r10, #0xf0f0 + movt r10, #0xf0f0 //r10<- 0xf0f0f0f0 + and r11, r10, r6, ror #16 //ror and mask to match fixslicing + and r12, r10, r7, ror #16 //ror and mask to match fixslicing + eor r12, r12, #0x00400000 //add rconst + strd r11, r12, [r0, #24] //store 2nd half tk for 29th round + and r11, r10, r8, ror #16 //ror and mask to match fixslicing + and r12, r10, r9, ror #16 //ror and mask to match fixslicing + eor r11, r11, #0x00440000 //add rconst + eor r12, r12, #0x00500000 //add rconst + mvn r12, r12 //to save a NOT in sbox calculations + strd r11, r12, [r0, #16] //store 1st half tk for 29th round + and r10, r10, r10, lsr #2 //r10<- 0x30303030 + and r11, r10, r6, ror #14 //--- ror and masks to match fixslicing + and r6, r6, r10, ror #4 + orr r6, r11, r6, ror #6 + and r11, r10, r7, ror #14 + and r7, r7, r10, ror #4 + orr r7, r11, r7, ror #6 + and r11, r10, r8, ror #14 + and r8, r8, r10, ror #4 + orr r8, r11, r8, ror #6 + and r11, r10, r9, ror #14 + and r9, r9, r10, ror #4 + orr r9, r11, r9, ror #6 //ror and masks to match fixslicing --- + eor r6, r6, #0x00100000 //add rconst + eor r8, r8, #0x00100000 //add rconst + eor r8, r8, #0x00000001 //add rconst + eor r9, r9, #0x00100000 //add rconst + mvn r9, r9 //to save a NOT in sbox calculations + strd r6, r7, [r0], #8 //store 1st half tk for 28th round + strd r8, r9, [r0], #24 //store 2nd half tk for 28th round + ldm r0, {r6-r9} //load tk + bl p14 //apply the permutation 6 times + movw r10, #0xc3c3 + movt r10, #0xc3c3 //r10<- 0xc3c3c3c3 + and r11, r10, r6, ror #10 //ror and mask to match fixslicing + and r12, r10, r7, ror #10 //ror and mask to match fixslicing + eor r11, r11, #0x01000000 //add rconst + eor r12, r12, #0x01000000 //add rconst + strd r11, r12, [r0], #8 //store 1st half tk for 30th round + and r11, r10, r8, ror #10 //ror and mask to match fixslicing + and r12, r10, r9, ror #10 //ror and mask to match fixslicing + eor r11, r11, #0x01400000 //add rconst + eor r11, r11, #0x00001000 //add rconst + mvn r12, r12 //to save a NOT in sbox calculations + strd r11, r12, [r0], #8 //store 2nd half tk for 30th round + and r10, r10, r10, lsr #6 //r10<- 0x03030303 + and r11, r10, r6, ror #12 //--- ror and masks to match fixslicing + and r6, r6, r10, lsl #6 + orr r6, r11, r6, ror #28 + and r11, r10, r7, ror #12 + and r7, r7, r10, lsl #6 + orr r7, r11, r7, ror #28 + and r11, r10, r8, ror #12 + and r8, r8, r10, lsl #6 + orr r8, r11, r8, ror #28 + and r11, r10, r9, ror #12 + and r9, r9, r10, lsl #6 + orr r9, r11, r9, ror #28 //ror and masks to match fixslicing --- + eor r6, r6, #0x00000400 //add rconst + eor r7, r7, #0x00000400 //add rconst + eor r8, r8, #0x00004000 //add rconst + eor r9, r9, #0x01000000 //add rconst + mvn r9, r9 //to save a NOT in sbox calculations + strd r8, r9, [r0], #8 //store 1st half tk for 31th round + strd r6, r7, [r0], #8 //store 2nd half tk for 31th round + ldm r0, {r6-r9} //load tk + movw r10, #0xf0f0 + movt r10, #0xf0f0 //r10<- 0xf0f0f0f0 + and r11, r10, r6 //ror and mask to match fixslicing + and r12, r10, r7 //ror and mask to match fixslicing + strd r11, r12, [r0, #24] //store 2nd half tk for 33th round + and r11, r10, r8 //ror and mask to match fixslicing + and r12, r10, r9 //ror and mask to match fixslicing + eor r11, r11, #0x00000014 //add rconst + eor r12, r12, #0x00000050 //add rconst + mvn r12, r12 //to save a NOT in sbox calculations + strd r11, r12, [r0, #16] //store 1st half tk for 33th round + and r10, r10, r10, lsr #2 //r10<- 0x30303030 + and r11, r10, r6, ror #30 //--- ror and masks to match fixslicing + and r6, r6, r10, ror #4 + orr r6, r11, r6, ror #22 + and r11, r10, r7, ror #30 + and r7, r7, r10, ror #4 + orr r7, r11, r7, ror #22 + and r11, r10, r8, ror #30 + and r8, r8, r10, ror #4 + orr r8, r11, r8, ror #22 + and r11, r10, r9, ror #30 + and r9, r9, r10, ror #4 + orr r9, r11, r9, ror #22 //ror and masks to match fixslicing --- + eor r6 ,r6, #0x00000010 + eor r8, r8, #0x00010400 + eor r9, r9, #0x00000400 + mvn r9, r9 //to save a NOT in sbox calculations + strd r6, r7, [r0], #8 //store 1st half tk for 32th round + strd r8, r9, [r0], #24 //store 2nd half tk for 32th round + ldm r0, {r6-r9} //load tk + bl p2 //apply the permutation twice + movw r10, #0xc3c3 + movt r10, #0xc3c3 //r10<- 0xc3c3c3c3 + and r11, r10, r6, ror #26 //ror and mask to match fixslicing + and r12, r10, r7, ror #26 //ror and mask to match fixslicing + strd r11, r12, [r0], #8 //store 1st half tk for 34th round + and r11, r10, r8, ror #26 //ror and mask to match fixslicing + and r12, r10, r9, ror #26 //ror and mask to match fixslicing + eor r11, r11, #0x10000000 //add rconst + eor r11, r11, #0x00000140 //add rconst + eor r12, r12, #0x00000100 //add rconst + mvn r12, r12 //to save a NOT in sbox calculations + strd r11, r12, [r0], #8 //store 2nd half tk for 34th round + and r10, r10, r10, lsr #6 //r10<- 0x03030303 + and r11, r10, r6, ror #28 //--- ror and masks to match fixslicing + and r6, r6, r10, lsl #6 + orr r6, r11, r6, ror #12 + and r11, r10, r7, ror #28 + and r7, r7, r10, lsl #6 + orr r7, r11, r7, ror #12 + and r11, r10, r8, ror #28 + and r8, r8, r10, lsl #6 + orr r8, r11, r8, ror #12 + and r11, r10, r9, ror #28 + and r9, r9, r10, lsl #6 + orr r9, r11, r9, ror #12 //ror and masks to match fixslicing --- + eor r7, r7, #0x04000000 //add rconst + eor r8, r8, #0x44000000 //add rconst + mvn r9, r9 //to save a NOT in sbox calculations + strd r8, r9, [r0], #8 //store 1st half tk for 35th round + strd r6, r7, [r0], #8 //store 2nd half tk for 35th round + ldm r0, {r6-r9} //load tk + bl p4 //apply the permutation 4 times + movw r10, #0xf0f0 + movt r10, #0xf0f0 //r10<- 0xf0f0f0f0 + and r11, r10, r6, ror #16 //ror and mask to match fixslicing + and r12, r10, r7, ror #16 //ror and mask to match fixslicing + eor r11, r11, #0x00400000 //add rconst + strd r11, r12, [r0, #24] //store 2nd half tk for 37th round + and r11, r10, r8, ror #16 //ror and mask to match fixslicing + and r12, r10, r9, ror #16 //ror and mask to match fixslicing + eor r11, r11, #0x00440000 //add rconst + eor r12, r12, #0x00500000 //add rconst + mvn r12, r12 //to save a NOT in sbox calculations + strd r11, r12, [r0, #16] //store 1st half tk for 37th round + and r10, r10, r10, lsr #2 //r10<- 0x30303030 + and r11, r10, r6, ror #14 //--- ror and masks to match fixslicing + and r6, r6, r10, ror #4 + orr r6, r11, r6, ror #6 + and r11, r10, r7, ror #14 + and r7, r7, r10, ror #4 + orr r7, r11, r7, ror #6 + and r11, r10, r8, ror #14 + and r8, r8, r10, ror #4 + orr r8, r11, r8, ror #6 + and r11, r10, r9, ror #14 + and r9, r9, r10, ror #4 + orr r9, r11, r9, ror #6 //ror and masks to match fixslicing --- + eor r6, r6, #0x00100000 //add rconst + eor r7, r7, #0x00100000 //add rconst + eor r8, r8, #0x00000001 //add rconst + eor r9, r9, #0x00100000 //add rconst + mvn r9, r9 //to save a NOT in sbox calculations + strd r6, r7, [r0], #8 //store 1st half tk for 36th round + strd r8, r9, [r0], #24 //store 2nd half tk for 36th round + ldm r0, {r6-r9} //load tk + bl p6 //apply the permutation 6 times + movw r10, #0xc3c3 + movt r10, #0xc3c3 //r10<- 0xc3c3c3c3 + and r11, r10, r6, ror #10 //ror and mask to match fixslicing + and r12, r10, r7, ror #10 //ror and mask to match fixslicing + eor r12, r12, #0x01000000 //add rconst + strd r11, r12, [r0], #8 //store 1st half tk for 38th round + and r11, r10, r8, ror #10 //ror and mask to match fixslicing + and r12, r10, r9, ror #10 //ror and mask to match fixslicing + eor r11, r11, #0x01400000 //add rconst + eor r11, r11, #0x00001000 //add rconst + eor r12, r12, #0x00400000 //add rconst + mvn r12, r12 //to save a NOT in sbox calculations + strd r11, r12, [r0], #8 //store 2nd half tk for 38th round + and r10, r10, r10, lsr #6 //r10<- 0x03030303 + and r11, r10, r6, ror #12 //--- ror and masks to match fixslicing + and r6, r6, r10, lsl #6 + orr r6, r11, r6, ror #28 + and r11, r10, r7, ror #12 + and r7, r7, r10, lsl #6 + orr r7, r11, r7, ror #28 + and r11, r10, r8, ror #12 + and r8, r8, r10, lsl #6 + orr r8, r11, r8, ror #28 + and r11, r10, r9, ror #12 + and r9, r9, r10, lsl #6 + orr r9, r11, r9, ror #28 //ror and masks to match fixslicing --- + eor r6, r6, #0x00000400 //add rconst + eor r7, r7, #0x00000400 //add rconst + eor r8, r8, #0x01000000 + eor r8, r8, #0x00004000 //add rconst + eor r9, r9, #0x00000400 //add rconst + mvn r9, r9 //to save a NOT in sbox calculations + strd r8, r9, [r0], #8 //store 1st half tk for 39th round + strd r6, r7, [r0], #8 //store 2nd half tk for 39th round + ldm r0, {r6-r9} //load tk + bl p8 //apply the permutation 8 times + movw r10, #0xf0f0 + movt r10, #0xf0f0 //r10<- 0xf0f0f0f0 + and r11, r10, r6 //ror and mask to match fixslicing + and r12, r10, r7 //ror and mask to match fixslicing + eor r12, r12, #0x00000040 //add rconst + strd r11, r12, [r0, #24] //store 2nd half tk for 41th round + and r11, r10, r8 //ror and mask to match fixslicing + and r12, r10, r9 //ror and mask to match fixslicing + eor r11, r11, #0x00000014 //add rconst + eor r12, r12, #0x00000010 //add rconst + mvn r12, r12 //to save a NOT in sbox calculations + strd r11, r12, [r0, #16] //store 1st half tk for 41th round + and r10, r10, r10, lsr #2 //r10<- 0x30303030 + and r11, r10, r6, ror #30 //--- ror and masks to match fixslicing + and r6, r6, r10, ror #4 + orr r6, r11, r6, ror #22 + and r11, r10, r7, ror #30 + and r7, r7, r10, ror #4 + orr r7, r11, r7, ror #22 + and r11, r10, r8, ror #30 + and r8, r8, r10, ror #4 + orr r8, r11, r8, ror #22 + and r11, r10, r9, ror #30 + and r9, r9, r10, ror #4 + orr r9, r11, r9, ror #22 //ror and masks to match fixslicing --- + eor r6, r6, #0x00000010 + eor r8, r8, #0x00010000 + eor r8, r8, #0x00000010 + eor r9, r9, #0x00000400 + mvn r9, r9 //to save a NOT in sbox calculations + strd r6, r7, [r0], #8 //store 1st half tk for 40th round + strd r8, r9, [r0], #24 //store 2nd half tk for 40th round + ldm r0, {r6-r9} //load tk + bl p10 //apply the permutation 10 times + movw r10, #0xc3c3 + movt r10, #0xc3c3 //r10<- 0xc3c3c3c3 + and r11, r10, r6, ror #26 //ror and mask to match fixslicing + and r12, r10, r7, ror #26 //ror and mask to match fixslicing + eor r11, r11, #0x00000100 //add rconst + strd r11, r12, [r0], #8 //store 1st half tk for 42th round + and r11, r10, r8, ror #26 //ror and mask to match fixslicing + and r12, r10, r9, ror #26 //ror and mask to match fixslicing + eor r11, r11, #0x10000000 //add rconst + eor r11, r11, #0x00000040 //add rconst + eor r12, r12, #0x00000100 //add rconst + mvn r12, r12 //to save a NOT in sbox calculations + strd r11, r12, [r0], #8 //store 2nd half tk for 42th round + and r10, r10, r10, lsr #6 //r10<- 0x03030303 + and r11, r10, r6, ror #28 //--- ror and masks to match fixslicing + and r6, r6, r10, lsl #6 + orr r6, r11, r6, ror #12 + and r11, r10, r7, ror #28 + and r7, r7, r10, lsl #6 + orr r7, r11, r7, ror #12 + and r11, r10, r8, ror #28 + and r8, r8, r10, lsl #6 + orr r8, r11, r8, ror #12 + and r11, r10, r9, ror #28 + and r9, r9, r10, lsl #6 + orr r9, r11, r9, ror #12 //ror and masks to match fixslicing --- + eor r8, r8, #0x44000000 //add rconst + eor r9, r9, #0x00000100 //add rconst + mvn r9, r9 //to save a NOT in sbox calculations + strd r8, r9, [r0], #8 //store 1st half tk for 43th round + strd r6, r7, [r0], #8 //store 2nd half tk for 43th round + ldm r0, {r6-r9} //load tk + bl p12 //apply the permutation 4 times + movw r10, #0xf0f0 + movt r10, #0xf0f0 //r10<- 0xf0f0f0f0 + and r11, r10, r6, ror #16 //ror and mask to match fixslicing + and r12, r10, r7, ror #16 //ror and mask to match fixslicing + eor r11, r11, #0x00400000 //add rconst + strd r11, r12, [r0, #24] //store 2nd half tk for 45th round + and r11, r10, r8, ror #16 //ror and mask to match fixslicing + and r12, r10, r9, ror #16 //ror and mask to match fixslicing + eor r11, r11, #0x00040000 //add rconst + mvn r12, r12 //to save a NOT in sbox calculations + strd r11, r12, [r0, #16] //store 1st half tk for 45th round + and r10, r10, r10, lsr #2 //r10<- 0x30303030 + and r11, r10, r6, ror #14 //--- ror and masks to match fixslicing + and r6, r6, r10, ror #4 + orr r6, r11, r6, ror #6 + and r11, r10, r7, ror #14 + and r7, r7, r10, ror #4 + orr r7, r11, r7, ror #6 + and r11, r10, r8, ror #14 + and r8, r8, r10, ror #4 + orr r8, r11, r8, ror #6 + and r11, r10, r9, ror #14 + and r9, r9, r10, ror #4 + orr r9, r11, r9, ror #6 //ror and masks to match fixslicing --- + eor r7, r7, #0x00100000 //add rconst + eor r8, r8, #0x04000000 //add rconst + eor r8, r8, #0x00000001 //add rconst + mvn r9, r9 //to save a NOT in sbox calculations + strd r6, r7, [r0], #8 //store 1st half tk for 44th round + strd r8, r9, [r0], #24 //store 2nd half tk for 44th round + ldm r0, {r6-r9} //load tk + bl p14 //apply the permutation 6 times + movw r10, #0xc3c3 + movt r10, #0xc3c3 //r10<- 0xc3c3c3c3 + and r11, r10, r6, ror #10 //ror and mask to match fixslicing + and r12, r10, r7, ror #10 //ror and mask to match fixslicing + strd r11, r12, [r0], #8 //store 1st half tk for 46th round + and r11, r10, r8, ror #10 //ror and mask to match fixslicing + and r12, r10, r9, ror #10 //ror and mask to match fixslicing + eor r11, r11, #0x00001000 //add rconst + eor r12, r12, #0x01400000 //add rconst + mvn r12, r12 //to save a NOT in sbox calculations + strd r11, r12, [r0], #8 //store 2nd half tk for 46th round + and r10, r10, r10, lsr #6 //r10<- 0x03030303 + and r11, r10, r6, ror #12 //--- ror and masks to match fixslicing + and r6, r6, r10, lsl #6 + orr r6, r11, r6, ror #28 + and r11, r10, r7, ror #12 + and r7, r7, r10, lsl #6 + orr r7, r11, r7, ror #28 + and r11, r10, r8, ror #12 + and r8, r8, r10, lsl #6 + orr r8, r11, r8, ror #28 + and r11, r10, r9, ror #12 + and r9, r9, r10, lsl #6 + orr r9, r11, r9, ror #28 //ror and masks to match fixslicing --- + eor r8, r8, #0x01000000 //add rconst + eor r8, r8, #0x00004400 //add rconst + mvn r9, r9 //to save a NOT in sbox calculations + strd r8, r9, [r0], #8 //store 1st half tk for 47th round + strd r6, r7, [r0], #8 //store 2nd half tk for 47th round + ldm r0, {r6-r9} //load tk + movw r10, #0xf0f0 + movt r10, #0xf0f0 //r10<- 0xf0f0f0f0 + and r11, r10, r6 //ror and mask to match fixslicing + and r12, r10, r7 //ror and mask to match fixslicing + eor r11, r11, #0x00000040 //add rconst + strd r11, r12, [r0, #24] //store 2nd half tk for 49th round + and r11, r10, r8 //ror and mask to match fixslicing + and r12, r10, r9 //ror and mask to match fixslicing + eor r11, r11, #0x00000004 //add rconst + eor r12, r12, #0x00000040 //add rconst + mvn r12, r12 //to save a NOT in sbox calculations + strd r11, r12, [r0, #16] //store 1st half tk for 49th round + and r10, r10, r10, lsr #2 //r10<- 0x30303030 + and r11, r10, r6, ror #30 //--- ror and masks to match fixslicing + and r6, r6, r10, ror #4 + orr r6, r11, r6, ror #22 + and r11, r10, r7, ror #30 + and r7, r7, r10, ror #4 + orr r7, r11, r7, ror #22 + and r11, r10, r8, ror #30 + and r8, r8, r10, ror #4 + orr r8, r11, r8, ror #22 + and r11, r10, r9, ror #30 + and r9, r9, r10, ror #4 + orr r9, r11, r9, ror #22 //ror and masks to match fixslicing --- + eor r7 ,r7, #0x00000010 + eor r8, r8, #0x00010000 + mvn r9, r9 //to save a NOT in sbox calculations + strd r6, r7, [r0], #8 //store 1st half tk for 48th round + strd r8, r9, [r0], #24 //store 2nd half tk for 48th round + ldm r0, {r6-r9} //load tk + bl p2 //apply the permutation twice + movw r10, #0xc3c3 + movt r10, #0xc3c3 //r10<- 0xc3c3c3c3 + and r11, r10, r6, ror #26 //ror and mask to match fixslicing + and r12, r10, r7, ror #26 //ror and mask to match fixslicing + strd r11, r12, [r0], #8 //store 1st half tk for 50th round + and r11, r10, r8, ror #26 //ror and mask to match fixslicing + and r12, r10, r9, ror #26 //ror and mask to match fixslicing + eor r11, r11, #0x10000000 //add rconst + eor r11, r11, #0x00000100 //add rconst + eor r12, r12, #0x00000140 //add rconst + mvn r12, r12 //to save a NOT in sbox calculations + strd r11, r12, [r0], #8 //store 2nd half tk for 50th round + and r10, r10, r10, lsr #6 //r10<- 0x03030303 + and r11, r10, r6, ror #28 //--- ror and masks to match fixslicing + and r6, r6, r10, lsl #6 + orr r6, r11, r6, ror #12 + and r11, r10, r7, ror #28 + and r7, r7, r10, lsl #6 + orr r7, r11, r7, ror #12 + and r11, r10, r8, ror #28 + and r8, r8, r10, lsl #6 + orr r8, r11, r8, ror #12 + and r11, r10, r9, ror #28 + and r9, r9, r10, lsl #6 + orr r9, r11, r9, ror #12 //ror and masks to match fixslicing --- + eor r7, r7, #0x04000000 //add rconst + eor r8, r8, #0x44000000 //add rconst + eor r8, r8, #0x00000100 //add rconst + mvn r9, r9 //to save a NOT in sbox calculations + strd r8, r9, [r0], #8 //store 1st half tk for 51th round + strd r6, r7, [r0], #8 //store 2nd half tk for 51th round + ldm r0, {r6-r9} //load tk + bl p4 //apply the permutation 4 times + movw r10, #0xf0f0 + movt r10, #0xf0f0 //r10<- 0xf0f0f0f0 + and r11, r10, r6, ror #16 //ror and mask to match fixslicing + and r12, r10, r7, ror #16 //ror and mask to match fixslicing + eor r11, r11, #0x00400000 //add rconst + strd r11, r12, [r0, #24] //store 2nd half tk for 53th round + and r11, r10, r8, ror #16 //ror and mask to match fixslicing + and r12, r10, r9, ror #16 //ror and mask to match fixslicing + eor r11, r11, #0x00040000 //add rconst + eor r12, r12, #0x00500000 //add rconst + mvn r12, r12 //to save a NOT in sbox calculations + strd r11, r12, [r0, #16] //store 1st half tk for 53th round + and r10, r10, r10, lsr #2 //r10<- 0x30303030 + and r11, r10, r6, ror #14 //--- ror and masks to match fixslicing + and r6, r6, r10, ror #4 + orr r6, r11, r6, ror #6 + and r11, r10, r7, ror #14 + and r7, r7, r10, ror #4 + orr r7, r11, r7, ror #6 + and r11, r10, r8, ror #14 + and r8, r8, r10, ror #4 + orr r8, r11, r8, ror #6 + and r11, r10, r9, ror #14 + and r9, r9, r10, ror #4 + orr r9, r11, r9, ror #6 //ror and masks to match fixslicing --- + eor r6, r6, #0x00100000 //add rconst + eor r7, r7, #0x00100000 //add rconst + eor r8, r8, #0x00000001 //add rconst + mvn r9, r9 //to save a NOT in sbox calculations + strd r6, r7, [r0], #8 //store 1st half tk for 52th round + strd r8, r9, [r0], #24 //store 2nd half tk for 52th round + ldm r0, {r6-r9} //load tk + bl p6 //apply the permutation 6 times + movw r10, #0xc3c3 + movt r10, #0xc3c3 //r10<- 0xc3c3c3c3 + and r11, r10, r6, ror #10 //ror and mask to match fixslicing + and r12, r10, r7, ror #10 //ror and mask to match fixslicing + strd r11, r12, [r0], #8 //store 1st half tk for 54th round + and r11, r10, r8, ror #10 //ror and mask to match fixslicing + and r12, r10, r9, ror #10 //ror and mask to match fixslicing + eor r11, r11, #0x01400000 //add rconst + eor r11, r11, #0x00001000 //add rconst + eor r12, r12, #0x00400000 //add rconst + mvn r12, r12 //to save a NOT in sbox calculations + strd r11, r12, [r0], #8 //store 2nd half tk for 54th round + and r10, r10, r10, lsr #6 //r10<- 0x03030303 + and r11, r10, r6, ror #12 //--- ror and masks to match fixslicing + and r6, r6, r10, lsl #6 + orr r6, r11, r6, ror #28 + and r11, r10, r7, ror #12 + and r7, r7, r10, lsl #6 + orr r7, r11, r7, ror #28 + and r11, r10, r8, ror #12 + and r8, r8, r10, lsl #6 + orr r8, r11, r8, ror #28 + and r11, r10, r9, ror #12 + and r9, r9, r10, lsl #6 + orr r9, r11, r9, ror #28 //ror and masks to match fixslicing --- + eor r7, r7, #0x00000400 //add rconst + eor r8, r8, #0x01000000 + eor r8, r8, #0x00004000 //add rconst + eor r9, r9, #0x00000400 //add rconst + mvn r9, r9 //to save a NOT in sbox calculations + strd r8, r9, [r0], #8 //store 1st half tk for 55th round + strd r6, r7, [r0], #8 //store 2nd half tk for 55th round + ldm r0, {r6-r9} //load tk + bl p8 //apply the permutation 8 times + movw r10, #0x3030 + movt r10, #0x3030 //r10<- 0x30303030 + and r11, r10, r6, ror #30 //--- ror and masks to match fixslicing + and r6, r6, r10, ror #4 + orr r6, r11, r6, ror #22 + and r11, r10, r7, ror #30 + and r7, r7, r10, ror #4 + orr r7, r11, r7, ror #22 + and r11, r10, r8, ror #30 + and r8, r8, r10, ror #4 + orr r8, r11, r8, ror #22 + and r11, r10, r9, ror #30 + and r9, r9, r10, ror #4 + orr r9, r11, r9, ror #22 //ror and masks to match fixslicing --- + eor r6, r6, #0x00000010 + eor r8, r8, #0x00010000 + eor r8, r8, #0x00000010 + mvn r9, r9 //to save a NOT in sbox calculations + strd r6, r7, [r0], #8 //store 1st half tk for 56th round + strd r8, r9, [r0], #24 //store 2nd half tk for 56th round + add.w sp, #4 + pop {r0-r12, lr} + bx lr + +/****************************************************************************** +* Applies the permutations P^2, ..., P^14 for rounds 0 to 16. Since P^16=Id, we +* don't need more calculations as no LFSR is applied to TK1. +******************************************************************************/ +@ void tkschedule_perm_tk1(u32* tk, const u8* key) +.global tkschedule_perm_tk1 +.type tkschedule_perm_tk1,%function +.align 2 +tkschedule_perm_tk1: + push {r0-r12, lr} + ldr.w r3, [r1, #8] //load tk1 (3rd word) + ldr.w r4, [r1, #4] //load tk1 (2nd word) + ldr.w r5, [r1, #12] //load tk1 (4th word) + ldr.w r2, [r1] //load tk1 (1st word) + movw r10, #0x0a0a + movt r10, #0x0a0a //r6 <- 0x0a0a0a0a + movw r11, #0x3030 + movt r11, #0x3030 //r7 <- 0x30303030 + bl packing //pack tk1 + mov r6, r2 //move tk1 from r2-r5 to r6-r9 + mov r7, r3 //move tk1 from r2-r5 to r6-r9 + mov r8, r4 //move tk1 from r2-r5 to r6-r9 + mov r9, r5 //move tk1 from r2-r5 to r6-r9 + movw r2, #0xf0f0 + movt r2, #0xf0f0 //r2<- 0xf0f0f0f0 + and r11, r8, r2 //tk &= 0xf0f0f0f0 (3rd word) + and r12, r9, r2 //tk &= 0xf0f0f0f0 (4th word) + strd r11, r12, [r0], #8 //store 1st half tk for 1st round + and r11, r6, r2 //tk &= 0xf0f0f0f0 (1st word) + and r12, r7, r2 //tk &= 0xf0f0f0f0 (2nd word) + strd r11, r12, [r0], #8 //store 2nd half tk for 1st round + + bl p2 //apply the permutation twice + movw r3, #0x0303 + movt r3, #0x0303 //r3<- 0x03030303 + and r11, r3, r6, ror #28 //--- ror and masks to match fixslicing + and r12, r6, r3, lsl #6 + orr r12, r11, r12, ror #12 + str.w r12, [r0, #8] + and r11, r3, r7, ror #28 + and r12, r7, r3, lsl #6 + orr r12, r11, r12, ror #12 + str.w r12, [r0, #12] + and r11, r3, r9, ror #28 + and r12, r9, r3, lsl #6 + orr r12, r11, r12, ror #12 + str.w r12, [r0, #4] + and r11, r3, r8, ror #28 + and r12, r8, r3, lsl #6 + orr r12, r11, r12, ror #12 + str.w r12, [r0], #16 //ror and masks to match fixslicing --- + bl p2 //apply the permutation 4 times + and r11, r2, r6, ror #16 //ror and mask to match fixslicing + and r12, r2, r7, ror #16 //ror and mask to match fixslicing + strd r11, r12, [r0, #8] //store 2nd half tk for 5th round + and r11, r2, r8, ror #16 //ror and mask to match fixslicing + and r12, r2, r9, ror #16 //ror and mask to match fixslicing + strd r11, r12, [r0], #16 //store 1st half tk for 5th round + bl p2 //apply the permutation 6 times + and r11, r3, r6, ror #12 //--- ror and masks to match fixslicing + and r12, r6, r3, lsl #6 + orr r12, r11, r12, ror #28 + str.w r12, [r0, #8] + and r11, r3, r7, ror #12 + and r12, r7, r3, lsl #6 + orr r12, r11, r12, ror #28 + str.w r12, [r0, #12] + and r11, r3, r9, ror #12 + and r12, r9, r3, lsl #6 + orr r12, r11, r12, ror #28 + str.w r12, [r0, #4] + and r11, r3, r8, ror #12 + and r12, r8, r3, lsl #6 + orr r12, r11, r12, ror #28 + str.w r12, [r0], #16 //ror and masks to match fixslicing --- + bl p2 //apply the permutation 8 times + and r11, r2, r6 //ror and mask to match fixslicing + and r12, r2, r7 //ror and mask to match fixslicing + strd r11, r12, [r0, #8] //store 2nd half tk for 9th round + and r11, r2, r8 //ror and mask to match fixslicing + and r12, r2, r9 //ror and mask to match fixslicing + strd r11, r12, [r0], #16 //store 1st half tk for 9th round + bl p2 //apply the permutation 10 + and r11, r3, r6, ror #28 //--- ror and masks to match fixslicing + and r12, r6, r3, lsl #6 + orr r12, r11, r12, ror #12 + str.w r12, [r0, #8] + and r11, r3, r7, ror #28 + and r12, r7, r3, lsl #6 + orr r12, r11, r12, ror #12 + str.w r12, [r0, #12] + and r11, r3, r9, ror #28 + and r12, r9, r3, lsl #6 + orr r12, r11, r12, ror #12 + str.w r12, [r0, #4] + and r11, r3, r8, ror #28 + and r12, r8, r3, lsl #6 + orr r12, r11, r12, ror #12 + str.w r12, [r0], #16 //ror and masks to match fixslicing --- + bl p2 //apply the permutation 12 times + and r11, r2, r6, ror #16 //ror and mask to match fixslicing + and r12, r2, r7, ror #16 //ror and mask to match fixslicing + strd r11, r12, [r0, #8] //store 2nd half tk for 5th round + and r11, r2, r8, ror #16 //ror and mask to match fixslicing + and r12, r2, r9, ror #16 //ror and mask to match fixslicing + strd r11, r12, [r0], #16 //store 1st half tk for 5th round + bl p2 //apply the permutation 14 times + and r11, r3, r6, ror #12 //--- ror and masks to match fixslicing + and r12, r6, r3, lsl #6 + orr r12, r11, r12, ror #28 + str.w r12, [r0, #8] + and r11, r3, r7, ror #12 + and r12, r7, r3, lsl #6 + orr r12, r11, r12, ror #28 + str.w r12, [r0, #12] + and r11, r3, r9, ror #12 + and r12, r9, r3, lsl #6 + orr r12, r11, r12, ror #28 + str.w r12, [r0, #4] + and r11, r3, r8, ror #12 + and r12, r8, r3, lsl #6 + orr r12, r11, r12, ror #28 + str.w r12, [r0] //ror and masks to match fixslicing --- + pop {r0-r12, lr} + bx lr + +.align 2 +quadruple_round: + orr r8, r2, r3 + eor r5, r5, r8 + mvn r5, r5 + eor r8, r3, r4, lsr #1 + and r8, r8, r6 + eor r3, r3, r8 + eor r4, r4, r8, lsl #1 //SWAPMOVE(r4, r3, 0x55555555, 1); + eor r8, r4, r5, lsr #1 + and r8, r8, r6 + eor r4, r4, r8 + eor r5, r5, r8, lsl #1 //SWAPMOVE(r5, r4, 0x55555555, 1); + orr r8, r4, r5 + eor r3, r3, r8 + mvn r3, r3 + eor r8, r2, r3, lsr #1 + and r8, r8, r6 + eor r2, r2, r8 + eor r3, r3, r8, lsl #1 //SWAPMOVE(r3, r2, 0x55555555, 1); + eor r8, r5, r2, lsr #1 + and r8, r8, r6 + eor r5, r5, r8 + eor r2, r2, r8, lsl #1 //SWAPMOVE(r2, r5, 0x55555555, 1); + orr r8, r2, r3 + eor r5, r5, r8 + mvn r5, r5 + eor r8, r3, r4, lsr #1 + and r8, r8, r6 + eor r3, r3, r8 + eor r4, r4, r8, lsl #1 //SWAPMOVE(r4, r3, 0x55555555, 1); + eor r8, r4, r5, lsr #1 + and r8, r8, r6 + eor r4, r4, r8 + eor r5, r5, r8, lsl #1 //SWAPMOVE(r5, r4, 0x55555555, 1); + orr r8, r4, r5 + eor r3, r3, r8 + eor r8, r2, r5 + and r8, r8, r6 + eor r2, r2, r8 + eor r5, r5, r8 //SWAPMOVE(r5, r2, 0x55555555, 0); + ldmia.w r1!, {r8-r11} //load rkeys in r8,...,r11 + eor r2, r2, r8 //add rtk_2_3 + rconst + eor r3, r3, r9 //add rtk_2_3 + rconst + eor r4, r4, r10 //add rtk_2_3 + rconst + eor r5, r5, r11 //add rtk_2_3 + rconst + ldmia.w r0!,{r8-r11} + eor r2, r2, r8 //add rtk_1 + eor r3, r3, r9 //add rtk_1 + eor r4, r4, r10 //add rtk_1 + eor r5, r5, r11 //add rtk_1 + and r8, r7, r2, ror #30 // --- mixcolumns 0 --- + eor r2, r2, r8, ror #24 + and r8, r7, r2, ror #18 + eor r2, r2, r8, ror #2 + and r8, r7, r2, ror #6 + eor r2, r2, r8, ror #4 + and r8, r7, r3, ror #30 + eor r3, r3, r8, ror #24 + and r8, r7, r3, ror #18 + eor r3, r3, r8, ror #2 + and r8, r7, r3, ror #6 + eor r3, r3, r8, ror #4 + and r8, r7, r4, ror #30 + eor r4, r4, r8, ror #24 + and r8, r7, r4, ror #18 + eor r4, r4, r8, ror #2 + and r8, r7, r4, ror #6 + eor r4, r4, r8, ror #4 + and r8, r7, r5, ror #30 + eor r5, r5, r8, ror #24 + and r8, r7, r5, ror #18 + eor r5, r5, r8, ror #2 + and r8, r7, r5, ror #6 + eor r5, r5, r8, ror #4 + orr r8, r4, r5 + eor r3, r3, r8 + mvn r3, r3 + eor r8, r2, r3, lsr #1 + and r8, r8, r6 + eor r2, r2, r8 + eor r3, r3, r8, lsl #1 //SWAPMOVE(r3, r2, 0x55555555, 1); + eor r8, r5, r2, lsr #1 + and r8, r8, r6 + eor r5, r5, r8 + eor r2, r2, r8, lsl #1 //SWAPMOVE(r2, r5, 0x55555555, 1); + orr r8, r2, r3 + eor r5, r5, r8 + mvn r5, r5 + eor r8, r3, r4, lsr #1 + and r8, r8, r6 + eor r3, r3, r8 + eor r4, r4, r8, lsl #1 //SWAPMOVE(r4, r3, 0x55555555, 1); + eor r8, r4, r5, lsr #1 + and r8, r8, r6 + eor r4, r4, r8 + eor r5, r5, r8, lsl #1 //SWAPMOVE(r5, r4, 0x55555555, 1); + orr r8, r4, r5 + eor r3, r3, r8 + mvn r3, r3 + eor r8, r2, r3, lsr #1 + and r8, r8, r6 + eor r2, r2, r8 + eor r3, r3, r8, lsl #1 //SWAPMOVE(r3, r2, 0x55555555, 1); + eor r8, r5, r2, lsr #1 + and r8, r8, r6 + eor r5, r5, r8 + eor r2, r2, r8, lsl #1 //SWAPMOVE(r2, r5, 0x55555555, 1); + orr r8, r2, r3 + eor r5, r5, r8 + eor r8, r3, r4 + and r8, r8, r6 + eor r3, r3, r8 + eor r4, r4, r8 //SWAPMOVE(r4, r3, 0x55555555, 0); + ldmia.w r1!, {r8-r11} //load rkeys in r8,...,r11 + eor r2, r2, r8 //add rkey + rconst + eor r3, r3, r9 //add rkey + rconst + eor r4, r4, r10 //add rkey + rconst + eor r5, r5, r11 //add rkey + rconst + and r8, r7, r2, ror #16 // --- mixcolumns 1 --- + eor r2, r2, r8, ror #30 + and r8, r7, r2, ror #28 + eor r2, r2, r8 + and r8, r7, r2, ror #16 + eor r2, r2, r8, ror #2 + and r8, r7, r3, ror #16 + eor r3, r3, r8, ror #30 + and r8, r7, r3, ror #28 + eor r3, r3, r8 + and r8, r7, r3, ror #16 + eor r3, r3, r8, ror #2 + and r8, r7, r4, ror #16 + eor r4, r4, r8, ror #30 + and r8, r7, r4, ror #28 + eor r4, r4, r8 + and r8, r7, r4, ror #16 + eor r4, r4, r8, ror #2 + and r8, r7, r5, ror #16 + eor r5, r5, r8, ror #30 + and r8, r7, r5, ror #28 + eor r5, r5, r8 + and r8, r7, r5, ror #16 + eor r5, r5, r8, ror #2 + orr r8, r2, r3 + eor r5, r5, r8 + mvn r5, r5 + eor r8, r3, r4, lsr #1 + and r8, r8, r6 + eor r3, r3, r8 + eor r4, r4, r8, lsl #1 //SWAPMOVE(r4, r3, 0x55555555, 1); + eor r8, r4, r5, lsr #1 + and r8, r8, r6 + eor r4, r4, r8 + eor r5, r5, r8, lsl #1 //SWAPMOVE(r5, r4, 0x55555555, 1); + orr r8, r4, r5 + eor r3, r3, r8 + mvn r3, r3 + eor r8, r2, r3, lsr #1 + and r8, r8, r6 + eor r2, r2, r8 + eor r3, r3, r8, lsl #1 //SWAPMOVE(r3, r2, 0x55555555, 1); + eor r8, r5, r2, lsr #1 + and r8, r8, r6 + eor r5, r5, r8 + eor r2, r2, r8, lsl #1 //SWAPMOVE(r2, r5, 0x55555555, 1); + orr r8, r2, r3 + eor r5, r5, r8 + mvn r5, r5 + eor r8, r3, r4, lsr #1 + and r8, r8, r6 + eor r3, r3, r8 + eor r4, r4, r8, lsl #1 //SWAPMOVE(r4, r3, 0x55555555, 1); + eor r8, r4, r5, lsr #1 + and r8, r8, r6 + eor r4, r4, r8 + eor r5, r5, r8, lsl #1 //SWAPMOVE(r5, r4, 0x55555555, 1); + orr r8, r4, r5 + eor r3, r3, r8 + eor r8, r2, r5 + and r8, r8, r6 + eor r2, r2, r8 + eor r5, r5, r8 //SWAPMOVE(r5, r2, 0x55555555, 0); + ldmia.w r1!, {r8-r11} //load rkeys in r8,...,r11 + eor r2, r2, r8 //add rtk_2_3 + rconst + eor r3, r3, r9 //add rtk_2_3 + rconst + eor r4, r4, r10 //add rtk_2_3 + rconst + eor r5, r5, r11 //add rtk_2_3 + rconst + ldmia.w r0!,{r8-r11} + eor r2, r2, r8 //add rtk_1 + eor r3, r3, r9 //add rtk_1 + eor r4, r4, r10 //add rtk_1 + eor r5, r5, r11 //add rtk_1 + and r8, r7, r2, ror #10 // --- mixcolumns 2 --- + eor r2, r2, r8, ror #4 + and r8, r7, r2, ror #6 + eor r2, r2, r8, ror #6 + and r8, r7, r2, ror #26 + eor r2, r2, r8 + and r8, r7, r3, ror #10 + eor r3, r3, r8, ror #4 + and r8, r7, r3, ror #6 + eor r3, r3, r8, ror #6 + and r8, r7, r3, ror #26 + eor r3, r3, r8 + and r8, r7, r4, ror #10 + eor r4, r4, r8, ror #4 + and r8, r7, r4, ror #6 + eor r4, r4, r8, ror #6 + and r8, r7, r4, ror #26 + eor r4, r4, r8 + and r8, r7, r5, ror #10 + eor r5, r5, r8, ror #4 + and r8, r7, r5, ror #6 + eor r5, r5, r8, ror #6 + and r8, r7, r5, ror #26 + eor r5, r5, r8 + orr r8, r4, r5 + eor r3, r3, r8 + mvn r3, r3 + eor r8, r2, r3, lsr #1 + and r8, r8, r6 + eor r2, r2, r8 + eor r3, r3, r8, lsl #1 //SWAPMOVE(r3, r2, 0x55555555, 1); + eor r8, r5, r2, lsr #1 + and r8, r8, r6 + eor r5, r5, r8 + eor r2, r2, r8, lsl #1 //SWAPMOVE(r2, r5, 0x55555555, 1); + orr r8, r2, r3 + eor r5, r5, r8 + mvn r5, r5 + eor r8, r3, r4, lsr #1 + and r8, r8, r6 + eor r3, r3, r8 + eor r4, r4, r8, lsl #1 //SWAPMOVE(r4, r3, 0x55555555, 1); + eor r8, r4, r5, lsr #1 + and r8, r8, r6 + eor r4, r4, r8 + eor r5, r5, r8, lsl #1 //SWAPMOVE(r5, r4, 0x55555555, 1); + orr r8, r4, r5 + eor r3, r3, r8 + mvn r3, r3 + eor r8, r2, r3, lsr #1 + and r8, r8, r6 + eor r2, r2, r8 + eor r3, r3, r8, lsl #1 //SWAPMOVE(r3, r2, 0x55555555, 1); + eor r8, r5, r2, lsr #1 + and r8, r8, r6 + eor r5, r5, r8 + eor r2, r2, r8, lsl #1 //SWAPMOVE(r2, r5, 0x55555555, 1); + orr r8, r2, r3 + eor r5, r5, r8 + eor r8, r3, r4 + and r8, r8, r6 + eor r3, r3, r8 + eor r4, r4, r8 //SWAPMOVE(r4, r3, 0x55555555, 0); + ldmia r1!, {r8-r11} //load rkeys in r8,...,r11 + eor r2, r2, r8 //add rkey + rconst + eor r3, r3, r9 //add rkey + rconst + eor r4, r4, r10 //add rkey + rconst + eor r5, r5, r11 //add rkey + rconst + and r8, r7, r2, ror #4 // --- mixcolumns 3 --- + eor r2, r2, r8, ror #26 + and r8, r7, r2 + eor r2, r2, r8, ror #4 + and r8, r7, r2, ror #4 + eor r2, r2, r8, ror #22 + and r8, r7, r3, ror #4 + eor r3, r3, r8, ror #26 + and r8, r7, r3 + eor r3, r3, r8, ror #4 + and r8, r7, r3, ror #4 + eor r3, r3, r8, ror #22 + and r8, r7, r4, ror #4 + eor r4, r4, r8, ror #26 + and r8, r7, r4 + eor r4, r4, r8, ror #4 + and r8, r7, r4, ror #4 + eor r4, r4, r8, ror #22 + and r8, r7, r5, ror #4 + eor r5, r5, r8, ror #26 + and r8, r7, r5 + eor r5, r5, r8, ror #4 + and r8, r7, r5, ror #4 + eor r5, r5, r8, ror #22 + bx lr + +/****************************************************************************** +* Encrypt a single block using fixsliced SKINNY-128-128. +******************************************************************************/ +@ void skinny128_384(u8* ctext, const u32* tk, const u8* ptext, const u32* rtk1) +.global skinny128_384 +.type skinny128_384,%function +.align 2 +skinny128_384: + push {r0-r12, r14} + mov.w r0, r3 + ldr.w r3, [r2, #8] + ldr.w r4, [r2, #4] + ldr.w r5, [r2, #12] + ldr.w r2, [r2] + movw r6, #0x0a0a + movt r6, #0x0a0a //r6 <- 0x0a0a0a0a + movw r7, #0x3030 + movt r7, #0x3030 //r7 <- 0x30303030 + eor r12, r2, r2, lsr #3 + and r12, r12, r6 + eor r2, r2, r12 + eor r2, r2, r12, lsl #3 //SWAPMOVE(r2, r2, 0x0a0a0a0a, 3) + eor r12, r3, r3, lsr #3 + and r12, r12, r6 + eor r3, r3, r12 + eor r3, r3, r12, lsl #3 //SWAPMOVE(r3, r3, 0x0a0a0a0a, 3) + eor r12, r4, r4, lsr #3 + and r12, r12, r6 + eor r4, r4, r12 + eor r4, r4, r12, lsl #3 //SWAPMOVE(r4, r4, 0x0a0a0a0a, 3) + eor r12, r5, r5, lsr #3 + and r12, r12, r6 + eor r5, r5, r12 + eor r5, r5, r12, lsl #3 //SWAPMOVE(r5, r5, 0x0a0a0a0a, 3) + eor r12, r2, r4, lsr #2 + and r12, r12, r7 + eor r2, r2, r12 + eor r4, r4, r12, lsl #2 //SWAPMOVE(r4, r2, 0x30303030, 2) + eor r12, r2, r3, lsr #4 + and r12, r12, r7, lsr #2 + eor r2, r2, r12 + eor r3, r3, r12, lsl #4 //SWAPMOVE(r3, r2, 0x0c0c0c0c, 4) + eor r12, r2, r5, lsr #6 + and r12, r12, r7, lsr #4 + eor r2, r2, r12 + eor r5, r5, r12, lsl #6 //SWAPMOVE(r5, r2, 0x03030303, 6) + eor r12, r4, r3, lsr #2 + and r12, r12, r7, lsr #2 + eor r4, r4, r12 + eor r3, r3, r12, lsl #2 //SWAPMOVE(r3, r4, 0x0c0c0c0c, 2) + eor r12, r4, r5, lsr #4 + and r12, r12, r7, lsr #4 + eor r4, r4, r12 + eor r5, r5, r12, lsl #4 //SWAPMOVE(r5, r4, 0x03030303, 4) + eor r12, r3, r5, lsr #2 + and r12, r12, r7, lsr #4 + eor r3, r3, r12 + eor r5, r5, r12, lsl #2 //SWAPMOVE(r5, r3, 0x03030303, 2) + movw r6, #0x5555 + movt r6, #0x5555 //r6 <- 0x55555555 + bl quadruple_round + bl quadruple_round + bl quadruple_round + bl quadruple_round + sub.w r0, #128 // rtk1 repeats every 16 rounds + bl quadruple_round + bl quadruple_round + bl quadruple_round + bl quadruple_round + sub.w r0, #128 // rtk1 repeats every 16 rounds + bl quadruple_round + bl quadruple_round + bl quadruple_round + bl quadruple_round + sub.w r0, #128 // rtk1 repeats every 16 rounds + bl quadruple_round + bl quadruple_round + movw r6, #0x0a0a + movt r6, #0x0a0a //r6 <- 0x0a0a0a0a + eor r10, r3, r5, lsr #2 + and r10, r10, r7, lsr #4 + eor r3, r3, r10 + eor r5, r5, r10, lsl #2 //SWAPMOVE(r5, r3, 0x03030303, 2) + eor r10, r4, r5, lsr #4 + and r10, r10, r7, lsr #4 + eor r4, r4, r10 + eor r5, r5, r10, lsl #4 //SWAPMOVE(r5, r4, 0x03030303, 4) + eor r10, r4, r3, lsr #2 + and r10, r10, r7, lsr #2 + eor r4, r4, r10 + eor r3, r3, r10, lsl #2 //SWAPMOVE(r3, r4, 0x0c0c0c0c, 2) + eor r10, r2, r5, lsr #6 + and r10, r10, r7, lsr #4 + eor r2, r2, r10 + eor r5, r5, r10, lsl #6 //SWAPMOVE(r5, r2, 0x03030303, 6) + eor r10, r2, r3, lsr #4 + and r10, r10, r7, lsr #2 + eor r2, r2, r10 + eor r3, r3, r10, lsl #4 //SWAPMOVE(r3, r2, 0x0c0c0c0c, 4) + eor r10, r2, r4, lsr #2 + and r10, r10, r7 + eor r2, r2, r10 + eor r4, r4, r10, lsl #2 //SWAPMOVE(r4, r2, 0x30303030, 2) + eor r10, r5, r5, lsr #3 + and r10, r10, r6 + eor r5, r5, r10 + eor r5, r5, r10, lsl #3 //SWAPMOVE(r5, r5, 0x0a0a0a0a, 3) + eor r10, r4, r4, lsr #3 + and r10, r10, r6 + eor r4, r4, r10 + eor r4, r4, r10, lsl #3 //SWAPMOVE(r4, r4, 0x0a0a0a0a, 3) + eor r10, r3, r3, lsr #3 + and r10, r10, r6 + eor r3, r3, r10 + eor r3, r3, r10, lsl #3 //SWAPMOVE(r3, r3, 0x0a0a0a0a, 3) + eor r10, r2, r2, lsr #3 + and r10, r10, r6 + eor r2, r2, r10 + eor r2, r2, r10, lsl #3 //SWAPMOVE(r2, r2, 0x0a0a0a0a, 3) + ldr.w r0, [sp], #4 + strd r2, r4, [r0] + strd r3, r5, [r0, #8] + pop {r1-r12,r14} + bx lr + \ No newline at end of file diff --git a/romulus/Implementations/crypto_aead/romulusn1/armsrc_NEC/api.h b/romulus/Implementations/crypto_aead/romulusn1/armsrc_NEC/api.h new file mode 100644 index 0000000..a4aa567 --- /dev/null +++ b/romulus/Implementations/crypto_aead/romulusn1/armsrc_NEC/api.h @@ -0,0 +1,5 @@ +#define CRYPTO_KEYBYTES 16 +#define CRYPTO_NSECBYTES 0 +#define CRYPTO_NPUBBYTES 16 +#define CRYPTO_ABYTES 16 +#define CRYPTO_NOOVERLAP 1 diff --git a/romulus/Implementations/crypto_aead/romulusn1/armsrc_NEC/crypto_aead.h b/romulus/Implementations/crypto_aead/romulusn1/armsrc_NEC/crypto_aead.h new file mode 100644 index 0000000..cfc09d6 --- /dev/null +++ b/romulus/Implementations/crypto_aead/romulusn1/armsrc_NEC/crypto_aead.h @@ -0,0 +1,11 @@ +int crypto_aead_encrypt(unsigned char *c, unsigned long long *clen, + const unsigned char *m, unsigned long long mlen, + const unsigned char *ad, unsigned long long adlen, + const unsigned char *nsec, const unsigned char *npub, + const unsigned char *k); + +int crypto_aead_decrypt(unsigned char *m, unsigned long long *outputmlen, + unsigned char *nsec, + const unsigned char *c, unsigned long long clen, + const unsigned char *ad, unsigned long long adlen, + const unsigned char *npub, const unsigned char *k); diff --git a/romulus/Implementations/crypto_aead/romulusn1/armsrc_NEC/encrypt.c b/romulus/Implementations/crypto_aead/romulusn1/armsrc_NEC/encrypt.c new file mode 100644 index 0000000..5a7d0e0 --- /dev/null +++ b/romulus/Implementations/crypto_aead/romulusn1/armsrc_NEC/encrypt.c @@ -0,0 +1,541 @@ +/* + * Date: 29 November 2018 + * Contact: Thomas Peyrin - thomas.peyrin@gmail.com + * Mustafa Khairallah - mustafam001@e.ntu.edu.sg + */ + +#include "crypto_aead.h" +#include "api.h" +#include "skinny.h" +#include +#include + +void pad (const unsigned char* m, unsigned char* mp, int l, int len8) { + int i; + + for (i = 0; i < l; i++) { + if (i < len8) { + mp[i] = m[i]; + } + else if (i == l - 1) { + mp[i] = (len8 & 0x0f); + } + else { + mp[i] = 0x00; + } + } + +} + +void g8A (unsigned char* s, unsigned char* c) { + unsigned int tmps[4]; + unsigned int tmpc[4]; + + tmps[0] = *((unsigned int *)&s[0]); + tmps[1] = *((unsigned int *)&s[4]); + tmps[2] = *((unsigned int *)&s[8]); + tmps[3] = *((unsigned int *)&s[12]); + + // c[i] = (s[i] >> 1) ^ (s[i] & 0x80) ^ ((s[i] & 0x01) << 7); + // + // (s[i] >> 1) -> ((s[i]>>1)&0x7f) + // (s[i] & 0x80) -> (s[i])&0x80) not changed + // ((s[i] & 0x01) << 7) -> ((s[i]<<7)&0x80) + + // use word access because of speeding up + tmpc[0] = ((tmps[0]>>1) & 0x7f7f7f7f) ^ (tmps[0] & 0x80808080) ^ ((tmps[0]<<7) & 0x80808080); + tmpc[1] = ((tmps[1]>>1) & 0x7f7f7f7f) ^ (tmps[1] & 0x80808080) ^ ((tmps[1]<<7) & 0x80808080); + tmpc[2] = ((tmps[2]>>1) & 0x7f7f7f7f) ^ (tmps[2] & 0x80808080) ^ ((tmps[2]<<7) & 0x80808080); + tmpc[3] = ((tmps[3]>>1) & 0x7f7f7f7f) ^ (tmps[3] & 0x80808080) ^ ((tmps[3]<<7) & 0x80808080); + + *((unsigned int *)&c[0]) = tmpc[0]; + *((unsigned int *)&c[4]) = tmpc[1]; + *((unsigned int *)&c[8]) = tmpc[2]; + *((unsigned int *)&c[12]) = tmpc[3]; +} + +void g8A_for_Tag_Generation (unsigned char* s, unsigned char* c) { + unsigned int tmps[4]; + unsigned int tmpc[4]; + + tmps[0] = *((unsigned int *)&s[0]); + tmps[1] = *((unsigned int *)&s[4]); + tmps[2] = *((unsigned int *)&s[8]); + tmps[3] = *((unsigned int *)&s[12]); + + // c[i] = (s[i] >> 1) ^ (s[i] & 0x80) ^ ((s[i] & 0x01) << 7); + // + // (s[i] >> 1) -> ((s[i]>>1)&0x7f) + // (s[i] & 0x80) -> (s[i])&0x80) not changed + // ((s[i] & 0x01) << 7) -> ((s[i]<<7)&0x80) + + // use word access because of speeding up + tmpc[0] = ((tmps[0]>>1) & 0x7f7f7f7f) ^ (tmps[0] & 0x80808080) ^ ((tmps[0]<<7) & 0x80808080); + tmpc[1] = ((tmps[1]>>1) & 0x7f7f7f7f) ^ (tmps[1] & 0x80808080) ^ ((tmps[1]<<7) & 0x80808080); + tmpc[2] = ((tmps[2]>>1) & 0x7f7f7f7f) ^ (tmps[2] & 0x80808080) ^ ((tmps[2]<<7) & 0x80808080); + tmpc[3] = ((tmps[3]>>1) & 0x7f7f7f7f) ^ (tmps[3] & 0x80808080) ^ ((tmps[3]<<7) & 0x80808080); + + // use byte access because of memory alignment. + // c is not always in word(4 byte) alignment. + c[0] = tmpc[0] &0xFF; + c[1] = (tmpc[0]>>8) &0xFF; + c[2] = (tmpc[0]>>16)&0xFF; + c[3] = (tmpc[0]>>24)&0xFF; + c[4] = tmpc[1] &0xFF; + c[5] = (tmpc[1]>>8) &0xFF; + c[6] = (tmpc[1]>>16)&0xFF; + c[7] = (tmpc[1]>>24)&0xFF; + c[8] = tmpc[2] &0xFF; + c[9] = (tmpc[2]>>8) &0xFF; + c[10] = (tmpc[2]>>16)&0xFF; + c[11] = (tmpc[2]>>24)&0xFF; + c[12] = tmpc[3] &0xFF; + c[13] = (tmpc[3]>>8) &0xFF; + c[14] = (tmpc[3]>>16)&0xFF; + c[15] = (tmpc[3]>>24)&0xFF; +} + +void rho_ad_eqov16 (const unsigned char* m, + unsigned char* s) { + *((unsigned int *)&s[0]) ^= *((unsigned int *)&m[0]); + *((unsigned int *)&s[4]) ^= *((unsigned int *)&m[4]); + *((unsigned int *)&s[8]) ^= *((unsigned int *)&m[8]); + *((unsigned int *)&s[12]) ^= *((unsigned int *)&m[12]); +} + +void rho_ad_ud16 (const unsigned char* m, + unsigned char* s, + int len8) { + unsigned char mp [16]; + + pad(m,mp,16,len8); + *((unsigned int *)&s[0]) ^= *((unsigned int *)&mp[0]); + *((unsigned int *)&s[4]) ^= *((unsigned int *)&mp[4]); + *((unsigned int *)&s[8]) ^= *((unsigned int *)&mp[8]); + *((unsigned int *)&s[12]) ^= *((unsigned int *)&mp[12]); +} + +void rho_eqov16 (const unsigned char* m, + unsigned char* c, + unsigned char* s) { + g8A(s,c); + + *((unsigned int *)&s[0]) ^= *((unsigned int *)&m[0]); + *((unsigned int *)&s[4]) ^= *((unsigned int *)&m[4]); + *((unsigned int *)&s[8]) ^= *((unsigned int *)&m[8]); + *((unsigned int *)&s[12]) ^= *((unsigned int *)&m[12]); + + *((unsigned int *)&c[0]) ^= *((unsigned int *)&m[0]); + *((unsigned int *)&c[4]) ^= *((unsigned int *)&m[4]); + *((unsigned int *)&c[8]) ^= *((unsigned int *)&m[8]); + *((unsigned int *)&c[12]) ^= *((unsigned int *)&m[12]); +} + +void rho_ud16 (const unsigned char* m, + unsigned char* c, + unsigned char* s, + int len8, + int ver) { + int i; + unsigned char mp [16]; + + pad(m,mp,ver,len8); + + g8A(s,c); + *((unsigned int *)&s[0]) ^= *((unsigned int *)&mp[0]); + *((unsigned int *)&s[4]) ^= *((unsigned int *)&mp[4]); + *((unsigned int *)&s[8]) ^= *((unsigned int *)&mp[8]); + *((unsigned int *)&s[12]) ^= *((unsigned int *)&mp[12]); + for (i = 0; i < ver; i++) { + if (i < len8) { + c[i] = c[i] ^ mp[i]; + } + else { + c[i] = 0; + } + } +} + +void irho (unsigned char* m, + const unsigned char* c, + unsigned char* s, + int len8, + int ver) { + int i; + unsigned char cp [16]; + + pad(c,cp,ver,len8); + + g8A(s,m); + for (i = 0; i < ver; i++) { + if (i < len8) { + s[i] = s[i] ^ cp[i] ^ m[i]; + } + else { + s[i] = s[i] ^ cp[i]; + } + if (i < len8) { + m[i] = m[i] ^ cp[i]; + } + else { + m[i] = 0; + } + } +} + +void reset_lfsr_gf56 (unsigned char* CNT) { + *((unsigned int *)&CNT[0]) = 0x00000001; + *((unsigned int *)&CNT[4]) = 0x00000000; +} + +void lfsr_gf56 (unsigned char* CNT) { + unsigned int tmpCNT[2]; + unsigned int fb0; + + tmpCNT[0] = *((unsigned int *)&CNT[0]); // CNT3 CNT2 CNT1 CNT0 + tmpCNT[1] = *((unsigned int *)&CNT[4]); // CNT7 CNT6 CNT5 CNT4 + + fb0 = 0; + if ((tmpCNT[1] >> 23)&0x01) { + fb0 = 0x95; + } + + tmpCNT[1] = tmpCNT[1] << 1 | tmpCNT[0] >> 31; + tmpCNT[0] = tmpCNT[0] << 1 ^ fb0; + + *((unsigned int *)&CNT[0]) = tmpCNT[0]; + *((unsigned int *)&CNT[4]) = tmpCNT[1]; +} + +void block_cipher(unsigned char* s, + const unsigned char* k, unsigned char* T, + unsigned char* CNT, + skinny_ctrl* p_skinny_ctrl) { + p_skinny_ctrl->func_skinny_128_384_enc (s,p_skinny_ctrl,CNT,T,k); +} + +void nonce_encryption (const unsigned char* N, + unsigned char* CNT, + unsigned char*s, const unsigned char* k, + unsigned char D, + skinny_ctrl* p_skinny_ctrl) { + unsigned char T [16]; + + *((unsigned int *)&T[0]) = *((unsigned int *)&N[0]); + *((unsigned int *)&T[4]) = *((unsigned int *)&N[4]); + *((unsigned int *)&T[8]) = *((unsigned int *)&N[8]); + *((unsigned int *)&T[12]) = *((unsigned int *)&N[12]); + CNT[7] = D; + block_cipher(s,k,T,CNT,p_skinny_ctrl); + +} + +void generate_tag (unsigned char** c, unsigned char* s, + int n, unsigned long long* clen) { + g8A_for_Tag_Generation(s, *c); + *c = *c + n; + *c = *c - *clen; +} + +unsigned long long msg_encryption_eqov16 (const unsigned char** M, unsigned char** c, + const unsigned char* N, + unsigned char* CNT, + unsigned char*s, const unsigned char* k, + unsigned char D, + unsigned long long mlen, + skinny_ctrl* p_skinny_ctrl) { + rho_eqov16(*M, *c, s); + *c = *c + 16; + *M = *M + 16; + lfsr_gf56(CNT); + nonce_encryption(N,CNT,s,k,D,p_skinny_ctrl); + return mlen - 16; +} + +unsigned long long msg_encryption_ud16 (const unsigned char** M, unsigned char** c, + const unsigned char* N, + unsigned char* CNT, + unsigned char*s, const unsigned char* k, + unsigned char D, + unsigned long long mlen, + skinny_ctrl* p_skinny_ctrl) { + rho_ud16(*M, *c, s, mlen, 16); + *c = *c + mlen; + *M = *M + mlen; + lfsr_gf56(CNT); + nonce_encryption(N,CNT,s,k,D,p_skinny_ctrl); + return 0; +} + +unsigned long long msg_decryption (unsigned char** M, const unsigned char** c, + const unsigned char* N, + unsigned char* CNT, + unsigned char*s, const unsigned char* k, + unsigned char D, + unsigned long long clen, + skinny_ctrl* p_skinny_ctrl) { + int len8; + + if (clen >= 16) { + len8 = 16; + clen = clen - 16; + } + else { + len8 = clen; + clen = 0; + } + irho(*M, *c, s, len8, 16); + *c = *c + len8; + *M = *M + len8; + lfsr_gf56(CNT); + nonce_encryption(N,CNT,s,k,D,p_skinny_ctrl); + return clen; +} + +unsigned long long ad_encryption_eqov32 (const unsigned char** A, unsigned char* s, + const unsigned char* k, unsigned long long adlen, + unsigned char* CNT, + unsigned char D, + skinny_ctrl* p_skinny_ctrl) { + + unsigned char T [16]; + + rho_ad_eqov16(*A, s); + *A = *A + 16; + lfsr_gf56(CNT); + + //pad(*A, T, 16, 16); + *((unsigned int *)&T[0]) = *((unsigned int *)&(*A)[0]); + *((unsigned int *)&T[4]) = *((unsigned int *)&(*A)[4]); + *((unsigned int *)&T[8]) = *((unsigned int *)&(*A)[8]); + *((unsigned int *)&T[12]) = *((unsigned int *)&(*A)[12]); + *A = *A + 16; + CNT[7] = D; + block_cipher(s,k,T,CNT,p_skinny_ctrl); + lfsr_gf56(CNT); + + return adlen - 32; +} + +unsigned long long ad_encryption_ov16 (const unsigned char** A, unsigned char* s, + const unsigned char* k, unsigned long long adlen, + unsigned char* CNT, + unsigned char D, + skinny_ctrl* p_skinny_ctrl) { + + unsigned char T [16]; + + adlen = adlen - 16; + rho_ad_eqov16(*A, s); + *A = *A + 16; + lfsr_gf56(CNT); + + pad(*A, T, 16, adlen); + *A = *A + adlen; + CNT[7] = D; + block_cipher(s,k,T,CNT,p_skinny_ctrl); + lfsr_gf56(CNT); + + return 0; +} + +unsigned long long ad_encryption_eq16 (const unsigned char** A, unsigned char* s, + unsigned char* CNT) { + + rho_ad_eqov16(*A, s); + *A = *A + 16; + lfsr_gf56(CNT); + + return 0; +} + +unsigned long long ad_encryption_ud16 (const unsigned char** A, unsigned char* s, + unsigned long long adlen, + unsigned char* CNT) { + + rho_ad_ud16(*A, s, adlen); + *A = *A + adlen; + lfsr_gf56(CNT); + + return 0; +} + +int crypto_aead_encrypt ( + unsigned char* c, unsigned long long* clen, + const unsigned char* m, unsigned long long mlen, + const unsigned char* ad, unsigned long long adlen, + const unsigned char* nsec, + const unsigned char* npub, + const unsigned char* k + ) +{ + unsigned char s[16]; + // size 7 -> 8 for word access + unsigned char CNT[8]; + const unsigned char* A; + const unsigned char* M; + const unsigned char* N; + + skinny_ctrl l_skinny_ctrl; + + (void) nsec; + A = ad; + M = m; + N = npub; + + l_skinny_ctrl.func_skinny_128_384_enc = skinny_128_384_enc123_12; + + *((unsigned int *)&s[0]) = 0x00000000; + *((unsigned int *)&s[4]) = 0x00000000; + *((unsigned int *)&s[8]) = 0x00000000; + *((unsigned int *)&s[12]) = 0x00000000; + reset_lfsr_gf56(CNT); + + if (adlen == 0) { // AD is an empty string + lfsr_gf56(CNT); + nonce_encryption(N,CNT,s,k,0x1a,&l_skinny_ctrl); + } + else while (adlen > 0) { + if (adlen < 16) { // The last block of AD is odd and incomplete + adlen = ad_encryption_ud16(&A,s,adlen,CNT); + nonce_encryption(N,CNT,s,k,0x1a,&l_skinny_ctrl); + } + else if (adlen == 16) { // The last block of AD is odd and complete + adlen = ad_encryption_eq16(&A,s,CNT); + nonce_encryption(N,CNT,s,k,0x18,&l_skinny_ctrl); + } + else if (adlen < (32)) { // The last block of AD is even and incomplete + adlen = ad_encryption_ov16(&A,s,k,adlen,CNT,0x08,&l_skinny_ctrl); + nonce_encryption(N,CNT,s,k,0x1a,&l_skinny_ctrl); + } + else if (adlen == (32)) { // The last block of AD is even and complete + adlen = ad_encryption_eqov32(&A,s,k,adlen,CNT,0x08,&l_skinny_ctrl); + nonce_encryption(N,CNT,s,k,0x18,&l_skinny_ctrl); + } + else { // A normal full pair of blocks of AD + adlen = ad_encryption_eqov32(&A,s,k,adlen,CNT,0x08,&l_skinny_ctrl); + } + } + + // because, nonce_encryption is called at the last block of AD encryption + l_skinny_ctrl.func_skinny_128_384_enc = skinny_128_384_enc1_1; + + reset_lfsr_gf56(CNT); + + *clen = mlen + 16; + + if (mlen == 0) { // M is an empty string + lfsr_gf56(CNT); + nonce_encryption(N,CNT,s,k,0x15,&l_skinny_ctrl); + } + else while (mlen > 0) { + if (mlen < 16) { // The last block of M is incomplete + mlen = msg_encryption_ud16(&M,&c,N,CNT,s,k,0x15,mlen,&l_skinny_ctrl); + } + else if (mlen == 16) { // The last block of M is complete + mlen = msg_encryption_eqov16(&M,&c,N,CNT,s,k,0x14,mlen,&l_skinny_ctrl); + } + else { // A normal full message block + mlen = msg_encryption_eqov16(&M,&c,N,CNT,s,k,0x04,mlen,&l_skinny_ctrl); + } + } + + // Tag generation + generate_tag(&c,s,16,clen); + + return 0; +} + +int crypto_aead_decrypt( +unsigned char *m,unsigned long long *mlen, +unsigned char *nsec, +const unsigned char *c,unsigned long long clen, +const unsigned char *ad,unsigned long long adlen, +const unsigned char *npub, +const unsigned char *k +) +{ + + unsigned char s[16]; + unsigned char T[16]; + // size 7 -> 8 for word access + unsigned char CNT[8]; + const unsigned char* A; + unsigned char* M; + const unsigned char* N; + unsigned int i; + + skinny_ctrl l_skinny_ctrl; + + (void) nsec; + A = ad; + M = m; + N = npub; + + l_skinny_ctrl.func_skinny_128_384_enc = skinny_128_384_enc123_12; + + for (i = 0; i < 16; i++) { + s[i] = 0; + } + reset_lfsr_gf56(CNT); + + if (adlen == 0) { // AD is an empty string + lfsr_gf56(CNT); + nonce_encryption(N,CNT,s,k,0x1a,&l_skinny_ctrl); + } + else while (adlen > 0) { + if (adlen < 16) { // The last block of AD is odd and incomplete + adlen = ad_encryption_ud16(&A,s,adlen,CNT); + nonce_encryption(N,CNT,s,k,0x1a,&l_skinny_ctrl); + } + else if (adlen == 16) { // The last block of AD is odd and complete + adlen = ad_encryption_eq16(&A,s,CNT); + nonce_encryption(N,CNT,s,k,0x18,&l_skinny_ctrl); + } + else if (adlen < (32)) { // The last block of AD is even and incomplete + adlen = ad_encryption_ov16(&A,s,k,adlen,CNT,0x08,&l_skinny_ctrl); + nonce_encryption(N,CNT,s,k,0x1a,&l_skinny_ctrl); + } + else if (adlen == (32)) { // The last block of AD is even and complete + adlen = ad_encryption_eqov32(&A,s,k,adlen,CNT,0x08,&l_skinny_ctrl); + nonce_encryption(N,CNT,s,k,0x18,&l_skinny_ctrl); + } + else { // A normal full pair of blocks of AD + adlen = ad_encryption_eqov32(&A,s,k,adlen,CNT,0x08,&l_skinny_ctrl); + } + } + + l_skinny_ctrl.func_skinny_128_384_enc = skinny_128_384_enc1_1; + reset_lfsr_gf56(CNT); + + clen = clen - 16; + *mlen = clen; + + if (clen == 0) { // C is an empty string + lfsr_gf56(CNT); + nonce_encryption(N,CNT,s,k,0x15,&l_skinny_ctrl); + } + else while (clen > 0) { + if (clen < 16) { // The last block of C is incomplete + clen = msg_decryption(&M,&c,N,CNT,s,k,0x15,clen,&l_skinny_ctrl); + } + else if (clen == 16) { // The last block of C is complete + clen = msg_decryption(&M,&c,N,CNT,s,k,0x14,clen,&l_skinny_ctrl); + } + else { // A normal full message block + clen = msg_decryption(&M,&c,N,CNT,s,k,0x04,clen,&l_skinny_ctrl); + } + } + + // Tag generation + g8A_for_Tag_Generation(s, T); + for (i = 0; i < 16; i++) { + if (T[i] != (*(c+i))) { + return -1; + } + } + + return 0; +} + + diff --git a/romulus/Implementations/crypto_aead/romulusn1/armsrc_NEC/genkat_aead.c b/romulus/Implementations/crypto_aead/romulusn1/armsrc_NEC/genkat_aead.c new file mode 100644 index 0000000..21f840f --- /dev/null +++ b/romulus/Implementations/crypto_aead/romulusn1/armsrc_NEC/genkat_aead.c @@ -0,0 +1,161 @@ +// +// NIST-developed software is provided by NIST as a public service. +// You may use, copy and distribute copies of the software in any medium, +// provided that you keep intact this entire notice. You may improve, +// modify and create derivative works of the software or any portion of +// the software, and you may copy and distribute such modifications or +// works. Modified works should carry a notice stating that you changed +// the software and should note the date and nature of any such change. +// Please explicitly acknowledge the National Institute of Standards and +// Technology as the source of the software. +// +// NIST-developed software is expressly provided "AS IS." NIST MAKES NO +// WARRANTY OF ANY KIND, EXPRESS, IMPLIED, IN FACT OR ARISING BY OPERATION +// OF LAW, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTY OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT AND DATA ACCURACY. NIST +// NEITHER REPRESENTS NOR WARRANTS THAT THE OPERATION OF THE SOFTWARE WILL BE +// UNINTERRUPTED OR ERROR-FREE, OR THAT ANY DEFECTS WILL BE CORRECTED. NIST +// DOES NOT WARRANT OR MAKE ANY REPRESENTATIONS REGARDING THE USE OF THE SOFTWARE +// OR THE RESULTS THEREOF, INCLUDING BUT NOT LIMITED TO THE CORRECTNESS, ACCURACY, +// RELIABILITY, OR USEFULNESS OF THE SOFTWARE. +// +// You are solely responsible for determining the appropriateness of using and +// distributing the software and you assume all risks associated with its use, +// including but not limited to the risks and costs of program errors, compliance +// with applicable laws, damage to or loss of data, programs or equipment, and +// the unavailability or interruption of operation. This software is not intended +// to be used in any situation where a failure could cause risk of injury or +// damage to property. The software developed by NIST employees is not subject to +// copyright protection within the United States. +// + +// disable deprecation for sprintf and fopen +#ifdef _MSC_VER +#define _CRT_SECURE_NO_WARNINGS +#endif + +#include +#include + +#include "crypto_aead.h" +#include "api.h" + +#define KAT_SUCCESS 0 +#define KAT_FILE_OPEN_ERROR -1 +#define KAT_DATA_ERROR -3 +#define KAT_CRYPTO_FAILURE -4 + +#define MAX_FILE_NAME 256 +#define MAX_MESSAGE_LENGTH 32 +#define MAX_ASSOCIATED_DATA_LENGTH 32 + +void init_buffer(unsigned char *buffer, unsigned long long numbytes); + +void fprint_bstr(FILE *fp, const char *label, const unsigned char *data, unsigned long long length); + +int generate_test_vectors(); + +int main() +{ + int ret = generate_test_vectors(); + + if (ret != KAT_SUCCESS) { + fprintf(stderr, "test vector generation failed with code %d\n", ret); + } + + return ret; +} + +int generate_test_vectors() +{ + FILE *fp; + char fileName[MAX_FILE_NAME]; + unsigned char key[CRYPTO_KEYBYTES]; + unsigned char nonce[CRYPTO_NPUBBYTES]; + unsigned char msg[MAX_MESSAGE_LENGTH]; + unsigned char msg2[MAX_MESSAGE_LENGTH]; + unsigned char ad[MAX_ASSOCIATED_DATA_LENGTH]; + unsigned char ct[MAX_MESSAGE_LENGTH + CRYPTO_ABYTES]; + unsigned long long clen, mlen2; + int count = 1; + int func_ret, ret_val = KAT_SUCCESS; + + init_buffer(key, sizeof(key)); + init_buffer(nonce, sizeof(nonce)); + init_buffer(msg, sizeof(msg)); + init_buffer(ad, sizeof(ad)); + + sprintf(fileName, "LWC_AEAD_KAT_%d_%d.txt", (CRYPTO_KEYBYTES * 8), (CRYPTO_NPUBBYTES * 8)); + + if ((fp = fopen(fileName, "w")) == NULL) { + fprintf(stderr, "Couldn't open <%s> for write\n", fileName); + return KAT_FILE_OPEN_ERROR; + } + + for (unsigned long long mlen = 0; (mlen <= MAX_MESSAGE_LENGTH) && (ret_val == KAT_SUCCESS); mlen++) { + for (unsigned long long adlen = 0; adlen <= MAX_ASSOCIATED_DATA_LENGTH; adlen++) { + + printf("%0d\n", (int)clen); + + fprintf(fp, "Count = %d\n", count++); + printf("Count = %d\n", count - 1); + + fprint_bstr(fp, "Key = ", key, CRYPTO_KEYBYTES); + + fprint_bstr(fp, "Nonce = ", nonce, CRYPTO_NPUBBYTES); + + fprint_bstr(fp, "PT = ", msg, mlen); + + fprint_bstr(fp, "AD = ", ad, adlen); + + if ((func_ret = crypto_aead_encrypt(ct, &clen, msg, mlen, ad, adlen, NULL, nonce, key)) != 0) { + fprintf(fp, "crypto_aead_encrypt returned <%d>\n", func_ret); + ret_val = KAT_CRYPTO_FAILURE; + break; + } + + fprint_bstr(fp, "CT = ", ct, clen); + + fprintf(fp, "\n"); + + if ((func_ret = crypto_aead_decrypt(msg2, &mlen2, NULL, ct, clen, ad, adlen, nonce, key)) != 0) { + fprintf(fp, "crypto_aead_decrypt returned <%d>\n", func_ret); + ret_val = KAT_CRYPTO_FAILURE; + break; + } + + if (mlen != mlen2) { + fprintf(fp, "crypto_aead_decrypt returned bad 'mlen': Got <%llu>, expected <%llu>\n", mlen2, mlen); + ret_val = KAT_CRYPTO_FAILURE; + break; + } + + if (memcmp(msg, msg2, mlen)) { + fprintf(fp, "crypto_aead_decrypt did not recover the plaintext\n"); + ret_val = KAT_CRYPTO_FAILURE; + break; + } + } + } + + fclose(fp); + + return ret_val; +} + + +void fprint_bstr(FILE *fp, const char *label, const unsigned char *data, unsigned long long length) +{ + fprintf(fp, "%s", label); + + for (unsigned long long i = 0; i < length; i++) + fprintf(fp, "%02X", data[i]); + + fprintf(fp, "\n"); +} + +void init_buffer(unsigned char *buffer, unsigned long long numbytes) +{ + for (unsigned long long i = 0; i < numbytes; i++) + buffer[i] = (unsigned char)i; +} diff --git a/romulus/Implementations/crypto_aead/romulusn1/armsrc_NEC/skinny.h b/romulus/Implementations/crypto_aead/romulusn1/armsrc_NEC/skinny.h new file mode 100644 index 0000000..6392b0f --- /dev/null +++ b/romulus/Implementations/crypto_aead/romulusn1/armsrc_NEC/skinny.h @@ -0,0 +1,8 @@ +typedef struct ___skinny_ctrl { + unsigned char roundKeys[960]; // number of round : 56 + void (*func_skinny_128_384_enc)(unsigned char*, struct ___skinny_ctrl*, unsigned char* CNT, unsigned char* T, const unsigned char* K); +} skinny_ctrl; + +extern void skinny_128_384_enc123_12 (unsigned char* input, skinny_ctrl* pskinny_ctrl, unsigned char* CNT, unsigned char* T, const unsigned char* K); +extern void skinny_128_384_enc12_12 (unsigned char* input, skinny_ctrl* pskinny_ctrl, unsigned char* CNT, unsigned char* T, const unsigned char* K); +extern void skinny_128_384_enc1_1 (unsigned char* input, skinny_ctrl* pskinny_ctrl, unsigned char* CNT, unsigned char* T, const unsigned char* K); diff --git a/romulus/Implementations/crypto_aead/romulusn1/armsrc_NEC/skinny_key_schedule2.c b/romulus/Implementations/crypto_aead/romulusn1/armsrc_NEC/skinny_key_schedule2.c new file mode 100644 index 0000000..58006f2 --- /dev/null +++ b/romulus/Implementations/crypto_aead/romulusn1/armsrc_NEC/skinny_key_schedule2.c @@ -0,0 +1,3027 @@ +/****************************************************************************** + * Copyright (c) 2020, NEC Corporation. + * + * THIS CODE IS FURNISHED TO YOU "AS IS" WITHOUT WARRANTY OF ANY KIND. + * + *****************************************************************************/ + +/* + * SKINNY-128-384 + * + * load * AC(c0 c1) ^ TK3 + * calc AC(c0 c1) ^ TK2 -> store + * ART(TK2) + * + * number of rounds : 56 + */ + +__attribute__((aligned(4))) +void RunEncryptionKeyScheduleTK2(unsigned char *roundKeys) +{ + // r0 : points to roundKeys(& masterKey) + // r1-r4 : key state + // r5-r6 : temp use + // r7 : constant(0xfefefefe) + // r8 : constant(0x01010101) + // r9 : temp use + // r10 : temp use + asm volatile( + "stmdb sp!, {r4-r10} \n\t" + "ldr.w r1, [r0,#16] \n\t" // load master key + "ldr.w r2, [r0,#20] \n\t" // load master key + "ldr.w r3, [r0,#24] \n\t" // load master key + "ldr.w r4, [r0,#28] \n\t" // load master key + "mov.w r7, #0xfefefefe \n\t" + "mov.w r8, #0x01010101 \n\t" + + // round 1 + + "ldr.w r9, [r0,#512] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#516] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#64] \n\t" + "str.w r10, [r0,#68] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 2 + + "ldr.w r9, [r0,#520] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#524] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#72] \n\t" + "str.w r10, [r0,#76] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 3 + + "ldr.w r9, [r0,#528] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#532] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#80] \n\t" + "str.w r10, [r0,#84] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 4 + + "ldr.w r9, [r0,#536] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#540] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#88] \n\t" + "str.w r10, [r0,#92] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 5 + + "ldr.w r9, [r0,#544] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#548] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#96] \n\t" + "str.w r10, [r0,#100] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 6 + + "ldr.w r9, [r0,#552] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#556] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#104] \n\t" + "str.w r10, [r0,#108] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 7 + + "ldr.w r9, [r0,#560] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#564] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#112] \n\t" + "str.w r10, [r0,#116] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 8 + + "ldr.w r9, [r0,#568] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#572] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#120] \n\t" + "str.w r10, [r0,#124] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 9 + + "ldr.w r9, [r0,#576] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#580] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#128] \n\t" + "str.w r10, [r0,#132] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 10 + + "ldr.w r9, [r0,#584] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#588] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#136] \n\t" + "str.w r10, [r0,#140] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 11 + + "ldr.w r9, [r0,#592] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#596] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#144] \n\t" + "str.w r10, [r0,#148] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 12 + + "ldr.w r9, [r0,#600] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#604] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#152] \n\t" + "str.w r10, [r0,#156] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 13 + + "ldr.w r9, [r0,#608] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#612] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#160] \n\t" + "str.w r10, [r0,#164] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 14 + + "ldr.w r9, [r0,#616] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#620] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#168] \n\t" + "str.w r10, [r0,#172] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 15 + + "ldr.w r9, [r0,#624] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#628] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#176] \n\t" + "str.w r10, [r0,#180] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 16 + + "ldr.w r9, [r0,#632] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#636] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#184] \n\t" + "str.w r10, [r0,#188] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 17 + + "ldr.w r9, [r0,#640] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#644] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#192] \n\t" + "str.w r10, [r0,#196] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 18 + + "ldr.w r9, [r0,#648] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#652] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#200] \n\t" + "str.w r10, [r0,#204] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 19 + + "ldr.w r9, [r0,#656] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#660] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#208] \n\t" + "str.w r10, [r0,#212] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 20 + + "ldr.w r9, [r0,#664] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#668] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#216] \n\t" + "str.w r10, [r0,#220] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 21 + + "ldr.w r9, [r0,#672] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#676] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#224] \n\t" + "str.w r10, [r0,#228] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 22 + + "ldr.w r9, [r0,#680] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#684] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#232] \n\t" + "str.w r10, [r0,#236] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 23 + + "ldr.w r9, [r0,#688] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#692] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#240] \n\t" + "str.w r10, [r0,#244] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 24 + + "ldr.w r9, [r0,#696] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#700] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#248] \n\t" + "str.w r10, [r0,#252] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 25 + + "ldr.w r9, [r0,#704] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#708] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#256] \n\t" + "str.w r10, [r0,#260] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 26 + + "ldr.w r9, [r0,#712] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#716] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#264] \n\t" + "str.w r10, [r0,#268] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 27 + + "ldr.w r9, [r0,#720] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#724] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#272] \n\t" + "str.w r10, [r0,#276] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 28 + + "ldr.w r9, [r0,#728] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#732] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#280] \n\t" + "str.w r10, [r0,#284] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 29 + + "ldr.w r9, [r0,#736] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#740] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#288] \n\t" + "str.w r10, [r0,#292] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 30 + + "ldr.w r9, [r0,#744] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#748] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#296] \n\t" + "str.w r10, [r0,#300] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 31 + + "ldr.w r9, [r0,#752] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#756] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#304] \n\t" + "str.w r10, [r0,#308] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 32 + + "ldr.w r9, [r0,#760] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#764] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#312] \n\t" + "str.w r10, [r0,#316] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 33 + + "ldr.w r9, [r0,#768] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#772] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#320] \n\t" + "str.w r10, [r0,#324] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 34 + + "ldr.w r9, [r0,#776] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#780] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#328] \n\t" + "str.w r10, [r0,#332] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 35 + + "ldr.w r9, [r0,#784] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#788] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#336] \n\t" + "str.w r10, [r0,#340] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 36 + + "ldr.w r9, [r0,#792] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#796] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#344] \n\t" + "str.w r10, [r0,#348] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 37 + + "ldr.w r9, [r0,#800] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#804] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#352] \n\t" + "str.w r10, [r0,#356] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 38 + + "ldr.w r9, [r0,#808] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#812] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#360] \n\t" + "str.w r10, [r0,#364] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 39 + + "ldr.w r9, [r0,#816] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#820] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#368] \n\t" + "str.w r10, [r0,#372] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 40 + + "ldr.w r9, [r0,#824] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#828] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#376] \n\t" + "str.w r10, [r0,#380] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 41 + + "ldr.w r9, [r0,#832] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#836] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#384] \n\t" + "str.w r10, [r0,#388] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 42 + + "ldr.w r9, [r0,#840] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#844] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#392] \n\t" + "str.w r10, [r0,#396] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 43 + + "ldr.w r9, [r0,#848] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#852] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#400] \n\t" + "str.w r10, [r0,#404] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 44 + + "ldr.w r9, [r0,#856] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#860] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#408] \n\t" + "str.w r10, [r0,#412] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 45 + + "ldr.w r9, [r0,#864] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#868] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#416] \n\t" + "str.w r10, [r0,#420] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 46 + + "ldr.w r9, [r0,#872] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#876] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#424] \n\t" + "str.w r10, [r0,#428] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 47 + + "ldr.w r9, [r0,#880] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#884] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#432] \n\t" + "str.w r10, [r0,#436] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 48 + + "ldr.w r9, [r0,#888] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#892] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#440] \n\t" + "str.w r10, [r0,#444] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 49 + + "ldr.w r9, [r0,#896] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#900] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#448] \n\t" + "str.w r10, [r0,#452] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 50 + + "ldr.w r9, [r0,#904] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#908] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#456] \n\t" + "str.w r10, [r0,#460] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 51 + + "ldr.w r9, [r0,#912] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#916] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#464] \n\t" + "str.w r10, [r0,#468] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 52 + + "ldr.w r9, [r0,#920] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#924] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#472] \n\t" + "str.w r10, [r0,#476] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 53 + + "ldr.w r9, [r0,#928] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#932] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#480] \n\t" + "str.w r10, [r0,#484] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 54 + + "ldr.w r9, [r0,#936] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#940] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#488] \n\t" + "str.w r10, [r0,#492] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 55 + + "ldr.w r9, [r0,#944] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#948] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#496] \n\t" + "str.w r10, [r0,#500] \n\t" + + // permutation + // r1 (k3 k2 k1 k0) k13 k8 k15 k9 + // r2 (k7 k6 k5 k4) k11 k12 k14 k10 + // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r4 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) + "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) + "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) + "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) + "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) + "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) + "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) + "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) + "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) + "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) + "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) + "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) + "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) + "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) + "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) + "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) +#endif + // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) + "and.w r5, r7, r1, lsl #1 \n\t" + "and.w r6, r8, r1, lsr #7 \n\t" + "and.w r1, r8, r1, lsr #5 \n\t" + "eor.w r1, r6 \n\t" + "eor.w r1, r5 \n\t" + + "and.w r5, r7, r2, lsl #1 \n\t" + "and.w r6, r8, r2, lsr #7 \n\t" + "and.w r2, r8, r2, lsr #5 \n\t" + "eor.w r2, r6 \n\t" + "eor.w r2, r5 \n\t" + + // round 56 + + "ldr.w r9, [r0,#952] \n\t" // load TK3 ^ AC(c0 c1) + "ldr.w r10, [r0,#956] \n\t" // load TK3 ^ AC(c0 c1) + + "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) + + // round key store((TK2 ^ TK3 ^ AC(c0 c1)) + "str.w r9, [r0,#504] \n\t" + "str.w r10, [r0,#508] \n\t" + + // permutation + + // not need to calculate (not used) + + "ldmia.w sp!, {r4-r10} \n\t" + : + : [roundKeys] "r" (roundKeys) + : "cc"); +} diff --git a/romulus/Implementations/crypto_aead/romulusn1/armsrc_NEC/skinny_key_schedule3.c b/romulus/Implementations/crypto_aead/romulusn1/armsrc_NEC/skinny_key_schedule3.c new file mode 100644 index 0000000..d8a4f30 --- /dev/null +++ b/romulus/Implementations/crypto_aead/romulusn1/armsrc_NEC/skinny_key_schedule3.c @@ -0,0 +1,3081 @@ +/****************************************************************************** + * Copyright (c) 2020, NEC Corporation. + * + * THIS CODE IS FURNISHED TO YOU "AS IS" WITHOUT WARRANTY OF ANY KIND. + * + *****************************************************************************/ + +/* + * SKINNY-128-384 + * + * AC(c0 c1) ^ TK3 -> store + * ART(TK3) + * + * number of rounds : 56 + */ + +__attribute__((aligned(4))) +void RunEncryptionKeyScheduleTK3(unsigned char *roundKeys, unsigned char *pRC) +{ + // r0 : points to roundKeys(& masterKey) + // r1 : points to RC + // r2-r5 : key state + // r6-r7 : temp use + // r8 : constant(0x7f7f7f7f) + // r9 : constant(0x80808080) + asm volatile( + "stmdb sp!, {r4-r9} \n\t" + "ldr.w r2, [r0,#32] \n\t" // load master key + "ldr.w r3, [r0,#36] \n\t" // load master key + "ldr.w r4, [r0,#40] \n\t" // load master key + "ldr.w r5, [r0,#44] \n\t" // load master key + "mov.w r8, #0x7f7f7f7f \n\t" + "mov.w r9, #0x80808080 \n\t" + + // round 1 + + // AC(c0 c1) + "ldrb.w r6, [r1,#0] \n\t" // load RC + + "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc + "and.w r6, r6, #0xf \n\t" + "eor.w r6, r6, r2 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#512] \n\t" + "str.w r7, [r0,#516] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 2 + + // AC(c0 c1) + "ldrb.w r6, [r1,#1] \n\t" // load RC + + "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc + "and.w r6, r6, #0xf \n\t" + "eor.w r6, r6, r2 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#520] \n\t" + "str.w r7, [r0,#524] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 3 + + // AC(c0 c1) + "ldrb.w r6, [r1,#2] \n\t" // load RC + + "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc + "and.w r6, r6, #0xf \n\t" + "eor.w r6, r6, r2 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#528] \n\t" + "str.w r7, [r0,#532] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 4 + + // AC(c0 c1) + "ldrb.w r6, [r1,#3] \n\t" // load RC + + "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc + "and.w r6, r6, #0xf \n\t" + "eor.w r6, r6, r2 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#536] \n\t" + "str.w r7, [r0,#540] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 5 + + // AC(c0 c1) + "ldrb.w r6, [r1,#4] \n\t" // load RC + + "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc + "and.w r6, r6, #0xf \n\t" + "eor.w r6, r6, r2 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#544] \n\t" + "str.w r7, [r0,#548] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 6 + + // AC(c0 c1) + "ldrb.w r6, [r1,#5] \n\t" // load RC + + "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc + "and.w r6, r6, #0xf \n\t" + "eor.w r6, r6, r2 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#552] \n\t" + "str.w r7, [r0,#556] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 7 + + // AC(c0 c1) + "ldrb.w r6, [r1,#6] \n\t" // load RC + + "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc + "and.w r6, r6, #0xf \n\t" + "eor.w r6, r6, r2 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#560] \n\t" + "str.w r7, [r0,#564] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 8 + + // AC(c0 c1) + "ldrb.w r6, [r1,#7] \n\t" // load RC + + "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc + "and.w r6, r6, #0xf \n\t" + "eor.w r6, r6, r2 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#568] \n\t" + "str.w r7, [r0,#572] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 9 + + // AC(c0 c1) + "ldrb.w r6, [r1,#8] \n\t" // load RC + + "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc + "and.w r6, r6, #0xf \n\t" + "eor.w r6, r6, r2 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#576] \n\t" + "str.w r7, [r0,#580] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 10 + + // AC(c0 c1) + "ldrb.w r6, [r1,#9] \n\t" // load RC + + "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc + "and.w r6, r6, #0xf \n\t" + "eor.w r6, r6, r2 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#584] \n\t" + "str.w r7, [r0,#588] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 11 + + // AC(c0 c1) + "ldrb.w r6, [r1,#10] \n\t" // load RC + + "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc + "and.w r6, r6, #0xf \n\t" + "eor.w r6, r6, r2 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#592] \n\t" + "str.w r7, [r0,#596] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 12 + + // AC(c0 c1) + "ldrb.w r6, [r1,#11] \n\t" // load RC + + "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc + "and.w r6, r6, #0xf \n\t" + "eor.w r6, r6, r2 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#600] \n\t" + "str.w r7, [r0,#604] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 13 + + // AC(c0 c1) + "ldrb.w r6, [r1,#12] \n\t" // load RC + + "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc + "and.w r6, r6, #0xf \n\t" + "eor.w r6, r6, r2 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#608] \n\t" + "str.w r7, [r0,#612] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 14 + + // AC(c0 c1) + "ldrb.w r6, [r1,#13] \n\t" // load RC + + "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc + "and.w r6, r6, #0xf \n\t" + "eor.w r6, r6, r2 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#616] \n\t" + "str.w r7, [r0,#620] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 15 + + // AC(c0 c1) + "ldrb.w r6, [r1,#14] \n\t" // load RC + + "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc + "and.w r6, r6, #0xf \n\t" + "eor.w r6, r6, r2 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#624] \n\t" + "str.w r7, [r0,#628] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 16 + + // AC(c0 c1) + "ldrb.w r6, [r1,#15] \n\t" // load RC + + "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc + "and.w r6, r6, #0xf \n\t" + "eor.w r6, r6, r2 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#632] \n\t" + "str.w r7, [r0,#636] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 17 + + // AC(c0 c1) + "ldrb.w r6, [r1,#16] \n\t" // load RC + + "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc + "and.w r6, r6, #0xf \n\t" + "eor.w r6, r6, r2 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#640] \n\t" + "str.w r7, [r0,#644] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 18 + + // AC(c0 c1) + "ldrb.w r6, [r1,#17] \n\t" // load RC + + "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc + "and.w r6, r6, #0xf \n\t" + "eor.w r6, r6, r2 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#648] \n\t" + "str.w r7, [r0,#652] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 19 + + // AC(c0 c1) + "ldrb.w r6, [r1,#18] \n\t" // load RC + + "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc + "and.w r6, r6, #0xf \n\t" + "eor.w r6, r6, r2 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#656] \n\t" + "str.w r7, [r0,#660] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 20 + + // AC(c0 c1) + "ldrb.w r6, [r1,#19] \n\t" // load RC + + "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc + "and.w r6, r6, #0xf \n\t" + "eor.w r6, r6, r2 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#664] \n\t" + "str.w r7, [r0,#668] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 21 + + // AC(c0 c1) + "ldrb.w r6, [r1,#20] \n\t" // load RC + + "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc + "and.w r6, r6, #0xf \n\t" + "eor.w r6, r6, r2 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#672] \n\t" + "str.w r7, [r0,#676] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 22 + + // AC(c0 c1) + "ldrb.w r6, [r1,#21] \n\t" // load RC + + "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc + "and.w r6, r6, #0xf \n\t" + "eor.w r6, r6, r2 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#680] \n\t" + "str.w r7, [r0,#684] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 23 + + // AC(c0 c1) + "ldrb.w r6, [r1,#22] \n\t" // load RC + + "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc + "and.w r6, r6, #0xf \n\t" + "eor.w r6, r6, r2 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#688] \n\t" + "str.w r7, [r0,#692] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 24 + + // AC(c0 c1) + "ldrb.w r6, [r1,#23] \n\t" // load RC + + "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc + "and.w r6, r6, #0xf \n\t" + "eor.w r6, r6, r2 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#696] \n\t" + "str.w r7, [r0,#700] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 25 + + // AC(c0 c1) + "ldrb.w r6, [r1,#24] \n\t" // load RC + + "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc + "and.w r6, r6, #0xf \n\t" + "eor.w r6, r6, r2 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#704] \n\t" + "str.w r7, [r0,#708] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 26 + + // AC(c0 c1) + "ldrb.w r6, [r1,#25] \n\t" // load RC + + "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc + "and.w r6, r6, #0xf \n\t" + "eor.w r6, r6, r2 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#712] \n\t" + "str.w r7, [r0,#716] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 27 + + // AC(c0 c1) + "ldrb.w r6, [r1,#26] \n\t" // load RC + + "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc + "and.w r6, r6, #0xf \n\t" + "eor.w r6, r6, r2 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#720] \n\t" + "str.w r7, [r0,#724] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 28 + + // AC(c0 c1) + "ldrb.w r6, [r1,#27] \n\t" // load RC + + "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc + "and.w r6, r6, #0xf \n\t" + "eor.w r6, r6, r2 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#728] \n\t" + "str.w r7, [r0,#732] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 29 + + // AC(c0 c1) + "ldrb.w r6, [r1,#28] \n\t" // load RC + + "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc + "and.w r6, r6, #0xf \n\t" + "eor.w r6, r6, r2 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#736] \n\t" + "str.w r7, [r0,#740] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 30 + + // AC(c0 c1) + "ldrb.w r6, [r1,#29] \n\t" // load RC + + "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc + "and.w r6, r6, #0xf \n\t" + "eor.w r6, r6, r2 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#744] \n\t" + "str.w r7, [r0,#748] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 31 + + // AC(c0 c1) + "ldrb.w r6, [r1,#30] \n\t" // load RC + + "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc + "and.w r6, r6, #0xf \n\t" + "eor.w r6, r6, r2 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#752] \n\t" + "str.w r7, [r0,#756] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 32 + + // AC(c0 c1) + "ldrb.w r6, [r1,#31] \n\t" // load RC + + "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc + "and.w r6, r6, #0xf \n\t" + "eor.w r6, r6, r2 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#760] \n\t" + "str.w r7, [r0,#764] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 33 + + // AC(c0 c1) + "ldrb.w r6, [r1,#32] \n\t" // load RC + + "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc + "and.w r6, r6, #0xf \n\t" + "eor.w r6, r6, r2 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#768] \n\t" + "str.w r7, [r0,#772] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 34 + + // AC(c0 c1) + "ldrb.w r6, [r1,#33] \n\t" // load RC + + "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc + "and.w r6, r6, #0xf \n\t" + "eor.w r6, r6, r2 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#776] \n\t" + "str.w r7, [r0,#780] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 35 + + // AC(c0 c1) + "ldrb.w r6, [r1,#34] \n\t" // load RC + + "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc + "and.w r6, r6, #0xf \n\t" + "eor.w r6, r6, r2 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#784] \n\t" + "str.w r7, [r0,#788] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 36 + + // AC(c0 c1) + "ldrb.w r6, [r1,#35] \n\t" // load RC + + "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc + "and.w r6, r6, #0xf \n\t" + "eor.w r6, r6, r2 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#792] \n\t" + "str.w r7, [r0,#796] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 37 + + // AC(c0 c1) + "ldrb.w r6, [r1,#36] \n\t" // load RC + + "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc + "and.w r6, r6, #0xf \n\t" + "eor.w r6, r6, r2 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#800] \n\t" + "str.w r7, [r0,#804] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 38 + + // AC(c0 c1) + "ldrb.w r6, [r1,#37] \n\t" // load RC + + "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc + "and.w r6, r6, #0xf \n\t" + "eor.w r6, r6, r2 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#808] \n\t" + "str.w r7, [r0,#812] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 39 + + // AC(c0 c1) + "ldrb.w r6, [r1,#38] \n\t" // load RC + + "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc + "and.w r6, r6, #0xf \n\t" + "eor.w r6, r6, r2 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#816] \n\t" + "str.w r7, [r0,#820] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 40 + + // AC(c0 c1) + "ldrb.w r6, [r1,#39] \n\t" // load RC + + "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc + "and.w r6, r6, #0xf \n\t" + "eor.w r6, r6, r2 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#824] \n\t" + "str.w r7, [r0,#828] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 41 + + // AC(c0 c1) + "ldrb.w r6, [r1,#40] \n\t" // load RC + + "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc + "and.w r6, r6, #0xf \n\t" + "eor.w r6, r6, r2 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#832] \n\t" + "str.w r7, [r0,#836] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 42 + + // AC(c0 c1) + "ldrb.w r6, [r1,#41] \n\t" // load RC + + "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc + "and.w r6, r6, #0xf \n\t" + "eor.w r6, r6, r2 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#840] \n\t" + "str.w r7, [r0,#844] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 43 + + // AC(c0 c1) + "ldrb.w r6, [r1,#42] \n\t" // load RC + + "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc + "and.w r6, r6, #0xf \n\t" + "eor.w r6, r6, r2 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#848] \n\t" + "str.w r7, [r0,#852] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 44 + + // AC(c0 c1) + "ldrb.w r6, [r1,#43] \n\t" // load RC + + "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc + "and.w r6, r6, #0xf \n\t" + "eor.w r6, r6, r2 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#856] \n\t" + "str.w r7, [r0,#860] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 45 + + // AC(c0 c1) + "ldrb.w r6, [r1,#44] \n\t" // load RC + + "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc + "and.w r6, r6, #0xf \n\t" + "eor.w r6, r6, r2 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#864] \n\t" + "str.w r7, [r0,#868] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 46 + + // AC(c0 c1) + "ldrb.w r6, [r1,#45] \n\t" // load RC + + "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc + "and.w r6, r6, #0xf \n\t" + "eor.w r6, r6, r2 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#872] \n\t" + "str.w r7, [r0,#876] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 47 + + // AC(c0 c1) + "ldrb.w r6, [r1,#46] \n\t" // load RC + + "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc + "and.w r6, r6, #0xf \n\t" + "eor.w r6, r6, r2 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#880] \n\t" + "str.w r7, [r0,#884] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 48 + + // AC(c0 c1) + "ldrb.w r6, [r1,#47] \n\t" // load RC + + "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc + "and.w r6, r6, #0xf \n\t" + "eor.w r6, r6, r2 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#888] \n\t" + "str.w r7, [r0,#892] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 49 + + // AC(c0 c1) + "ldrb.w r6, [r1,#48] \n\t" // load RC + + "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc + "and.w r6, r6, #0xf \n\t" + "eor.w r6, r6, r2 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#896] \n\t" + "str.w r7, [r0,#900] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 50 + + // AC(c0 c1) + "ldrb.w r6, [r1,#49] \n\t" // load RC + + "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc + "and.w r6, r6, #0xf \n\t" + "eor.w r6, r6, r2 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#904] \n\t" + "str.w r7, [r0,#908] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 51 + + // AC(c0 c1) + "ldrb.w r6, [r1,#50] \n\t" // load RC + + "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc + "and.w r6, r6, #0xf \n\t" + "eor.w r6, r6, r2 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#912] \n\t" + "str.w r7, [r0,#916] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 52 + + // AC(c0 c1) + "ldrb.w r6, [r1,#51] \n\t" // load RC + + "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc + "and.w r6, r6, #0xf \n\t" + "eor.w r6, r6, r2 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#920] \n\t" + "str.w r7, [r0,#924] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 53 + + // AC(c0 c1) + "ldrb.w r6, [r1,#52] \n\t" // load RC + + "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc + "and.w r6, r6, #0xf \n\t" + "eor.w r6, r6, r2 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#928] \n\t" + "str.w r7, [r0,#932] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 54 + + // AC(c0 c1) + "ldrb.w r6, [r1,#53] \n\t" // load RC + + "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc + "and.w r6, r6, #0xf \n\t" + "eor.w r6, r6, r2 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#936] \n\t" + "str.w r7, [r0,#940] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 55 + + // AC(c0 c1) + "ldrb.w r6, [r1,#54] \n\t" // load RC + + "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc + "and.w r6, r6, #0xf \n\t" + "eor.w r6, r6, r2 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#944] \n\t" + "str.w r7, [r0,#948] \n\t" + + // permutation + // r2 (k3 k2 k1 k0) k13 k8 k15 k9 + // r3 (k7 k6 k5 k4) k11 k12 k14 k10 + // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 + // r5 (k15 k14 k13 k12) k7 k6 k5 k4 + "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) + "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) + "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) + "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) +#ifdef STM32F4 // for Cortex-M4 + "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) + "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) + "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) + "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) + "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) + "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) +#else // for Cortex-M3 + "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) + "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) + "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) + "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) + "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) + "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) + "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) + "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) + "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) +#endif + // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) + "and.w r6, r8, r2, lsr #1 \n\t" + "and.w r7, r9, r2, lsl #7 \n\t" + "and.w r2, r9, r2, lsl #1 \n\t" + "eor.w r2, r7 \n\t" + "eor.w r2, r6 \n\t" + + "and.w r6, r8, r3, lsr #1 \n\t" + "and.w r7, r9, r3, lsl #7 \n\t" + "and.w r3, r9, r3, lsl #1 \n\t" + "eor.w r3, r7 \n\t" + "eor.w r3, r6 \n\t" + + // round 56 + + // AC(c0 c1) + "ldrb.w r6, [r1,#55] \n\t" // load RC + + "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc + "and.w r6, r6, #0xf \n\t" + "eor.w r6, r6, r2 \n\t" // k0^rc + + // round key store + "str.w r6, [r0,#952] \n\t" + "str.w r7, [r0,#956] \n\t" + + // permutation + + // not need to calculate (not used) + + "ldmia.w sp!, {r4-r9} \n\t" + : + : [roundKeys] "r" (roundKeys), [pRC] "r" (pRC) + : "cc"); +} diff --git a/romulus/Implementations/crypto_aead/romulusn1/armsrc_NEC/skinny_main.c b/romulus/Implementations/crypto_aead/romulusn1/armsrc_NEC/skinny_main.c new file mode 100644 index 0000000..217b8a6 --- /dev/null +++ b/romulus/Implementations/crypto_aead/romulusn1/armsrc_NEC/skinny_main.c @@ -0,0 +1,4687 @@ +/****************************************************************************** + * Copyright (c) 2020, NEC Corporation. + * + * THIS CODE IS FURNISHED TO YOU "AS IS" WITHOUT WARRANTY OF ANY KIND. + * + *****************************************************************************/ + +/* + * SKINNY-128-384 + * + * ART(TK1) -> store + * load AC(c0 c1) ^ TK3 ^ TK2 + * load TK1 + * calc AC(c0 c1) ^ TK3 ^ TK2 ^ TK1 -> use at (AC->ART) + * SC->SR->(AC->ART)->MC + * + * number of rounds : 56 + */ + +#include "skinny.h" + +/* + * S-BOX + */ +unsigned char SBOX[512] += { + // Original + 0x65, 0x4c, 0x6a, 0x42, 0x4b, 0x63, 0x43, 0x6b, 0x55, 0x75, 0x5a, 0x7a, 0x53, 0x73, 0x5b, 0x7b, + 0x35, 0x8c, 0x3a, 0x81, 0x89, 0x33, 0x80, 0x3b, 0x95, 0x25, 0x98, 0x2a, 0x90, 0x23, 0x99, 0x2b, + 0xe5, 0xcc, 0xe8, 0xc1, 0xc9, 0xe0, 0xc0, 0xe9, 0xd5, 0xf5, 0xd8, 0xf8, 0xd0, 0xf0, 0xd9, 0xf9, + 0xa5, 0x1c, 0xa8, 0x12, 0x1b, 0xa0, 0x13, 0xa9, 0x05, 0xb5, 0x0a, 0xb8, 0x03, 0xb0, 0x0b, 0xb9, + 0x32, 0x88, 0x3c, 0x85, 0x8d, 0x34, 0x84, 0x3d, 0x91, 0x22, 0x9c, 0x2c, 0x94, 0x24, 0x9d, 0x2d, + 0x62, 0x4a, 0x6c, 0x45, 0x4d, 0x64, 0x44, 0x6d, 0x52, 0x72, 0x5c, 0x7c, 0x54, 0x74, 0x5d, 0x7d, + 0xa1, 0x1a, 0xac, 0x15, 0x1d, 0xa4, 0x14, 0xad, 0x02, 0xb1, 0x0c, 0xbc, 0x04, 0xb4, 0x0d, 0xbd, + 0xe1, 0xc8, 0xec, 0xc5, 0xcd, 0xe4, 0xc4, 0xed, 0xd1, 0xf1, 0xdc, 0xfc, 0xd4, 0xf4, 0xdd, 0xfd, + 0x36, 0x8e, 0x38, 0x82, 0x8b, 0x30, 0x83, 0x39, 0x96, 0x26, 0x9a, 0x28, 0x93, 0x20, 0x9b, 0x29, + 0x66, 0x4e, 0x68, 0x41, 0x49, 0x60, 0x40, 0x69, 0x56, 0x76, 0x58, 0x78, 0x50, 0x70, 0x59, 0x79, + 0xa6, 0x1e, 0xaa, 0x11, 0x19, 0xa3, 0x10, 0xab, 0x06, 0xb6, 0x08, 0xba, 0x00, 0xb3, 0x09, 0xbb, + 0xe6, 0xce, 0xea, 0xc2, 0xcb, 0xe3, 0xc3, 0xeb, 0xd6, 0xf6, 0xda, 0xfa, 0xd3, 0xf3, 0xdb, 0xfb, + 0x31, 0x8a, 0x3e, 0x86, 0x8f, 0x37, 0x87, 0x3f, 0x92, 0x21, 0x9e, 0x2e, 0x97, 0x27, 0x9f, 0x2f, + 0x61, 0x48, 0x6e, 0x46, 0x4f, 0x67, 0x47, 0x6f, 0x51, 0x71, 0x5e, 0x7e, 0x57, 0x77, 0x5f, 0x7f, + 0xa2, 0x18, 0xae, 0x16, 0x1f, 0xa7, 0x17, 0xaf, 0x01, 0xb2, 0x0e, 0xbe, 0x07, 0xb7, 0x0f, 0xbf, + 0xe2, 0xca, 0xee, 0xc6, 0xcf, 0xe7, 0xc7, 0xef, 0xd2, 0xf2, 0xde, 0xfe, 0xd7, 0xf7, 0xdf, 0xff, + + // Original ^ c2(0x02) + 0x67, 0x4e, 0x68, 0x40, 0x49, 0x61, 0x41, 0x69, 0x57, 0x77, 0x58, 0x78, 0x51, 0x71, 0x59, 0x79, + 0x37, 0x8e, 0x38, 0x83, 0x8b, 0x31, 0x82, 0x39, 0x97, 0x27, 0x9a, 0x28, 0x92, 0x21, 0x9b, 0x29, + 0xe7, 0xce, 0xea, 0xc3, 0xcb, 0xe2, 0xc2, 0xeb, 0xd7, 0xf7, 0xda, 0xfa, 0xd2, 0xf2, 0xdb, 0xfb, + 0xa7, 0x1e, 0xaa, 0x10, 0x19, 0xa2, 0x11, 0xab, 0x07, 0xb7, 0x08, 0xba, 0x01, 0xb2, 0x09, 0xbb, + 0x30, 0x8a, 0x3e, 0x87, 0x8f, 0x36, 0x86, 0x3f, 0x93, 0x20, 0x9e, 0x2e, 0x96, 0x26, 0x9f, 0x2f, + 0x60, 0x48, 0x6e, 0x47, 0x4f, 0x66, 0x46, 0x6f, 0x50, 0x70, 0x5e, 0x7e, 0x56, 0x76, 0x5f, 0x7f, + 0xa3, 0x18, 0xae, 0x17, 0x1f, 0xa6, 0x16, 0xaf, 0x00, 0xb3, 0x0e, 0xbe, 0x06, 0xb6, 0x0f, 0xbf, + 0xe3, 0xca, 0xee, 0xc7, 0xcf, 0xe6, 0xc6, 0xef, 0xd3, 0xf3, 0xde, 0xfe, 0xd6, 0xf6, 0xdf, 0xff, + 0x34, 0x8c, 0x3a, 0x80, 0x89, 0x32, 0x81, 0x3b, 0x94, 0x24, 0x98, 0x2a, 0x91, 0x22, 0x99, 0x2b, + 0x64, 0x4c, 0x6a, 0x43, 0x4b, 0x62, 0x42, 0x6b, 0x54, 0x74, 0x5a, 0x7a, 0x52, 0x72, 0x5b, 0x7b, + 0xa4, 0x1c, 0xa8, 0x13, 0x1b, 0xa1, 0x12, 0xa9, 0x04, 0xb4, 0x0a, 0xb8, 0x02, 0xb1, 0x0b, 0xb9, + 0xe4, 0xcc, 0xe8, 0xc0, 0xc9, 0xe1, 0xc1, 0xe9, 0xd4, 0xf4, 0xd8, 0xf8, 0xd1, 0xf1, 0xd9, 0xf9, + 0x33, 0x88, 0x3c, 0x84, 0x8d, 0x35, 0x85, 0x3d, 0x90, 0x23, 0x9c, 0x2c, 0x95, 0x25, 0x9d, 0x2d, + 0x63, 0x4a, 0x6c, 0x44, 0x4d, 0x65, 0x45, 0x6d, 0x53, 0x73, 0x5c, 0x7c, 0x55, 0x75, 0x5d, 0x7d, + 0xa0, 0x1a, 0xac, 0x14, 0x1d, 0xa5, 0x15, 0xad, 0x03, 0xb0, 0x0c, 0xbc, 0x05, 0xb5, 0x0d, 0xbd, + 0xe0, 0xc8, 0xec, 0xc4, 0xcd, 0xe5, 0xc5, 0xed, 0xd0, 0xf0, 0xdc, 0xfc, 0xd5, 0xf5, 0xdd, 0xfd, +}; + +/* + * Round Constants + */ +unsigned char RC[56] += { + 0x01, 0x03, 0x07, 0x0F, 0x1F, 0x3E, 0x3D, 0x3B, + 0x37, 0x2F, 0x1E, 0x3C, 0x39, 0x33, 0x27, 0x0E, + 0x1D, 0x3A, 0x35, 0x2B, 0x16, 0x2C, 0x18, 0x30, + 0x21, 0x02, 0x05, 0x0B, 0x17, 0x2E, 0x1C, 0x38, + 0x31, 0x23, 0x06, 0x0D, 0x1B, 0x36, 0x2D, 0x1A, + 0x34, 0x29, 0x12, 0x24, 0x08, 0x11, 0x22, 0x04, + 0x09, 0x13, 0x26, 0x0c, 0x19, 0x32, 0x25, 0x0a,}; + +extern void Encrypt(unsigned char *block, unsigned char *roundKeys, unsigned char *pSBOX) __attribute__((noinline)); +extern void RunEncryptionKeyScheduleTK2(unsigned char *roundKeys) __attribute__((noinline)); +extern void RunEncryptionKeyScheduleTK3(unsigned char *roundKeys, unsigned char *pRC) __attribute__((noinline)); + +void skinny_128_384_enc123_12 (unsigned char* input, skinny_ctrl* pskinny_ctrl, unsigned char* CNT, unsigned char* T, const unsigned char* K) +{ + *((unsigned int *)&pskinny_ctrl->roundKeys[0] ) = *((unsigned int *)&CNT[0]); + *((unsigned int *)&pskinny_ctrl->roundKeys[4] ) = *((unsigned int *)&CNT[4]); + *((unsigned int *)&pskinny_ctrl->roundKeys[16]) = *((unsigned int *)&T[0]); + *((unsigned int *)&pskinny_ctrl->roundKeys[20]) = *((unsigned int *)&T[4]); + *((unsigned int *)&pskinny_ctrl->roundKeys[24]) = *((unsigned int *)&T[8]); + *((unsigned int *)&pskinny_ctrl->roundKeys[28]) = *((unsigned int *)&T[12]); + *((unsigned int *)&pskinny_ctrl->roundKeys[32]) = *((unsigned int *)&K[0]); + *((unsigned int *)&pskinny_ctrl->roundKeys[36]) = *((unsigned int *)&K[4]); + *((unsigned int *)&pskinny_ctrl->roundKeys[40]) = *((unsigned int *)&K[8]); + *((unsigned int *)&pskinny_ctrl->roundKeys[44]) = *((unsigned int *)&K[12]); + + RunEncryptionKeyScheduleTK3(pskinny_ctrl->roundKeys, RC); + RunEncryptionKeyScheduleTK2(pskinny_ctrl->roundKeys); + Encrypt(input, pskinny_ctrl->roundKeys, SBOX); + + pskinny_ctrl->func_skinny_128_384_enc = skinny_128_384_enc12_12; +} + +void skinny_128_384_enc12_12 (unsigned char* input, skinny_ctrl* pskinny_ctrl, unsigned char* CNT, unsigned char* T, const unsigned char* K) +{ + (void)K; + + *((unsigned int *)&pskinny_ctrl->roundKeys[0] ) = *((unsigned int *)&CNT[0]); + *((unsigned int *)&pskinny_ctrl->roundKeys[4] ) = *((unsigned int *)&CNT[4]); + *((unsigned int *)&pskinny_ctrl->roundKeys[16]) = *((unsigned int *)&T[0]); + *((unsigned int *)&pskinny_ctrl->roundKeys[20]) = *((unsigned int *)&T[4]); + *((unsigned int *)&pskinny_ctrl->roundKeys[24]) = *((unsigned int *)&T[8]); + *((unsigned int *)&pskinny_ctrl->roundKeys[28]) = *((unsigned int *)&T[12]); + + RunEncryptionKeyScheduleTK2(pskinny_ctrl->roundKeys); + Encrypt(input, pskinny_ctrl->roundKeys, SBOX); +} + +extern void skinny_128_384_enc1_1 (unsigned char* input, skinny_ctrl* pskinny_ctrl, unsigned char* CNT, unsigned char* T, const unsigned char* K) +{ + (void)T; + (void)K; + + *((unsigned int *)&pskinny_ctrl->roundKeys[0] ) = *((unsigned int *)&CNT[0]); + *((unsigned int *)&pskinny_ctrl->roundKeys[4] ) = *((unsigned int *)&CNT[4]); + + Encrypt(input, pskinny_ctrl->roundKeys, SBOX); +} + +__attribute__((aligned(4))) +void Encrypt(unsigned char *block, unsigned char *roundKeys, unsigned char *pSBOX) +{ + // r0 : ponits to plaintext + // r1 : points to roundKeys(& masterKey) + // r2 : points to SBOX + // r3-r6 : cipher state + // r7-r12: temp use + // r14 : temp use + asm volatile( + "stmdb sp!, {r4-r12,r14} \n\t" + "stmdb.w sp!, {r0} \n\t" // push store pointer + +// ART(TK1) + + "ldm.w r1, {r3-r4} \n\t" // load master key + + // round 1-2 + +// // round key store(do not need) +// "str.w r3, [r1,#0] \n\t" +// "str.w r4, [r1,#4] \n\t" + + // premutation + + // r3 ( k3 k2 k1 k0) --- --- --- --- + // r4 ( k7 k6 k5 k4) --- --- --- --- + // r5 (--- --- --- ---) -----> k5 k0 k7 k1 + // r6 (--- --- --- ---) k3 k4 k6 k2 +#ifdef STM32F4 // for Cortex-M4 + "ror.w r5,r4, #16 \n\t" // r5( k5 k4 k7 k6) + "bfi.w r5,r3, #16,#8 \n\t" // r5( k5 k0 k7 k6) + "pkhtb.w r6,r3, r3, asr #16 \n\t" // r6( k3 k2 k3 k2) + "ror.w r3, #8 \n\t" // r3( k0 k3 k2 k1) + "bfi.w r5,r3, #0,#8 \n\t" // r5( k5 k4 k2 k6) + "bfi.w r6,r4, #16,#8 \n\t" // r6( k3 k4 k3 k2) + "ror.w r4,#16 \n\t" // r4( k5 k4 k7 k6) + "bfi.w r6,r4, #8,#8 \n\t" // r6( k3 k4 k6 k2) +#else // for Cortex-M3 + "rev.w r5, r4 \n\t" // r5( k4 k5 k6 k7) + "lsl.w r5, r5, #8 \n\t" // r5( k5 k6 k7 ---) + "bfi.w r5,r3, #16,#8 \n\t" // r5( k5 k0 k7 ---) + "lsr.w r3, r3, #8 \n\t" // r3(--- k3 k2 k1) + "bfi.w r5,r3, #0, #8 \n\t" // r5( k5 k0 k7 k1) + "rev16.w r6, r3 \n\t" // r6( k3 --- k1 k2) + "bfi.w r6,r4, #16,#8 \n\t" // r6( k3 k4 k1 k2) + "lsr.w r4, r4, #16 \n\t" // r4(-- --- k7 k6) + "bfi.w r6,r4, #8, #8 \n\t" // r6( k3 k4 k6 k2) +#endif + // round 3-4 + + // round key store + "str.w r5, [r1,#8] \n\t" + "str.w r6, [r1,#12] \n\t" + + // premutation + + // r3 (--- --- --- ---) k5 k0 k7 k1 + // r4 (--- --- --- ---) k3 k4 k6 k2 + // r5 ( k3 k2 k1 k0) -----> --- --- --- --- + // r6 ( k7 k6 k5 k4) --- --- --- --- +#ifdef STM32F4 // for Cortex-M4 + "ror.w r3,r6, #16 \n\t" // r3( k5 k4 k7 k6) + "bfi.w r3,r5, #16,#8 \n\t" // r3( k5 k0 k7 k6) + "pkhtb.w r4,r5, r5, asr #16 \n\t" // r4( k3 k2 k3 k2) + "ror.w r5, #8 \n\t" // r5( k0 k3 k2 k1) + "bfi.w r3,r5, #0,#8 \n\t" // r3( k5 k4 k2 k6) + "bfi.w r4,r6, #16,#8 \n\t" // r4( k3 k4 k3 k2) + "ror.w r6,#16 \n\t" // r6( k5 k4 k7 k6) + "bfi.w r4,r6, #8,#8 \n\t" // r4( k3 k4 k6 k2) +#else // for Cortex-M3 + "rev.w r3, r6 \n\t" // r3( k4 k5 k6 k7) + "lsl.w r3, r3, #8 \n\t" // r3( k5 k6 k7 ---) + "bfi.w r3,r5, #16,#8 \n\t" // r3( k5 k0 k7 ---) + "lsr.w r5, r5, #8 \n\t" // r5(--- k3 k2 k1) + "bfi.w r3,r5, #0, #8 \n\t" // r3( k5 k0 k7 k1) + "rev16.w r4, r5 \n\t" // r4( k3 --- k1 k2) + "bfi.w r4,r6, #16,#8 \n\t" // r4( k3 k4 k1 k2) + "lsr.w r6, r6, #16 \n\t" // r6(-- --- k7 k6) + "bfi.w r4,r6, #8, #8 \n\t" // r4( k3 k4 k6 k2) +#endif + + // round 5-6 + + // round key store + "str.w r3, [r1,#16] \n\t" + "str.w r4, [r1,#20] \n\t" + + // premutation + + // r3 ( k3 k2 k1 k0) --- --- --- --- + // r4 ( k7 k6 k5 k4) --- --- --- --- + // r5 (--- --- --- ---) -----> k5 k0 k7 k1 + // r6 (--- --- --- ---) k3 k4 k6 k2 +#ifdef STM32F4 // for Cortex-M4 + "ror.w r5,r4, #16 \n\t" // r5( k5 k4 k7 k6) + "bfi.w r5,r3, #16,#8 \n\t" // r5( k5 k0 k7 k6) + "pkhtb.w r6,r3, r3, asr #16 \n\t" // r6( k3 k2 k3 k2) + "ror.w r3, #8 \n\t" // r3( k0 k3 k2 k1) + "bfi.w r5,r3, #0,#8 \n\t" // r5( k5 k4 k2 k6) + "bfi.w r6,r4, #16,#8 \n\t" // r6( k3 k4 k3 k2) + "ror.w r4,#16 \n\t" // r4( k5 k4 k7 k6) + "bfi.w r6,r4, #8,#8 \n\t" // r6( k3 k4 k6 k2) +#else // for Cortex-M3 + "rev.w r5, r4 \n\t" // r5( k4 k5 k6 k7) + "lsl.w r5, r5, #8 \n\t" // r5( k5 k6 k7 ---) + "bfi.w r5,r3, #16,#8 \n\t" // r5( k5 k0 k7 ---) + "lsr.w r3, r3, #8 \n\t" // r3(--- k3 k2 k1) + "bfi.w r5,r3, #0, #8 \n\t" // r5( k5 k0 k7 k1) + "rev16.w r6, r3 \n\t" // r6( k3 --- k1 k2) + "bfi.w r6,r4, #16,#8 \n\t" // r6( k3 k4 k1 k2) + "lsr.w r4, r4, #16 \n\t" // r4(-- --- k7 k6) + "bfi.w r6,r4, #8, #8 \n\t" // r6( k3 k4 k6 k2) +#endif + // round 7-8 + + // round key store + "str.w r5, [r1,#24] \n\t" + "str.w r6, [r1,#28] \n\t" + + // premutation + + // r3 (--- --- --- ---) k5 k0 k7 k1 + // r4 (--- --- --- ---) k3 k4 k6 k2 + // r5 ( k3 k2 k1 k0) -----> --- --- --- --- + // r6 ( k7 k6 k5 k4) --- --- --- --- +#ifdef STM32F4 // for Cortex-M4 + "ror.w r3,r6, #16 \n\t" // r3( k5 k4 k7 k6) + "bfi.w r3,r5, #16,#8 \n\t" // r3( k5 k0 k7 k6) + "pkhtb.w r4,r5, r5, asr #16 \n\t" // r4( k3 k2 k3 k2) + "ror.w r5, #8 \n\t" // r5( k0 k3 k2 k1) + "bfi.w r3,r5, #0,#8 \n\t" // r3( k5 k4 k2 k6) + "bfi.w r4,r6, #16,#8 \n\t" // r4( k3 k4 k3 k2) + "ror.w r6,#16 \n\t" // r6( k5 k4 k7 k6) + "bfi.w r4,r6, #8,#8 \n\t" // r4( k3 k4 k6 k2) +#else // for Cortex-M3 + "rev.w r3, r6 \n\t" // r3( k4 k5 k6 k7) + "lsl.w r3, r3, #8 \n\t" // r3( k5 k6 k7 ---) + "bfi.w r3,r5, #16,#8 \n\t" // r3( k5 k0 k7 ---) + "lsr.w r5, r5, #8 \n\t" // r5(--- k3 k2 k1) + "bfi.w r3,r5, #0, #8 \n\t" // r3( k5 k0 k7 k1) + "rev16.w r4, r5 \n\t" // r4( k3 --- k1 k2) + "bfi.w r4,r6, #16,#8 \n\t" // r4( k3 k4 k1 k2) + "lsr.w r6, r6, #16 \n\t" // r6(-- --- k7 k6) + "bfi.w r4,r6, #8, #8 \n\t" // r4( k3 k4 k6 k2) +#endif + + // round 9-10 + + // round key store + "str.w r3, [r1,#32] \n\t" + "str.w r4, [r1,#36] \n\t" + + // premutation + + // r3 ( k3 k2 k1 k0) --- --- --- --- + // r4 ( k7 k6 k5 k4) --- --- --- --- + // r5 (--- --- --- ---) -----> k5 k0 k7 k1 + // r6 (--- --- --- ---) k3 k4 k6 k2 +#ifdef STM32F4 // for Cortex-M4 + "ror.w r5,r4, #16 \n\t" // r5( k5 k4 k7 k6) + "bfi.w r5,r3, #16,#8 \n\t" // r5( k5 k0 k7 k6) + "pkhtb.w r6,r3, r3, asr #16 \n\t" // r6( k3 k2 k3 k2) + "ror.w r3, #8 \n\t" // r3( k0 k3 k2 k1) + "bfi.w r5,r3, #0,#8 \n\t" // r5( k5 k4 k2 k6) + "bfi.w r6,r4, #16,#8 \n\t" // r6( k3 k4 k3 k2) + "ror.w r4,#16 \n\t" // r4( k5 k4 k7 k6) + "bfi.w r6,r4, #8,#8 \n\t" // r6( k3 k4 k6 k2) +#else // for Cortex-M3 + "rev.w r5, r4 \n\t" // r5( k4 k5 k6 k7) + "lsl.w r5, r5, #8 \n\t" // r5( k5 k6 k7 ---) + "bfi.w r5,r3, #16,#8 \n\t" // r5( k5 k0 k7 ---) + "lsr.w r3, r3, #8 \n\t" // r3(--- k3 k2 k1) + "bfi.w r5,r3, #0, #8 \n\t" // r5( k5 k0 k7 k1) + "rev16.w r6, r3 \n\t" // r6( k3 --- k1 k2) + "bfi.w r6,r4, #16,#8 \n\t" // r6( k3 k4 k1 k2) + "lsr.w r4, r4, #16 \n\t" // r4(-- --- k7 k6) + "bfi.w r6,r4, #8, #8 \n\t" // r6( k3 k4 k6 k2) +#endif + // round 11-12 + + // round key store + "str.w r5, [r1,#40] \n\t" + "str.w r6, [r1,#44] \n\t" + + // premutation + + // r3 (--- --- --- ---) k5 k0 k7 k1 + // r4 (--- --- --- ---) k3 k4 k6 k2 + // r5 ( k3 k2 k1 k0) -----> --- --- --- --- + // r6 ( k7 k6 k5 k4) --- --- --- --- +#ifdef STM32F4 // for Cortex-M4 + "ror.w r3,r6, #16 \n\t" // r3( k5 k4 k7 k6) + "bfi.w r3,r5, #16,#8 \n\t" // r3( k5 k0 k7 k6) + "pkhtb.w r4,r5, r5, asr #16 \n\t" // r4( k3 k2 k3 k2) + "ror.w r5, #8 \n\t" // r5( k0 k3 k2 k1) + "bfi.w r3,r5, #0,#8 \n\t" // r3( k5 k4 k2 k6) + "bfi.w r4,r6, #16,#8 \n\t" // r4( k3 k4 k3 k2) + "ror.w r6,#16 \n\t" // r6( k5 k4 k7 k6) + "bfi.w r4,r6, #8,#8 \n\t" // r4( k3 k4 k6 k2) +#else // for Cortex-M3 + "rev.w r3, r6 \n\t" // r3( k4 k5 k6 k7) + "lsl.w r3, r3, #8 \n\t" // r3( k5 k6 k7 ---) + "bfi.w r3,r5, #16,#8 \n\t" // r3( k5 k0 k7 ---) + "lsr.w r5, r5, #8 \n\t" // r5(--- k3 k2 k1) + "bfi.w r3,r5, #0, #8 \n\t" // r3( k5 k0 k7 k1) + "rev16.w r4, r5 \n\t" // r4( k3 --- k1 k2) + "bfi.w r4,r6, #16,#8 \n\t" // r4( k3 k4 k1 k2) + "lsr.w r6, r6, #16 \n\t" // r6(-- --- k7 k6) + "bfi.w r4,r6, #8, #8 \n\t" // r4( k3 k4 k6 k2) +#endif + + // round 13-14 + + // round key store + "str.w r3, [r1,#48] \n\t" + "str.w r4, [r1,#52] \n\t" + + // premutation + + // r3 ( k3 k2 k1 k0) --- --- --- --- + // r4 ( k7 k6 k5 k4) --- --- --- --- + // r5 (--- --- --- ---) -----> k5 k0 k7 k1 + // r6 (--- --- --- ---) k3 k4 k6 k2 +#ifdef STM32F4 // for Cortex-M4 + "ror.w r5,r4, #16 \n\t" // r5( k5 k4 k7 k6) + "bfi.w r5,r3, #16,#8 \n\t" // r5( k5 k0 k7 k6) + "pkhtb.w r6,r3, r3, asr #16 \n\t" // r6( k3 k2 k3 k2) + "ror.w r3, #8 \n\t" // r3( k0 k3 k2 k1) + "bfi.w r5,r3, #0,#8 \n\t" // r5( k5 k4 k2 k6) + "bfi.w r6,r4, #16,#8 \n\t" // r6( k3 k4 k3 k2) + "ror.w r4,#16 \n\t" // r4( k5 k4 k7 k6) + "bfi.w r6,r4, #8,#8 \n\t" // r6( k3 k4 k6 k2) +#else // for Cortex-M3 + "rev.w r5, r4 \n\t" // r5( k4 k5 k6 k7) + "lsl.w r5, r5, #8 \n\t" // r5( k5 k6 k7 ---) + "bfi.w r5,r3, #16,#8 \n\t" // r5( k5 k0 k7 ---) + "lsr.w r3, r3, #8 \n\t" // r3(--- k3 k2 k1) + "bfi.w r5,r3, #0, #8 \n\t" // r5( k5 k0 k7 k1) + "rev16.w r6, r3 \n\t" // r6( k3 --- k1 k2) + "bfi.w r6,r4, #16,#8 \n\t" // r6( k3 k4 k1 k2) + "lsr.w r4, r4, #16 \n\t" // r4(-- --- k7 k6) + "bfi.w r6,r4, #8, #8 \n\t" // r6( k3 k4 k6 k2) +#endif + // round 15-16 + + // round key store + "str.w r5, [r1,#56] \n\t" + "str.w r6, [r1,#60] \n\t" + + // premutation + + // not need to calculate (not used) + +// SC->(AC->ART)->SR->MC + + "add.w r14, r2, #256 \n\t" // point to SBOX ^ c2(0x02) + + "ldm.w r0, {r3-r6} \n\t" // load plaintext + // r0 now free to overwrite + + // round 1 + + // SubCell+ShiftRow+AC(c2) + // r3 (s3 s2 s1 s0) + // r4 (s7 s6 s5 s4) + // r5 (s11 s10 s9 s8) + // r6 (s15 s14 s13 s12) + + // 1st-2nd line + // r3(s3 s2 s1 s0) + "uxtb.w r9, r3, ror #24 \n\t" // s3 + "uxtb.w r8, r3, ror #16 \n\t" // s2 + "uxtb.w r7, r3, ror #8 \n\t" // s1 + "uxtb.w r3, r3 \n\t" // s0 + // r4(s6 s5 s4 s7) + "uxtb.w r12, r4, ror #16 \n\t" // s6 + "uxtb.w r11, r4, ror #8 \n\t" // s5 + "uxtb.w r10, r4 \n\t" // s4 + "uxtb.w r4, r4, ror #24 \n\t" // s7 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "eor.w r3, r3, r7, lsl #8 \n\t" + "eor.w r3, r3, r8, lsl #16 \n\t" + "eor.w r3, r3, r9, lsl #24 \n\t" + "eor.w r4, r4, r10, lsl #8 \n\t" + "eor.w r4, r4, r11, lsl #16 \n\t" + "eor.w r4, r4, r12, lsl #24 \n\t" + + // 3rd-4th line + // r5(s9 s8 s11 s10) + "uxtb.w r9, r5, ror #8 \n\t" // s9 + "uxtb.w r8, r5 \n\t" // s8 + "uxtb.w r7, r5, ror #24 \n\t" // s11 + "uxtb.w r5, r5, ror #16 \n\t" // s10 + // r6(s12 s15 s14 s13) + "uxtb.w r12, r6 \n\t" // s12 + "uxtb.w r11, r6, ror #24 \n\t" // s15 + "uxtb.w r10, r6, ror #16 \n\t" // s14 + "uxtb.w r6, r6, ror #8 \n\t" // s13 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "eor.w r5, r5, r7, lsl #8 \n\t" + "eor.w r5, r5, r8, lsl #16 \n\t" + "eor.w r5, r5, r9, lsl #24 \n\t" + "eor.w r6, r6, r10, lsl #8 \n\t" + "eor.w r6, r6, r11, lsl #16 \n\t" + "eor.w r6, r6, r12, lsl #24 \n\t" + + // AddRoundKey and AddRoundConst(from roundKeys) + "ldr.w r9, [r1,#0] \n\t" // load TK1 + "ldr.w r10, [r1,#4] \n\t" // load TK1 + "ldr.w r11, [r1,#64] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "ldr.w r12, [r1,#68] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + + "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) + "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) + // r8( s9 s8 s11 s10) + // r6(s12 s14 s14 s13) + + // MixColumn + "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 + "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 + "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 + // r8 ----------------> r8 + + // round 2 + + // SubCell+ShiftRow+AC(c2) + // r7 (s3 s2 s1 s0) + // r8 (s7 s6 s5 s4) + // r9 (s11 s10 s9 s8) + // r10(s15 s14 s13 s12) + + // 1st-2nd line + // r7(s3 s2 s1 s0) + "uxtb.w r5, r7, ror #24 \n\t" // s3 + "uxtb.w r4, r7, ror #16 \n\t" // s2 + "uxtb.w r3, r7, ror #8 \n\t" // s1 + "uxtb.w r7, r7 \n\t" // s0 + // r8(s6 s5 s4 s7) + "uxtb.w r12, r8, ror #16 \n\t" // s6 + "uxtb.w r11, r8, ror #8 \n\t" // s5 + "uxtb.w r6, r8 \n\t" // s4 + "uxtb.w r8, r8, ror #24 \n\t" // s7 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldr.w r0, [r1,#72] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r7, r7, r3, lsl #8 \n\t" + "eor.w r7, r7, r4, lsl #16 \n\t" + "eor.w r7, r7, r5, lsl #24 \n\t" + "eor.w r8, r8, r6, lsl #8 \n\t" + "eor.w r8, r8, r11, lsl #16 \n\t" + "eor.w r8, r8, r12, lsl #24 \n\t" + "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) + + // 3rd-4th line + // r9(s9 s8 s11 s10) + "uxtb.w r5, r9, ror #8 \n\t" // s9 + "uxtb.w r7, r9 \n\t" // s8 + "uxtb.w r3, r9, ror #24 \n\t" // s11 + "uxtb.w r9, r9, ror #16 \n\t" // s10 + // r10(s12 s15 s14 s13) + "uxtb.w r12, r10 \n\t" // s12 + "uxtb.w r11, r10, ror #24 \n\t" // s15 + "uxtb.w r6, r10, ror #16 \n\t" // s14 + "uxtb.w r10, r10, ror #8 \n\t" // s13 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldr.w r0, [r1,#76] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r9, r9, r3, lsl #8 \n\t" + "eor.w r9, r9, r7, lsl #16 \n\t" + "eor.w r9, r9, r5, lsl #24 \n\t" + "eor.w r10, r10, r6, lsl #8 \n\t" + "eor.w r10, r10, r11, lsl #16 \n\t" + "eor.w r10, r10, r12, lsl #24 \n\t" + "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) + + // AddRoundKey and AddRoundConst(from roundKeys) + + // r9( s9 s8 s11 s10) + // r10(s12 s14 s14 s13) + + // MixColumn + "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 + "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 + "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 + // r4 ----------------> r4 + // round 3 + + // SubCell+ShiftRow+AC(c2) + // r3 (s3 s2 s1 s0) + // r4 (s7 s6 s5 s4) + // r5 (s11 s10 s9 s8) + // r6 (s15 s14 s13 s12) + + // 1st-2nd line + // r3(s3 s2 s1 s0) + "uxtb.w r9, r3, ror #24 \n\t" // s3 + "uxtb.w r8, r3, ror #16 \n\t" // s2 + "uxtb.w r7, r3, ror #8 \n\t" // s1 + "uxtb.w r3, r3 \n\t" // s0 + // r4(s6 s5 s4 s7) + "uxtb.w r12, r4, ror #16 \n\t" // s6 + "uxtb.w r11, r4, ror #8 \n\t" // s5 + "uxtb.w r10, r4 \n\t" // s4 + "uxtb.w r4, r4, ror #24 \n\t" // s7 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "eor.w r3, r3, r7, lsl #8 \n\t" + "eor.w r3, r3, r8, lsl #16 \n\t" + "eor.w r3, r3, r9, lsl #24 \n\t" + "eor.w r4, r4, r10, lsl #8 \n\t" + "eor.w r4, r4, r11, lsl #16 \n\t" + "eor.w r4, r4, r12, lsl #24 \n\t" + + // 3rd-4th line + // r5(s9 s8 s11 s10) + "uxtb.w r9, r5, ror #8 \n\t" // s9 + "uxtb.w r8, r5 \n\t" // s8 + "uxtb.w r7, r5, ror #24 \n\t" // s11 + "uxtb.w r5, r5, ror #16 \n\t" // s10 + // r6(s12 s15 s14 s13) + "uxtb.w r12, r6 \n\t" // s12 + "uxtb.w r11, r6, ror #24 \n\t" // s15 + "uxtb.w r10, r6, ror #16 \n\t" // s14 + "uxtb.w r6, r6, ror #8 \n\t" // s13 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "eor.w r5, r5, r7, lsl #8 \n\t" + "eor.w r5, r5, r8, lsl #16 \n\t" + "eor.w r5, r5, r9, lsl #24 \n\t" + "eor.w r6, r6, r10, lsl #8 \n\t" + "eor.w r6, r6, r11, lsl #16 \n\t" + "eor.w r6, r6, r12, lsl #24 \n\t" + + // AddRoundKey and AddRoundConst(from roundKeys) + "ldr.w r9, [r1,#8] \n\t" // load TK1 + "ldr.w r10, [r1,#12] \n\t" // load TK1 + "ldr.w r11, [r1,#80] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "ldr.w r12, [r1,#84] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + + "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) + "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) + // r8( s9 s8 s11 s10) + // r6(s12 s14 s14 s13) + + // MixColumn + "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 + "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 + "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 + // r8 ----------------> r8 + + // round 4 + + // SubCell+ShiftRow+AC(c2) + // r7 (s3 s2 s1 s0) + // r8 (s7 s6 s5 s4) + // r9 (s11 s10 s9 s8) + // r10(s15 s14 s13 s12) + + // 1st-2nd line + // r7(s3 s2 s1 s0) + "uxtb.w r5, r7, ror #24 \n\t" // s3 + "uxtb.w r4, r7, ror #16 \n\t" // s2 + "uxtb.w r3, r7, ror #8 \n\t" // s1 + "uxtb.w r7, r7 \n\t" // s0 + // r8(s6 s5 s4 s7) + "uxtb.w r12, r8, ror #16 \n\t" // s6 + "uxtb.w r11, r8, ror #8 \n\t" // s5 + "uxtb.w r6, r8 \n\t" // s4 + "uxtb.w r8, r8, ror #24 \n\t" // s7 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldr.w r0, [r1,#88] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r7, r7, r3, lsl #8 \n\t" + "eor.w r7, r7, r4, lsl #16 \n\t" + "eor.w r7, r7, r5, lsl #24 \n\t" + "eor.w r8, r8, r6, lsl #8 \n\t" + "eor.w r8, r8, r11, lsl #16 \n\t" + "eor.w r8, r8, r12, lsl #24 \n\t" + "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) + + // 3rd-4th line + // r9(s9 s8 s11 s10) + "uxtb.w r5, r9, ror #8 \n\t" // s9 + "uxtb.w r7, r9 \n\t" // s8 + "uxtb.w r3, r9, ror #24 \n\t" // s11 + "uxtb.w r9, r9, ror #16 \n\t" // s10 + // r10(s12 s15 s14 s13) + "uxtb.w r12, r10 \n\t" // s12 + "uxtb.w r11, r10, ror #24 \n\t" // s15 + "uxtb.w r6, r10, ror #16 \n\t" // s14 + "uxtb.w r10, r10, ror #8 \n\t" // s13 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldr.w r0, [r1,#92] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r9, r9, r3, lsl #8 \n\t" + "eor.w r9, r9, r7, lsl #16 \n\t" + "eor.w r9, r9, r5, lsl #24 \n\t" + "eor.w r10, r10, r6, lsl #8 \n\t" + "eor.w r10, r10, r11, lsl #16 \n\t" + "eor.w r10, r10, r12, lsl #24 \n\t" + "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) + + // AddRoundKey and AddRoundConst(from roundKeys) + + // r9( s9 s8 s11 s10) + // r10(s12 s14 s14 s13) + + // MixColumn + "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 + "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 + "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 + // r4 ----------------> r4 + // round 5 + + // SubCell+ShiftRow+AC(c2) + // r3 (s3 s2 s1 s0) + // r4 (s7 s6 s5 s4) + // r5 (s11 s10 s9 s8) + // r6 (s15 s14 s13 s12) + + // 1st-2nd line + // r3(s3 s2 s1 s0) + "uxtb.w r9, r3, ror #24 \n\t" // s3 + "uxtb.w r8, r3, ror #16 \n\t" // s2 + "uxtb.w r7, r3, ror #8 \n\t" // s1 + "uxtb.w r3, r3 \n\t" // s0 + // r4(s6 s5 s4 s7) + "uxtb.w r12, r4, ror #16 \n\t" // s6 + "uxtb.w r11, r4, ror #8 \n\t" // s5 + "uxtb.w r10, r4 \n\t" // s4 + "uxtb.w r4, r4, ror #24 \n\t" // s7 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "eor.w r3, r3, r7, lsl #8 \n\t" + "eor.w r3, r3, r8, lsl #16 \n\t" + "eor.w r3, r3, r9, lsl #24 \n\t" + "eor.w r4, r4, r10, lsl #8 \n\t" + "eor.w r4, r4, r11, lsl #16 \n\t" + "eor.w r4, r4, r12, lsl #24 \n\t" + + // 3rd-4th line + // r5(s9 s8 s11 s10) + "uxtb.w r9, r5, ror #8 \n\t" // s9 + "uxtb.w r8, r5 \n\t" // s8 + "uxtb.w r7, r5, ror #24 \n\t" // s11 + "uxtb.w r5, r5, ror #16 \n\t" // s10 + // r6(s12 s15 s14 s13) + "uxtb.w r12, r6 \n\t" // s12 + "uxtb.w r11, r6, ror #24 \n\t" // s15 + "uxtb.w r10, r6, ror #16 \n\t" // s14 + "uxtb.w r6, r6, ror #8 \n\t" // s13 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "eor.w r5, r5, r7, lsl #8 \n\t" + "eor.w r5, r5, r8, lsl #16 \n\t" + "eor.w r5, r5, r9, lsl #24 \n\t" + "eor.w r6, r6, r10, lsl #8 \n\t" + "eor.w r6, r6, r11, lsl #16 \n\t" + "eor.w r6, r6, r12, lsl #24 \n\t" + + // AddRoundKey and AddRoundConst(from roundKeys) + "ldr.w r9, [r1,#16] \n\t" // load TK1 + "ldr.w r10, [r1,#20] \n\t" // load TK1 + "ldr.w r11, [r1,#96] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "ldr.w r12, [r1,#100] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + + "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) + "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) + // r8( s9 s8 s11 s10) + // r6(s12 s14 s14 s13) + + // MixColumn + "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 + "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 + "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 + // r8 ----------------> r8 + + // round 6 + + // SubCell+ShiftRow+AC(c2) + // r7 (s3 s2 s1 s0) + // r8 (s7 s6 s5 s4) + // r9 (s11 s10 s9 s8) + // r10(s15 s14 s13 s12) + + // 1st-2nd line + // r7(s3 s2 s1 s0) + "uxtb.w r5, r7, ror #24 \n\t" // s3 + "uxtb.w r4, r7, ror #16 \n\t" // s2 + "uxtb.w r3, r7, ror #8 \n\t" // s1 + "uxtb.w r7, r7 \n\t" // s0 + // r8(s6 s5 s4 s7) + "uxtb.w r12, r8, ror #16 \n\t" // s6 + "uxtb.w r11, r8, ror #8 \n\t" // s5 + "uxtb.w r6, r8 \n\t" // s4 + "uxtb.w r8, r8, ror #24 \n\t" // s7 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldr.w r0, [r1,#104] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r7, r7, r3, lsl #8 \n\t" + "eor.w r7, r7, r4, lsl #16 \n\t" + "eor.w r7, r7, r5, lsl #24 \n\t" + "eor.w r8, r8, r6, lsl #8 \n\t" + "eor.w r8, r8, r11, lsl #16 \n\t" + "eor.w r8, r8, r12, lsl #24 \n\t" + "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) + + // 3rd-4th line + // r9(s9 s8 s11 s10) + "uxtb.w r5, r9, ror #8 \n\t" // s9 + "uxtb.w r7, r9 \n\t" // s8 + "uxtb.w r3, r9, ror #24 \n\t" // s11 + "uxtb.w r9, r9, ror #16 \n\t" // s10 + // r10(s12 s15 s14 s13) + "uxtb.w r12, r10 \n\t" // s12 + "uxtb.w r11, r10, ror #24 \n\t" // s15 + "uxtb.w r6, r10, ror #16 \n\t" // s14 + "uxtb.w r10, r10, ror #8 \n\t" // s13 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldr.w r0, [r1,#108] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r9, r9, r3, lsl #8 \n\t" + "eor.w r9, r9, r7, lsl #16 \n\t" + "eor.w r9, r9, r5, lsl #24 \n\t" + "eor.w r10, r10, r6, lsl #8 \n\t" + "eor.w r10, r10, r11, lsl #16 \n\t" + "eor.w r10, r10, r12, lsl #24 \n\t" + "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) + + // AddRoundKey and AddRoundConst(from roundKeys) + + // r9( s9 s8 s11 s10) + // r10(s12 s14 s14 s13) + + // MixColumn + "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 + "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 + "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 + // r4 ----------------> r4 + // round 7 + + // SubCell+ShiftRow+AC(c2) + // r3 (s3 s2 s1 s0) + // r4 (s7 s6 s5 s4) + // r5 (s11 s10 s9 s8) + // r6 (s15 s14 s13 s12) + + // 1st-2nd line + // r3(s3 s2 s1 s0) + "uxtb.w r9, r3, ror #24 \n\t" // s3 + "uxtb.w r8, r3, ror #16 \n\t" // s2 + "uxtb.w r7, r3, ror #8 \n\t" // s1 + "uxtb.w r3, r3 \n\t" // s0 + // r4(s6 s5 s4 s7) + "uxtb.w r12, r4, ror #16 \n\t" // s6 + "uxtb.w r11, r4, ror #8 \n\t" // s5 + "uxtb.w r10, r4 \n\t" // s4 + "uxtb.w r4, r4, ror #24 \n\t" // s7 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "eor.w r3, r3, r7, lsl #8 \n\t" + "eor.w r3, r3, r8, lsl #16 \n\t" + "eor.w r3, r3, r9, lsl #24 \n\t" + "eor.w r4, r4, r10, lsl #8 \n\t" + "eor.w r4, r4, r11, lsl #16 \n\t" + "eor.w r4, r4, r12, lsl #24 \n\t" + + // 3rd-4th line + // r5(s9 s8 s11 s10) + "uxtb.w r9, r5, ror #8 \n\t" // s9 + "uxtb.w r8, r5 \n\t" // s8 + "uxtb.w r7, r5, ror #24 \n\t" // s11 + "uxtb.w r5, r5, ror #16 \n\t" // s10 + // r6(s12 s15 s14 s13) + "uxtb.w r12, r6 \n\t" // s12 + "uxtb.w r11, r6, ror #24 \n\t" // s15 + "uxtb.w r10, r6, ror #16 \n\t" // s14 + "uxtb.w r6, r6, ror #8 \n\t" // s13 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "eor.w r5, r5, r7, lsl #8 \n\t" + "eor.w r5, r5, r8, lsl #16 \n\t" + "eor.w r5, r5, r9, lsl #24 \n\t" + "eor.w r6, r6, r10, lsl #8 \n\t" + "eor.w r6, r6, r11, lsl #16 \n\t" + "eor.w r6, r6, r12, lsl #24 \n\t" + + // AddRoundKey and AddRoundConst(from roundKeys) + "ldr.w r9, [r1,#24] \n\t" // load TK1 + "ldr.w r10, [r1,#28] \n\t" // load TK1 + "ldr.w r11, [r1,#112] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "ldr.w r12, [r1,#116] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + + "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) + "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) + // r8( s9 s8 s11 s10) + // r6(s12 s14 s14 s13) + + // MixColumn + "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 + "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 + "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 + // r8 ----------------> r8 + + // round 8 + + // SubCell+ShiftRow+AC(c2) + // r7 (s3 s2 s1 s0) + // r8 (s7 s6 s5 s4) + // r9 (s11 s10 s9 s8) + // r10(s15 s14 s13 s12) + + // 1st-2nd line + // r7(s3 s2 s1 s0) + "uxtb.w r5, r7, ror #24 \n\t" // s3 + "uxtb.w r4, r7, ror #16 \n\t" // s2 + "uxtb.w r3, r7, ror #8 \n\t" // s1 + "uxtb.w r7, r7 \n\t" // s0 + // r8(s6 s5 s4 s7) + "uxtb.w r12, r8, ror #16 \n\t" // s6 + "uxtb.w r11, r8, ror #8 \n\t" // s5 + "uxtb.w r6, r8 \n\t" // s4 + "uxtb.w r8, r8, ror #24 \n\t" // s7 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldr.w r0, [r1,#120] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r7, r7, r3, lsl #8 \n\t" + "eor.w r7, r7, r4, lsl #16 \n\t" + "eor.w r7, r7, r5, lsl #24 \n\t" + "eor.w r8, r8, r6, lsl #8 \n\t" + "eor.w r8, r8, r11, lsl #16 \n\t" + "eor.w r8, r8, r12, lsl #24 \n\t" + "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) + + // 3rd-4th line + // r9(s9 s8 s11 s10) + "uxtb.w r5, r9, ror #8 \n\t" // s9 + "uxtb.w r7, r9 \n\t" // s8 + "uxtb.w r3, r9, ror #24 \n\t" // s11 + "uxtb.w r9, r9, ror #16 \n\t" // s10 + // r10(s12 s15 s14 s13) + "uxtb.w r12, r10 \n\t" // s12 + "uxtb.w r11, r10, ror #24 \n\t" // s15 + "uxtb.w r6, r10, ror #16 \n\t" // s14 + "uxtb.w r10, r10, ror #8 \n\t" // s13 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldr.w r0, [r1,#124] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r9, r9, r3, lsl #8 \n\t" + "eor.w r9, r9, r7, lsl #16 \n\t" + "eor.w r9, r9, r5, lsl #24 \n\t" + "eor.w r10, r10, r6, lsl #8 \n\t" + "eor.w r10, r10, r11, lsl #16 \n\t" + "eor.w r10, r10, r12, lsl #24 \n\t" + "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) + + // AddRoundKey and AddRoundConst(from roundKeys) + + // r9( s9 s8 s11 s10) + // r10(s12 s14 s14 s13) + + // MixColumn + "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 + "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 + "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 + // r4 ----------------> r4 + // round 9 + + // SubCell+ShiftRow+AC(c2) + // r3 (s3 s2 s1 s0) + // r4 (s7 s6 s5 s4) + // r5 (s11 s10 s9 s8) + // r6 (s15 s14 s13 s12) + + // 1st-2nd line + // r3(s3 s2 s1 s0) + "uxtb.w r9, r3, ror #24 \n\t" // s3 + "uxtb.w r8, r3, ror #16 \n\t" // s2 + "uxtb.w r7, r3, ror #8 \n\t" // s1 + "uxtb.w r3, r3 \n\t" // s0 + // r4(s6 s5 s4 s7) + "uxtb.w r12, r4, ror #16 \n\t" // s6 + "uxtb.w r11, r4, ror #8 \n\t" // s5 + "uxtb.w r10, r4 \n\t" // s4 + "uxtb.w r4, r4, ror #24 \n\t" // s7 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "eor.w r3, r3, r7, lsl #8 \n\t" + "eor.w r3, r3, r8, lsl #16 \n\t" + "eor.w r3, r3, r9, lsl #24 \n\t" + "eor.w r4, r4, r10, lsl #8 \n\t" + "eor.w r4, r4, r11, lsl #16 \n\t" + "eor.w r4, r4, r12, lsl #24 \n\t" + + // 3rd-4th line + // r5(s9 s8 s11 s10) + "uxtb.w r9, r5, ror #8 \n\t" // s9 + "uxtb.w r8, r5 \n\t" // s8 + "uxtb.w r7, r5, ror #24 \n\t" // s11 + "uxtb.w r5, r5, ror #16 \n\t" // s10 + // r6(s12 s15 s14 s13) + "uxtb.w r12, r6 \n\t" // s12 + "uxtb.w r11, r6, ror #24 \n\t" // s15 + "uxtb.w r10, r6, ror #16 \n\t" // s14 + "uxtb.w r6, r6, ror #8 \n\t" // s13 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "eor.w r5, r5, r7, lsl #8 \n\t" + "eor.w r5, r5, r8, lsl #16 \n\t" + "eor.w r5, r5, r9, lsl #24 \n\t" + "eor.w r6, r6, r10, lsl #8 \n\t" + "eor.w r6, r6, r11, lsl #16 \n\t" + "eor.w r6, r6, r12, lsl #24 \n\t" + + // AddRoundKey and AddRoundConst(from roundKeys) + "ldr.w r9, [r1,#32] \n\t" // load TK1 + "ldr.w r10, [r1,#36] \n\t" // load TK1 + "ldr.w r11, [r1,#128] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "ldr.w r12, [r1,#132] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + + "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) + "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) + // r8( s9 s8 s11 s10) + // r6(s12 s14 s14 s13) + + // MixColumn + "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 + "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 + "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 + // r8 ----------------> r8 + + // round 10 + + // SubCell+ShiftRow+AC(c2) + // r7 (s3 s2 s1 s0) + // r8 (s7 s6 s5 s4) + // r9 (s11 s10 s9 s8) + // r10(s15 s14 s13 s12) + + // 1st-2nd line + // r7(s3 s2 s1 s0) + "uxtb.w r5, r7, ror #24 \n\t" // s3 + "uxtb.w r4, r7, ror #16 \n\t" // s2 + "uxtb.w r3, r7, ror #8 \n\t" // s1 + "uxtb.w r7, r7 \n\t" // s0 + // r8(s6 s5 s4 s7) + "uxtb.w r12, r8, ror #16 \n\t" // s6 + "uxtb.w r11, r8, ror #8 \n\t" // s5 + "uxtb.w r6, r8 \n\t" // s4 + "uxtb.w r8, r8, ror #24 \n\t" // s7 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldr.w r0, [r1,#136] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r7, r7, r3, lsl #8 \n\t" + "eor.w r7, r7, r4, lsl #16 \n\t" + "eor.w r7, r7, r5, lsl #24 \n\t" + "eor.w r8, r8, r6, lsl #8 \n\t" + "eor.w r8, r8, r11, lsl #16 \n\t" + "eor.w r8, r8, r12, lsl #24 \n\t" + "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) + + // 3rd-4th line + // r9(s9 s8 s11 s10) + "uxtb.w r5, r9, ror #8 \n\t" // s9 + "uxtb.w r7, r9 \n\t" // s8 + "uxtb.w r3, r9, ror #24 \n\t" // s11 + "uxtb.w r9, r9, ror #16 \n\t" // s10 + // r10(s12 s15 s14 s13) + "uxtb.w r12, r10 \n\t" // s12 + "uxtb.w r11, r10, ror #24 \n\t" // s15 + "uxtb.w r6, r10, ror #16 \n\t" // s14 + "uxtb.w r10, r10, ror #8 \n\t" // s13 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldr.w r0, [r1,#140] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r9, r9, r3, lsl #8 \n\t" + "eor.w r9, r9, r7, lsl #16 \n\t" + "eor.w r9, r9, r5, lsl #24 \n\t" + "eor.w r10, r10, r6, lsl #8 \n\t" + "eor.w r10, r10, r11, lsl #16 \n\t" + "eor.w r10, r10, r12, lsl #24 \n\t" + "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) + + // AddRoundKey and AddRoundConst(from roundKeys) + + // r9( s9 s8 s11 s10) + // r10(s12 s14 s14 s13) + + // MixColumn + "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 + "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 + "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 + // r4 ----------------> r4 + // round 11 + + // SubCell+ShiftRow+AC(c2) + // r3 (s3 s2 s1 s0) + // r4 (s7 s6 s5 s4) + // r5 (s11 s10 s9 s8) + // r6 (s15 s14 s13 s12) + + // 1st-2nd line + // r3(s3 s2 s1 s0) + "uxtb.w r9, r3, ror #24 \n\t" // s3 + "uxtb.w r8, r3, ror #16 \n\t" // s2 + "uxtb.w r7, r3, ror #8 \n\t" // s1 + "uxtb.w r3, r3 \n\t" // s0 + // r4(s6 s5 s4 s7) + "uxtb.w r12, r4, ror #16 \n\t" // s6 + "uxtb.w r11, r4, ror #8 \n\t" // s5 + "uxtb.w r10, r4 \n\t" // s4 + "uxtb.w r4, r4, ror #24 \n\t" // s7 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "eor.w r3, r3, r7, lsl #8 \n\t" + "eor.w r3, r3, r8, lsl #16 \n\t" + "eor.w r3, r3, r9, lsl #24 \n\t" + "eor.w r4, r4, r10, lsl #8 \n\t" + "eor.w r4, r4, r11, lsl #16 \n\t" + "eor.w r4, r4, r12, lsl #24 \n\t" + + // 3rd-4th line + // r5(s9 s8 s11 s10) + "uxtb.w r9, r5, ror #8 \n\t" // s9 + "uxtb.w r8, r5 \n\t" // s8 + "uxtb.w r7, r5, ror #24 \n\t" // s11 + "uxtb.w r5, r5, ror #16 \n\t" // s10 + // r6(s12 s15 s14 s13) + "uxtb.w r12, r6 \n\t" // s12 + "uxtb.w r11, r6, ror #24 \n\t" // s15 + "uxtb.w r10, r6, ror #16 \n\t" // s14 + "uxtb.w r6, r6, ror #8 \n\t" // s13 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "eor.w r5, r5, r7, lsl #8 \n\t" + "eor.w r5, r5, r8, lsl #16 \n\t" + "eor.w r5, r5, r9, lsl #24 \n\t" + "eor.w r6, r6, r10, lsl #8 \n\t" + "eor.w r6, r6, r11, lsl #16 \n\t" + "eor.w r6, r6, r12, lsl #24 \n\t" + + // AddRoundKey and AddRoundConst(from roundKeys) + "ldr.w r9, [r1,#40] \n\t" // load TK1 + "ldr.w r10, [r1,#44] \n\t" // load TK1 + "ldr.w r11, [r1,#144] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "ldr.w r12, [r1,#148] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + + "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) + "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) + // r8( s9 s8 s11 s10) + // r6(s12 s14 s14 s13) + + // MixColumn + "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 + "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 + "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 + // r8 ----------------> r8 + + // round 12 + + // SubCell+ShiftRow+AC(c2) + // r7 (s3 s2 s1 s0) + // r8 (s7 s6 s5 s4) + // r9 (s11 s10 s9 s8) + // r10(s15 s14 s13 s12) + + // 1st-2nd line + // r7(s3 s2 s1 s0) + "uxtb.w r5, r7, ror #24 \n\t" // s3 + "uxtb.w r4, r7, ror #16 \n\t" // s2 + "uxtb.w r3, r7, ror #8 \n\t" // s1 + "uxtb.w r7, r7 \n\t" // s0 + // r8(s6 s5 s4 s7) + "uxtb.w r12, r8, ror #16 \n\t" // s6 + "uxtb.w r11, r8, ror #8 \n\t" // s5 + "uxtb.w r6, r8 \n\t" // s4 + "uxtb.w r8, r8, ror #24 \n\t" // s7 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldr.w r0, [r1,#152] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r7, r7, r3, lsl #8 \n\t" + "eor.w r7, r7, r4, lsl #16 \n\t" + "eor.w r7, r7, r5, lsl #24 \n\t" + "eor.w r8, r8, r6, lsl #8 \n\t" + "eor.w r8, r8, r11, lsl #16 \n\t" + "eor.w r8, r8, r12, lsl #24 \n\t" + "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) + + // 3rd-4th line + // r9(s9 s8 s11 s10) + "uxtb.w r5, r9, ror #8 \n\t" // s9 + "uxtb.w r7, r9 \n\t" // s8 + "uxtb.w r3, r9, ror #24 \n\t" // s11 + "uxtb.w r9, r9, ror #16 \n\t" // s10 + // r10(s12 s15 s14 s13) + "uxtb.w r12, r10 \n\t" // s12 + "uxtb.w r11, r10, ror #24 \n\t" // s15 + "uxtb.w r6, r10, ror #16 \n\t" // s14 + "uxtb.w r10, r10, ror #8 \n\t" // s13 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldr.w r0, [r1,#156] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r9, r9, r3, lsl #8 \n\t" + "eor.w r9, r9, r7, lsl #16 \n\t" + "eor.w r9, r9, r5, lsl #24 \n\t" + "eor.w r10, r10, r6, lsl #8 \n\t" + "eor.w r10, r10, r11, lsl #16 \n\t" + "eor.w r10, r10, r12, lsl #24 \n\t" + "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) + + // AddRoundKey and AddRoundConst(from roundKeys) + + // r9( s9 s8 s11 s10) + // r10(s12 s14 s14 s13) + + // MixColumn + "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 + "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 + "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 + // r4 ----------------> r4 + // round 13 + + // SubCell+ShiftRow+AC(c2) + // r3 (s3 s2 s1 s0) + // r4 (s7 s6 s5 s4) + // r5 (s11 s10 s9 s8) + // r6 (s15 s14 s13 s12) + + // 1st-2nd line + // r3(s3 s2 s1 s0) + "uxtb.w r9, r3, ror #24 \n\t" // s3 + "uxtb.w r8, r3, ror #16 \n\t" // s2 + "uxtb.w r7, r3, ror #8 \n\t" // s1 + "uxtb.w r3, r3 \n\t" // s0 + // r4(s6 s5 s4 s7) + "uxtb.w r12, r4, ror #16 \n\t" // s6 + "uxtb.w r11, r4, ror #8 \n\t" // s5 + "uxtb.w r10, r4 \n\t" // s4 + "uxtb.w r4, r4, ror #24 \n\t" // s7 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "eor.w r3, r3, r7, lsl #8 \n\t" + "eor.w r3, r3, r8, lsl #16 \n\t" + "eor.w r3, r3, r9, lsl #24 \n\t" + "eor.w r4, r4, r10, lsl #8 \n\t" + "eor.w r4, r4, r11, lsl #16 \n\t" + "eor.w r4, r4, r12, lsl #24 \n\t" + + // 3rd-4th line + // r5(s9 s8 s11 s10) + "uxtb.w r9, r5, ror #8 \n\t" // s9 + "uxtb.w r8, r5 \n\t" // s8 + "uxtb.w r7, r5, ror #24 \n\t" // s11 + "uxtb.w r5, r5, ror #16 \n\t" // s10 + // r6(s12 s15 s14 s13) + "uxtb.w r12, r6 \n\t" // s12 + "uxtb.w r11, r6, ror #24 \n\t" // s15 + "uxtb.w r10, r6, ror #16 \n\t" // s14 + "uxtb.w r6, r6, ror #8 \n\t" // s13 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "eor.w r5, r5, r7, lsl #8 \n\t" + "eor.w r5, r5, r8, lsl #16 \n\t" + "eor.w r5, r5, r9, lsl #24 \n\t" + "eor.w r6, r6, r10, lsl #8 \n\t" + "eor.w r6, r6, r11, lsl #16 \n\t" + "eor.w r6, r6, r12, lsl #24 \n\t" + + // AddRoundKey and AddRoundConst(from roundKeys) + "ldr.w r9, [r1,#48] \n\t" // load TK1 + "ldr.w r10, [r1,#52] \n\t" // load TK1 + "ldr.w r11, [r1,#160] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "ldr.w r12, [r1,#164] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + + "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) + "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) + // r8( s9 s8 s11 s10) + // r6(s12 s14 s14 s13) + + // MixColumn + "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 + "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 + "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 + // r8 ----------------> r8 + + // round 14 + + // SubCell+ShiftRow+AC(c2) + // r7 (s3 s2 s1 s0) + // r8 (s7 s6 s5 s4) + // r9 (s11 s10 s9 s8) + // r10(s15 s14 s13 s12) + + // 1st-2nd line + // r7(s3 s2 s1 s0) + "uxtb.w r5, r7, ror #24 \n\t" // s3 + "uxtb.w r4, r7, ror #16 \n\t" // s2 + "uxtb.w r3, r7, ror #8 \n\t" // s1 + "uxtb.w r7, r7 \n\t" // s0 + // r8(s6 s5 s4 s7) + "uxtb.w r12, r8, ror #16 \n\t" // s6 + "uxtb.w r11, r8, ror #8 \n\t" // s5 + "uxtb.w r6, r8 \n\t" // s4 + "uxtb.w r8, r8, ror #24 \n\t" // s7 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldr.w r0, [r1,#168] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r7, r7, r3, lsl #8 \n\t" + "eor.w r7, r7, r4, lsl #16 \n\t" + "eor.w r7, r7, r5, lsl #24 \n\t" + "eor.w r8, r8, r6, lsl #8 \n\t" + "eor.w r8, r8, r11, lsl #16 \n\t" + "eor.w r8, r8, r12, lsl #24 \n\t" + "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) + + // 3rd-4th line + // r9(s9 s8 s11 s10) + "uxtb.w r5, r9, ror #8 \n\t" // s9 + "uxtb.w r7, r9 \n\t" // s8 + "uxtb.w r3, r9, ror #24 \n\t" // s11 + "uxtb.w r9, r9, ror #16 \n\t" // s10 + // r10(s12 s15 s14 s13) + "uxtb.w r12, r10 \n\t" // s12 + "uxtb.w r11, r10, ror #24 \n\t" // s15 + "uxtb.w r6, r10, ror #16 \n\t" // s14 + "uxtb.w r10, r10, ror #8 \n\t" // s13 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldr.w r0, [r1,#172] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r9, r9, r3, lsl #8 \n\t" + "eor.w r9, r9, r7, lsl #16 \n\t" + "eor.w r9, r9, r5, lsl #24 \n\t" + "eor.w r10, r10, r6, lsl #8 \n\t" + "eor.w r10, r10, r11, lsl #16 \n\t" + "eor.w r10, r10, r12, lsl #24 \n\t" + "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) + + // AddRoundKey and AddRoundConst(from roundKeys) + + // r9( s9 s8 s11 s10) + // r10(s12 s14 s14 s13) + + // MixColumn + "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 + "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 + "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 + // r4 ----------------> r4 + // round 15 + + // SubCell+ShiftRow+AC(c2) + // r3 (s3 s2 s1 s0) + // r4 (s7 s6 s5 s4) + // r5 (s11 s10 s9 s8) + // r6 (s15 s14 s13 s12) + + // 1st-2nd line + // r3(s3 s2 s1 s0) + "uxtb.w r9, r3, ror #24 \n\t" // s3 + "uxtb.w r8, r3, ror #16 \n\t" // s2 + "uxtb.w r7, r3, ror #8 \n\t" // s1 + "uxtb.w r3, r3 \n\t" // s0 + // r4(s6 s5 s4 s7) + "uxtb.w r12, r4, ror #16 \n\t" // s6 + "uxtb.w r11, r4, ror #8 \n\t" // s5 + "uxtb.w r10, r4 \n\t" // s4 + "uxtb.w r4, r4, ror #24 \n\t" // s7 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "eor.w r3, r3, r7, lsl #8 \n\t" + "eor.w r3, r3, r8, lsl #16 \n\t" + "eor.w r3, r3, r9, lsl #24 \n\t" + "eor.w r4, r4, r10, lsl #8 \n\t" + "eor.w r4, r4, r11, lsl #16 \n\t" + "eor.w r4, r4, r12, lsl #24 \n\t" + + // 3rd-4th line + // r5(s9 s8 s11 s10) + "uxtb.w r9, r5, ror #8 \n\t" // s9 + "uxtb.w r8, r5 \n\t" // s8 + "uxtb.w r7, r5, ror #24 \n\t" // s11 + "uxtb.w r5, r5, ror #16 \n\t" // s10 + // r6(s12 s15 s14 s13) + "uxtb.w r12, r6 \n\t" // s12 + "uxtb.w r11, r6, ror #24 \n\t" // s15 + "uxtb.w r10, r6, ror #16 \n\t" // s14 + "uxtb.w r6, r6, ror #8 \n\t" // s13 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "eor.w r5, r5, r7, lsl #8 \n\t" + "eor.w r5, r5, r8, lsl #16 \n\t" + "eor.w r5, r5, r9, lsl #24 \n\t" + "eor.w r6, r6, r10, lsl #8 \n\t" + "eor.w r6, r6, r11, lsl #16 \n\t" + "eor.w r6, r6, r12, lsl #24 \n\t" + + // AddRoundKey and AddRoundConst(from roundKeys) + "ldr.w r9, [r1,#56] \n\t" // load TK1 + "ldr.w r10, [r1,#60] \n\t" // load TK1 + "ldr.w r11, [r1,#176] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "ldr.w r12, [r1,#180] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + + "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) + "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) + // r8( s9 s8 s11 s10) + // r6(s12 s14 s14 s13) + + // MixColumn + "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 + "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 + "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 + // r8 ----------------> r8 + + // round 16 + + // SubCell+ShiftRow+AC(c2) + // r7 (s3 s2 s1 s0) + // r8 (s7 s6 s5 s4) + // r9 (s11 s10 s9 s8) + // r10(s15 s14 s13 s12) + + // 1st-2nd line + // r7(s3 s2 s1 s0) + "uxtb.w r5, r7, ror #24 \n\t" // s3 + "uxtb.w r4, r7, ror #16 \n\t" // s2 + "uxtb.w r3, r7, ror #8 \n\t" // s1 + "uxtb.w r7, r7 \n\t" // s0 + // r8(s6 s5 s4 s7) + "uxtb.w r12, r8, ror #16 \n\t" // s6 + "uxtb.w r11, r8, ror #8 \n\t" // s5 + "uxtb.w r6, r8 \n\t" // s4 + "uxtb.w r8, r8, ror #24 \n\t" // s7 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldr.w r0, [r1,#184] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r7, r7, r3, lsl #8 \n\t" + "eor.w r7, r7, r4, lsl #16 \n\t" + "eor.w r7, r7, r5, lsl #24 \n\t" + "eor.w r8, r8, r6, lsl #8 \n\t" + "eor.w r8, r8, r11, lsl #16 \n\t" + "eor.w r8, r8, r12, lsl #24 \n\t" + "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) + + // 3rd-4th line + // r9(s9 s8 s11 s10) + "uxtb.w r5, r9, ror #8 \n\t" // s9 + "uxtb.w r7, r9 \n\t" // s8 + "uxtb.w r3, r9, ror #24 \n\t" // s11 + "uxtb.w r9, r9, ror #16 \n\t" // s10 + // r10(s12 s15 s14 s13) + "uxtb.w r12, r10 \n\t" // s12 + "uxtb.w r11, r10, ror #24 \n\t" // s15 + "uxtb.w r6, r10, ror #16 \n\t" // s14 + "uxtb.w r10, r10, ror #8 \n\t" // s13 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldr.w r0, [r1,#188] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r9, r9, r3, lsl #8 \n\t" + "eor.w r9, r9, r7, lsl #16 \n\t" + "eor.w r9, r9, r5, lsl #24 \n\t" + "eor.w r10, r10, r6, lsl #8 \n\t" + "eor.w r10, r10, r11, lsl #16 \n\t" + "eor.w r10, r10, r12, lsl #24 \n\t" + "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) + + // AddRoundKey and AddRoundConst(from roundKeys) + + // r9( s9 s8 s11 s10) + // r10(s12 s14 s14 s13) + + // MixColumn + "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 + "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 + "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 + // r4 ----------------> r4 + // round 17 + + // SubCell+ShiftRow+AC(c2) + // r3 (s3 s2 s1 s0) + // r4 (s7 s6 s5 s4) + // r5 (s11 s10 s9 s8) + // r6 (s15 s14 s13 s12) + + // 1st-2nd line + // r3(s3 s2 s1 s0) + "uxtb.w r9, r3, ror #24 \n\t" // s3 + "uxtb.w r8, r3, ror #16 \n\t" // s2 + "uxtb.w r7, r3, ror #8 \n\t" // s1 + "uxtb.w r3, r3 \n\t" // s0 + // r4(s6 s5 s4 s7) + "uxtb.w r12, r4, ror #16 \n\t" // s6 + "uxtb.w r11, r4, ror #8 \n\t" // s5 + "uxtb.w r10, r4 \n\t" // s4 + "uxtb.w r4, r4, ror #24 \n\t" // s7 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "eor.w r3, r3, r7, lsl #8 \n\t" + "eor.w r3, r3, r8, lsl #16 \n\t" + "eor.w r3, r3, r9, lsl #24 \n\t" + "eor.w r4, r4, r10, lsl #8 \n\t" + "eor.w r4, r4, r11, lsl #16 \n\t" + "eor.w r4, r4, r12, lsl #24 \n\t" + + // 3rd-4th line + // r5(s9 s8 s11 s10) + "uxtb.w r9, r5, ror #8 \n\t" // s9 + "uxtb.w r8, r5 \n\t" // s8 + "uxtb.w r7, r5, ror #24 \n\t" // s11 + "uxtb.w r5, r5, ror #16 \n\t" // s10 + // r6(s12 s15 s14 s13) + "uxtb.w r12, r6 \n\t" // s12 + "uxtb.w r11, r6, ror #24 \n\t" // s15 + "uxtb.w r10, r6, ror #16 \n\t" // s14 + "uxtb.w r6, r6, ror #8 \n\t" // s13 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "eor.w r5, r5, r7, lsl #8 \n\t" + "eor.w r5, r5, r8, lsl #16 \n\t" + "eor.w r5, r5, r9, lsl #24 \n\t" + "eor.w r6, r6, r10, lsl #8 \n\t" + "eor.w r6, r6, r11, lsl #16 \n\t" + "eor.w r6, r6, r12, lsl #24 \n\t" + + // AddRoundKey and AddRoundConst(from roundKeys) + "ldr.w r9, [r1,#0] \n\t" // load TK1 + "ldr.w r10, [r1,#4] \n\t" // load TK1 + "ldr.w r11, [r1,#192] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "ldr.w r12, [r1,#196] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + + "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) + "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) + // r8( s9 s8 s11 s10) + // r6(s12 s14 s14 s13) + + // MixColumn + "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 + "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 + "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 + // r8 ----------------> r8 + + // round 18 + + // SubCell+ShiftRow+AC(c2) + // r7 (s3 s2 s1 s0) + // r8 (s7 s6 s5 s4) + // r9 (s11 s10 s9 s8) + // r10(s15 s14 s13 s12) + + // 1st-2nd line + // r7(s3 s2 s1 s0) + "uxtb.w r5, r7, ror #24 \n\t" // s3 + "uxtb.w r4, r7, ror #16 \n\t" // s2 + "uxtb.w r3, r7, ror #8 \n\t" // s1 + "uxtb.w r7, r7 \n\t" // s0 + // r8(s6 s5 s4 s7) + "uxtb.w r12, r8, ror #16 \n\t" // s6 + "uxtb.w r11, r8, ror #8 \n\t" // s5 + "uxtb.w r6, r8 \n\t" // s4 + "uxtb.w r8, r8, ror #24 \n\t" // s7 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldr.w r0, [r1,#200] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r7, r7, r3, lsl #8 \n\t" + "eor.w r7, r7, r4, lsl #16 \n\t" + "eor.w r7, r7, r5, lsl #24 \n\t" + "eor.w r8, r8, r6, lsl #8 \n\t" + "eor.w r8, r8, r11, lsl #16 \n\t" + "eor.w r8, r8, r12, lsl #24 \n\t" + "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) + + // 3rd-4th line + // r9(s9 s8 s11 s10) + "uxtb.w r5, r9, ror #8 \n\t" // s9 + "uxtb.w r7, r9 \n\t" // s8 + "uxtb.w r3, r9, ror #24 \n\t" // s11 + "uxtb.w r9, r9, ror #16 \n\t" // s10 + // r10(s12 s15 s14 s13) + "uxtb.w r12, r10 \n\t" // s12 + "uxtb.w r11, r10, ror #24 \n\t" // s15 + "uxtb.w r6, r10, ror #16 \n\t" // s14 + "uxtb.w r10, r10, ror #8 \n\t" // s13 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldr.w r0, [r1,#204] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r9, r9, r3, lsl #8 \n\t" + "eor.w r9, r9, r7, lsl #16 \n\t" + "eor.w r9, r9, r5, lsl #24 \n\t" + "eor.w r10, r10, r6, lsl #8 \n\t" + "eor.w r10, r10, r11, lsl #16 \n\t" + "eor.w r10, r10, r12, lsl #24 \n\t" + "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) + + // AddRoundKey and AddRoundConst(from roundKeys) + + // r9( s9 s8 s11 s10) + // r10(s12 s14 s14 s13) + + // MixColumn + "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 + "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 + "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 + // r4 ----------------> r4 + // round 19 + + // SubCell+ShiftRow+AC(c2) + // r3 (s3 s2 s1 s0) + // r4 (s7 s6 s5 s4) + // r5 (s11 s10 s9 s8) + // r6 (s15 s14 s13 s12) + + // 1st-2nd line + // r3(s3 s2 s1 s0) + "uxtb.w r9, r3, ror #24 \n\t" // s3 + "uxtb.w r8, r3, ror #16 \n\t" // s2 + "uxtb.w r7, r3, ror #8 \n\t" // s1 + "uxtb.w r3, r3 \n\t" // s0 + // r4(s6 s5 s4 s7) + "uxtb.w r12, r4, ror #16 \n\t" // s6 + "uxtb.w r11, r4, ror #8 \n\t" // s5 + "uxtb.w r10, r4 \n\t" // s4 + "uxtb.w r4, r4, ror #24 \n\t" // s7 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "eor.w r3, r3, r7, lsl #8 \n\t" + "eor.w r3, r3, r8, lsl #16 \n\t" + "eor.w r3, r3, r9, lsl #24 \n\t" + "eor.w r4, r4, r10, lsl #8 \n\t" + "eor.w r4, r4, r11, lsl #16 \n\t" + "eor.w r4, r4, r12, lsl #24 \n\t" + + // 3rd-4th line + // r5(s9 s8 s11 s10) + "uxtb.w r9, r5, ror #8 \n\t" // s9 + "uxtb.w r8, r5 \n\t" // s8 + "uxtb.w r7, r5, ror #24 \n\t" // s11 + "uxtb.w r5, r5, ror #16 \n\t" // s10 + // r6(s12 s15 s14 s13) + "uxtb.w r12, r6 \n\t" // s12 + "uxtb.w r11, r6, ror #24 \n\t" // s15 + "uxtb.w r10, r6, ror #16 \n\t" // s14 + "uxtb.w r6, r6, ror #8 \n\t" // s13 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "eor.w r5, r5, r7, lsl #8 \n\t" + "eor.w r5, r5, r8, lsl #16 \n\t" + "eor.w r5, r5, r9, lsl #24 \n\t" + "eor.w r6, r6, r10, lsl #8 \n\t" + "eor.w r6, r6, r11, lsl #16 \n\t" + "eor.w r6, r6, r12, lsl #24 \n\t" + + // AddRoundKey and AddRoundConst(from roundKeys) + "ldr.w r9, [r1,#8] \n\t" // load TK1 + "ldr.w r10, [r1,#12] \n\t" // load TK1 + "ldr.w r11, [r1,#208] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "ldr.w r12, [r1,#212] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + + "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) + "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) + // r8( s9 s8 s11 s10) + // r6(s12 s14 s14 s13) + + // MixColumn + "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 + "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 + "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 + // r8 ----------------> r8 + + // round 20 + + // SubCell+ShiftRow+AC(c2) + // r7 (s3 s2 s1 s0) + // r8 (s7 s6 s5 s4) + // r9 (s11 s10 s9 s8) + // r10(s15 s14 s13 s12) + + // 1st-2nd line + // r7(s3 s2 s1 s0) + "uxtb.w r5, r7, ror #24 \n\t" // s3 + "uxtb.w r4, r7, ror #16 \n\t" // s2 + "uxtb.w r3, r7, ror #8 \n\t" // s1 + "uxtb.w r7, r7 \n\t" // s0 + // r8(s6 s5 s4 s7) + "uxtb.w r12, r8, ror #16 \n\t" // s6 + "uxtb.w r11, r8, ror #8 \n\t" // s5 + "uxtb.w r6, r8 \n\t" // s4 + "uxtb.w r8, r8, ror #24 \n\t" // s7 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldr.w r0, [r1,#216] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r7, r7, r3, lsl #8 \n\t" + "eor.w r7, r7, r4, lsl #16 \n\t" + "eor.w r7, r7, r5, lsl #24 \n\t" + "eor.w r8, r8, r6, lsl #8 \n\t" + "eor.w r8, r8, r11, lsl #16 \n\t" + "eor.w r8, r8, r12, lsl #24 \n\t" + "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) + + // 3rd-4th line + // r9(s9 s8 s11 s10) + "uxtb.w r5, r9, ror #8 \n\t" // s9 + "uxtb.w r7, r9 \n\t" // s8 + "uxtb.w r3, r9, ror #24 \n\t" // s11 + "uxtb.w r9, r9, ror #16 \n\t" // s10 + // r10(s12 s15 s14 s13) + "uxtb.w r12, r10 \n\t" // s12 + "uxtb.w r11, r10, ror #24 \n\t" // s15 + "uxtb.w r6, r10, ror #16 \n\t" // s14 + "uxtb.w r10, r10, ror #8 \n\t" // s13 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldr.w r0, [r1,#220] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r9, r9, r3, lsl #8 \n\t" + "eor.w r9, r9, r7, lsl #16 \n\t" + "eor.w r9, r9, r5, lsl #24 \n\t" + "eor.w r10, r10, r6, lsl #8 \n\t" + "eor.w r10, r10, r11, lsl #16 \n\t" + "eor.w r10, r10, r12, lsl #24 \n\t" + "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) + + // AddRoundKey and AddRoundConst(from roundKeys) + + // r9( s9 s8 s11 s10) + // r10(s12 s14 s14 s13) + + // MixColumn + "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 + "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 + "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 + // r4 ----------------> r4 + // round 21 + + // SubCell+ShiftRow+AC(c2) + // r3 (s3 s2 s1 s0) + // r4 (s7 s6 s5 s4) + // r5 (s11 s10 s9 s8) + // r6 (s15 s14 s13 s12) + + // 1st-2nd line + // r3(s3 s2 s1 s0) + "uxtb.w r9, r3, ror #24 \n\t" // s3 + "uxtb.w r8, r3, ror #16 \n\t" // s2 + "uxtb.w r7, r3, ror #8 \n\t" // s1 + "uxtb.w r3, r3 \n\t" // s0 + // r4(s6 s5 s4 s7) + "uxtb.w r12, r4, ror #16 \n\t" // s6 + "uxtb.w r11, r4, ror #8 \n\t" // s5 + "uxtb.w r10, r4 \n\t" // s4 + "uxtb.w r4, r4, ror #24 \n\t" // s7 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "eor.w r3, r3, r7, lsl #8 \n\t" + "eor.w r3, r3, r8, lsl #16 \n\t" + "eor.w r3, r3, r9, lsl #24 \n\t" + "eor.w r4, r4, r10, lsl #8 \n\t" + "eor.w r4, r4, r11, lsl #16 \n\t" + "eor.w r4, r4, r12, lsl #24 \n\t" + + // 3rd-4th line + // r5(s9 s8 s11 s10) + "uxtb.w r9, r5, ror #8 \n\t" // s9 + "uxtb.w r8, r5 \n\t" // s8 + "uxtb.w r7, r5, ror #24 \n\t" // s11 + "uxtb.w r5, r5, ror #16 \n\t" // s10 + // r6(s12 s15 s14 s13) + "uxtb.w r12, r6 \n\t" // s12 + "uxtb.w r11, r6, ror #24 \n\t" // s15 + "uxtb.w r10, r6, ror #16 \n\t" // s14 + "uxtb.w r6, r6, ror #8 \n\t" // s13 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "eor.w r5, r5, r7, lsl #8 \n\t" + "eor.w r5, r5, r8, lsl #16 \n\t" + "eor.w r5, r5, r9, lsl #24 \n\t" + "eor.w r6, r6, r10, lsl #8 \n\t" + "eor.w r6, r6, r11, lsl #16 \n\t" + "eor.w r6, r6, r12, lsl #24 \n\t" + + // AddRoundKey and AddRoundConst(from roundKeys) + "ldr.w r9, [r1,#16] \n\t" // load TK1 + "ldr.w r10, [r1,#20] \n\t" // load TK1 + "ldr.w r11, [r1,#224] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "ldr.w r12, [r1,#228] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + + "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) + "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) + // r8( s9 s8 s11 s10) + // r6(s12 s14 s14 s13) + + // MixColumn + "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 + "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 + "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 + // r8 ----------------> r8 + + // round 22 + + // SubCell+ShiftRow+AC(c2) + // r7 (s3 s2 s1 s0) + // r8 (s7 s6 s5 s4) + // r9 (s11 s10 s9 s8) + // r10(s15 s14 s13 s12) + + // 1st-2nd line + // r7(s3 s2 s1 s0) + "uxtb.w r5, r7, ror #24 \n\t" // s3 + "uxtb.w r4, r7, ror #16 \n\t" // s2 + "uxtb.w r3, r7, ror #8 \n\t" // s1 + "uxtb.w r7, r7 \n\t" // s0 + // r8(s6 s5 s4 s7) + "uxtb.w r12, r8, ror #16 \n\t" // s6 + "uxtb.w r11, r8, ror #8 \n\t" // s5 + "uxtb.w r6, r8 \n\t" // s4 + "uxtb.w r8, r8, ror #24 \n\t" // s7 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldr.w r0, [r1,#232] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r7, r7, r3, lsl #8 \n\t" + "eor.w r7, r7, r4, lsl #16 \n\t" + "eor.w r7, r7, r5, lsl #24 \n\t" + "eor.w r8, r8, r6, lsl #8 \n\t" + "eor.w r8, r8, r11, lsl #16 \n\t" + "eor.w r8, r8, r12, lsl #24 \n\t" + "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) + + // 3rd-4th line + // r9(s9 s8 s11 s10) + "uxtb.w r5, r9, ror #8 \n\t" // s9 + "uxtb.w r7, r9 \n\t" // s8 + "uxtb.w r3, r9, ror #24 \n\t" // s11 + "uxtb.w r9, r9, ror #16 \n\t" // s10 + // r10(s12 s15 s14 s13) + "uxtb.w r12, r10 \n\t" // s12 + "uxtb.w r11, r10, ror #24 \n\t" // s15 + "uxtb.w r6, r10, ror #16 \n\t" // s14 + "uxtb.w r10, r10, ror #8 \n\t" // s13 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldr.w r0, [r1,#236] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r9, r9, r3, lsl #8 \n\t" + "eor.w r9, r9, r7, lsl #16 \n\t" + "eor.w r9, r9, r5, lsl #24 \n\t" + "eor.w r10, r10, r6, lsl #8 \n\t" + "eor.w r10, r10, r11, lsl #16 \n\t" + "eor.w r10, r10, r12, lsl #24 \n\t" + "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) + + // AddRoundKey and AddRoundConst(from roundKeys) + + // r9( s9 s8 s11 s10) + // r10(s12 s14 s14 s13) + + // MixColumn + "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 + "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 + "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 + // r4 ----------------> r4 + // round 23 + + // SubCell+ShiftRow+AC(c2) + // r3 (s3 s2 s1 s0) + // r4 (s7 s6 s5 s4) + // r5 (s11 s10 s9 s8) + // r6 (s15 s14 s13 s12) + + // 1st-2nd line + // r3(s3 s2 s1 s0) + "uxtb.w r9, r3, ror #24 \n\t" // s3 + "uxtb.w r8, r3, ror #16 \n\t" // s2 + "uxtb.w r7, r3, ror #8 \n\t" // s1 + "uxtb.w r3, r3 \n\t" // s0 + // r4(s6 s5 s4 s7) + "uxtb.w r12, r4, ror #16 \n\t" // s6 + "uxtb.w r11, r4, ror #8 \n\t" // s5 + "uxtb.w r10, r4 \n\t" // s4 + "uxtb.w r4, r4, ror #24 \n\t" // s7 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "eor.w r3, r3, r7, lsl #8 \n\t" + "eor.w r3, r3, r8, lsl #16 \n\t" + "eor.w r3, r3, r9, lsl #24 \n\t" + "eor.w r4, r4, r10, lsl #8 \n\t" + "eor.w r4, r4, r11, lsl #16 \n\t" + "eor.w r4, r4, r12, lsl #24 \n\t" + + // 3rd-4th line + // r5(s9 s8 s11 s10) + "uxtb.w r9, r5, ror #8 \n\t" // s9 + "uxtb.w r8, r5 \n\t" // s8 + "uxtb.w r7, r5, ror #24 \n\t" // s11 + "uxtb.w r5, r5, ror #16 \n\t" // s10 + // r6(s12 s15 s14 s13) + "uxtb.w r12, r6 \n\t" // s12 + "uxtb.w r11, r6, ror #24 \n\t" // s15 + "uxtb.w r10, r6, ror #16 \n\t" // s14 + "uxtb.w r6, r6, ror #8 \n\t" // s13 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "eor.w r5, r5, r7, lsl #8 \n\t" + "eor.w r5, r5, r8, lsl #16 \n\t" + "eor.w r5, r5, r9, lsl #24 \n\t" + "eor.w r6, r6, r10, lsl #8 \n\t" + "eor.w r6, r6, r11, lsl #16 \n\t" + "eor.w r6, r6, r12, lsl #24 \n\t" + + // AddRoundKey and AddRoundConst(from roundKeys) + "ldr.w r9, [r1,#24] \n\t" // load TK1 + "ldr.w r10, [r1,#28] \n\t" // load TK1 + "ldr.w r11, [r1,#240] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "ldr.w r12, [r1,#244] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + + "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) + "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) + // r8( s9 s8 s11 s10) + // r6(s12 s14 s14 s13) + + // MixColumn + "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 + "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 + "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 + // r8 ----------------> r8 + + // round 24 + + // SubCell+ShiftRow+AC(c2) + // r7 (s3 s2 s1 s0) + // r8 (s7 s6 s5 s4) + // r9 (s11 s10 s9 s8) + // r10(s15 s14 s13 s12) + + // 1st-2nd line + // r7(s3 s2 s1 s0) + "uxtb.w r5, r7, ror #24 \n\t" // s3 + "uxtb.w r4, r7, ror #16 \n\t" // s2 + "uxtb.w r3, r7, ror #8 \n\t" // s1 + "uxtb.w r7, r7 \n\t" // s0 + // r8(s6 s5 s4 s7) + "uxtb.w r12, r8, ror #16 \n\t" // s6 + "uxtb.w r11, r8, ror #8 \n\t" // s5 + "uxtb.w r6, r8 \n\t" // s4 + "uxtb.w r8, r8, ror #24 \n\t" // s7 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldr.w r0, [r1,#248] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r7, r7, r3, lsl #8 \n\t" + "eor.w r7, r7, r4, lsl #16 \n\t" + "eor.w r7, r7, r5, lsl #24 \n\t" + "eor.w r8, r8, r6, lsl #8 \n\t" + "eor.w r8, r8, r11, lsl #16 \n\t" + "eor.w r8, r8, r12, lsl #24 \n\t" + "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) + + // 3rd-4th line + // r9(s9 s8 s11 s10) + "uxtb.w r5, r9, ror #8 \n\t" // s9 + "uxtb.w r7, r9 \n\t" // s8 + "uxtb.w r3, r9, ror #24 \n\t" // s11 + "uxtb.w r9, r9, ror #16 \n\t" // s10 + // r10(s12 s15 s14 s13) + "uxtb.w r12, r10 \n\t" // s12 + "uxtb.w r11, r10, ror #24 \n\t" // s15 + "uxtb.w r6, r10, ror #16 \n\t" // s14 + "uxtb.w r10, r10, ror #8 \n\t" // s13 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldr.w r0, [r1,#252] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r9, r9, r3, lsl #8 \n\t" + "eor.w r9, r9, r7, lsl #16 \n\t" + "eor.w r9, r9, r5, lsl #24 \n\t" + "eor.w r10, r10, r6, lsl #8 \n\t" + "eor.w r10, r10, r11, lsl #16 \n\t" + "eor.w r10, r10, r12, lsl #24 \n\t" + "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) + + // AddRoundKey and AddRoundConst(from roundKeys) + + // r9( s9 s8 s11 s10) + // r10(s12 s14 s14 s13) + + // MixColumn + "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 + "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 + "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 + // r4 ----------------> r4 + // round 25 + + // SubCell+ShiftRow+AC(c2) + // r3 (s3 s2 s1 s0) + // r4 (s7 s6 s5 s4) + // r5 (s11 s10 s9 s8) + // r6 (s15 s14 s13 s12) + + // 1st-2nd line + // r3(s3 s2 s1 s0) + "uxtb.w r9, r3, ror #24 \n\t" // s3 + "uxtb.w r8, r3, ror #16 \n\t" // s2 + "uxtb.w r7, r3, ror #8 \n\t" // s1 + "uxtb.w r3, r3 \n\t" // s0 + // r4(s6 s5 s4 s7) + "uxtb.w r12, r4, ror #16 \n\t" // s6 + "uxtb.w r11, r4, ror #8 \n\t" // s5 + "uxtb.w r10, r4 \n\t" // s4 + "uxtb.w r4, r4, ror #24 \n\t" // s7 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "eor.w r3, r3, r7, lsl #8 \n\t" + "eor.w r3, r3, r8, lsl #16 \n\t" + "eor.w r3, r3, r9, lsl #24 \n\t" + "eor.w r4, r4, r10, lsl #8 \n\t" + "eor.w r4, r4, r11, lsl #16 \n\t" + "eor.w r4, r4, r12, lsl #24 \n\t" + + // 3rd-4th line + // r5(s9 s8 s11 s10) + "uxtb.w r9, r5, ror #8 \n\t" // s9 + "uxtb.w r8, r5 \n\t" // s8 + "uxtb.w r7, r5, ror #24 \n\t" // s11 + "uxtb.w r5, r5, ror #16 \n\t" // s10 + // r6(s12 s15 s14 s13) + "uxtb.w r12, r6 \n\t" // s12 + "uxtb.w r11, r6, ror #24 \n\t" // s15 + "uxtb.w r10, r6, ror #16 \n\t" // s14 + "uxtb.w r6, r6, ror #8 \n\t" // s13 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "eor.w r5, r5, r7, lsl #8 \n\t" + "eor.w r5, r5, r8, lsl #16 \n\t" + "eor.w r5, r5, r9, lsl #24 \n\t" + "eor.w r6, r6, r10, lsl #8 \n\t" + "eor.w r6, r6, r11, lsl #16 \n\t" + "eor.w r6, r6, r12, lsl #24 \n\t" + + // AddRoundKey and AddRoundConst(from roundKeys) + "ldr.w r9, [r1,#32] \n\t" // load TK1 + "ldr.w r10, [r1,#36] \n\t" // load TK1 + "ldr.w r11, [r1,#256] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "ldr.w r12, [r1,#260] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + + "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) + "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) + // r8( s9 s8 s11 s10) + // r6(s12 s14 s14 s13) + + // MixColumn + "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 + "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 + "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 + // r8 ----------------> r8 + + // round 26 + + // SubCell+ShiftRow+AC(c2) + // r7 (s3 s2 s1 s0) + // r8 (s7 s6 s5 s4) + // r9 (s11 s10 s9 s8) + // r10(s15 s14 s13 s12) + + // 1st-2nd line + // r7(s3 s2 s1 s0) + "uxtb.w r5, r7, ror #24 \n\t" // s3 + "uxtb.w r4, r7, ror #16 \n\t" // s2 + "uxtb.w r3, r7, ror #8 \n\t" // s1 + "uxtb.w r7, r7 \n\t" // s0 + // r8(s6 s5 s4 s7) + "uxtb.w r12, r8, ror #16 \n\t" // s6 + "uxtb.w r11, r8, ror #8 \n\t" // s5 + "uxtb.w r6, r8 \n\t" // s4 + "uxtb.w r8, r8, ror #24 \n\t" // s7 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldr.w r0, [r1,#264] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r7, r7, r3, lsl #8 \n\t" + "eor.w r7, r7, r4, lsl #16 \n\t" + "eor.w r7, r7, r5, lsl #24 \n\t" + "eor.w r8, r8, r6, lsl #8 \n\t" + "eor.w r8, r8, r11, lsl #16 \n\t" + "eor.w r8, r8, r12, lsl #24 \n\t" + "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) + + // 3rd-4th line + // r9(s9 s8 s11 s10) + "uxtb.w r5, r9, ror #8 \n\t" // s9 + "uxtb.w r7, r9 \n\t" // s8 + "uxtb.w r3, r9, ror #24 \n\t" // s11 + "uxtb.w r9, r9, ror #16 \n\t" // s10 + // r10(s12 s15 s14 s13) + "uxtb.w r12, r10 \n\t" // s12 + "uxtb.w r11, r10, ror #24 \n\t" // s15 + "uxtb.w r6, r10, ror #16 \n\t" // s14 + "uxtb.w r10, r10, ror #8 \n\t" // s13 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldr.w r0, [r1,#268] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r9, r9, r3, lsl #8 \n\t" + "eor.w r9, r9, r7, lsl #16 \n\t" + "eor.w r9, r9, r5, lsl #24 \n\t" + "eor.w r10, r10, r6, lsl #8 \n\t" + "eor.w r10, r10, r11, lsl #16 \n\t" + "eor.w r10, r10, r12, lsl #24 \n\t" + "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) + + // AddRoundKey and AddRoundConst(from roundKeys) + + // r9( s9 s8 s11 s10) + // r10(s12 s14 s14 s13) + + // MixColumn + "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 + "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 + "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 + // r4 ----------------> r4 + // round 27 + + // SubCell+ShiftRow+AC(c2) + // r3 (s3 s2 s1 s0) + // r4 (s7 s6 s5 s4) + // r5 (s11 s10 s9 s8) + // r6 (s15 s14 s13 s12) + + // 1st-2nd line + // r3(s3 s2 s1 s0) + "uxtb.w r9, r3, ror #24 \n\t" // s3 + "uxtb.w r8, r3, ror #16 \n\t" // s2 + "uxtb.w r7, r3, ror #8 \n\t" // s1 + "uxtb.w r3, r3 \n\t" // s0 + // r4(s6 s5 s4 s7) + "uxtb.w r12, r4, ror #16 \n\t" // s6 + "uxtb.w r11, r4, ror #8 \n\t" // s5 + "uxtb.w r10, r4 \n\t" // s4 + "uxtb.w r4, r4, ror #24 \n\t" // s7 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "eor.w r3, r3, r7, lsl #8 \n\t" + "eor.w r3, r3, r8, lsl #16 \n\t" + "eor.w r3, r3, r9, lsl #24 \n\t" + "eor.w r4, r4, r10, lsl #8 \n\t" + "eor.w r4, r4, r11, lsl #16 \n\t" + "eor.w r4, r4, r12, lsl #24 \n\t" + + // 3rd-4th line + // r5(s9 s8 s11 s10) + "uxtb.w r9, r5, ror #8 \n\t" // s9 + "uxtb.w r8, r5 \n\t" // s8 + "uxtb.w r7, r5, ror #24 \n\t" // s11 + "uxtb.w r5, r5, ror #16 \n\t" // s10 + // r6(s12 s15 s14 s13) + "uxtb.w r12, r6 \n\t" // s12 + "uxtb.w r11, r6, ror #24 \n\t" // s15 + "uxtb.w r10, r6, ror #16 \n\t" // s14 + "uxtb.w r6, r6, ror #8 \n\t" // s13 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "eor.w r5, r5, r7, lsl #8 \n\t" + "eor.w r5, r5, r8, lsl #16 \n\t" + "eor.w r5, r5, r9, lsl #24 \n\t" + "eor.w r6, r6, r10, lsl #8 \n\t" + "eor.w r6, r6, r11, lsl #16 \n\t" + "eor.w r6, r6, r12, lsl #24 \n\t" + + // AddRoundKey and AddRoundConst(from roundKeys) + "ldr.w r9, [r1,#40] \n\t" // load TK1 + "ldr.w r10, [r1,#44] \n\t" // load TK1 + "ldr.w r11, [r1,#272] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "ldr.w r12, [r1,#276] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + + "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) + "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) + // r8( s9 s8 s11 s10) + // r6(s12 s14 s14 s13) + + // MixColumn + "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 + "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 + "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 + // r8 ----------------> r8 + + // round 28 + + // SubCell+ShiftRow+AC(c2) + // r7 (s3 s2 s1 s0) + // r8 (s7 s6 s5 s4) + // r9 (s11 s10 s9 s8) + // r10(s15 s14 s13 s12) + + // 1st-2nd line + // r7(s3 s2 s1 s0) + "uxtb.w r5, r7, ror #24 \n\t" // s3 + "uxtb.w r4, r7, ror #16 \n\t" // s2 + "uxtb.w r3, r7, ror #8 \n\t" // s1 + "uxtb.w r7, r7 \n\t" // s0 + // r8(s6 s5 s4 s7) + "uxtb.w r12, r8, ror #16 \n\t" // s6 + "uxtb.w r11, r8, ror #8 \n\t" // s5 + "uxtb.w r6, r8 \n\t" // s4 + "uxtb.w r8, r8, ror #24 \n\t" // s7 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldr.w r0, [r1,#280] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r7, r7, r3, lsl #8 \n\t" + "eor.w r7, r7, r4, lsl #16 \n\t" + "eor.w r7, r7, r5, lsl #24 \n\t" + "eor.w r8, r8, r6, lsl #8 \n\t" + "eor.w r8, r8, r11, lsl #16 \n\t" + "eor.w r8, r8, r12, lsl #24 \n\t" + "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) + + // 3rd-4th line + // r9(s9 s8 s11 s10) + "uxtb.w r5, r9, ror #8 \n\t" // s9 + "uxtb.w r7, r9 \n\t" // s8 + "uxtb.w r3, r9, ror #24 \n\t" // s11 + "uxtb.w r9, r9, ror #16 \n\t" // s10 + // r10(s12 s15 s14 s13) + "uxtb.w r12, r10 \n\t" // s12 + "uxtb.w r11, r10, ror #24 \n\t" // s15 + "uxtb.w r6, r10, ror #16 \n\t" // s14 + "uxtb.w r10, r10, ror #8 \n\t" // s13 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldr.w r0, [r1,#284] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r9, r9, r3, lsl #8 \n\t" + "eor.w r9, r9, r7, lsl #16 \n\t" + "eor.w r9, r9, r5, lsl #24 \n\t" + "eor.w r10, r10, r6, lsl #8 \n\t" + "eor.w r10, r10, r11, lsl #16 \n\t" + "eor.w r10, r10, r12, lsl #24 \n\t" + "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) + + // AddRoundKey and AddRoundConst(from roundKeys) + + // r9( s9 s8 s11 s10) + // r10(s12 s14 s14 s13) + + // MixColumn + "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 + "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 + "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 + // r4 ----------------> r4 + // round 29 + + // SubCell+ShiftRow+AC(c2) + // r3 (s3 s2 s1 s0) + // r4 (s7 s6 s5 s4) + // r5 (s11 s10 s9 s8) + // r6 (s15 s14 s13 s12) + + // 1st-2nd line + // r3(s3 s2 s1 s0) + "uxtb.w r9, r3, ror #24 \n\t" // s3 + "uxtb.w r8, r3, ror #16 \n\t" // s2 + "uxtb.w r7, r3, ror #8 \n\t" // s1 + "uxtb.w r3, r3 \n\t" // s0 + // r4(s6 s5 s4 s7) + "uxtb.w r12, r4, ror #16 \n\t" // s6 + "uxtb.w r11, r4, ror #8 \n\t" // s5 + "uxtb.w r10, r4 \n\t" // s4 + "uxtb.w r4, r4, ror #24 \n\t" // s7 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "eor.w r3, r3, r7, lsl #8 \n\t" + "eor.w r3, r3, r8, lsl #16 \n\t" + "eor.w r3, r3, r9, lsl #24 \n\t" + "eor.w r4, r4, r10, lsl #8 \n\t" + "eor.w r4, r4, r11, lsl #16 \n\t" + "eor.w r4, r4, r12, lsl #24 \n\t" + + // 3rd-4th line + // r5(s9 s8 s11 s10) + "uxtb.w r9, r5, ror #8 \n\t" // s9 + "uxtb.w r8, r5 \n\t" // s8 + "uxtb.w r7, r5, ror #24 \n\t" // s11 + "uxtb.w r5, r5, ror #16 \n\t" // s10 + // r6(s12 s15 s14 s13) + "uxtb.w r12, r6 \n\t" // s12 + "uxtb.w r11, r6, ror #24 \n\t" // s15 + "uxtb.w r10, r6, ror #16 \n\t" // s14 + "uxtb.w r6, r6, ror #8 \n\t" // s13 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "eor.w r5, r5, r7, lsl #8 \n\t" + "eor.w r5, r5, r8, lsl #16 \n\t" + "eor.w r5, r5, r9, lsl #24 \n\t" + "eor.w r6, r6, r10, lsl #8 \n\t" + "eor.w r6, r6, r11, lsl #16 \n\t" + "eor.w r6, r6, r12, lsl #24 \n\t" + + // AddRoundKey and AddRoundConst(from roundKeys) + "ldr.w r9, [r1,#48] \n\t" // load TK1 + "ldr.w r10, [r1,#52] \n\t" // load TK1 + "ldr.w r11, [r1,#288] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "ldr.w r12, [r1,#292] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + + "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) + "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) + // r8( s9 s8 s11 s10) + // r6(s12 s14 s14 s13) + + // MixColumn + "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 + "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 + "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 + // r8 ----------------> r8 + + // round 30 + + // SubCell+ShiftRow+AC(c2) + // r7 (s3 s2 s1 s0) + // r8 (s7 s6 s5 s4) + // r9 (s11 s10 s9 s8) + // r10(s15 s14 s13 s12) + + // 1st-2nd line + // r7(s3 s2 s1 s0) + "uxtb.w r5, r7, ror #24 \n\t" // s3 + "uxtb.w r4, r7, ror #16 \n\t" // s2 + "uxtb.w r3, r7, ror #8 \n\t" // s1 + "uxtb.w r7, r7 \n\t" // s0 + // r8(s6 s5 s4 s7) + "uxtb.w r12, r8, ror #16 \n\t" // s6 + "uxtb.w r11, r8, ror #8 \n\t" // s5 + "uxtb.w r6, r8 \n\t" // s4 + "uxtb.w r8, r8, ror #24 \n\t" // s7 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldr.w r0, [r1,#296] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r7, r7, r3, lsl #8 \n\t" + "eor.w r7, r7, r4, lsl #16 \n\t" + "eor.w r7, r7, r5, lsl #24 \n\t" + "eor.w r8, r8, r6, lsl #8 \n\t" + "eor.w r8, r8, r11, lsl #16 \n\t" + "eor.w r8, r8, r12, lsl #24 \n\t" + "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) + + // 3rd-4th line + // r9(s9 s8 s11 s10) + "uxtb.w r5, r9, ror #8 \n\t" // s9 + "uxtb.w r7, r9 \n\t" // s8 + "uxtb.w r3, r9, ror #24 \n\t" // s11 + "uxtb.w r9, r9, ror #16 \n\t" // s10 + // r10(s12 s15 s14 s13) + "uxtb.w r12, r10 \n\t" // s12 + "uxtb.w r11, r10, ror #24 \n\t" // s15 + "uxtb.w r6, r10, ror #16 \n\t" // s14 + "uxtb.w r10, r10, ror #8 \n\t" // s13 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldr.w r0, [r1,#300] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r9, r9, r3, lsl #8 \n\t" + "eor.w r9, r9, r7, lsl #16 \n\t" + "eor.w r9, r9, r5, lsl #24 \n\t" + "eor.w r10, r10, r6, lsl #8 \n\t" + "eor.w r10, r10, r11, lsl #16 \n\t" + "eor.w r10, r10, r12, lsl #24 \n\t" + "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) + + // AddRoundKey and AddRoundConst(from roundKeys) + + // r9( s9 s8 s11 s10) + // r10(s12 s14 s14 s13) + + // MixColumn + "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 + "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 + "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 + // r4 ----------------> r4 + // round 31 + + // SubCell+ShiftRow+AC(c2) + // r3 (s3 s2 s1 s0) + // r4 (s7 s6 s5 s4) + // r5 (s11 s10 s9 s8) + // r6 (s15 s14 s13 s12) + + // 1st-2nd line + // r3(s3 s2 s1 s0) + "uxtb.w r9, r3, ror #24 \n\t" // s3 + "uxtb.w r8, r3, ror #16 \n\t" // s2 + "uxtb.w r7, r3, ror #8 \n\t" // s1 + "uxtb.w r3, r3 \n\t" // s0 + // r4(s6 s5 s4 s7) + "uxtb.w r12, r4, ror #16 \n\t" // s6 + "uxtb.w r11, r4, ror #8 \n\t" // s5 + "uxtb.w r10, r4 \n\t" // s4 + "uxtb.w r4, r4, ror #24 \n\t" // s7 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "eor.w r3, r3, r7, lsl #8 \n\t" + "eor.w r3, r3, r8, lsl #16 \n\t" + "eor.w r3, r3, r9, lsl #24 \n\t" + "eor.w r4, r4, r10, lsl #8 \n\t" + "eor.w r4, r4, r11, lsl #16 \n\t" + "eor.w r4, r4, r12, lsl #24 \n\t" + + // 3rd-4th line + // r5(s9 s8 s11 s10) + "uxtb.w r9, r5, ror #8 \n\t" // s9 + "uxtb.w r8, r5 \n\t" // s8 + "uxtb.w r7, r5, ror #24 \n\t" // s11 + "uxtb.w r5, r5, ror #16 \n\t" // s10 + // r6(s12 s15 s14 s13) + "uxtb.w r12, r6 \n\t" // s12 + "uxtb.w r11, r6, ror #24 \n\t" // s15 + "uxtb.w r10, r6, ror #16 \n\t" // s14 + "uxtb.w r6, r6, ror #8 \n\t" // s13 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "eor.w r5, r5, r7, lsl #8 \n\t" + "eor.w r5, r5, r8, lsl #16 \n\t" + "eor.w r5, r5, r9, lsl #24 \n\t" + "eor.w r6, r6, r10, lsl #8 \n\t" + "eor.w r6, r6, r11, lsl #16 \n\t" + "eor.w r6, r6, r12, lsl #24 \n\t" + + // AddRoundKey and AddRoundConst(from roundKeys) + "ldr.w r9, [r1,#56] \n\t" // load TK1 + "ldr.w r10, [r1,#60] \n\t" // load TK1 + "ldr.w r11, [r1,#304] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "ldr.w r12, [r1,#308] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + + "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) + "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) + // r8( s9 s8 s11 s10) + // r6(s12 s14 s14 s13) + + // MixColumn + "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 + "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 + "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 + // r8 ----------------> r8 + + // round 32 + + // SubCell+ShiftRow+AC(c2) + // r7 (s3 s2 s1 s0) + // r8 (s7 s6 s5 s4) + // r9 (s11 s10 s9 s8) + // r10(s15 s14 s13 s12) + + // 1st-2nd line + // r7(s3 s2 s1 s0) + "uxtb.w r5, r7, ror #24 \n\t" // s3 + "uxtb.w r4, r7, ror #16 \n\t" // s2 + "uxtb.w r3, r7, ror #8 \n\t" // s1 + "uxtb.w r7, r7 \n\t" // s0 + // r8(s6 s5 s4 s7) + "uxtb.w r12, r8, ror #16 \n\t" // s6 + "uxtb.w r11, r8, ror #8 \n\t" // s5 + "uxtb.w r6, r8 \n\t" // s4 + "uxtb.w r8, r8, ror #24 \n\t" // s7 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldr.w r0, [r1,#312] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r7, r7, r3, lsl #8 \n\t" + "eor.w r7, r7, r4, lsl #16 \n\t" + "eor.w r7, r7, r5, lsl #24 \n\t" + "eor.w r8, r8, r6, lsl #8 \n\t" + "eor.w r8, r8, r11, lsl #16 \n\t" + "eor.w r8, r8, r12, lsl #24 \n\t" + "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) + + // 3rd-4th line + // r9(s9 s8 s11 s10) + "uxtb.w r5, r9, ror #8 \n\t" // s9 + "uxtb.w r7, r9 \n\t" // s8 + "uxtb.w r3, r9, ror #24 \n\t" // s11 + "uxtb.w r9, r9, ror #16 \n\t" // s10 + // r10(s12 s15 s14 s13) + "uxtb.w r12, r10 \n\t" // s12 + "uxtb.w r11, r10, ror #24 \n\t" // s15 + "uxtb.w r6, r10, ror #16 \n\t" // s14 + "uxtb.w r10, r10, ror #8 \n\t" // s13 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldr.w r0, [r1,#316] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r9, r9, r3, lsl #8 \n\t" + "eor.w r9, r9, r7, lsl #16 \n\t" + "eor.w r9, r9, r5, lsl #24 \n\t" + "eor.w r10, r10, r6, lsl #8 \n\t" + "eor.w r10, r10, r11, lsl #16 \n\t" + "eor.w r10, r10, r12, lsl #24 \n\t" + "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) + + // AddRoundKey and AddRoundConst(from roundKeys) + + // r9( s9 s8 s11 s10) + // r10(s12 s14 s14 s13) + + // MixColumn + "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 + "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 + "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 + // r4 ----------------> r4 + // round 33 + + // SubCell+ShiftRow+AC(c2) + // r3 (s3 s2 s1 s0) + // r4 (s7 s6 s5 s4) + // r5 (s11 s10 s9 s8) + // r6 (s15 s14 s13 s12) + + // 1st-2nd line + // r3(s3 s2 s1 s0) + "uxtb.w r9, r3, ror #24 \n\t" // s3 + "uxtb.w r8, r3, ror #16 \n\t" // s2 + "uxtb.w r7, r3, ror #8 \n\t" // s1 + "uxtb.w r3, r3 \n\t" // s0 + // r4(s6 s5 s4 s7) + "uxtb.w r12, r4, ror #16 \n\t" // s6 + "uxtb.w r11, r4, ror #8 \n\t" // s5 + "uxtb.w r10, r4 \n\t" // s4 + "uxtb.w r4, r4, ror #24 \n\t" // s7 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "eor.w r3, r3, r7, lsl #8 \n\t" + "eor.w r3, r3, r8, lsl #16 \n\t" + "eor.w r3, r3, r9, lsl #24 \n\t" + "eor.w r4, r4, r10, lsl #8 \n\t" + "eor.w r4, r4, r11, lsl #16 \n\t" + "eor.w r4, r4, r12, lsl #24 \n\t" + + // 3rd-4th line + // r5(s9 s8 s11 s10) + "uxtb.w r9, r5, ror #8 \n\t" // s9 + "uxtb.w r8, r5 \n\t" // s8 + "uxtb.w r7, r5, ror #24 \n\t" // s11 + "uxtb.w r5, r5, ror #16 \n\t" // s10 + // r6(s12 s15 s14 s13) + "uxtb.w r12, r6 \n\t" // s12 + "uxtb.w r11, r6, ror #24 \n\t" // s15 + "uxtb.w r10, r6, ror #16 \n\t" // s14 + "uxtb.w r6, r6, ror #8 \n\t" // s13 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "eor.w r5, r5, r7, lsl #8 \n\t" + "eor.w r5, r5, r8, lsl #16 \n\t" + "eor.w r5, r5, r9, lsl #24 \n\t" + "eor.w r6, r6, r10, lsl #8 \n\t" + "eor.w r6, r6, r11, lsl #16 \n\t" + "eor.w r6, r6, r12, lsl #24 \n\t" + + // AddRoundKey and AddRoundConst(from roundKeys) + "ldr.w r9, [r1,#0] \n\t" // load TK1 + "ldr.w r10, [r1,#4] \n\t" // load TK1 + "ldr.w r11, [r1,#320] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "ldr.w r12, [r1,#324] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + + "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) + "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) + // r8( s9 s8 s11 s10) + // r6(s12 s14 s14 s13) + + // MixColumn + "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 + "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 + "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 + // r8 ----------------> r8 + + // round 34 + + // SubCell+ShiftRow+AC(c2) + // r7 (s3 s2 s1 s0) + // r8 (s7 s6 s5 s4) + // r9 (s11 s10 s9 s8) + // r10(s15 s14 s13 s12) + + // 1st-2nd line + // r7(s3 s2 s1 s0) + "uxtb.w r5, r7, ror #24 \n\t" // s3 + "uxtb.w r4, r7, ror #16 \n\t" // s2 + "uxtb.w r3, r7, ror #8 \n\t" // s1 + "uxtb.w r7, r7 \n\t" // s0 + // r8(s6 s5 s4 s7) + "uxtb.w r12, r8, ror #16 \n\t" // s6 + "uxtb.w r11, r8, ror #8 \n\t" // s5 + "uxtb.w r6, r8 \n\t" // s4 + "uxtb.w r8, r8, ror #24 \n\t" // s7 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldr.w r0, [r1,#328] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r7, r7, r3, lsl #8 \n\t" + "eor.w r7, r7, r4, lsl #16 \n\t" + "eor.w r7, r7, r5, lsl #24 \n\t" + "eor.w r8, r8, r6, lsl #8 \n\t" + "eor.w r8, r8, r11, lsl #16 \n\t" + "eor.w r8, r8, r12, lsl #24 \n\t" + "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) + + // 3rd-4th line + // r9(s9 s8 s11 s10) + "uxtb.w r5, r9, ror #8 \n\t" // s9 + "uxtb.w r7, r9 \n\t" // s8 + "uxtb.w r3, r9, ror #24 \n\t" // s11 + "uxtb.w r9, r9, ror #16 \n\t" // s10 + // r10(s12 s15 s14 s13) + "uxtb.w r12, r10 \n\t" // s12 + "uxtb.w r11, r10, ror #24 \n\t" // s15 + "uxtb.w r6, r10, ror #16 \n\t" // s14 + "uxtb.w r10, r10, ror #8 \n\t" // s13 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldr.w r0, [r1,#332] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r9, r9, r3, lsl #8 \n\t" + "eor.w r9, r9, r7, lsl #16 \n\t" + "eor.w r9, r9, r5, lsl #24 \n\t" + "eor.w r10, r10, r6, lsl #8 \n\t" + "eor.w r10, r10, r11, lsl #16 \n\t" + "eor.w r10, r10, r12, lsl #24 \n\t" + "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) + + // AddRoundKey and AddRoundConst(from roundKeys) + + // r9( s9 s8 s11 s10) + // r10(s12 s14 s14 s13) + + // MixColumn + "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 + "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 + "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 + // r4 ----------------> r4 + // round 35 + + // SubCell+ShiftRow+AC(c2) + // r3 (s3 s2 s1 s0) + // r4 (s7 s6 s5 s4) + // r5 (s11 s10 s9 s8) + // r6 (s15 s14 s13 s12) + + // 1st-2nd line + // r3(s3 s2 s1 s0) + "uxtb.w r9, r3, ror #24 \n\t" // s3 + "uxtb.w r8, r3, ror #16 \n\t" // s2 + "uxtb.w r7, r3, ror #8 \n\t" // s1 + "uxtb.w r3, r3 \n\t" // s0 + // r4(s6 s5 s4 s7) + "uxtb.w r12, r4, ror #16 \n\t" // s6 + "uxtb.w r11, r4, ror #8 \n\t" // s5 + "uxtb.w r10, r4 \n\t" // s4 + "uxtb.w r4, r4, ror #24 \n\t" // s7 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "eor.w r3, r3, r7, lsl #8 \n\t" + "eor.w r3, r3, r8, lsl #16 \n\t" + "eor.w r3, r3, r9, lsl #24 \n\t" + "eor.w r4, r4, r10, lsl #8 \n\t" + "eor.w r4, r4, r11, lsl #16 \n\t" + "eor.w r4, r4, r12, lsl #24 \n\t" + + // 3rd-4th line + // r5(s9 s8 s11 s10) + "uxtb.w r9, r5, ror #8 \n\t" // s9 + "uxtb.w r8, r5 \n\t" // s8 + "uxtb.w r7, r5, ror #24 \n\t" // s11 + "uxtb.w r5, r5, ror #16 \n\t" // s10 + // r6(s12 s15 s14 s13) + "uxtb.w r12, r6 \n\t" // s12 + "uxtb.w r11, r6, ror #24 \n\t" // s15 + "uxtb.w r10, r6, ror #16 \n\t" // s14 + "uxtb.w r6, r6, ror #8 \n\t" // s13 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "eor.w r5, r5, r7, lsl #8 \n\t" + "eor.w r5, r5, r8, lsl #16 \n\t" + "eor.w r5, r5, r9, lsl #24 \n\t" + "eor.w r6, r6, r10, lsl #8 \n\t" + "eor.w r6, r6, r11, lsl #16 \n\t" + "eor.w r6, r6, r12, lsl #24 \n\t" + + // AddRoundKey and AddRoundConst(from roundKeys) + "ldr.w r9, [r1,#8] \n\t" // load TK1 + "ldr.w r10, [r1,#12] \n\t" // load TK1 + "ldr.w r11, [r1,#336] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "ldr.w r12, [r1,#340] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + + "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) + "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) + // r8( s9 s8 s11 s10) + // r6(s12 s14 s14 s13) + + // MixColumn + "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 + "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 + "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 + // r8 ----------------> r8 + + // round 36 + + // SubCell+ShiftRow+AC(c2) + // r7 (s3 s2 s1 s0) + // r8 (s7 s6 s5 s4) + // r9 (s11 s10 s9 s8) + // r10(s15 s14 s13 s12) + + // 1st-2nd line + // r7(s3 s2 s1 s0) + "uxtb.w r5, r7, ror #24 \n\t" // s3 + "uxtb.w r4, r7, ror #16 \n\t" // s2 + "uxtb.w r3, r7, ror #8 \n\t" // s1 + "uxtb.w r7, r7 \n\t" // s0 + // r8(s6 s5 s4 s7) + "uxtb.w r12, r8, ror #16 \n\t" // s6 + "uxtb.w r11, r8, ror #8 \n\t" // s5 + "uxtb.w r6, r8 \n\t" // s4 + "uxtb.w r8, r8, ror #24 \n\t" // s7 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldr.w r0, [r1,#344] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r7, r7, r3, lsl #8 \n\t" + "eor.w r7, r7, r4, lsl #16 \n\t" + "eor.w r7, r7, r5, lsl #24 \n\t" + "eor.w r8, r8, r6, lsl #8 \n\t" + "eor.w r8, r8, r11, lsl #16 \n\t" + "eor.w r8, r8, r12, lsl #24 \n\t" + "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) + + // 3rd-4th line + // r9(s9 s8 s11 s10) + "uxtb.w r5, r9, ror #8 \n\t" // s9 + "uxtb.w r7, r9 \n\t" // s8 + "uxtb.w r3, r9, ror #24 \n\t" // s11 + "uxtb.w r9, r9, ror #16 \n\t" // s10 + // r10(s12 s15 s14 s13) + "uxtb.w r12, r10 \n\t" // s12 + "uxtb.w r11, r10, ror #24 \n\t" // s15 + "uxtb.w r6, r10, ror #16 \n\t" // s14 + "uxtb.w r10, r10, ror #8 \n\t" // s13 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldr.w r0, [r1,#348] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r9, r9, r3, lsl #8 \n\t" + "eor.w r9, r9, r7, lsl #16 \n\t" + "eor.w r9, r9, r5, lsl #24 \n\t" + "eor.w r10, r10, r6, lsl #8 \n\t" + "eor.w r10, r10, r11, lsl #16 \n\t" + "eor.w r10, r10, r12, lsl #24 \n\t" + "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) + + // AddRoundKey and AddRoundConst(from roundKeys) + + // r9( s9 s8 s11 s10) + // r10(s12 s14 s14 s13) + + // MixColumn + "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 + "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 + "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 + // r4 ----------------> r4 + // round 37 + + // SubCell+ShiftRow+AC(c2) + // r3 (s3 s2 s1 s0) + // r4 (s7 s6 s5 s4) + // r5 (s11 s10 s9 s8) + // r6 (s15 s14 s13 s12) + + // 1st-2nd line + // r3(s3 s2 s1 s0) + "uxtb.w r9, r3, ror #24 \n\t" // s3 + "uxtb.w r8, r3, ror #16 \n\t" // s2 + "uxtb.w r7, r3, ror #8 \n\t" // s1 + "uxtb.w r3, r3 \n\t" // s0 + // r4(s6 s5 s4 s7) + "uxtb.w r12, r4, ror #16 \n\t" // s6 + "uxtb.w r11, r4, ror #8 \n\t" // s5 + "uxtb.w r10, r4 \n\t" // s4 + "uxtb.w r4, r4, ror #24 \n\t" // s7 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "eor.w r3, r3, r7, lsl #8 \n\t" + "eor.w r3, r3, r8, lsl #16 \n\t" + "eor.w r3, r3, r9, lsl #24 \n\t" + "eor.w r4, r4, r10, lsl #8 \n\t" + "eor.w r4, r4, r11, lsl #16 \n\t" + "eor.w r4, r4, r12, lsl #24 \n\t" + + // 3rd-4th line + // r5(s9 s8 s11 s10) + "uxtb.w r9, r5, ror #8 \n\t" // s9 + "uxtb.w r8, r5 \n\t" // s8 + "uxtb.w r7, r5, ror #24 \n\t" // s11 + "uxtb.w r5, r5, ror #16 \n\t" // s10 + // r6(s12 s15 s14 s13) + "uxtb.w r12, r6 \n\t" // s12 + "uxtb.w r11, r6, ror #24 \n\t" // s15 + "uxtb.w r10, r6, ror #16 \n\t" // s14 + "uxtb.w r6, r6, ror #8 \n\t" // s13 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "eor.w r5, r5, r7, lsl #8 \n\t" + "eor.w r5, r5, r8, lsl #16 \n\t" + "eor.w r5, r5, r9, lsl #24 \n\t" + "eor.w r6, r6, r10, lsl #8 \n\t" + "eor.w r6, r6, r11, lsl #16 \n\t" + "eor.w r6, r6, r12, lsl #24 \n\t" + + // AddRoundKey and AddRoundConst(from roundKeys) + "ldr.w r9, [r1,#16] \n\t" // load TK1 + "ldr.w r10, [r1,#20] \n\t" // load TK1 + "ldr.w r11, [r1,#352] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "ldr.w r12, [r1,#356] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + + "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) + "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) + // r8( s9 s8 s11 s10) + // r6(s12 s14 s14 s13) + + // MixColumn + "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 + "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 + "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 + // r8 ----------------> r8 + + // round 38 + + // SubCell+ShiftRow+AC(c2) + // r7 (s3 s2 s1 s0) + // r8 (s7 s6 s5 s4) + // r9 (s11 s10 s9 s8) + // r10(s15 s14 s13 s12) + + // 1st-2nd line + // r7(s3 s2 s1 s0) + "uxtb.w r5, r7, ror #24 \n\t" // s3 + "uxtb.w r4, r7, ror #16 \n\t" // s2 + "uxtb.w r3, r7, ror #8 \n\t" // s1 + "uxtb.w r7, r7 \n\t" // s0 + // r8(s6 s5 s4 s7) + "uxtb.w r12, r8, ror #16 \n\t" // s6 + "uxtb.w r11, r8, ror #8 \n\t" // s5 + "uxtb.w r6, r8 \n\t" // s4 + "uxtb.w r8, r8, ror #24 \n\t" // s7 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldr.w r0, [r1,#360] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r7, r7, r3, lsl #8 \n\t" + "eor.w r7, r7, r4, lsl #16 \n\t" + "eor.w r7, r7, r5, lsl #24 \n\t" + "eor.w r8, r8, r6, lsl #8 \n\t" + "eor.w r8, r8, r11, lsl #16 \n\t" + "eor.w r8, r8, r12, lsl #24 \n\t" + "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) + + // 3rd-4th line + // r9(s9 s8 s11 s10) + "uxtb.w r5, r9, ror #8 \n\t" // s9 + "uxtb.w r7, r9 \n\t" // s8 + "uxtb.w r3, r9, ror #24 \n\t" // s11 + "uxtb.w r9, r9, ror #16 \n\t" // s10 + // r10(s12 s15 s14 s13) + "uxtb.w r12, r10 \n\t" // s12 + "uxtb.w r11, r10, ror #24 \n\t" // s15 + "uxtb.w r6, r10, ror #16 \n\t" // s14 + "uxtb.w r10, r10, ror #8 \n\t" // s13 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldr.w r0, [r1,#364] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r9, r9, r3, lsl #8 \n\t" + "eor.w r9, r9, r7, lsl #16 \n\t" + "eor.w r9, r9, r5, lsl #24 \n\t" + "eor.w r10, r10, r6, lsl #8 \n\t" + "eor.w r10, r10, r11, lsl #16 \n\t" + "eor.w r10, r10, r12, lsl #24 \n\t" + "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) + + // AddRoundKey and AddRoundConst(from roundKeys) + + // r9( s9 s8 s11 s10) + // r10(s12 s14 s14 s13) + + // MixColumn + "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 + "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 + "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 + // r4 ----------------> r4 + // round 39 + + // SubCell+ShiftRow+AC(c2) + // r3 (s3 s2 s1 s0) + // r4 (s7 s6 s5 s4) + // r5 (s11 s10 s9 s8) + // r6 (s15 s14 s13 s12) + + // 1st-2nd line + // r3(s3 s2 s1 s0) + "uxtb.w r9, r3, ror #24 \n\t" // s3 + "uxtb.w r8, r3, ror #16 \n\t" // s2 + "uxtb.w r7, r3, ror #8 \n\t" // s1 + "uxtb.w r3, r3 \n\t" // s0 + // r4(s6 s5 s4 s7) + "uxtb.w r12, r4, ror #16 \n\t" // s6 + "uxtb.w r11, r4, ror #8 \n\t" // s5 + "uxtb.w r10, r4 \n\t" // s4 + "uxtb.w r4, r4, ror #24 \n\t" // s7 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "eor.w r3, r3, r7, lsl #8 \n\t" + "eor.w r3, r3, r8, lsl #16 \n\t" + "eor.w r3, r3, r9, lsl #24 \n\t" + "eor.w r4, r4, r10, lsl #8 \n\t" + "eor.w r4, r4, r11, lsl #16 \n\t" + "eor.w r4, r4, r12, lsl #24 \n\t" + + // 3rd-4th line + // r5(s9 s8 s11 s10) + "uxtb.w r9, r5, ror #8 \n\t" // s9 + "uxtb.w r8, r5 \n\t" // s8 + "uxtb.w r7, r5, ror #24 \n\t" // s11 + "uxtb.w r5, r5, ror #16 \n\t" // s10 + // r6(s12 s15 s14 s13) + "uxtb.w r12, r6 \n\t" // s12 + "uxtb.w r11, r6, ror #24 \n\t" // s15 + "uxtb.w r10, r6, ror #16 \n\t" // s14 + "uxtb.w r6, r6, ror #8 \n\t" // s13 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "eor.w r5, r5, r7, lsl #8 \n\t" + "eor.w r5, r5, r8, lsl #16 \n\t" + "eor.w r5, r5, r9, lsl #24 \n\t" + "eor.w r6, r6, r10, lsl #8 \n\t" + "eor.w r6, r6, r11, lsl #16 \n\t" + "eor.w r6, r6, r12, lsl #24 \n\t" + + // AddRoundKey and AddRoundConst(from roundKeys) + "ldr.w r9, [r1,#24] \n\t" // load TK1 + "ldr.w r10, [r1,#28] \n\t" // load TK1 + "ldr.w r11, [r1,#368] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "ldr.w r12, [r1,#372] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + + "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) + "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) + // r8( s9 s8 s11 s10) + // r6(s12 s14 s14 s13) + + // MixColumn + "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 + "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 + "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 + // r8 ----------------> r8 + + // round 40 + + // SubCell+ShiftRow+AC(c2) + // r7 (s3 s2 s1 s0) + // r8 (s7 s6 s5 s4) + // r9 (s11 s10 s9 s8) + // r10(s15 s14 s13 s12) + + // 1st-2nd line + // r7(s3 s2 s1 s0) + "uxtb.w r5, r7, ror #24 \n\t" // s3 + "uxtb.w r4, r7, ror #16 \n\t" // s2 + "uxtb.w r3, r7, ror #8 \n\t" // s1 + "uxtb.w r7, r7 \n\t" // s0 + // r8(s6 s5 s4 s7) + "uxtb.w r12, r8, ror #16 \n\t" // s6 + "uxtb.w r11, r8, ror #8 \n\t" // s5 + "uxtb.w r6, r8 \n\t" // s4 + "uxtb.w r8, r8, ror #24 \n\t" // s7 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldr.w r0, [r1,#376] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r7, r7, r3, lsl #8 \n\t" + "eor.w r7, r7, r4, lsl #16 \n\t" + "eor.w r7, r7, r5, lsl #24 \n\t" + "eor.w r8, r8, r6, lsl #8 \n\t" + "eor.w r8, r8, r11, lsl #16 \n\t" + "eor.w r8, r8, r12, lsl #24 \n\t" + "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) + + // 3rd-4th line + // r9(s9 s8 s11 s10) + "uxtb.w r5, r9, ror #8 \n\t" // s9 + "uxtb.w r7, r9 \n\t" // s8 + "uxtb.w r3, r9, ror #24 \n\t" // s11 + "uxtb.w r9, r9, ror #16 \n\t" // s10 + // r10(s12 s15 s14 s13) + "uxtb.w r12, r10 \n\t" // s12 + "uxtb.w r11, r10, ror #24 \n\t" // s15 + "uxtb.w r6, r10, ror #16 \n\t" // s14 + "uxtb.w r10, r10, ror #8 \n\t" // s13 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldr.w r0, [r1,#380] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r9, r9, r3, lsl #8 \n\t" + "eor.w r9, r9, r7, lsl #16 \n\t" + "eor.w r9, r9, r5, lsl #24 \n\t" + "eor.w r10, r10, r6, lsl #8 \n\t" + "eor.w r10, r10, r11, lsl #16 \n\t" + "eor.w r10, r10, r12, lsl #24 \n\t" + "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) + + // AddRoundKey and AddRoundConst(from roundKeys) + + // r9( s9 s8 s11 s10) + // r10(s12 s14 s14 s13) + + // MixColumn + "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 + "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 + "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 + // r4 ----------------> r4 + + // round 41 + + // SubCell+ShiftRow+AC(c2) + // r3 (s3 s2 s1 s0) + // r4 (s7 s6 s5 s4) + // r5 (s11 s10 s9 s8) + // r6 (s15 s14 s13 s12) + + // 1st-2nd line + // r3(s3 s2 s1 s0) + "uxtb.w r9, r3, ror #24 \n\t" // s3 + "uxtb.w r8, r3, ror #16 \n\t" // s2 + "uxtb.w r7, r3, ror #8 \n\t" // s1 + "uxtb.w r3, r3 \n\t" // s0 + // r4(s6 s5 s4 s7) + "uxtb.w r12, r4, ror #16 \n\t" // s6 + "uxtb.w r11, r4, ror #8 \n\t" // s5 + "uxtb.w r10, r4 \n\t" // s4 + "uxtb.w r4, r4, ror #24 \n\t" // s7 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "eor.w r3, r3, r7, lsl #8 \n\t" + "eor.w r3, r3, r8, lsl #16 \n\t" + "eor.w r3, r3, r9, lsl #24 \n\t" + "eor.w r4, r4, r10, lsl #8 \n\t" + "eor.w r4, r4, r11, lsl #16 \n\t" + "eor.w r4, r4, r12, lsl #24 \n\t" + + // 3rd-4th line + // r5(s9 s8 s11 s10) + "uxtb.w r9, r5, ror #8 \n\t" // s9 + "uxtb.w r8, r5 \n\t" // s8 + "uxtb.w r7, r5, ror #24 \n\t" // s11 + "uxtb.w r5, r5, ror #16 \n\t" // s10 + // r6(s12 s15 s14 s13) + "uxtb.w r12, r6 \n\t" // s12 + "uxtb.w r11, r6, ror #24 \n\t" // s15 + "uxtb.w r10, r6, ror #16 \n\t" // s14 + "uxtb.w r6, r6, ror #8 \n\t" // s13 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "eor.w r5, r5, r7, lsl #8 \n\t" + "eor.w r5, r5, r8, lsl #16 \n\t" + "eor.w r5, r5, r9, lsl #24 \n\t" + "eor.w r6, r6, r10, lsl #8 \n\t" + "eor.w r6, r6, r11, lsl #16 \n\t" + "eor.w r6, r6, r12, lsl #24 \n\t" + + // AddRoundKey and AddRoundConst(from roundKeys) + "ldr.w r9, [r1,#32] \n\t" // load TK1 + "ldr.w r10, [r1,#36] \n\t" // load TK1 + "ldr.w r11, [r1,#384] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "ldr.w r12, [r1,#388] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + + "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) + "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) + // r8( s9 s8 s11 s10) + // r6(s12 s14 s14 s13) + + // MixColumn + "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 + "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 + "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 + // r8 ----------------> r8 + + // round 42 + + // SubCell+ShiftRow+AC(c2) + // r7 (s3 s2 s1 s0) + // r8 (s7 s6 s5 s4) + // r9 (s11 s10 s9 s8) + // r10(s15 s14 s13 s12) + + // 1st-2nd line + // r7(s3 s2 s1 s0) + "uxtb.w r5, r7, ror #24 \n\t" // s3 + "uxtb.w r4, r7, ror #16 \n\t" // s2 + "uxtb.w r3, r7, ror #8 \n\t" // s1 + "uxtb.w r7, r7 \n\t" // s0 + // r8(s6 s5 s4 s7) + "uxtb.w r12, r8, ror #16 \n\t" // s6 + "uxtb.w r11, r8, ror #8 \n\t" // s5 + "uxtb.w r6, r8 \n\t" // s4 + "uxtb.w r8, r8, ror #24 \n\t" // s7 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldr.w r0, [r1,#392] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r7, r7, r3, lsl #8 \n\t" + "eor.w r7, r7, r4, lsl #16 \n\t" + "eor.w r7, r7, r5, lsl #24 \n\t" + "eor.w r8, r8, r6, lsl #8 \n\t" + "eor.w r8, r8, r11, lsl #16 \n\t" + "eor.w r8, r8, r12, lsl #24 \n\t" + "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) + + // 3rd-4th line + // r9(s9 s8 s11 s10) + "uxtb.w r5, r9, ror #8 \n\t" // s9 + "uxtb.w r7, r9 \n\t" // s8 + "uxtb.w r3, r9, ror #24 \n\t" // s11 + "uxtb.w r9, r9, ror #16 \n\t" // s10 + // r10(s12 s15 s14 s13) + "uxtb.w r12, r10 \n\t" // s12 + "uxtb.w r11, r10, ror #24 \n\t" // s15 + "uxtb.w r6, r10, ror #16 \n\t" // s14 + "uxtb.w r10, r10, ror #8 \n\t" // s13 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldr.w r0, [r1,#396] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r9, r9, r3, lsl #8 \n\t" + "eor.w r9, r9, r7, lsl #16 \n\t" + "eor.w r9, r9, r5, lsl #24 \n\t" + "eor.w r10, r10, r6, lsl #8 \n\t" + "eor.w r10, r10, r11, lsl #16 \n\t" + "eor.w r10, r10, r12, lsl #24 \n\t" + "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) + + // AddRoundKey and AddRoundConst(from roundKeys) + + // r9( s9 s8 s11 s10) + // r10(s12 s14 s14 s13) + + // MixColumn + "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 + "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 + "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 + // r4 ----------------> r4 + // round 43 + + // SubCell+ShiftRow+AC(c2) + // r3 (s3 s2 s1 s0) + // r4 (s7 s6 s5 s4) + // r5 (s11 s10 s9 s8) + // r6 (s15 s14 s13 s12) + + // 1st-2nd line + // r3(s3 s2 s1 s0) + "uxtb.w r9, r3, ror #24 \n\t" // s3 + "uxtb.w r8, r3, ror #16 \n\t" // s2 + "uxtb.w r7, r3, ror #8 \n\t" // s1 + "uxtb.w r3, r3 \n\t" // s0 + // r4(s6 s5 s4 s7) + "uxtb.w r12, r4, ror #16 \n\t" // s6 + "uxtb.w r11, r4, ror #8 \n\t" // s5 + "uxtb.w r10, r4 \n\t" // s4 + "uxtb.w r4, r4, ror #24 \n\t" // s7 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "eor.w r3, r3, r7, lsl #8 \n\t" + "eor.w r3, r3, r8, lsl #16 \n\t" + "eor.w r3, r3, r9, lsl #24 \n\t" + "eor.w r4, r4, r10, lsl #8 \n\t" + "eor.w r4, r4, r11, lsl #16 \n\t" + "eor.w r4, r4, r12, lsl #24 \n\t" + + // 3rd-4th line + // r5(s9 s8 s11 s10) + "uxtb.w r9, r5, ror #8 \n\t" // s9 + "uxtb.w r8, r5 \n\t" // s8 + "uxtb.w r7, r5, ror #24 \n\t" // s11 + "uxtb.w r5, r5, ror #16 \n\t" // s10 + // r6(s12 s15 s14 s13) + "uxtb.w r12, r6 \n\t" // s12 + "uxtb.w r11, r6, ror #24 \n\t" // s15 + "uxtb.w r10, r6, ror #16 \n\t" // s14 + "uxtb.w r6, r6, ror #8 \n\t" // s13 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "eor.w r5, r5, r7, lsl #8 \n\t" + "eor.w r5, r5, r8, lsl #16 \n\t" + "eor.w r5, r5, r9, lsl #24 \n\t" + "eor.w r6, r6, r10, lsl #8 \n\t" + "eor.w r6, r6, r11, lsl #16 \n\t" + "eor.w r6, r6, r12, lsl #24 \n\t" + + // AddRoundKey and AddRoundConst(from roundKeys) + "ldr.w r9, [r1,#40] \n\t" // load TK1 + "ldr.w r10, [r1,#44] \n\t" // load TK1 + "ldr.w r11, [r1,#400] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "ldr.w r12, [r1,#404] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + + "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) + "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) + // r8( s9 s8 s11 s10) + // r6(s12 s14 s14 s13) + + // MixColumn + "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 + "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 + "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 + // r8 ----------------> r8 + + // round 44 + + // SubCell+ShiftRow+AC(c2) + // r7 (s3 s2 s1 s0) + // r8 (s7 s6 s5 s4) + // r9 (s11 s10 s9 s8) + // r10(s15 s14 s13 s12) + + // 1st-2nd line + // r7(s3 s2 s1 s0) + "uxtb.w r5, r7, ror #24 \n\t" // s3 + "uxtb.w r4, r7, ror #16 \n\t" // s2 + "uxtb.w r3, r7, ror #8 \n\t" // s1 + "uxtb.w r7, r7 \n\t" // s0 + // r8(s6 s5 s4 s7) + "uxtb.w r12, r8, ror #16 \n\t" // s6 + "uxtb.w r11, r8, ror #8 \n\t" // s5 + "uxtb.w r6, r8 \n\t" // s4 + "uxtb.w r8, r8, ror #24 \n\t" // s7 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldr.w r0, [r1,#408] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r7, r7, r3, lsl #8 \n\t" + "eor.w r7, r7, r4, lsl #16 \n\t" + "eor.w r7, r7, r5, lsl #24 \n\t" + "eor.w r8, r8, r6, lsl #8 \n\t" + "eor.w r8, r8, r11, lsl #16 \n\t" + "eor.w r8, r8, r12, lsl #24 \n\t" + "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) + + // 3rd-4th line + // r9(s9 s8 s11 s10) + "uxtb.w r5, r9, ror #8 \n\t" // s9 + "uxtb.w r7, r9 \n\t" // s8 + "uxtb.w r3, r9, ror #24 \n\t" // s11 + "uxtb.w r9, r9, ror #16 \n\t" // s10 + // r10(s12 s15 s14 s13) + "uxtb.w r12, r10 \n\t" // s12 + "uxtb.w r11, r10, ror #24 \n\t" // s15 + "uxtb.w r6, r10, ror #16 \n\t" // s14 + "uxtb.w r10, r10, ror #8 \n\t" // s13 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldr.w r0, [r1,#412] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r9, r9, r3, lsl #8 \n\t" + "eor.w r9, r9, r7, lsl #16 \n\t" + "eor.w r9, r9, r5, lsl #24 \n\t" + "eor.w r10, r10, r6, lsl #8 \n\t" + "eor.w r10, r10, r11, lsl #16 \n\t" + "eor.w r10, r10, r12, lsl #24 \n\t" + "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) + + // AddRoundKey and AddRoundConst(from roundKeys) + + // r9( s9 s8 s11 s10) + // r10(s12 s14 s14 s13) + + // MixColumn + "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 + "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 + "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 + // r4 ----------------> r4 + // round 45 + + // SubCell+ShiftRow+AC(c2) + // r3 (s3 s2 s1 s0) + // r4 (s7 s6 s5 s4) + // r5 (s11 s10 s9 s8) + // r6 (s15 s14 s13 s12) + + // 1st-2nd line + // r3(s3 s2 s1 s0) + "uxtb.w r9, r3, ror #24 \n\t" // s3 + "uxtb.w r8, r3, ror #16 \n\t" // s2 + "uxtb.w r7, r3, ror #8 \n\t" // s1 + "uxtb.w r3, r3 \n\t" // s0 + // r4(s6 s5 s4 s7) + "uxtb.w r12, r4, ror #16 \n\t" // s6 + "uxtb.w r11, r4, ror #8 \n\t" // s5 + "uxtb.w r10, r4 \n\t" // s4 + "uxtb.w r4, r4, ror #24 \n\t" // s7 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "eor.w r3, r3, r7, lsl #8 \n\t" + "eor.w r3, r3, r8, lsl #16 \n\t" + "eor.w r3, r3, r9, lsl #24 \n\t" + "eor.w r4, r4, r10, lsl #8 \n\t" + "eor.w r4, r4, r11, lsl #16 \n\t" + "eor.w r4, r4, r12, lsl #24 \n\t" + + // 3rd-4th line + // r5(s9 s8 s11 s10) + "uxtb.w r9, r5, ror #8 \n\t" // s9 + "uxtb.w r8, r5 \n\t" // s8 + "uxtb.w r7, r5, ror #24 \n\t" // s11 + "uxtb.w r5, r5, ror #16 \n\t" // s10 + // r6(s12 s15 s14 s13) + "uxtb.w r12, r6 \n\t" // s12 + "uxtb.w r11, r6, ror #24 \n\t" // s15 + "uxtb.w r10, r6, ror #16 \n\t" // s14 + "uxtb.w r6, r6, ror #8 \n\t" // s13 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "eor.w r5, r5, r7, lsl #8 \n\t" + "eor.w r5, r5, r8, lsl #16 \n\t" + "eor.w r5, r5, r9, lsl #24 \n\t" + "eor.w r6, r6, r10, lsl #8 \n\t" + "eor.w r6, r6, r11, lsl #16 \n\t" + "eor.w r6, r6, r12, lsl #24 \n\t" + + // AddRoundKey and AddRoundConst(from roundKeys) + "ldr.w r9, [r1,#48] \n\t" // load TK1 + "ldr.w r10, [r1,#52] \n\t" // load TK1 + "ldr.w r11, [r1,#416] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "ldr.w r12, [r1,#420] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + + "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) + "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) + // r8( s9 s8 s11 s10) + // r6(s12 s14 s14 s13) + + // MixColumn + "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 + "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 + "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 + // r8 ----------------> r8 + + // round 46 + + // SubCell+ShiftRow+AC(c2) + // r7 (s3 s2 s1 s0) + // r8 (s7 s6 s5 s4) + // r9 (s11 s10 s9 s8) + // r10(s15 s14 s13 s12) + + // 1st-2nd line + // r7(s3 s2 s1 s0) + "uxtb.w r5, r7, ror #24 \n\t" // s3 + "uxtb.w r4, r7, ror #16 \n\t" // s2 + "uxtb.w r3, r7, ror #8 \n\t" // s1 + "uxtb.w r7, r7 \n\t" // s0 + // r8(s6 s5 s4 s7) + "uxtb.w r12, r8, ror #16 \n\t" // s6 + "uxtb.w r11, r8, ror #8 \n\t" // s5 + "uxtb.w r6, r8 \n\t" // s4 + "uxtb.w r8, r8, ror #24 \n\t" // s7 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldr.w r0, [r1,#424] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r7, r7, r3, lsl #8 \n\t" + "eor.w r7, r7, r4, lsl #16 \n\t" + "eor.w r7, r7, r5, lsl #24 \n\t" + "eor.w r8, r8, r6, lsl #8 \n\t" + "eor.w r8, r8, r11, lsl #16 \n\t" + "eor.w r8, r8, r12, lsl #24 \n\t" + "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) + + // 3rd-4th line + // r9(s9 s8 s11 s10) + "uxtb.w r5, r9, ror #8 \n\t" // s9 + "uxtb.w r7, r9 \n\t" // s8 + "uxtb.w r3, r9, ror #24 \n\t" // s11 + "uxtb.w r9, r9, ror #16 \n\t" // s10 + // r10(s12 s15 s14 s13) + "uxtb.w r12, r10 \n\t" // s12 + "uxtb.w r11, r10, ror #24 \n\t" // s15 + "uxtb.w r6, r10, ror #16 \n\t" // s14 + "uxtb.w r10, r10, ror #8 \n\t" // s13 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldr.w r0, [r1,#428] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r9, r9, r3, lsl #8 \n\t" + "eor.w r9, r9, r7, lsl #16 \n\t" + "eor.w r9, r9, r5, lsl #24 \n\t" + "eor.w r10, r10, r6, lsl #8 \n\t" + "eor.w r10, r10, r11, lsl #16 \n\t" + "eor.w r10, r10, r12, lsl #24 \n\t" + "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) + + // AddRoundKey and AddRoundConst(from roundKeys) + + // r9( s9 s8 s11 s10) + // r10(s12 s14 s14 s13) + + // MixColumn + "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 + "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 + "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 + // r4 ----------------> r4 + // round 47 + + // SubCell+ShiftRow+AC(c2) + // r3 (s3 s2 s1 s0) + // r4 (s7 s6 s5 s4) + // r5 (s11 s10 s9 s8) + // r6 (s15 s14 s13 s12) + + // 1st-2nd line + // r3(s3 s2 s1 s0) + "uxtb.w r9, r3, ror #24 \n\t" // s3 + "uxtb.w r8, r3, ror #16 \n\t" // s2 + "uxtb.w r7, r3, ror #8 \n\t" // s1 + "uxtb.w r3, r3 \n\t" // s0 + // r4(s6 s5 s4 s7) + "uxtb.w r12, r4, ror #16 \n\t" // s6 + "uxtb.w r11, r4, ror #8 \n\t" // s5 + "uxtb.w r10, r4 \n\t" // s4 + "uxtb.w r4, r4, ror #24 \n\t" // s7 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "eor.w r3, r3, r7, lsl #8 \n\t" + "eor.w r3, r3, r8, lsl #16 \n\t" + "eor.w r3, r3, r9, lsl #24 \n\t" + "eor.w r4, r4, r10, lsl #8 \n\t" + "eor.w r4, r4, r11, lsl #16 \n\t" + "eor.w r4, r4, r12, lsl #24 \n\t" + + // 3rd-4th line + // r5(s9 s8 s11 s10) + "uxtb.w r9, r5, ror #8 \n\t" // s9 + "uxtb.w r8, r5 \n\t" // s8 + "uxtb.w r7, r5, ror #24 \n\t" // s11 + "uxtb.w r5, r5, ror #16 \n\t" // s10 + // r6(s12 s15 s14 s13) + "uxtb.w r12, r6 \n\t" // s12 + "uxtb.w r11, r6, ror #24 \n\t" // s15 + "uxtb.w r10, r6, ror #16 \n\t" // s14 + "uxtb.w r6, r6, ror #8 \n\t" // s13 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "eor.w r5, r5, r7, lsl #8 \n\t" + "eor.w r5, r5, r8, lsl #16 \n\t" + "eor.w r5, r5, r9, lsl #24 \n\t" + "eor.w r6, r6, r10, lsl #8 \n\t" + "eor.w r6, r6, r11, lsl #16 \n\t" + "eor.w r6, r6, r12, lsl #24 \n\t" + + // AddRoundKey and AddRoundConst(from roundKeys) + "ldr.w r9, [r1,#56] \n\t" // load TK1 + "ldr.w r10, [r1,#60] \n\t" // load TK1 + "ldr.w r11, [r1,#432] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "ldr.w r12, [r1,#436] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + + "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) + "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) + // r8( s9 s8 s11 s10) + // r6(s12 s14 s14 s13) + + // MixColumn + "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 + "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 + "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 + // r8 ----------------> r8 + + // round 48 + + // SubCell+ShiftRow+AC(c2) + // r7 (s3 s2 s1 s0) + // r8 (s7 s6 s5 s4) + // r9 (s11 s10 s9 s8) + // r10(s15 s14 s13 s12) + + // 1st-2nd line + // r7(s3 s2 s1 s0) + "uxtb.w r5, r7, ror #24 \n\t" // s3 + "uxtb.w r4, r7, ror #16 \n\t" // s2 + "uxtb.w r3, r7, ror #8 \n\t" // s1 + "uxtb.w r7, r7 \n\t" // s0 + // r8(s6 s5 s4 s7) + "uxtb.w r12, r8, ror #16 \n\t" // s6 + "uxtb.w r11, r8, ror #8 \n\t" // s5 + "uxtb.w r6, r8 \n\t" // s4 + "uxtb.w r8, r8, ror #24 \n\t" // s7 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldr.w r0, [r1,#440] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r7, r7, r3, lsl #8 \n\t" + "eor.w r7, r7, r4, lsl #16 \n\t" + "eor.w r7, r7, r5, lsl #24 \n\t" + "eor.w r8, r8, r6, lsl #8 \n\t" + "eor.w r8, r8, r11, lsl #16 \n\t" + "eor.w r8, r8, r12, lsl #24 \n\t" + "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) + + // 3rd-4th line + // r9(s9 s8 s11 s10) + "uxtb.w r5, r9, ror #8 \n\t" // s9 + "uxtb.w r7, r9 \n\t" // s8 + "uxtb.w r3, r9, ror #24 \n\t" // s11 + "uxtb.w r9, r9, ror #16 \n\t" // s10 + // r10(s12 s15 s14 s13) + "uxtb.w r12, r10 \n\t" // s12 + "uxtb.w r11, r10, ror #24 \n\t" // s15 + "uxtb.w r6, r10, ror #16 \n\t" // s14 + "uxtb.w r10, r10, ror #8 \n\t" // s13 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldr.w r0, [r1,#444] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r9, r9, r3, lsl #8 \n\t" + "eor.w r9, r9, r7, lsl #16 \n\t" + "eor.w r9, r9, r5, lsl #24 \n\t" + "eor.w r10, r10, r6, lsl #8 \n\t" + "eor.w r10, r10, r11, lsl #16 \n\t" + "eor.w r10, r10, r12, lsl #24 \n\t" + "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) + + // AddRoundKey and AddRoundConst(from roundKeys) + + // r9( s9 s8 s11 s10) + // r10(s12 s14 s14 s13) + + // MixColumn + "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 + "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 + "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 + // r4 ----------------> r4 + // round 49 + + // SubCell+ShiftRow+AC(c2) + // r3 (s3 s2 s1 s0) + // r4 (s7 s6 s5 s4) + // r5 (s11 s10 s9 s8) + // r6 (s15 s14 s13 s12) + + // 1st-2nd line + // r3(s3 s2 s1 s0) + "uxtb.w r9, r3, ror #24 \n\t" // s3 + "uxtb.w r8, r3, ror #16 \n\t" // s2 + "uxtb.w r7, r3, ror #8 \n\t" // s1 + "uxtb.w r3, r3 \n\t" // s0 + // r4(s6 s5 s4 s7) + "uxtb.w r12, r4, ror #16 \n\t" // s6 + "uxtb.w r11, r4, ror #8 \n\t" // s5 + "uxtb.w r10, r4 \n\t" // s4 + "uxtb.w r4, r4, ror #24 \n\t" // s7 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "eor.w r3, r3, r7, lsl #8 \n\t" + "eor.w r3, r3, r8, lsl #16 \n\t" + "eor.w r3, r3, r9, lsl #24 \n\t" + "eor.w r4, r4, r10, lsl #8 \n\t" + "eor.w r4, r4, r11, lsl #16 \n\t" + "eor.w r4, r4, r12, lsl #24 \n\t" + + // 3rd-4th line + // r5(s9 s8 s11 s10) + "uxtb.w r9, r5, ror #8 \n\t" // s9 + "uxtb.w r8, r5 \n\t" // s8 + "uxtb.w r7, r5, ror #24 \n\t" // s11 + "uxtb.w r5, r5, ror #16 \n\t" // s10 + // r6(s12 s15 s14 s13) + "uxtb.w r12, r6 \n\t" // s12 + "uxtb.w r11, r6, ror #24 \n\t" // s15 + "uxtb.w r10, r6, ror #16 \n\t" // s14 + "uxtb.w r6, r6, ror #8 \n\t" // s13 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "eor.w r5, r5, r7, lsl #8 \n\t" + "eor.w r5, r5, r8, lsl #16 \n\t" + "eor.w r5, r5, r9, lsl #24 \n\t" + "eor.w r6, r6, r10, lsl #8 \n\t" + "eor.w r6, r6, r11, lsl #16 \n\t" + "eor.w r6, r6, r12, lsl #24 \n\t" + + // AddRoundKey and AddRoundConst(from roundKeys) + "ldr.w r9, [r1,#0] \n\t" // load TK1 + "ldr.w r10, [r1,#4] \n\t" // load TK1 + "ldr.w r11, [r1,#448] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "ldr.w r12, [r1,#452] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + + "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) + "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) + // r8( s9 s8 s11 s10) + // r6(s12 s14 s14 s13) + + // MixColumn + "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 + "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 + "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 + // r8 ----------------> r8 + + // round 50 + + // SubCell+ShiftRow+AC(c2) + // r7 (s3 s2 s1 s0) + // r8 (s7 s6 s5 s4) + // r9 (s11 s10 s9 s8) + // r10(s15 s14 s13 s12) + + // 1st-2nd line + // r7(s3 s2 s1 s0) + "uxtb.w r5, r7, ror #24 \n\t" // s3 + "uxtb.w r4, r7, ror #16 \n\t" // s2 + "uxtb.w r3, r7, ror #8 \n\t" // s1 + "uxtb.w r7, r7 \n\t" // s0 + // r8(s6 s5 s4 s7) + "uxtb.w r12, r8, ror #16 \n\t" // s6 + "uxtb.w r11, r8, ror #8 \n\t" // s5 + "uxtb.w r6, r8 \n\t" // s4 + "uxtb.w r8, r8, ror #24 \n\t" // s7 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldr.w r0, [r1,#456] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r7, r7, r3, lsl #8 \n\t" + "eor.w r7, r7, r4, lsl #16 \n\t" + "eor.w r7, r7, r5, lsl #24 \n\t" + "eor.w r8, r8, r6, lsl #8 \n\t" + "eor.w r8, r8, r11, lsl #16 \n\t" + "eor.w r8, r8, r12, lsl #24 \n\t" + "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) + + // 3rd-4th line + // r9(s9 s8 s11 s10) + "uxtb.w r5, r9, ror #8 \n\t" // s9 + "uxtb.w r7, r9 \n\t" // s8 + "uxtb.w r3, r9, ror #24 \n\t" // s11 + "uxtb.w r9, r9, ror #16 \n\t" // s10 + // r10(s12 s15 s14 s13) + "uxtb.w r12, r10 \n\t" // s12 + "uxtb.w r11, r10, ror #24 \n\t" // s15 + "uxtb.w r6, r10, ror #16 \n\t" // s14 + "uxtb.w r10, r10, ror #8 \n\t" // s13 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldr.w r0, [r1,#460] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r9, r9, r3, lsl #8 \n\t" + "eor.w r9, r9, r7, lsl #16 \n\t" + "eor.w r9, r9, r5, lsl #24 \n\t" + "eor.w r10, r10, r6, lsl #8 \n\t" + "eor.w r10, r10, r11, lsl #16 \n\t" + "eor.w r10, r10, r12, lsl #24 \n\t" + "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) + + // AddRoundKey and AddRoundConst(from roundKeys) + + // r9( s9 s8 s11 s10) + // r10(s12 s14 s14 s13) + + // MixColumn + "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 + "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 + "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 + // r4 ----------------> r4 + // round 51 + + // SubCell+ShiftRow+AC(c2) + // r3 (s3 s2 s1 s0) + // r4 (s7 s6 s5 s4) + // r5 (s11 s10 s9 s8) + // r6 (s15 s14 s13 s12) + + // 1st-2nd line + // r3(s3 s2 s1 s0) + "uxtb.w r9, r3, ror #24 \n\t" // s3 + "uxtb.w r8, r3, ror #16 \n\t" // s2 + "uxtb.w r7, r3, ror #8 \n\t" // s1 + "uxtb.w r3, r3 \n\t" // s0 + // r4(s6 s5 s4 s7) + "uxtb.w r12, r4, ror #16 \n\t" // s6 + "uxtb.w r11, r4, ror #8 \n\t" // s5 + "uxtb.w r10, r4 \n\t" // s4 + "uxtb.w r4, r4, ror #24 \n\t" // s7 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "eor.w r3, r3, r7, lsl #8 \n\t" + "eor.w r3, r3, r8, lsl #16 \n\t" + "eor.w r3, r3, r9, lsl #24 \n\t" + "eor.w r4, r4, r10, lsl #8 \n\t" + "eor.w r4, r4, r11, lsl #16 \n\t" + "eor.w r4, r4, r12, lsl #24 \n\t" + + // 3rd-4th line + // r5(s9 s8 s11 s10) + "uxtb.w r9, r5, ror #8 \n\t" // s9 + "uxtb.w r8, r5 \n\t" // s8 + "uxtb.w r7, r5, ror #24 \n\t" // s11 + "uxtb.w r5, r5, ror #16 \n\t" // s10 + // r6(s12 s15 s14 s13) + "uxtb.w r12, r6 \n\t" // s12 + "uxtb.w r11, r6, ror #24 \n\t" // s15 + "uxtb.w r10, r6, ror #16 \n\t" // s14 + "uxtb.w r6, r6, ror #8 \n\t" // s13 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "eor.w r5, r5, r7, lsl #8 \n\t" + "eor.w r5, r5, r8, lsl #16 \n\t" + "eor.w r5, r5, r9, lsl #24 \n\t" + "eor.w r6, r6, r10, lsl #8 \n\t" + "eor.w r6, r6, r11, lsl #16 \n\t" + "eor.w r6, r6, r12, lsl #24 \n\t" + + // AddRoundKey and AddRoundConst(from roundKeys) + "ldr.w r9, [r1,#8] \n\t" // load TK1 + "ldr.w r10, [r1,#12] \n\t" // load TK1 + "ldr.w r11, [r1,#464] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "ldr.w r12, [r1,#468] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + + "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) + "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) + // r8( s9 s8 s11 s10) + // r6(s12 s14 s14 s13) + + // MixColumn + "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 + "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 + "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 + // r8 ----------------> r8 + + // round 52 + + // SubCell+ShiftRow+AC(c2) + // r7 (s3 s2 s1 s0) + // r8 (s7 s6 s5 s4) + // r9 (s11 s10 s9 s8) + // r10(s15 s14 s13 s12) + + // 1st-2nd line + // r7(s3 s2 s1 s0) + "uxtb.w r5, r7, ror #24 \n\t" // s3 + "uxtb.w r4, r7, ror #16 \n\t" // s2 + "uxtb.w r3, r7, ror #8 \n\t" // s1 + "uxtb.w r7, r7 \n\t" // s0 + // r8(s6 s5 s4 s7) + "uxtb.w r12, r8, ror #16 \n\t" // s6 + "uxtb.w r11, r8, ror #8 \n\t" // s5 + "uxtb.w r6, r8 \n\t" // s4 + "uxtb.w r8, r8, ror #24 \n\t" // s7 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldr.w r0, [r1,#472] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r7, r7, r3, lsl #8 \n\t" + "eor.w r7, r7, r4, lsl #16 \n\t" + "eor.w r7, r7, r5, lsl #24 \n\t" + "eor.w r8, r8, r6, lsl #8 \n\t" + "eor.w r8, r8, r11, lsl #16 \n\t" + "eor.w r8, r8, r12, lsl #24 \n\t" + "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) + + // 3rd-4th line + // r9(s9 s8 s11 s10) + "uxtb.w r5, r9, ror #8 \n\t" // s9 + "uxtb.w r7, r9 \n\t" // s8 + "uxtb.w r3, r9, ror #24 \n\t" // s11 + "uxtb.w r9, r9, ror #16 \n\t" // s10 + // r10(s12 s15 s14 s13) + "uxtb.w r12, r10 \n\t" // s12 + "uxtb.w r11, r10, ror #24 \n\t" // s15 + "uxtb.w r6, r10, ror #16 \n\t" // s14 + "uxtb.w r10, r10, ror #8 \n\t" // s13 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldr.w r0, [r1,#476] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r9, r9, r3, lsl #8 \n\t" + "eor.w r9, r9, r7, lsl #16 \n\t" + "eor.w r9, r9, r5, lsl #24 \n\t" + "eor.w r10, r10, r6, lsl #8 \n\t" + "eor.w r10, r10, r11, lsl #16 \n\t" + "eor.w r10, r10, r12, lsl #24 \n\t" + "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) + + // AddRoundKey and AddRoundConst(from roundKeys) + + // r9( s9 s8 s11 s10) + // r10(s12 s14 s14 s13) + + // MixColumn + "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 + "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 + "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 + // r4 ----------------> r4 + // round 53 + + // SubCell+ShiftRow+AC(c2) + // r3 (s3 s2 s1 s0) + // r4 (s7 s6 s5 s4) + // r5 (s11 s10 s9 s8) + // r6 (s15 s14 s13 s12) + + // 1st-2nd line + // r3(s3 s2 s1 s0) + "uxtb.w r9, r3, ror #24 \n\t" // s3 + "uxtb.w r8, r3, ror #16 \n\t" // s2 + "uxtb.w r7, r3, ror #8 \n\t" // s1 + "uxtb.w r3, r3 \n\t" // s0 + // r4(s6 s5 s4 s7) + "uxtb.w r12, r4, ror #16 \n\t" // s6 + "uxtb.w r11, r4, ror #8 \n\t" // s5 + "uxtb.w r10, r4 \n\t" // s4 + "uxtb.w r4, r4, ror #24 \n\t" // s7 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "eor.w r3, r3, r7, lsl #8 \n\t" + "eor.w r3, r3, r8, lsl #16 \n\t" + "eor.w r3, r3, r9, lsl #24 \n\t" + "eor.w r4, r4, r10, lsl #8 \n\t" + "eor.w r4, r4, r11, lsl #16 \n\t" + "eor.w r4, r4, r12, lsl #24 \n\t" + + // 3rd-4th line + // r5(s9 s8 s11 s10) + "uxtb.w r9, r5, ror #8 \n\t" // s9 + "uxtb.w r8, r5 \n\t" // s8 + "uxtb.w r7, r5, ror #24 \n\t" // s11 + "uxtb.w r5, r5, ror #16 \n\t" // s10 + // r6(s12 s15 s14 s13) + "uxtb.w r12, r6 \n\t" // s12 + "uxtb.w r11, r6, ror #24 \n\t" // s15 + "uxtb.w r10, r6, ror #16 \n\t" // s14 + "uxtb.w r6, r6, ror #8 \n\t" // s13 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "eor.w r5, r5, r7, lsl #8 \n\t" + "eor.w r5, r5, r8, lsl #16 \n\t" + "eor.w r5, r5, r9, lsl #24 \n\t" + "eor.w r6, r6, r10, lsl #8 \n\t" + "eor.w r6, r6, r11, lsl #16 \n\t" + "eor.w r6, r6, r12, lsl #24 \n\t" + + // AddRoundKey and AddRoundConst(from roundKeys) + "ldr.w r9, [r1,#16] \n\t" // load TK1 + "ldr.w r10, [r1,#20] \n\t" // load TK1 + "ldr.w r11, [r1,#480] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "ldr.w r12, [r1,#484] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + + "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) + "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) + // r8( s9 s8 s11 s10) + // r6(s12 s14 s14 s13) + + // MixColumn + "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 + "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 + "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 + // r8 ----------------> r8 + + // round 54 + + // SubCell+ShiftRow+AC(c2) + // r7 (s3 s2 s1 s0) + // r8 (s7 s6 s5 s4) + // r9 (s11 s10 s9 s8) + // r10(s15 s14 s13 s12) + + // 1st-2nd line + // r7(s3 s2 s1 s0) + "uxtb.w r5, r7, ror #24 \n\t" // s3 + "uxtb.w r4, r7, ror #16 \n\t" // s2 + "uxtb.w r3, r7, ror #8 \n\t" // s1 + "uxtb.w r7, r7 \n\t" // s0 + // r8(s6 s5 s4 s7) + "uxtb.w r12, r8, ror #16 \n\t" // s6 + "uxtb.w r11, r8, ror #8 \n\t" // s5 + "uxtb.w r6, r8 \n\t" // s4 + "uxtb.w r8, r8, ror #24 \n\t" // s7 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldr.w r0, [r1,#488] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r7, r7, r3, lsl #8 \n\t" + "eor.w r7, r7, r4, lsl #16 \n\t" + "eor.w r7, r7, r5, lsl #24 \n\t" + "eor.w r8, r8, r6, lsl #8 \n\t" + "eor.w r8, r8, r11, lsl #16 \n\t" + "eor.w r8, r8, r12, lsl #24 \n\t" + "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) + + // 3rd-4th line + // r9(s9 s8 s11 s10) + "uxtb.w r5, r9, ror #8 \n\t" // s9 + "uxtb.w r7, r9 \n\t" // s8 + "uxtb.w r3, r9, ror #24 \n\t" // s11 + "uxtb.w r9, r9, ror #16 \n\t" // s10 + // r10(s12 s15 s14 s13) + "uxtb.w r12, r10 \n\t" // s12 + "uxtb.w r11, r10, ror #24 \n\t" // s15 + "uxtb.w r6, r10, ror #16 \n\t" // s14 + "uxtb.w r10, r10, ror #8 \n\t" // s13 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldr.w r0, [r1,#492] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r9, r9, r3, lsl #8 \n\t" + "eor.w r9, r9, r7, lsl #16 \n\t" + "eor.w r9, r9, r5, lsl #24 \n\t" + "eor.w r10, r10, r6, lsl #8 \n\t" + "eor.w r10, r10, r11, lsl #16 \n\t" + "eor.w r10, r10, r12, lsl #24 \n\t" + "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) + + // AddRoundKey and AddRoundConst(from roundKeys) + + // r9( s9 s8 s11 s10) + // r10(s12 s14 s14 s13) + + // MixColumn + "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 + "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 + "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 + // r4 ----------------> r4 + // round 55 + + // SubCell+ShiftRow+AC(c2) + // r3 (s3 s2 s1 s0) + // r4 (s7 s6 s5 s4) + // r5 (s11 s10 s9 s8) + // r6 (s15 s14 s13 s12) + + // 1st-2nd line + // r3(s3 s2 s1 s0) + "uxtb.w r9, r3, ror #24 \n\t" // s3 + "uxtb.w r8, r3, ror #16 \n\t" // s2 + "uxtb.w r7, r3, ror #8 \n\t" // s1 + "uxtb.w r3, r3 \n\t" // s0 + // r4(s6 s5 s4 s7) + "uxtb.w r12, r4, ror #16 \n\t" // s6 + "uxtb.w r11, r4, ror #8 \n\t" // s5 + "uxtb.w r10, r4 \n\t" // s4 + "uxtb.w r4, r4, ror #24 \n\t" // s7 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "eor.w r3, r3, r7, lsl #8 \n\t" + "eor.w r3, r3, r8, lsl #16 \n\t" + "eor.w r3, r3, r9, lsl #24 \n\t" + "eor.w r4, r4, r10, lsl #8 \n\t" + "eor.w r4, r4, r11, lsl #16 \n\t" + "eor.w r4, r4, r12, lsl #24 \n\t" + + // 3rd-4th line + // r5(s9 s8 s11 s10) + "uxtb.w r9, r5, ror #8 \n\t" // s9 + "uxtb.w r8, r5 \n\t" // s8 + "uxtb.w r7, r5, ror #24 \n\t" // s11 + "uxtb.w r5, r5, ror #16 \n\t" // s10 + // r6(s12 s15 s14 s13) + "uxtb.w r12, r6 \n\t" // s12 + "uxtb.w r11, r6, ror #24 \n\t" // s15 + "uxtb.w r10, r6, ror #16 \n\t" // s14 + "uxtb.w r6, r6, ror #8 \n\t" // s13 + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "eor.w r5, r5, r7, lsl #8 \n\t" + "eor.w r5, r5, r8, lsl #16 \n\t" + "eor.w r5, r5, r9, lsl #24 \n\t" + "eor.w r6, r6, r10, lsl #8 \n\t" + "eor.w r6, r6, r11, lsl #16 \n\t" + "eor.w r6, r6, r12, lsl #24 \n\t" + + // AddRoundKey and AddRoundConst(from roundKeys) + "ldr.w r9, [r1,#24] \n\t" // load TK1 + "ldr.w r10, [r1,#28] \n\t" // load TK1 + "ldr.w r11, [r1,#496] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "ldr.w r12, [r1,#500] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) + + "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) + "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) + // r8( s9 s8 s11 s10) + // r6(s12 s14 s14 s13) + + // MixColumn + "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 + "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 + "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 + // r8 ----------------> r8 + + // round 56 + + // SubCell+ShiftRow+AC(c2) + // r7 (s3 s2 s1 s0) + // r8 (s7 s6 s5 s4) + // r9 (s11 s10 s9 s8) + // r10(s15 s14 s13 s12) + + // 1st-2nd line + // r7(s3 s2 s1 s0) + "uxtb.w r5, r7, ror #24 \n\t" // s3 + "uxtb.w r4, r7, ror #16 \n\t" // s2 + "uxtb.w r3, r7, ror #8 \n\t" // s1 + "uxtb.w r7, r7 \n\t" // s0 + // r8(s6 s5 s4 s7) + "uxtb.w r12, r8, ror #16 \n\t" // s6 + "uxtb.w r11, r8, ror #8 \n\t" // s5 + "uxtb.w r6, r8 \n\t" // s4 + "uxtb.w r8, r8, ror #24 \n\t" // s7 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r4, [r2,r4] \n\t" + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r7, [r2,r7] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r8, [r2,r8] \n\t" + "ldr.w r0, [r1,#504] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r7, r7, r3, lsl #8 \n\t" + "eor.w r7, r7, r4, lsl #16 \n\t" + "eor.w r7, r7, r5, lsl #24 \n\t" + "eor.w r8, r8, r6, lsl #8 \n\t" + "eor.w r8, r8, r11, lsl #16 \n\t" + "eor.w r8, r8, r12, lsl #24 \n\t" + "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) + + // 3rd-4th line + // r9(s9 s8 s11 s10) + "uxtb.w r5, r9, ror #8 \n\t" // s9 + "uxtb.w r7, r9 \n\t" // s8 + "uxtb.w r3, r9, ror #24 \n\t" // s11 + "uxtb.w r9, r9, ror #16 \n\t" // s10 + // r10(s12 s15 s14 s13) + "uxtb.w r12, r10 \n\t" // s12 + "uxtb.w r11, r10, ror #24 \n\t" // s15 + "uxtb.w r6, r10, ror #16 \n\t" // s14 + "uxtb.w r10, r10, ror #8 \n\t" // s13 + "ldrb.w r5, [r2,r5] \n\t" + "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) + "ldrb.w r3, [r2,r3] \n\t" + "ldrb.w r9, [r2,r9] \n\t" + "ldrb.w r12, [r2,r12] \n\t" + "ldrb.w r11, [r2,r11] \n\t" + "ldrb.w r6, [r2,r6] \n\t" + "ldrb.w r10, [r2,r10] \n\t" + "ldr.w r0, [r1,#508] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) + "eor.w r9, r9, r3, lsl #8 \n\t" + "eor.w r9, r9, r7, lsl #16 \n\t" + "eor.w r9, r9, r5, lsl #24 \n\t" + "eor.w r10, r10, r6, lsl #8 \n\t" + "eor.w r10, r10, r11, lsl #16 \n\t" + "eor.w r10, r10, r12, lsl #24 \n\t" + "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) + + // AddRoundKey and AddRoundConst(from roundKeys) + + // r9( s9 s8 s11 s10) + // r10(s12 s14 s14 s13) + + // MixColumn + "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 + "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 + "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 + // r4 ----------------> r4 + + "ldmia.w sp!, {r0} \n\t" // pop store pointer + // r0 reload + + "str.w r3, [r0,#0] \n\t" // store ciphertext + "str.w r4, [r0,#4] \n\t" // store ciphertext + "str.w r5, [r0,#8] \n\t" // store ciphertext + "str.w r6, [r0,#12] \n\t" // store ciphertext + + "ldmia.w sp!, {r4-r12,r14} \n\t" + : + : [block] "r" (block), [roundKeys] "r" (roundKeys), [pSBOX] "" (pSBOX) + : "cc"); +} + diff --git a/romulus/Implementations/crypto_aead/romulusn1/opt32/api.h b/romulus/Implementations/crypto_aead/romulusn1/opt32/api.h new file mode 100644 index 0000000..a4aa567 --- /dev/null +++ b/romulus/Implementations/crypto_aead/romulusn1/opt32/api.h @@ -0,0 +1,5 @@ +#define CRYPTO_KEYBYTES 16 +#define CRYPTO_NSECBYTES 0 +#define CRYPTO_NPUBBYTES 16 +#define CRYPTO_ABYTES 16 +#define CRYPTO_NOOVERLAP 1 diff --git a/romulus/Implementations/crypto_aead/romulusn1/opt32/crypto_aead.h b/romulus/Implementations/crypto_aead/romulusn1/opt32/crypto_aead.h new file mode 100644 index 0000000..e2ca9b0 --- /dev/null +++ b/romulus/Implementations/crypto_aead/romulusn1/opt32/crypto_aead.h @@ -0,0 +1,18 @@ + +int crypto_aead_encrypt( + unsigned char *c, unsigned long long *clen, + const unsigned char *m, unsigned long long mlen, + const unsigned char *ad, unsigned long long adlen, + const unsigned char *nsec, + const unsigned char *npub, + const unsigned char *k +); + +int crypto_aead_decrypt( + unsigned char *m, unsigned long long *mlen, + unsigned char *nsec, + const unsigned char *c, unsigned long long clen, + const unsigned char *ad, unsigned long long adlen, + const unsigned char *npub, + const unsigned char *k +); \ No newline at end of file diff --git a/romulus/Implementations/crypto_aead/romulusn1/opt32/encrypt.c b/romulus/Implementations/crypto_aead/romulusn1/opt32/encrypt.c new file mode 100644 index 0000000..071cf2a --- /dev/null +++ b/romulus/Implementations/crypto_aead/romulusn1/opt32/encrypt.c @@ -0,0 +1,270 @@ +#include "skinny128.h" +#include "tk_schedule.h" +#include "romulus.h" +#include +#include + +//Encryption and authentication using Romulus-N1 +int crypto_aead_encrypt + (unsigned char *c, unsigned long long *clen, + const unsigned char *m, unsigned long long mlen, + const unsigned char *ad, unsigned long long adlen, + const unsigned char *nsec, + const unsigned char *npub, + const unsigned char *k) { + + int i; + u32 tmp; + skinny_128_384_tks tks; + u8 state[BLOCKBYTES], pad[BLOCKBYTES]; + (void)nsec; + + // ----------------- Initialization ----------------- + *clen = mlen + TAGBYTES; + memset(tks.tk1, 0x00, KEYBYTES); + memset(state, 0x00, BLOCKBYTES); + tks.tk1[0] = 0x01; //56-bit LFSR counter + // ----------------- Initialization ----------------- + + // ----------------- Process the associated data ----------------- + //Handle the special case of no associated data + if (adlen == 0) { + UPDATE_CTR(tks.tk1); + SET_DOMAIN(tks, 0x1A); + precompute_rtk2_3(tks.rtk2_3, npub, k); + precompute_rtk1(tks.rtk1, tks.tk1); + skinny128_384(state, state, tks.rtk1, tks.rtk2_3); + } else { + // Process all double blocks except the last + SET_DOMAIN(tks, 0x08); + while (adlen > 2*BLOCKBYTES) { + UPDATE_CTR(tks.tk1); + XOR_BLOCK(state, state, ad); + precompute_rtk2_3(tks.rtk2_3, ad + BLOCKBYTES, k); + precompute_rtk1(tks.rtk1, tks.tk1); + skinny128_384(state, state, tks.rtk1, tks.rtk2_3); + UPDATE_CTR(tks.tk1); + ad += 2*BLOCKBYTES; + adlen -= 2*BLOCKBYTES; + } + //Pad and process the left-over blocks + UPDATE_CTR(tks.tk1); + if (adlen == 2*BLOCKBYTES) { + // Left-over complete double block + XOR_BLOCK(state, state, ad); + precompute_rtk2_3(tks.rtk2_3, ad + BLOCKBYTES, k); + precompute_rtk1(tks.rtk1, tks.tk1); + skinny128_384(state, state, tks.rtk1, tks.rtk2_3); + UPDATE_CTR(tks.tk1); + SET_DOMAIN(tks, 0x18); + } else if (adlen > BLOCKBYTES) { + // Left-over partial double block + adlen -= BLOCKBYTES; + XOR_BLOCK(state, state, ad); + memcpy(pad, ad + BLOCKBYTES, adlen); + memset(pad + adlen, 0x00, 15 - adlen); + pad[15] = adlen; + precompute_rtk2_3(tks.rtk2_3, pad, k); + precompute_rtk1(tks.rtk1, tks.tk1); + skinny128_384(state, state, tks.rtk1, tks.rtk2_3); + UPDATE_CTR(tks.tk1); + SET_DOMAIN(tks, 0x1A); + } else if (adlen == BLOCKBYTES) { + // Left-over complete single block + XOR_BLOCK(state, state, ad); + SET_DOMAIN(tks, 0x18); + } else { + // Left-over partial single block + for(i =0; i < (int)adlen; i++) + state[i] ^= ad[i]; + state[15] ^= adlen; + SET_DOMAIN(tks, 0x1A); + } + precompute_rtk2_3(tks.rtk2_3, npub, k); + precompute_rtk1(tks.rtk1, tks.tk1); + skinny128_384(state, state, tks.rtk1, tks.rtk2_3); + } + // ----------------- Process the associated data ----------------- + + // ----------------- Process the plaintext ----------------- + memset(tks.tk1, 0, KEYBYTES); + tks.tk1[0] = 0x01; //init the 56-bit LFSR counter + if (mlen == 0) { + UPDATE_CTR(tks.tk1); + SET_DOMAIN(tks, 0x15); + precompute_rtk1(tks.rtk1, tks.tk1); + skinny128_384(state, state, tks.rtk1, tks.rtk2_3); + } else { + //process all blocks except the last + SET_DOMAIN(tks, 0x04); + while (mlen > BLOCKBYTES) { + RHO(state,c,m); + UPDATE_CTR(tks.tk1); + precompute_rtk1(tks.rtk1, tks.tk1); + skinny128_384(state, state, tks.rtk1, tks.rtk2_3); + c += BLOCKBYTES; + m += BLOCKBYTES; + mlen -= BLOCKBYTES; + } + //pad and process the last block + UPDATE_CTR(tks.tk1); + if (mlen < BLOCKBYTES) { + for(i = 0; i < (int)mlen; i++) { + tmp = m[i]; //use of tmp variable just in case 'c = m' + c[i] = m[i] ^ (state[i] >> 1) ^ (state[i] & 0x80) ^ (state[i] << 7); + state[i] ^= (u8)tmp; + } + state[15] ^= (u8)mlen; //padding + SET_DOMAIN(tks, 0x15); + } else { + RHO(state,c,m); + SET_DOMAIN(tks, 0x14); + } + precompute_rtk1(tks.rtk1, tks.tk1); + skinny128_384(state, state, tks.rtk1, tks.rtk2_3); + c += mlen; + } + // ----------------- Process the plaintext ----------------- + + // ----------------- Generate the tag ----------------- + G(state,state); + memcpy(c, state, TAGBYTES); + // ----------------- Generate the tag ----------------- + + return 0; +} + + +//Decryption and tag verification using Romulus-N1 +int crypto_aead_decrypt + (unsigned char *m, unsigned long long *mlen, + unsigned char *nsec, + const unsigned char *c, unsigned long long clen, + const unsigned char *ad, unsigned long long adlen, + const unsigned char *npub, + const unsigned char *k) { + + int i; + u32 tmp; + skinny_128_384_tks tks; + u8 state[BLOCKBYTES], pad[BLOCKBYTES]; + (void)nsec; + + if (clen < TAGBYTES) + return -1; + + // ----------------- Initialization ----------------- + *mlen = clen - TAGBYTES; + memset(tks.tk1, 0x00, KEYBYTES); + memset(state, 0x00, BLOCKBYTES); + tks.tk1[0] = 0x01; //56-bit LFSR counter + // ----------------- Initialization ----------------- + + // ----------------- Process the associated data ----------------- + //Handle the special case of no associated data + if (adlen == 0) { + UPDATE_CTR(tks.tk1); + SET_DOMAIN(tks, 0x1A); + precompute_rtk2_3(tks.rtk2_3, npub, k); + precompute_rtk1(tks.rtk1, tks.tk1); + skinny128_384(state, state, tks.rtk1, tks.rtk2_3); + } else { + // Process all double blocks except the last + SET_DOMAIN(tks, 0x08); + while (adlen > 2*BLOCKBYTES) { + UPDATE_CTR(tks.tk1); + XOR_BLOCK(state, state, ad); + precompute_rtk2_3(tks.rtk2_3, ad + BLOCKBYTES, k); + precompute_rtk1(tks.rtk1, tks.tk1); + skinny128_384(state, state, tks.rtk1, tks.rtk2_3); + UPDATE_CTR(tks.tk1); + ad += 2*BLOCKBYTES; + adlen -= 2*BLOCKBYTES; + } + //Pad and process the left-over blocks + UPDATE_CTR(tks.tk1); + if (adlen == 2*BLOCKBYTES) { + // Left-over complete double block + XOR_BLOCK(state, state, ad); + precompute_rtk2_3(tks.rtk2_3, ad + BLOCKBYTES, k); + precompute_rtk1(tks.rtk1, tks.tk1); + skinny128_384(state, state, tks.rtk1, tks.rtk2_3); + UPDATE_CTR(tks.tk1); + SET_DOMAIN(tks, 0x18); + } else if (adlen > BLOCKBYTES) { + // Left-over partial double block + adlen -= BLOCKBYTES; + XOR_BLOCK(state, state, ad); + memcpy(pad, ad + BLOCKBYTES, adlen); + memset(pad + adlen, 0x00, 15 - adlen); + pad[15] = adlen; + precompute_rtk2_3(tks.rtk2_3, pad, k); + precompute_rtk1(tks.rtk1, tks.tk1); + skinny128_384(state, state, tks.rtk1, tks.rtk2_3); + UPDATE_CTR(tks.tk1); + SET_DOMAIN(tks, 0x1A); + } else if (adlen == BLOCKBYTES) { + // Left-over complete single block + XOR_BLOCK(state, state, ad); + SET_DOMAIN(tks, 0x18); + } else { + // Left-over partial single block + for(i =0; i < (int)adlen; i++) + state[i] ^= ad[i]; + state[15] ^= adlen; + SET_DOMAIN(tks, 0x1A); + } + precompute_rtk2_3(tks.rtk2_3, npub, k); + precompute_rtk1(tks.rtk1, tks.tk1); + skinny128_384(state, state, tks.rtk1, tks.rtk2_3); + } + // ----------------- Process the associated data ----------------- + + // ----------------- Process the ciphertext ----------------- + clen -= TAGBYTES; + memset(tks.tk1, 0, KEYBYTES); + tks.tk1[0] = 0x01; //init the 56-bit LFSR counter + if (clen == 0) { + UPDATE_CTR(tks.tk1); + SET_DOMAIN(tks, 0x15); + precompute_rtk1(tks.rtk1, tks.tk1); + skinny128_384(state, state, tks.rtk1, tks.rtk2_3); + } else { + //process all blocks except the last + SET_DOMAIN(tks, 0x04); + while (clen > BLOCKBYTES) { + RHO_INV(state,c,m); + UPDATE_CTR(tks.tk1); + precompute_rtk1(tks.rtk1, tks.tk1); + skinny128_384(state, state, tks.rtk1, tks.rtk2_3); + c += BLOCKBYTES; + m += BLOCKBYTES; + clen -= BLOCKBYTES; + } + //pad and process the last block + UPDATE_CTR(tks.tk1); + if (clen < BLOCKBYTES) { + for(i = 0; i < (int)clen; i++) { + m[i] = c[i] ^ (state[i] >> 1) ^ (state[i] & 0x80) ^ (state[i] << 7); + state[i] ^= m[i]; + } + state[15] ^= (u8)clen; //padding + SET_DOMAIN(tks, 0x15); + } else { + RHO_INV(state,c,m); + SET_DOMAIN(tks, 0x14); + } + precompute_rtk1(tks.rtk1, tks.tk1); + skinny128_384(state, state, tks.rtk1, tks.rtk2_3); + } + // ----------------- Process the plaintext ----------------- + + // ----------------- Generate and check the tag ----------------- + G(state,state); + tmp = 0; + for(i = 0; i < TAGBYTES; i++) + tmp |= state[i] ^ c[clen+i]; //constant-time tag comparison + // ----------------- Generate and check the tag ----------------- + + return tmp; +} \ No newline at end of file diff --git a/romulus/Implementations/crypto_aead/romulusn1/opt32/romulus.h b/romulus/Implementations/crypto_aead/romulusn1/opt32/romulus.h new file mode 100644 index 0000000..3a70219 --- /dev/null +++ b/romulus/Implementations/crypto_aead/romulusn1/opt32/romulus.h @@ -0,0 +1,68 @@ +#ifndef ROMULUSN1_H_ +#define ROMULUSN1_H_ + +#include "skinny128.h" + +typedef unsigned char u8; +typedef unsigned int u32; +typedef struct { + u8 tk1[16]; //to manipulate tk1 byte-wise + u32 rtk1[4*16]; //to avoid tk schedule recomputations + u32 rtk2_3[4*SKINNY128_384_ROUNDS]; //all round tweakeys +} skinny_128_384_tks; + +#define TAGBYTES 16 +#define KEYBYTES 16 +#define BLOCKBYTES 16 + +#define SET_DOMAIN(tks, domain) ((tks).tk1[7] = (domain)) + +//G as defined in the Romulus specification in a 32-bit word-wise manner +#define G(x,y) ({ \ + tmp = ((u32*)(y))[0]; \ + ((u32*)(x))[0] = (tmp >> 1 & 0x7f7f7f7f) ^ ((tmp ^ (tmp << 7)) & 0x80808080); \ + tmp = ((u32*)(y))[1]; \ + ((u32*)(x))[1] = (tmp >> 1 & 0x7f7f7f7f) ^ ((tmp ^ (tmp << 7)) & 0x80808080); \ + tmp = ((u32*)(y))[2]; \ + ((u32*)(x))[2] = (tmp >> 1 & 0x7f7f7f7f) ^ ((tmp ^ (tmp << 7)) & 0x80808080); \ + tmp = ((u32*)(y))[3]; \ + ((u32*)(x))[3] = (tmp >> 1 & 0x7f7f7f7f) ^ ((tmp ^ (tmp << 7)) & 0x80808080); \ +}) + +//update the counter in tk1 in a 32-bit word-wise manner +#define UPDATE_CTR(tk1) ({ \ + tmp = ((u32*)(tk1))[1]; \ + ((u32*)(tk1))[1] = (tmp << 1) & 0x00ffffff; \ + ((u32*)(tk1))[1] |= (((u32*)(tk1))[0] >> 31); \ + ((u32*)(tk1))[1] |= tmp & 0xff000000; \ + ((u32*)(tk1))[0] <<= 1; \ + if ((tmp >> 23) & 0x01) \ + ((u32*)(tk1))[0] ^= 0x95; \ +}) + +//x <- y ^ z for 128-bit blocks +#define XOR_BLOCK(x,y,z) ({ \ + ((u32*)(x))[0] = ((u32*)(y))[0] ^ ((u32*)(z))[0]; \ + ((u32*)(x))[1] = ((u32*)(y))[1] ^ ((u32*)(z))[1]; \ + ((u32*)(x))[2] = ((u32*)(y))[2] ^ ((u32*)(z))[2]; \ + ((u32*)(x))[3] = ((u32*)(y))[3] ^ ((u32*)(z))[3]; \ +}) + + +//Rho as defined in the Romulus specification +//use pad as a tmp variable in case y = z +#define RHO(x,y,z) ({ \ + G(pad,x); \ + XOR_BLOCK(y, pad, z); \ + XOR_BLOCK(x, x, z); \ +}) + +//Rho inverse as defined in the Romulus specification +//use pad as a tmp variable in case y = z +#define RHO_INV(x, y, z) ({ \ + G(pad, x); \ + XOR_BLOCK(z, pad, y); \ + XOR_BLOCK(x, x, z); \ +}) + +#endif // ROMULUSN1_H_ \ No newline at end of file diff --git a/romulus/Implementations/crypto_aead/romulusn1/opt32/skinny128.c b/romulus/Implementations/crypto_aead/romulusn1/opt32/skinny128.c new file mode 100644 index 0000000..87718e3 --- /dev/null +++ b/romulus/Implementations/crypto_aead/romulusn1/opt32/skinny128.c @@ -0,0 +1,110 @@ +/****************************************************************************** +* Constant-time implementation of the SKINNY tweakable block ciphers. +* +* This implementation doesn't compute the ShiftRows operation. Some masks and +* shifts are applied during the MixColumns operation so that the proper bits +* are XORed together. Moreover, the row permutation within the MixColumns +* is omitted, as well as the bit permutation at the end of the Sbox. The rows +* are synchronized with the classical after only 4 rounds. Therefore, this +* implementation relies on a "QUADRUPLE_ROUND" routine. +* +* The Sbox computation takes advantage of some symmetry in the 8-bit Sbox to +* turn it into a 4-bit S-box computation. Although the last bit permutation +* within the Sbox is not computed, the bit ordering is synchronized with the +* classical representation after 2 calls. +* +* @author Alexandre Adomnicai, Nanyang Technological University, +* alexandre.adomnicai@ntu.edu.sg +* +* @date May 2020 +******************************************************************************/ +#include +#include +#include "skinny128.h" +#include "tk_schedule.h" + +/****************************************************************************** +* The MixColumns computation for rounds i such that (i % 4) == 0 +******************************************************************************/ +void mixcolumns_0(u32* state) { + u32 tmp; + for(int i = 0; i < 4; i++) { + tmp = ROR(state[i],24) & 0x0c0c0c0c; + state[i] ^= ROR(tmp,30); + tmp = ROR(state[i],16) & 0xc0c0c0c0; + state[i] ^= ROR(tmp,4); + tmp = ROR(state[i],8) & 0x0c0c0c0c; + state[i] ^= ROR(tmp,2); + } +} + +/****************************************************************************** +* The MixColumns computation for rounds i such that (i % 4) == 1 +******************************************************************************/ +void mixcolumns_1(u32* state) { + u32 tmp; + for(int i = 0; i < 4; i++) { + tmp = ROR(state[i],16) & 0x30303030; + state[i] ^= ROR(tmp,30); + tmp = state[i] & 0x03030303; + state[i] ^= ROR(tmp,28); + tmp = ROR(state[i],16) & 0x30303030; + state[i] ^= ROR(tmp,2); + } +} + +/****************************************************************************** +* The MixColumns computation for rounds i such that (i % 4) == 2 +******************************************************************************/ +void mixcolumns_2(u32* state) { + u32 tmp; + for(int i = 0; i < 4; i++) { + tmp = ROR(state[i],8) & 0xc0c0c0c0; + state[i] ^= ROR(tmp,6); + tmp = ROR(state[i],16) & 0x0c0c0c0c; + state[i] ^= ROR(tmp,28); + tmp = ROR(state[i],24) & 0xc0c0c0c0; + state[i] ^= ROR(tmp,2); + } +} + +/****************************************************************************** +* The MixColumns computation for rounds i such that (i % 4) == 3 +******************************************************************************/ +void mixcolumns_3(u32* state) { + u32 tmp; + for(int i = 0; i < 4; i++) { + tmp = state[i] & 0x03030303; + state[i] ^= ROR(tmp,30); + tmp = state[i] & 0x30303030; + state[i] ^= ROR(tmp,4); + tmp = state[i] & 0x03030303; + state[i] ^= ROR(tmp,26); + } +} + +/****************************************************************************** +* Encryption of a single block without any operation mode using SKINNY-128-384. +* RTK1 and RTK2_3 are given separately to take advantage of the fact that +* TK2 and TK3 remains the same through the entire data encryption/decryption. +******************************************************************************/ +void skinny128_384(u8* ctext, const u8* ptext, const u32* rtk1, const u32* rtk2_3) { + u32 tmp; // used in SWAPMOVE macro + u32 state[4]; // 128-bit state + packing(state, ptext); // from byte to bitsliced representation + QUADRUPLE_ROUND(state, rtk1, rtk2_3); + QUADRUPLE_ROUND(state, rtk1+16, rtk2_3+16); + QUADRUPLE_ROUND(state, rtk1+32, rtk2_3+32); + QUADRUPLE_ROUND(state, rtk1+48, rtk2_3+48); + QUADRUPLE_ROUND(state, rtk1, rtk2_3+64); + QUADRUPLE_ROUND(state, rtk1+16, rtk2_3+80); + QUADRUPLE_ROUND(state, rtk1+32, rtk2_3+96); + QUADRUPLE_ROUND(state, rtk1+48, rtk2_3+112); + QUADRUPLE_ROUND(state, rtk1, rtk2_3+128); + QUADRUPLE_ROUND(state, rtk1+16, rtk2_3+144); + QUADRUPLE_ROUND(state, rtk1+32, rtk2_3+160); + QUADRUPLE_ROUND(state, rtk1+48, rtk2_3+176); + QUADRUPLE_ROUND(state, rtk1, rtk2_3+192); + QUADRUPLE_ROUND(state, rtk1+16, rtk2_3+208); + unpacking(ctext, state); // from bitsliced to byte representation +} \ No newline at end of file diff --git a/romulus/Implementations/crypto_aead/romulusn1/opt32/skinny128.h b/romulus/Implementations/crypto_aead/romulusn1/opt32/skinny128.h new file mode 100644 index 0000000..dab6338 --- /dev/null +++ b/romulus/Implementations/crypto_aead/romulusn1/opt32/skinny128.h @@ -0,0 +1,94 @@ +#ifndef SKINNY128_H_ +#define SKINNY128_H_ + +typedef unsigned char u8; +typedef unsigned int u32; + +#define SKINNY128_384_ROUNDS 56 + +#define QUADRUPLE_ROUND(state, rtk1, rtk2_3) ({ \ + state[3] ^= ~(state[0] | state[1]); \ + SWAPMOVE(state[2], state[1], 0x55555555, 1); \ + SWAPMOVE(state[3], state[2], 0x55555555, 1); \ + state[1] ^= ~(state[2] | state[3]); \ + SWAPMOVE(state[1], state[0], 0x55555555, 1); \ + SWAPMOVE(state[0], state[3], 0x55555555, 1); \ + state[3] ^= ~(state[0] | state[1]); \ + SWAPMOVE(state[2], state[1], 0x55555555, 1); \ + SWAPMOVE(state[3], state[2], 0x55555555, 1); \ + state[1] ^= (state[2] | state[3]); \ + SWAPMOVE(state[3], state[0], 0x55555555, 0); \ + state[0] ^= (rtk1)[0]; \ + state[1] ^= (rtk1)[1]; \ + state[2] ^= (rtk1)[2]; \ + state[3] ^= (rtk1)[3]; \ + state[0] ^= (rtk2_3)[0]; \ + state[1] ^= (rtk2_3)[1]; \ + state[2] ^= (rtk2_3)[2]; \ + state[3] ^= (rtk2_3)[3]; \ + mixcolumns_0(state); \ + state[1] ^= ~(state[2] | state[3]); \ + SWAPMOVE(state[1], state[0], 0x55555555, 1); \ + SWAPMOVE(state[0], state[3], 0x55555555, 1); \ + state[3] ^= ~(state[0] | state[1]); \ + SWAPMOVE(state[2], state[1], 0x55555555, 1); \ + SWAPMOVE(state[3], state[2], 0x55555555, 1); \ + state[1] ^= ~(state[2] | state[3]); \ + SWAPMOVE(state[1], state[0], 0x55555555, 1); \ + SWAPMOVE(state[0], state[3], 0x55555555, 1); \ + state[3] ^= (state[0] | state[1]); \ + SWAPMOVE(state[1], state[2], 0x55555555, 0); \ + state[0] ^= (rtk1)[4]; \ + state[1] ^= (rtk1)[5]; \ + state[2] ^= (rtk1)[6]; \ + state[3] ^= (rtk1)[7]; \ + state[0] ^= (rtk2_3)[4]; \ + state[1] ^= (rtk2_3)[5]; \ + state[2] ^= (rtk2_3)[6]; \ + state[3] ^= (rtk2_3)[7]; \ + mixcolumns_1(state); \ + state[3] ^= ~(state[0] | state[1]); \ + SWAPMOVE(state[2], state[1], 0x55555555, 1); \ + SWAPMOVE(state[3], state[2], 0x55555555, 1); \ + state[1] ^= ~(state[2] | state[3]); \ + SWAPMOVE(state[1], state[0], 0x55555555, 1); \ + SWAPMOVE(state[0], state[3], 0x55555555, 1); \ + state[3] ^= ~(state[0] | state[1]); \ + SWAPMOVE(state[2], state[1], 0x55555555, 1); \ + SWAPMOVE(state[3], state[2], 0x55555555, 1); \ + state[1] ^= (state[2] | state[3]); \ + SWAPMOVE(state[3], state[0], 0x55555555, 0); \ + state[0] ^= (rtk1)[8]; \ + state[1] ^= (rtk1)[9]; \ + state[2] ^= (rtk1)[10]; \ + state[3] ^= (rtk1)[11]; \ + state[0] ^= (rtk2_3)[8]; \ + state[1] ^= (rtk2_3)[9]; \ + state[2] ^= (rtk2_3)[10]; \ + state[3] ^= (rtk2_3)[11]; \ + mixcolumns_2(state); \ + state[1] ^= ~(state[2] | state[3]); \ + SWAPMOVE(state[1], state[0], 0x55555555, 1); \ + SWAPMOVE(state[0], state[3], 0x55555555, 1); \ + state[3] ^= ~(state[0] | state[1]); \ + SWAPMOVE(state[2], state[1], 0x55555555, 1); \ + SWAPMOVE(state[3], state[2], 0x55555555, 1); \ + state[1] ^= ~(state[2] | state[3]); \ + SWAPMOVE(state[1], state[0], 0x55555555, 1); \ + SWAPMOVE(state[0], state[3], 0x55555555, 1); \ + state[3] ^= (state[0] | state[1]); \ + SWAPMOVE(state[1], state[2], 0x55555555, 0); \ + state[0] ^= (rtk1)[12]; \ + state[1] ^= (rtk1)[13]; \ + state[2] ^= (rtk1)[14]; \ + state[3] ^= (rtk1)[15]; \ + state[0] ^= (rtk2_3)[12]; \ + state[1] ^= (rtk2_3)[13]; \ + state[2] ^= (rtk2_3)[14]; \ + state[3] ^= (rtk2_3)[15]; \ + mixcolumns_3(state); \ +}) + +void skinny128_384(u8* ctext, const u8* ptext, const u32* rtk1, const u32* rtk2_3); + +#endif // SKINNY128_H_ \ No newline at end of file diff --git a/romulus/Implementations/crypto_aead/romulusn1/opt32/tk_schedule.c b/romulus/Implementations/crypto_aead/romulusn1/opt32/tk_schedule.c new file mode 100644 index 0000000..c818cf2 --- /dev/null +++ b/romulus/Implementations/crypto_aead/romulusn1/opt32/tk_schedule.c @@ -0,0 +1,379 @@ +/****************************************************************************** +* Implementation of the SKINNY tweakey schedule to match fixslicing. +* +* @author Alexandre Adomnicai, Nanyang Technological University, +* alexandre.adomnicai@ntu.edu.sg +* +* @date May 2020 +******************************************************************************/ +#include +#include //for memcmp +#include "tk_schedule.h" +#include "skinny128.h" + +typedef unsigned char u8; +typedef unsigned int u32; + +/****************************************************************************** +* The round constants according to the new representation. +******************************************************************************/ +u32 rconst_32_bs[224] = { + 0x00000004, 0xffffffbf, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x10000100, 0xfffffeff, 0x44000000, 0xfbffffff, 0x00000000, 0x04000000, + 0x00100000, 0x00100000, 0x00100001, 0xffefffff, 0x00440000, 0xffafffff, + 0x00400000, 0x00400000, 0x01000000, 0x01000000, 0x01401000, 0xffbfffff, + 0x01004000, 0xfefffbff, 0x00000400, 0x00000400, 0x00000010, 0x00000000, + 0x00010410, 0xfffffbef, 0x00000054, 0xffffffaf, 0x00000000, 0x00000040, + 0x00000100, 0x00000100, 0x10000140, 0xfffffeff, 0x44000000, 0xfffffeff, + 0x04000000, 0x04000000, 0x00100000, 0x00100000, 0x04000001, 0xfbffffff, + 0x00140000, 0xffafffff, 0x00400000, 0x00000000, 0x00000000, 0x00000000, + 0x01401000, 0xfebfffff, 0x01004400, 0xfffffbff, 0x00000000, 0x00000400, + 0x00000010, 0x00000010, 0x00010010, 0xffffffff, 0x00000004, 0xffffffaf, + 0x00000040, 0x00000040, 0x00000100, 0x00000000, 0x10000140, 0xffffffbf, + 0x40000100, 0xfbfffeff, 0x00000000, 0x04000000, 0x00100000, 0x00000000, + 0x04100001, 0xffefffff, 0x00440000, 0xffefffff, 0x00000000, 0x00400000, + 0x01000000, 0x01000000, 0x00401000, 0xffffffff, 0x00004000, 0xfeffffff, + 0x00000400, 0x00000000, 0x00000000, 0x00000000, 0x00010400, 0xfffffbff, + 0x00000014, 0xffffffbf, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x10000100, 0xffffffff, 0x40000000, 0xfbffffff, 0x00000000, 0x04000000, + 0x00100000, 0x00000000, 0x00100001, 0xffefffff, 0x00440000, 0xffafffff, + 0x00000000, 0x00400000, 0x01000000, 0x01000000, 0x01401000, 0xffffffff, + 0x00004000, 0xfeffffff, 0x00000400, 0x00000400, 0x00000010, 0x00000000, + 0x00010400, 0xfffffbff, 0x00000014, 0xffffffaf, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x10000140, 0xfffffeff, 0x44000000, 0xffffffff, + 0x00000000, 0x04000000, 0x00100000, 0x00100000, 0x00000001, 0xffefffff, + 0x00440000, 0xffafffff, 0x00400000, 0x00000000, 0x00000000, 0x01000000, + 0x01401000, 0xffbfffff, 0x01004000, 0xfffffbff, 0x00000400, 0x00000400, + 0x00000010, 0x00000000, 0x00010010, 0xfffffbff, 0x00000014, 0xffffffef, + 0x00000000, 0x00000040, 0x00000100, 0x00000000, 0x10000040, 0xfffffeff, + 0x44000000, 0xfffffeff, 0x00000000, 0x00000000, 0x00000000, 0x00100000, + 0x04000001, 0xffffffff, 0x00040000, 0xffffffff, 0x00400000, 0x00000000, + 0x00000000, 0x00000000, 0x00001000, 0xfebfffff, 0x01004400, 0xffffffff, + 0x00000000, 0x00000000, 0x00000000, 0x00000010, 0x00010000, 0xffffffff, + 0x00000004, 0xffffffbf, 0x00000040, 0x00000000, 0x00000000, 0x00000000, + 0x10000100, 0xfffffebf, 0x44000100, 0xffffffff, 0x00000000, 0x04000000, + 0x00100000, 0x00100000, 0x00000001, 0xffffffff, 0x00040000, 0xffafffff, + 0x00400000, 0x00000000, 0x00000000, 0x00000000, 0x01401000, 0xffbfffff, + 0x01004000, 0xfffffbff, 0x00000000, 0x00000400, 0x00000010, 0x00000000, + 0x00010010, 0xffffffff +}; + +/****************************************************************************** +* Pack the input into the bitsliced representation +* 24 28 56 60 88 92 120 124 | ... | 0 4 32 36 64 68 96 100 +* 25 29 57 61 89 93 121 125 | ... | 1 5 33 37 65 69 97 101 +* 26 30 58 62 90 94 122 126 | ... | 2 6 34 38 66 70 98 102 +* 27 31 59 63 91 95 123 127 | ... | 3 7 35 39 67 71 99 103 +******************************************************************************/ +void packing(u32* out, const u8* in) { + u32 tmp; + LE_LOAD(out, in); + LE_LOAD(out + 1, in + 8); + LE_LOAD(out + 2, in + 4); + LE_LOAD(out + 3, in + 12); + SWAPMOVE(out[0], out[0], 0x0a0a0a0a, 3); + SWAPMOVE(out[1], out[1], 0x0a0a0a0a, 3); + SWAPMOVE(out[2], out[2], 0x0a0a0a0a, 3); + SWAPMOVE(out[3], out[3], 0x0a0a0a0a, 3); + SWAPMOVE(out[2], out[0], 0x30303030, 2); + SWAPMOVE(out[1], out[0], 0x0c0c0c0c, 4); + SWAPMOVE(out[3], out[0], 0x03030303, 6); + SWAPMOVE(out[1], out[2], 0x0c0c0c0c, 2); + SWAPMOVE(out[3], out[2], 0x03030303, 4); + SWAPMOVE(out[3], out[1], 0x03030303, 2); +} + +/****************************************************************************** +* Unpack the input to a byte-wise representation +******************************************************************************/ +void unpacking(u8* out, u32 *in) { + u32 tmp; + SWAPMOVE(in[3], in[1], 0x03030303, 2); + SWAPMOVE(in[3], in[2], 0x03030303, 4); + SWAPMOVE(in[1], in[2], 0x0c0c0c0c, 2); + SWAPMOVE(in[3], in[0], 0x03030303, 6); + SWAPMOVE(in[1], in[0], 0x0c0c0c0c, 4); + SWAPMOVE(in[2], in[0], 0x30303030, 2); + SWAPMOVE(in[0], in[0], 0x0a0a0a0a, 3); + SWAPMOVE(in[1], in[1], 0x0a0a0a0a, 3); + SWAPMOVE(in[2], in[2], 0x0a0a0a0a, 3); + SWAPMOVE(in[3], in[3], 0x0a0a0a0a, 3); + LE_STORE(out, in[0]); + LE_STORE(out + 8, in[1]); + LE_STORE(out + 4, in[2]); + LE_STORE(out + 12, in[3]); +} + +/****************************************************************************** +* 0 4 1 5 +* 1 5 ---> 2 6 +* 2 6 3 7 +* 3 7 4 0 +******************************************************************************/ +void lfsr2_bs(u32* tk) { + u32 tmp; + tmp = tk[0] ^ (tk[2] & 0xaaaaaaaa); + tmp = ((tmp & 0xaaaaaaaa) >> 1) | ((tmp << 1) & 0xaaaaaaaa); + tk[0] = tk[1]; + tk[1] = tk[2]; + tk[2] = tk[3]; + tk[3] = tmp; +} + +/****************************************************************************** +* 0 4 7 3 +* 1 5 ---> 0 4 +* 2 6 1 5 +* 3 7 2 6 +******************************************************************************/ +void lfsr3_bs(u32* tk) { + u32 tmp; + tmp = tk[3] ^ ((tk[1] & 0xaaaaaaaa) >> 1); + tmp = ((tmp & 0xaaaaaaaa) >> 1) | ((tmp << 1) & 0xaaaaaaaa); + tk[3] = tk[2]; + tk[2] = tk[1]; + tk[1] = tk[0]; + tk[0] = tmp; +} + +/****************************************************************************** +* Apply the permutation in a bitsliced manner, twice +******************************************************************************/ +void permute_tk_2(u32* tk) { + u32 tmp; + for(int i =0; i < 4; i++) { + tmp = tk[i]; + tk[i] = ROR(tmp,14) & 0xcc00cc00; + tk[i] |= (tmp & 0x000000ff) << 16; + tk[i] |= (tmp & 0xcc000000)>> 2; + tk[i] |= (tmp & 0x0033cc00) >> 8; + tk[i] |= (tmp & 0x00cc0000) >>18; + } +} + +/****************************************************************************** +* Apply the permutation in a bitsliced manner, 4 times +******************************************************************************/ +void permute_tk_4(u32* tk) { + u32 tmp; + for(int i =0; i < 4; i++) { + tmp = tk[i]; + tk[i] = ROR(tmp,22) & 0xcc0000cc; + tk[i] |= ROR(tmp,16) & 0x3300cc00; + tk[i] |= ROR(tmp, 24) & 0x00cc3300; + tk[i] |= (tmp & 0x00cc00cc) >> 2; + } +} + +/****************************************************************************** +* Apply the permutation in a bitsliced manner, 6 times +******************************************************************************/ +void permute_tk_6(u32* tk) { + u32 tmp; + for(int i =0; i < 4; i++) { + tmp = tk[i]; + tk[i] = ROR(tmp,6) & 0xcccc0000; + tk[i] |= ROR(tmp,24) & 0x330000cc; + tk[i] |= ROR(tmp,10) & 0x3333; + tk[i] |= (tmp & 0xcc) << 14; + tk[i] |= (tmp & 0x3300) << 2; + } +} + +/****************************************************************************** +* Apply the permutation in a bitsliced manner, 8 times +******************************************************************************/ +void permute_tk_8(u32* tk) { + u32 tmp; + for(int i =0; i < 4; i++) { + tmp = tk[i]; + tk[i] = ROR(tmp,24) & 0xcc000033; + tk[i] |= ROR(tmp,8) & 0x33cc0000; + tk[i] |= ROR(tmp,26) & 0x00333300; + tk[i] |= (tmp & 0x00333300) >> 6; + } +} + +/****************************************************************************** +* Apply the permutation in a bitsliced manner, 10 times +******************************************************************************/ +void permute_tk_10(u32* tk) { + u32 tmp; + for(int i =0; i < 4; i++) { + tmp = tk[i]; + tk[i] = ROR(tmp,8) & 0xcc330000; + tk[i] |= ROR(tmp,26) & 0x33000033; + tk[i] |= ROR(tmp,22) & 0x00cccc00; + tk[i] |= (tmp & 0x00330000) >> 14; + tk[i] |= (tmp & 0xcc00) >> 2; + } +} + +/****************************************************************************** +* Apply the permutation in a bitsliced manner, 12 times +******************************************************************************/ +void permute_tk_12(u32* tk) { + u32 tmp; + for(int i =0; i < 4; i++) { + tmp = tk[i]; + tk[i] = ROR(tmp,8) & 0xcc33; + tk[i] |= ROR(tmp,30) & 0x00cc00cc; + tk[i] |= ROR(tmp,10) & 0x33330000; + tk[i] |= ROR(tmp,16) & 0xcc003300; + } +} + +/****************************************************************************** +* Apply the permutation in a bitsliced manner, 14 times +******************************************************************************/ +void permute_tk_14(u32* tk) { + u32 tmp; + for(int i =0; i < 4; i++) { + tmp = tk[i]; + tk[i] = ROR(tmp,24) & 0x0033cc00; + tk[i] |= ROR(tmp,14) & 0x00cc0000; + tk[i] |= ROR(tmp,30) & 0xcc000000; + tk[i] |= ROR(tmp,16) & 0x000000ff; + tk[i] |= ROR(tmp,18) & 0x33003300; + } +} + +/****************************************************************************** +* Precompute all LFSRs on TK2 +******************************************************************************/ +void precompute_lfsr_tk2(u32* tk, const u8* key, const int rounds) { + u32 tk2[4]; + packing(tk2, key); + memcpy(tk, tk2, 16); + for(int i = 0 ; i < rounds; i+=2) { + lfsr2_bs(tk2); + memcpy(tk+i*4+4, tk2, 16); + } +} + +/****************************************************************************** +* Precompute all LFSRs on TK3 +******************************************************************************/ +void precompute_lfsr_tk3(u32* tk, const u8* key, const int rounds) { + u32 tk3[4]; + packing(tk3, key); + tk[0] ^= tk3[0]; + tk[1] ^= tk3[1]; + tk[2] ^= tk3[2]; + tk[3] ^= tk3[3]; + for(int i = 0 ; i < rounds; i+=2) { + lfsr3_bs(tk3); + tk[i*4+4] ^= tk3[0]; + tk[i*4+5] ^= tk3[1]; + tk[i*4+6] ^= tk3[2]; + tk[i*4+7] ^= tk3[3]; + } +} + +/****************************************************************************** +* XOR TK with TK1 before applying the permutations. +* The key is then rearranged to match the barrel shiftrows representation. +******************************************************************************/ +void permute_tk(u32* tk, const u8* key, const int rounds) { + u32 test; + u32 tk1[4], tmp[4]; + packing(tk1, key); + memcpy(tmp, tk, 16); + tmp[0] ^= tk1[0]; + tmp[1] ^= tk1[1]; + tmp[2] ^= tk1[2]; + tmp[3] ^= tk1[3]; + for(int i = 0 ; i < rounds; i += 8) { + test = (i % 16 < 8) ? 1 : 0; //to apply the right power of P + tk[i*4] = tmp[2] & 0xf0f0f0f0; + tk[i*4+1] = tmp[3] & 0xf0f0f0f0; + tk[i*4+2] = tmp[0] & 0xf0f0f0f0; + tk[i*4+3] = tmp[1] & 0xf0f0f0f0; + memcpy(tmp, tk+i*4+4, 16); + XOR_BLOCKS(tmp, tk1); + if (test) + permute_tk_2(tmp); // applies P^2 + else + permute_tk_10(tmp); // applies P^10 + tk[i*4+4] = ROR(tmp[0],26) & 0xc3c3c3c3; + tk[i*4+5] = ROR(tmp[1],26) & 0xc3c3c3c3; + tk[i*4+6] = ROR(tmp[2],26) & 0xc3c3c3c3; + tk[i*4+7] = ROR(tmp[3],26) & 0xc3c3c3c3; + tk[i*4+8] = ROR(tmp[2],28) & 0x03030303; + tk[i*4+8] |= ROR(tmp[2],12) & 0x0c0c0c0c; + tk[i*4+9] = ROR(tmp[3],28) & 0x03030303; + tk[i*4+9] |= ROR(tmp[3],12) & 0x0c0c0c0c; + tk[i*4+10] = ROR(tmp[0],28) & 0x03030303; + tk[i*4+10] |= ROR(tmp[0],12) & 0x0c0c0c0c; + tk[i*4+11] = ROR(tmp[1],28) & 0x03030303; + tk[i*4+11] |= ROR(tmp[1],12) & 0x0c0c0c0c; + memcpy(tmp, tk+i*4+12, 16); + XOR_BLOCKS(tmp, tk1); + if (test) + permute_tk_4(tmp); // applies P^4 + else + permute_tk_12(tmp); // applies P^12 + for(int j = 0; j < 4; j++) { + tk[i*4+12+j] = ROR(tmp[j],14) & 0x30303030; + tk[i*4+12+j] |= ROR(tmp[j],6) & 0x0c0c0c0c; + } + tk[i*4+16] = ROR(tmp[2], 16) & 0xf0f0f0f0; + tk[i*4+17] = ROR(tmp[3], 16) & 0xf0f0f0f0; + tk[i*4+18] = ROR(tmp[0], 16) & 0xf0f0f0f0; + tk[i*4+19] = ROR(tmp[1], 16) & 0xf0f0f0f0; + memcpy(tmp, tk+i*4+20, 16); + XOR_BLOCKS(tmp, tk1); + if (test) + permute_tk_6(tmp); // applies P^6 + else + permute_tk_14(tmp); // applies P^14 + tk[i*4+20] = ROR(tmp[0], 10) & 0xc3c3c3c3; + tk[i*4+21] = ROR(tmp[1], 10) & 0xc3c3c3c3; + tk[i*4+22] = ROR(tmp[2], 10) & 0xc3c3c3c3; + tk[i*4+23] = ROR(tmp[3], 10) & 0xc3c3c3c3; + tk[i*4+24] = ROR(tmp[2],12) & 0x03030303; + tk[i*4+24] |= ROR(tmp[2],28) & 0x0c0c0c0c; + tk[i*4+25] = ROR(tmp[3],12) & 0x03030303; + tk[i*4+25] |= ROR(tmp[3],28) & 0x0c0c0c0c; + tk[i*4+26] = ROR(tmp[0],12) & 0x03030303; + tk[i*4+26] |= ROR(tmp[0],28) & 0x0c0c0c0c; + tk[i*4+27] = ROR(tmp[1],12) & 0x03030303; + tk[i*4+27] |= ROR(tmp[1],28) & 0x0c0c0c0c; + memcpy(tmp, tk+i*4+28, 16); + XOR_BLOCKS(tmp, tk1); + if (test) + permute_tk_8(tmp); // applies P^8 + for(int j = 0; j < 4; j++) { + tk[i*4+28+j] = ROR(tmp[j],30) & 0x30303030; + tk[i*4+28+j] |= ROR(tmp[j],22) & 0x0c0c0c0c; + } + if (test && (i+8 < rounds)) { //only if next loop iteration + tk[i*4+32] = tmp[2] & 0xf0f0f0f0; + tk[i*4+33] = tmp[3] & 0xf0f0f0f0; + tk[i*4+34] = tmp[0] & 0xf0f0f0f0; + tk[i*4+35] = tmp[1] & 0xf0f0f0f0; + } + } +} + +/****************************************************************************** +* Precompute LFSR2(TK2) ^ LFSR3(TK3) ^ rconst. +******************************************************************************/ +void precompute_rtk2_3(u32* rtk, const u8* tk2, const u8 * tk3) { + memset(rtk, 0x00, 16*SKINNY128_384_ROUNDS); + precompute_lfsr_tk2(rtk, tk2, SKINNY128_384_ROUNDS); + precompute_lfsr_tk3(rtk, tk3, SKINNY128_384_ROUNDS); + permute_tk(rtk, (u8*)(rtk+8), SKINNY128_384_ROUNDS); // rtk+8 is NULL + for(int i = 0; i < SKINNY128_384_ROUNDS; i++) { // add rconsts + for(int j = 0; j < 4; j++) + rtk[i*4+j] ^= rconst_32_bs[i*4+j]; + } +} + +/****************************************************************************** +* Precompute RTK1. +******************************************************************************/ +void precompute_rtk1(u32* rtk1, const u8* tk1) { + memset(rtk1, 0x00, 16*16); + permute_tk(rtk1, tk1, 16); +} \ No newline at end of file diff --git a/romulus/Implementations/crypto_aead/romulusn1/opt32/tk_schedule.h b/romulus/Implementations/crypto_aead/romulusn1/opt32/tk_schedule.h new file mode 100644 index 0000000..5615cbd --- /dev/null +++ b/romulus/Implementations/crypto_aead/romulusn1/opt32/tk_schedule.h @@ -0,0 +1,39 @@ +#ifndef TK_SCHEDULE_H_ +#define TK_SCHEDULE_H_ + +typedef unsigned char u8; +typedef unsigned int u32; + +void packing(u32* out, const u8* in); +void unpacking(u8* out, u32 *in); +void precompute_rtk2_3(u32* rtk, const u8* tk2, const u8* tk3); +void precompute_rtk1(u32* rtk1, const u8* tk1); + +#define ROR(x,y) (((x) >> (y)) | ((x) << (32 - (y)))) + +#define XOR_BLOCKS(x,y) ({ \ + (x)[0] ^= (y)[0]; \ + (x)[1] ^= (y)[1]; \ + (x)[2] ^= (y)[2]; \ + (x)[3] ^= (y)[3]; \ +}) + +#define SWAPMOVE(a, b, mask, n) ({ \ + tmp = (b ^ (a >> n)) & mask; \ + b ^= tmp; \ + a ^= (tmp << n); \ +}) + +#define LE_LOAD(x, y) \ + *(x) = (((u32)(y)[3] << 24) | \ + ((u32)(y)[2] << 16) | \ + ((u32)(y)[1] << 8) | \ + (y)[0]); + +#define LE_STORE(x, y) \ + (x)[0] = (y) & 0xff; \ + (x)[1] = ((y) >> 8) & 0xff; \ + (x)[2] = ((y) >> 16) & 0xff; \ + (x)[3] = (y) >> 24; + +#endif // TK_SCHEDULE_H_ \ No newline at end of file diff --git a/romulus/Implementations/crypto_aead/romulusn1/ref/api.h b/romulus/Implementations/crypto_aead/romulusn1/ref/api.h new file mode 100644 index 0000000..a4aa567 --- /dev/null +++ b/romulus/Implementations/crypto_aead/romulusn1/ref/api.h @@ -0,0 +1,5 @@ +#define CRYPTO_KEYBYTES 16 +#define CRYPTO_NSECBYTES 0 +#define CRYPTO_NPUBBYTES 16 +#define CRYPTO_ABYTES 16 +#define CRYPTO_NOOVERLAP 1 diff --git a/romulus/Implementations/crypto_aead/romulusn1/ref/encrypt.c b/romulus/Implementations/crypto_aead/romulusn1/ref/encrypt.c new file mode 100644 index 0000000..4bcd5b9 --- /dev/null +++ b/romulus/Implementations/crypto_aead/romulusn1/ref/encrypt.c @@ -0,0 +1,493 @@ +/* + * Date: 29 November 2018 + * Contact: Thomas Peyrin - thomas.peyrin@gmail.com + * Mustafa Khairallah - mustafam001@e.ntu.edu.sg + */ + +#include "crypto_aead.h" +#include "api.h" +#include "variant.h" +#include "skinny.h" +#include +#include + +/*void display_vector (const unsigned char* x, int lenx) { + int i; + + for (i = 0; i < lenx; i++) { + //printf("%02x",x[i]); + } + //printf("\n"); + + }*/ + +void pad (const unsigned char* m, unsigned char* mp, int l, int len8) { + int i; + + for (i = 0; i < l; i++) { + if (i < len8) { + mp[i] = m[i]; + } + else if (i == l - 1) { + mp[i] = (len8 & 0x0f); + } + else { + mp[i] = 0x00; + } + } + +} + +void g8A (unsigned char* s, unsigned char* c) { + int i; + + for (i = 0; i < 16; i++) { + c[i] = (s[i] >> 1) ^ (s[i] & 0x80) ^ ((s[i] & 0x01) << 7); + } + +} + +void rho_ad (const unsigned char* m, + unsigned char* s, + int len8, + int ver) { + int i; + unsigned char mp [16]; + + //printf("rho in m = ");display_vector(m,len8); + pad(m,mp,ver,len8); + //printf("rho in mp = ");display_vector(mp,16); + //printf("rho in s = ");display_vector(s,16); + for (i = 0; i < ver; i++) { + s[i] = s[i] ^ mp[i]; + } + //printf("rho out s = ");display_vector(s,16); + +} + +void rho (const unsigned char* m, + unsigned char* c, + unsigned char* s, + int len8, + int ver) { + int i; + unsigned char mp [16]; + + //printf("rho in m = ");display_vector(m,len8); + pad(m,mp,ver,len8); + //printf("rho in mp = ");display_vector(mp,16); + //printf("rho in s = ");display_vector(s,16); + + g8A(s,c); + for (i = 0; i < ver; i++) { + s[i] = s[i] ^ mp[i]; + if (i < len8) { + c[i] = c[i] ^ mp[i]; + } + else { + c[i] = 0; + } + } + //printf("rho out s = ");display_vector(s,16); + //printf("rho out c = ");display_vector(c,16); + +} + +void irho (unsigned char* m, + const unsigned char* c, + unsigned char* s, + int len8, + int ver) { + int i; + unsigned char cp [16]; + + //printf("irho in c = ");display_vector(c,len8); + pad(c,cp,ver,len8); + //printf("irho in cp = ");display_vector(cp,16); + //printf("irho in s = ");display_vector(s,16); + + g8A(s,m); + for (i = 0; i < ver; i++) { + if (i < len8) { + s[i] = s[i] ^ cp[i] ^ m[i]; + } + else { + s[i] = s[i] ^ cp[i]; + } + if (i < len8) { + m[i] = m[i] ^ cp[i]; + } + else { + m[i] = 0; + } + } + //printf("irho out s = ");display_vector(s,16); + //printf("irho out m = ");display_vector(c,16); + +} + +void reset_lfsr_gf56 (unsigned char* CNT) { + CNT[0] = 0x01; + CNT[1] = 0x00; + CNT[2] = 0x00; + CNT[3] = 0x00; + CNT[4] = 0x00; + CNT[5] = 0x00; + CNT[6] = 0x00; +} + +void lfsr_gf56 (unsigned char* CNT) { + unsigned char fb0; + + fb0 = CNT[6] >> 7; + + CNT[6] = (CNT[6] << 1) | (CNT[5] >> 7); + CNT[5] = (CNT[5] << 1) | (CNT[4] >> 7); + CNT[4] = (CNT[4] << 1) | (CNT[3] >> 7); + CNT[3] = (CNT[3] << 1) | (CNT[2] >> 7); + CNT[2] = (CNT[2] << 1) | (CNT[1] >> 7); + CNT[1] = (CNT[1] << 1) | (CNT[0] >> 7); + if (fb0 == 1) { + CNT[0] = (CNT[0] << 1) ^ 0x95; + } + else { + CNT[0] = (CNT[0] << 1); + } +} + +void compose_tweakey (unsigned char* KT, + const unsigned char* K, + unsigned char* T, + unsigned char* CNT, + unsigned char D, + int t) { + + int i; + + for (i = 0; i < 7; i++) { + KT[i] = CNT[i]; + } + KT[i] = D; + for (i = 8; i < 16; i++) { + KT[i] = 0x00; + } + for (i = 0; i < t; i++) { + KT[i+16] = T[i]; + } + for (i = 0; i < 16; i++) { + KT[i+16+t] = K[i]; + } + +} + +void block_cipher(unsigned char* s, + const unsigned char* k, unsigned char* T, + unsigned char* CNT, unsigned char D, int t, int n) { + unsigned char KT [48]; + + (void) n; + compose_tweakey(KT,k,T,CNT,D,t); + //printf("BC in kt = ");display_vector(KT,3*n); + //printf("BC in s = ");display_vector(s,n); + skinny_128_384_enc (s,KT); + //printf("BC out s = ");display_vector(s,n); + +} + +void nonce_encryption (const unsigned char* N, + unsigned char* CNT, + unsigned char*s, const unsigned char* k, + int t, int n, unsigned char D) { + unsigned char T [16]; + int i; + for (i = 0; i < t; i++) { + T[i] = N[i]; + } + //printf("nonce cnt = ");display_vector(CNT,7); + block_cipher(s,k,T,CNT,D,t,n); + +} + +void generate_tag (unsigned char** c, unsigned char* s, + int n, unsigned long long* clen) { + + g8A(s, *c); + *c = *c + n; + *c = *c - *clen; + +} + +unsigned long long msg_encryption (const unsigned char** M, unsigned char** c, + const unsigned char* N, + unsigned char* CNT, + unsigned char*s, const unsigned char* k, + unsigned int n, unsigned int t, unsigned char D, + unsigned long long mlen) { + int len8; + + + if (mlen >= n) { + len8 = n; + mlen = mlen - n; + } + else { + len8 = mlen; + mlen = 0; + } + rho(*M, *c, s, len8, n); + *c = *c + len8; + *M = *M + len8; + lfsr_gf56(CNT); + nonce_encryption(N,CNT,s,k,t,n,D); + return mlen; +} + + + +unsigned long long msg_decryption (unsigned char** M, const unsigned char** c, + const unsigned char* N, + unsigned char* CNT, + unsigned char*s, const unsigned char* k, + unsigned int n, unsigned int t, unsigned char D, + unsigned long long clen) { + int len8; + + if (clen >= n) { + len8 = n; + clen = clen - n; + } + else { + len8 = clen; + clen = 0; + } + irho(*M, *c, s, len8, n); + *c = *c + len8; + *M = *M + len8; + lfsr_gf56(CNT); + nonce_encryption(N,CNT,s,k,t,n,D); + return clen; +} + +unsigned long long ad_encryption (const unsigned char** A, unsigned char* s, + const unsigned char* k, unsigned long long adlen, + unsigned char* CNT, + unsigned char D, + unsigned int n, unsigned int t) { + + unsigned char T [16]; + int len8; + + //printf("AD in = ");display_vector(*A,16); + if (adlen >= n) { + len8 = n; + adlen = adlen - n; + } + else { + len8 = adlen; + adlen = 0; + } + rho_ad(*A, s, len8, n); + *A = *A + len8; + lfsr_gf56(CNT); + //printf("AD cnt = ");display_vector(CNT,7); + if (adlen != 0) { + if (adlen >= t) { + len8 = t; + adlen = adlen - t; + } + else { + len8 = adlen; + adlen = 0; + } + pad(*A, T, t, len8); + *A = *A + len8; + block_cipher(s,k,T,CNT,D,t,n); + lfsr_gf56(CNT); + } + + return adlen; +} + +int crypto_aead_encrypt ( + unsigned char* c, unsigned long long* clen, + const unsigned char* m, unsigned long long mlen, + const unsigned char* ad, unsigned long long adlen, + const unsigned char* nsec, + const unsigned char* npub, + const unsigned char* k + ) +{ + unsigned char s[16]; + unsigned char CNT[7]; + const unsigned char* A; + const unsigned char* M; + const unsigned char* N; + unsigned int n, t, i; + + (void) nsec; + A = ad; + M = m; + N = npub; + + n = AD_BLK_LEN_ODD; + t = AD_BLK_LEN_EVN; + + for (i = 0; i < n; i++) { + s[i] = 0; + } + reset_lfsr_gf56(CNT); + //printf("s = ");display_vector(s,16); + //printf("cnt = ");display_vector(CNT,7); + + if (adlen == 0) { // AD is an empty string + lfsr_gf56(CNT); + nonce_encryption(N,CNT,s,k,t,n,0x1a); + } + else while (adlen > 0) { + if (adlen < n) { // The last block of AD is odd and incomplete + adlen = ad_encryption(&A,s,k,adlen,CNT,0x08,n,t); + nonce_encryption(N,CNT,s,k,t,n,0x1a); + } + else if (adlen == n) { // The last block of AD is odd and complete + adlen = ad_encryption(&A,s,k,adlen,CNT,0x08,n,t); + nonce_encryption(N,CNT,s,k,t,n,0x18); + } + else if (adlen < (n+t)) { // The last block of AD is even and incomplete + adlen = ad_encryption(&A,s,k,adlen,CNT,0x08,n,t); + nonce_encryption(N,CNT,s,k,t,n,0x1a); + } + else if (adlen == (n+t)) { // The last block of AD is even and complete + adlen = ad_encryption(&A,s,k,adlen,CNT,0x08,n,t); + nonce_encryption(N,CNT,s,k,t,n,0x18); + } + else { // A normal full pair of blocks of AD + adlen = ad_encryption(&A,s,k,adlen,CNT,0x08,n,t); + } + } + + reset_lfsr_gf56(CNT); + + n = MSG_BLK_LEN; + *clen = mlen + n; + + if (mlen == 0) { // M is an empty string + lfsr_gf56(CNT); + nonce_encryption(N,CNT,s,k,t,n,0x15); + } + else while (mlen > 0) { + if (mlen < n) { // The last block of M is incomplete + mlen = msg_encryption(&M,&c,N,CNT,s,k,n,t,0x15,mlen); + } + else if (mlen == n) { // The last block of M is complete + mlen = msg_encryption(&M,&c,N,CNT,s,k,n,t,0x14,mlen); + } + else { // A normal full message block + mlen = msg_encryption(&M,&c,N,CNT,s,k,n,t,0x04,mlen); + } + } + + // Tag generation + generate_tag(&c,s,n,clen); + //printf("T = ");display_vector(c+*clen-n,n); + + + return 0; +} + +int crypto_aead_decrypt( +unsigned char *m,unsigned long long *mlen, +unsigned char *nsec, +const unsigned char *c,unsigned long long clen, +const unsigned char *ad,unsigned long long adlen, +const unsigned char *npub, +const unsigned char *k +) +{ + + unsigned char s[16]; + unsigned char T[16]; + unsigned char CNT[7]; + const unsigned char* A; + unsigned char* M; + const unsigned char* N; + unsigned int n, t, i; + + (void) nsec; + A = ad; + M = m; + N = npub; + + n = AD_BLK_LEN_ODD; + t = AD_BLK_LEN_EVN; + + for (i = 0; i < n; i++) { + s[i] = 0; + } + reset_lfsr_gf56(CNT); + //printf("s = ");display_vector(s,16); + //printf("cnt = ");display_vector(CNT,7); + + if (adlen == 0) { // AD is an empty string + lfsr_gf56(CNT); + nonce_encryption(N,CNT,s,k,t,n,0x1a); + } + else while (adlen > 0) { + if (adlen < n) { // The last block of AD is odd and incomplete + adlen = ad_encryption(&A,s,k,adlen,CNT,0x08,n,t); + nonce_encryption(N,CNT,s,k,t,n,0x1a); + } + else if (adlen == n) { // The last block of AD is odd and complete + adlen = ad_encryption(&A,s,k,adlen,CNT,0x08,n,t); + nonce_encryption(N,CNT,s,k,t,n,0x18); + } + else if (adlen < (n+t)) { // The last block of AD is even and incomplete + adlen = ad_encryption(&A,s,k,adlen,CNT,0x08,n,t); + nonce_encryption(N,CNT,s,k,t,n,0x1a); + } + else if (adlen == (n+t)) { // The last block of AD is even and complete + adlen = ad_encryption(&A,s,k,adlen,CNT,0x08,n,t); + nonce_encryption(N,CNT,s,k,t,n,0x18); + } + else { // A normal full pair of blocks of AD + adlen = ad_encryption(&A,s,k,adlen,CNT,0x08,n,t); + } + } + + reset_lfsr_gf56(CNT); + + n = MSG_BLK_LEN; + + clen = clen - n; + *mlen = clen; + + if (clen == 0) { // C is an empty string + lfsr_gf56(CNT); + nonce_encryption(N,CNT,s,k,t,n,0x15); + } + else while (clen > 0) { + if (clen < n) { // The last block of C is incomplete + clen = msg_decryption(&M,&c,N,CNT,s,k,n,t,0x15,clen); + } + else if (clen == n) { // The last block of C is complete + clen = msg_decryption(&M,&c,N,CNT,s,k,n,t,0x14,clen); + } + else { // A normal full message block + clen = msg_decryption(&M,&c,N,CNT,s,k,n,t,0x04,clen); + } + } + + + // Tag generation + g8A(s, T); + //printf("T = ");display_vector(T,n); + for (i = 0; i < 16; i++) { + if (T[i] != (*(c+i))) { + return -1; + } + } + + return 0; + +} + + diff --git a/romulus/Implementations/crypto_aead/romulusn1/ref/genkat_aead.c b/romulus/Implementations/crypto_aead/romulusn1/ref/genkat_aead.c new file mode 100644 index 0000000..ecee146 --- /dev/null +++ b/romulus/Implementations/crypto_aead/romulusn1/ref/genkat_aead.c @@ -0,0 +1,163 @@ +// +// NIST-developed software is provided by NIST as a public service. +// You may use, copy and distribute copies of the software in any medium, +// provided that you keep intact this entire notice. You may improve, +// modify and create derivative works of the software or any portion of +// the software, and you may copy and distribute such modifications or +// works. Modified works should carry a notice stating that you changed +// the software and should note the date and nature of any such change. +// Please explicitly acknowledge the National Institute of Standards and +// Technology as the source of the software. +// +// NIST-developed software is expressly provided "AS IS." NIST MAKES NO +// WARRANTY OF ANY KIND, EXPRESS, IMPLIED, IN FACT OR ARISING BY OPERATION +// OF LAW, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTY OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT AND DATA ACCURACY. NIST +// NEITHER REPRESENTS NOR WARRANTS THAT THE OPERATION OF THE SOFTWARE WILL BE +// UNINTERRUPTED OR ERROR-FREE, OR THAT ANY DEFECTS WILL BE CORRECTED. NIST +// DOES NOT WARRANT OR MAKE ANY REPRESENTATIONS REGARDING THE USE OF THE SOFTWARE +// OR THE RESULTS THEREOF, INCLUDING BUT NOT LIMITED TO THE CORRECTNESS, ACCURACY, +// RELIABILITY, OR USEFULNESS OF THE SOFTWARE. +// +// You are solely responsible for determining the appropriateness of using and +// distributing the software and you assume all risks associated with its use, +// including but not limited to the risks and costs of program errors, compliance +// with applicable laws, damage to or loss of data, programs or equipment, and +// the unavailability or interruption of operation. This software is not intended +// to be used in any situation where a failure could cause risk of injury or +// damage to property. The software developed by NIST employees is not subject to +// copyright protection within the United States. +// + +// disable deprecation for sprintf and fopen +#ifdef _MSC_VER +#define _CRT_SECURE_NO_WARNINGS +#endif + +#include +#include + +#include "crypto_aead.h" +#include "api.h" + +#define KAT_SUCCESS 0 +#define KAT_FILE_OPEN_ERROR -1 +#define KAT_DATA_ERROR -3 +#define KAT_CRYPTO_FAILURE -4 + +#define MAX_FILE_NAME 256 +#define MAX_MESSAGE_LENGTH 32 +#define MAX_ASSOCIATED_DATA_LENGTH 32 + +void init_buffer(unsigned char *buffer, unsigned long long numbytes); + +void fprint_bstr(FILE *fp, const char *label, const unsigned char *data, unsigned long long length); + +int generate_test_vectors(); + +int main() +{ + int ret = generate_test_vectors(); + + if (ret != KAT_SUCCESS) { + fprintf(stderr, "test vector generation failed with code %d\n", ret); + } + + return ret; +} + +int generate_test_vectors() +{ + FILE *fp; + char fileName[MAX_FILE_NAME]; + unsigned char key[CRYPTO_KEYBYTES]; + unsigned char nonce[CRYPTO_NPUBBYTES]; + unsigned char msg[MAX_MESSAGE_LENGTH]; + unsigned char msg2[MAX_MESSAGE_LENGTH]; + unsigned char ad[MAX_ASSOCIATED_DATA_LENGTH]; + unsigned char ct[MAX_MESSAGE_LENGTH + CRYPTO_ABYTES]; + unsigned long long clen, mlen2; + int count = 1; + int func_ret, ret_val = KAT_SUCCESS; + + init_buffer(key, sizeof(key)); + init_buffer(nonce, sizeof(nonce)); + init_buffer(msg, sizeof(msg)); + init_buffer(ad, sizeof(ad)); + + sprintf(fileName, "LWC_AEAD_KAT_%d_%d.txt", (CRYPTO_KEYBYTES * 8), (CRYPTO_NPUBBYTES * 8)); + + if ((fp = fopen(fileName, "w")) == NULL) { + fprintf(stderr, "Couldn't open <%s> for write\n", fileName); + return KAT_FILE_OPEN_ERROR; + } + + for (unsigned long long mlen = 0; (mlen <= MAX_MESSAGE_LENGTH) && (ret_val == KAT_SUCCESS); mlen++) { + //for (unsigned long long mlen = 0; (mlen <= 32) && (ret_val == KAT_SUCCESS); mlen++) { + for (unsigned long long adlen = 0; adlen <= MAX_ASSOCIATED_DATA_LENGTH; adlen++) { + //for (unsigned long long adlen = 0; adlen <= 32; adlen++) { + + printf("%0d\n", (int)clen); + + fprintf(fp, "Count = %d\n", count++); + printf("Count = %d\n", count - 1); + + fprint_bstr(fp, "Key = ", key, CRYPTO_KEYBYTES); + + fprint_bstr(fp, "Nonce = ", nonce, CRYPTO_NPUBBYTES); + + fprint_bstr(fp, "PT = ", msg, mlen); + + fprint_bstr(fp, "AD = ", ad, adlen); + + if ((func_ret = crypto_aead_encrypt(ct, &clen, msg, mlen, ad, adlen, NULL, nonce, key)) != 0) { + fprintf(fp, "crypto_aead_encrypt returned <%d>\n", func_ret); + ret_val = KAT_CRYPTO_FAILURE; + break; + } + + fprint_bstr(fp, "CT = ", ct, clen); + + fprintf(fp, "\n"); + + if ((func_ret = crypto_aead_decrypt(msg2, &mlen2, NULL, ct, clen, ad, adlen, nonce, key)) != 0) { + fprintf(fp, "crypto_aead_decrypt returned <%d>\n", func_ret); + ret_val = KAT_CRYPTO_FAILURE; + break; + } + + if (mlen != mlen2) { + fprintf(fp, "crypto_aead_decrypt returned bad 'mlen': Got <%llu>, expected <%llu>\n", mlen2, mlen); + ret_val = KAT_CRYPTO_FAILURE; + break; + } + + if (memcmp(msg, msg2, mlen)) { + fprintf(fp, "crypto_aead_decrypt did not recover the plaintext\n"); + ret_val = KAT_CRYPTO_FAILURE; + break; + } + } + } + + fclose(fp); + + return ret_val; +} + + +void fprint_bstr(FILE *fp, const char *label, const unsigned char *data, unsigned long long length) +{ + fprintf(fp, "%s", label); + + for (unsigned long long i = 0; i < length; i++) + fprintf(fp, "%02X", data[i]); + + fprintf(fp, "\n"); +} + +void init_buffer(unsigned char *buffer, unsigned long long numbytes) +{ + for (unsigned long long i = 0; i < numbytes; i++) + buffer[i] = (unsigned char)i; +} diff --git a/romulus/Implementations/crypto_aead/romulusn1/ref/skinny.h b/romulus/Implementations/crypto_aead/romulusn1/ref/skinny.h new file mode 100644 index 0000000..70c4421 --- /dev/null +++ b/romulus/Implementations/crypto_aead/romulusn1/ref/skinny.h @@ -0,0 +1 @@ +extern void skinny_128_384_enc (unsigned char* input, const unsigned char* userkey); diff --git a/romulus/Implementations/crypto_aead/romulusn1/ref/skinny_reference.c b/romulus/Implementations/crypto_aead/romulusn1/ref/skinny_reference.c new file mode 100644 index 0000000..ec59a31 --- /dev/null +++ b/romulus/Implementations/crypto_aead/romulusn1/ref/skinny_reference.c @@ -0,0 +1,547 @@ +/* + * Date: 11 December 2015 + * Contact: Thomas Peyrin - thomas.peyrin@gmail.com + */ + +#include +#include +#include +#include +#include "skinny.h" + +#define DEBUG 0 + +// Table that encodes the parameters of the various Skinny versions: +// (block size, key size, number of rounds) +//Skinny-64-64: 32 rounds +//Skinny-64-128: 36 rounds +//Skinny-64-192: 40 rounds +//Skinny-128-128: 40 rounds +//Skinny-128-256: 48 rounds +//Skinny-128-384: 56 rounds +int versions[6][3]={{64,64,32},{64,128,36},{64,192,40},{128,128,40},{128,256,48},{128,384,56}}; + +// Packing of data is done as follows (state[i][j] stands for row i and column j): +// 0 1 2 3 +// 4 5 6 7 +// 8 9 10 11 +//12 13 14 15 + +// 4-bit Sbox +const unsigned char sbox_4[16] = {12,6,9,0,1,10,2,11,3,8,5,13,4,14,7,15}; +const unsigned char sbox_4_inv[16] = {3,4,6,8,12,10,1,14,9,2,5,7,0,11,13,15}; + +// 8-bit Sbox +const unsigned char sbox_8[256] = {0x65 , 0x4c , 0x6a , 0x42 , 0x4b , 0x63 , 0x43 , 0x6b , 0x55 , 0x75 , 0x5a , 0x7a , 0x53 , 0x73 , 0x5b , 0x7b ,0x35 , 0x8c , 0x3a , 0x81 , 0x89 , 0x33 , 0x80 , 0x3b , 0x95 , 0x25 , 0x98 , 0x2a , 0x90 , 0x23 , 0x99 , 0x2b ,0xe5 , 0xcc , 0xe8 , 0xc1 , 0xc9 , 0xe0 , 0xc0 , 0xe9 , 0xd5 , 0xf5 , 0xd8 , 0xf8 , 0xd0 , 0xf0 , 0xd9 , 0xf9 ,0xa5 , 0x1c , 0xa8 , 0x12 , 0x1b , 0xa0 , 0x13 , 0xa9 , 0x05 , 0xb5 , 0x0a , 0xb8 , 0x03 , 0xb0 , 0x0b , 0xb9 ,0x32 , 0x88 , 0x3c , 0x85 , 0x8d , 0x34 , 0x84 , 0x3d , 0x91 , 0x22 , 0x9c , 0x2c , 0x94 , 0x24 , 0x9d , 0x2d ,0x62 , 0x4a , 0x6c , 0x45 , 0x4d , 0x64 , 0x44 , 0x6d , 0x52 , 0x72 , 0x5c , 0x7c , 0x54 , 0x74 , 0x5d , 0x7d ,0xa1 , 0x1a , 0xac , 0x15 , 0x1d , 0xa4 , 0x14 , 0xad , 0x02 , 0xb1 , 0x0c , 0xbc , 0x04 , 0xb4 , 0x0d , 0xbd ,0xe1 , 0xc8 , 0xec , 0xc5 , 0xcd , 0xe4 , 0xc4 , 0xed , 0xd1 , 0xf1 , 0xdc , 0xfc , 0xd4 , 0xf4 , 0xdd , 0xfd ,0x36 , 0x8e , 0x38 , 0x82 , 0x8b , 0x30 , 0x83 , 0x39 , 0x96 , 0x26 , 0x9a , 0x28 , 0x93 , 0x20 , 0x9b , 0x29 ,0x66 , 0x4e , 0x68 , 0x41 , 0x49 , 0x60 , 0x40 , 0x69 , 0x56 , 0x76 , 0x58 , 0x78 , 0x50 , 0x70 , 0x59 , 0x79 ,0xa6 , 0x1e , 0xaa , 0x11 , 0x19 , 0xa3 , 0x10 , 0xab , 0x06 , 0xb6 , 0x08 , 0xba , 0x00 , 0xb3 , 0x09 , 0xbb ,0xe6 , 0xce , 0xea , 0xc2 , 0xcb , 0xe3 , 0xc3 , 0xeb , 0xd6 , 0xf6 , 0xda , 0xfa , 0xd3 , 0xf3 , 0xdb , 0xfb ,0x31 , 0x8a , 0x3e , 0x86 , 0x8f , 0x37 , 0x87 , 0x3f , 0x92 , 0x21 , 0x9e , 0x2e , 0x97 , 0x27 , 0x9f , 0x2f ,0x61 , 0x48 , 0x6e , 0x46 , 0x4f , 0x67 , 0x47 , 0x6f , 0x51 , 0x71 , 0x5e , 0x7e , 0x57 , 0x77 , 0x5f , 0x7f ,0xa2 , 0x18 , 0xae , 0x16 , 0x1f , 0xa7 , 0x17 , 0xaf , 0x01 , 0xb2 , 0x0e , 0xbe , 0x07 , 0xb7 , 0x0f , 0xbf ,0xe2 , 0xca , 0xee , 0xc6 , 0xcf ,0xe7 , 0xc7 , 0xef , 0xd2 , 0xf2 , 0xde , 0xfe , 0xd7 , 0xf7 , 0xdf , 0xff}; +const unsigned char sbox_8_inv[256] = {0xac , 0xe8 , 0x68 , 0x3c , 0x6c , 0x38 , 0xa8 , 0xec , 0xaa , 0xae , 0x3a , 0x3e , 0x6a , 0x6e , 0xea , 0xee ,0xa6 , 0xa3 , 0x33 , 0x36 , 0x66 , 0x63 , 0xe3 , 0xe6 , 0xe1 , 0xa4 , 0x61 , 0x34 , 0x31 , 0x64 , 0xa1 , 0xe4 ,0x8d , 0xc9 , 0x49 , 0x1d , 0x4d , 0x19 , 0x89 , 0xcd , 0x8b , 0x8f , 0x1b , 0x1f , 0x4b , 0x4f , 0xcb , 0xcf ,0x85 , 0xc0 , 0x40 , 0x15 , 0x45 , 0x10 , 0x80 , 0xc5 , 0x82 , 0x87 , 0x12 , 0x17 , 0x42 , 0x47 , 0xc2 , 0xc7 ,0x96 , 0x93 , 0x03 , 0x06 , 0x56 , 0x53 , 0xd3 , 0xd6 , 0xd1 , 0x94 , 0x51 , 0x04 , 0x01 , 0x54 , 0x91 , 0xd4 ,0x9c , 0xd8 , 0x58 , 0x0c , 0x5c , 0x08 , 0x98 , 0xdc , 0x9a , 0x9e , 0x0a , 0x0e , 0x5a , 0x5e , 0xda , 0xde ,0x95 , 0xd0 , 0x50 , 0x05 , 0x55 , 0x00 , 0x90 , 0xd5 , 0x92 , 0x97 , 0x02 , 0x07 , 0x52 , 0x57 , 0xd2 , 0xd7 ,0x9d , 0xd9 , 0x59 , 0x0d , 0x5d , 0x09 , 0x99 , 0xdd , 0x9b , 0x9f , 0x0b , 0x0f , 0x5b , 0x5f , 0xdb , 0xdf ,0x16 , 0x13 , 0x83 , 0x86 , 0x46 , 0x43 , 0xc3 , 0xc6 , 0x41 , 0x14 , 0xc1 , 0x84 , 0x11 , 0x44 , 0x81 , 0xc4 ,0x1c , 0x48 , 0xc8 , 0x8c , 0x4c , 0x18 , 0x88 , 0xcc , 0x1a , 0x1e , 0x8a , 0x8e , 0x4a , 0x4e , 0xca , 0xce ,0x35 , 0x60 , 0xe0 , 0xa5 , 0x65 , 0x30 , 0xa0 , 0xe5 , 0x32 , 0x37 , 0xa2 , 0xa7 , 0x62 , 0x67 , 0xe2 , 0xe7 ,0x3d , 0x69 , 0xe9 , 0xad , 0x6d , 0x39 , 0xa9 , 0xed , 0x3b , 0x3f , 0xab , 0xaf , 0x6b , 0x6f , 0xeb , 0xef ,0x26 , 0x23 , 0xb3 , 0xb6 , 0x76 , 0x73 , 0xf3 , 0xf6 , 0x71 , 0x24 , 0xf1 , 0xb4 , 0x21 , 0x74 , 0xb1 , 0xf4 ,0x2c , 0x78 , 0xf8 , 0xbc , 0x7c , 0x28 , 0xb8 , 0xfc , 0x2a , 0x2e , 0xba , 0xbe , 0x7a , 0x7e , 0xfa , 0xfe ,0x25 , 0x70 , 0xf0 , 0xb5 , 0x75 , 0x20 , 0xb0 , 0xf5 , 0x22 , 0x27 , 0xb2 , 0xb7 , 0x72 , 0x77 , 0xf2 , 0xf7 ,0x2d , 0x79 , 0xf9 , 0xbd , 0x7d , 0x29 , 0xb9 , 0xfd , 0x2b , 0x2f , 0xbb , 0xbf , 0x7b , 0x7f , 0xfb , 0xff}; + +// ShiftAndSwitchRows permutation +const unsigned char P[16] = {0,1,2,3,7,4,5,6,10,11,8,9,13,14,15,12}; +const unsigned char P_inv[16] = {0,1,2,3,5,6,7,4,10,11,8,9,15,12,13,14}; + +// Tweakey permutation +const unsigned char TWEAKEY_P[16] = {9,15,8,13,10,14,12,11,0,1,2,3,4,5,6,7}; +const unsigned char TWEAKEY_P_inv[16] = {8,9,10,11,12,13,14,15,2,0,4,7,6,3,5,1}; + +// round constants +const unsigned char RC[62] = { + 0x01, 0x03, 0x07, 0x0F, 0x1F, 0x3E, 0x3D, 0x3B, 0x37, 0x2F, + 0x1E, 0x3C, 0x39, 0x33, 0x27, 0x0E, 0x1D, 0x3A, 0x35, 0x2B, + 0x16, 0x2C, 0x18, 0x30, 0x21, 0x02, 0x05, 0x0B, 0x17, 0x2E, + 0x1C, 0x38, 0x31, 0x23, 0x06, 0x0D, 0x1B, 0x36, 0x2D, 0x1A, + 0x34, 0x29, 0x12, 0x24, 0x08, 0x11, 0x22, 0x04, 0x09, 0x13, + 0x26, 0x0c, 0x19, 0x32, 0x25, 0x0a, 0x15, 0x2a, 0x14, 0x28, + 0x10, 0x20}; + +FILE* fic; + + +// Extract and apply the subtweakey to the internal state (must be the two top rows XORed together), then update the tweakey state +void AddKey(unsigned char state[4][4], unsigned char keyCells[3][4][4], int ver) +{ + int i, j, k; + unsigned char pos; + unsigned char keyCells_tmp[3][4][4]; + + // apply the subtweakey to the internal state + for(i = 0; i <= 1; i++) + { + for(j = 0; j < 4; j++) + { + state[i][j] ^= keyCells[0][i][j]; + if (2*versions[ver][0]==versions[ver][1]) + state[i][j] ^= keyCells[1][i][j]; + else if (3*versions[ver][0]==versions[ver][1]) + state[i][j] ^= keyCells[1][i][j] ^ keyCells[2][i][j]; + } + } + + // update the subtweakey states with the permutation + for(k = 0; k <(int)(versions[ver][1]/versions[ver][0]); k++){ + for(i = 0; i < 4; i++){ + for(j = 0; j < 4; j++){ + //application of the TWEAKEY permutation + pos=TWEAKEY_P[j+4*i]; + keyCells_tmp[k][i][j]=keyCells[k][pos>>2][pos&0x3]; + } + } + } + + // update the subtweakey states with the LFSRs + for(k = 0; k <(int)(versions[ver][1]/versions[ver][0]); k++){ + for(i = 0; i <= 1; i++){ + for(j = 0; j < 4; j++){ + //application of LFSRs for TK updates + if (k==1) + { + if (versions[ver][0]==64) + keyCells_tmp[k][i][j]=((keyCells_tmp[k][i][j]<<1)&0xE)^((keyCells_tmp[k][i][j]>>3)&0x1)^((keyCells_tmp[k][i][j]>>2)&0x1); + else + keyCells_tmp[k][i][j]=((keyCells_tmp[k][i][j]<<1)&0xFE)^((keyCells_tmp[k][i][j]>>7)&0x01)^((keyCells_tmp[k][i][j]>>5)&0x01); + } + else if (k==2) + { + if (versions[ver][0]==64) + keyCells_tmp[k][i][j]=((keyCells_tmp[k][i][j]>>1)&0x7)^((keyCells_tmp[k][i][j])&0x8)^((keyCells_tmp[k][i][j]<<3)&0x8); + else + keyCells_tmp[k][i][j]=((keyCells_tmp[k][i][j]>>1)&0x7F)^((keyCells_tmp[k][i][j]<<7)&0x80)^((keyCells_tmp[k][i][j]<<1)&0x80); + } + } + } + } + + for(k = 0; k <(int)(versions[ver][1]/versions[ver][0]); k++){ + for(i = 0; i < 4; i++){ + for(j = 0; j < 4; j++){ + keyCells[k][i][j]=keyCells_tmp[k][i][j]; + } + } + } +} + + +// Extract and apply the subtweakey to the internal state (must be the two top rows XORed together), then update the tweakey state (inverse function} +void AddKey_inv(unsigned char state[4][4], unsigned char keyCells[3][4][4], int ver) +{ + int i, j, k; + unsigned char pos; + unsigned char keyCells_tmp[3][4][4]; + + // update the subtweakey states with the permutation + for(k = 0; k <(int)(versions[ver][1]/versions[ver][0]); k++){ + for(i = 0; i < 4; i++){ + for(j = 0; j < 4; j++){ + //application of the inverse TWEAKEY permutation + pos=TWEAKEY_P_inv[j+4*i]; + keyCells_tmp[k][i][j]=keyCells[k][pos>>2][pos&0x3]; + } + } + } + + // update the subtweakey states with the LFSRs + for(k = 0; k <(int)(versions[ver][1]/versions[ver][0]); k++){ + for(i = 2; i <= 3; i++){ + for(j = 0; j < 4; j++){ + //application of inverse LFSRs for TK updates + if (k==1) + { + if (versions[ver][0]==64) + keyCells_tmp[k][i][j]=((keyCells_tmp[k][i][j]>>1)&0x7)^((keyCells_tmp[k][i][j]<<3)&0x8)^((keyCells_tmp[k][i][j])&0x8); + else + keyCells_tmp[k][i][j]=((keyCells_tmp[k][i][j]>>1)&0x7F)^((keyCells_tmp[k][i][j]<<7)&0x80)^((keyCells_tmp[k][i][j]<<1)&0x80); + } + else if (k==2) + { + if (versions[ver][0]==64) + keyCells_tmp[k][i][j]=((keyCells_tmp[k][i][j]<<1)&0xE)^((keyCells_tmp[k][i][j]>>3)&0x1)^((keyCells_tmp[k][i][j]>>2)&0x1); + else + keyCells_tmp[k][i][j]=((keyCells_tmp[k][i][j]<<1)&0xFE)^((keyCells_tmp[k][i][j]>>7)&0x01)^((keyCells_tmp[k][i][j]>>5)&0x01); + } + } + } + } + + for(k = 0; k <(int)(versions[ver][1]/versions[ver][0]); k++){ + for(i = 0; i < 4; i++){ + for(j = 0; j < 4; j++){ + keyCells[k][i][j]=keyCells_tmp[k][i][j]; + } + } + } + + + // apply the subtweakey to the internal state + for(i = 0; i <= 1; i++) + { + for(j = 0; j < 4; j++) + { + state[i][j] ^= keyCells[0][i][j]; + if (2*versions[ver][0]==versions[ver][1]) + state[i][j] ^= keyCells[1][i][j]; + else if (3*versions[ver][0]==versions[ver][1]) + state[i][j] ^= keyCells[1][i][j] ^ keyCells[2][i][j]; + } + } +} + + +// Apply the constants: using a LFSR counter on 6 bits, we XOR the 6 bits to the first 6 bits of the internal state +void AddConstants(unsigned char state[4][4], int r) +{ + state[0][0] ^= (RC[r] & 0xf); + state[1][0] ^= ((RC[r]>>4) & 0x3); + state[2][0] ^= 0x2; +} + +// apply the 4-bit Sbox +void SubCell4(unsigned char state[4][4]) +{ + int i,j; + for(i = 0; i < 4; i++) + for(j = 0; j < 4; j++) + state[i][j] = sbox_4[state[i][j]]; +} + +// apply the 4-bit inverse Sbox +void SubCell4_inv(unsigned char state[4][4]) +{ + int i,j; + for(i = 0; i < 4; i++) + for(j = 0; j < 4; j++) + state[i][j] = sbox_4_inv[state[i][j]]; +} + +// apply the 8-bit Sbox +void SubCell8(unsigned char state[4][4]) +{ + int i,j; + for(i = 0; i < 4; i++) + for(j = 0; j < 4; j++) + state[i][j] = sbox_8[state[i][j]]; +} + +// apply the 8-bit inverse Sbox +void SubCell8_inv(unsigned char state[4][4]) +{ + int i,j; + for(i = 0; i < 4; i++) + for(j = 0; j < 4; j++) + state[i][j] = sbox_8_inv[state[i][j]]; +} + +// Apply the ShiftRows function +void ShiftRows(unsigned char state[4][4]) +{ + int i, j, pos; + + unsigned char state_tmp[4][4]; + for(i = 0; i < 4; i++) + { + for(j = 0; j < 4; j++) + { + //application of the ShiftRows permutation + pos=P[j+4*i]; + state_tmp[i][j]=state[pos>>2][pos&0x3]; + } + } + + for(i = 0; i < 4; i++) + { + for(j = 0; j < 4; j++) + { + state[i][j]=state_tmp[i][j]; + } + } +} + +// Apply the inverse ShiftRows function +void ShiftRows_inv(unsigned char state[4][4]) +{ + int i, j, pos; + + unsigned char state_tmp[4][4]; + for(i = 0; i < 4; i++) + { + for(j = 0; j < 4; j++) + { + //application of the inverse ShiftRows permutation + pos=P_inv[j+4*i]; + state_tmp[i][j]=state[pos>>2][pos&0x3]; + } + } + + for(i = 0; i < 4; i++) + { + for(j = 0; j < 4; j++) + { + state[i][j]=state_tmp[i][j]; + } + } +} + +// Apply the linear diffusion matrix +//M = +//1 0 1 1 +//1 0 0 0 +//0 1 1 0 +//1 0 1 0 +void MixColumn(unsigned char state[4][4]) +{ + int j; + unsigned char temp; + + for(j = 0; j < 4; j++){ + state[1][j]^=state[2][j]; + state[2][j]^=state[0][j]; + state[3][j]^=state[2][j]; + + temp=state[3][j]; + state[3][j]=state[2][j]; + state[2][j]=state[1][j]; + state[1][j]=state[0][j]; + state[0][j]=temp; + } +} + +// Apply the inverse linear diffusion matrix +void MixColumn_inv(unsigned char state[4][4]) +{ + int j; + unsigned char temp; + + for(j = 0; j < 4; j++){ + temp=state[3][j]; + state[3][j]=state[0][j]; + state[0][j]=state[1][j]; + state[1][j]=state[2][j]; + state[2][j]=temp; + + state[3][j]^=state[2][j]; + state[2][j]^=state[0][j]; + state[1][j]^=state[2][j]; + } +} + +// decryption function of Skinny +void dec(unsigned char* input, const unsigned char* userkey, int ver) +{ + unsigned char state[4][4]; + unsigned char dummy[4][4]={{0}}; + unsigned char keyCells[3][4][4]; + int i; + + memset(keyCells, 0, 48); + for(i = 0; i < 16; i++) { + if (versions[ver][0]==64){ + if(i&1) + { + state[i>>2][i&0x3] = input[i>>1]&0xF; + keyCells[0][i>>2][i&0x3] = userkey[i>>1]&0xF; + if (versions[ver][1]>=128) + keyCells[1][i>>2][i&0x3] = userkey[(i+16)>>1]&0xF; + if (versions[ver][1]>=192) + keyCells[2][i>>2][i&0x3] = userkey[(i+32)>>1]&0xF; + } + else + { + state[i>>2][i&0x3] = (input[i>>1]>>4)&0xF; + keyCells[0][i>>2][i&0x3] = (userkey[i>>1]>>4)&0xF; + if (versions[ver][1]>=128) + keyCells[1][i>>2][i&0x3] = (userkey[(i+16)>>1]>>4)&0xF; + if (versions[ver][1]>=192) + keyCells[2][i>>2][i&0x3] = (userkey[(i+32)>>1]>>4)&0xF; + } + } + else if (versions[ver][0]==128){ + state[i>>2][i&0x3] = input[i]&0xFF; + + keyCells[0][i>>2][i&0x3] = userkey[i]&0xFF; + if (versions[ver][1]>=256) + keyCells[1][i>>2][i&0x3] = userkey[i+16]&0xFF; + if (versions[ver][1]>=384) + keyCells[2][i>>2][i&0x3] = userkey[i+32]&0xFF; + } + } + + for(i = versions[ver][2]-1; i >=0 ; i--){ + AddKey(dummy, keyCells, ver); + } + + #ifdef DEBUG + //f//printf(fic,"DEC - initial state: ");display_cipher_state(state,keyCells,ver);//f//printf(fic,"\n"); + #endif + + for(i = versions[ver][2]-1; i >=0 ; i--){ + MixColumn_inv(state); + #ifdef DEBUG + //f//printf(fic,"DEC - round %.2i - after MixColumn_inv: ",i);display_cipher_state(state,keyCells,ver);//f//printf(fic,"\n"); + #endif + ShiftRows_inv(state); + #ifdef DEBUG + //f//printf(fic,"DEC - round %.2i - after ShiftRows_inv: ",i);display_cipher_state(state,keyCells,ver);//f//printf(fic,"\n"); + #endif + AddKey_inv(state, keyCells, ver); + #ifdef DEBUG + //f//printf(fic,"DEC - round %.2i - after AddKey_inv: ",i);display_cipher_state(state,keyCells,ver);//f//printf(fic,"\n"); + #endif + AddConstants(state, i); + #ifdef DEBUG + //f//printf(fic,"DEC - round %.2i - after AddConstants_inv: ",i);display_cipher_state(state,keyCells,ver);//f//printf(fic,"\n"); + #endif + if (versions[ver][0]==64) + SubCell4_inv(state); + else + SubCell8_inv(state); + #ifdef DEBUG + //f//printf(fic,"DEC - round %.2i - after SubCell_inv: ",i);display_cipher_state(state,keyCells,ver);//f//printf(fic,"\n"); + #endif + } + + #ifdef DEBUG + //f//printf(fic,"DEC - final state: ");display_cipher_state(state,keyCells,ver);//f//printf(fic,"\n"); + #endif + + if (versions[ver][0]==64) + { + for(i = 0; i < 8; i++) + input[i] = ((state[(2*i)>>2][(2*i)&0x3] & 0xF) << 4) | (state[(2*i+1)>>2][(2*i+1)&0x3] & 0xF); + } + else if (versions[ver][0]==128) + { + for(i = 0; i < 16; i++) + input[i] = state[i>>2][i&0x3] & 0xFF; + } +} + +// encryption function of Skinny +void enc(unsigned char* input, const unsigned char* userkey, int ver) +{ + unsigned char state[4][4]; + unsigned char keyCells[3][4][4]; + int i; + + memset(keyCells, 0, 48); + for(i = 0; i < 16; i++) { + if (versions[ver][0]==64){ + if(i&1) + { + state[i>>2][i&0x3] = input[i>>1]&0xF; + keyCells[0][i>>2][i&0x3] = userkey[i>>1]&0xF; + if (versions[ver][1]>=128) + keyCells[1][i>>2][i&0x3] = userkey[(i+16)>>1]&0xF; + if (versions[ver][1]>=192) + keyCells[2][i>>2][i&0x3] = userkey[(i+32)>>1]&0xF; + } + else + { + state[i>>2][i&0x3] = (input[i>>1]>>4)&0xF; + keyCells[0][i>>2][i&0x3] = (userkey[i>>1]>>4)&0xF; + if (versions[ver][1]>=128) + keyCells[1][i>>2][i&0x3] = (userkey[(i+16)>>1]>>4)&0xF; + if (versions[ver][1]>=192) + keyCells[2][i>>2][i&0x3] = (userkey[(i+32)>>1]>>4)&0xF; + } + } + else if (versions[ver][0]==128){ + state[i>>2][i&0x3] = input[i]&0xFF; + keyCells[0][i>>2][i&0x3] = userkey[i]&0xFF; + if (versions[ver][1]>=256) + keyCells[1][i>>2][i&0x3] = userkey[i+16]&0xFF; + if (versions[ver][1]>=384) + keyCells[2][i>>2][i&0x3] = userkey[i+32]&0xFF; + } + } + + #ifdef DEBUG + //printf("ENC - initial state: ");display_cipher_state(state,keyCells,ver);//printf("\n"); + #endif + for(i = 0; i < versions[ver][2]; i++){ + if (versions[ver][0]==64) + SubCell4(state); + else + SubCell8(state); + #ifdef DEBUG + //printf("ENC - round %.2i - after SubCell: ",i);display_cipher_state(state,keyCells,ver);//printf("\n"); + #endif + AddConstants(state, i); + #ifdef DEBUG + //printf("ENC - round %.2i - after AddConstants: ",i);display_cipher_state(state,keyCells,ver);//printf("\n"); + #endif + AddKey(state, keyCells, ver); + #ifdef DEBUG + //printf("ENC - round %.2i - after AddKey: ",i);display_cipher_state(state,keyCells,ver);//printf("\n"); + #endif + ShiftRows(state); + #ifdef DEBUG + //printf("ENC - round %.2i - after ShiftRows: ",i);display_cipher_state(state,keyCells,ver);//printf("\n"); + #endif + MixColumn(state); + #ifdef DEBUG + //printf("ENC - round %.2i - after MixColumn: ",i);display_cipher_state(state,keyCells,ver);//printf("\n"); + #endif + } //The last subtweakey should not be added + + #ifdef DEBUG + //printf("ENC - final state: ");display_cipher_state(state,keyCells,ver);//printf("\n"); + #endif + + if (versions[ver][0]==64) + { + for(i = 0; i < 8; i++) + input[i] = ((state[(2*i)>>2][(2*i)&0x3] & 0xF) << 4) | (state[(2*i+1)>>2][(2*i+1)&0x3] & 0xF); + } + else if (versions[ver][0]==128) + { + for(i = 0; i < 16; i++) + input[i] = state[i>>2][i&0x3] & 0xFF; + } +} + +void skinny_128_384_enc (unsigned char* input, const unsigned char* userkey) { + enc(input,userkey,5); +} + +// generate test vectors for all the versions of Skinny +void TestVectors(int ver) +{ + unsigned char p[16]; + unsigned char c[16]; + unsigned char k[48]; + int n; + + for(n = 1; n < 10; n++) + { + int i; + for(i = 0; i < (versions[ver][0]>>3); i++) c[i] = p[i] = rand() & 0xff; + for(i = 0; i < (versions[ver][1]>>3); i++) k[i] = rand() & 0xff; + //printf("TK = "); for(i = 0; i < (versions[ver][1]>>3); i++) //printf("%02x", k[i]); //printf("\n"); + //printf("P = "); for(i = 0; i < (versions[ver][0]>>3); i++) //printf("%02x", p[i]); //printf("\n"); + enc(c,k,ver); + //printf("C = "); for(i = 0; i < (versions[ver][0]>>3); i++) //printf("%02x", c[i]); //printf("\n"); + dec(c,k,ver); + //printf("P' = "); for(i = 0; i < (versions[ver][0]>>3); i++) //printf("%02x", c[i]); //printf("\n\n"); + } +} + +/* int main() { */ +/* unsigned int i; */ +/* char name[30]; */ + +/* srand((unsigned) time (NULL)); */ + +/* //test all versions of Skinny */ +/* for (i=0; i<(sizeof(versions)/sizeof(*versions));i++) */ +/* { */ +/* s//printf(name, "test_vectors_%i_%i.txt", versions[i][0], versions[i][1]); */ +/* fic=fopen(name,"w"); */ +/* //printf("\n\nSkinny-%i/%i: \n",versions[i][0],versions[i][1]); */ +/* TestVectors(i); */ +/* fclose(fic); */ +/* //printf("Generating test vectors for Skinny-%i/%i - saved in file test_vectors_%i_%i.txt \n",versions[i][0],versions[i][1],versions[i][0],versions[i][1]); */ +/* } */ + +/* return 0; */ +/* } */ + + + diff --git a/romulus/Implementations/crypto_aead/romulusn1/ref/variant.h b/romulus/Implementations/crypto_aead/romulusn1/ref/variant.h new file mode 100644 index 0000000..71b0405 --- /dev/null +++ b/romulus/Implementations/crypto_aead/romulusn1/ref/variant.h @@ -0,0 +1,3 @@ +#define MSG_BLK_LEN 16 +#define AD_BLK_LEN_ODD 16 +#define AD_BLK_LEN_EVN 16 diff --git a/romulus/Implementations/crypto_aead/romulusn1v12/LWC_AEAD_KAT_128_128.txt b/romulus/Implementations/crypto_aead/romulusn1v12/LWC_AEAD_KAT_128_128.txt deleted file mode 100644 index 4b26771..0000000 --- a/romulus/Implementations/crypto_aead/romulusn1v12/LWC_AEAD_KAT_128_128.txt +++ /dev/null @@ -1,7623 +0,0 @@ -Count = 1 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = -AD = -CT = 5D8DB25AACB3DAB45FBC2F8D77849F90 - -Count = 2 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = -AD = 00 -CT = 2590094BA7DD1CDFF6BDED1878B0BD55 - -Count = 3 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = -AD = 0001 -CT = 4937850252E6D938F72E2B1FF82010F0 - -Count = 4 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = -AD = 000102 -CT = E7DCCDB0D67928143E899ABE363CFEE8 - -Count = 5 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = -AD = 00010203 -CT = 2D2BB0BDCDAC9654A3963D19E009747A - -Count = 6 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = -AD = 0001020304 -CT = 2C0C713C7E14D20E10CC1B4F53DAB25D - -Count = 7 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = -AD = 000102030405 -CT = D8187667C1012A51481B6F59AD035B03 - -Count = 8 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = -AD = 00010203040506 -CT = 186BE82956155733C134EE9F3C610B40 - -Count = 9 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = -AD = 0001020304050607 -CT = FB03DA497168FDC76C46EA493128FB21 - -Count = 10 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = -AD = 000102030405060708 -CT = 816165DEEAB6C80DE8864774A49072E2 - -Count = 11 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = -AD = 00010203040506070809 -CT = 3E22DE085B28D78718CE4C5E7C1204E8 - -Count = 12 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = -AD = 000102030405060708090A -CT = CB0B3FEFEC9BE98878D986A303DFBE7A - -Count = 13 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = -AD = 000102030405060708090A0B -CT = AC0CA2C2CACD2732C43C43C5CB5F86EA - -Count = 14 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = -AD = 000102030405060708090A0B0C -CT = E7C5F6D0C7A8B9F37CA6C30D363631B3 - -Count = 15 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = -AD = 000102030405060708090A0B0C0D -CT = C3A4A90F657EBEBD39D453FA70F33F95 - -Count = 16 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = -AD = 000102030405060708090A0B0C0D0E -CT = BBD0C3A7C4A83BCCC513DAAF3BB64A14 - -Count = 17 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = -AD = 000102030405060708090A0B0C0D0E0F -CT = 475DFEF7D5E4DF7601A5F5328F5B3202 - -Count = 18 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 76BB89DEB0612755D51D434D81640CB6 - -Count = 19 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = E3A6CA1B8E0085A23D2AB246582AEF69 - -Count = 20 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = 65B90C937A2CACB77C49D22E77714C40 - -Count = 21 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = B2BFD659B0D754B9669683DF9B204771 - -Count = 22 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = B72E1A9BE61EC88663775B6F3A52C687 - -Count = 23 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = 4B6C6DA866173D7A31BE33DE30649B6F - -Count = 24 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 4D272CEF7E2436CBAD05EB840ADDF50C - -Count = 25 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = C5B2B5129BC0FB1F631DFE5BAD13617D - -Count = 26 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = F9B1337FC80AF556C629CD1A3CE60289 - -Count = 27 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = 51AECBF4B5FD04C28E81BAE33C624782 - -Count = 28 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 6B365E1BEB957E29706E1A6B4D369B08 - -Count = 29 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 3E94DDAD9B54A80A63E732D455034F44 - -Count = 30 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = B95EB2054634122D7E21EC8B96886292 - -Count = 31 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = B21D8F9AFB9AECEFE2DD1A1D469B30A5 - -Count = 32 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = 912B3867BD1F7FD7D6F748A57132D7E2 - -Count = 33 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 3FFF0D2D366D022A7996B16FA0E10E3E - -Count = 34 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00 -AD = -CT = 896531796709540239DD66621B504BD255 - -Count = 35 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00 -AD = 00 -CT = CB4D354361E0B2E89B7BD3375F5547437E - -Count = 36 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00 -AD = 0001 -CT = E5848409AE5E6B818278BD2040538F5BB2 - -Count = 37 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00 -AD = 000102 -CT = 806BF4587AAB07F61BDE79BF9145ED1C68 - -Count = 38 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00 -AD = 00010203 -CT = 9F4ABF3154B82222B2BE79CAE5B1AB3D51 - -Count = 39 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00 -AD = 0001020304 -CT = 1DD99011A4D7C2F1F124875416F2D28F0C - -Count = 40 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00 -AD = 000102030405 -CT = F593BEE046974B2CC11D02EF653D0DB1CA - -Count = 41 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00 -AD = 00010203040506 -CT = 3EDA90F7D2759E6F4214C2F230FEB252D6 - -Count = 42 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00 -AD = 0001020304050607 -CT = 15E8BED67663B68E0F339AA42CC4F2E0FA - -Count = 43 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00 -AD = 000102030405060708 -CT = 39C835814421D0B83C2CDEAE889CF24A43 - -Count = 44 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00 -AD = 00010203040506070809 -CT = 49146B139EEBF3CC8EA7B58A4B1A294D16 - -Count = 45 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00 -AD = 000102030405060708090A -CT = 8424BD1C5F613284F41020CE5CA3B35727 - -Count = 46 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00 -AD = 000102030405060708090A0B -CT = BE8797C1AFC2D86DFF138744955561CA37 - -Count = 47 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00 -AD = 000102030405060708090A0B0C -CT = F27C17F0824684707B7A650C5EA969A869 - -Count = 48 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00 -AD = 000102030405060708090A0B0C0D -CT = 2698B02CD3E31D9CB183AD0A79D0E48730 - -Count = 49 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00 -AD = 000102030405060708090A0B0C0D0E -CT = AC4AD9AF378D1CC394D3D4B6BF58345448 - -Count = 50 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00 -AD = 000102030405060708090A0B0C0D0E0F -CT = B52C077CDF95B0B1042DA4416B4993EF49 - -Count = 51 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = A39AFEEFD207F0A9244E605717E89D3F3B - -Count = 52 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = A34CC912FA5979ECFDB301405B4FF2ED0E - -Count = 53 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = A88DF0A0DD2B3EDD93433FB55E91624EB7 - -Count = 54 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = ECFC8E80537C0CF49F81078D6BD17A6C54 - -Count = 55 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = 50C1B2D557F0BF8A412409DC5866406330 - -Count = 56 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = A84611C8A12D14415E5137041AE4093E25 - -Count = 57 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 64CB4C15C7F683C9315FF1547F9B88592E - -Count = 58 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = 9FBDF7230BB71D2FEABB4B8D30893318A0 - -Count = 59 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 7C77DE69DB5E70EF82478A5359C427AC69 - -Count = 60 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = AE611D3BD628C9725BC52E9DA75E13EA2A - -Count = 61 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 583574D0ADC671B4F415B652E1429AE002 - -Count = 62 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 8EDD383FB7959C9521E725AAD9018B2D94 - -Count = 63 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = CB8E638615CC4DDBDDCEFFDFFD94410EC9 - -Count = 64 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 3A41AAEC53B9D24C2935D81F90C22BCE93 - -Count = 65 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = 917DFFDF4B653B7074286C6005CACFBACE - -Count = 66 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 644FAB331F78B6E33CF33A40DE2BE610C0 - -Count = 67 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001 -AD = -CT = 89A64DF193A360AF3E6FC48141B6586E3B1E - -Count = 68 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001 -AD = 00 -CT = CBF1B80E483D9EF0F57253FC4DD0A5AB9FD5 - -Count = 69 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001 -AD = 0001 -CT = E54BEF623FCFB4F52F1517AC988701AA4AFB - -Count = 70 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001 -AD = 000102 -CT = 807328F525631E49628D522C3BD9B2C7C5C5 - -Count = 71 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001 -AD = 00010203 -CT = 9F3F11B71DB3373451E5FB912B2CDDA8BC65 - -Count = 72 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001 -AD = 0001020304 -CT = 1D078CEE44AEEB8F0E604C910453EADC240B - -Count = 73 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001 -AD = 000102030405 -CT = F594B97B57D45213A42288B2F12D3672B170 - -Count = 74 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001 -AD = 00010203040506 -CT = 3E59C0A5879DCC8DD0FCE587A737C45F91EB - -Count = 75 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001 -AD = 0001020304050607 -CT = 15D3204FD5DEEBA4340D8CA17449FD37E44C - -Count = 76 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001 -AD = 000102030405060708 -CT = 39A676FEC61603470BD45CCE896B657BDC02 - -Count = 77 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001 -AD = 00010203040506070809 -CT = 495F8F7E68FBA41C90FA78FBF4439C6A3F7E - -Count = 78 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001 -AD = 000102030405060708090A -CT = 8435B2186DFD36B919055062F2F989CBBAE1 - -Count = 79 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001 -AD = 000102030405060708090A0B -CT = BE5717D62C51F51DDE8B636B9D8E5F2BF88F - -Count = 80 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001 -AD = 000102030405060708090A0B0C -CT = F2E6D9B7A23D70F1DCF52EF76DE78C149755 - -Count = 81 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001 -AD = 000102030405060708090A0B0C0D -CT = 26BD89FE25C807CD7617C10EE791F20C433E - -Count = 82 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001 -AD = 000102030405060708090A0B0C0D0E -CT = ACC9166406EE05365B4450BFA3939D5505AE - -Count = 83 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001 -AD = 000102030405060708090A0B0C0D0E0F -CT = B560C3E6FCA2D45C84B7521FEC7AE70C683A - -Count = 84 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = A3DCE06AED6E58402984CC6CB5988D17F21E - -Count = 85 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = A371B8B7368799620C41C268A50C8D7A4307 - -Count = 86 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = A884DC7D2F6C3B39B4353D45628BB53457CB - -Count = 87 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = ECBB74117DE14417EE7D3062604B327DAA55 - -Count = 88 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = 502C7F2681565F747DF466235090C63795DF - -Count = 89 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = A85B0036F16932E6E0029CC06ECA2AA37408 - -Count = 90 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 64A7CC6150FDC5D4328311939BAC76601870 - -Count = 91 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = 9F09D2268B5A30D390EA6AE03F587B9037B6 - -Count = 92 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 7CE73113B374B44563F6CA5BEF58DF9C34BC - -Count = 93 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = AE5C1D611E319C2DF192093B1EA1879EC319 - -Count = 94 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 5867CD78FC3FEDCF5F74D8030C10A5BF1756 - -Count = 95 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 8E3347D2EC3C4491D7E4D3B49DA32AA8B406 - -Count = 96 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = CBA5825E3F31D5216047511956A5032BE70E - -Count = 97 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 3A47B197412D5480C60F969D0173B4DFD703 - -Count = 98 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = 91991F00D8465A0EDA19794F6455BBBD7AF1 - -Count = 99 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 64BC2FEB86350C228B4A9C2CC991E0DC296C - -Count = 100 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102 -AD = -CT = 89A6BC83977A85A0318201CCD82D7000C630A0 - -Count = 101 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102 -AD = 00 -CT = CBF1A87612DE2BA707DCC4A048AD947F2F2094 - -Count = 102 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102 -AD = 0001 -CT = E54B7677F7F06905FDC116165B1790BAEAD56E - -Count = 103 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102 -AD = 000102 -CT = 8073F501F34C01B9AAA76110E03224E53CE06B - -Count = 104 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102 -AD = 00010203 -CT = 9F3F60F4DDCADB0EEB780215525534907ADDFE - -Count = 105 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102 -AD = 0001020304 -CT = 1D07AAE80B44EF2756869A51D0573BD421B337 - -Count = 106 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102 -AD = 000102030405 -CT = F5941EBE1793796B3DE284EE47B1BEE699F6FC - -Count = 107 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102 -AD = 00010203040506 -CT = 3E59841591349FCA4E8EB52346B8A02C0FE4EB - -Count = 108 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102 -AD = 0001020304050607 -CT = 15D3A5CBC45A837D85C92F0DC004FB10200011 - -Count = 109 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102 -AD = 000102030405060708 -CT = 39A67B7230DDA7EA57D3CAFA5A0452B0216717 - -Count = 110 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102 -AD = 00010203040506070809 -CT = 495F891769CFA2A3AA6B5AF51C77F0D043DF18 - -Count = 111 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102 -AD = 000102030405060708090A -CT = 84355B2400CFF6B13FBB58D8A25E6DF13883C0 - -Count = 112 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102 -AD = 000102030405060708090A0B -CT = BE57E3EB0D34916A3D9F0A432A090E00733555 - -Count = 113 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102 -AD = 000102030405060708090A0B0C -CT = F2E67F826B7A07D562E952B75395515097637C - -Count = 114 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102 -AD = 000102030405060708090A0B0C0D -CT = 26BD5476E060A04DAD6A02EC842117B0D6AD37 - -Count = 115 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102 -AD = 000102030405060708090A0B0C0D0E -CT = ACC9DFC08A365B4FD0AEF0122E84687D352CC5 - -Count = 116 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102 -AD = 000102030405060708090A0B0C0D0E0F -CT = B5604D0AC0C837A483FEA4C4839BFC4ABB620C - -Count = 117 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = A3DCE6C39516D216919AC04F2A6BB5AABEE839 - -Count = 118 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = A3716FA2A75BD400E7D7D84625FDBFE51EE170 - -Count = 119 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = A8844F1AF57963CA4AFA6FAE068AC5F45D0BBB - -Count = 120 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = ECBB638D3BD19827A7313ABE1ADCE7AF400F09 - -Count = 121 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = 502CE5F43FA8BBF9DA8901DF75D1EE7F647CE1 - -Count = 122 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = A85B713D48ED36C9D8A0E57AC2DFDD2E1BE76E - -Count = 123 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 64A76EC0F741F2988D882667541EB1FB93DB6B - -Count = 124 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = 9F092EB59A86E8FA8C71CFBF3D3270EA7893A3 - -Count = 125 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 7CE77BD2D1DC2F4EE3C3546875671FE5EF50BE - -Count = 126 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = AE5C18C442BBA1C6455ED97D52F4BDDF7BA004 - -Count = 127 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 58670D71E17C9B52B03EF6FBBDB608B25A658E - -Count = 128 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 8E3359A0501D6B729A20856E6FAE9C27E7DF0F - -Count = 129 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = CBA5ACD47741A41D7A26735808109F2A21A68E - -Count = 130 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 3A47EFF70847EF3C1A9B3D12C91680561F9DEF - -Count = 131 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = 91995B7246CED2BA5C9C238CEA095E56D82E58 - -Count = 132 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 64BCEF20F6D6E2C14D590E5E5C18EAC51B85DB - -Count = 133 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203 -AD = -CT = 89A6BC50C5231E96E9A06F662291F50541343A21 - -Count = 134 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203 -AD = 00 -CT = CBF1A8AFD542DF241765EA528A660A008214DD10 - -Count = 135 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203 -AD = 0001 -CT = E54B761ECB1214E3B4840BE1F78E8B1A241654CA - -Count = 136 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203 -AD = 000102 -CT = 8073F503CF01D899A898B8AC0A0086ADF9B10DC9 - -Count = 137 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203 -AD = 00010203 -CT = 9F3F600219C38BA35749779C85AB185F8D58D716 - -Count = 138 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203 -AD = 0001020304 -CT = 1D07AA1D2CEDA0AE4A5CC86D8948A0BAF1FD228A - -Count = 139 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203 -AD = 000102030405 -CT = F5941EF44248AB6CA452A775BBF6296B5C3D6875 - -Count = 140 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203 -AD = 00010203040506 -CT = 3E59844DAD26524DFF5E2B09490729C2B5AD9B0B - -Count = 141 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203 -AD = 0001020304050607 -CT = 15D3A59134FC14180F76BB1EAADA3BDBC2F9D452 - -Count = 142 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203 -AD = 000102030405060708 -CT = 39A67BEA301210D5421EB58242A63869383997FF - -Count = 143 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203 -AD = 00010203040506070809 -CT = 495F89652AB32FD2476D37D9BBEAFAB62104D720 - -Count = 144 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203 -AD = 000102030405060708090A -CT = 84355B90E2D8DFF037A6C6937D1D03593D4CFE08 - -Count = 145 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203 -AD = 000102030405060708090A0B -CT = BE57E303E466E38065B2CC81284482C2E303D55C - -Count = 146 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203 -AD = 000102030405060708090A0B0C -CT = F2E67F04BDB59589CFCB3A0B6EC837A1E2DF97A4 - -Count = 147 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203 -AD = 000102030405060708090A0B0C0D -CT = 26BD543E37F280C725A54A67FC324DCD391A997A - -Count = 148 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203 -AD = 000102030405060708090A0B0C0D0E -CT = ACC9DFB18BCF6128B759994FB82215BE3703D913 - -Count = 149 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203 -AD = 000102030405060708090A0B0C0D0E0F -CT = B5604DCF35AA4A34A87A463B1874857DB4F962DE - -Count = 150 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = A3DCE6A3567643F03F7B36BB429EA434CBD1186C - -Count = 151 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = A3716FAF16631A092D139552726AAE3353BD2840 - -Count = 152 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = A8844FEE41C029DE90B1D4265BB3BDB9ECB6C7BF - -Count = 153 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = ECBB6385EC68E5767D77E8498D4D78493B39230B - -Count = 154 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = 502CE5C9379E3C9591B0459F237E06B4C2438F58 - -Count = 155 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = A85B7100BB7EE6E3B708A3BBFB3D11717C9ED1F0 - -Count = 156 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 64A76E090BD453C59C5D823A23E7798058490A8B - -Count = 157 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = 9F092EE00DE05B81EF8EEF3B5C7CC74272E90114 - -Count = 158 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 7CE77BF21466DC958D7B5C1BC8EEC7C1B5818879 - -Count = 159 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = AE5C18C2108923808B6077D5459ACB9ECCD50272 - -Count = 160 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 58670DEDB3A866C899C875ABB33B29346ADA9D3E - -Count = 161 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 8E33595679C049D63E09F1825702080211A6EA6D - -Count = 162 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = CBA5AC3E357D81CEC1EE3A4C9D2A7AF6873D64C1 - -Count = 163 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 3A47EF6D8137AA45DF262F3DBF5BC39109F3947C - -Count = 164 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = 91995B955D8733D8C5733A966B75BFE2C7C9FFCA - -Count = 165 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 64BCEF8D47A2C0D41BFBAE751C37F584119223AC - -Count = 166 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304 -AD = -CT = 89A6BC509C67AAD3A5EFFBCC98336B63A07B527F5B - -Count = 167 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304 -AD = 00 -CT = CBF1A8AF0382EFB2BF936EE6C55D90F62DD169F472 - -Count = 168 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304 -AD = 0001 -CT = E54B761E4A7B6826D0D57CB16F93FBD8E37C9459D9 - -Count = 169 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304 -AD = 000102 -CT = 8073F503267C666EBFC2ACA2F74AB38DECFA04D1AC - -Count = 170 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304 -AD = 00010203 -CT = 9F3F6002F8D617E6EF9C02237105E509C424DC88BA - -Count = 171 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304 -AD = 0001020304 -CT = 1D07AA1D70E56AE9662FE300FE4FDC272A7812A8D9 - -Count = 172 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304 -AD = 000102030405 -CT = F5941EF434491C2F373675A69E09D550574AEC7EB5 - -Count = 173 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304 -AD = 00010203040506 -CT = 3E59844D00DDE437474C86C3C391FFBD62BA210BF6 - -Count = 174 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304 -AD = 0001020304050607 -CT = 15D3A591833EBB45A53AB6B966651ACA7DB64F3B1E - -Count = 175 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304 -AD = 000102030405060708 -CT = 39A67BEA2B2DD643AF84210E8E7F5C5F3FAEEBB31D - -Count = 176 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304 -AD = 00010203040506070809 -CT = 495F89651BDBCF34AFA4CCE73E809175DD8A5AA557 - -Count = 177 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304 -AD = 000102030405060708090A -CT = 84355B90FC96AD5EC7BEDBB3F883253F80CB75DB5A - -Count = 178 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304 -AD = 000102030405060708090A0B -CT = BE57E3035FE7292680AC70399EBFDCE6D62634BBCE - -Count = 179 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304 -AD = 000102030405060708090A0B0C -CT = F2E67F043065FEB165E921A35FA0FAE6BE9D647BC0 - -Count = 180 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304 -AD = 000102030405060708090A0B0C0D -CT = 26BD543E0E393F7C2D10D85AE5DC41849DDA30BA15 - -Count = 181 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304 -AD = 000102030405060708090A0B0C0D0E -CT = ACC9DFB1047EA62A44DDF4B9B97E84A6D32C8BF25E - -Count = 182 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304 -AD = 000102030405060708090A0B0C0D0E0F -CT = B5604DCF952A28CF2E9B3996A2F97E81E8B1693758 - -Count = 183 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = A3DCE6A36D0791C3EA2740F0D45210C613FE78F7BF - -Count = 184 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = A3716FAF5C6985F9F5DD6AC93EFEB55CDC949ADF62 - -Count = 185 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = A8844FEE4724BF8D5DE5457EC5260536842C4A9FDF - -Count = 186 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = ECBB6385038F6A8AAC4068BF9061C1ACE347085A88 - -Count = 187 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = 502CE5C9F6C16C14D006373B6B033FD49190D4D379 - -Count = 188 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = A85B710074AFAC543F4C1FB5BFFB424708BD1C2D3C - -Count = 189 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 64A76E0931601661BA56D3BDE826A72AF91FF4DB11 - -Count = 190 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = 9F092EE04E39D2D95D3D3A0A82B0FB30F5CAFB5A72 - -Count = 191 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 7CE77BF23E209ADBAA4867CA1AD63E4A4B17908DBB - -Count = 192 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = AE5C18C2DAAA0B1734508E058378F38E225683C576 - -Count = 193 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 58670DED3A8423F21461DFF629ED1871C3D24300A6 - -Count = 194 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 8E3359569760D6B2EDAA58CA752B872B3282A58221 - -Count = 195 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = CBA5AC3E70349D65556CE95F8752B25B50A15CD742 - -Count = 196 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 3A47EF6DC17B9A572E2D91D4E5E2AC6355AF9FE2C1 - -Count = 197 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = 91995B95E277D8FB4F7C4E89C71B3DAA3C7D9F11D7 - -Count = 198 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 64BCEF8DAECE7BFBCECFAC4AC6D4E02941704AD26E - -Count = 199 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405 -AD = -CT = 89A6BC509C2FAFE883D718EA3F5F57E38E272B77D25C - -Count = 200 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405 -AD = 00 -CT = CBF1A8AF0311531E76CD7D5A5C0F193F16DB95633BA9 - -Count = 201 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405 -AD = 0001 -CT = E54B761E4A8F7A5481E94FEF54CA1AE0415DE60EBEE6 - -Count = 202 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405 -AD = 000102 -CT = 8073F50326B51A12A721C9F740978A08EDA84893113C - -Count = 203 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405 -AD = 00010203 -CT = 9F3F6002F89F03F1649909A837D362FFA0A17AF16923 - -Count = 204 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405 -AD = 0001020304 -CT = 1D07AA1D70FD93D8AD81C92EDB62E1BD2060E447ADC0 - -Count = 205 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405 -AD = 000102030405 -CT = F5941EF434BC19515366CAC1483BCDC362220A4F42C8 - -Count = 206 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405 -AD = 00010203040506 -CT = 3E59844D00E14DADF939EAF32281367E1746ADF98FB9 - -Count = 207 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405 -AD = 0001020304050607 -CT = 15D3A591835709D5565C3730DA132B03D85329436823 - -Count = 208 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405 -AD = 000102030405060708 -CT = 39A67BEA2BD6D90D81ED955D8376C88C6F11B1960CAF - -Count = 209 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405 -AD = 00010203040506070809 -CT = 495F89651B34FC582DBDE637D560A03C50D2602A139B - -Count = 210 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405 -AD = 000102030405060708090A -CT = 84355B90FCA6B7C672A8793E786E0DD765509EE26F49 - -Count = 211 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405 -AD = 000102030405060708090A0B -CT = BE57E3035F319DF8C9A266D028347B4B7564A4DD88D2 - -Count = 212 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405 -AD = 000102030405060708090A0B0C -CT = F2E67F043069B7DDD4AA08D9187A5F77E8B08789402B - -Count = 213 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405 -AD = 000102030405060708090A0B0C0D -CT = 26BD543E0ED967C9E2853313F569D149C542C111B44E - -Count = 214 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405 -AD = 000102030405060708090A0B0C0D0E -CT = ACC9DFB1049535079CFED2BEB61C07B2E57F022758EC - -Count = 215 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405 -AD = 000102030405060708090A0B0C0D0E0F -CT = B5604DCF9517BD1D054EE697F87E318B941ADF98793D - -Count = 216 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = A3DCE6A36D4297E17AB1D4995AD0232A524B82373D43 - -Count = 217 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = A3716FAF5CE0D18EEE11EE35D240CE1CD9C82ECBFB0C - -Count = 218 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = A8844FEE475AD01DD366B7A5DF95993CDE37EDA9A1AD - -Count = 219 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = ECBB638503C5A69D62915DBE4610A0E506187B455627 - -Count = 220 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = 502CE5C9F6B61792CC7D63763627B59F8B33C6949AC8 - -Count = 221 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = A85B710074775636362676B385F4052FACBDCADF91B9 - -Count = 222 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 64A76E093101B9388CD9E26D43A815609EBC162946AD - -Count = 223 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = 9F092EE04EA8DD7E6D74C5BF0DB5A5540B82896CC7B7 - -Count = 224 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 7CE77BF23E7218E3A3D96DF3080D6483D7DD0EDE8F68 - -Count = 225 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = AE5C18C2DAC4B780B27880BE1C515C290244D733D2D8 - -Count = 226 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 58670DED3A072B115E3F32D9E0F32F373295475D8BAC - -Count = 227 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 8E33595697706EC5B15B3E2BBDB942755AD0350D9F92 - -Count = 228 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = CBA5AC3E706CA807B2486D1E3CA7810694AF79A7B859 - -Count = 229 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 3A47EF6DC17BF40AC008B551E37823BF51A187322FD9 - -Count = 230 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = 91995B95E221BD7995620D3519F76C1029125CAC9CAC - -Count = 231 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 64BCEF8DAE0A31D8680989A449F2E58560B49F2D152A - -Count = 232 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506 -AD = -CT = 89A6BC509C2FA1FF3F4E0AB9C88687267DE87350261075 - -Count = 233 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506 -AD = 00 -CT = CBF1A8AF0311E9BD5B64B5DFE06E40BE30D204028CF036 - -Count = 234 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506 -AD = 0001 -CT = E54B761E4A8F0D37FACC5DEC04D2A31C7B96AB12928278 - -Count = 235 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506 -AD = 000102 -CT = 8073F50326B592A1EE20F00DFE3530C533116919E61B65 - -Count = 236 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506 -AD = 00010203 -CT = 9F3F6002F89F5CA9A1F7027050810A065F7DCEE14FCAE7 - -Count = 237 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506 -AD = 0001020304 -CT = 1D07AA1D70FD65652D08DB9A2723FF22B693819CDAAFB9 - -Count = 238 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506 -AD = 000102030405 -CT = F5941EF434BCE811951B4E6696711CAA3B970AB07D51A8 - -Count = 239 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506 -AD = 00010203040506 -CT = 3E59844D00E1B3ABE12D08BFC0C94A65B732668A69BC93 - -Count = 240 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506 -AD = 0001020304050607 -CT = 15D3A59183579562B9AAD9D8181D5C865B8C67CDC1ECE7 - -Count = 241 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506 -AD = 000102030405060708 -CT = 39A67BEA2BD662BDF9A57E079E8E78475C4F469AA33A8B - -Count = 242 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506 -AD = 00010203040506070809 -CT = 495F89651B34602E9821BEB5160FEB8EC3967B843FF5B3 - -Count = 243 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506 -AD = 000102030405060708090A -CT = 84355B90FCA6CC35FC8938ED9B13443C7873F1B29D2329 - -Count = 244 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506 -AD = 000102030405060708090A0B -CT = BE57E3035F312165A5BA118A8DD563A5847F45A6EFD745 - -Count = 245 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506 -AD = 000102030405060708090A0B0C -CT = F2E67F04306927025A70A33143986457D7BDC1D8C712AC - -Count = 246 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506 -AD = 000102030405060708090A0B0C0D -CT = 26BD543E0ED9A943ABA14D2B9F8DE867081F685ABF1946 - -Count = 247 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506 -AD = 000102030405060708090A0B0C0D0E -CT = ACC9DFB104957F8A75BCE7374CEDA18819B7F13457FE75 - -Count = 248 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506 -AD = 000102030405060708090A0B0C0D0E0F -CT = B5604DCF9517E31B6BABB9E17918DB17E00FB21B32EBA6 - -Count = 249 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = A3DCE6A36D42452E818C71B1F541293A1DCC309023F2F2 - -Count = 250 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = A3716FAF5CE05A8FE616983B390B0AA9AB0861A376A06A - -Count = 251 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = A8844FEE475A9B26F62F9605D466A5305780BC46438A5D - -Count = 252 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = ECBB638503C55987EB4130247764492D9C99C070EB8290 - -Count = 253 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = 502CE5C9F6B61A6440354E590924C9D151A649E538ACB7 - -Count = 254 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = A85B710074776A5C4BD6F1163129B788B9C6EA8492DE60 - -Count = 255 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 64A76E093101B46438C5B6359BB7A913345ABC45FE41C8 - -Count = 256 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = 9F092EE04EA80A396E12AD005CDDFC4533911AD713BC09 - -Count = 257 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 7CE77BF23E72ADF20321DA3D70AB6FAC7E4DCF9366F8CA - -Count = 258 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = AE5C18C2DAC4C616257EC249AE14EDD6A46F6DA407B116 - -Count = 259 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 58670DED3A0718E408602D57C9B52399421CAE9D5504F5 - -Count = 260 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 8E3359569770A998B2154EBE1725275067B8B914175150 - -Count = 261 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = CBA5AC3E706C381C66BF4BCA7F95DD357A37BC62BF1942 - -Count = 262 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 3A47EF6DC17B531465C0092F651CC6143CB7C85BD269FA - -Count = 263 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = 91995B95E221DDD146A8C9CC6A5DCF6DEB0D900F11B8EA - -Count = 264 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 64BCEF8DAE0A005332E5A90D15F6E284E614170154455E - -Count = 265 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304050607 -AD = -CT = 89A6BC509C2FA19985D311F6C23A1390FC6988E50507AB8D - -Count = 266 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304050607 -AD = 00 -CT = CBF1A8AF0311E9921AA571635480AB54E9FDD9283C9CCE2A - -Count = 267 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304050607 -AD = 0001 -CT = E54B761E4A8F0D1DC7578E7B54A2749B6686E16AEEE18CB3 - -Count = 268 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304050607 -AD = 000102 -CT = 8073F50326B592E50A18B4CC7D509FAE42922A4240933916 - -Count = 269 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304050607 -AD = 00010203 -CT = 9F3F6002F89F5CA221DF6F6802181422C9D58113FA0C1F8E - -Count = 270 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304050607 -AD = 0001020304 -CT = 1D07AA1D70FD6573D467D9C06A2F200BE279E534614A0E71 - -Count = 271 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304050607 -AD = 000102030405 -CT = F5941EF434BCE8E3D11701B6ED6F8615D9FE435C334C80B0 - -Count = 272 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304050607 -AD = 00010203040506 -CT = 3E59844D00E1B3B1DE488E2024209622CEBFB416F2B049CC - -Count = 273 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304050607 -AD = 0001020304050607 -CT = 15D3A591835795972446B68ADFBB5648BD562A91C282C561 - -Count = 274 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304050607 -AD = 000102030405060708 -CT = 39A67BEA2BD6620D7EB1EC8ED0236A6C6000D21AAC612C8C - -Count = 275 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304050607 -AD = 00010203040506070809 -CT = 495F89651B3460E653C63F2392D4FFFB56D1E6CC9D12BDE7 - -Count = 276 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304050607 -AD = 000102030405060708090A -CT = 84355B90FCA6CC9632C53A40C3587A709B61B6B97D5E94DF - -Count = 277 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304050607 -AD = 000102030405060708090A0B -CT = BE57E3035F3121F15DDD175F4020C66A0B35CA199A06AA19 - -Count = 278 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304050607 -AD = 000102030405060708090A0B0C -CT = F2E67F0430692732ABAFADE7A55B4052D1ED39FEBCCEDC48 - -Count = 279 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304050607 -AD = 000102030405060708090A0B0C0D -CT = 26BD543E0ED9A9C73FD8D0FB43FBC7A628E3EBEDA23153A6 - -Count = 280 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304050607 -AD = 000102030405060708090A0B0C0D0E -CT = ACC9DFB104957F6FD5CBB4C0E9CACCE84AA7A9080A969E72 - -Count = 281 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304050607 -AD = 000102030405060708090A0B0C0D0E0F -CT = B5604DCF9517E3380D869A39E999C7DA1D09A175C55FC6C8 - -Count = 282 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304050607 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = A3DCE6A36D424519CD441690EDE24A7016FA3F9C8ECF1743 - -Count = 283 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304050607 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = A3716FAF5CE05AE08CF6E8DB3384E492FDCD2260E7104447 - -Count = 284 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304050607 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = A8844FEE475A9B1052B82AD79B12930FB2217A9E7312778C - -Count = 285 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304050607 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = ECBB638503C55975D8FF28ABECE30538676B1D1E6DBF7D37 - -Count = 286 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304050607 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = 502CE5C9F6B61A27CC90BE87B03B9AE15A3BEB7A216A6DDF - -Count = 287 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304050607 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = A85B710074776A797490043C5857C688BA83A14EBD97B62A - -Count = 288 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304050607 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 64A76E093101B414F8C0EE08AB16D15A947F3BC628766E48 - -Count = 289 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304050607 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = 9F092EE04EA80A59121EAA4661144E91E6E6CC25F4272936 - -Count = 290 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304050607 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 7CE77BF23E72AD3C84BB3E1B9C0382C1D7759F93E6B27B7D - -Count = 291 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304050607 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = AE5C18C2DAC4C6630CC80DA962408CC406363A9B40AA3A6D - -Count = 292 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304050607 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 58670DED3A07188359CE6D7451B00C55106E2AFA8DD2E81A - -Count = 293 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304050607 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 8E3359569770A9A42912DCD82E02B3054DCF687AE2117B4A - -Count = 294 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304050607 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = CBA5AC3E706C38CC5F630EEDDBEAC819C2DEEF2201711B29 - -Count = 295 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304050607 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 3A47EF6DC17B5364167C534D49662E61B849ED74226F370E - -Count = 296 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304050607 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = 91995B95E221DDAC10A9C0E8248D2EB6CA92650238AA8D5A - -Count = 297 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 0001020304050607 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 64BCEF8DAE0A00AB16046BBEAB8E9CFA426C2728187A849D - -Count = 298 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708 -AD = -CT = 89A6BC509C2FA19946BB90A56E0513305B63E9890AB3569F53 - -Count = 299 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708 -AD = 00 -CT = CBF1A8AF0311E992A78A32AA8D4E740C68D754B32319FEA66F - -Count = 300 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708 -AD = 0001 -CT = E54B761E4A8F0D1D9444592A2FB4B251A691B45D2B5D477A7C - -Count = 301 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708 -AD = 000102 -CT = 8073F50326B592E59269DA4A89B869C4E11E35833A4F669BB4 - -Count = 302 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708 -AD = 00010203 -CT = 9F3F6002F89F5CA2B4D05823AD1B6DC0165A9BFA05716B3E02 - -Count = 303 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708 -AD = 0001020304 -CT = 1D07AA1D70FD65735A730665EACE083909FEE6B522ACBBE28F - -Count = 304 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708 -AD = 000102030405 -CT = F5941EF434BCE8E38E2364E46E4AD44F13298E0F5CF40EC4E8 - -Count = 305 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708 -AD = 00010203040506 -CT = 3E59844D00E1B3B13E86348437080D7B960C8083022638C655 - -Count = 306 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708 -AD = 0001020304050607 -CT = 15D3A59183579597383CDCC93C39AA74539A915959F14221A7 - -Count = 307 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708 -AD = 000102030405060708 -CT = 39A67BEA2BD6620D0DACB3835A5C3B014477CB3E4A2C7F385A - -Count = 308 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708 -AD = 00010203040506070809 -CT = 495F89651B3460E65FB0E607DBC745C42DFC69B76A1450E12A - -Count = 309 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708 -AD = 000102030405060708090A -CT = 84355B90FCA6CC96DBE97B4A3C18D5343EE196FAD5BCEF366F - -Count = 310 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708 -AD = 000102030405060708090A0B -CT = BE57E3035F3121F1079764C09DE7C5F2EED33F8C0523DE2FA9 - -Count = 311 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708 -AD = 000102030405060708090A0B0C -CT = F2E67F043069273262BEAC89B4CFD665D649D82000D9BF8F2E - -Count = 312 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708 -AD = 000102030405060708090A0B0C0D -CT = 26BD543E0ED9A9C7D029DAF78D5B25A2E2630A6E5C413FCA84 - -Count = 313 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708 -AD = 000102030405060708090A0B0C0D0E -CT = ACC9DFB104957F6F5BBBF988040E2E57CAAA9B4A10F16767D6 - -Count = 314 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708 -AD = 000102030405060708090A0B0C0D0E0F -CT = B5604DCF9517E3384C5D55A7102322C089D2AAC80B0DD3F390 - -Count = 315 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = A3DCE6A36D4245193B3BBC18566222D350060CD97126E3E051 - -Count = 316 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = A3716FAF5CE05AE0DB29F2899321EEB2B708480CAA6CECF092 - -Count = 317 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = A8844FEE475A9B10ACB5AEA87BB37AE1EBE36077E57E8CAFB5 - -Count = 318 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = ECBB638503C5597536469C3C42947E378E2F3DADA92C93FDF6 - -Count = 319 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = 502CE5C9F6B61A27736FFC2AD3DCE21991BD31BF256604D5E0 - -Count = 320 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = A85B710074776A79958222CB75B72337A721FBC3D1AE9A4DE5 - -Count = 321 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 64A76E093101B4145E94C0E8C6557EE393955E0ECACEC695F5 - -Count = 322 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = 9F092EE04EA80A598D2A37B080E1821C3F5CB61BE972ED498D - -Count = 323 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 7CE77BF23E72AD3CB72D897D9AE735007518C5A5D2A669F316 - -Count = 324 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = AE5C18C2DAC4C663566417ED8EB94F5592506E7BE90926FF9A - -Count = 325 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 58670DED3A0718839BC1CA87FCF0985878ADDA3EBE9D44BDD9 - -Count = 326 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 8E3359569770A9A49D021752031963E9214F6FD35CF7E0F6B6 - -Count = 327 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = CBA5AC3E706C38CCB715CC1ADA9DD5C35DDA6BB564083CA68A - -Count = 328 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 3A47EF6DC17B5364E37275FCDBED9446A9A7366055C306AC84 - -Count = 329 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = 91995B95E221DDAC697DFAD028C5429DBF79B1C978BD7158AF - -Count = 330 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 64BCEF8DAE0A00AB4938CABA8D23BC7550D5449065BD3F7D12 - -Count = 331 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506070809 -AD = -CT = 89A6BC509C2FA199469FCDBBF235311CE7D092D277C4292A932B - -Count = 332 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506070809 -AD = 00 -CT = CBF1A8AF0311E992A7412EA125B6D913A932EBA9523B2DDF40ED - -Count = 333 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506070809 -AD = 0001 -CT = E54B761E4A8F0D1D94D9ED21708B33C930E8D64D5E099D812BAC - -Count = 334 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506070809 -AD = 000102 -CT = 8073F50326B592E5922BB08D428DF0106F7C30DC44B408600C6E - -Count = 335 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506070809 -AD = 00010203 -CT = 9F3F6002F89F5CA2B48DDFEDDDBEE5BB2B07EA73374D7485EE14 - -Count = 336 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506070809 -AD = 0001020304 -CT = 1D07AA1D70FD65735A2C35ED369F523FA92CEA9EA3BE5A55315F - -Count = 337 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506070809 -AD = 000102030405 -CT = F5941EF434BCE8E38E632112FEC62EAB408619506C9EF38C65DD - -Count = 338 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506070809 -AD = 00010203040506 -CT = 3E59844D00E1B3B13E8E6C6825759002B59792F435F7D0D38464 - -Count = 339 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506070809 -AD = 0001020304050607 -CT = 15D3A5918357959738589E7A682BE14924935695447AAE7E7E0F - -Count = 340 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506070809 -AD = 000102030405060708 -CT = 39A67BEA2BD6620D0D46042D74EBF959CC0A2D224DCE310E001F - -Count = 341 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506070809 -AD = 00010203040506070809 -CT = 495F89651B3460E65F00A51B0AF19ADF71E72BA56DE7A0BD4E97 - -Count = 342 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506070809 -AD = 000102030405060708090A -CT = 84355B90FCA6CC96DB8296BEF5B088045831D3427DA6043CD5C5 - -Count = 343 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506070809 -AD = 000102030405060708090A0B -CT = BE57E3035F3121F1071DAF86350AD9959D3CE809808293D449F3 - -Count = 344 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C -CT = F2E67F043069273262C433D936865AC6E597FD3BC72C7F4156F6 - -Count = 345 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C0D -CT = 26BD543E0ED9A9C7D06C71B3695053CFF6417A8BDCC9BFB59A45 - -Count = 346 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C0D0E -CT = ACC9DFB104957F6F5B615DDEA8DBF165499792ECF451796244D2 - -Count = 347 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C0D0E0F -CT = B5604DCF9517E3384C47A262AA449EF56499D617414D4C896D14 - -Count = 348 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = A3DCE6A36D4245193B10165C52472EDEA889A874C5BBFE52EB60 - -Count = 349 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = A3716FAF5CE05AE0DB7AD233BBD67B7CE69C2E24776CBD359A6D - -Count = 350 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = A8844FEE475A9B10ACE26EBC4AFC66F8C650B1A34A72FD6C381B - -Count = 351 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = ECBB638503C559753693BAA1F38895D566F7733329FD6BD33E70 - -Count = 352 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = 502CE5C9F6B61A27732426427ED1387907CACD3965EA199A8CA1 - -Count = 353 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = A85B710074776A79954E9F2AAB40A78352F69DC25CE275BF9D69 - -Count = 354 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 64A76E093101B4145E1F10A3C510F1E81A18BB132EC4391F6320 - -Count = 355 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = 9F092EE04EA80A598D8798266FE34946A56D264F7A3368507CE3 - -Count = 356 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 7CE77BF23E72AD3CB7F3C0459254AE638C1B311E9A4FDA5D8FFC - -Count = 357 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = AE5C18C2DAC4C66356195E86697FB985CA206B3CC767102ED955 - -Count = 358 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 58670DED3A0718839B4B249A2F8A0450622AAA7251550C80A214 - -Count = 359 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 8E3359569770A9A49DCFC180A11F1EAC687C96A86BB2F6020BC0 - -Count = 360 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = CBA5AC3E706C38CCB7F9796EEB02DCC4A0B70D5E10DA36F43CA3 - -Count = 361 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 3A47EF6DC17B5364E30F5ABC7445C2ACE584CB7394A0FB627481 - -Count = 362 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = 91995B95E221DDAC6916E6AC4F1E28F356222FE712A65E84C864 - -Count = 363 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 64BCEF8DAE0A00AB494C04D312335F8453C3EA680350031D65EF - -Count = 364 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A -AD = -CT = 89A6BC509C2FA199469F9291A2B928035B7A9162ED79E25484C2D9 - -Count = 365 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A -AD = 00 -CT = CBF1A8AF0311E992A7410E80696CD31C78B016DCB28A74B3CAC8EC - -Count = 366 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A -AD = 0001 -CT = E54B761E4A8F0D1D94D92F4496A44241FBDDDB98923ED251AFBB84 - -Count = 367 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A -AD = 000102 -CT = 8073F50326B592E5922BADF85D5CF35D5133EC822D1D74B22E8861 - -Count = 368 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A -AD = 00010203 -CT = 9F3F6002F89F5CA2B48DF52ECBA388CEAEEF3D1A6EF3B7CF290F24 - -Count = 369 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A -AD = 0001020304 -CT = 1D07AA1D70FD65735A2CD0562EF2C4EECC0154E2CE09EA0FA3095D - -Count = 370 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A -AD = 000102030405 -CT = F5941EF434BCE8E38E63F5464A36ADCF52862227C7B8BFAD99B70A - -Count = 371 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A -AD = 00010203040506 -CT = 3E59844D00E1B3B13E8E65B6B5FC804A9DA164C902C904E4389D9E - -Count = 372 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A -AD = 0001020304050607 -CT = 15D3A591835795973858CF04FEABE60D1E1E246503EFAE853E3B79 - -Count = 373 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A -AD = 000102030405060708 -CT = 39A67BEA2BD6620D0D4665C789F2AAC742B2307251D21AFEC58C30 - -Count = 374 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A -AD = 00010203040506070809 -CT = 495F89651B3460E65F003BBDF847AC520277D4DDAFE82A679E9D72 - -Count = 375 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A -AD = 000102030405060708090A -CT = 84355B90FCA6CC96DB82A956EABD342A354426E5F2C932B533855B - -Count = 376 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A -AD = 000102030405060708090A0B -CT = BE57E3035F3121F1071DA18CDA52B8CE04977143170032ECCA2634 - -Count = 377 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C -CT = F2E67F043069273262C42DFDD300D0C91F8C395C29DDD8E707298B - -Count = 378 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C0D -CT = 26BD543E0ED9A9C7D06C11BFDCA90B0E2B2D847D8AC38A25DCB55A - -Count = 379 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C0D0E -CT = ACC9DFB104957F6F5B61F438580D17993CA385FEC9E22B1464219E - -Count = 380 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C0D0E0F -CT = B5604DCF9517E3384C4771FA651FEDCF609B8E989E710F63F8C44D - -Count = 381 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C0D0E0F10 -CT = A3DCE6A36D4245193B10BDB1C9986BB9C82B700CD9E86D67651ADF - -Count = 382 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = A3716FAF5CE05AE0DB7A87ED7BAABD344781C5DEBD929CDF35315F - -Count = 383 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = A8844FEE475A9B10ACE25F6CA27879ECA03D99003434A047442254 - -Count = 384 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = ECBB638503C559753693A570BA2858CCC1ACD5E166C67D8C759749 - -Count = 385 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = 502CE5C9F6B61A277324D94CFC276CD7F9802497ABBECA77EFE7CD - -Count = 386 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = A85B710074776A79954E9376221015102E311312967A81139E2EDC - -Count = 387 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 64A76E093101B4145E1F1CA7CA41E27A5410CA641FCD12D1A66E1B - -Count = 388 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = 9F092EE04EA80A598D87EE16981CC94ADA577F0106BA00A1AF834E - -Count = 389 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 7CE77BF23E72AD3CB7F3C0E452F3849E6685C6A315572083BF43BC - -Count = 390 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = AE5C18C2DAC4C6635619794E57701A9A76F8871D5FD150BC032F3E - -Count = 391 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 58670DED3A0718839B4B0CBEACF0FD0A0915284E9843360146358D - -Count = 392 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 8E3359569770A9A49DCF7AF198A04DFF7CEA7D15824A20AC22B1B2 - -Count = 393 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = CBA5AC3E706C38CCB7F9D32407009A5CBA128889375D44573BEB27 - -Count = 394 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 3A47EF6DC17B5364E30F0A6D86B1CD7ED30D320EEF65C7E93BD745 - -Count = 395 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = 91995B95E221DDAC69161CED64750593F8F257D7AD44CD600A675D - -Count = 396 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 64BCEF8DAE0A00AB494C0607E02E55ABC48EEEC95A9BB941412F01 - -Count = 397 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B -AD = -CT = 89A6BC509C2FA199469F92E4CCD4EA0AB3B86151E2AF867E3C52C63F - -Count = 398 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B -AD = 00 -CT = CBF1A8AF0311E992A7410E62739CF4BCDF02206D1BDDABBF8D38EFD8 - -Count = 399 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B -AD = 0001 -CT = E54B761E4A8F0D1D94D92F14971B1D5C0185F3763B427AC5BCA7DB42 - -Count = 400 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B -AD = 000102 -CT = 8073F50326B592E5922BAD63B910B24B780BFEC1AC9A900991D7882D - -Count = 401 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B -AD = 00010203 -CT = 9F3F6002F89F5CA2B48DF5303AA4AA98FBC31032573C0E4C73CA84D6 - -Count = 402 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B -AD = 0001020304 -CT = 1D07AA1D70FD65735A2CD02358810F9D3DB409742E1DA75E3F25A96C - -Count = 403 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B -AD = 000102030405 -CT = F5941EF434BCE8E38E63F5FD5C59382E06F61ADC780F88F32F086B5F - -Count = 404 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B -AD = 00010203040506 -CT = 3E59844D00E1B3B13E8E65DB163251A7D847D47823AEE1211D8ACB92 - -Count = 405 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B -AD = 0001020304050607 -CT = 15D3A591835795973858CFFD1AEB47F50B389CACD43B4FFC05E82D6D - -Count = 406 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B -AD = 000102030405060708 -CT = 39A67BEA2BD6620D0D466558F3AC8AAC85E5027F1B77CDA2DB7220AB - -Count = 407 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B -AD = 00010203040506070809 -CT = 495F89651B3460E65F003BA7CA8F9912996AA2EEE11090D1FC837598 - -Count = 408 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B -AD = 000102030405060708090A -CT = 84355B90FCA6CC96DB82A9670A853BE08F1871DB76A4D411B6C39B75 - -Count = 409 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B -CT = BE57E3035F3121F1071DA1550CB7A1684360EB2C1BE9C4F3917909FB - -Count = 410 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C -CT = F2E67F043069273262C42D958C7E2781B92C288FCAD82605764B9F6C - -Count = 411 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C0D -CT = 26BD543E0ED9A9C7D06C1135C14831394BCF300849D12DDE1A3251C5 - -Count = 412 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C0D0E -CT = ACC9DFB104957F6F5B61F44EBA3102C9D86AFEB7414AE4B27FC718AD - -Count = 413 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C0D0E0F -CT = B5604DCF9517E3384C47714B4DD98B970B3292894EB8B6B344370C84 - -Count = 414 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C0D0E0F10 -CT = A3DCE6A36D4245193B10BD96705CFCC76C0AB7B5A5A940ACD1B57EE5 - -Count = 415 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = A3716FAF5CE05AE0DB7A87E354CE8BA50471F683A7B2DA7E22A7EEEF - -Count = 416 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = A8844FEE475A9B10ACE25F7D795043D95F30B924E74C8D6F322D45F3 - -Count = 417 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = ECBB638503C559753693A57043643C166DE2FAE4461152C4C94E8BA8 - -Count = 418 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = 502CE5C9F6B61A277324D9536A0616E7F7069ED479DC3B7ED7B981DB - -Count = 419 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = A85B710074776A79954E93052B105EC480A39ACC47B47BB2C3F40A4E - -Count = 420 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 64A76E093101B4145E1F1C952549E7FDAC3312967D8C7E8F0B2E7AA7 - -Count = 421 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = 9F092EE04EA80A598D87EE1DFF9EEE05DA2E19A1E205BECE77347975 - -Count = 422 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 7CE77BF23E72AD3CB7F3C0D19F7F360758E720AB7D56C36A405B9D5C - -Count = 423 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = AE5C18C2DAC4C66356197960D6E678CB5EDCB3A72DF9DB270125129D - -Count = 424 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 58670DED3A0718839B4B0C60ED6BF88C9EBF36816CD03CE799E63AB2 - -Count = 425 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 8E3359569770A9A49DCF7ACA23991977320EB6FAF58A6E3C95906392 - -Count = 426 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = CBA5AC3E706C38CCB7F9D3C1F7A2F72C6FC2055EE3A59A12FA9CC3A2 - -Count = 427 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 3A47EF6DC17B5364E30F0AC6AC81983CD0B235C4966515A17E3F35A0 - -Count = 428 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = 91995B95E221DDAC69161C9D1447FF1E7CAC22BFCE56351ADFE1FCF5 - -Count = 429 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 64BCEF8DAE0A00AB494C067512232E32D015B2CD9104ECB2624D5BFC - -Count = 430 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C -AD = -CT = 89A6BC509C2FA199469F92E4F4AF154849D57C7D8292B982AD3E17428D - -Count = 431 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C -AD = 00 -CT = CBF1A8AF0311E992A7410E6238DE59ED371A2ADCE0241578FE5CF3A918 - -Count = 432 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C -AD = 0001 -CT = E54B761E4A8F0D1D94D92F149B7956F748FC788C2EDF784A728CF6CF00 - -Count = 433 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C -AD = 000102 -CT = 8073F50326B592E5922BAD631EA40AC47AFEFCC38937B3E2B27AD964BB - -Count = 434 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C -AD = 00010203 -CT = 9F3F6002F89F5CA2B48DF5300DA117F3AC375F8031EAEF2B0F41794EA5 - -Count = 435 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C -AD = 0001020304 -CT = 1D07AA1D70FD65735A2CD02305410C0213ADD832F7898255181E8FF92A - -Count = 436 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C -AD = 000102030405 -CT = F5941EF434BCE8E38E63F5FD9C5B0819703E983BD74A67B02119687831 - -Count = 437 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C -AD = 00010203040506 -CT = 3E59844D00E1B3B13E8E65DB34E8339153B199D9CC357745DCBE3F55BC - -Count = 438 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C -AD = 0001020304050607 -CT = 15D3A591835795973858CFFDF3377ECCCB6121F26AAF3E18BF6A95C4A8 - -Count = 439 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C -AD = 000102030405060708 -CT = 39A67BEA2BD6620D0D46655816343951452C21C09476DD1C487D2C652C - -Count = 440 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C -AD = 00010203040506070809 -CT = 495F89651B3460E65F003BA766447A7A15D3A4FEFAA4D3B2EA561E7222 - -Count = 441 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A -CT = 84355B90FCA6CC96DB82A96791BD63A245D49398C2420B979832983C0D - -Count = 442 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B -CT = BE57E3035F3121F1071DA155CF4A17BF40BC3EC11AA824F4402E561E10 - -Count = 443 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C -CT = F2E67F043069273262C42D95222308E443EA42C5A5936EF2A21936F2AA - -Count = 444 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C0D -CT = 26BD543E0ED9A9C7D06C11353B43287DBA3E95BDF7807A5113443BDE08 - -Count = 445 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C0D0E -CT = ACC9DFB104957F6F5B61F44EE01DED7AA3DC969105904F668164D99013 - -Count = 446 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C0D0E0F -CT = B5604DCF9517E3384C47714B37EFD062B76AF7AA238CFC064D0EF2A27F - -Count = 447 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C0D0E0F10 -CT = A3DCE6A36D4245193B10BD96D97DC7384B0335DB0A19A03A054B4179C0 - -Count = 448 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = A3716FAF5CE05AE0DB7A87E3F097A4EC96E292AE6CB5C93C2B187FF840 - -Count = 449 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = A8844FEE475A9B10ACE25F7D4951741A29C58C003F56C941E0F22D728A - -Count = 450 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = ECBB638503C559753693A570DD3BF29BC31EB365D95AF7504CC004B559 - -Count = 451 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = 502CE5C9F6B61A277324D953B6F3543C941BF7970CD8DD446639A0A405 - -Count = 452 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = A85B710074776A79954E9305A92B54FA762076D4F39D2CC0E0AF888326 - -Count = 453 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 64A76E093101B4145E1F1C95360D6484B2F2EF17FED6082F50ACADAC28 - -Count = 454 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = 9F092EE04EA80A598D87EE1D3599766262F6899DB5FA8BBA8EF5E4C0CF - -Count = 455 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 7CE77BF23E72AD3CB7F3C0D12D8F92AFD8BA9243A3E4B58253A490050A - -Count = 456 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = AE5C18C2DAC4C6635619796053D15200011AA4774858BF32795302344F - -Count = 457 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 58670DED3A0718839B4B0C602E2246FB3A122D0B68A4038297E2BDF5C9 - -Count = 458 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 8E3359569770A9A49DCF7ACAF4EC1B460C99E341418418EFD8497910CE - -Count = 459 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = CBA5AC3E706C38CCB7F9D3C15DB8C7276DA8DD06FE0AB521984A819ABE - -Count = 460 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 3A47EF6DC17B5364E30F0AC65F8976E5542D272876BBD75E6A73DCD8B2 - -Count = 461 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = 91995B95E221DDAC69161C9DD1AC54F1B472DF8116B0DA4EA72CE74F93 - -Count = 462 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 64BCEF8DAE0A00AB494C067520624AF353D3639A1A4A05192FD2423015 - -Count = 463 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D -AD = -CT = 89A6BC509C2FA199469F92E4F44E84E0B73FD12BB3A11F24A69E66EDCCB9 - -Count = 464 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D -AD = 00 -CT = CBF1A8AF0311E992A7410E6238D308A319AD332685CC1542F789377FFECE - -Count = 465 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D -AD = 0001 -CT = E54B761E4A8F0D1D94D92F149BCC0565595660B5E94F1689BB21F2DE11DC - -Count = 466 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D -AD = 000102 -CT = 8073F50326B592E5922BAD631EE51DA79CE26570DF8C3853708E064AABD2 - -Count = 467 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D -AD = 00010203 -CT = 9F3F6002F89F5CA2B48DF5300D06D5360DD3A670BC441A30071DF36AF59A - -Count = 468 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D -AD = 0001020304 -CT = 1D07AA1D70FD65735A2CD02305D98C884C87CA3A37108906EC0BF0138BE8 - -Count = 469 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D -AD = 000102030405 -CT = F5941EF434BCE8E38E63F5FD9C29E7EA72790318C43A8BF5BA9019591CF8 - -Count = 470 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D -AD = 00010203040506 -CT = 3E59844D00E1B3B13E8E65DB34666BD5DA1DA9034FED5BD2B7AA4743E2D3 - -Count = 471 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D -AD = 0001020304050607 -CT = 15D3A591835795973858CFFDF307DF365E80C97DD9ACF80062B5EB97999A - -Count = 472 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708 -CT = 39A67BEA2BD6620D0D4665581612A322D64E013F11D696747BC67F1B04B1 - -Count = 473 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D -AD = 00010203040506070809 -CT = 495F89651B3460E65F003BA766C5655B71C3DFF387DEEB05C05ED6B35A10 - -Count = 474 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A -CT = 84355B90FCA6CC96DB82A967919FEA8415E53D7A7220060979A935CDF1C8 - -Count = 475 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B -CT = BE57E3035F3121F1071DA155CFEDF1DEEEF26257EE2F8C041F9A25EB24DB - -Count = 476 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C -CT = F2E67F043069273262C42D95223280395621A41E4CC74970DE908FE57924 - -Count = 477 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C0D -CT = 26BD543E0ED9A9C7D06C11353B99A50289743A4B9861189374B48F239289 - -Count = 478 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C0D0E -CT = ACC9DFB104957F6F5B61F44EE0C80C644199087B888DD4C7ECA1E0C26B0F - -Count = 479 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C0D0E0F -CT = B5604DCF9517E3384C47714B37003ABC06AEE0D5EDE750923B0790C497FA - -Count = 480 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C0D0E0F10 -CT = A3DCE6A36D4245193B10BD96D968ED9E6E36842FD004605646C1C9DA8879 - -Count = 481 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = A3716FAF5CE05AE0DB7A87E3F0936D9C97F72D229C8A70D4D19BA107D278 - -Count = 482 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = A8844FEE475A9B10ACE25F7D4971EDCDD955274D42D7D11B7BA0E2CEC34A - -Count = 483 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = ECBB638503C559753693A570DD6EC6D3F59F8E3666D4A688A1E3CDF95F0A - -Count = 484 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = 502CE5C9F6B61A277324D953B68BA9E929FB69A23840A4C1243D5F169384 - -Count = 485 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = A85B710074776A79954E9305A94EA8472FE52FD05A98E8A24E7C56740996 - -Count = 486 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 64A76E093101B4145E1F1C95363320087EAF5A53754A031473A4901AAC25 - -Count = 487 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = 9F092EE04EA80A598D87EE1D359A3B3BC967894061E428D641F7DA101CAE - -Count = 488 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 7CE77BF23E72AD3CB7F3C0D12D8229B8CD0DE1B785B58708DA49625FDBF6 - -Count = 489 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = AE5C18C2DAC4C66356197960539BB76597E9A475C532C314CC3C7D67749C - -Count = 490 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 58670DED3A0718839B4B0C602EFFB7A748B509FB1FD678E0328A08CF2281 - -Count = 491 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 8E3359569770A9A49DCF7ACAF4E2D23AAD12F17721A5B869DC52AB3C2F89 - -Count = 492 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = CBA5AC3E706C38CCB7F9D3C15D40A13950A24988B34FA34C41A2870DD147 - -Count = 493 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 3A47EF6DC17B5364E30F0AC65F7BAF16D976F3845F7A4F8F00E13601CD12 - -Count = 494 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = 91995B95E221DDAC69161C9DD1729B3ED9AC4E758F70454C46E848DDDD13 - -Count = 495 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 64BCEF8DAE0A00AB494C067520521442B18305C06090BCE3C8079947CA22 - -Count = 496 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E -AD = -CT = 89A6BC509C2FA199469F92E4F44EC9B3C9BD79C57363EA31627C468FC320FB - -Count = 497 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E -AD = 00 -CT = CBF1A8AF0311E992A7410E6238D3654083FE3E26D37A49833A577289DB55F7 - -Count = 498 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E -AD = 0001 -CT = E54B761E4A8F0D1D94D92F149BCCA2D271F21245B09D18DE310E92E6F0785F - -Count = 499 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E -AD = 000102 -CT = 8073F50326B592E5922BAD631EE5A340C7437F33A11643252108FACDE10E19 - -Count = 500 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E -AD = 00010203 -CT = 9F3F6002F89F5CA2B48DF5300D06E413CF3EAB03A96A7AA23EF24AA1B1ECB7 - -Count = 501 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E -AD = 0001020304 -CT = 1D07AA1D70FD65735A2CD02305D94C22D7A53FE8F49B0C32BE8BE415107657 - -Count = 502 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405 -CT = F5941EF434BCE8E38E63F5FD9C29D53D1442C71F8A8AB5D621572B9D30B3E5 - -Count = 503 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E -AD = 00010203040506 -CT = 3E59844D00E1B3B13E8E65DB34669B9DB75CB0A4074E23E87A5E2233FE4608 - -Count = 504 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E -AD = 0001020304050607 -CT = 15D3A591835795973858CFFDF307BC468DD97C514FB11440733D15B31B5BE4 - -Count = 505 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708 -CT = 39A67BEA2BD6620D0D4665581612730869370DEA8499682BB345C03855BA17 - -Count = 506 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E -AD = 00010203040506070809 -CT = 495F89651B3460E65F003BA766C584EE56B4006B940005372886CB1A384181 - -Count = 507 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A -CT = 84355B90FCA6CC96DB82A967919F4A99A636A8B69FEF9216F9C8DC3D77A193 - -Count = 508 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B -CT = BE57E3035F3121F1071DA155CFEDED4C22B6F50581FE06F18FAA980073D9BA - -Count = 509 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C -CT = F2E67F043069273262C42D9522322A51DBABBABE6721C6306613659FA601BD - -Count = 510 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C0D -CT = 26BD543E0ED9A9C7D06C11353B99693909056B2EF996E6229B94F2013A74B2 - -Count = 511 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C0D0E -CT = ACC9DFB104957F6F5B61F44EE0C869C71C0CB8762E514F09CF0A21AEDB81D4 - -Count = 512 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C0D0E0F -CT = B5604DCF9517E3384C47714B3700BBF0F001D86FC9F615863D2DC83CAC8FF0 - -Count = 513 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C0D0E0F10 -CT = A3DCE6A36D4245193B10BD96D968370EF2B772EFD247B3E625E465765930BF - -Count = 514 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = A3716FAF5CE05AE0DB7A87E3F093418CAA419883DFFCD026DC2DE9E8F9D79B - -Count = 515 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = A8844FEE475A9B10ACE25F7D4971965BCA1220B92E72041348ACD1D3C61D9D - -Count = 516 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = ECBB638503C559753693A570DD6E9700CA69C5F45848C360A840EA687F7DB8 - -Count = 517 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = 502CE5C9F6B61A277324D953B68B26159BE4BBFB6AD8707E7FE67DCAC72F1D - -Count = 518 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = A85B710074776A79954E9305A94EFAC8269C42835617A89F988CA411350E6C - -Count = 519 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 64A76E093101B4145E1F1C953633EBE68B73AF2F2F129FDC071DC1CFD103D9 - -Count = 520 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = 9F092EE04EA80A598D87EE1D359A5D6C7B5DB2DC1B08A685519C39D653E792 - -Count = 521 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 7CE77BF23E72AD3CB7F3C0D12D82CD3877555749BBEFA63E0CDDF8686A6B50 - -Count = 522 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = AE5C18C2DAC4C66356197960539B94AC7C981A1EB8FC885C722A58522F0998 - -Count = 523 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 58670DED3A0718839B4B0C602EFFACB4792F2DC524E3A3D2E9206E09466046 - -Count = 524 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 8E3359569770A9A49DCF7ACAF4E2E95B63BEBED1E85CDB2C9FDEFC79871C81 - -Count = 525 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = CBA5AC3E706C38CCB7F9D3C15D40BE6218C546B18190E6584D0DB54A0075DD - -Count = 526 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 3A47EF6DC17B5364E30F0AC65F7B45FEB6B453B5BEA263B8904C406D0A9D4B - -Count = 527 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = 91995B95E221DDAC69161C9DD17293D7FC0F125B069465ED66C616437FA7C4 - -Count = 528 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 64BCEF8DAE0A00AB494C06752052D3280C1AD26CCCA796092B0A19B362CCFB - -Count = 529 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F -AD = -CT = 89A6BC509C2FA199469F92E4F44EC9AC8BAB9A9CDE663E2524E5419DAF1CB3A2 - -Count = 530 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F -AD = 00 -CT = CBF1A8AF0311E992A7410E6238D365080A4D41C454A8BEEB50A1A7649C8B16EC - -Count = 531 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F -AD = 0001 -CT = E54B761E4A8F0D1D94D92F149BCCA21AB298FA39442AE3C541E36E613E518411 - -Count = 532 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102 -CT = 8073F50326B592E5922BAD631EE5A3E3FDCA807EAD619F00611A02607C26B4D8 - -Count = 533 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F -AD = 00010203 -CT = 9F3F6002F89F5CA2B48DF5300D06E4E1BCF2E64DEE8B40A9B0AA7C4AD87603B3 - -Count = 534 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F -AD = 0001020304 -CT = 1D07AA1D70FD65735A2CD02305D94CE87022715909B026F38DEC90AE138FA180 - -Count = 535 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405 -CT = F5941EF434BCE8E38E63F5FD9C29D5B72AF07C6EE263E52FE799C494591E3198 - -Count = 536 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F -AD = 00010203040506 -CT = 3E59844D00E1B3B13E8E65DB34669B94A2B9484D07EAE8299950EBFCF77D914C - -Count = 537 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F -AD = 0001020304050607 -CT = 15D3A591835795973858CFFDF307BC17988464F432FA169CB3465FA9E75F3639 - -Count = 538 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708 -CT = 39A67BEA2BD6620D0D466558161273B7FABD89F76F62F2E919D87C8CE1470039 - -Count = 539 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F -AD = 00010203040506070809 -CT = 495F89651B3460E65F003BA766C5845FFDCE87040396207628F852A4E0D9E3C4 - -Count = 540 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A -CT = 84355B90FCA6CC96DB82A967919F4A90F0A26D5E34E478BECDFEA1A7211A98DA - -Count = 541 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B -CT = BE57E3035F3121F1071DA155CFEDEDE8E073795B221B5E7C50DBB0BE13D4D34B - -Count = 542 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C -CT = F2E67F043069273262C42D9522322AA4B2D116659872E5B1B3FE2C6209D6E9AD - -Count = 543 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C0D -CT = 26BD543E0ED9A9C7D06C11353B99691071FB698F92CF70E988EE4FE89C3E3772 - -Count = 544 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C0D0E -CT = ACC9DFB104957F6F5B61F44EE0C8699E8923FCC6C04E9C14062EC561D0D552D1 - -Count = 545 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C0D0E0F -CT = B5604DCF9517E3384C47714B3700BB7FA36059931CA7AE1A7629D328138ABC67 - -Count = 546 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C0D0E0F10 -CT = A3DCE6A36D4245193B10BD96D9683745A4287E79442816291B92B2BEF391305B - -Count = 547 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = A3716FAF5CE05AE0DB7A87E3F093413FAECD775190D3C752BA247338F5B58747 - -Count = 548 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = A8844FEE475A9B10ACE25F7D497196D9D5648ED203496CECA94515EAD10D1C37 - -Count = 549 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = ECBB638503C559753693A570DD6E971D7C65C1479C354A8C0300126A9B6CF80A - -Count = 550 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = 502CE5C9F6B61A277324D953B68B262E514BF34D9E8321D157820A57086AE864 - -Count = 551 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = A85B710074776A79954E9305A94EFA7E8AA4D039DD6EFBF9C5B19E6B30F0965B - -Count = 552 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 64A76E093101B4145E1F1C953633EB130294F4394AB6D8B9D34BE130CCDC9D5C - -Count = 553 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = 9F092EE04EA80A598D87EE1D359A5DB7DB0C69FE14FC29CBE149E421911F8A81 - -Count = 554 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 7CE77BF23E72AD3CB7F3C0D12D82CDC9CC9BB4AC903244AC7C982E8B06DBAF2F - -Count = 555 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = AE5C18C2DAC4C66356197960539B947062A6FE7EE3158633E9CF80ADD8D36E7A - -Count = 556 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 58670DED3A0718839B4B0C602EFFAC3E456256C20264845C7BDF170818B04920 - -Count = 557 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 8E3359569770A9A49DCF7ACAF4E2E950173F98DE373B5F02B96F4D7E37A225C7 - -Count = 558 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = CBA5AC3E706C38CCB7F9D3C15D40BE093AD6899DA2348699CA6541385448B8AF - -Count = 559 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 3A47EF6DC17B5364E30F0AC65F7B45F09A2CAD0EFBF59D5A7F632C37EFF6A4A6 - -Count = 560 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = 91995B95E221DDAC69161C9DD1729334BEC34F623D36C3B4F5664297F3AB8CA5 - -Count = 561 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 64BCEF8DAE0A00AB494C06752052D3D922B691D7A897DA13800F1B50751BD936 - -Count = 562 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10 -AD = -CT = 89A6BC509C2FA199469F92E4F44EC9AC0C5D8989EE6956F22274DDCF77D3EBB027 - -Count = 563 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 00 -CT = CBF1A8AF0311E992A7410E6238D36508C5101008FAE7658C775BA521C991AD6EE5 - -Count = 564 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 0001 -CT = E54B761E4A8F0D1D94D92F149BCCA21A729DC7CB0E344E2A8EC366B57E42D4BEEF - -Count = 565 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102 -CT = 8073F50326B592E5922BAD631EE5A3E34BBEA5F08E1C093031FA50CAA73B97E543 - -Count = 566 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 00010203 -CT = 9F3F6002F89F5CA2B48DF5300D06E4E1062C51D0FB40DDD4E0066EC1ACAB3685DB - -Count = 567 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 0001020304 -CT = 1D07AA1D70FD65735A2CD02305D94CE8DAEF127824152F02F59070A7B66A028C26 - -Count = 568 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405 -CT = F5941EF434BCE8E38E63F5FD9C29D5B7305FFAD4FB96449D45392C11A462957671 - -Count = 569 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 00010203040506 -CT = 3E59844D00E1B3B13E8E65DB34669B9430069FFB6341D9FF07A90576BA2C2452BB - -Count = 570 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 0001020304050607 -CT = 15D3A591835795973858CFFDF307BC17384B3F0B012E46029DDC4C4F50DAAC69C4 - -Count = 571 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708 -CT = 39A67BEA2BD6620D0D466558161273B7000712B1D507FD80ADBE37FB89545BBA3A - -Count = 572 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 00010203040506070809 -CT = 495F89651B3460E65F003BA766C5845FC03A7A61145A0C357E8FBB1A81AF8E6032 - -Count = 573 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A -CT = 84355B90FCA6CC96DB82A967919F4A90C362813649CB8781D9BA6466B93D12332D - -Count = 574 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B -CT = BE57E3035F3121F1071DA155CFEDEDE8D7B7ED0AB2E05851C2EDCD710A84312EC9 - -Count = 575 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C -CT = F2E67F043069273262C42D9522322AA4311CA4B094E656DDEA7E8A3799A156AC6C - -Count = 576 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C0D -CT = 26BD543E0ED9A9C7D06C11353B9969108B1B8470007BE203536AA650907CFE4AE5 - -Count = 577 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C0D0E -CT = ACC9DFB104957F6F5B61F44EE0C8699E2F0A6F843ECC18E939A25C4308B80E514D - -Count = 578 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C0D0E0F -CT = B5604DCF9517E3384C47714B3700BB7F3DB7199B8A93DB1669AE4DC48E990F9D00 - -Count = 579 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = A3DCE6A36D4245193B10BD96D9683745128B9F12B76A5F7C6EB018E050C7ECF98F - -Count = 580 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = A3716FAF5CE05AE0DB7A87E3F093413F05BA91719F7DE32B57E95BB8E3F58DA974 - -Count = 581 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = A8844FEE475A9B10ACE25F7D497196D907639463FFEB3E5119F7E2E4A625E50B26 - -Count = 582 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = ECBB638503C559753693A570DD6E971DCAFA470A815BD9A2388D364D1C8F22A944 - -Count = 583 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = 502CE5C9F6B61A277324D953B68B262E37A93CB0BD49746F8D79A96E3AE3001AF5 - -Count = 584 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = A85B710074776A79954E9305A94EFA7ED2B0063F0E6A8C1F0CD44400A9348A2330 - -Count = 585 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 64A76E093101B4145E1F1C953633EB133E1EDA2BA48BD4C06B8D039A61A90F20DC - -Count = 586 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = 9F092EE04EA80A598D87EE1D359A5DB71A912A0C20CE78A16F742355BA7D230F6B - -Count = 587 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 7CE77BF23E72AD3CB7F3C0D12D82CDC9E5CBC0D2E5106EC34E7773ECCA071E9755 - -Count = 588 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = AE5C18C2DAC4C66356197960539B94705DA2118988EAE6DCECD166978624864A76 - -Count = 589 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 58670DED3A0718839B4B0C602EFFAC3E882C363EB4D4A378D4F71B8E78E59CF7D2 - -Count = 590 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 8E3359569770A9A49DCF7ACAF4E2E950AEE77A110297CF3197E919C8CE7E80A3C8 - -Count = 591 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = CBA5AC3E706C38CCB7F9D3C15D40BE0939EF345D78008D932159F4A928AC2C78E9 - -Count = 592 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 3A47EF6DC17B5364E30F0AC65F7B45F03C29281DC969C99BC12207C4767B8D4CF0 - -Count = 593 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = 91995B95E221DDAC69161C9DD17293349C6A3CEA8901C57049C6885FD5F42E911C - -Count = 594 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 64BCEF8DAE0A00AB494C06752052D3D91AF23ED67B55039053EAC8212749DCBEBC - -Count = 595 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = -CT = 89A6BC509C2FA199469F92E4F44EC9AC0CA96C1E852DCB5DA3B09A3B24257F8AD8B2 - -Count = 596 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 00 -CT = CBF1A8AF0311E992A7410E6238D36508C58C19F7687623D7A4ED57004FC7C91AC7AD - -Count = 597 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 0001 -CT = E54B761E4A8F0D1D94D92F149BCCA21A72CB5971CB1E707838A51DAE972CE545F2C4 - -Count = 598 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102 -CT = 8073F50326B592E5922BAD631EE5A3E34BEC9C4A6F6A52785FA99FCD7DB045536F4F - -Count = 599 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 00010203 -CT = 9F3F6002F89F5CA2B48DF5300D06E4E1069F29C5EEFEA639FA291021E88592219F3A - -Count = 600 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 0001020304 -CT = 1D07AA1D70FD65735A2CD02305D94CE8DAAF0900CA19723DB701432D97BBB1F64FF2 - -Count = 601 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405 -CT = F5941EF434BCE8E38E63F5FD9C29D5B730D32CA2854B1ACDC4D756D85EBDFFE495BB - -Count = 602 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 00010203040506 -CT = 3E59844D00E1B3B13E8E65DB34669B94308EBCEE78B8574649CEE64EAFD0BE037A52 - -Count = 603 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 0001020304050607 -CT = 15D3A591835795973858CFFDF307BC1738453248B842D5660CF3E982F2579872C55C - -Count = 604 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708 -CT = 39A67BEA2BD6620D0D466558161273B700F8F6684F21B76C02C3EC3C032115FD7CD4 - -Count = 605 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 00010203040506070809 -CT = 495F89651B3460E65F003BA766C5845FC02E3AACEACF260DD04BF6BC718000E62B49 - -Count = 606 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A -CT = 84355B90FCA6CC96DB82A967919F4A90C3BABF3658F1B9092F4D2E918FB00F83CF43 - -Count = 607 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B -CT = BE57E3035F3121F1071DA155CFEDEDE8D77478DC2F13E625E2C3061EE7E53D90FE1C - -Count = 608 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C -CT = F2E67F043069273262C42D9522322AA4317E0E0735CDAE040D8EDF8DA40242133E08 - -Count = 609 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C0D -CT = 26BD543E0ED9A9C7D06C11353B9969108BE5C623AD54D816FB37B70896F20CBAE447 - -Count = 610 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C0D0E -CT = ACC9DFB104957F6F5B61F44EE0C8699E2FF5B255AA79A96DFB36418CED39648EDCD3 - -Count = 611 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C0D0E0F -CT = B5604DCF9517E3384C47714B3700BB7F3D40AF72CFAC10F564EAE4665F8C8C0CF542 - -Count = 612 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = A3DCE6A36D4245193B10BD96D968374512018681E227B257D853F251AAD55F8BB8DC - -Count = 613 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = A3716FAF5CE05AE0DB7A87E3F093413F05F9F252A83B6893DC1BE2A29ABC754BAC80 - -Count = 614 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = A8844FEE475A9B10ACE25F7D497196D9075736801AA4A93FFA9EAC5DEA6E6C380063 - -Count = 615 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = ECBB638503C559753693A570DD6E971DCAB960C8271EAAC167B0178BE0E8EF38F4FF - -Count = 616 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = 502CE5C9F6B61A277324D953B68B262E37ABC4058A4C6B4627C03277F735EBBA22A5 - -Count = 617 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = A85B710074776A79954E9305A94EFA7ED2E405E8595CBA2EECA2359D17E27C60BDE9 - -Count = 618 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 64A76E093101B4145E1F1C953633EB133E94835103A7BC7B1656398E52C2A442F854 - -Count = 619 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = 9F092EE04EA80A598D87EE1D359A5DB71A3562174CC69729E5C449A71F258D455F34 - -Count = 620 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 7CE77BF23E72AD3CB7F3C0D12D82CDC9E5BB7CF81E0720BD0101311A1EAB53857C40 - -Count = 621 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = AE5C18C2DAC4C66356197960539B94705DF19613841B1A5EDE571A901CF79F01D758 - -Count = 622 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 58670DED3A0718839B4B0C602EFFAC3E885C2D7D6EAC13656AE074354710D4494A12 - -Count = 623 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 8E3359569770A9A49DCF7ACAF4E2E950AE67E7C28843C2FC13DE85FAA6F0C9A487BC - -Count = 624 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = CBA5AC3E706C38CCB7F9D3C15D40BE09393D36D12DAAD91D815EC01ED4372C063E1C - -Count = 625 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 3A47EF6DC17B5364E30F0AC65F7B45F03C42CE48A44DB2CEFC82A6900D2779743B10 - -Count = 626 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = 91995B95E221DDAC69161C9DD17293349C57F5387D16F696A78A1CD9914D46B523CB - -Count = 627 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 64BCEF8DAE0A00AB494C06752052D3D91AF0BE6DCCFCE9B4B58F71CB01F024B988B5 - -Count = 628 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = -CT = 89A6BC509C2FA199469F92E4F44EC9AC0CA94C3305469D5624234B9042C38E684B8344 - -Count = 629 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 00 -CT = CBF1A8AF0311E992A7410E6238D36508C58C929E7A4950FD260F848FABAB411752D693 - -Count = 630 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 0001 -CT = E54B761E4A8F0D1D94D92F149BCCA21A72CB58A2FF1DFBEDFCF34448C989C778BF7BA5 - -Count = 631 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102 -CT = 8073F50326B592E5922BAD631EE5A3E34BEC397A5D170E75F27486B4B0D4437C7B8A20 - -Count = 632 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 00010203 -CT = 9F3F6002F89F5CA2B48DF5300D06E4E1069FC986D252A0B3F18596BB04D7BB2E377C00 - -Count = 633 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 0001020304 -CT = 1D07AA1D70FD65735A2CD02305D94CE8DAAF550C387DF76D7C197F263484E9014CBACC - -Count = 634 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405 -CT = F5941EF434BCE8E38E63F5FD9C29D5B730D3CA9724EFE7193160C734E94B7ED3B8C553 - -Count = 635 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 00010203040506 -CT = 3E59844D00E1B3B13E8E65DB34669B94308E93F434A2F4A1A62F6DB761C4CADF074522 - -Count = 636 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 0001020304050607 -CT = 15D3A591835795973858CFFDF307BC17384571B3C909F800AED34AE89FB31E74B43A68 - -Count = 637 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708 -CT = 39A67BEA2BD6620D0D466558161273B700F893A11318D587FA2CB15846A226DAC123C5 - -Count = 638 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 00010203040506070809 -CT = 495F89651B3460E65F003BA766C5845FC02E3B7922105D790D46EABEBE8BB38D94A7AD - -Count = 639 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A -CT = 84355B90FCA6CC96DB82A967919F4A90C3BA38F22E7A84D1E2A1E5E648EB611BE31EED - -Count = 640 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B -CT = BE57E3035F3121F1071DA155CFEDEDE8D7741AFFC9374EF422DA78A0947590CE40A3D5 - -Count = 641 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C -CT = F2E67F043069273262C42D9522322AA4317E00FDA6B508D1952934EC15D91392146360 - -Count = 642 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C0D -CT = 26BD543E0ED9A9C7D06C11353B9969108BE56AE5E5CC355885E194A39BC6DFBF9739C4 - -Count = 643 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C0D0E -CT = ACC9DFB104957F6F5B61F44EE0C8699E2FF5B679114C21744E5790FA890549261F3379 - -Count = 644 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C0D0E0F -CT = B5604DCF9517E3384C47714B3700BB7F3D40E6E7E741B394D3171FC0DC88FC51807108 - -Count = 645 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = A3DCE6A36D4245193B10BD96D968374512010A63819B6A687F2699C012AC9798C0FDC8 - -Count = 646 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = A3716FAF5CE05AE0DB7A87E3F093413F05F928296657C783DD436817A2D22D008C08B8 - -Count = 647 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = A8844FEE475A9B10ACE25F7D497196D90757C1A5C4856C52BAA1D1CD706F2D65EDA8EB - -Count = 648 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = ECBB638503C559753693A570DD6E971DCAB9274DFEE95CE6E72D2DD3FF8C3B6C0BAB93 - -Count = 649 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = 502CE5C9F6B61A277324D953B68B262E37AB7317AF9059647A3B91BC413739668B1094 - -Count = 650 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = A85B710074776A79954E9305A94EFA7ED2E4E78ED9C6F62DC648D810CE9DAE966D536A - -Count = 651 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 64A76E093101B4145E1F1C953633EB133E945B7E192DCC6FEDE9356643C679FF99EFAF - -Count = 652 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = 9F092EE04EA80A598D87EE1D359A5DB71A35BCE639E7DD5D3428E9FE4D7CF74A1D2D5E - -Count = 653 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 7CE77BF23E72AD3CB7F3C0D12D82CDC9E5BBB19B23785F2BF1BB77088041E96ED5BA82 - -Count = 654 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = AE5C18C2DAC4C66356197960539B94705DF1A7B571308D4536C518F4DB528398F6B9E0 - -Count = 655 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 58670DED3A0718839B4B0C602EFFAC3E885C11B1B6021A1E6E40C3F2955D438A23C49D - -Count = 656 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 8E3359569770A9A49DCF7ACAF4E2E950AE67B5A7B1FF4EFD1BF4ECD26F2478D7816C61 - -Count = 657 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = CBA5AC3E706C38CCB7F9D3C15D40BE09393D37B923B32620F169689B2F027A4992902E - -Count = 658 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 3A47EF6DC17B5364E30F0AC65F7B45F03C4293B22AF20BC83500E8B0B239B38532565F - -Count = 659 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = 91995B95E221DDAC69161C9DD17293349C57393E6420C35BDD2DE2B1A140043CFC0A33 - -Count = 660 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 64BCEF8DAE0A00AB494C06752052D3D91AF0A9698DFB67FCDDB695B8E8F367828047E9 - -Count = 661 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = -CT = 89A6BC509C2FA199469F92E4F44EC9AC0CA94C51DD70ACE370C0DA9D4D2EC4A2CE0A6A79 - -Count = 662 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 00 -CT = CBF1A8AF0311E992A7410E6238D36508C58C9227233403032D58AD0615B5D9A12EFDCCFE - -Count = 663 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 0001 -CT = E54B761E4A8F0D1D94D92F149BCCA21A72CB58D43D381B0504534E8EF1C2325753392029 - -Count = 664 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102 -CT = 8073F50326B592E5922BAD631EE5A3E34BEC3910084D0A403F98E8AE2D6072401EB77C61 - -Count = 665 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 00010203 -CT = 9F3F6002F89F5CA2B48DF5300D06E4E1069FC9120029E41EFE8035485903EC0D2809B4B6 - -Count = 666 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 0001020304 -CT = 1D07AA1D70FD65735A2CD02305D94CE8DAAF5563669ECAE799D39596E8F9A83CBBFB09CD - -Count = 667 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405 -CT = F5941EF434BCE8E38E63F5FD9C29D5B730D3CA98FF65DA03FC553D7C03AF46A5DF01ECB3 - -Count = 668 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 00010203040506 -CT = 3E59844D00E1B3B13E8E65DB34669B94308E934815B606FA2A3409341560AC76D0B86D18 - -Count = 669 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 0001020304050607 -CT = 15D3A591835795973858CFFDF307BC173845710A7BBF4FED1D084970CDC52233307DAD60 - -Count = 670 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708 -CT = 39A67BEA2BD6620D0D466558161273B700F8932506289E5B0E98E82C747728DBF623D9ED - -Count = 671 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 00010203040506070809 -CT = 495F89651B3460E65F003BA766C5845FC02E3B627A82DB0576FD5CD86D7140555DCE3A85 - -Count = 672 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A -CT = 84355B90FCA6CC96DB82A967919F4A90C3BA382DFFE9B226770F9203F5658CE04CD5B781 - -Count = 673 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B -CT = BE57E3035F3121F1071DA155CFEDEDE8D7741A582AEE51FC5811FF63FD9B4D278F5C1D7E - -Count = 674 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C -CT = F2E67F043069273262C42D9522322AA4317E00D1B2300B90CBEC9FAF879AB03D60B42398 - -Count = 675 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C0D -CT = 26BD543E0ED9A9C7D06C11353B9969108BE56AFF755E36F548586D24BF52784BFB889A22 - -Count = 676 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C0D0E -CT = ACC9DFB104957F6F5B61F44EE0C8699E2FF5B6F4128798CD689B779502FAC14909CB5D3B - -Count = 677 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C0D0E0F -CT = B5604DCF9517E3384C47714B3700BB7F3D40E66D03770772F60900CCDD45A7028B548ADD - -Count = 678 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = A3DCE6A36D4245193B10BD96D968374512010AD104888743AED8F9AC40D4CC34C8BB7A6A - -Count = 679 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = A3716FAF5CE05AE0DB7A87E3F093413F05F928410F89F44893EAB61B32D4E1C88FD847D7 - -Count = 680 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = A8844FEE475A9B10ACE25F7D497196D90757C1015A969EC47FEC5933E5FF98189A0B9CCA - -Count = 681 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = ECBB638503C559753693A570DD6E971DCAB927BEE30206BA97A14DF90E4065CB30F3B263 - -Count = 682 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = 502CE5C9F6B61A277324D953B68B262E37AB733A70F4A3356975D52EA57504415F66E373 - -Count = 683 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = A85B710074776A79954E9305A94EFA7ED2E4E796921E6560050A6439A8A38F97160FC20E - -Count = 684 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 64A76E093101B4145E1F1C953633EB133E945B1D5BAC3C730A80835A54B9C1F603BB6D90 - -Count = 685 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = 9F092EE04EA80A598D87EE1D359A5DB71A35BC35F41AF6B455642D4479E1399F81EC9820 - -Count = 686 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 7CE77BF23E72AD3CB7F3C0D12D82CDC9E5BBB1451353ACD814EDCC8D1D6215FEAE5C9BDA - -Count = 687 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = AE5C18C2DAC4C66356197960539B94705DF1A74085C8E7329A1C25DBC35617014449D505 - -Count = 688 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 58670DED3A0718839B4B0C602EFFAC3E885C1154D40BA3FF909BB5A4B685A0B4367AAF90 - -Count = 689 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 8E3359569770A9A49DCF7ACAF4E2E950AE67B599AB4713F7CD8CF36C9C6623C374988DF1 - -Count = 690 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = CBA5AC3E706C38CCB7F9D3C15D40BE09393D3773922532D80E626ED3C2648F35F6FB7907 - -Count = 691 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 3A47EF6DC17B5364E30F0AC65F7B45F03C429302190564D2466D890501DFE0B65D523BE4 - -Count = 692 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = 91995B95E221DDAC69161C9DD17293349C5739661318AD1CF59CC0A57F573120F7C6DE4E - -Count = 693 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 64BCEF8DAE0A00AB494C06752052D3D91AF0A9381174704A4D4154AF63DEF51AEB3E9F56 - -Count = 694 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = -CT = 89A6BC509C2FA199469F92E4F44EC9AC0CA94C5180267144074C1B13FC99BA5A50111CF892 - -Count = 695 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 00 -CT = CBF1A8AF0311E992A7410E6238D36508C58C92275521A1DA4F1603FD6B229652AFA34107E6 - -Count = 696 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 0001 -CT = E54B761E4A8F0D1D94D92F149BCCA21A72CB58D4D3317BBE35ED34F32856200D183D2E4C98 - -Count = 697 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102 -CT = 8073F50326B592E5922BAD631EE5A3E34BEC3910603DD20D122FEEA121DBE6DBC13A3AD33C - -Count = 698 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 00010203 -CT = 9F3F6002F89F5CA2B48DF5300D06E4E1069FC91269DF79D7E8B3BCB9DD8B23037677B4908C - -Count = 699 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 0001020304 -CT = 1D07AA1D70FD65735A2CD02305D94CE8DAAF5563A1878A6DFAAE80C564E644F2284F346AD4 - -Count = 700 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405 -CT = F5941EF434BCE8E38E63F5FD9C29D5B730D3CA98871F208C158B75157825FAE0D910A3A8DD - -Count = 701 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 00010203040506 -CT = 3E59844D00E1B3B13E8E65DB34669B94308E9348DB2C3EF3734DCF605A3C48A78E879F0799 - -Count = 702 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 0001020304050607 -CT = 15D3A591835795973858CFFDF307BC173845710A46A45458A4088B12D2BFE29C21A12B1E6C - -Count = 703 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708 -CT = 39A67BEA2BD6620D0D466558161273B700F893252B6D13AA3479DFFFB7C531735A6E06C69F - -Count = 704 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 00010203040506070809 -CT = 495F89651B3460E65F003BA766C5845FC02E3B629F77F5C6D127034CB0C8A06333153D1AA7 - -Count = 705 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A -CT = 84355B90FCA6CC96DB82A967919F4A90C3BA382DB3E0A7F7D65DCAD7CE6FE6273CCC1F9FD8 - -Count = 706 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B -CT = BE57E3035F3121F1071DA155CFEDEDE8D7741A583CB31838FB408FB2FDF857CEB5BC01A038 - -Count = 707 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C -CT = F2E67F043069273262C42D9522322AA4317E00D11376E8812094A35E613B24601A31804761 - -Count = 708 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C0D -CT = 26BD543E0ED9A9C7D06C11353B9969108BE56AFF6C570DB375D12898D5A1A2429C5A92B419 - -Count = 709 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C0D0E -CT = ACC9DFB104957F6F5B61F44EE0C8699E2FF5B6F4B2995A24B84EDB1FA34D6C5D5DCE318AA5 - -Count = 710 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C0D0E0F -CT = B5604DCF9517E3384C47714B3700BB7F3D40E66DF9F1FB757F121AB21F121427DF504AA945 - -Count = 711 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = A3DCE6A36D4245193B10BD96D968374512010AD1716B26D110D8BF097E82A07D794CA4B121 - -Count = 712 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = A3716FAF5CE05AE0DB7A87E3F093413F05F92841764EDA927DC0688F6B3A7EB08731F9FD53 - -Count = 713 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = A8844FEE475A9B10ACE25F7D497196D90757C10106851AA3A088B067F52721AC8FF4DD8A7C - -Count = 714 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = ECBB638503C559753693A570DD6E971DCAB927BE347E8FF604B847271DED5F53FFF6FBA4F5 - -Count = 715 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = 502CE5C9F6B61A277324D953B68B262E37AB733ACADFBCEDC6D246B5A1B0C3FC14D8C896C6 - -Count = 716 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = A85B710074776A79954E9305A94EFA7ED2E4E79674F8413D0F6C925906AF0F73BC1CCE9C50 - -Count = 717 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 64A76E093101B4145E1F1C953633EB133E945B1DE7D7CF8C25728170DF22D829F8C7BB3722 - -Count = 718 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = 9F092EE04EA80A598D87EE1D359A5DB71A35BC351DA819B5F27ED931FE71D3F61412ED83D1 - -Count = 719 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 7CE77BF23E72AD3CB7F3C0D12D82CDC9E5BBB145A36E23E620B1315999631E363D179F2CD0 - -Count = 720 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = AE5C18C2DAC4C66356197960539B94705DF1A740D289C4A97751256C55455CCA6B5586EA4B - -Count = 721 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 58670DED3A0718839B4B0C602EFFAC3E885C1154640D99F1807E6B2DF71671D03FDA25E4B6 - -Count = 722 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 8E3359569770A9A49DCF7ACAF4E2E950AE67B5998281CD30AAA8144F92E3612CA78084DCD3 - -Count = 723 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = CBA5AC3E706C38CCB7F9D3C15D40BE09393D377324AC589C08766DFA9C5A87DA4187D75B42 - -Count = 724 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 3A47EF6DC17B5364E30F0AC65F7B45F03C429302E29B409CC1E99C2AABDD51A909BCB32D97 - -Count = 725 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = 91995B95E221DDAC69161C9DD17293349C5739663B35207E8AAC5B6E50EB0E387363265109 - -Count = 726 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 64BCEF8DAE0A00AB494C06752052D3D91AF0A938A1BE1B8A92FD450CACB63AAB2ADE1E4FEA - -Count = 727 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = -CT = 89A6BC509C2FA199469F92E4F44EC9AC0CA94C5180BD3E3DFF61F263A30D387517374CB3DD93 - -Count = 728 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 00 -CT = CBF1A8AF0311E992A7410E6238D36508C58C922755D79AE05909854CC8F8C1F22E029538B1F4 - -Count = 729 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 0001 -CT = E54B761E4A8F0D1D94D92F149BCCA21A72CB58D4D3D6A450D26E4A7D78DF95C01B6FAD7DF846 - -Count = 730 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102 -CT = 8073F50326B592E5922BAD631EE5A3E34BEC391060F32CD9243A78A5B5A1BF0EC1A09A720275 - -Count = 731 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 00010203 -CT = 9F3F6002F89F5CA2B48DF5300D06E4E1069FC91269F2F5EE7152E6C4E4EF9750257C4A7DDCDC - -Count = 732 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 0001020304 -CT = 1D07AA1D70FD65735A2CD02305D94CE8DAAF5563A1C4538571A7C26F46AC1953EF02A90F6A6F - -Count = 733 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405 -CT = F5941EF434BCE8E38E63F5FD9C29D5B730D3CA98871D08F1D229715DC290826E01B4DF4AE197 - -Count = 734 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 00010203040506 -CT = 3E59844D00E1B3B13E8E65DB34669B94308E9348DB97DAD326554E8CBC59EE9F3D5FD2A32BEB - -Count = 735 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 0001020304050607 -CT = 15D3A591835795973858CFFDF307BC173845710A46C611FB5A02615E60240AF443B10F3E73B7 - -Count = 736 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708 -CT = 39A67BEA2BD6620D0D466558161273B700F893252B55F165E78019FE44DC0FF1DB875EF181B5 - -Count = 737 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 00010203040506070809 -CT = 495F89651B3460E65F003BA766C5845FC02E3B629FCF0616F2D90F359B391814051EB66ADBA0 - -Count = 738 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A -CT = 84355B90FCA6CC96DB82A967919F4A90C3BA382DB307D1B262640DC786B756A8CC7B18411205 - -Count = 739 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B -CT = BE57E3035F3121F1071DA155CFEDEDE8D7741A583C5C3EB455A7975E005F3BE7A7C02B48B591 - -Count = 740 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C -CT = F2E67F043069273262C42D9522322AA4317E00D11363E6998C08311CC08AB7249C7C890CF9F1 - -Count = 741 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C0D -CT = 26BD543E0ED9A9C7D06C11353B9969108BE56AFF6C3C4AA2E6F1FAB279D09D73612E7854DD87 - -Count = 742 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C0D0E -CT = ACC9DFB104957F6F5B61F44EE0C8699E2FF5B6F4B2B6DAC766581DCDE9B4D4D4011BFC660332 - -Count = 743 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C0D0E0F -CT = B5604DCF9517E3384C47714B3700BB7F3D40E66DF97FB367507C777A8835E3ABFB1ACBAA78BC - -Count = 744 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = A3DCE6A36D4245193B10BD96D968374512010AD1717DF135D098EF6B8940D32AAA04F1DE1A3B - -Count = 745 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = A3716FAF5CE05AE0DB7A87E3F093413F05F92841766687F021FF2CEA1B90E4D50F8073599EE2 - -Count = 746 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = A8844FEE475A9B10ACE25F7D497196D90757C10106EAAA45F17A7DB4AF372E295BE1772CF5D9 - -Count = 747 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = ECBB638503C559753693A570DD6E971DCAB927BE34A12258AC44CFA81E63DB2862F2F169080E - -Count = 748 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = 502CE5C9F6B61A277324D953B68B262E37AB733ACAFC5C6F6CC7E3503D5A8AD69DFEFAD44612 - -Count = 749 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = A85B710074776A79954E9305A94EFA7ED2E4E796744321F7F6A9FA4272CC244B793226FCF1C0 - -Count = 750 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 64A76E093101B4145E1F1C953633EB133E945B1DE75376F55928664F323BE8739D8F06B6114D - -Count = 751 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = 9F092EE04EA80A598D87EE1D359A5DB71A35BC351D69093A5F8EDA01CA1B359E85F2E1AE609D - -Count = 752 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 7CE77BF23E72AD3CB7F3C0D12D82CDC9E5BBB145A3EA0D521C7F69DD882A176D0F032E9E04FE - -Count = 753 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = AE5C18C2DAC4C66356197960539B94705DF1A740D249165DE58011409CD0323451558C8C6752 - -Count = 754 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 58670DED3A0718839B4B0C602EFFAC3E885C11546449D7B846A5FBBCC6149A7C8027C9D5EC27 - -Count = 755 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 8E3359569770A9A49DCF7ACAF4E2E950AE67B59982F1F17FF8030683AFDB306B58F6E7BC1845 - -Count = 756 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = CBA5AC3E706C38CCB7F9D3C15D40BE09393D3773241455FE43979DD2FBC4722E980E9454C67B - -Count = 757 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 3A47EF6DC17B5364E30F0AC65F7B45F03C429302E27573CACB37F9BD41A9653B74DDB0461B93 - -Count = 758 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = 91995B95E221DDAC69161C9DD17293349C5739663B0F1493876ED5AA4B1DDA7A8B40B6C0C3EE - -Count = 759 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 64BCEF8DAE0A00AB494C06752052D3D91AF0A938A11753B83F1BC754861E118AD98DBABE0FB2 - -Count = 760 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = -CT = 89A6BC509C2FA199469F92E4F44EC9AC0CA94C5180BDC17F74AE60A69B99B6FABBA303E5C93824 - -Count = 761 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 00 -CT = CBF1A8AF0311E992A7410E6238D36508C58C922755D721147D0AA943EF6A22F693D811AC6FF557 - -Count = 762 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 0001 -CT = E54B761E4A8F0D1D94D92F149BCCA21A72CB58D4D3D60D64C669D306FF4FE70FE08005F3BC7829 - -Count = 763 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102 -CT = 8073F50326B592E5922BAD631EE5A3E34BEC391060F3DD25E7C0EC709D6121D7CDCB52002CBF95 - -Count = 764 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 00010203 -CT = 9F3F6002F89F5CA2B48DF5300D06E4E1069FC91269F26A54F0FD17CD8E37F7BB4777374E70DE74 - -Count = 765 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 0001020304 -CT = 1D07AA1D70FD65735A2CD02305D94CE8DAAF5563A1C47EF7885539CC83FC29531A5362A61BA485 - -Count = 766 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405 -CT = F5941EF434BCE8E38E63F5FD9C29D5B730D3CA98871DD2149B4C08F5ED9A7540FED36E7E3CF4BA - -Count = 767 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 00010203040506 -CT = 3E59844D00E1B3B13E8E65DB34669B94308E9348DB97F1938DDE26B61EC79B04CC13FF4F15F7AC - -Count = 768 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 0001020304050607 -CT = 15D3A591835795973858CFFDF307BC173845710A46C6161C982AED835309ACD1AD1062B68011F6 - -Count = 769 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708 -CT = 39A67BEA2BD6620D0D466558161273B700F893252B55AC67185E8747758A6DBA1BFDE9F2757F65 - -Count = 770 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 00010203040506070809 -CT = 495F89651B3460E65F003BA766C5845FC02E3B629FCF8670444A1CD802EC8B43C4BF47141C1445 - -Count = 771 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A -CT = 84355B90FCA6CC96DB82A967919F4A90C3BA382DB3074C4C886A05D7EAC99C26179DD7E3C0EB0A - -Count = 772 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B -CT = BE57E3035F3121F1071DA155CFEDEDE8D7741A583C5C940A11AA483317A90BF09F8018E69FD7EC - -Count = 773 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C -CT = F2E67F043069273262C42D9522322AA4317E00D113636EC4A724E6C1476A10825480D6D43A3996 - -Count = 774 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C0D -CT = 26BD543E0ED9A9C7D06C11353B9969108BE56AFF6C3C5CF9F4A408C1DADEB9D83FAC0196B79984 - -Count = 775 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C0D0E -CT = ACC9DFB104957F6F5B61F44EE0C8699E2FF5B6F4B2B6CB6FCC68E43D3D58B3905461EC4D595468 - -Count = 776 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C0D0E0F -CT = B5604DCF9517E3384C47714B3700BB7F3D40E66DF97FE1B802F1B2774DCD463CF7E6CF81AED6B2 - -Count = 777 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = A3DCE6A36D4245193B10BD96D968374512010AD1717DBA76036198B43A2968A931348C18273009 - -Count = 778 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = A3716FAF5CE05AE0DB7A87E3F093413F05F928417666A53DEB31612AB4E6D8F7DA118671F3C0A7 - -Count = 779 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = A8844FEE475A9B10ACE25F7D497196D90757C10106EA2DB73A6E3B93D91282E2561D7A8FBDDADA - -Count = 780 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = ECBB638503C559753693A570DD6E971DCAB927BE34A1458A61B1B8E7FA362F3E64A8AE0C45E152 - -Count = 781 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = 502CE5C9F6B61A277324D953B68B262E37AB733ACAFC59D5E525B69FAA9AE7EAF90FBDE4515330 - -Count = 782 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = A85B710074776A79954E9305A94EFA7ED2E4E7967443E82E93EB58278E5DC0E38CFE888A8C10E7 - -Count = 783 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 64A76E093101B4145E1F1C953633EB133E945B1DE753235993EDD696E624D1E023A486FA703DA9 - -Count = 784 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = 9F092EE04EA80A598D87EE1D359A5DB71A35BC351D69F705DCD2FC55FA904EA0B9FE1C63591DDC - -Count = 785 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 7CE77BF23E72AD3CB7F3C0D12D82CDC9E5BBB145A3EABB8FE0D8599B17FE0B823525C03FD1E97C - -Count = 786 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = AE5C18C2DAC4C66356197960539B94705DF1A740D249CB3B27C6FD73E907204D5E24B150C10BAD - -Count = 787 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 58670DED3A0718839B4B0C602EFFAC3E885C11546449B89D1B19BF30FDCC7F3602ABEC5625586A - -Count = 788 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 8E3359569770A9A49DCF7ACAF4E2E950AE67B59982F11B0C6E9E82CAD8CF5E57B05CD7B86A564F - -Count = 789 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = CBA5AC3E706C38CCB7F9D3C15D40BE09393D377324144981571DC2CFACF2BE10F5227D31A56ADD - -Count = 790 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 3A47EF6DC17B5364E30F0AC65F7B45F03C429302E275973F3D6242FE660B1C3772F2F66B1F33EF - -Count = 791 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = 91995B95E221DDAC69161C9DD17293349C5739663B0F19E11C112F8BE3ED34AE813908E16E1413 - -Count = 792 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 64BCEF8DAE0A00AB494C06752052D3D91AF0A938A117EC4CE357976CE74C45F8E3B69ECBA445F9 - -Count = 793 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = -CT = 89A6BC509C2FA199469F92E4F44EC9AC0CA94C5180BDC12B6AB4BB0EF4B75D0438BFF307A68EF3BD - -Count = 794 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 00 -CT = CBF1A8AF0311E992A7410E6238D36508C58C922755D7212BCB014ED542AAFED9656083B1500DF5FA - -Count = 795 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 0001 -CT = E54B761E4A8F0D1D94D92F149BCCA21A72CB58D4D3D60D434E2F465097A408A9F33A090DC32570B5 - -Count = 796 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102 -CT = 8073F50326B592E5922BAD631EE5A3E34BEC391060F3DD81768A6D94E4FD7448F59F17F548F00A17 - -Count = 797 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 00010203 -CT = 9F3F6002F89F5CA2B48DF5300D06E4E1069FC91269F26A9DA7911AE5559090220B572831625D0E30 - -Count = 798 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 0001020304 -CT = 1D07AA1D70FD65735A2CD02305D94CE8DAAF5563A1C47E75715EDA60D68A57CA64EFD8B19D30F2D1 - -Count = 799 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405 -CT = F5941EF434BCE8E38E63F5FD9C29D5B730D3CA98871DD2DE57C6EFE50421483CE3F9B9C4C3943DAD - -Count = 800 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 00010203040506 -CT = 3E59844D00E1B3B13E8E65DB34669B94308E9348DB97F151D1DF8418C6FEBED03860466AC55E356B - -Count = 801 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 0001020304050607 -CT = 15D3A591835795973858CFFDF307BC173845710A46C616C0651143F92B9F87E05168F807D297547D - -Count = 802 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708 -CT = 39A67BEA2BD6620D0D466558161273B700F893252B55ACC1E1816F078C804FBACD12DB7573E37460 - -Count = 803 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 00010203040506070809 -CT = 495F89651B3460E65F003BA766C5845FC02E3B629FCF868070C2476104D701F8A6F9B74DD2B6A988 - -Count = 804 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A -CT = 84355B90FCA6CC96DB82A967919F4A90C3BA382DB3074CE4373634E66D83CB01128776D26576909F - -Count = 805 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B -CT = BE57E3035F3121F1071DA155CFEDEDE8D7741A583C5C9498CD21E4DAC2D2F50CB05AD79A30C56C3F - -Count = 806 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C -CT = F2E67F043069273262C42D9522322AA4317E00D113636EDB45BEAE7429CFDCD22D7B3BBE84FFA30A - -Count = 807 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C0D -CT = 26BD543E0ED9A9C7D06C11353B9969108BE56AFF6C3C5C1ED5F56A0F853617CD054ED50A9B88D786 - -Count = 808 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C0D0E -CT = ACC9DFB104957F6F5B61F44EE0C8699E2FF5B6F4B2B6CB445C3B9759323C946AAC9B42AE1233513C - -Count = 809 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C0D0E0F -CT = B5604DCF9517E3384C47714B3700BB7F3D40E66DF97FE1D93FA46BEFC851EC1F532781AF79F92F8A - -Count = 810 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = A3DCE6A36D4245193B10BD96D968374512010AD1717DBA7B1E10EEDBD39395D9D8BC06C3EF9632A2 - -Count = 811 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = A3716FAF5CE05AE0DB7A87E3F093413F05F928417666A5CF901D920EE1E7143797ED3DA5300105E0 - -Count = 812 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = A8844FEE475A9B10ACE25F7D497196D90757C10106EA2DBA1350CF5B4D6EE2805042EFFD711C154B - -Count = 813 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = ECBB638503C559753693A570DD6E971DCAB927BE34A1452530E621017B5C76B66632497E0ECB533D - -Count = 814 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = 502CE5C9F6B61A277324D953B68B262E37AB733ACAFC5961CEE3D9A8F3DA8E97D073A6885AAEA595 - -Count = 815 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = A85B710074776A79954E9305A94EFA7ED2E4E7967443E8FB2697E258057AF950930F493BF8E39A7B - -Count = 816 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 64A76E093101B4145E1F1C953633EB133E945B1DE7532397206FD7449E71F1E957EC9C295D8E8C84 - -Count = 817 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = 9F092EE04EA80A598D87EE1D359A5DB71A35BC351D69F73F98E9D400A8836BC3DDF0D84F8256D732 - -Count = 818 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 7CE77BF23E72AD3CB7F3C0D12D82CDC9E5BBB145A3EABB67C5780CF94A855A660A70B7B6C385DA9B - -Count = 819 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = AE5C18C2DAC4C66356197960539B94705DF1A740D249CBD213FF2B98E2C29B66EFA740A31487AD05 - -Count = 820 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 58670DED3A0718839B4B0C602EFFAC3E885C11546449B80BA72F3E1CA5FC0716B00D4494B7C1A14C - -Count = 821 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 8E3359569770A9A49DCF7ACAF4E2E950AE67B59982F11BD96C33D099E6EED52E6E39996D14D84A19 - -Count = 822 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = CBA5AC3E706C38CCB7F9D3C15D40BE09393D3773241449D4522A04E1DC228A362D786C755B71D0DC - -Count = 823 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 3A47EF6DC17B5364E30F0AC65F7B45F03C429302E27597B1ABA626E297E17BE8C2AD78C5527EEB96 - -Count = 824 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = 91995B95E221DDAC69161C9DD17293349C5739663B0F1931FA235FB96352B97D3DA3C2273DD9672A - -Count = 825 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 64BCEF8DAE0A00AB494C06752052D3D91AF0A938A117EC0234A91024DE027600FD2287DDFBDCA30A - -Count = 826 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = -CT = 89A6BC509C2FA199469F92E4F44EC9AC0CA94C5180BDC12B651DF05CE4CD11E1E84D74E62D437D9E78 - -Count = 827 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 00 -CT = CBF1A8AF0311E992A7410E6238D36508C58C922755D7212BFDFDA95B65C96072C947362861968571A3 - -Count = 828 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 0001 -CT = E54B761E4A8F0D1D94D92F149BCCA21A72CB58D4D3D60D43B49BBEBA3BC0645C0F30DAD857FA313335 - -Count = 829 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102 -CT = 8073F50326B592E5922BAD631EE5A3E34BEC391060F3DD81FE16FBB42FF9DEF1AAD06ED1F34E70742D - -Count = 830 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 00010203 -CT = 9F3F6002F89F5CA2B48DF5300D06E4E1069FC91269F26A9DD81C877A23E5398B762812E119B530A6BF - -Count = 831 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 0001020304 -CT = 1D07AA1D70FD65735A2CD02305D94CE8DAAF5563A1C47E75DD8742110FE5788D49B021554244D3E1B7 - -Count = 832 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405 -CT = F5941EF434BCE8E38E63F5FD9C29D5B730D3CA98871DD2DEA51E33E2A575D5FC0A4C3F2BB5C459C3DB - -Count = 833 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 00010203040506 -CT = 3E59844D00E1B3B13E8E65DB34669B94308E9348DB97F1510CA10402C866AB4B557354B5A57D381DC4 - -Count = 834 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 0001020304050607 -CT = 15D3A591835795973858CFFDF307BC173845710A46C616C03588D65179E46E59B3C149E40785FB7829 - -Count = 835 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708 -CT = 39A67BEA2BD6620D0D466558161273B700F893252B55ACC19809F2F5EB41405645031CA93AF44117A7 - -Count = 836 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 00010203040506070809 -CT = 495F89651B3460E65F003BA766C5845FC02E3B629FCF8680D38CCD4F60CAF41BDD96BDD3FBB97828AE - -Count = 837 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A -CT = 84355B90FCA6CC96DB82A967919F4A90C3BA382DB3074CE42C9230A3772B545611B1F06431969DB4B1 - -Count = 838 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B -CT = BE57E3035F3121F1071DA155CFEDEDE8D7741A583C5C949815A4956560B590BE6CF0B37305673172C0 - -Count = 839 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C -CT = F2E67F043069273262C42D9522322AA4317E00D113636EDBB6AA6D82A88A15039C42C42CF1834A22F5 - -Count = 840 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C0D -CT = 26BD543E0ED9A9C7D06C11353B9969108BE56AFF6C3C5C1EF5E570FEA7D151B13E26A1F100E6DE0341 - -Count = 841 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C0D0E -CT = ACC9DFB104957F6F5B61F44EE0C8699E2FF5B6F4B2B6CB443B682C570AAE8CB3643E6A44D3F70E5609 - -Count = 842 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C0D0E0F -CT = B5604DCF9517E3384C47714B3700BB7F3D40E66DF97FE1D99A5E80B46589A54C92516F2705766C0D67 - -Count = 843 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = A3DCE6A36D4245193B10BD96D968374512010AD1717DBA7BB0BEEDA48DDE343E597BB926043E19A18E - -Count = 844 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = A3716FAF5CE05AE0DB7A87E3F093413F05F928417666A5CFE89F8DF69FE6F3EB77AE2E371B2F478F2D - -Count = 845 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = A8844FEE475A9B10ACE25F7D497196D90757C10106EA2DBADC61F9A65005BE569F663A4B322FCF3CBC - -Count = 846 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = ECBB638503C559753693A570DD6E971DCAB927BE34A1452587D344915AA84928871C2F2632FE9B9681 - -Count = 847 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = 502CE5C9F6B61A277324D953B68B262E37AB733ACAFC5961E77AED7524D80E87F522C5732A5F1AC924 - -Count = 848 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = A85B710074776A79954E9305A94EFA7ED2E4E7967443E8FB8CA77786C93D877CB546603BB5883051BF - -Count = 849 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 64A76E093101B4145E1F1C953633EB133E945B1DE753239743E58124AD68686F88F5823BD6306D261A - -Count = 850 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = 9F092EE04EA80A598D87EE1D359A5DB71A35BC351D69F73F6B6EDA52534FCE987897FE835B430EA404 - -Count = 851 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 7CE77BF23E72AD3CB7F3C0D12D82CDC9E5BBB145A3EABB67DE576FD3B3D7297D7C2AF893A3CEFF52CC - -Count = 852 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = AE5C18C2DAC4C66356197960539B94705DF1A740D249CBD28C06674D82D3F835D45A3DD26D4652225A - -Count = 853 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 58670DED3A0718839B4B0C602EFFAC3E885C11546449B80B256E97B4D398FF0FE6E22602FAC35621D2 - -Count = 854 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 8E3359569770A9A49DCF7ACAF4E2E950AE67B59982F11BD942C5429A44650829F19C410F259270AEE7 - -Count = 855 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = CBA5AC3E706C38CCB7F9D3C15D40BE09393D3773241449D435166D995323E3CDA731AD551797BA2800 - -Count = 856 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 3A47EF6DC17B5364E30F0AC65F7B45F03C429302E27597B1CAD58B5560A6C494141D8C54AF0EAE19FA - -Count = 857 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = 91995B95E221DDAC69161C9DD17293349C5739663B0F193111E9156399D2DA47C23457847A99031A90 - -Count = 858 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 64BCEF8DAE0A00AB494C06752052D3D91AF0A938A117EC02C6AA1EE25D30ADF13BFCCD64681E1B5967 - -Count = 859 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = -CT = 89A6BC509C2FA199469F92E4F44EC9AC0CA94C5180BDC12B65072F8F123D31B58D756E3C71B90268B46D - -Count = 860 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 00 -CT = CBF1A8AF0311E992A7410E6238D36508C58C922755D7212BFDA0244BB016D874B0F97F0E13563EA7499D - -Count = 861 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 0001 -CT = E54B761E4A8F0D1D94D92F149BCCA21A72CB58D4D3D60D43B4857B37AE2F569A9A159796C643ACEEB18C - -Count = 862 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102 -CT = 8073F50326B592E5922BAD631EE5A3E34BEC391060F3DD81FEF369E10F12014B3C3787B35F154668A653 - -Count = 863 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 00010203 -CT = 9F3F6002F89F5CA2B48DF5300D06E4E1069FC91269F26A9DD88D20BD040DF5D460DCD2AF068CA306E5D8 - -Count = 864 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 0001020304 -CT = 1D07AA1D70FD65735A2CD02305D94CE8DAAF5563A1C47E75DD169D273C3A02B19BFD97F1073CF9296FF9 - -Count = 865 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405 -CT = F5941EF434BCE8E38E63F5FD9C29D5B730D3CA98871DD2DEA520D3153B8413998AD3AA8D74B521E6917A - -Count = 866 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 00010203040506 -CT = 3E59844D00E1B3B13E8E65DB34669B94308E9348DB97F1510CABAF1D34008C4C2C5B27276A65CA3F7E0F - -Count = 867 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 0001020304050607 -CT = 15D3A591835795973858CFFDF307BC173845710A46C616C035AF2A53629C1420E7B37C34D52E96E92E0C - -Count = 868 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708 -CT = 39A67BEA2BD6620D0D466558161273B700F893252B55ACC198EA39DCB4ABF81A5F8A67200AE1DC296F1B - -Count = 869 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 00010203040506070809 -CT = 495F89651B3460E65F003BA766C5845FC02E3B629FCF8680D3CBD752612AA8F335FFD9BBD2EA65DCD386 - -Count = 870 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A -CT = 84355B90FCA6CC96DB82A967919F4A90C3BA382DB3074CE42C4720018DFC224267F682A67679EAC364DF - -Count = 871 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B -CT = BE57E3035F3121F1071DA155CFEDEDE8D7741A583C5C9498159B35FFA86644E4C1C0DAC4C9118E816276 - -Count = 872 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C -CT = F2E67F043069273262C42D9522322AA4317E00D113636EDBB6B72D168F8AABDE2DC1EB26525A06913C41 - -Count = 873 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C0D -CT = 26BD543E0ED9A9C7D06C11353B9969108BE56AFF6C3C5C1EF5381907A959487594749E0F05E8034A4915 - -Count = 874 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C0D0E -CT = ACC9DFB104957F6F5B61F44EE0C8699E2FF5B6F4B2B6CB443B0303FBBF3BA21D9926AEE9497478CF4677 - -Count = 875 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C0D0E0F -CT = B5604DCF9517E3384C47714B3700BB7F3D40E66DF97FE1D99AFE812FAF4389C0859C6128EAC989F20798 - -Count = 876 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = A3DCE6A36D4245193B10BD96D968374512010AD1717DBA7BB034A92D18A6806E891FEC39457703781B68 - -Count = 877 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = A3716FAF5CE05AE0DB7A87E3F093413F05F928417666A5CFE868388136AF867C63D17471FD74E4CD8BD5 - -Count = 878 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = A8844FEE475A9B10ACE25F7D497196D90757C10106EA2DBADCE83B6E82AF1D7A618566389C23CC52A07C - -Count = 879 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = ECBB638503C559753693A570DD6E971DCAB927BE34A1452587E91923061ADE7115F0D590DD8FAAFAA93D - -Count = 880 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = 502CE5C9F6B61A277324D953B68B262E37AB733ACAFC5961E771F6656E2530794BECE38B140A1A29471A - -Count = 881 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = A85B710074776A79954E9305A94EFA7ED2E4E7967443E8FB8C1BA5DF9B00C5924B521B80AB5121540272 - -Count = 882 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 64A76E093101B4145E1F1C953633EB133E945B1DE753239743A66C5BB70929DA94A65FBF4BE8C115BE13 - -Count = 883 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = 9F092EE04EA80A598D87EE1D359A5DB71A35BC351D69F73F6B85C0C4BEAEA2DE22D5AAF284B5D81DDBEA - -Count = 884 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 7CE77BF23E72AD3CB7F3C0D12D82CDC9E5BBB145A3EABB67DEEEB49266EA300E014FF8264859B80323FC - -Count = 885 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = AE5C18C2DAC4C66356197960539B94705DF1A740D249CBD28C2486881FF48A722A7FABC4DA5DC8E4D71C - -Count = 886 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 58670DED3A0718839B4B0C602EFFAC3E885C11546449B80B2532F77CABF4DC9EA535CCF3C62AF71A0591 - -Count = 887 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 8E3359569770A9A49DCF7ACAF4E2E950AE67B59982F11BD942306CA0B27D3A4557DD3ED221A5F018A1C2 - -Count = 888 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = CBA5AC3E706C38CCB7F9D3C15D40BE09393D3773241449D435D4DA5F3A0925F34CD2C0F4048F88F2C236 - -Count = 889 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 3A47EF6DC17B5364E30F0AC65F7B45F03C429302E27597B1CAC160CBB74E98426ECCE4DD0FD2F9AA342D - -Count = 890 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = 91995B95E221DDAC69161C9DD17293349C5739663B0F193111A5771528ABB14A7F4723D426ACD0630BCF - -Count = 891 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 64BCEF8DAE0A00AB494C06752052D3D91AF0A938A117EC02C6DBE3B9107D989B27DF9F978F2C3844C8A4 - -Count = 892 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = -CT = 89A6BC509C2FA199469F92E4F44EC9AC0CA94C5180BDC12B6507F297E028E30E4F53B780371F1CF7F27045 - -Count = 893 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 00 -CT = CBF1A8AF0311E992A7410E6238D36508C58C922755D7212BFDA05B39CAF8397940D5E3E28E62DB217A80F5 - -Count = 894 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 0001 -CT = E54B761E4A8F0D1D94D92F149BCCA21A72CB58D4D3D60D43B485D0ACBCF911DB2B0A54977DB2F46F87DC58 - -Count = 895 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102 -CT = 8073F50326B592E5922BAD631EE5A3E34BEC391060F3DD81FEF3F7E3D33C80DE3FE4B3A5EE00725E0F2497 - -Count = 896 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 00010203 -CT = 9F3F6002F89F5CA2B48DF5300D06E4E1069FC91269F26A9DD88D4C90B2164BA63D11EE2D48EA78C4DB7AB7 - -Count = 897 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 0001020304 -CT = 1D07AA1D70FD65735A2CD02305D94CE8DAAF5563A1C47E75DD1602B9D7271A759FB4789CEABE7E5C7CC96B - -Count = 898 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405 -CT = F5941EF434BCE8E38E63F5FD9C29D5B730D3CA98871DD2DEA520B5F198338601A9ED8C2B5B65890482FAC4 - -Count = 899 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 00010203040506 -CT = 3E59844D00E1B3B13E8E65DB34669B94308E9348DB97F1510CAB9049CBB5C9FE2F398A60CA9CD7E861F3C3 - -Count = 900 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 0001020304050607 -CT = 15D3A591835795973858CFFDF307BC173845710A46C616C035AF8477AE1CAD2A1A54322DFA87D3903B8C43 - -Count = 901 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708 -CT = 39A67BEA2BD6620D0D466558161273B700F893252B55ACC198EA33256FD2CB32C417950BE78742DA311A7E - -Count = 902 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 00010203040506070809 -CT = 495F89651B3460E65F003BA766C5845FC02E3B629FCF8680D3CBBBD9715175DB6A739D1BFBA2ED53CE70E0 - -Count = 903 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A -CT = 84355B90FCA6CC96DB82A967919F4A90C3BA382DB3074CE42C47C86EB507BBF3A44851E5A88008B8EB5D68 - -Count = 904 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B -CT = BE57E3035F3121F1071DA155CFEDEDE8D7741A583C5C9498159B4FDB1B3538092A7987E89A9C4A60E3D910 - -Count = 905 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C -CT = F2E67F043069273262C42D9522322AA4317E00D113636EDBB6B780692B93811714505A742BD280FCAA5C8A - -Count = 906 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C0D -CT = 26BD543E0ED9A9C7D06C11353B9969108BE56AFF6C3C5C1EF53852B56067FFA6828FFA385A1E9762D1801D - -Count = 907 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C0D0E -CT = ACC9DFB104957F6F5B61F44EE0C8699E2FF5B6F4B2B6CB443B03033E050C4B1D715ADD636CB4EE4B2A9306 - -Count = 908 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C0D0E0F -CT = B5604DCF9517E3384C47714B3700BB7F3D40E66DF97FE1D99AFED09B7E4DF269B05ED77DD65CF2CFC80BF9 - -Count = 909 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C0D0E0F10 -CT = A3DCE6A36D4245193B10BD96D968374512010AD1717DBA7BB034CB21DD5010F214AAE6AF65E045537223A4 - -Count = 910 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = A3716FAF5CE05AE0DB7A87E3F093413F05F928417666A5CFE8688CF519B300DDF2FAC71294FC20EA75B57D - -Count = 911 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = A8844FEE475A9B10ACE25F7D497196D90757C10106EA2DBADCE86648E1D1327D9900A39F2B4DA3F6E3AF0E - -Count = 912 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = ECBB638503C559753693A570DD6E971DCAB927BE34A1452587E96BAC194E0A790F5A9C3CACAF2B38031A50 - -Count = 913 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = 502CE5C9F6B61A277324D953B68B262E37AB733ACAFC5961E7710294411EA50A4FF6F3992281165BA89E64 - -Count = 914 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = A85B710074776A79954E9305A94EFA7ED2E4E7967443E8FB8C1B6E6E6B1BEEE840788DAF2D97C72B39AF36 - -Count = 915 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 64A76E093101B4145E1F1C953633EB133E945B1DE753239743A6263F7C9F5E307ECC7898AC5463F618E665 - -Count = 916 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = 9F092EE04EA80A598D87EE1D359A5DB71A35BC351D69F73F6B8587F9097FA165FA512B77C119B9F44F59E6 - -Count = 917 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 7CE77BF23E72AD3CB7F3C0D12D82CDC9E5BBB145A3EABB67DEEE937FD2E8613C6ED9B523ADFAA7F0D23B7F - -Count = 918 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = AE5C18C2DAC4C66356197960539B94705DF1A740D249CBD28C24D4C7AFDFF7BB2B665AA48A3806B63B553E - -Count = 919 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 58670DED3A0718839B4B0C602EFFAC3E885C11546449B80B2532C0175220696168D5E5BD2B534C68DC1899 - -Count = 920 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 8E3359569770A9A49DCF7ACAF4E2E950AE67B59982F11BD94230A55D194059AC56E57FB2BF4D8501E0B8D9 - -Count = 921 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = CBA5AC3E706C38CCB7F9D3C15D40BE09393D3773241449D435D41B479850E1E948A11D7D3FE2A12BCD58C2 - -Count = 922 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 3A47EF6DC17B5364E30F0AC65F7B45F03C429302E27597B1CAC14A539E9C829B50AE11DA406D0E1AE3960E - -Count = 923 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = 91995B95E221DDAC69161C9DD17293349C5739663B0F193111A58CC80EE5FCAC888384B4398E97A7E53907 - -Count = 924 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 64BCEF8DAE0A00AB494C06752052D3D91AF0A938A117EC02C6DB1B2C539BE31DBEF61606526BC683520DE6 - -Count = 925 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = -CT = 89A6BC509C2FA199469F92E4F44EC9AC0CA94C5180BDC12B6507F2C02AD32D7923E16206D902FDB8BFC314F0 - -Count = 926 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 00 -CT = CBF1A8AF0311E992A7410E6238D36508C58C922755D7212BFDA05BB7DE54D47585E13D638FF425DB5CA6CC67 - -Count = 927 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 0001 -CT = E54B761E4A8F0D1D94D92F149BCCA21A72CB58D4D3D60D43B485D0EAD56FFA973D1537D86647F3476C431343 - -Count = 928 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102 -CT = 8073F50326B592E5922BAD631EE5A3E34BEC391060F3DD81FEF3F7A495E8DA53D948714266389906A4E103A2 - -Count = 929 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 00010203 -CT = 9F3F6002F89F5CA2B48DF5300D06E4E1069FC91269F26A9DD88D4CA249E448998021E672F192BC47FC4F5EED - -Count = 930 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 0001020304 -CT = 1D07AA1D70FD65735A2CD02305D94CE8DAAF5563A1C47E75DD1602335D2F55B0EAA00B9575D1118327BAE174 - -Count = 931 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405 -CT = F5941EF434BCE8E38E63F5FD9C29D5B730D3CA98871DD2DEA520B5C2B979450E85F45323C4B9917CDAE36F05 - -Count = 932 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 00010203040506 -CT = 3E59844D00E1B3B13E8E65DB34669B94308E9348DB97F1510CAB90A06151F8DCA29A71867F7AD9F854D743F4 - -Count = 933 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 0001020304050607 -CT = 15D3A591835795973858CFFDF307BC173845710A46C616C035AF849E70A4A61296B9454E2B956BA7D1B65A7A - -Count = 934 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708 -CT = 39A67BEA2BD6620D0D466558161273B700F893252B55ACC198EA33B2FCC43406ED2E2A5FF47A732499322C3D - -Count = 935 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 00010203040506070809 -CT = 495F89651B3460E65F003BA766C5845FC02E3B629FCF8680D3CBBB0007DB5D1231DC641BC68630424FAF7EE4 - -Count = 936 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A -CT = 84355B90FCA6CC96DB82A967919F4A90C3BA382DB3074CE42C47C87E64B29D4BAA816EADF4E21253B01F763E - -Count = 937 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B -CT = BE57E3035F3121F1071DA155CFEDEDE8D7741A583C5C9498159B4F1DA0A49E44100DAD40B4D991651D50C540 - -Count = 938 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C -CT = F2E67F043069273262C42D9522322AA4317E00D113636EDBB6B780FF023FB6729CDBA222D10D2B9CB998D639 - -Count = 939 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C0D -CT = 26BD543E0ED9A9C7D06C11353B9969108BE56AFF6C3C5C1EF538527DE475C93397F29CC37D4954E3471E2E0F - -Count = 940 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C0D0E -CT = ACC9DFB104957F6F5B61F44EE0C8699E2FF5B6F4B2B6CB443B0303B20C0A7386CD3D428575E5D7108D6159A3 - -Count = 941 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C0D0E0F -CT = B5604DCF9517E3384C47714B3700BB7F3D40E66DF97FE1D99AFED0932DBFF91B8D08FE58E665482EA20F726C - -Count = 942 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C0D0E0F10 -CT = A3DCE6A36D4245193B10BD96D968374512010AD1717DBA7BB034CBC5D5A2448F7E80F149B29860561FFE1C64 - -Count = 943 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = A3716FAF5CE05AE0DB7A87E3F093413F05F928417666A5CFE8688CD948391F3CFE2948EDB7E0F12A5B1D5676 - -Count = 944 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = A8844FEE475A9B10ACE25F7D497196D90757C10106EA2DBADCE866754CAE156DBEF2CBF26E7BA69B223C4EE1 - -Count = 945 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = ECBB638503C559753693A570DD6E971DCAB927BE34A1452587E96B792F1020CA832C02756DE4F063525A771D - -Count = 946 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = 502CE5C9F6B61A277324D953B68B262E37AB733ACAFC5961E77102EB3E137CE1ABD5AE04F7962B565B7D9291 - -Count = 947 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = A85B710074776A79954E9305A94EFA7ED2E4E7967443E8FB8C1B6E6B8EF79E61BAA16763262D6A8BE542227D - -Count = 948 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 64A76E093101B4145E1F1C953633EB133E945B1DE753239743A62627AB23F2A1975E41DD208251446E1EECF0 - -Count = 949 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = 9F092EE04EA80A598D87EE1D359A5DB71A35BC351D69F73F6B8587F1E1C6A38D6B13765902CE21D9D9A810B1 - -Count = 950 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 7CE77BF23E72AD3CB7F3C0D12D82CDC9E5BBB145A3EABB67DEEE93A79A79CE13F04B2B3120E4C43FCBB1BA18 - -Count = 951 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = AE5C18C2DAC4C66356197960539B94705DF1A740D249CBD28C24D4B79AC9756019AA3B9C9E52C999D3A523CC - -Count = 952 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 58670DED3A0718839B4B0C602EFFAC3E885C11546449B80B2532C041C555AE45FF8AF0183C68CE905FBDE702 - -Count = 953 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 8E3359569770A9A49DCF7ACAF4E2E950AE67B59982F11BD94230A5296E6E67E19503955AB8FE8D166BAECF83 - -Count = 954 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = CBA5AC3E706C38CCB7F9D3C15D40BE09393D3773241449D435D41B5D43CAB6DA8DDB4DCEE3DFCB030B0C3D1C - -Count = 955 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 3A47EF6DC17B5364E30F0AC65F7B45F03C429302E27597B1CAC14A36E960811C3824A4322D4396DF9ACFA98D - -Count = 956 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = 91995B95E221DDAC69161C9DD17293349C5739663B0F193111A58CECC6BCA83B3B3AACC8EC52AE64B3F8C6F1 - -Count = 957 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 64BCEF8DAE0A00AB494C06752052D3D91AF0A938A117EC02C6DB1B8900BA5D208630737213E258B3868B168B - -Count = 958 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = -CT = 89A6BC509C2FA199469F92E4F44EC9AC0CA94C5180BDC12B6507F2C011834329EF723989EB1C8E613398D5F9DD - -Count = 959 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 00 -CT = CBF1A8AF0311E992A7410E6238D36508C58C922755D7212BFDA05BB783BE60440826050ECE69E21D25EFF9E906 - -Count = 960 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 0001 -CT = E54B761E4A8F0D1D94D92F149BCCA21A72CB58D4D3D60D43B485D0EA35A6C1D9ECDCE8C8C4AA91AD55FF8E0357 - -Count = 961 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102 -CT = 8073F50326B592E5922BAD631EE5A3E34BEC391060F3DD81FEF3F7A46CB31004340E2F360EF50B74F5091B2FCE - -Count = 962 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 00010203 -CT = 9F3F6002F89F5CA2B48DF5300D06E4E1069FC91269F26A9DD88D4CA268064C8B9167809ABD7233F80F73474047 - -Count = 963 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 0001020304 -CT = 1D07AA1D70FD65735A2CD02305D94CE8DAAF5563A1C47E75DD16023334B7E431BD66B41DAD7B03F619AF2EB54E - -Count = 964 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405 -CT = F5941EF434BCE8E38E63F5FD9C29D5B730D3CA98871DD2DEA520B5C2139678D125B58A63430FE7B8381ABF8C6C - -Count = 965 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 00010203040506 -CT = 3E59844D00E1B3B13E8E65DB34669B94308E9348DB97F1510CAB90A0B7DF0ECCDA2D3A6C262522842EB9F7D472 - -Count = 966 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 0001020304050607 -CT = 15D3A591835795973858CFFDF307BC173845710A46C616C035AF849E9DC154BDF1C096555F11DBD63EAF2F33DA - -Count = 967 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708 -CT = 39A67BEA2BD6620D0D466558161273B700F893252B55ACC198EA33B27597CB395494C73FA5CC83CB1BAE4825E4 - -Count = 968 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 00010203040506070809 -CT = 495F89651B3460E65F003BA766C5845FC02E3B629FCF8680D3CBBB0070787B832BADE64AC441BFD650014DFF8C - -Count = 969 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A -CT = 84355B90FCA6CC96DB82A967919F4A90C3BA382DB3074CE42C47C87E4F224636DA5FAB981BEB72E71A0945B778 - -Count = 970 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B -CT = BE57E3035F3121F1071DA155CFEDEDE8D7741A583C5C9498159B4F1D244E831488D44DE9B89FDE8F56A075B997 - -Count = 971 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C -CT = F2E67F043069273262C42D9522322AA4317E00D113636EDBB6B780FF7F03F32EA5C8714E9AA3B99F0DFF6E0FD2 - -Count = 972 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C0D -CT = 26BD543E0ED9A9C7D06C11353B9969108BE56AFF6C3C5C1EF538527D05C6C8FBE18B0543CA771D6D1808D7C9CE - -Count = 973 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C0D0E -CT = ACC9DFB104957F6F5B61F44EE0C8699E2FF5B6F4B2B6CB443B0303B293CD78DC04E9161A155603B79399B877FA - -Count = 974 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C0D0E0F -CT = B5604DCF9517E3384C47714B3700BB7F3D40E66DF97FE1D99AFED0934E5CDD79ECF371D2592A72BF4183DC1A77 - -Count = 975 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C0D0E0F10 -CT = A3DCE6A36D4245193B10BD96D968374512010AD1717DBA7BB034CBC5023DE8D8431D60481598D710FD62E1467F - -Count = 976 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = A3716FAF5CE05AE0DB7A87E3F093413F05F928417666A5CFE8688CD94EAEF84FA7883DE288038D2D4F38C0302C - -Count = 977 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = A8844FEE475A9B10ACE25F7D497196D90757C10106EA2DBADCE866755CBDF842400D3227E882D01B8D05C3DC2D - -Count = 978 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = ECBB638503C559753693A570DD6E971DCAB927BE34A1452587E96B79A08D7B3D32310D2B7DA92E852C36B0FBBB - -Count = 979 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = 502CE5C9F6B61A277324D953B68B262E37AB733ACAFC5961E77102EB9F529650B8B170C9633DB2236055725FF1 - -Count = 980 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = A85B710074776A79954E9305A94EFA7ED2E4E7967443E8FB8C1B6E6B99004CD6EAE717151036671C65527FFD18 - -Count = 981 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 64A76E093101B4145E1F1C953633EB133E945B1DE753239743A62627CF046DDD99FF700DAD57E9F6DC2EAE2242 - -Count = 982 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = 9F092EE04EA80A598D87EE1D359A5DB71A35BC351D69F73F6B8587F1A27D04E11DA91EC8C817DDB4E8CBD287C5 - -Count = 983 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 7CE77BF23E72AD3CB7F3C0D12D82CDC9E5BBB145A3EABB67DEEE93A76BC0716A6B27FA79D92F44B59558DDC850 - -Count = 984 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = AE5C18C2DAC4C66356197960539B94705DF1A740D249CBD28C24D4B7AC8A89EC572CDD829C857367F03818E880 - -Count = 985 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 58670DED3A0718839B4B0C602EFFAC3E885C11546449B80B2532C041741AC4AF9F36B7A4C73BDF208EECF9E379 - -Count = 986 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 8E3359569770A9A49DCF7ACAF4E2E950AE67B59982F11BD94230A52994C73A87D85362B6ED26FC1219DE649DAE - -Count = 987 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = CBA5AC3E706C38CCB7F9D3C15D40BE09393D3773241449D435D41B5D7EB108028D41355343C02FD0AEB16BCB3D - -Count = 988 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 3A47EF6DC17B5364E30F0AC65F7B45F03C429302E27597B1CAC14A36AE329C9017421BA1F351794106DDD98DE7 - -Count = 989 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = 91995B95E221DDAC69161C9DD17293349C5739663B0F193111A58CECED52F94134FE98B765B3F79387FCAD7D8B - -Count = 990 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 64BCEF8DAE0A00AB494C06752052D3D91AF0A938A117EC02C6DB1B893B1410B68C8CD38EC2F5F4D673FCBD9240 - -Count = 991 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = -CT = 89A6BC509C2FA199469F92E4F44EC9AC0CA94C5180BDC12B6507F2C011AEB33CD92B73BCD51921B6D8B7ACD28177 - -Count = 992 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 00 -CT = CBF1A8AF0311E992A7410E6238D36508C58C922755D7212BFDA05BB783FD2F3B676A25ABA2C578FFC5DA1E662E7A - -Count = 993 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 0001 -CT = E54B761E4A8F0D1D94D92F149BCCA21A72CB58D4D3D60D43B485D0EA35847C559177CF8B3BCE5AA73F418AECBB61 - -Count = 994 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102 -CT = 8073F50326B592E5922BAD631EE5A3E34BEC391060F3DD81FEF3F7A46CE58F5169CA927DF9C001CC74D57EF03079 - -Count = 995 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 00010203 -CT = 9F3F6002F89F5CA2B48DF5300D06E4E1069FC91269F26A9DD88D4CA2682064302CA4198619E34D6E5201EB6C11E0 - -Count = 996 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 0001020304 -CT = 1D07AA1D70FD65735A2CD02305D94CE8DAAF5563A1C47E75DD160233341AD5E85C26903A33C37C1A0593F0BB79EA - -Count = 997 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405 -CT = F5941EF434BCE8E38E63F5FD9C29D5B730D3CA98871DD2DEA520B5C2133B48E120581981926616D4A491C53E6C87 - -Count = 998 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 00010203040506 -CT = 3E59844D00E1B3B13E8E65DB34669B94308E9348DB97F1510CAB90A0B786E33E6C73CCED600B3FF01D35D2A67BEC - -Count = 999 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 0001020304050607 -CT = 15D3A591835795973858CFFDF307BC173845710A46C616C035AF849E9DB598A7601FCCAF139EF17AF15404532CA3 - -Count = 1000 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708 -CT = 39A67BEA2BD6620D0D466558161273B700F893252B55ACC198EA33B275D601880D035AD1E3DDBDC3769F5E30EE8F - -Count = 1001 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 00010203040506070809 -CT = 495F89651B3460E65F003BA766C5845FC02E3B629FCF8680D3CBBB007099F6D6C164328EC5BA03CAD1C048C2AA0A - -Count = 1002 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A -CT = 84355B90FCA6CC96DB82A967919F4A90C3BA382DB3074CE42C47C87E4F657C94C5978541F837145F62B573D84554 - -Count = 1003 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B -CT = BE57E3035F3121F1071DA155CFEDEDE8D7741A583C5C9498159B4F1D2432D961A432317651B74F5B3C80C52FDF90 - -Count = 1004 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C -CT = F2E67F043069273262C42D9522322AA4317E00D113636EDBB6B780FF7FD3948F12EF4027D839A7F769E4BB37DEB9 - -Count = 1005 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C0D -CT = 26BD543E0ED9A9C7D06C11353B9969108BE56AFF6C3C5C1EF538527D059470230EB5BD28E4C8C325494C46369253 - -Count = 1006 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C0D0E -CT = ACC9DFB104957F6F5B61F44EE0C8699E2FF5B6F4B2B6CB443B0303B293A7BC7870EE86B3DE524ECFC61FE95490A5 - -Count = 1007 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C0D0E0F -CT = B5604DCF9517E3384C47714B3700BB7F3D40E66DF97FE1D99AFED0934E1599FED621BF5A64F4853399DB394FE22F - -Count = 1008 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C0D0E0F10 -CT = A3DCE6A36D4245193B10BD96D968374512010AD1717DBA7BB034CBC50291FA8A4DDD7FFD1C5FE156F284A7D8A3E8 - -Count = 1009 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = A3716FAF5CE05AE0DB7A87E3F093413F05F928417666A5CFE8688CD94E773B55A28EEC364715C17B6540A424236F - -Count = 1010 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = A8844FEE475A9B10ACE25F7D497196D90757C10106EA2DBADCE866755C271E61D239FEFEBE71C88E6FEF4BE606E7 - -Count = 1011 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = ECBB638503C559753693A570DD6E971DCAB927BE34A1452587E96B79A09A176F28780E943EBBE48F97D0E9C7B78C - -Count = 1012 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = 502CE5C9F6B61A277324D953B68B262E37AB733ACAFC5961E77102EB9F63C6C6490995B0A71D9392DA725FF8D8D5 - -Count = 1013 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = A85B710074776A79954E9305A94EFA7ED2E4E7967443E8FB8C1B6E6B99A1C74AB41D4E344B6214F89830601D934B - -Count = 1014 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 64A76E093101B4145E1F1C953633EB133E945B1DE753239743A62627CF4C2E798B7D16ADCF4C7268D0A355AAA347 - -Count = 1015 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = 9F092EE04EA80A598D87EE1D359A5DB71A35BC351D69F73F6B8587F1A2D065EE366110A5F21C199EA2D98427AA66 - -Count = 1016 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 7CE77BF23E72AD3CB7F3C0D12D82CDC9E5BBB145A3EABB67DEEE93A76B5D4366A4A4708EFB1F37C0AA22B14328E2 - -Count = 1017 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = AE5C18C2DAC4C66356197960539B94705DF1A740D249CBD28C24D4B7AC05CB7BE2AD254A616E11F652CA21FE34B3 - -Count = 1018 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 58670DED3A0718839B4B0C602EFFAC3E885C11546449B80B2532C04174A175DD4C852A8535881F4A1430B96A95E2 - -Count = 1019 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 8E3359569770A9A49DCF7ACAF4E2E950AE67B59982F11BD94230A529940D0AACA8158F720FE715D730F8257DBE60 - -Count = 1020 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = CBA5AC3E706C38CCB7F9D3C15D40BE09393D3773241449D435D41B5D7E896C919E007CBC00CFE901F5BA3E90D7CF - -Count = 1021 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 3A47EF6DC17B5364E30F0AC65F7B45F03C429302E27597B1CAC14A36AEA4095E5C1E70E0E3E63E868B77CC6930C5 - -Count = 1022 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = 91995B95E221DDAC69161C9DD17293349C5739663B0F193111A58CECED3DF0E6BFDC4BC9B7ADE7B3387AEDAC7F77 - -Count = 1023 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 64BCEF8DAE0A00AB494C06752052D3D91AF0A938A117EC02C6DB1B893BEE878AF8BF741FB176BBA8C9CE8967D2C8 - -Count = 1024 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = -CT = 89A6BC509C2FA199469F92E4F44EC9AC0CA94C5180BDC12B6507F2C011AE849E84E6AA27C1F8411F5242D79011EDAA - -Count = 1025 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 00 -CT = CBF1A8AF0311E992A7410E6238D36508C58C922755D7212BFDA05BB783FDAD2E2102D2C0BF95DDAF4C0F6A2D89F1F0 - -Count = 1026 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 0001 -CT = E54B761E4A8F0D1D94D92F149BCCA21A72CB58D4D3D60D43B485D0EA358451C4D177A7206CD390B3AC4754657BD2EC - -Count = 1027 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102 -CT = 8073F50326B592E5922BAD631EE5A3E34BEC391060F3DD81FEF3F7A46CE5D9585D1196515AED9F0A292E1B224559A3 - -Count = 1028 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 00010203 -CT = 9F3F6002F89F5CA2B48DF5300D06E4E1069FC91269F26A9DD88D4CA26820C3912986381096CAA092BA842375032CE1 - -Count = 1029 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 0001020304 -CT = 1D07AA1D70FD65735A2CD02305D94CE8DAAF5563A1C47E75DD160233341A5AD16232B65366B673B1292119394D07DF - -Count = 1030 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405 -CT = F5941EF434BCE8E38E63F5FD9C29D5B730D3CA98871DD2DEA520B5C2133B5B447059ECC5545C59DEB6E69EED273BB3 - -Count = 1031 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 00010203040506 -CT = 3E59844D00E1B3B13E8E65DB34669B94308E9348DB97F1510CAB90A0B78678528873675705EC50FC7334C0F01FAABD - -Count = 1032 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 0001020304050607 -CT = 15D3A591835795973858CFFDF307BC173845710A46C616C035AF849E9DB51F4CE603F1027FD905409CB59ED28BC630 - -Count = 1033 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708 -CT = 39A67BEA2BD6620D0D466558161273B700F893252B55ACC198EA33B275D64B6D728E1161DBF2EBDE8E58B76B4C4F2D - -Count = 1034 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 00010203040506070809 -CT = 495F89651B3460E65F003BA766C5845FC02E3B629FCF8680D3CBBB0070990A44EE82F80AA1D3C06DF8AE4B3CE63DAC - -Count = 1035 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A -CT = 84355B90FCA6CC96DB82A967919F4A90C3BA382DB3074CE42C47C87E4F6595DA69D74395DFC1D3D3A94FF9EB34B15E - -Count = 1036 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B -CT = BE57E3035F3121F1071DA155CFEDEDE8D7741A583C5C9498159B4F1D24323E0F9C02389070C1068A9DBEF65101D4A4 - -Count = 1037 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C -CT = F2E67F043069273262C42D9522322AA4317E00D113636EDBB6B780FF7FD3E8CCA38A203DA4312FEC69FCE66C11E37D - -Count = 1038 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C0D -CT = 26BD543E0ED9A9C7D06C11353B9969108BE56AFF6C3C5C1EF538527D059422DD590229CFADB791B0727F743B2C2ECA - -Count = 1039 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C0D0E -CT = ACC9DFB104957F6F5B61F44EE0C8699E2FF5B6F4B2B6CB443B0303B293A718A89C7ED1DBC5882C0FDC62A28F31A849 - -Count = 1040 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C0D0E0F -CT = B5604DCF9517E3384C47714B3700BB7F3D40E66DF97FE1D99AFED0934E152C3BCE19350FDEFBCE851DD35490EA4865 - -Count = 1041 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C0D0E0F10 -CT = A3DCE6A36D4245193B10BD96D968374512010AD1717DBA7BB034CBC50291AF29B3D4E5EA27FC27FCED907DC5E6CDD3 - -Count = 1042 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = A3716FAF5CE05AE0DB7A87E3F093413F05F928417666A5CFE8688CD94E77C19D1A20EF9121F74DC46BB031F1EF9942 - -Count = 1043 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = A8844FEE475A9B10ACE25F7D497196D90757C10106EA2DBADCE866755C27C71AA2C1DFBDBB4E316218110BD7D1CEC0 - -Count = 1044 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = ECBB638503C559753693A570DD6E971DCAB927BE34A1452587E96B79A09A55C0AC253063B0E1898B2CC60C9ED7D269 - -Count = 1045 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = 502CE5C9F6B61A277324D953B68B262E37AB733ACAFC5961E77102EB9F633F7F41EF13DA1023B3E74453FAACCF6A47 - -Count = 1046 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = A85B710074776A79954E9305A94EFA7ED2E4E7967443E8FB8C1B6E6B99A17C6BE85557C0FC2AE31C24E56630F15C76 - -Count = 1047 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 64A76E093101B4145E1F1C953633EB133E945B1DE753239743A62627CF4CAD4A331BC1A09349791B3F9EBB065730FB - -Count = 1048 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = 9F092EE04EA80A598D87EE1D359A5DB71A35BC351D69F73F6B8587F1A2D0E8A7B6EFA09A6CE41A03762D19158B1277 - -Count = 1049 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 7CE77BF23E72AD3CB7F3C0D12D82CDC9E5BBB145A3EABB67DEEE93A76B5D0C008094A73DAF1766F4465EA8049E0FB3 - -Count = 1050 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = AE5C18C2DAC4C66356197960539B94705DF1A740D249CBD28C24D4B7AC057913F066D6EDDAE7F1A8FA81339D717E5E - -Count = 1051 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 58670DED3A0718839B4B0C602EFFAC3E885C11546449B80B2532C04174A169F48795EA264B16CEEC3D5E5F5ABD6BB9 - -Count = 1052 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 8E3359569770A9A49DCF7ACAF4E2E950AE67B59982F11BD94230A529940DAC7DD1F9E06EF9927FBB330DEEE674C4A1 - -Count = 1053 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = CBA5AC3E706C38CCB7F9D3C15D40BE09393D3773241449D435D41B5D7E8972F64B2B08CEC19FB5DC89641A6CA54FCF - -Count = 1054 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 3A47EF6DC17B5364E30F0AC65F7B45F03C429302E27597B1CAC14A36AEA4B16D2FD73976EC4E4F5AC9AD29C1D18AF4 - -Count = 1055 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = 91995B95E221DDAC69161C9DD17293349C5739663B0F193111A58CECED3DCD3A64D6407B89DCFDE4D03CD27BB31495 - -Count = 1056 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 64BCEF8DAE0A00AB494C06752052D3D91AF0A938A117EC02C6DB1B893BEED64DAAAF814B14BFA5D3DB7BB8150A7AFD - -Count = 1057 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = -CT = 89A6BC509C2FA199469F92E4F44EC9AC0CA94C5180BDC12B6507F2C011AE842519A073B121A07F9C85D86B7E5E1B621C - -Count = 1058 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 00 -CT = CBF1A8AF0311E992A7410E6238D36508C58C922755D7212BFDA05BB783FDAD544063DDB220006783AE86E7550D1D6C60 - -Count = 1059 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 0001 -CT = E54B761E4A8F0D1D94D92F149BCCA21A72CB58D4D3D60D43B485D0EA358451589FA4C15860BCAAC29D71DC55063E8D54 - -Count = 1060 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102 -CT = 8073F50326B592E5922BAD631EE5A3E34BEC391060F3DD81FEF3F7A46CE5D9F0F630235D028C510D0CD8D785A9748CF9 - -Count = 1061 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 00010203 -CT = 9F3F6002F89F5CA2B48DF5300D06E4E1069FC91269F26A9DD88D4CA26820C3967DA37EAC13B5A4EDF635C8F3FFD39DC4 - -Count = 1062 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 0001020304 -CT = 1D07AA1D70FD65735A2CD02305D94CE8DAAF5563A1C47E75DD160233341A5A70579BB463AC6B12BEE2E8C870C6373B6C - -Count = 1063 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405 -CT = F5941EF434BCE8E38E63F5FD9C29D5B730D3CA98871DD2DEA520B5C2133B5BBF6BE399C7FCE31D4B67F01A9A9D1C975D - -Count = 1064 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 00010203040506 -CT = 3E59844D00E1B3B13E8E65DB34669B94308E9348DB97F1510CAB90A0B786787517167BD05D87984B6508725A5E729FDC - -Count = 1065 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 0001020304050607 -CT = 15D3A591835795973858CFFDF307BC173845710A46C616C035AF849E9DB51FCADD4CFA88485F3932286CE428AAD0BC7C - -Count = 1066 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708 -CT = 39A67BEA2BD6620D0D466558161273B700F893252B55ACC198EA33B275D64BA1EE7E1BBFFC73291EB646FC02FBB0F625 - -Count = 1067 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 00010203040506070809 -CT = 495F89651B3460E65F003BA766C5845FC02E3B629FCF8680D3CBBB0070990A49AB45EA92A6663204D9A42D02D9ED2F5C - -Count = 1068 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A -CT = 84355B90FCA6CC96DB82A967919F4A90C3BA382DB3074CE42C47C87E4F6595E372E2D628EB160E612D2DACCB50CA2764 - -Count = 1069 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B -CT = BE57E3035F3121F1071DA155CFEDEDE8D7741A583C5C9498159B4F1D24323E6E598BA32C3CDDD0B46B4A46CA4EFFE7E3 - -Count = 1070 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C -CT = F2E67F043069273262C42D9522322AA4317E00D113636EDBB6B780FF7FD3E8C43EAC44997404DBD80AD4EDDB96C3A1B4 - -Count = 1071 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C0D -CT = 26BD543E0ED9A9C7D06C11353B9969108BE56AFF6C3C5C1EF538527D059422E03204F80949392C6D0D0203637FDBAE45 - -Count = 1072 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C0D0E -CT = ACC9DFB104957F6F5B61F44EE0C8699E2FF5B6F4B2B6CB443B0303B293A71875E7558BCEED9C4361E53F8BACE7A3B8B0 - -Count = 1073 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C0D0E0F -CT = B5604DCF9517E3384C47714B3700BB7F3D40E66DF97FE1D99AFED0934E152CA74713E91D184E479F6E425C8C6EE0A2A8 - -Count = 1074 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C0D0E0F10 -CT = A3DCE6A36D4245193B10BD96D968374512010AD1717DBA7BB034CBC50291AFF342F8384B0654DDCB7EC36E0A71E3ADB2 - -Count = 1075 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = A3716FAF5CE05AE0DB7A87E3F093413F05F928417666A5CFE8688CD94E77C19A81DF8DF304EC4824B63E9067F50C99DE - -Count = 1076 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = A8844FEE475A9B10ACE25F7D497196D90757C10106EA2DBADCE866755C27C75B1A7094D2D210035B7D7A5CF32BBE6E3A - -Count = 1077 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = ECBB638503C559753693A570DD6E971DCAB927BE34A1452587E96B79A09A55BADFC073A7E8D46A55AE45EEBA6FB9EB30 - -Count = 1078 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = 502CE5C9F6B61A277324D953B68B262E37AB733ACAFC5961E77102EB9F633FA6BFCFDB404B5F61D851C61EAFFC659780 - -Count = 1079 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = A85B710074776A79954E9305A94EFA7ED2E4E7967443E8FB8C1B6E6B99A17C54AD522C7B09D8A0FD2F4F5C233B33A4B7 - -Count = 1080 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 64A76E093101B4145E1F1C953633EB133E945B1DE753239743A62627CF4CAD181CFB80A0149DC9A4E5EFA4976B390F71 - -Count = 1081 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = 9F092EE04EA80A598D87EE1D359A5DB71A35BC351D69F73F6B8587F1A2D0E86D2617D1F3B17EF10A096A3FFB7C3D161F - -Count = 1082 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 7CE77BF23E72AD3CB7F3C0D12D82CDC9E5BBB145A3EABB67DEEE93A76B5D0C668A59DC41917DD1D9427F2CECC73AA527 - -Count = 1083 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = AE5C18C2DAC4C66356197960539B94705DF1A740D249CBD28C24D4B7AC0579620578E900A9A7D489F6D37FBD3F9B3811 - -Count = 1084 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 58670DED3A0718839B4B0C602EFFAC3E885C11546449B80B2532C04174A16959F85ECE5C0B2D4386C45F51A49A8CEAC9 - -Count = 1085 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 8E3359569770A9A49DCF7ACAF4E2E950AE67B59982F11BD94230A529940DACC07249D049E3A8AA32949C719A06379D7E - -Count = 1086 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = CBA5AC3E706C38CCB7F9D3C15D40BE09393D3773241449D435D41B5D7E8972C4ADA6708ED83BCFD3C856F87A0900783E - -Count = 1087 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 3A47EF6DC17B5364E30F0AC65F7B45F03C429302E27597B1CAC14A36AEA4B1B0CA5D3AEA0875CD3184C7681AAE6AE531 - -Count = 1088 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = 91995B95E221DDAC69161C9DD17293349C5739663B0F193111A58CECED3DCDF780D0ADDE739814BBEC0D9498824E6725 - -Count = 1089 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B0C0D0E0F -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 64BCEF8DAE0A00AB494C06752052D3D91AF0A938A117EC02C6DB1B893BEED6441FA8D67F5C20E9B50D6B7FEB1D07C91A - diff --git a/romulus/Implementations/crypto_aead/romulusn1v12/armcortexm/api.h b/romulus/Implementations/crypto_aead/romulusn1v12/armcortexm/api.h deleted file mode 100644 index a4aa567..0000000 --- a/romulus/Implementations/crypto_aead/romulusn1v12/armcortexm/api.h +++ /dev/null @@ -1,5 +0,0 @@ -#define CRYPTO_KEYBYTES 16 -#define CRYPTO_NSECBYTES 0 -#define CRYPTO_NPUBBYTES 16 -#define CRYPTO_ABYTES 16 -#define CRYPTO_NOOVERLAP 1 diff --git a/romulus/Implementations/crypto_aead/romulusn1v12/armcortexm/crypto_aead.h b/romulus/Implementations/crypto_aead/romulusn1v12/armcortexm/crypto_aead.h deleted file mode 100644 index 6f4ee42..0000000 --- a/romulus/Implementations/crypto_aead/romulusn1v12/armcortexm/crypto_aead.h +++ /dev/null @@ -1,13 +0,0 @@ -//API required by the NIST for the LWC competition -int crypto_aead_encrypt(unsigned char *c, unsigned long long *clen, - const unsigned char *m, unsigned long long mlen, - const unsigned char *ad, unsigned long long adlen, - const unsigned char *nsec, const unsigned char *npub, - const unsigned char *k); - -//API required by the NIST for the LWC competition -int crypto_aead_decrypt(unsigned char *m, unsigned long long *outputmlen, - unsigned char *nsec, - const unsigned char *c, unsigned long long clen, - const unsigned char *ad, unsigned long long adlen, - const unsigned char *npub, const unsigned char *k); diff --git a/romulus/Implementations/crypto_aead/romulusn1v12/armcortexm/encrypt.c b/romulus/Implementations/crypto_aead/romulusn1v12/armcortexm/encrypt.c deleted file mode 100644 index 8b819f8..0000000 --- a/romulus/Implementations/crypto_aead/romulusn1v12/armcortexm/encrypt.c +++ /dev/null @@ -1,261 +0,0 @@ -#include "skinny128.h" -#include "romulus.h" -#include - -//Encryption and authentication using Romulus-N1 -int crypto_aead_encrypt - (unsigned char *c, unsigned long long *clen, - const unsigned char *m, unsigned long long mlen, - const unsigned char *ad, unsigned long long adlen, - const unsigned char *nsec, - const unsigned char *npub, - const unsigned char *k) { - - u32 tmp; - skinny_128_384_tks tks; - u8 state[BLOCKBYTES], pad[BLOCKBYTES]; - (void)nsec; - - // ----------------- Initialization ----------------- - *clen = mlen + TAGBYTES; - memset(tks.tk1, 0x00, KEYBYTES); - memset(state, 0x00, BLOCKBYTES); - tks.tk1[0] = 0x01; // Init 56-bit LFSR counter - // ----------------- Initialization ----------------- - - // ----------------- Process the associated data ----------------- - if (adlen == 0) { // Handle the special case of no AD - UPDATE_CTR(tks.tk1); - SET_DOMAIN(tks, 0x1A); - tkschedule_lfsr(tks.rtk, npub, k, SKINNY128_384_ROUNDS); - tkschedule_perm(tks.rtk); - tkschedule_perm_tk1(tks.rtk1, tks.tk1); - skinny128_384(state, tks.rtk, state, tks.rtk1); - } else { // Process double blocks but the last - SET_DOMAIN(tks, 0x08); - while (adlen > 2*BLOCKBYTES) { - UPDATE_CTR(tks.tk1); - XOR_BLOCK(state, state, ad); - tkschedule_lfsr(tks.rtk, ad + BLOCKBYTES, k, SKINNY128_384_ROUNDS); - tkschedule_perm(tks.rtk); - tkschedule_perm_tk1(tks.rtk1, tks.tk1); - skinny128_384(state, tks.rtk, state, tks.rtk1); - UPDATE_CTR(tks.tk1); - ad += 2*BLOCKBYTES; - adlen -= 2*BLOCKBYTES; - } - // Pad and process the left-over blocks - UPDATE_CTR(tks.tk1); - if (adlen == 2*BLOCKBYTES) { // Left-over complete double block - XOR_BLOCK(state, state, ad); - tkschedule_lfsr(tks.rtk, ad + BLOCKBYTES, k, SKINNY128_384_ROUNDS); - tkschedule_perm(tks.rtk); - tkschedule_perm_tk1(tks.rtk1, tks.tk1); - skinny128_384(state, tks.rtk, state, tks.rtk1); - UPDATE_CTR(tks.tk1); - SET_DOMAIN(tks, 0x18); - } else if (adlen > BLOCKBYTES) { // Left-over partial double block - adlen -= BLOCKBYTES; - XOR_BLOCK(state, state, ad); - memcpy(pad, ad + BLOCKBYTES, adlen); - memset(pad + adlen, 0x00, 15 - adlen); - pad[15] = adlen; - tkschedule_lfsr(tks.rtk, pad, k, SKINNY128_384_ROUNDS); - tkschedule_perm(tks.rtk); - tkschedule_perm_tk1(tks.rtk1, tks.tk1); - skinny128_384(state, tks.rtk, state, tks.rtk1); - UPDATE_CTR(tks.tk1); - SET_DOMAIN(tks, 0x1A); - } else if (adlen == BLOCKBYTES) { // Left-over complete single block - XOR_BLOCK(state, state, ad); - SET_DOMAIN(tks, 0x18); - } else { // Left-over partial single block - for(int i = 0; i < (int)adlen; i++) - state[i] ^= ad[i]; - state[15] ^= adlen; // Padding - SET_DOMAIN(tks, 0x1A); - } - tkschedule_lfsr(tks.rtk, npub, k, SKINNY128_384_ROUNDS); - tkschedule_perm(tks.rtk); - tkschedule_perm_tk1(tks.rtk1, tks.tk1); - skinny128_384(state, tks.rtk, state, tks.rtk1); - } - // ----------------- Process the associated data ----------------- - - // ----------------- Process the plaintext ----------------- - memset(tks.tk1, 0x00, KEYBYTES/2); - tks.tk1[0] = 0x01; // Init the 56-bit LFSR counter - if (mlen == 0) { - UPDATE_CTR(tks.tk1); - SET_DOMAIN(tks, 0x15); - tkschedule_perm_tk1(tks.rtk1, tks.tk1); - skinny128_384(state, tks.rtk, state, tks.rtk1); - } else { // Process all blocks except the last - SET_DOMAIN(tks, 0x04); - while (mlen > BLOCKBYTES) { - RHO(state,c,m); - UPDATE_CTR(tks.tk1); - tkschedule_perm_tk1(tks.rtk1, tks.tk1); - skinny128_384(state, tks.rtk, state, tks.rtk1); - c += BLOCKBYTES; - m += BLOCKBYTES; - mlen -= BLOCKBYTES; - } - // Pad and process the last block - UPDATE_CTR(tks.tk1); - if (mlen < BLOCKBYTES) { // Last message single block is full - for(int i = 0; i < (int)mlen; i++) { - tmp = m[i]; // Use of tmp variable in case c = m - c[i] = m[i] ^ (state[i] >> 1) ^ (state[i] & 0x80) ^ (state[i] << 7); - state[i] ^= (u8)tmp; - } - state[15] ^= (u8)mlen; // Padding - SET_DOMAIN(tks, 0x15); - } else { // Last message single block is partial - RHO(state,c,m); - SET_DOMAIN(tks, 0x14); - } - tkschedule_perm_tk1(tks.rtk1, tks.tk1); - skinny128_384(state, tks.rtk, state, tks.rtk1); - c += mlen; - } - // ----------------- Process the plaintext ----------------- - - // ----------------- Generate the tag ----------------- - G(c,state); - // ----------------- Generate the tag ----------------- - - return 0; -} - - -//Decryption and tag verification using Romulus-N1 -int crypto_aead_decrypt - (unsigned char *m, unsigned long long *mlen, - unsigned char *nsec, - const unsigned char *c, unsigned long long clen, - const unsigned char *ad, unsigned long long adlen, - const unsigned char *npub, - const unsigned char *k) { - - u32 tmp; - skinny_128_384_tks tks; - u8 state[BLOCKBYTES], pad[BLOCKBYTES]; - (void)nsec; - - if (clen < TAGBYTES) - return -1; - - // ----------------- Initialization ----------------- - *mlen = clen - TAGBYTES; - memset(tks.tk1, 0x00, KEYBYTES); - memset(state, 0x00, BLOCKBYTES); - tks.tk1[0] = 0x01; // Init 56-bit LFSR counter - // ----------------- Initialization ----------------- - - // ----------------- Process the associated data ----------------- - if (adlen == 0) { // Handle the special case of no AD - UPDATE_CTR(tks.tk1); - SET_DOMAIN(tks, 0x1A); - tkschedule_lfsr(tks.rtk, npub, k, SKINNY128_384_ROUNDS); - tkschedule_perm(tks.rtk); - tkschedule_perm_tk1(tks.rtk1, tks.tk1); - skinny128_384(state, tks.rtk, state, tks.rtk1); - } else { // Process double blocks except the last - SET_DOMAIN(tks, 0x08); - while (adlen > 2*BLOCKBYTES) { - UPDATE_CTR(tks.tk1); - XOR_BLOCK(state, state, ad); - tkschedule_lfsr(tks.rtk, ad + BLOCKBYTES, k, SKINNY128_384_ROUNDS); - tkschedule_perm(tks.rtk); - tkschedule_perm_tk1(tks.rtk1, tks.tk1); - skinny128_384(state, tks.rtk, state, tks.rtk1); - UPDATE_CTR(tks.tk1); - ad += 2*BLOCKBYTES; - adlen -= 2*BLOCKBYTES; - } - // Pad and process the left-over blocks - UPDATE_CTR(tks.tk1); - if (adlen == 2*BLOCKBYTES) { // Left-over complete double block - XOR_BLOCK(state, state, ad); - tkschedule_lfsr(tks.rtk, ad + BLOCKBYTES, k, SKINNY128_384_ROUNDS); - tkschedule_perm(tks.rtk); - tkschedule_perm_tk1(tks.rtk1, tks.tk1); - skinny128_384(state, tks.rtk, state, tks.rtk1); - UPDATE_CTR(tks.tk1); - SET_DOMAIN(tks, 0x18); - } else if (adlen > BLOCKBYTES) { // Left-over partial double block - adlen -= BLOCKBYTES; - XOR_BLOCK(state, state, ad); - memcpy(pad, ad + BLOCKBYTES, adlen); - memset(pad + adlen, 0x00, 15 - adlen); - pad[15] = adlen; - tkschedule_lfsr(tks.rtk, pad, k, SKINNY128_384_ROUNDS); - tkschedule_perm(tks.rtk); - tkschedule_perm_tk1(tks.rtk1, tks.tk1); - skinny128_384(state, tks.rtk, state, tks.rtk1); - UPDATE_CTR(tks.tk1); - SET_DOMAIN(tks, 0x1A); - } else if (adlen == BLOCKBYTES) { // Left-over complete single block - XOR_BLOCK(state, state, ad); - SET_DOMAIN(tks, 0x18); - } else { // Left-over partial single block - for(int i = 0; i < (int)adlen; i++) - state[i] ^= ad[i]; - state[15] ^= adlen; // Padding - SET_DOMAIN(tks, 0x1A); - } - tkschedule_lfsr(tks.rtk, npub, k, SKINNY128_384_ROUNDS); - tkschedule_perm(tks.rtk); - tkschedule_perm_tk1(tks.rtk1, tks.tk1); - skinny128_384(state, tks.rtk, state, tks.rtk1); - } - // ----------------- Process the associated data ----------------- - - // ----------------- Process the ciphertext ----------------- - clen -= TAGBYTES; - memset(tks.tk1, 0x00, KEYBYTES/2); - tks.tk1[0] = 0x01; // Init the 56-bit LFSR counter - if (clen == 0) { - UPDATE_CTR(tks.tk1); - SET_DOMAIN(tks, 0x15); - tkschedule_perm_tk1(tks.rtk1, tks.tk1); - skinny128_384(state, tks.rtk, state, tks.rtk1); - } else { // Process all blocks except the last - SET_DOMAIN(tks, 0x04); - while (clen > BLOCKBYTES) { - RHO_INV(state,c,m); - UPDATE_CTR(tks.tk1); - tkschedule_perm_tk1(tks.rtk1, tks.tk1); - skinny128_384(state, tks.rtk, state, tks.rtk1); - c += BLOCKBYTES; - m += BLOCKBYTES; - clen -= BLOCKBYTES; - } - // Pad and process the last block - UPDATE_CTR(tks.tk1); - if (clen < BLOCKBYTES) { // Last message double block is partial - for(int i = 0; i < (int)clen; i++) { - m[i] = c[i] ^ (state[i] >> 1) ^ (state[i] & 0x80) ^ (state[i] << 7); - state[i] ^= m[i]; - } - state[15] ^= (u8)clen; // Padding - SET_DOMAIN(tks, 0x15); - } else { // Last message double block is full - RHO_INV(state,c,m); - SET_DOMAIN(tks, 0x14); - } - tkschedule_perm_tk1(tks.rtk1, tks.tk1); - skinny128_384(state, tks.rtk, state, tks.rtk1); - } - // ----------------- Process the plaintext ----------------- - - // ----------------- Generate and check the tag ----------------- - G(state,state); - tmp = 0; - for(int i = 0; i < TAGBYTES; i++) - tmp |= state[i] ^ c[clen+i]; // Constant-time tag comparison - // ----------------- Generate and check the tag ----------------- - - return tmp; -} \ No newline at end of file diff --git a/romulus/Implementations/crypto_aead/romulusn1v12/armcortexm/romulus.h b/romulus/Implementations/crypto_aead/romulusn1v12/armcortexm/romulus.h deleted file mode 100644 index 4c0e141..0000000 --- a/romulus/Implementations/crypto_aead/romulusn1v12/armcortexm/romulus.h +++ /dev/null @@ -1,68 +0,0 @@ -#ifndef ROMULUSN1_H_ -#define ROMULUSN1_H_ - -#include "skinny128.h" - -typedef unsigned char u8; -typedef unsigned int u32; -typedef struct { - u8 tk1[16]; //to manipulate tk1 in a byte-wise manner - u32 rtk1[32]; //to avoid recomputation of the tk schedule - u32 rtk[4*SKINNY128_384_ROUNDS];//all round tweakeys -} skinny_128_384_tks; - -#define TAGBYTES 16 -#define KEYBYTES 16 -#define BLOCKBYTES 16 - -#define SET_DOMAIN(tks, domain) ((tks).tk1[7] = (domain)) - -//G as defined in the Romulus specification in a 32-bit word-wise manner -#define G(x,y) ({ \ - tmp = ((u32*)(y))[0]; \ - ((u32*)(x))[0] = (tmp >> 1 & 0x7f7f7f7f) ^ ((tmp ^ (tmp << 7)) & 0x80808080); \ - tmp = ((u32*)(y))[1]; \ - ((u32*)(x))[1] = (tmp >> 1 & 0x7f7f7f7f) ^ ((tmp ^ (tmp << 7)) & 0x80808080); \ - tmp = ((u32*)(y))[2]; \ - ((u32*)(x))[2] = (tmp >> 1 & 0x7f7f7f7f) ^ ((tmp ^ (tmp << 7)) & 0x80808080); \ - tmp = ((u32*)(y))[3]; \ - ((u32*)(x))[3] = (tmp >> 1 & 0x7f7f7f7f) ^ ((tmp ^ (tmp << 7)) & 0x80808080); \ -}) - -//update the counter in tk1 in a 32-bit word-wise manner -#define UPDATE_CTR(tk1) ({ \ - tmp = ((u32*)(tk1))[1]; \ - ((u32*)(tk1))[1] = (tmp << 1) & 0x00ffffff; \ - ((u32*)(tk1))[1] |= (((u32*)(tk1))[0] >> 31); \ - ((u32*)(tk1))[1] |= tmp & 0xff000000; \ - ((u32*)(tk1))[0] <<= 1; \ - if ((tmp >> 23) & 0x01) \ - ((u32*)(tk1))[0] ^= 0x95; \ -}) - -//x <- y ^ z for 128-bit blocks -#define XOR_BLOCK(x,y,z) ({ \ - ((u32*)(x))[0] = ((u32*)(y))[0] ^ ((u32*)(z))[0]; \ - ((u32*)(x))[1] = ((u32*)(y))[1] ^ ((u32*)(z))[1]; \ - ((u32*)(x))[2] = ((u32*)(y))[2] ^ ((u32*)(z))[2]; \ - ((u32*)(x))[3] = ((u32*)(y))[3] ^ ((u32*)(z))[3]; \ -}) - - -//Rho as defined in the Romulus specification -//use pad as a tmp variable in case y = z -#define RHO(x,y,z) ({ \ - G(pad,x); \ - XOR_BLOCK(y, pad, z); \ - XOR_BLOCK(x, x, z); \ -}) - -//Rho inverse as defined in the Romulus specification -//use pad as a tmp variable in case y = z -#define RHO_INV(x, y, z) ({ \ - G(pad, x); \ - XOR_BLOCK(z, pad, y); \ - XOR_BLOCK(x, x, z); \ -}) - -#endif // ROMULUSN1_H_ \ No newline at end of file diff --git a/romulus/Implementations/crypto_aead/romulusn1v12/armcortexm/skinny128.h b/romulus/Implementations/crypto_aead/romulusn1v12/armcortexm/skinny128.h deleted file mode 100644 index 4c8f956..0000000 --- a/romulus/Implementations/crypto_aead/romulusn1v12/armcortexm/skinny128.h +++ /dev/null @@ -1,17 +0,0 @@ -#ifndef SKINNY128_H_ -#define SKINNY128_H_ - -typedef unsigned char u8; -typedef unsigned int u32; - -#define SKINNY128_128_ROUNDS 40 -#define SKINNY128_256_ROUNDS 48 -#define SKINNY128_384_ROUNDS 56 - -extern void skinny128_384(u8* ctext, const u32* tk, const u8* ptext, const u32* rtk1); -extern void tkschedule_lfsr(u32* rtk, const u8* tk2, const u8* tk3, const int rounds); -extern void tkschedule_perm(u32* rtk); -extern void tkschedule_perm_tk1(u32* rtk1, const u8* tk1); - - -#endif // SKINNY128_H_ \ No newline at end of file diff --git a/romulus/Implementations/crypto_aead/romulusn1v12/armcortexm/skinny128.s b/romulus/Implementations/crypto_aead/romulusn1v12/armcortexm/skinny128.s deleted file mode 100644 index dcd4852..0000000 --- a/romulus/Implementations/crypto_aead/romulusn1v12/armcortexm/skinny128.s +++ /dev/null @@ -1,1974 +0,0 @@ -/******************************************************************************* -* ARM assembly implementation of fixsliced SKINNY-128-384. -* -* For more details, see the paper at: https:// -* -* @author Alexandre Adomnicai, Nanyang Technological University, -* alexandre.adomnicai@ntu.edu.sg -* -* @date May 2020 -*******************************************************************************/ - -.syntax unified -.thumb - -/******************************************************************************* -* applies P^2 on the tweakey state in a bitsliced manner -*******************************************************************************/ -.align 2 -p2: - movw r1, #0xcc00 - movt r1, #0xcc00 //r1 <- 0xcc00cc00 - movw r10, #0xcc00 - movt r10, #0x0033 //r10<- 0xcc000033 - and r11, r1, r6, ror #14 - bfi r11, r6, #16, #8 - and r12, r6, #0xcc000000 - orr r11, r11, r12, lsr #2 - and r12, r10, r6 - orr r11, r11, r12, lsr #8 - and r12, r6, #0x00cc0000 - orr r6, r11, r12, lsr #18 - and r11, r1, r7, ror #14 - bfi r11, r7, #16, #8 - and r12, r7, #0xcc000000 - orr r11, r11, r12, lsr #2 - and r12, r10, r7 - orr r11, r11, r12, lsr #8 - and r12, r7, #0x00cc0000 - orr r7, r11, r12, lsr #18 - and r11, r1, r8, ror #14 - bfi r11, r8, #16, #8 - and r12, r8, #0xcc000000 - orr r11, r11, r12, lsr #2 - and r12, r10, r8 - orr r11, r11, r12, lsr #8 - and r12, r8, #0x00cc0000 - orr r8, r11, r12, lsr #18 - and r11, r1, r9, ror #14 - bfi r11, r9, #16, #8 - and r12, r9, #0xcc000000 - orr r11, r11, r12, lsr #2 - and r12, r10, r9 - orr r11, r11, r12, lsr #8 - and r12, r9, #0x00cc0000 - orr r9, r11, r12, lsr #18 - bx lr - -/******************************************************************************* -* applies P^4 on the tweakey state in a bitsliced manner -*******************************************************************************/ -.align 2 -p4: - str.w r14, [sp] //store r14 on the stack - movw r14, #0x00cc - movt r14, #0xcc00 //r14<- 0xcc0000cc - movw r12, #0xcc00 - movt r12, #0x3300 //r12<- 0x3300cc00 - movw r11, #0x00cc - movt r11, #0x00cc //r11<- 0x00cc00cc - and r10, r14, r6, ror #22 - and r1, r12, r6, ror #16 - orr r10, r10, r1 - and r1, r6, r11 - orr r10, r10, r1, lsr #2 - movw r1, #0xcc33 //r1 <- 0x0000cc33 - and r6, r6, r1 - orr r6, r10, r6, ror #24 - and r10, r14, r7, ror #22 - and r1, r12, r7, ror #16 - orr r10, r10, r1 - and r1, r7, r11 - orr r10, r10, r1, lsr #2 - movw r1, #0xcc33 //r1 <- 0x0000cc33 - and r7, r7, r1 - orr r7, r10, r7, ror #24 - and r10, r14, r8, ror #22 - and r1, r12, r8, ror #16 - orr r10, r10, r1 - and r1, r8, r11 - orr r10, r10, r1, lsr #2 - movw r1, #0xcc33 //r1 <- 0x0000cc33 - and r8, r8, r1 - orr r8, r10, r8, ror #24 - and r10, r14, r9, ror #22 - ldr.w r14, [sp] //restore r14 - and r12, r12, r9, ror #16 - orr r10, r10, r12 - and r12, r9, r11 - orr r10, r10, r12, lsr #2 - movw r12, #0xcc33 //r1 <- 0x0000cc33 - and r9, r9, r12 - orr r9, r10, r9, ror #24 - bx lr - -/******************************************************************************* -* applies P^6 on the tweakey state in a bitsliced manner -*******************************************************************************/ -.align 2 -p6: - movw r1, #0x3333 //r1 <- 0x00003333 - movw r12, #0x00cc - movt r12, #0x3300 //r12<- 0x330000cc - and r10, r6, r1, ror #8 // --- permute r6 6 times - and r11, r12, r6, ror #24 - orr r11, r11, r10, ror #6 - and r10, r1, r6, ror #10 - orr r11, r11, r10 - and r10, r6, #0x000000cc - orr r11, r11, r10, lsl #14 - and r10, r6, #0x00003300 - orr r6, r11, r10, lsl #2 // permute r6 6 times --- - and r10, r7, r1, ror #8 // --- permute r7 6 times - and r11, r12, r7, ror #24 - orr r11, r11, r10, ror #6 - and r10, r1, r7, ror #10 - orr r11, r11, r10 - and r10, r7, #0x000000cc - orr r11, r11, r10, lsl #14 - and r10, r7, #0x00003300 - orr r7, r11, r10, lsl #2 // permute r7 6 times --- - and r10, r8, r1, ror #8 // --- permute r8 6 times - and r11, r12, r8, ror #24 - orr r11, r11, r10, ror #6 - and r10, r1, r8, ror #10 - orr r11, r11, r10 - and r10, r8, #0x000000cc - orr r11, r11, r10, lsl #14 - and r10, r8, #0x00003300 - orr r8, r11, r10, lsl #2 // permute r8 6 times --- - and r10, r9, r1, ror #8 // --- permute r9 6 times - and r11, r12, r9, ror #24 - orr r11, r11, r10, ror #6 - and r10, r1, r9, ror #10 - orr r11, r11, r10 - and r10, r9, #0x000000cc - orr r11, r11, r10, lsl #14 - and r10, r9, #0x00003300 // permute r9 6 times --- - orr r9, r11, r10, lsl #2 - bx lr - -/******************************************************************************* -* applies P^8 on the tweakey state in a bitsliced manner -*******************************************************************************/ -.align 2 -p8: - movw r12, #0x3333 //r12<- 0x00003333 - movw r1, #0x0000 - movt r1, #0x33cc //r1 <- 0x33cc0000 - and r10, r6, r1 // --- permute r6 8 times - and r11, r1, r6, ror #8 - orr r11, r11, r10, ror #24 - and r10, r6, r12, lsl #2 - orr r11, r11, r10, ror #26 - and r10, r6, r12, lsl #8 - orr r6, r11, r10, lsr #6 // permute r6 8 times --- - and r10, r7, r1 // --- permute r7 8 times - and r11, r1, r7, ror #8 - orr r11, r11, r10, ror #24 - and r10, r7, r12, lsl #2 - orr r11, r11, r10, ror #26 - and r10, r7, r12, lsl #8 - orr r7, r11, r10, lsr #6 // permute r7 8 times --- - and r10, r8, r1 // --- permute r8 8 times - and r11, r1, r8, ror #8 - orr r11, r11, r10, ror #24 - and r10, r8, r12, lsl #2 - orr r11, r11, r10, ror #26 - and r10, r8, r12, lsl #8 - orr r8, r11, r10, lsr #6 // permute r8 8 times --- - and r10, r9, r1 // --- permute r9 8 times - and r11, r1, r9, ror #8 - orr r11, r11, r10, ror #24 - and r10, r9, r12, lsl #2 - orr r11, r11, r10, ror #26 - and r10, r9, r12, lsl #8 - orr r9, r11, r10, lsr #6 // permute r9 8 times --- - bx lr - -/******************************************************************************* -* applies P^10 on the tweakey state in a bitsliced manner -*******************************************************************************/ -.align 2 -p10: - movw r12, #0x0033 - movt r12, #0x3300 //r12<- 0x33000033 - movw r1, #0xcc33 //r1 <- 0x0000cc33 - and r10, r6, r1, ror #8 // --- permute r6 10 times - and r11, r12, r6, ror #26 - orr r11, r11, r10, ror #8 - and r10, r6, r12, ror #24 - orr r11, r11, r10, ror #22 - and r10, r6, #0x00330000 - orr r11, r11, r10, lsr #14 - and r10, r6, #0x0000cc00 - orr r6, r11, r10, lsr #2 // permute r6 10 times --- - and r10, r7, r1, ror #8 // --- permute r6 10 times - and r11, r12, r7, ror #26 - orr r11, r11, r10, ror #8 - and r10, r7, r12, ror #24 - orr r11, r11, r10, ror #22 - and r10, r7, #0x00330000 - orr r11, r11, r10, lsr #14 - and r10, r7, #0x0000cc00 - orr r7, r11, r10, lsr #2 // permute r6 10 times --- - and r10, r8, r1, ror #8 // --- permute r6 10 times - and r11, r12, r8, ror #26 - orr r11, r11, r10, ror #8 - and r10, r8, r12, ror #24 - orr r11, r11, r10, ror #22 - and r10, r8, #0x00330000 - orr r11, r11, r10, lsr #14 - and r10, r8, #0x0000cc00 - orr r8, r11, r10, lsr #2 // permute r6 10 times --- - and r10, r9, r1, ror #8 // --- permute r6 10 times - and r11, r12, r9, ror #26 - orr r11, r11, r10, ror #8 - and r10, r9, r12, ror #24 - orr r11, r11, r10, ror #22 - and r10, r9, #0x00330000 - orr r11, r11, r10, lsr #14 - and r10, r9, #0x0000cc00 - orr r9, r11, r10, lsr #2 // permute r6 10 times --- - bx lr - -/******************************************************************************* -* applies P^12 on the tweakey state in a bitsliced manner -*******************************************************************************/ -.align 2 -p12: - str.w r14, [sp] //store r14 on the stack - movw r14, #0xcc33 //r14<- 0x0000cc33 - movw r12, #0x00cc - movt r12, #0x00cc //r12<- 0x00cc00cc - movw r1, #0x3300 - movt r1, #0xcc00 //r1 <- 0xcc003300 - and r10, r14, r6, ror #8 // --- permute r6 12 times - and r11, r12, r6, ror #30 - orr r11, r11, r10 - and r10, r1, r6, ror #16 - orr r11, r11, r10 - movw r10, #0xcccc //r10<- 0x0000cccc - and r10, r6, r10, ror #8 - orr r6, r11, r10, ror #10 // permute r6 12 times --- - and r10, r14, r7, ror #8 // --- permute r7 12 times - and r11, r12, r7, ror #30 - orr r11, r11, r10 - and r10, r1, r7, ror #16 - orr r11, r11, r10 - movw r10, #0xcccc //r10<- 0x0000cccc - and r10, r7, r10, ror #8 - orr r7, r11, r10, ror #10 // permute r7 12 times --- - and r10, r14, r8, ror #8 // --- permute r8 12 times - and r11, r12, r8, ror #30 - orr r11, r11, r10 - and r10, r1, r8, ror #16 - orr r11, r11, r10 - movw r10, #0xcccc //r10<- 0x0000cccc - and r10, r8, r10, ror #8 - orr r8, r11, r10, ror #10 // permute r8 12 times --- - and r10, r14, r9, ror #8 // --- permute r9 12 times - and r11, r12, r9, ror #30 - orr r11, r11, r10 - and r10, r1, r9, ror #16 - ldr.w r14, [sp] - orr r11, r11, r10 - movw r10, #0xcccc //r10<- 0x0000cccc - and r10, r9, r10, ror #8 - orr r9, r11, r10, ror #10 // permute r9 12 times --- - bx lr - -/******************************************************************************* -* applies P^14 on the tweakey state in a bitsliced manner -*******************************************************************************/ -.align 2 -p14: - movw r1, #0xcc00 - movt r1, #0x0033 //r1 <- 0x0033cc00 - movw r12, #0xcc00 - movt r12, #0xcc00 //r12<- 0x33003300 - and r10, r1, r6, ror #24 // --- permute r6 14 times - and r11, r6, #0x00000033 - orr r11, r10, r11, ror #14 - and r10, r6, #0x33000000 - orr r11, r11, r10, ror #30 - and r10, r6, #0x00ff0000 - orr r11, r11, r10, ror #16 - and r10, r6, r12 - orr r6, r11, r10, ror #18 // permute r6 14 times --- - and r10, r1, r7, ror #24 // --- permute r7 14 times - and r11, r7, #0x00000033 - orr r11, r10, r11, ror #14 - and r10, r7, #0x33000000 - orr r11, r11, r10, ror #30 - and r10, r7, #0x00ff0000 - orr r11, r11, r10, ror #16 - and r10, r7, r12 - orr r7, r11, r10, ror #18 // permute r7 14 times --- - and r10, r1, r8, ror #24 // --- permute r8 14 times - and r11, r8, #0x00000033 - orr r11, r10, r11, ror #14 - and r10, r8, #0x33000000 - orr r11, r11, r10, ror #30 - and r10, r8, #0x00ff0000 - orr r11, r11, r10, ror #16 - and r10, r8, r12 - orr r8, r11, r10, ror #18 // permute r8 14 times --- - and r10, r1, r9, ror #24 // --- permute r9 14 times - and r11, r9, #0x00000033 - orr r11, r10, r11, ror #14 - and r10, r9, #0x33000000 - orr r11, r11, r10, ror #30 - and r10, r9, #0x00ff0000 - orr r11, r11, r10, ror #16 - and r10, r9, r12 - orr r9, r11, r10, ror #18 // permute r9 14 times --- - bx lr - -.align 2 -packing: - eor r12, r2, r2, lsr #3 - and r12, r12, r10 - eor r2, r2, r12 - eor r2, r2, r12, lsl #3 //SWAPMOVE(r2, r2, 0x0a0a0a0a, 3) - eor r12, r3, r3, lsr #3 - and r12, r12, r10 - eor r3, r3, r12 - eor r3, r3, r12, lsl #3 //SWAPMOVE(r3, r3, 0x0a0a0a0a, 3) - eor r12, r4, r4, lsr #3 - and r12, r12, r10 - eor r4, r4, r12 - eor r4, r4, r12, lsl #3 //SWAPMOVE(r4, r4, 0x0a0a0a0a, 3) - eor r12, r5, r5, lsr #3 - and r12, r12, r10 - eor r5, r5, r12 - eor r5, r5, r12, lsl #3 //SWAPMOVE(r5, r5, 0x0a0a0a0a, 3) - eor r12, r2, r4, lsr #2 - and r12, r12, r11 - eor r2, r2, r12 - eor r4, r4, r12, lsl #2 //SWAPMOVE(r4, r2, 0x30303030, 2) - eor r12, r2, r3, lsr #4 - and r12, r12, r11, lsr #2 - eor r2, r2, r12 - eor r3, r3, r12, lsl #4 //SWAPMOVE(r3, r2, 0x0c0c0c0c, 4) - eor r12, r2, r5, lsr #6 - and r12, r12, r11, lsr #4 - eor r2, r2, r12 - eor r5, r5, r12, lsl #6 //SWAPMOVE(r5, r2, 0x03030303, 6) - eor r12, r4, r3, lsr #2 - and r12, r12, r11, lsr #2 - eor r4, r4, r12 - eor r3, r3, r12, lsl #2 //SWAPMOVE(r3, r4, 0x0c0c0c0c, 2) - eor r12, r4, r5, lsr #4 - and r12, r12, r11, lsr #4 - eor r4, r4, r12 - eor r5, r5, r12, lsl #4 //SWAPMOVE(r5, r4, 0x03030303, 4) - eor r12, r3, r5, lsr #2 - and r12, r12, r11, lsr #4 - eor r3, r3, r12 - eor r5, r5, r12, lsl #2 //SWAPMOVE(r5, r3, 0x03030303, 2) - bx lr - -/****************************************************************************** -* Compute LFSR2(TK2) ^ LFSR3(TK3) for all rounds. -* Performing both at the same time allows to save some memory accesses. -******************************************************************************/ -@ void tkschedule_lfsr(u32* tk, const u8* tk2, const u8* tk3, const int rounds) -.global tkschedule_lfsr -.type tkschedule_lfsr,%function -.align 2 -tkschedule_lfsr: - push {r0-r12, r14} - ldr.w r3, [r1, #8] //load tk2 (3rd word) - ldr.w r4, [r1, #4] //load tk2 (2nd word) - ldr.w r5, [r1, #12] //load tk2 (4th word) - ldr.w r12, [r1] //load tk2 (1st word) - mov r1, r2 //move tk3 address in r1 - mov r2, r12 //move 1st tk2 word in r2 - movw r10, #0x0a0a - movt r10, #0x0a0a //r10 <- 0x0a0a0a0a - movw r11, #0x3030 - movt r11, #0x3030 //r7 <- 0x30303030 - bl packing //pack tk2 - mov r6, r2 //move tk2 from r2-r5 to r6-r9 - mov r7, r3 //move tk2 from r2-r5 to r6-r9 - mov r8, r4 //move tk2 from r2-r5 to r6-r9 - mov r9, r5 //move tk2 from r2-r5 to r6-r9 - ldr.w r3, [r1, #8] //load tk3 (3rd word) - ldr.w r4, [r1, #4] //load tk3 (2nd word) - ldr.w r5, [r1, #12] //load tk3 (4th) word) - ldr.w r2, [r1] //load tk3 (1st) word) - bl packing //pack tk3 - eor r10, r10, r10, lsl #4 //r10<- 0xaaaaaaaa - ldr.w r1, [sp, #12] //load loop counter in r1 - eor r11, r2, r6 //tk2 ^ tk3 (1st word) - eor r12, r3, r7 //tk2 ^ tk3 (2nd word) - strd r11, r12, [r0], #8 //store in tk - eor r11, r4, r8 //tk2 ^ tk3 (3rd word) - eor r12, r5, r9 //tk2 ^ tk3 (4th word) - strd r11, r12, [r0], #8 //store in tk - loop: - and r12, r8, r10 // --- apply LFSR2 to tk2 - eor r12, r12, r6 - and r14, r10, r12, lsl #1 - and r12, r12, r10 - orr r6, r14, r12, lsr #1 // apply LFSR2 to tk2 --- - and r12, r3, r10 // --- apply LFSR3 to tk3 - eor r12, r5, r12, lsr #1 - and r14, r10, r12, lsl #1 - and r12, r12, r10 - orr r5, r14, r12, lsr #1 // apply LFSR3 to tk3 --- - eor r11, r5, r7 //tk2 ^ tk3 (1st word) - eor r12, r2, r8 //tk2 ^ tk3 (2nd word) - strd r11, r12, [r0], #8 //store in tk - eor r11, r3, r9 //tk2 ^ tk3 (3rd word) - eor r12, r4, r6 //tk2 ^ tk3 (4th word) - strd r11, r12, [r0], #24 //store in tk - and r12, r9, r10 // --- apply LFSR2 to tk2 - eor r12, r12, r7 - and r14, r10, r12, lsl #1 - and r12, r12, r10 - orr r7, r14, r12, lsr #1 // apply LFSR2 to tk2 --- - and r12, r2, r10 // --- apply LFSR3 to tk3 - eor r12, r4, r12, lsr #1 - and r14, r10, r12, lsl #1 - and r12, r12, r10 - orr r4, r14, r12, lsr #1 // apply LFSR3 to tk3 --- - eor r11, r4, r8 //tk2 ^ tk3 (1st word) - eor r12, r5, r9 //tk2 ^ tk3 (2nd word) - strd r11, r12, [r0], #8 //store in tk - eor r11, r2, r6 //tk2 ^ tk3 (3rd word) - eor r12, r3, r7 //tk2 ^ tk3 (4th word) - strd r11, r12, [r0], #24 //store in tk - and r12, r6, r10 // --- apply LFSR2 to tk2 - eor r12, r12, r8 - and r14, r10, r12, lsl #1 - and r12, r12, r10 - orr r8, r14, r12, lsr #1 // apply LFSR2 to tk2 --- - and r12, r5, r10 // --- apply LFSR3 to tk3 - eor r12, r3, r12, lsr #1 - and r14, r10, r12, lsl #1 - and r12, r12, r10 - orr r3, r14, r12, lsr #1 // apply LFSR3 to tk3 --- - eor r11, r3, r9 //tk2 ^ tk3 (1st word) - eor r12, r4, r6 //tk2 ^ tk3 (2nd word) - strd r11, r12, [r0], #8 //store in tk - eor r11, r5, r7 //tk2 ^ tk3 (3rd word) - eor r12, r2, r8 //tk2 ^ tk3 (4th word) - strd r11, r12, [r0], #24 //store in tk - and r12, r7, r10 // --- apply LFSR2 to tk2 - eor r12, r12, r9 - and r14, r10, r12, lsl #1 - and r12, r12, r10 - orr r9, r14, r12, lsr #1 // apply LFSR2 to tk2 --- - and r12, r4, r10 // --- apply LFSR3 to tk3 - eor r12, r2, r12, lsr #1 - and r14, r10, r12, lsl #1 - and r12, r12, r10 - orr r2, r14, r12, lsr #1 // apply LFSR3 to tk3 --- - eor r11, r2, r6 //tk2 ^ tk3 (1st word) - eor r12, r3, r7 //tk2 ^ tk3 (2nd word) - strd r11, r12, [r0], #8 //store in tk - eor r11, r4, r8 //tk2 ^ tk3 (3rd word) - eor r12, r5, r9 //tk2 ^ tk3 (4th word) - strd r11, r12, [r0], #24 //store in tk - subs.w r1, r1, #8 //decrease loop counter by 8 - bne loop - pop {r0-r12, r14} - bx lr - -/****************************************************************************** -* Applies the permutation P and add the round constants to all round tweakeys. -******************************************************************************/ -@ void tkschedule_perm(u32* tk) -.global tkschedule_perm -.type tkschedule_perm,%function -.align 2 -tkschedule_perm: - push {r0-r12, lr} - sub.w sp, #4 //to store r14 in subroutines - ldm r0, {r6-r9} //load tk - movw r10, #0xf0f0 - movt r10, #0xf0f0 //r10<- 0xf0f0f0f0 - and r6, r6, r10 //tk &= 0xf0f0f0f0 (1st word) - and r7, r7, r10 //tk &= 0xf0f0f0f0 (2nd word) - and r8, r8, r10 //tk &= 0xf0f0f0f0 (3rd word) - and r9, r9, r10 //tk &= 0xf0f0f0f0 (4th word) - eor r8, r8, #0x00000004 //add rconst - eor r9, r9, #0x00000040 //add rconst - mvn r9, r9 //to remove a NOT in sbox calculations - strd r8, r9, [r0], #8 //store 1st half tk for 1st round - strd r6, r7, [r0], #8 //store 2nd half tk for 1st round - ldm r0, {r6-r9} //load tk - bl p2 //apply the permutation twice - movw r10, #0xc3c3 - movt r10, #0xc3c3 //r10<- 0xc3c3c3c3 - and r11, r10, r6, ror #26 //ror and mask to match fixslicing - and r12, r10, r7, ror #26 //ror and mask to match fixslicing - strd r11, r12, [r0], #8 //store 1st half tk for 2nd round - and r11, r10, r8, ror #26 //ror and mask to match fixslicing - and r12, r10, r9, ror #26 //ror and mask to match fixslicing - eor r11, r11, #0x10000000 //add rconst - eor r11, r11, #0x00000100 //add rconst - eor r12, r12, #0x00000100 //add rconst - mvn r12, r12 //to save a NOT in sbox calculations - strd r11, r12, [r0], #8 //store 2nd half tk for 2nd round - and r10, r10, r10, lsr #6 //r10<- 0x03030303 - and r11, r10, r6, ror #28 //--- ror and masks to match fixslicing - and r6, r6, r10, lsl #6 - orr r6, r11, r6, ror #12 - and r11, r10, r7, ror #28 - and r7, r7, r10, lsl #6 - orr r7, r11, r7, ror #12 - and r11, r10, r8, ror #28 - and r8, r8, r10, lsl #6 - orr r8, r11, r8, ror #12 - and r11, r10, r9, ror #28 - and r9, r9, r10, lsl #6 - orr r9, r11, r9, ror #12 //ror and masks to match fixslicing --- - eor r7, r7, #0x04000000 //add rconst - eor r8, r8, #0x44000000 //add rconst - eor r9, r9, #0x04000000 //add rconst - mvn r9, r9 //to save a NOT in sbox calculations - strd r8, r9, [r0], #8 //store 1st half tk for 3rd round - strd r6, r7, [r0], #8 //store 2nd half tk for 3rd round - ldm r0, {r6-r9} //load tk - bl p4 //apply the permutation 4 times - movw r10, #0xf0f0 - movt r10, #0xf0f0 //r10<- 0xf0f0f0f0 - and r11, r10, r6, ror #16 //ror and mask to match fixslicing - and r12, r10, r7, ror #16 //ror and mask to match fixslicing - eor r11, r11, #0x00400000 //add rconst - eor r12, r12, #0x00400000 //add rconst - strd r11, r12, [r0, #24] //store 2nd half tk for 5th round - and r11, r10, r8, ror #16 //ror and mask to match fixslicing - and r12, r10, r9, ror #16 //ror and mask to match fixslicing - eor r11, r11, #0x00440000 //add rconst - eor r12, r12, #0x00500000 //add rconst - mvn r12, r12 //to save a NOT in sbox calculations - strd r11, r12, [r0, #16] //store 1st half tk for 5th round - and r10, r10, r10, lsr #2 //r10<- 0x30303030 - and r11, r10, r6, ror #14 //--- ror and masks to match fixslicing - and r6, r6, r10, ror #4 - orr r6, r11, r6, ror #6 - and r11, r10, r7, ror #14 - and r7, r7, r10, ror #4 - orr r7, r11, r7, ror #6 - and r11, r10, r8, ror #14 - and r8, r8, r10, ror #4 - orr r8, r11, r8, ror #6 - and r11, r10, r9, ror #14 - and r9, r9, r10, ror #4 - orr r9, r11, r9, ror #6 //ror and masks to match fixslicing --- - eor r6, r6, #0x00100000 //add rconst - eor r7, r7, #0x00100000 //add rconst - eor r8, r8, #0x00100000 //add rconst - eor r8, r8, #0x00000001 //add rconst - eor r9, r9, #0x00100000 //add rconst - mvn r9, r9 //to save a NOT in sbox calculations - strd r6, r7, [r0], #8 //store 1st half tk for 4th round - strd r8, r9, [r0], #24 //store 2nd half tk for 4th round - ldm r0, {r6-r9} //load tk - bl p6 //apply the permutation 6 times - movw r10, #0xc3c3 - movt r10, #0xc3c3 //r10<- 0xc3c3c3c3 - and r11, r10, r6, ror #10 //ror and mask to match fixslicing - and r12, r10, r7, ror #10 //ror and mask to match fixslicing - eor r11, r11, #0x01000000 //add rconst - eor r12, r12, #0x01000000 //add rconst - strd r11, r12, [r0], #8 //store 1st half tk for 6th round - and r11, r10, r8, ror #10 //ror and mask to match fixslicing - and r12, r10, r9, ror #10 //ror and mask to match fixslicing - eor r11, r11, #0x01400000 //add rconst - eor r11, r11, #0x00001000 //add rconst - eor r12, r12, #0x00400000 //add rconst - mvn r12, r12 //to save a NOT in sbox calculations - strd r11, r12, [r0], #8 //store 2nd half tk for 6th round - and r10, r10, r10, lsr #6 //r10<- 0x03030303 - and r11, r10, r6, ror #12 //--- ror and masks to match fixslicing - and r6, r6, r10, lsl #6 - orr r6, r11, r6, ror #28 - and r11, r10, r7, ror #12 - and r7, r7, r10, lsl #6 - orr r7, r11, r7, ror #28 - and r11, r10, r8, ror #12 - and r8, r8, r10, lsl #6 - orr r8, r11, r8, ror #28 - and r11, r10, r9, ror #12 - and r9, r9, r10, lsl #6 - orr r9, r11, r9, ror #28 //ror and masks to match fixslicing --- - eor r6, r6, #0x00000400 //add rconst - eor r7, r7, #0x00000400 //add rconst - eor r8, r8, #0x01000000 //add rconst - eor r8, r8, #0x00004000 //add rconst - eor r9, r9, #0x01000000 //add rconst - eor r9, r9, #0x00000400 //add rconst - mvn r9, r9 //to save a NOT in sbox calculations - strd r8, r9, [r0], #8 //store 1st half tk for 7th round - strd r6, r7, [r0], #8 //store 2nd half tk for 7th round - ldm r0, {r6-r9} //load tk - bl p8 //apply the permutation 8 times - movw r10, #0xf0f0 - movt r10, #0xf0f0 //r10<- 0xf0f0f0f0 - and r11, r10, r6 //ror and mask to match fixslicing - and r12, r10, r7 //ror and mask to match fixslicing - eor r12, r12, #0x00000040 //add rconst - strd r11, r12, [r0, #24] //store 2nd half tk for 9th round - and r11, r10, r8 //ror and mask to match fixslicing - and r12, r10, r9 //ror and mask to match fixslicing - eor r11, r11, #0x00000054 //add rconst - eor r12, r12, #0x00000050 //add rconst - mvn r12, r12 //to save a NOT in sbox calculations - strd r11, r12, [r0, #16] //store 1st half tk for 9th round - and r10, r10, r10, lsr #2 //r10<- 0x30303030 - and r11, r10, r6, ror #30 //--- ror and masks to match fixslicing - and r6, r6, r10, ror #4 - orr r6, r11, r6, ror #22 - and r11, r10, r7, ror #30 - and r7, r7, r10, ror #4 - orr r7, r11, r7, ror #22 - and r11, r10, r8, ror #30 - and r8, r8, r10, ror #4 - orr r8, r11, r8, ror #22 - and r11, r10, r9, ror #30 - and r9, r9, r10, ror #4 - orr r9, r11, r9, ror #22 //ror and masks to match fixslicing --- - eor r6 ,r6, #0x00000010 - eor r8, r8, #0x00010000 - eor r8, r8, #0x00000410 - eor r9, r9, #0x00000410 - mvn r9, r9 //to save a NOT in sbox calculations - strd r6, r7, [r0], #8 //store 1st half tk for 8th round - strd r8, r9, [r0], #24 //store 2nd half tk for 8th round - ldm r0, {r6-r9} //load tk - bl p10 //apply the permutation 10 times - movw r10, #0xc3c3 - movt r10, #0xc3c3 //r10<- 0xc3c3c3c3 - and r11, r10, r6, ror #26 //ror and mask to match fixslicing - and r12, r10, r7, ror #26 //ror and mask to match fixslicing - eor r11, r11, #0x00000100 //add rconst - eor r12, r12, #0x00000100 //add rconst - strd r11, r12, [r0], #8 //store 1st half tk for 10th round - and r11, r10, r8, ror #26 //ror and mask to match fixslicing - and r12, r10, r9, ror #26 //ror and mask to match fixslicing - eor r11, r11, #0x10000000 //add rconst - eor r11, r11, #0x00000140 //add rconst - eor r12, r12, #0x00000100 //add rconst - mvn r12, r12 //to save a NOT in sbox calculations - strd r11, r12, [r0], #8 //store 2nd half tk for 10th round - and r10, r10, r10, lsr #6 //r10<- 0x03030303 - and r11, r10, r6, ror #28 //--- ror and masks to match fixslicing - and r6, r6, r10, lsl #6 - orr r6, r11, r6, ror #12 - and r11, r10, r7, ror #28 - and r7, r7, r10, lsl #6 - orr r7, r11, r7, ror #12 - and r11, r10, r8, ror #28 - and r8, r8, r10, lsl #6 - orr r8, r11, r8, ror #12 - and r11, r10, r9, ror #28 - and r9, r9, r10, lsl #6 - orr r9, r11, r9, ror #12 //ror and masks to match fixslicing --- - eor r6, r6, #0x04000000 //add rconst - eor r7, r7, #0x04000000 //add rconst - eor r8, r8, #0x44000000 //add rconst - eor r9, r9, #0x00000100 //add rconst - mvn r9, r9 //to save a NOT in sbox calculations - strd r8, r9, [r0], #8 //store 1st half tk for 11th round - strd r6, r7, [r0], #8 //store 2nd half tk for 11th round - ldm r0, {r6-r9} //load tk - bl p12 //apply the permutation 4 times - movw r10, #0xf0f0 - movt r10, #0xf0f0 //r10<- 0xf0f0f0f0 - and r11, r10, r6, ror #16 //ror and mask to match fixslicing - and r12, r10, r7, ror #16 //ror and mask to match fixslicing - eor r11, r11, #0x00400000 //add rconst - strd r11, r12, [r0, #24] //store 2nd half tk for 13th round - and r11, r10, r8, ror #16 //ror and mask to match fixslicing - and r12, r10, r9, ror #16 //ror and mask to match fixslicing - eor r11, r11, #0x00140000 //add rconst - eor r12, r12, #0x00500000 //add rconst - mvn r12, r12 //to save a NOT in sbox calculations - strd r11, r12, [r0, #16] //store 1st half tk for 13th round - and r10, r10, r10, lsr #2 //r10<- 0x30303030 - and r11, r10, r6, ror #14 //--- ror and masks to match fixslicing - and r6, r6, r10, ror #4 - orr r6, r11, r6, ror #6 - and r11, r10, r7, ror #14 - and r7, r7, r10, ror #4 - orr r7, r11, r7, ror #6 - and r11, r10, r8, ror #14 - and r8, r8, r10, ror #4 - orr r8, r11, r8, ror #6 - and r11, r10, r9, ror #14 - and r9, r9, r10, ror #4 - orr r9, r11, r9, ror #6 //ror and masks to match fixslicing --- - eor r6, r6, #0x00100000 //add rconst - eor r7, r7, #0x00100000 //add rconst - eor r8, r8, #0x04000000 //add rconst - eor r8, r8, #0x00000001 //add rconst - eor r9, r9, #0x04000000 //add rconst - mvn r9, r9 //to save a NOT in sbox calculations - strd r6, r7, [r0], #8 //store 1st half tk for 12th round - strd r8, r9, [r0], #24 //store 2nd half tk for 12th round - ldm r0, {r6-r9} //load tk - bl p14 //apply the permutation 6 times - movw r10, #0xc3c3 - movt r10, #0xc3c3 //r10<- 0xc3c3c3c3 - and r11, r10, r6, ror #10 //ror and mask to match fixslicing - and r12, r10, r7, ror #10 //ror and mask to match fixslicing - strd r11, r12, [r0], #8 //store 1st half tk for 14th round - and r11, r10, r8, ror #10 //ror and mask to match fixslicing - and r12, r10, r9, ror #10 //ror and mask to match fixslicing - eor r11, r11, #0x01400000 //add rconst - eor r11, r11, #0x00001000 //add rconst - eor r12, r12, #0x01400000 //add rconst - mvn r12, r12 //to save a NOT in sbox calculations - strd r11, r12, [r0], #8 //store 2nd half tk for 14th round - and r10, r10, r10, lsr #6 //r10<- 0x03030303 - and r11, r10, r6, ror #12 //--- ror and masks to match fixslicing - and r6, r6, r10, lsl #6 - orr r6, r11, r6, ror #28 - and r11, r10, r7, ror #12 - and r7, r7, r10, lsl #6 - orr r7, r11, r7, ror #28 - and r11, r10, r8, ror #12 - and r8, r8, r10, lsl #6 - orr r8, r11, r8, ror #28 - and r11, r10, r9, ror #12 - and r9, r9, r10, lsl #6 - orr r9, r11, r9, ror #28 //ror and masks to match fixslicing --- - eor r7, r7, #0x00000400 //add rconst - eor r8, r8, #0x01000000 //add rconst - eor r8, r8, #0x00004400 //add rconst - eor r9, r9, #0x00000400 //add const - mvn r9, r9 //to save a NOT in sbox calculations - strd r8, r9, [r0], #8 //store 1st half tk for 15th round - strd r6, r7, [r0], #8 //store 2nd half tk for 15th round - ldm r0, {r6-r9} //load tk - movw r10, #0xf0f0 - movt r10, #0xf0f0 //r10<- 0xf0f0f0f0 - and r11, r10, r6 //ror and mask to match fixslicing - and r12, r10, r7 //ror and mask to match fixslicing - eor r11, r11, #0x00000040 //add rconst - eor r12, r12, #0x00000040 //add rconst - strd r11, r12, [r0, #24] //store 2nd half tk for 17th round - and r11, r10, r8 //ror and mask to match fixslicing - and r12, r10, r9 //ror and mask to match fixslicing - eor r11, r11, #0x00000004 //add rconst - eor r12, r12, #0x00000050 //add rconst - mvn r12, r12 //to save a NOT in sbox calculations - strd r11, r12, [r0, #16] //store 1st half tk for 17th round - and r10, r10, r10, lsr #2 //r10<- 0x30303030 - and r11, r10, r6, ror #30 //--- ror and masks to match fixslicing - and r6, r6, r10, ror #4 - orr r6, r11, r6, ror #22 - and r11, r10, r7, ror #30 - and r7, r7, r10, ror #4 - orr r7, r11, r7, ror #22 - and r11, r10, r8, ror #30 - and r8, r8, r10, ror #4 - orr r8, r11, r8, ror #22 - and r11, r10, r9, ror #30 - and r9, r9, r10, ror #4 - orr r9, r11, r9, ror #22 //ror and masks to match fixslicing --- - eor r6 ,r6, #0x00000010 - eor r7 ,r7, #0x00000010 - eor r8, r8, #0x00000010 - eor r8, r8, #0x00010000 - mvn r9, r9 //to save a NOT in sbox calculations - strd r6, r7, [r0], #8 //store 1st half tk for 16th round - strd r8, r9, [r0], #24 //store 2nd half tk for 16th round - ldm r0, {r6-r9} //load tk - bl p2 //apply the permutation twice - movw r10, #0xc3c3 - movt r10, #0xc3c3 //r10<- 0xc3c3c3c3 - and r11, r10, r6, ror #26 //ror and mask to match fixslicing - and r12, r10, r7, ror #26 //ror and mask to match fixslicing - eor r11, r11, #0x00000100 //add rconst - strd r11, r12, [r0], #8 //store 1st half tk for 18th round - and r11, r10, r8, ror #26 //ror and mask to match fixslicing - and r12, r10, r9, ror #26 //ror and mask to match fixslicing - eor r11, r11, #0x10000000 //add rconst - eor r11, r11, #0x00000140 //add rconst - eor r12, r12, #0x00000040 //add rconst - mvn r12, r12 //to save a NOT in sbox calculations - strd r11, r12, [r0], #8 //store 2nd half tk for 18th round - and r10, r10, r10, lsr #6 //r10<- 0x03030303 - and r11, r10, r6, ror #28 //--- ror and masks to match fixslicing - and r6, r6, r10, lsl #6 - orr r6, r11, r6, ror #12 - and r11, r10, r7, ror #28 - and r7, r7, r10, lsl #6 - orr r7, r11, r7, ror #12 - and r11, r10, r8, ror #28 - and r8, r8, r10, lsl #6 - orr r8, r11, r8, ror #12 - and r11, r10, r9, ror #28 - and r9, r9, r10, lsl #6 - orr r9, r11, r9, ror #12 //ror and masks to match fixslicing --- - eor r7, r7, #0x04000000 //add rconst - eor r8, r8, #0x40000000 //add rconst - eor r8, r8, #0x00000100 //add rconst - eor r9, r9, #0x04000000 //add rconst - eor r9, r9, #0x00000100 //add rconst - mvn r9, r9 //to save a NOT in sbox calculations - strd r8, r9, [r0], #8 //store 1st half tk for 19th round - strd r6, r7, [r0], #8 //store 2nd half tk for 19th round - ldm r0, {r6-r9} //load tk - bl p4 //apply the permutation 4 times - movw r10, #0xf0f0 - movt r10, #0xf0f0 //r10<- 0xf0f0f0f0 - and r11, r10, r6, ror #16 //ror and mask to match fixslicing - and r12, r10, r7, ror #16 //ror and mask to match fixslicing - eor r12, r12, #0x00400000 //add rconst - strd r11, r12, [r0, #24] //store 2nd half tk for 21th round - and r11, r10, r8, ror #16 //ror and mask to match fixslicing - and r12, r10, r9, ror #16 //ror and mask to match fixslicing - eor r11, r11, #0x00440000 //add rconst - eor r12, r12, #0x00100000 //add rconst - mvn r12, r12 //to save a NOT in sbox calculations - strd r11, r12, [r0, #16] //store 1st half tk for 21th round - and r10, r10, r10, lsr #2 //r10<- 0x30303030 - and r11, r10, r6, ror #14 //--- ror and masks to match fixslicing - and r6, r6, r10, ror #4 - orr r6, r11, r6, ror #6 - and r11, r10, r7, ror #14 - and r7, r7, r10, ror #4 - orr r7, r11, r7, ror #6 - and r11, r10, r8, ror #14 - and r8, r8, r10, ror #4 - orr r8, r11, r8, ror #6 - and r11, r10, r9, ror #14 - and r9, r9, r10, ror #4 - orr r9, r11, r9, ror #6 //ror and masks to match fixslicing --- - eor r6, r6, #0x00100000 //add rconst - eor r8, r8, #0x04100000 //add rconst - eor r8, r8, #0x00000001 //add rconst - eor r9, r9, #0x00100000 //add rconst - mvn r9, r9 //to save a NOT in sbox calculations - strd r6, r7, [r0], #8 //store 1st half tk for 20th round - strd r8, r9, [r0], #24 //store 2nd half tk for 20th round - ldm r0, {r6-r9} //load tk - bl p6 //apply the permutation 6 times - movw r10, #0xc3c3 - movt r10, #0xc3c3 //r10<- 0xc3c3c3c3 - and r11, r10, r6, ror #10 //ror and mask to match fixslicing - and r12, r10, r7, ror #10 //ror and mask to match fixslicing - eor r11, r11, #0x01000000 //add rconst - eor r12, r12, #0x01000000 //add rconst - strd r11, r12, [r0], #8 //store 1st half tk for 22th round - and r11, r10, r8, ror #10 //ror and mask to match fixslicing - and r12, r10, r9, ror #10 //ror and mask to match fixslicing - eor r11, r11, #0x00400000 //add rconst - eor r11, r11, #0x00001000 //add rconst - mvn r12, r12 //to save a NOT in sbox calculations - strd r11, r12, [r0], #8 //store 2nd half tk for 22th round - and r10, r10, r10, lsr #6 //r10<- 0x03030303 - and r11, r10, r6, ror #12 //--- ror and masks to match fixslicing - and r6, r6, r10, lsl #6 - orr r6, r11, r6, ror #28 - and r11, r10, r7, ror #12 - and r7, r7, r10, lsl #6 - orr r7, r11, r7, ror #28 - and r11, r10, r8, ror #12 - and r8, r8, r10, lsl #6 - orr r8, r11, r8, ror #28 - and r11, r10, r9, ror #12 - and r9, r9, r10, lsl #6 - orr r9, r11, r9, ror #28 //ror and masks to match fixslicing --- - eor r6, r6, #0x00000400 //add rconst - eor r8, r8, #0x00004000 //add rconst - eor r9, r9, #0x01000000 //add rconst - mvn r9, r9 //to save a NOT in sbox calculations - strd r8, r9, [r0], #8 //store 1st half tk for 23th round - strd r6, r7, [r0], #8 //store 2nd half tk for 23th round - ldm r0, {r6-r9} //load tk - bl p8 //apply the permutation 8 times - movw r10, #0xf0f0 - movt r10, #0xf0f0 //r10<- 0xf0f0f0f0 - and r11, r10, r6 //ror and mask to match fixslicing - and r12, r10, r7 //ror and mask to match fixslicing - strd r11, r12, [r0, #24] //store 2nd half tk for 25th round - and r11, r10, r8 //ror and mask to match fixslicing - and r12, r10, r9 //ror and mask to match fixslicing - eor r11, r11, #0x00000014 //add rconst - eor r12, r12, #0x00000040 //add rconst - mvn r12, r12 //to save a NOT in sbox calculations - strd r11, r12, [r0, #16] //store 1st half tk for 25th round - and r10, r10, r10, lsr #2 //r10<- 0x30303030 - and r11, r10, r6, ror #30 //--- ror and masks to match fixslicing - and r6, r6, r10, ror #4 - orr r6, r11, r6, ror #22 - and r11, r10, r7, ror #30 - and r7, r7, r10, ror #4 - orr r7, r11, r7, ror #22 - and r11, r10, r8, ror #30 - and r8, r8, r10, ror #4 - orr r8, r11, r8, ror #22 - and r11, r10, r9, ror #30 - and r9, r9, r10, ror #4 - orr r9, r11, r9, ror #22 //ror and masks to match fixslicing --- - eor r8, r8, #0x00010400 - eor r9, r9, #0x00000400 - mvn r9, r9 //to save a NOT in sbox calculations - strd r6, r7, [r0], #8 //store 1st half tk for 24th round - strd r8, r9, [r0], #24 //store 2nd half tk for 24th round - ldm r0, {r6-r9} //load tk - bl p10 //apply the permutation 10 times - movw r10, #0xc3c3 - movt r10, #0xc3c3 //r10<- 0xc3c3c3c3 - and r11, r10, r6, ror #26 //ror and mask to match fixslicing - and r12, r10, r7, ror #26 //ror and mask to match fixslicing - strd r11, r12, [r0], #8 //store 1st half tk for 26th round - and r11, r10, r8, ror #26 //ror and mask to match fixslicing - and r12, r10, r9, ror #26 //ror and mask to match fixslicing - eor r11, r11, #0x10000000 //add rconst - eor r11, r11, #0x00000100 //add rconst - mvn r12, r12 //to save a NOT in sbox calculations - strd r11, r12, [r0], #8 //store 2nd half tk for 26th round - and r10, r10, r10, lsr #6 //r10<- 0x03030303 - and r11, r10, r6, ror #28 //--- ror and masks to match fixslicing - and r6, r6, r10, lsl #6 - orr r6, r11, r6, ror #12 - and r11, r10, r7, ror #28 - and r7, r7, r10, lsl #6 - orr r7, r11, r7, ror #12 - and r11, r10, r8, ror #28 - and r8, r8, r10, lsl #6 - orr r8, r11, r8, ror #12 - and r11, r10, r9, ror #28 - and r9, r9, r10, lsl #6 - orr r9, r11, r9, ror #12 //ror and masks to match fixslicing --- - eor r7, r7, #0x04000000 //add rconst - eor r8, r8, #0x40000000 //add rconst - eor r9, r9, #0x04000000 //add rconst - mvn r9, r9 //to save a NOT in sbox calculations - strd r8, r9, [r0], #8 //store 1st half tk for 27th round - strd r6, r7, [r0], #8 //store 2nd half tk for 27th round - ldm r0, {r6-r9} //load tk - bl p12 //apply the permutation 4 times - movw r10, #0xf0f0 - movt r10, #0xf0f0 //r10<- 0xf0f0f0f0 - and r11, r10, r6, ror #16 //ror and mask to match fixslicing - and r12, r10, r7, ror #16 //ror and mask to match fixslicing - eor r12, r12, #0x00400000 //add rconst - strd r11, r12, [r0, #24] //store 2nd half tk for 29th round - and r11, r10, r8, ror #16 //ror and mask to match fixslicing - and r12, r10, r9, ror #16 //ror and mask to match fixslicing - eor r11, r11, #0x00440000 //add rconst - eor r12, r12, #0x00500000 //add rconst - mvn r12, r12 //to save a NOT in sbox calculations - strd r11, r12, [r0, #16] //store 1st half tk for 29th round - and r10, r10, r10, lsr #2 //r10<- 0x30303030 - and r11, r10, r6, ror #14 //--- ror and masks to match fixslicing - and r6, r6, r10, ror #4 - orr r6, r11, r6, ror #6 - and r11, r10, r7, ror #14 - and r7, r7, r10, ror #4 - orr r7, r11, r7, ror #6 - and r11, r10, r8, ror #14 - and r8, r8, r10, ror #4 - orr r8, r11, r8, ror #6 - and r11, r10, r9, ror #14 - and r9, r9, r10, ror #4 - orr r9, r11, r9, ror #6 //ror and masks to match fixslicing --- - eor r6, r6, #0x00100000 //add rconst - eor r8, r8, #0x00100000 //add rconst - eor r8, r8, #0x00000001 //add rconst - eor r9, r9, #0x00100000 //add rconst - mvn r9, r9 //to save a NOT in sbox calculations - strd r6, r7, [r0], #8 //store 1st half tk for 28th round - strd r8, r9, [r0], #24 //store 2nd half tk for 28th round - ldm r0, {r6-r9} //load tk - bl p14 //apply the permutation 6 times - movw r10, #0xc3c3 - movt r10, #0xc3c3 //r10<- 0xc3c3c3c3 - and r11, r10, r6, ror #10 //ror and mask to match fixslicing - and r12, r10, r7, ror #10 //ror and mask to match fixslicing - eor r11, r11, #0x01000000 //add rconst - eor r12, r12, #0x01000000 //add rconst - strd r11, r12, [r0], #8 //store 1st half tk for 30th round - and r11, r10, r8, ror #10 //ror and mask to match fixslicing - and r12, r10, r9, ror #10 //ror and mask to match fixslicing - eor r11, r11, #0x01400000 //add rconst - eor r11, r11, #0x00001000 //add rconst - mvn r12, r12 //to save a NOT in sbox calculations - strd r11, r12, [r0], #8 //store 2nd half tk for 30th round - and r10, r10, r10, lsr #6 //r10<- 0x03030303 - and r11, r10, r6, ror #12 //--- ror and masks to match fixslicing - and r6, r6, r10, lsl #6 - orr r6, r11, r6, ror #28 - and r11, r10, r7, ror #12 - and r7, r7, r10, lsl #6 - orr r7, r11, r7, ror #28 - and r11, r10, r8, ror #12 - and r8, r8, r10, lsl #6 - orr r8, r11, r8, ror #28 - and r11, r10, r9, ror #12 - and r9, r9, r10, lsl #6 - orr r9, r11, r9, ror #28 //ror and masks to match fixslicing --- - eor r6, r6, #0x00000400 //add rconst - eor r7, r7, #0x00000400 //add rconst - eor r8, r8, #0x00004000 //add rconst - eor r9, r9, #0x01000000 //add rconst - mvn r9, r9 //to save a NOT in sbox calculations - strd r8, r9, [r0], #8 //store 1st half tk for 31th round - strd r6, r7, [r0], #8 //store 2nd half tk for 31th round - ldm r0, {r6-r9} //load tk - movw r10, #0xf0f0 - movt r10, #0xf0f0 //r10<- 0xf0f0f0f0 - and r11, r10, r6 //ror and mask to match fixslicing - and r12, r10, r7 //ror and mask to match fixslicing - strd r11, r12, [r0, #24] //store 2nd half tk for 33th round - and r11, r10, r8 //ror and mask to match fixslicing - and r12, r10, r9 //ror and mask to match fixslicing - eor r11, r11, #0x00000014 //add rconst - eor r12, r12, #0x00000050 //add rconst - mvn r12, r12 //to save a NOT in sbox calculations - strd r11, r12, [r0, #16] //store 1st half tk for 33th round - and r10, r10, r10, lsr #2 //r10<- 0x30303030 - and r11, r10, r6, ror #30 //--- ror and masks to match fixslicing - and r6, r6, r10, ror #4 - orr r6, r11, r6, ror #22 - and r11, r10, r7, ror #30 - and r7, r7, r10, ror #4 - orr r7, r11, r7, ror #22 - and r11, r10, r8, ror #30 - and r8, r8, r10, ror #4 - orr r8, r11, r8, ror #22 - and r11, r10, r9, ror #30 - and r9, r9, r10, ror #4 - orr r9, r11, r9, ror #22 //ror and masks to match fixslicing --- - eor r6 ,r6, #0x00000010 - eor r8, r8, #0x00010400 - eor r9, r9, #0x00000400 - mvn r9, r9 //to save a NOT in sbox calculations - strd r6, r7, [r0], #8 //store 1st half tk for 32th round - strd r8, r9, [r0], #24 //store 2nd half tk for 32th round - ldm r0, {r6-r9} //load tk - bl p2 //apply the permutation twice - movw r10, #0xc3c3 - movt r10, #0xc3c3 //r10<- 0xc3c3c3c3 - and r11, r10, r6, ror #26 //ror and mask to match fixslicing - and r12, r10, r7, ror #26 //ror and mask to match fixslicing - strd r11, r12, [r0], #8 //store 1st half tk for 34th round - and r11, r10, r8, ror #26 //ror and mask to match fixslicing - and r12, r10, r9, ror #26 //ror and mask to match fixslicing - eor r11, r11, #0x10000000 //add rconst - eor r11, r11, #0x00000140 //add rconst - eor r12, r12, #0x00000100 //add rconst - mvn r12, r12 //to save a NOT in sbox calculations - strd r11, r12, [r0], #8 //store 2nd half tk for 34th round - and r10, r10, r10, lsr #6 //r10<- 0x03030303 - and r11, r10, r6, ror #28 //--- ror and masks to match fixslicing - and r6, r6, r10, lsl #6 - orr r6, r11, r6, ror #12 - and r11, r10, r7, ror #28 - and r7, r7, r10, lsl #6 - orr r7, r11, r7, ror #12 - and r11, r10, r8, ror #28 - and r8, r8, r10, lsl #6 - orr r8, r11, r8, ror #12 - and r11, r10, r9, ror #28 - and r9, r9, r10, lsl #6 - orr r9, r11, r9, ror #12 //ror and masks to match fixslicing --- - eor r7, r7, #0x04000000 //add rconst - eor r8, r8, #0x44000000 //add rconst - mvn r9, r9 //to save a NOT in sbox calculations - strd r8, r9, [r0], #8 //store 1st half tk for 35th round - strd r6, r7, [r0], #8 //store 2nd half tk for 35th round - ldm r0, {r6-r9} //load tk - bl p4 //apply the permutation 4 times - movw r10, #0xf0f0 - movt r10, #0xf0f0 //r10<- 0xf0f0f0f0 - and r11, r10, r6, ror #16 //ror and mask to match fixslicing - and r12, r10, r7, ror #16 //ror and mask to match fixslicing - eor r11, r11, #0x00400000 //add rconst - strd r11, r12, [r0, #24] //store 2nd half tk for 37th round - and r11, r10, r8, ror #16 //ror and mask to match fixslicing - and r12, r10, r9, ror #16 //ror and mask to match fixslicing - eor r11, r11, #0x00440000 //add rconst - eor r12, r12, #0x00500000 //add rconst - mvn r12, r12 //to save a NOT in sbox calculations - strd r11, r12, [r0, #16] //store 1st half tk for 37th round - and r10, r10, r10, lsr #2 //r10<- 0x30303030 - and r11, r10, r6, ror #14 //--- ror and masks to match fixslicing - and r6, r6, r10, ror #4 - orr r6, r11, r6, ror #6 - and r11, r10, r7, ror #14 - and r7, r7, r10, ror #4 - orr r7, r11, r7, ror #6 - and r11, r10, r8, ror #14 - and r8, r8, r10, ror #4 - orr r8, r11, r8, ror #6 - and r11, r10, r9, ror #14 - and r9, r9, r10, ror #4 - orr r9, r11, r9, ror #6 //ror and masks to match fixslicing --- - eor r6, r6, #0x00100000 //add rconst - eor r7, r7, #0x00100000 //add rconst - eor r8, r8, #0x00000001 //add rconst - eor r9, r9, #0x00100000 //add rconst - mvn r9, r9 //to save a NOT in sbox calculations - strd r6, r7, [r0], #8 //store 1st half tk for 36th round - strd r8, r9, [r0], #24 //store 2nd half tk for 36th round - ldm r0, {r6-r9} //load tk - bl p6 //apply the permutation 6 times - movw r10, #0xc3c3 - movt r10, #0xc3c3 //r10<- 0xc3c3c3c3 - and r11, r10, r6, ror #10 //ror and mask to match fixslicing - and r12, r10, r7, ror #10 //ror and mask to match fixslicing - eor r12, r12, #0x01000000 //add rconst - strd r11, r12, [r0], #8 //store 1st half tk for 38th round - and r11, r10, r8, ror #10 //ror and mask to match fixslicing - and r12, r10, r9, ror #10 //ror and mask to match fixslicing - eor r11, r11, #0x01400000 //add rconst - eor r11, r11, #0x00001000 //add rconst - eor r12, r12, #0x00400000 //add rconst - mvn r12, r12 //to save a NOT in sbox calculations - strd r11, r12, [r0], #8 //store 2nd half tk for 38th round - and r10, r10, r10, lsr #6 //r10<- 0x03030303 - and r11, r10, r6, ror #12 //--- ror and masks to match fixslicing - and r6, r6, r10, lsl #6 - orr r6, r11, r6, ror #28 - and r11, r10, r7, ror #12 - and r7, r7, r10, lsl #6 - orr r7, r11, r7, ror #28 - and r11, r10, r8, ror #12 - and r8, r8, r10, lsl #6 - orr r8, r11, r8, ror #28 - and r11, r10, r9, ror #12 - and r9, r9, r10, lsl #6 - orr r9, r11, r9, ror #28 //ror and masks to match fixslicing --- - eor r6, r6, #0x00000400 //add rconst - eor r7, r7, #0x00000400 //add rconst - eor r8, r8, #0x01000000 - eor r8, r8, #0x00004000 //add rconst - eor r9, r9, #0x00000400 //add rconst - mvn r9, r9 //to save a NOT in sbox calculations - strd r8, r9, [r0], #8 //store 1st half tk for 39th round - strd r6, r7, [r0], #8 //store 2nd half tk for 39th round - ldm r0, {r6-r9} //load tk - bl p8 //apply the permutation 8 times - movw r10, #0xf0f0 - movt r10, #0xf0f0 //r10<- 0xf0f0f0f0 - and r11, r10, r6 //ror and mask to match fixslicing - and r12, r10, r7 //ror and mask to match fixslicing - eor r12, r12, #0x00000040 //add rconst - strd r11, r12, [r0, #24] //store 2nd half tk for 41th round - and r11, r10, r8 //ror and mask to match fixslicing - and r12, r10, r9 //ror and mask to match fixslicing - eor r11, r11, #0x00000014 //add rconst - eor r12, r12, #0x00000010 //add rconst - mvn r12, r12 //to save a NOT in sbox calculations - strd r11, r12, [r0, #16] //store 1st half tk for 41th round - and r10, r10, r10, lsr #2 //r10<- 0x30303030 - and r11, r10, r6, ror #30 //--- ror and masks to match fixslicing - and r6, r6, r10, ror #4 - orr r6, r11, r6, ror #22 - and r11, r10, r7, ror #30 - and r7, r7, r10, ror #4 - orr r7, r11, r7, ror #22 - and r11, r10, r8, ror #30 - and r8, r8, r10, ror #4 - orr r8, r11, r8, ror #22 - and r11, r10, r9, ror #30 - and r9, r9, r10, ror #4 - orr r9, r11, r9, ror #22 //ror and masks to match fixslicing --- - eor r6, r6, #0x00000010 - eor r8, r8, #0x00010000 - eor r8, r8, #0x00000010 - eor r9, r9, #0x00000400 - mvn r9, r9 //to save a NOT in sbox calculations - strd r6, r7, [r0], #8 //store 1st half tk for 40th round - strd r8, r9, [r0], #24 //store 2nd half tk for 40th round - ldm r0, {r6-r9} //load tk - bl p10 //apply the permutation 10 times - movw r10, #0xc3c3 - movt r10, #0xc3c3 //r10<- 0xc3c3c3c3 - and r11, r10, r6, ror #26 //ror and mask to match fixslicing - and r12, r10, r7, ror #26 //ror and mask to match fixslicing - eor r11, r11, #0x00000100 //add rconst - strd r11, r12, [r0], #8 //store 1st half tk for 42th round - and r11, r10, r8, ror #26 //ror and mask to match fixslicing - and r12, r10, r9, ror #26 //ror and mask to match fixslicing - eor r11, r11, #0x10000000 //add rconst - eor r11, r11, #0x00000040 //add rconst - eor r12, r12, #0x00000100 //add rconst - mvn r12, r12 //to save a NOT in sbox calculations - strd r11, r12, [r0], #8 //store 2nd half tk for 42th round - and r10, r10, r10, lsr #6 //r10<- 0x03030303 - and r11, r10, r6, ror #28 //--- ror and masks to match fixslicing - and r6, r6, r10, lsl #6 - orr r6, r11, r6, ror #12 - and r11, r10, r7, ror #28 - and r7, r7, r10, lsl #6 - orr r7, r11, r7, ror #12 - and r11, r10, r8, ror #28 - and r8, r8, r10, lsl #6 - orr r8, r11, r8, ror #12 - and r11, r10, r9, ror #28 - and r9, r9, r10, lsl #6 - orr r9, r11, r9, ror #12 //ror and masks to match fixslicing --- - eor r8, r8, #0x44000000 //add rconst - eor r9, r9, #0x00000100 //add rconst - mvn r9, r9 //to save a NOT in sbox calculations - strd r8, r9, [r0], #8 //store 1st half tk for 43th round - strd r6, r7, [r0], #8 //store 2nd half tk for 43th round - ldm r0, {r6-r9} //load tk - bl p12 //apply the permutation 4 times - movw r10, #0xf0f0 - movt r10, #0xf0f0 //r10<- 0xf0f0f0f0 - and r11, r10, r6, ror #16 //ror and mask to match fixslicing - and r12, r10, r7, ror #16 //ror and mask to match fixslicing - eor r11, r11, #0x00400000 //add rconst - strd r11, r12, [r0, #24] //store 2nd half tk for 45th round - and r11, r10, r8, ror #16 //ror and mask to match fixslicing - and r12, r10, r9, ror #16 //ror and mask to match fixslicing - eor r11, r11, #0x00040000 //add rconst - mvn r12, r12 //to save a NOT in sbox calculations - strd r11, r12, [r0, #16] //store 1st half tk for 45th round - and r10, r10, r10, lsr #2 //r10<- 0x30303030 - and r11, r10, r6, ror #14 //--- ror and masks to match fixslicing - and r6, r6, r10, ror #4 - orr r6, r11, r6, ror #6 - and r11, r10, r7, ror #14 - and r7, r7, r10, ror #4 - orr r7, r11, r7, ror #6 - and r11, r10, r8, ror #14 - and r8, r8, r10, ror #4 - orr r8, r11, r8, ror #6 - and r11, r10, r9, ror #14 - and r9, r9, r10, ror #4 - orr r9, r11, r9, ror #6 //ror and masks to match fixslicing --- - eor r7, r7, #0x00100000 //add rconst - eor r8, r8, #0x04000000 //add rconst - eor r8, r8, #0x00000001 //add rconst - mvn r9, r9 //to save a NOT in sbox calculations - strd r6, r7, [r0], #8 //store 1st half tk for 44th round - strd r8, r9, [r0], #24 //store 2nd half tk for 44th round - ldm r0, {r6-r9} //load tk - bl p14 //apply the permutation 6 times - movw r10, #0xc3c3 - movt r10, #0xc3c3 //r10<- 0xc3c3c3c3 - and r11, r10, r6, ror #10 //ror and mask to match fixslicing - and r12, r10, r7, ror #10 //ror and mask to match fixslicing - strd r11, r12, [r0], #8 //store 1st half tk for 46th round - and r11, r10, r8, ror #10 //ror and mask to match fixslicing - and r12, r10, r9, ror #10 //ror and mask to match fixslicing - eor r11, r11, #0x00001000 //add rconst - eor r12, r12, #0x01400000 //add rconst - mvn r12, r12 //to save a NOT in sbox calculations - strd r11, r12, [r0], #8 //store 2nd half tk for 46th round - and r10, r10, r10, lsr #6 //r10<- 0x03030303 - and r11, r10, r6, ror #12 //--- ror and masks to match fixslicing - and r6, r6, r10, lsl #6 - orr r6, r11, r6, ror #28 - and r11, r10, r7, ror #12 - and r7, r7, r10, lsl #6 - orr r7, r11, r7, ror #28 - and r11, r10, r8, ror #12 - and r8, r8, r10, lsl #6 - orr r8, r11, r8, ror #28 - and r11, r10, r9, ror #12 - and r9, r9, r10, lsl #6 - orr r9, r11, r9, ror #28 //ror and masks to match fixslicing --- - eor r8, r8, #0x01000000 //add rconst - eor r8, r8, #0x00004400 //add rconst - mvn r9, r9 //to save a NOT in sbox calculations - strd r8, r9, [r0], #8 //store 1st half tk for 47th round - strd r6, r7, [r0], #8 //store 2nd half tk for 47th round - ldm r0, {r6-r9} //load tk - movw r10, #0xf0f0 - movt r10, #0xf0f0 //r10<- 0xf0f0f0f0 - and r11, r10, r6 //ror and mask to match fixslicing - and r12, r10, r7 //ror and mask to match fixslicing - eor r11, r11, #0x00000040 //add rconst - strd r11, r12, [r0, #24] //store 2nd half tk for 49th round - and r11, r10, r8 //ror and mask to match fixslicing - and r12, r10, r9 //ror and mask to match fixslicing - eor r11, r11, #0x00000004 //add rconst - eor r12, r12, #0x00000040 //add rconst - mvn r12, r12 //to save a NOT in sbox calculations - strd r11, r12, [r0, #16] //store 1st half tk for 49th round - and r10, r10, r10, lsr #2 //r10<- 0x30303030 - and r11, r10, r6, ror #30 //--- ror and masks to match fixslicing - and r6, r6, r10, ror #4 - orr r6, r11, r6, ror #22 - and r11, r10, r7, ror #30 - and r7, r7, r10, ror #4 - orr r7, r11, r7, ror #22 - and r11, r10, r8, ror #30 - and r8, r8, r10, ror #4 - orr r8, r11, r8, ror #22 - and r11, r10, r9, ror #30 - and r9, r9, r10, ror #4 - orr r9, r11, r9, ror #22 //ror and masks to match fixslicing --- - eor r7 ,r7, #0x00000010 - eor r8, r8, #0x00010000 - mvn r9, r9 //to save a NOT in sbox calculations - strd r6, r7, [r0], #8 //store 1st half tk for 48th round - strd r8, r9, [r0], #24 //store 2nd half tk for 48th round - ldm r0, {r6-r9} //load tk - bl p2 //apply the permutation twice - movw r10, #0xc3c3 - movt r10, #0xc3c3 //r10<- 0xc3c3c3c3 - and r11, r10, r6, ror #26 //ror and mask to match fixslicing - and r12, r10, r7, ror #26 //ror and mask to match fixslicing - strd r11, r12, [r0], #8 //store 1st half tk for 50th round - and r11, r10, r8, ror #26 //ror and mask to match fixslicing - and r12, r10, r9, ror #26 //ror and mask to match fixslicing - eor r11, r11, #0x10000000 //add rconst - eor r11, r11, #0x00000100 //add rconst - eor r12, r12, #0x00000140 //add rconst - mvn r12, r12 //to save a NOT in sbox calculations - strd r11, r12, [r0], #8 //store 2nd half tk for 50th round - and r10, r10, r10, lsr #6 //r10<- 0x03030303 - and r11, r10, r6, ror #28 //--- ror and masks to match fixslicing - and r6, r6, r10, lsl #6 - orr r6, r11, r6, ror #12 - and r11, r10, r7, ror #28 - and r7, r7, r10, lsl #6 - orr r7, r11, r7, ror #12 - and r11, r10, r8, ror #28 - and r8, r8, r10, lsl #6 - orr r8, r11, r8, ror #12 - and r11, r10, r9, ror #28 - and r9, r9, r10, lsl #6 - orr r9, r11, r9, ror #12 //ror and masks to match fixslicing --- - eor r7, r7, #0x04000000 //add rconst - eor r8, r8, #0x44000000 //add rconst - eor r8, r8, #0x00000100 //add rconst - mvn r9, r9 //to save a NOT in sbox calculations - strd r8, r9, [r0], #8 //store 1st half tk for 51th round - strd r6, r7, [r0], #8 //store 2nd half tk for 51th round - ldm r0, {r6-r9} //load tk - bl p4 //apply the permutation 4 times - movw r10, #0xf0f0 - movt r10, #0xf0f0 //r10<- 0xf0f0f0f0 - and r11, r10, r6, ror #16 //ror and mask to match fixslicing - and r12, r10, r7, ror #16 //ror and mask to match fixslicing - eor r11, r11, #0x00400000 //add rconst - strd r11, r12, [r0, #24] //store 2nd half tk for 53th round - and r11, r10, r8, ror #16 //ror and mask to match fixslicing - and r12, r10, r9, ror #16 //ror and mask to match fixslicing - eor r11, r11, #0x00040000 //add rconst - eor r12, r12, #0x00500000 //add rconst - mvn r12, r12 //to save a NOT in sbox calculations - strd r11, r12, [r0, #16] //store 1st half tk for 53th round - and r10, r10, r10, lsr #2 //r10<- 0x30303030 - and r11, r10, r6, ror #14 //--- ror and masks to match fixslicing - and r6, r6, r10, ror #4 - orr r6, r11, r6, ror #6 - and r11, r10, r7, ror #14 - and r7, r7, r10, ror #4 - orr r7, r11, r7, ror #6 - and r11, r10, r8, ror #14 - and r8, r8, r10, ror #4 - orr r8, r11, r8, ror #6 - and r11, r10, r9, ror #14 - and r9, r9, r10, ror #4 - orr r9, r11, r9, ror #6 //ror and masks to match fixslicing --- - eor r6, r6, #0x00100000 //add rconst - eor r7, r7, #0x00100000 //add rconst - eor r8, r8, #0x00000001 //add rconst - mvn r9, r9 //to save a NOT in sbox calculations - strd r6, r7, [r0], #8 //store 1st half tk for 52th round - strd r8, r9, [r0], #24 //store 2nd half tk for 52th round - ldm r0, {r6-r9} //load tk - bl p6 //apply the permutation 6 times - movw r10, #0xc3c3 - movt r10, #0xc3c3 //r10<- 0xc3c3c3c3 - and r11, r10, r6, ror #10 //ror and mask to match fixslicing - and r12, r10, r7, ror #10 //ror and mask to match fixslicing - strd r11, r12, [r0], #8 //store 1st half tk for 54th round - and r11, r10, r8, ror #10 //ror and mask to match fixslicing - and r12, r10, r9, ror #10 //ror and mask to match fixslicing - eor r11, r11, #0x01400000 //add rconst - eor r11, r11, #0x00001000 //add rconst - eor r12, r12, #0x00400000 //add rconst - mvn r12, r12 //to save a NOT in sbox calculations - strd r11, r12, [r0], #8 //store 2nd half tk for 54th round - and r10, r10, r10, lsr #6 //r10<- 0x03030303 - and r11, r10, r6, ror #12 //--- ror and masks to match fixslicing - and r6, r6, r10, lsl #6 - orr r6, r11, r6, ror #28 - and r11, r10, r7, ror #12 - and r7, r7, r10, lsl #6 - orr r7, r11, r7, ror #28 - and r11, r10, r8, ror #12 - and r8, r8, r10, lsl #6 - orr r8, r11, r8, ror #28 - and r11, r10, r9, ror #12 - and r9, r9, r10, lsl #6 - orr r9, r11, r9, ror #28 //ror and masks to match fixslicing --- - eor r7, r7, #0x00000400 //add rconst - eor r8, r8, #0x01000000 - eor r8, r8, #0x00004000 //add rconst - eor r9, r9, #0x00000400 //add rconst - mvn r9, r9 //to save a NOT in sbox calculations - strd r8, r9, [r0], #8 //store 1st half tk for 55th round - strd r6, r7, [r0], #8 //store 2nd half tk for 55th round - ldm r0, {r6-r9} //load tk - bl p8 //apply the permutation 8 times - movw r10, #0x3030 - movt r10, #0x3030 //r10<- 0x30303030 - and r11, r10, r6, ror #30 //--- ror and masks to match fixslicing - and r6, r6, r10, ror #4 - orr r6, r11, r6, ror #22 - and r11, r10, r7, ror #30 - and r7, r7, r10, ror #4 - orr r7, r11, r7, ror #22 - and r11, r10, r8, ror #30 - and r8, r8, r10, ror #4 - orr r8, r11, r8, ror #22 - and r11, r10, r9, ror #30 - and r9, r9, r10, ror #4 - orr r9, r11, r9, ror #22 //ror and masks to match fixslicing --- - eor r6, r6, #0x00000010 - eor r8, r8, #0x00010000 - eor r8, r8, #0x00000010 - mvn r9, r9 //to save a NOT in sbox calculations - strd r6, r7, [r0], #8 //store 1st half tk for 56th round - strd r8, r9, [r0], #24 //store 2nd half tk for 56th round - add.w sp, #4 - pop {r0-r12, lr} - bx lr - -/****************************************************************************** -* Applies the permutations P^2, ..., P^14 for rounds 0 to 16. Since P^16=Id, we -* don't need more calculations as no LFSR is applied to TK1. -******************************************************************************/ -@ void tkschedule_perm_tk1(u32* tk, const u8* key) -.global tkschedule_perm_tk1 -.type tkschedule_perm_tk1,%function -.align 2 -tkschedule_perm_tk1: - push {r0-r12, lr} - ldr.w r3, [r1, #8] //load tk1 (3rd word) - ldr.w r4, [r1, #4] //load tk1 (2nd word) - ldr.w r5, [r1, #12] //load tk1 (4th word) - ldr.w r2, [r1] //load tk1 (1st word) - movw r10, #0x0a0a - movt r10, #0x0a0a //r6 <- 0x0a0a0a0a - movw r11, #0x3030 - movt r11, #0x3030 //r7 <- 0x30303030 - bl packing //pack tk1 - mov r6, r2 //move tk1 from r2-r5 to r6-r9 - mov r7, r3 //move tk1 from r2-r5 to r6-r9 - mov r8, r4 //move tk1 from r2-r5 to r6-r9 - mov r9, r5 //move tk1 from r2-r5 to r6-r9 - movw r2, #0xf0f0 - movt r2, #0xf0f0 //r2<- 0xf0f0f0f0 - and r11, r8, r2 //tk &= 0xf0f0f0f0 (3rd word) - and r12, r9, r2 //tk &= 0xf0f0f0f0 (4th word) - strd r11, r12, [r0], #8 //store 1st half tk for 1st round - and r11, r6, r2 //tk &= 0xf0f0f0f0 (1st word) - and r12, r7, r2 //tk &= 0xf0f0f0f0 (2nd word) - strd r11, r12, [r0], #8 //store 2nd half tk for 1st round - - bl p2 //apply the permutation twice - movw r3, #0x0303 - movt r3, #0x0303 //r3<- 0x03030303 - and r11, r3, r6, ror #28 //--- ror and masks to match fixslicing - and r12, r6, r3, lsl #6 - orr r12, r11, r12, ror #12 - str.w r12, [r0, #8] - and r11, r3, r7, ror #28 - and r12, r7, r3, lsl #6 - orr r12, r11, r12, ror #12 - str.w r12, [r0, #12] - and r11, r3, r9, ror #28 - and r12, r9, r3, lsl #6 - orr r12, r11, r12, ror #12 - str.w r12, [r0, #4] - and r11, r3, r8, ror #28 - and r12, r8, r3, lsl #6 - orr r12, r11, r12, ror #12 - str.w r12, [r0], #16 //ror and masks to match fixslicing --- - bl p2 //apply the permutation 4 times - and r11, r2, r6, ror #16 //ror and mask to match fixslicing - and r12, r2, r7, ror #16 //ror and mask to match fixslicing - strd r11, r12, [r0, #8] //store 2nd half tk for 5th round - and r11, r2, r8, ror #16 //ror and mask to match fixslicing - and r12, r2, r9, ror #16 //ror and mask to match fixslicing - strd r11, r12, [r0], #16 //store 1st half tk for 5th round - bl p2 //apply the permutation 6 times - and r11, r3, r6, ror #12 //--- ror and masks to match fixslicing - and r12, r6, r3, lsl #6 - orr r12, r11, r12, ror #28 - str.w r12, [r0, #8] - and r11, r3, r7, ror #12 - and r12, r7, r3, lsl #6 - orr r12, r11, r12, ror #28 - str.w r12, [r0, #12] - and r11, r3, r9, ror #12 - and r12, r9, r3, lsl #6 - orr r12, r11, r12, ror #28 - str.w r12, [r0, #4] - and r11, r3, r8, ror #12 - and r12, r8, r3, lsl #6 - orr r12, r11, r12, ror #28 - str.w r12, [r0], #16 //ror and masks to match fixslicing --- - bl p2 //apply the permutation 8 times - and r11, r2, r6 //ror and mask to match fixslicing - and r12, r2, r7 //ror and mask to match fixslicing - strd r11, r12, [r0, #8] //store 2nd half tk for 9th round - and r11, r2, r8 //ror and mask to match fixslicing - and r12, r2, r9 //ror and mask to match fixslicing - strd r11, r12, [r0], #16 //store 1st half tk for 9th round - bl p2 //apply the permutation 10 - and r11, r3, r6, ror #28 //--- ror and masks to match fixslicing - and r12, r6, r3, lsl #6 - orr r12, r11, r12, ror #12 - str.w r12, [r0, #8] - and r11, r3, r7, ror #28 - and r12, r7, r3, lsl #6 - orr r12, r11, r12, ror #12 - str.w r12, [r0, #12] - and r11, r3, r9, ror #28 - and r12, r9, r3, lsl #6 - orr r12, r11, r12, ror #12 - str.w r12, [r0, #4] - and r11, r3, r8, ror #28 - and r12, r8, r3, lsl #6 - orr r12, r11, r12, ror #12 - str.w r12, [r0], #16 //ror and masks to match fixslicing --- - bl p2 //apply the permutation 12 times - and r11, r2, r6, ror #16 //ror and mask to match fixslicing - and r12, r2, r7, ror #16 //ror and mask to match fixslicing - strd r11, r12, [r0, #8] //store 2nd half tk for 5th round - and r11, r2, r8, ror #16 //ror and mask to match fixslicing - and r12, r2, r9, ror #16 //ror and mask to match fixslicing - strd r11, r12, [r0], #16 //store 1st half tk for 5th round - bl p2 //apply the permutation 14 times - and r11, r3, r6, ror #12 //--- ror and masks to match fixslicing - and r12, r6, r3, lsl #6 - orr r12, r11, r12, ror #28 - str.w r12, [r0, #8] - and r11, r3, r7, ror #12 - and r12, r7, r3, lsl #6 - orr r12, r11, r12, ror #28 - str.w r12, [r0, #12] - and r11, r3, r9, ror #12 - and r12, r9, r3, lsl #6 - orr r12, r11, r12, ror #28 - str.w r12, [r0, #4] - and r11, r3, r8, ror #12 - and r12, r8, r3, lsl #6 - orr r12, r11, r12, ror #28 - str.w r12, [r0] //ror and masks to match fixslicing --- - pop {r0-r12, lr} - bx lr - -.align 2 -quadruple_round: - orr r8, r2, r3 - eor r5, r5, r8 - mvn r5, r5 - eor r8, r3, r4, lsr #1 - and r8, r8, r6 - eor r3, r3, r8 - eor r4, r4, r8, lsl #1 //SWAPMOVE(r4, r3, 0x55555555, 1); - eor r8, r4, r5, lsr #1 - and r8, r8, r6 - eor r4, r4, r8 - eor r5, r5, r8, lsl #1 //SWAPMOVE(r5, r4, 0x55555555, 1); - orr r8, r4, r5 - eor r3, r3, r8 - mvn r3, r3 - eor r8, r2, r3, lsr #1 - and r8, r8, r6 - eor r2, r2, r8 - eor r3, r3, r8, lsl #1 //SWAPMOVE(r3, r2, 0x55555555, 1); - eor r8, r5, r2, lsr #1 - and r8, r8, r6 - eor r5, r5, r8 - eor r2, r2, r8, lsl #1 //SWAPMOVE(r2, r5, 0x55555555, 1); - orr r8, r2, r3 - eor r5, r5, r8 - mvn r5, r5 - eor r8, r3, r4, lsr #1 - and r8, r8, r6 - eor r3, r3, r8 - eor r4, r4, r8, lsl #1 //SWAPMOVE(r4, r3, 0x55555555, 1); - eor r8, r4, r5, lsr #1 - and r8, r8, r6 - eor r4, r4, r8 - eor r5, r5, r8, lsl #1 //SWAPMOVE(r5, r4, 0x55555555, 1); - orr r8, r4, r5 - eor r3, r3, r8 - eor r8, r2, r5 - and r8, r8, r6 - eor r2, r2, r8 - eor r5, r5, r8 //SWAPMOVE(r5, r2, 0x55555555, 0); - ldmia.w r1!, {r8-r11} //load rkeys in r8,...,r11 - eor r2, r2, r8 //add rtk_2_3 + rconst - eor r3, r3, r9 //add rtk_2_3 + rconst - eor r4, r4, r10 //add rtk_2_3 + rconst - eor r5, r5, r11 //add rtk_2_3 + rconst - ldmia.w r0!,{r8-r11} - eor r2, r2, r8 //add rtk_1 - eor r3, r3, r9 //add rtk_1 - eor r4, r4, r10 //add rtk_1 - eor r5, r5, r11 //add rtk_1 - and r8, r7, r2, ror #30 // --- mixcolumns 0 --- - eor r2, r2, r8, ror #24 - and r8, r7, r2, ror #18 - eor r2, r2, r8, ror #2 - and r8, r7, r2, ror #6 - eor r2, r2, r8, ror #4 - and r8, r7, r3, ror #30 - eor r3, r3, r8, ror #24 - and r8, r7, r3, ror #18 - eor r3, r3, r8, ror #2 - and r8, r7, r3, ror #6 - eor r3, r3, r8, ror #4 - and r8, r7, r4, ror #30 - eor r4, r4, r8, ror #24 - and r8, r7, r4, ror #18 - eor r4, r4, r8, ror #2 - and r8, r7, r4, ror #6 - eor r4, r4, r8, ror #4 - and r8, r7, r5, ror #30 - eor r5, r5, r8, ror #24 - and r8, r7, r5, ror #18 - eor r5, r5, r8, ror #2 - and r8, r7, r5, ror #6 - eor r5, r5, r8, ror #4 - orr r8, r4, r5 - eor r3, r3, r8 - mvn r3, r3 - eor r8, r2, r3, lsr #1 - and r8, r8, r6 - eor r2, r2, r8 - eor r3, r3, r8, lsl #1 //SWAPMOVE(r3, r2, 0x55555555, 1); - eor r8, r5, r2, lsr #1 - and r8, r8, r6 - eor r5, r5, r8 - eor r2, r2, r8, lsl #1 //SWAPMOVE(r2, r5, 0x55555555, 1); - orr r8, r2, r3 - eor r5, r5, r8 - mvn r5, r5 - eor r8, r3, r4, lsr #1 - and r8, r8, r6 - eor r3, r3, r8 - eor r4, r4, r8, lsl #1 //SWAPMOVE(r4, r3, 0x55555555, 1); - eor r8, r4, r5, lsr #1 - and r8, r8, r6 - eor r4, r4, r8 - eor r5, r5, r8, lsl #1 //SWAPMOVE(r5, r4, 0x55555555, 1); - orr r8, r4, r5 - eor r3, r3, r8 - mvn r3, r3 - eor r8, r2, r3, lsr #1 - and r8, r8, r6 - eor r2, r2, r8 - eor r3, r3, r8, lsl #1 //SWAPMOVE(r3, r2, 0x55555555, 1); - eor r8, r5, r2, lsr #1 - and r8, r8, r6 - eor r5, r5, r8 - eor r2, r2, r8, lsl #1 //SWAPMOVE(r2, r5, 0x55555555, 1); - orr r8, r2, r3 - eor r5, r5, r8 - eor r8, r3, r4 - and r8, r8, r6 - eor r3, r3, r8 - eor r4, r4, r8 //SWAPMOVE(r4, r3, 0x55555555, 0); - ldmia.w r1!, {r8-r11} //load rkeys in r8,...,r11 - eor r2, r2, r8 //add rkey + rconst - eor r3, r3, r9 //add rkey + rconst - eor r4, r4, r10 //add rkey + rconst - eor r5, r5, r11 //add rkey + rconst - and r8, r7, r2, ror #16 // --- mixcolumns 1 --- - eor r2, r2, r8, ror #30 - and r8, r7, r2, ror #28 - eor r2, r2, r8 - and r8, r7, r2, ror #16 - eor r2, r2, r8, ror #2 - and r8, r7, r3, ror #16 - eor r3, r3, r8, ror #30 - and r8, r7, r3, ror #28 - eor r3, r3, r8 - and r8, r7, r3, ror #16 - eor r3, r3, r8, ror #2 - and r8, r7, r4, ror #16 - eor r4, r4, r8, ror #30 - and r8, r7, r4, ror #28 - eor r4, r4, r8 - and r8, r7, r4, ror #16 - eor r4, r4, r8, ror #2 - and r8, r7, r5, ror #16 - eor r5, r5, r8, ror #30 - and r8, r7, r5, ror #28 - eor r5, r5, r8 - and r8, r7, r5, ror #16 - eor r5, r5, r8, ror #2 - orr r8, r2, r3 - eor r5, r5, r8 - mvn r5, r5 - eor r8, r3, r4, lsr #1 - and r8, r8, r6 - eor r3, r3, r8 - eor r4, r4, r8, lsl #1 //SWAPMOVE(r4, r3, 0x55555555, 1); - eor r8, r4, r5, lsr #1 - and r8, r8, r6 - eor r4, r4, r8 - eor r5, r5, r8, lsl #1 //SWAPMOVE(r5, r4, 0x55555555, 1); - orr r8, r4, r5 - eor r3, r3, r8 - mvn r3, r3 - eor r8, r2, r3, lsr #1 - and r8, r8, r6 - eor r2, r2, r8 - eor r3, r3, r8, lsl #1 //SWAPMOVE(r3, r2, 0x55555555, 1); - eor r8, r5, r2, lsr #1 - and r8, r8, r6 - eor r5, r5, r8 - eor r2, r2, r8, lsl #1 //SWAPMOVE(r2, r5, 0x55555555, 1); - orr r8, r2, r3 - eor r5, r5, r8 - mvn r5, r5 - eor r8, r3, r4, lsr #1 - and r8, r8, r6 - eor r3, r3, r8 - eor r4, r4, r8, lsl #1 //SWAPMOVE(r4, r3, 0x55555555, 1); - eor r8, r4, r5, lsr #1 - and r8, r8, r6 - eor r4, r4, r8 - eor r5, r5, r8, lsl #1 //SWAPMOVE(r5, r4, 0x55555555, 1); - orr r8, r4, r5 - eor r3, r3, r8 - eor r8, r2, r5 - and r8, r8, r6 - eor r2, r2, r8 - eor r5, r5, r8 //SWAPMOVE(r5, r2, 0x55555555, 0); - ldmia.w r1!, {r8-r11} //load rkeys in r8,...,r11 - eor r2, r2, r8 //add rtk_2_3 + rconst - eor r3, r3, r9 //add rtk_2_3 + rconst - eor r4, r4, r10 //add rtk_2_3 + rconst - eor r5, r5, r11 //add rtk_2_3 + rconst - ldmia.w r0!,{r8-r11} - eor r2, r2, r8 //add rtk_1 - eor r3, r3, r9 //add rtk_1 - eor r4, r4, r10 //add rtk_1 - eor r5, r5, r11 //add rtk_1 - and r8, r7, r2, ror #10 // --- mixcolumns 2 --- - eor r2, r2, r8, ror #4 - and r8, r7, r2, ror #6 - eor r2, r2, r8, ror #6 - and r8, r7, r2, ror #26 - eor r2, r2, r8 - and r8, r7, r3, ror #10 - eor r3, r3, r8, ror #4 - and r8, r7, r3, ror #6 - eor r3, r3, r8, ror #6 - and r8, r7, r3, ror #26 - eor r3, r3, r8 - and r8, r7, r4, ror #10 - eor r4, r4, r8, ror #4 - and r8, r7, r4, ror #6 - eor r4, r4, r8, ror #6 - and r8, r7, r4, ror #26 - eor r4, r4, r8 - and r8, r7, r5, ror #10 - eor r5, r5, r8, ror #4 - and r8, r7, r5, ror #6 - eor r5, r5, r8, ror #6 - and r8, r7, r5, ror #26 - eor r5, r5, r8 - orr r8, r4, r5 - eor r3, r3, r8 - mvn r3, r3 - eor r8, r2, r3, lsr #1 - and r8, r8, r6 - eor r2, r2, r8 - eor r3, r3, r8, lsl #1 //SWAPMOVE(r3, r2, 0x55555555, 1); - eor r8, r5, r2, lsr #1 - and r8, r8, r6 - eor r5, r5, r8 - eor r2, r2, r8, lsl #1 //SWAPMOVE(r2, r5, 0x55555555, 1); - orr r8, r2, r3 - eor r5, r5, r8 - mvn r5, r5 - eor r8, r3, r4, lsr #1 - and r8, r8, r6 - eor r3, r3, r8 - eor r4, r4, r8, lsl #1 //SWAPMOVE(r4, r3, 0x55555555, 1); - eor r8, r4, r5, lsr #1 - and r8, r8, r6 - eor r4, r4, r8 - eor r5, r5, r8, lsl #1 //SWAPMOVE(r5, r4, 0x55555555, 1); - orr r8, r4, r5 - eor r3, r3, r8 - mvn r3, r3 - eor r8, r2, r3, lsr #1 - and r8, r8, r6 - eor r2, r2, r8 - eor r3, r3, r8, lsl #1 //SWAPMOVE(r3, r2, 0x55555555, 1); - eor r8, r5, r2, lsr #1 - and r8, r8, r6 - eor r5, r5, r8 - eor r2, r2, r8, lsl #1 //SWAPMOVE(r2, r5, 0x55555555, 1); - orr r8, r2, r3 - eor r5, r5, r8 - eor r8, r3, r4 - and r8, r8, r6 - eor r3, r3, r8 - eor r4, r4, r8 //SWAPMOVE(r4, r3, 0x55555555, 0); - ldmia r1!, {r8-r11} //load rkeys in r8,...,r11 - eor r2, r2, r8 //add rkey + rconst - eor r3, r3, r9 //add rkey + rconst - eor r4, r4, r10 //add rkey + rconst - eor r5, r5, r11 //add rkey + rconst - and r8, r7, r2, ror #4 // --- mixcolumns 3 --- - eor r2, r2, r8, ror #26 - and r8, r7, r2 - eor r2, r2, r8, ror #4 - and r8, r7, r2, ror #4 - eor r2, r2, r8, ror #22 - and r8, r7, r3, ror #4 - eor r3, r3, r8, ror #26 - and r8, r7, r3 - eor r3, r3, r8, ror #4 - and r8, r7, r3, ror #4 - eor r3, r3, r8, ror #22 - and r8, r7, r4, ror #4 - eor r4, r4, r8, ror #26 - and r8, r7, r4 - eor r4, r4, r8, ror #4 - and r8, r7, r4, ror #4 - eor r4, r4, r8, ror #22 - and r8, r7, r5, ror #4 - eor r5, r5, r8, ror #26 - and r8, r7, r5 - eor r5, r5, r8, ror #4 - and r8, r7, r5, ror #4 - eor r5, r5, r8, ror #22 - bx lr - -/****************************************************************************** -* Encrypt a single block using fixsliced SKINNY-128-128. -******************************************************************************/ -@ void skinny128_384(u8* ctext, const u32* tk, const u8* ptext, const u32* rtk1) -.global skinny128_384 -.type skinny128_384,%function -.align 2 -skinny128_384: - push {r0-r12, r14} - mov.w r0, r3 - ldr.w r3, [r2, #8] - ldr.w r4, [r2, #4] - ldr.w r5, [r2, #12] - ldr.w r2, [r2] - movw r6, #0x0a0a - movt r6, #0x0a0a //r6 <- 0x0a0a0a0a - movw r7, #0x3030 - movt r7, #0x3030 //r7 <- 0x30303030 - eor r12, r2, r2, lsr #3 - and r12, r12, r6 - eor r2, r2, r12 - eor r2, r2, r12, lsl #3 //SWAPMOVE(r2, r2, 0x0a0a0a0a, 3) - eor r12, r3, r3, lsr #3 - and r12, r12, r6 - eor r3, r3, r12 - eor r3, r3, r12, lsl #3 //SWAPMOVE(r3, r3, 0x0a0a0a0a, 3) - eor r12, r4, r4, lsr #3 - and r12, r12, r6 - eor r4, r4, r12 - eor r4, r4, r12, lsl #3 //SWAPMOVE(r4, r4, 0x0a0a0a0a, 3) - eor r12, r5, r5, lsr #3 - and r12, r12, r6 - eor r5, r5, r12 - eor r5, r5, r12, lsl #3 //SWAPMOVE(r5, r5, 0x0a0a0a0a, 3) - eor r12, r2, r4, lsr #2 - and r12, r12, r7 - eor r2, r2, r12 - eor r4, r4, r12, lsl #2 //SWAPMOVE(r4, r2, 0x30303030, 2) - eor r12, r2, r3, lsr #4 - and r12, r12, r7, lsr #2 - eor r2, r2, r12 - eor r3, r3, r12, lsl #4 //SWAPMOVE(r3, r2, 0x0c0c0c0c, 4) - eor r12, r2, r5, lsr #6 - and r12, r12, r7, lsr #4 - eor r2, r2, r12 - eor r5, r5, r12, lsl #6 //SWAPMOVE(r5, r2, 0x03030303, 6) - eor r12, r4, r3, lsr #2 - and r12, r12, r7, lsr #2 - eor r4, r4, r12 - eor r3, r3, r12, lsl #2 //SWAPMOVE(r3, r4, 0x0c0c0c0c, 2) - eor r12, r4, r5, lsr #4 - and r12, r12, r7, lsr #4 - eor r4, r4, r12 - eor r5, r5, r12, lsl #4 //SWAPMOVE(r5, r4, 0x03030303, 4) - eor r12, r3, r5, lsr #2 - and r12, r12, r7, lsr #4 - eor r3, r3, r12 - eor r5, r5, r12, lsl #2 //SWAPMOVE(r5, r3, 0x03030303, 2) - movw r6, #0x5555 - movt r6, #0x5555 //r6 <- 0x55555555 - bl quadruple_round - bl quadruple_round - bl quadruple_round - bl quadruple_round - sub.w r0, #128 // rtk1 repeats every 16 rounds - bl quadruple_round - bl quadruple_round - bl quadruple_round - bl quadruple_round - sub.w r0, #128 // rtk1 repeats every 16 rounds - bl quadruple_round - bl quadruple_round - bl quadruple_round - bl quadruple_round - sub.w r0, #128 // rtk1 repeats every 16 rounds - bl quadruple_round - bl quadruple_round - movw r6, #0x0a0a - movt r6, #0x0a0a //r6 <- 0x0a0a0a0a - eor r10, r3, r5, lsr #2 - and r10, r10, r7, lsr #4 - eor r3, r3, r10 - eor r5, r5, r10, lsl #2 //SWAPMOVE(r5, r3, 0x03030303, 2) - eor r10, r4, r5, lsr #4 - and r10, r10, r7, lsr #4 - eor r4, r4, r10 - eor r5, r5, r10, lsl #4 //SWAPMOVE(r5, r4, 0x03030303, 4) - eor r10, r4, r3, lsr #2 - and r10, r10, r7, lsr #2 - eor r4, r4, r10 - eor r3, r3, r10, lsl #2 //SWAPMOVE(r3, r4, 0x0c0c0c0c, 2) - eor r10, r2, r5, lsr #6 - and r10, r10, r7, lsr #4 - eor r2, r2, r10 - eor r5, r5, r10, lsl #6 //SWAPMOVE(r5, r2, 0x03030303, 6) - eor r10, r2, r3, lsr #4 - and r10, r10, r7, lsr #2 - eor r2, r2, r10 - eor r3, r3, r10, lsl #4 //SWAPMOVE(r3, r2, 0x0c0c0c0c, 4) - eor r10, r2, r4, lsr #2 - and r10, r10, r7 - eor r2, r2, r10 - eor r4, r4, r10, lsl #2 //SWAPMOVE(r4, r2, 0x30303030, 2) - eor r10, r5, r5, lsr #3 - and r10, r10, r6 - eor r5, r5, r10 - eor r5, r5, r10, lsl #3 //SWAPMOVE(r5, r5, 0x0a0a0a0a, 3) - eor r10, r4, r4, lsr #3 - and r10, r10, r6 - eor r4, r4, r10 - eor r4, r4, r10, lsl #3 //SWAPMOVE(r4, r4, 0x0a0a0a0a, 3) - eor r10, r3, r3, lsr #3 - and r10, r10, r6 - eor r3, r3, r10 - eor r3, r3, r10, lsl #3 //SWAPMOVE(r3, r3, 0x0a0a0a0a, 3) - eor r10, r2, r2, lsr #3 - and r10, r10, r6 - eor r2, r2, r10 - eor r2, r2, r10, lsl #3 //SWAPMOVE(r2, r2, 0x0a0a0a0a, 3) - ldr.w r0, [sp], #4 - strd r2, r4, [r0] - strd r3, r5, [r0, #8] - pop {r1-r12,r14} - bx lr - \ No newline at end of file diff --git a/romulus/Implementations/crypto_aead/romulusn1v12/armsrc_NEC/api.h b/romulus/Implementations/crypto_aead/romulusn1v12/armsrc_NEC/api.h deleted file mode 100644 index a4aa567..0000000 --- a/romulus/Implementations/crypto_aead/romulusn1v12/armsrc_NEC/api.h +++ /dev/null @@ -1,5 +0,0 @@ -#define CRYPTO_KEYBYTES 16 -#define CRYPTO_NSECBYTES 0 -#define CRYPTO_NPUBBYTES 16 -#define CRYPTO_ABYTES 16 -#define CRYPTO_NOOVERLAP 1 diff --git a/romulus/Implementations/crypto_aead/romulusn1v12/armsrc_NEC/crypto_aead.h b/romulus/Implementations/crypto_aead/romulusn1v12/armsrc_NEC/crypto_aead.h deleted file mode 100644 index cfc09d6..0000000 --- a/romulus/Implementations/crypto_aead/romulusn1v12/armsrc_NEC/crypto_aead.h +++ /dev/null @@ -1,11 +0,0 @@ -int crypto_aead_encrypt(unsigned char *c, unsigned long long *clen, - const unsigned char *m, unsigned long long mlen, - const unsigned char *ad, unsigned long long adlen, - const unsigned char *nsec, const unsigned char *npub, - const unsigned char *k); - -int crypto_aead_decrypt(unsigned char *m, unsigned long long *outputmlen, - unsigned char *nsec, - const unsigned char *c, unsigned long long clen, - const unsigned char *ad, unsigned long long adlen, - const unsigned char *npub, const unsigned char *k); diff --git a/romulus/Implementations/crypto_aead/romulusn1v12/armsrc_NEC/encrypt.c b/romulus/Implementations/crypto_aead/romulusn1v12/armsrc_NEC/encrypt.c deleted file mode 100644 index 5a7d0e0..0000000 --- a/romulus/Implementations/crypto_aead/romulusn1v12/armsrc_NEC/encrypt.c +++ /dev/null @@ -1,541 +0,0 @@ -/* - * Date: 29 November 2018 - * Contact: Thomas Peyrin - thomas.peyrin@gmail.com - * Mustafa Khairallah - mustafam001@e.ntu.edu.sg - */ - -#include "crypto_aead.h" -#include "api.h" -#include "skinny.h" -#include -#include - -void pad (const unsigned char* m, unsigned char* mp, int l, int len8) { - int i; - - for (i = 0; i < l; i++) { - if (i < len8) { - mp[i] = m[i]; - } - else if (i == l - 1) { - mp[i] = (len8 & 0x0f); - } - else { - mp[i] = 0x00; - } - } - -} - -void g8A (unsigned char* s, unsigned char* c) { - unsigned int tmps[4]; - unsigned int tmpc[4]; - - tmps[0] = *((unsigned int *)&s[0]); - tmps[1] = *((unsigned int *)&s[4]); - tmps[2] = *((unsigned int *)&s[8]); - tmps[3] = *((unsigned int *)&s[12]); - - // c[i] = (s[i] >> 1) ^ (s[i] & 0x80) ^ ((s[i] & 0x01) << 7); - // - // (s[i] >> 1) -> ((s[i]>>1)&0x7f) - // (s[i] & 0x80) -> (s[i])&0x80) not changed - // ((s[i] & 0x01) << 7) -> ((s[i]<<7)&0x80) - - // use word access because of speeding up - tmpc[0] = ((tmps[0]>>1) & 0x7f7f7f7f) ^ (tmps[0] & 0x80808080) ^ ((tmps[0]<<7) & 0x80808080); - tmpc[1] = ((tmps[1]>>1) & 0x7f7f7f7f) ^ (tmps[1] & 0x80808080) ^ ((tmps[1]<<7) & 0x80808080); - tmpc[2] = ((tmps[2]>>1) & 0x7f7f7f7f) ^ (tmps[2] & 0x80808080) ^ ((tmps[2]<<7) & 0x80808080); - tmpc[3] = ((tmps[3]>>1) & 0x7f7f7f7f) ^ (tmps[3] & 0x80808080) ^ ((tmps[3]<<7) & 0x80808080); - - *((unsigned int *)&c[0]) = tmpc[0]; - *((unsigned int *)&c[4]) = tmpc[1]; - *((unsigned int *)&c[8]) = tmpc[2]; - *((unsigned int *)&c[12]) = tmpc[3]; -} - -void g8A_for_Tag_Generation (unsigned char* s, unsigned char* c) { - unsigned int tmps[4]; - unsigned int tmpc[4]; - - tmps[0] = *((unsigned int *)&s[0]); - tmps[1] = *((unsigned int *)&s[4]); - tmps[2] = *((unsigned int *)&s[8]); - tmps[3] = *((unsigned int *)&s[12]); - - // c[i] = (s[i] >> 1) ^ (s[i] & 0x80) ^ ((s[i] & 0x01) << 7); - // - // (s[i] >> 1) -> ((s[i]>>1)&0x7f) - // (s[i] & 0x80) -> (s[i])&0x80) not changed - // ((s[i] & 0x01) << 7) -> ((s[i]<<7)&0x80) - - // use word access because of speeding up - tmpc[0] = ((tmps[0]>>1) & 0x7f7f7f7f) ^ (tmps[0] & 0x80808080) ^ ((tmps[0]<<7) & 0x80808080); - tmpc[1] = ((tmps[1]>>1) & 0x7f7f7f7f) ^ (tmps[1] & 0x80808080) ^ ((tmps[1]<<7) & 0x80808080); - tmpc[2] = ((tmps[2]>>1) & 0x7f7f7f7f) ^ (tmps[2] & 0x80808080) ^ ((tmps[2]<<7) & 0x80808080); - tmpc[3] = ((tmps[3]>>1) & 0x7f7f7f7f) ^ (tmps[3] & 0x80808080) ^ ((tmps[3]<<7) & 0x80808080); - - // use byte access because of memory alignment. - // c is not always in word(4 byte) alignment. - c[0] = tmpc[0] &0xFF; - c[1] = (tmpc[0]>>8) &0xFF; - c[2] = (tmpc[0]>>16)&0xFF; - c[3] = (tmpc[0]>>24)&0xFF; - c[4] = tmpc[1] &0xFF; - c[5] = (tmpc[1]>>8) &0xFF; - c[6] = (tmpc[1]>>16)&0xFF; - c[7] = (tmpc[1]>>24)&0xFF; - c[8] = tmpc[2] &0xFF; - c[9] = (tmpc[2]>>8) &0xFF; - c[10] = (tmpc[2]>>16)&0xFF; - c[11] = (tmpc[2]>>24)&0xFF; - c[12] = tmpc[3] &0xFF; - c[13] = (tmpc[3]>>8) &0xFF; - c[14] = (tmpc[3]>>16)&0xFF; - c[15] = (tmpc[3]>>24)&0xFF; -} - -void rho_ad_eqov16 (const unsigned char* m, - unsigned char* s) { - *((unsigned int *)&s[0]) ^= *((unsigned int *)&m[0]); - *((unsigned int *)&s[4]) ^= *((unsigned int *)&m[4]); - *((unsigned int *)&s[8]) ^= *((unsigned int *)&m[8]); - *((unsigned int *)&s[12]) ^= *((unsigned int *)&m[12]); -} - -void rho_ad_ud16 (const unsigned char* m, - unsigned char* s, - int len8) { - unsigned char mp [16]; - - pad(m,mp,16,len8); - *((unsigned int *)&s[0]) ^= *((unsigned int *)&mp[0]); - *((unsigned int *)&s[4]) ^= *((unsigned int *)&mp[4]); - *((unsigned int *)&s[8]) ^= *((unsigned int *)&mp[8]); - *((unsigned int *)&s[12]) ^= *((unsigned int *)&mp[12]); -} - -void rho_eqov16 (const unsigned char* m, - unsigned char* c, - unsigned char* s) { - g8A(s,c); - - *((unsigned int *)&s[0]) ^= *((unsigned int *)&m[0]); - *((unsigned int *)&s[4]) ^= *((unsigned int *)&m[4]); - *((unsigned int *)&s[8]) ^= *((unsigned int *)&m[8]); - *((unsigned int *)&s[12]) ^= *((unsigned int *)&m[12]); - - *((unsigned int *)&c[0]) ^= *((unsigned int *)&m[0]); - *((unsigned int *)&c[4]) ^= *((unsigned int *)&m[4]); - *((unsigned int *)&c[8]) ^= *((unsigned int *)&m[8]); - *((unsigned int *)&c[12]) ^= *((unsigned int *)&m[12]); -} - -void rho_ud16 (const unsigned char* m, - unsigned char* c, - unsigned char* s, - int len8, - int ver) { - int i; - unsigned char mp [16]; - - pad(m,mp,ver,len8); - - g8A(s,c); - *((unsigned int *)&s[0]) ^= *((unsigned int *)&mp[0]); - *((unsigned int *)&s[4]) ^= *((unsigned int *)&mp[4]); - *((unsigned int *)&s[8]) ^= *((unsigned int *)&mp[8]); - *((unsigned int *)&s[12]) ^= *((unsigned int *)&mp[12]); - for (i = 0; i < ver; i++) { - if (i < len8) { - c[i] = c[i] ^ mp[i]; - } - else { - c[i] = 0; - } - } -} - -void irho (unsigned char* m, - const unsigned char* c, - unsigned char* s, - int len8, - int ver) { - int i; - unsigned char cp [16]; - - pad(c,cp,ver,len8); - - g8A(s,m); - for (i = 0; i < ver; i++) { - if (i < len8) { - s[i] = s[i] ^ cp[i] ^ m[i]; - } - else { - s[i] = s[i] ^ cp[i]; - } - if (i < len8) { - m[i] = m[i] ^ cp[i]; - } - else { - m[i] = 0; - } - } -} - -void reset_lfsr_gf56 (unsigned char* CNT) { - *((unsigned int *)&CNT[0]) = 0x00000001; - *((unsigned int *)&CNT[4]) = 0x00000000; -} - -void lfsr_gf56 (unsigned char* CNT) { - unsigned int tmpCNT[2]; - unsigned int fb0; - - tmpCNT[0] = *((unsigned int *)&CNT[0]); // CNT3 CNT2 CNT1 CNT0 - tmpCNT[1] = *((unsigned int *)&CNT[4]); // CNT7 CNT6 CNT5 CNT4 - - fb0 = 0; - if ((tmpCNT[1] >> 23)&0x01) { - fb0 = 0x95; - } - - tmpCNT[1] = tmpCNT[1] << 1 | tmpCNT[0] >> 31; - tmpCNT[0] = tmpCNT[0] << 1 ^ fb0; - - *((unsigned int *)&CNT[0]) = tmpCNT[0]; - *((unsigned int *)&CNT[4]) = tmpCNT[1]; -} - -void block_cipher(unsigned char* s, - const unsigned char* k, unsigned char* T, - unsigned char* CNT, - skinny_ctrl* p_skinny_ctrl) { - p_skinny_ctrl->func_skinny_128_384_enc (s,p_skinny_ctrl,CNT,T,k); -} - -void nonce_encryption (const unsigned char* N, - unsigned char* CNT, - unsigned char*s, const unsigned char* k, - unsigned char D, - skinny_ctrl* p_skinny_ctrl) { - unsigned char T [16]; - - *((unsigned int *)&T[0]) = *((unsigned int *)&N[0]); - *((unsigned int *)&T[4]) = *((unsigned int *)&N[4]); - *((unsigned int *)&T[8]) = *((unsigned int *)&N[8]); - *((unsigned int *)&T[12]) = *((unsigned int *)&N[12]); - CNT[7] = D; - block_cipher(s,k,T,CNT,p_skinny_ctrl); - -} - -void generate_tag (unsigned char** c, unsigned char* s, - int n, unsigned long long* clen) { - g8A_for_Tag_Generation(s, *c); - *c = *c + n; - *c = *c - *clen; -} - -unsigned long long msg_encryption_eqov16 (const unsigned char** M, unsigned char** c, - const unsigned char* N, - unsigned char* CNT, - unsigned char*s, const unsigned char* k, - unsigned char D, - unsigned long long mlen, - skinny_ctrl* p_skinny_ctrl) { - rho_eqov16(*M, *c, s); - *c = *c + 16; - *M = *M + 16; - lfsr_gf56(CNT); - nonce_encryption(N,CNT,s,k,D,p_skinny_ctrl); - return mlen - 16; -} - -unsigned long long msg_encryption_ud16 (const unsigned char** M, unsigned char** c, - const unsigned char* N, - unsigned char* CNT, - unsigned char*s, const unsigned char* k, - unsigned char D, - unsigned long long mlen, - skinny_ctrl* p_skinny_ctrl) { - rho_ud16(*M, *c, s, mlen, 16); - *c = *c + mlen; - *M = *M + mlen; - lfsr_gf56(CNT); - nonce_encryption(N,CNT,s,k,D,p_skinny_ctrl); - return 0; -} - -unsigned long long msg_decryption (unsigned char** M, const unsigned char** c, - const unsigned char* N, - unsigned char* CNT, - unsigned char*s, const unsigned char* k, - unsigned char D, - unsigned long long clen, - skinny_ctrl* p_skinny_ctrl) { - int len8; - - if (clen >= 16) { - len8 = 16; - clen = clen - 16; - } - else { - len8 = clen; - clen = 0; - } - irho(*M, *c, s, len8, 16); - *c = *c + len8; - *M = *M + len8; - lfsr_gf56(CNT); - nonce_encryption(N,CNT,s,k,D,p_skinny_ctrl); - return clen; -} - -unsigned long long ad_encryption_eqov32 (const unsigned char** A, unsigned char* s, - const unsigned char* k, unsigned long long adlen, - unsigned char* CNT, - unsigned char D, - skinny_ctrl* p_skinny_ctrl) { - - unsigned char T [16]; - - rho_ad_eqov16(*A, s); - *A = *A + 16; - lfsr_gf56(CNT); - - //pad(*A, T, 16, 16); - *((unsigned int *)&T[0]) = *((unsigned int *)&(*A)[0]); - *((unsigned int *)&T[4]) = *((unsigned int *)&(*A)[4]); - *((unsigned int *)&T[8]) = *((unsigned int *)&(*A)[8]); - *((unsigned int *)&T[12]) = *((unsigned int *)&(*A)[12]); - *A = *A + 16; - CNT[7] = D; - block_cipher(s,k,T,CNT,p_skinny_ctrl); - lfsr_gf56(CNT); - - return adlen - 32; -} - -unsigned long long ad_encryption_ov16 (const unsigned char** A, unsigned char* s, - const unsigned char* k, unsigned long long adlen, - unsigned char* CNT, - unsigned char D, - skinny_ctrl* p_skinny_ctrl) { - - unsigned char T [16]; - - adlen = adlen - 16; - rho_ad_eqov16(*A, s); - *A = *A + 16; - lfsr_gf56(CNT); - - pad(*A, T, 16, adlen); - *A = *A + adlen; - CNT[7] = D; - block_cipher(s,k,T,CNT,p_skinny_ctrl); - lfsr_gf56(CNT); - - return 0; -} - -unsigned long long ad_encryption_eq16 (const unsigned char** A, unsigned char* s, - unsigned char* CNT) { - - rho_ad_eqov16(*A, s); - *A = *A + 16; - lfsr_gf56(CNT); - - return 0; -} - -unsigned long long ad_encryption_ud16 (const unsigned char** A, unsigned char* s, - unsigned long long adlen, - unsigned char* CNT) { - - rho_ad_ud16(*A, s, adlen); - *A = *A + adlen; - lfsr_gf56(CNT); - - return 0; -} - -int crypto_aead_encrypt ( - unsigned char* c, unsigned long long* clen, - const unsigned char* m, unsigned long long mlen, - const unsigned char* ad, unsigned long long adlen, - const unsigned char* nsec, - const unsigned char* npub, - const unsigned char* k - ) -{ - unsigned char s[16]; - // size 7 -> 8 for word access - unsigned char CNT[8]; - const unsigned char* A; - const unsigned char* M; - const unsigned char* N; - - skinny_ctrl l_skinny_ctrl; - - (void) nsec; - A = ad; - M = m; - N = npub; - - l_skinny_ctrl.func_skinny_128_384_enc = skinny_128_384_enc123_12; - - *((unsigned int *)&s[0]) = 0x00000000; - *((unsigned int *)&s[4]) = 0x00000000; - *((unsigned int *)&s[8]) = 0x00000000; - *((unsigned int *)&s[12]) = 0x00000000; - reset_lfsr_gf56(CNT); - - if (adlen == 0) { // AD is an empty string - lfsr_gf56(CNT); - nonce_encryption(N,CNT,s,k,0x1a,&l_skinny_ctrl); - } - else while (adlen > 0) { - if (adlen < 16) { // The last block of AD is odd and incomplete - adlen = ad_encryption_ud16(&A,s,adlen,CNT); - nonce_encryption(N,CNT,s,k,0x1a,&l_skinny_ctrl); - } - else if (adlen == 16) { // The last block of AD is odd and complete - adlen = ad_encryption_eq16(&A,s,CNT); - nonce_encryption(N,CNT,s,k,0x18,&l_skinny_ctrl); - } - else if (adlen < (32)) { // The last block of AD is even and incomplete - adlen = ad_encryption_ov16(&A,s,k,adlen,CNT,0x08,&l_skinny_ctrl); - nonce_encryption(N,CNT,s,k,0x1a,&l_skinny_ctrl); - } - else if (adlen == (32)) { // The last block of AD is even and complete - adlen = ad_encryption_eqov32(&A,s,k,adlen,CNT,0x08,&l_skinny_ctrl); - nonce_encryption(N,CNT,s,k,0x18,&l_skinny_ctrl); - } - else { // A normal full pair of blocks of AD - adlen = ad_encryption_eqov32(&A,s,k,adlen,CNT,0x08,&l_skinny_ctrl); - } - } - - // because, nonce_encryption is called at the last block of AD encryption - l_skinny_ctrl.func_skinny_128_384_enc = skinny_128_384_enc1_1; - - reset_lfsr_gf56(CNT); - - *clen = mlen + 16; - - if (mlen == 0) { // M is an empty string - lfsr_gf56(CNT); - nonce_encryption(N,CNT,s,k,0x15,&l_skinny_ctrl); - } - else while (mlen > 0) { - if (mlen < 16) { // The last block of M is incomplete - mlen = msg_encryption_ud16(&M,&c,N,CNT,s,k,0x15,mlen,&l_skinny_ctrl); - } - else if (mlen == 16) { // The last block of M is complete - mlen = msg_encryption_eqov16(&M,&c,N,CNT,s,k,0x14,mlen,&l_skinny_ctrl); - } - else { // A normal full message block - mlen = msg_encryption_eqov16(&M,&c,N,CNT,s,k,0x04,mlen,&l_skinny_ctrl); - } - } - - // Tag generation - generate_tag(&c,s,16,clen); - - return 0; -} - -int crypto_aead_decrypt( -unsigned char *m,unsigned long long *mlen, -unsigned char *nsec, -const unsigned char *c,unsigned long long clen, -const unsigned char *ad,unsigned long long adlen, -const unsigned char *npub, -const unsigned char *k -) -{ - - unsigned char s[16]; - unsigned char T[16]; - // size 7 -> 8 for word access - unsigned char CNT[8]; - const unsigned char* A; - unsigned char* M; - const unsigned char* N; - unsigned int i; - - skinny_ctrl l_skinny_ctrl; - - (void) nsec; - A = ad; - M = m; - N = npub; - - l_skinny_ctrl.func_skinny_128_384_enc = skinny_128_384_enc123_12; - - for (i = 0; i < 16; i++) { - s[i] = 0; - } - reset_lfsr_gf56(CNT); - - if (adlen == 0) { // AD is an empty string - lfsr_gf56(CNT); - nonce_encryption(N,CNT,s,k,0x1a,&l_skinny_ctrl); - } - else while (adlen > 0) { - if (adlen < 16) { // The last block of AD is odd and incomplete - adlen = ad_encryption_ud16(&A,s,adlen,CNT); - nonce_encryption(N,CNT,s,k,0x1a,&l_skinny_ctrl); - } - else if (adlen == 16) { // The last block of AD is odd and complete - adlen = ad_encryption_eq16(&A,s,CNT); - nonce_encryption(N,CNT,s,k,0x18,&l_skinny_ctrl); - } - else if (adlen < (32)) { // The last block of AD is even and incomplete - adlen = ad_encryption_ov16(&A,s,k,adlen,CNT,0x08,&l_skinny_ctrl); - nonce_encryption(N,CNT,s,k,0x1a,&l_skinny_ctrl); - } - else if (adlen == (32)) { // The last block of AD is even and complete - adlen = ad_encryption_eqov32(&A,s,k,adlen,CNT,0x08,&l_skinny_ctrl); - nonce_encryption(N,CNT,s,k,0x18,&l_skinny_ctrl); - } - else { // A normal full pair of blocks of AD - adlen = ad_encryption_eqov32(&A,s,k,adlen,CNT,0x08,&l_skinny_ctrl); - } - } - - l_skinny_ctrl.func_skinny_128_384_enc = skinny_128_384_enc1_1; - reset_lfsr_gf56(CNT); - - clen = clen - 16; - *mlen = clen; - - if (clen == 0) { // C is an empty string - lfsr_gf56(CNT); - nonce_encryption(N,CNT,s,k,0x15,&l_skinny_ctrl); - } - else while (clen > 0) { - if (clen < 16) { // The last block of C is incomplete - clen = msg_decryption(&M,&c,N,CNT,s,k,0x15,clen,&l_skinny_ctrl); - } - else if (clen == 16) { // The last block of C is complete - clen = msg_decryption(&M,&c,N,CNT,s,k,0x14,clen,&l_skinny_ctrl); - } - else { // A normal full message block - clen = msg_decryption(&M,&c,N,CNT,s,k,0x04,clen,&l_skinny_ctrl); - } - } - - // Tag generation - g8A_for_Tag_Generation(s, T); - for (i = 0; i < 16; i++) { - if (T[i] != (*(c+i))) { - return -1; - } - } - - return 0; -} - - diff --git a/romulus/Implementations/crypto_aead/romulusn1v12/armsrc_NEC/genkat_aead.c b/romulus/Implementations/crypto_aead/romulusn1v12/armsrc_NEC/genkat_aead.c deleted file mode 100644 index 21f840f..0000000 --- a/romulus/Implementations/crypto_aead/romulusn1v12/armsrc_NEC/genkat_aead.c +++ /dev/null @@ -1,161 +0,0 @@ -// -// NIST-developed software is provided by NIST as a public service. -// You may use, copy and distribute copies of the software in any medium, -// provided that you keep intact this entire notice. You may improve, -// modify and create derivative works of the software or any portion of -// the software, and you may copy and distribute such modifications or -// works. Modified works should carry a notice stating that you changed -// the software and should note the date and nature of any such change. -// Please explicitly acknowledge the National Institute of Standards and -// Technology as the source of the software. -// -// NIST-developed software is expressly provided "AS IS." NIST MAKES NO -// WARRANTY OF ANY KIND, EXPRESS, IMPLIED, IN FACT OR ARISING BY OPERATION -// OF LAW, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTY OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT AND DATA ACCURACY. NIST -// NEITHER REPRESENTS NOR WARRANTS THAT THE OPERATION OF THE SOFTWARE WILL BE -// UNINTERRUPTED OR ERROR-FREE, OR THAT ANY DEFECTS WILL BE CORRECTED. NIST -// DOES NOT WARRANT OR MAKE ANY REPRESENTATIONS REGARDING THE USE OF THE SOFTWARE -// OR THE RESULTS THEREOF, INCLUDING BUT NOT LIMITED TO THE CORRECTNESS, ACCURACY, -// RELIABILITY, OR USEFULNESS OF THE SOFTWARE. -// -// You are solely responsible for determining the appropriateness of using and -// distributing the software and you assume all risks associated with its use, -// including but not limited to the risks and costs of program errors, compliance -// with applicable laws, damage to or loss of data, programs or equipment, and -// the unavailability or interruption of operation. This software is not intended -// to be used in any situation where a failure could cause risk of injury or -// damage to property. The software developed by NIST employees is not subject to -// copyright protection within the United States. -// - -// disable deprecation for sprintf and fopen -#ifdef _MSC_VER -#define _CRT_SECURE_NO_WARNINGS -#endif - -#include -#include - -#include "crypto_aead.h" -#include "api.h" - -#define KAT_SUCCESS 0 -#define KAT_FILE_OPEN_ERROR -1 -#define KAT_DATA_ERROR -3 -#define KAT_CRYPTO_FAILURE -4 - -#define MAX_FILE_NAME 256 -#define MAX_MESSAGE_LENGTH 32 -#define MAX_ASSOCIATED_DATA_LENGTH 32 - -void init_buffer(unsigned char *buffer, unsigned long long numbytes); - -void fprint_bstr(FILE *fp, const char *label, const unsigned char *data, unsigned long long length); - -int generate_test_vectors(); - -int main() -{ - int ret = generate_test_vectors(); - - if (ret != KAT_SUCCESS) { - fprintf(stderr, "test vector generation failed with code %d\n", ret); - } - - return ret; -} - -int generate_test_vectors() -{ - FILE *fp; - char fileName[MAX_FILE_NAME]; - unsigned char key[CRYPTO_KEYBYTES]; - unsigned char nonce[CRYPTO_NPUBBYTES]; - unsigned char msg[MAX_MESSAGE_LENGTH]; - unsigned char msg2[MAX_MESSAGE_LENGTH]; - unsigned char ad[MAX_ASSOCIATED_DATA_LENGTH]; - unsigned char ct[MAX_MESSAGE_LENGTH + CRYPTO_ABYTES]; - unsigned long long clen, mlen2; - int count = 1; - int func_ret, ret_val = KAT_SUCCESS; - - init_buffer(key, sizeof(key)); - init_buffer(nonce, sizeof(nonce)); - init_buffer(msg, sizeof(msg)); - init_buffer(ad, sizeof(ad)); - - sprintf(fileName, "LWC_AEAD_KAT_%d_%d.txt", (CRYPTO_KEYBYTES * 8), (CRYPTO_NPUBBYTES * 8)); - - if ((fp = fopen(fileName, "w")) == NULL) { - fprintf(stderr, "Couldn't open <%s> for write\n", fileName); - return KAT_FILE_OPEN_ERROR; - } - - for (unsigned long long mlen = 0; (mlen <= MAX_MESSAGE_LENGTH) && (ret_val == KAT_SUCCESS); mlen++) { - for (unsigned long long adlen = 0; adlen <= MAX_ASSOCIATED_DATA_LENGTH; adlen++) { - - printf("%0d\n", (int)clen); - - fprintf(fp, "Count = %d\n", count++); - printf("Count = %d\n", count - 1); - - fprint_bstr(fp, "Key = ", key, CRYPTO_KEYBYTES); - - fprint_bstr(fp, "Nonce = ", nonce, CRYPTO_NPUBBYTES); - - fprint_bstr(fp, "PT = ", msg, mlen); - - fprint_bstr(fp, "AD = ", ad, adlen); - - if ((func_ret = crypto_aead_encrypt(ct, &clen, msg, mlen, ad, adlen, NULL, nonce, key)) != 0) { - fprintf(fp, "crypto_aead_encrypt returned <%d>\n", func_ret); - ret_val = KAT_CRYPTO_FAILURE; - break; - } - - fprint_bstr(fp, "CT = ", ct, clen); - - fprintf(fp, "\n"); - - if ((func_ret = crypto_aead_decrypt(msg2, &mlen2, NULL, ct, clen, ad, adlen, nonce, key)) != 0) { - fprintf(fp, "crypto_aead_decrypt returned <%d>\n", func_ret); - ret_val = KAT_CRYPTO_FAILURE; - break; - } - - if (mlen != mlen2) { - fprintf(fp, "crypto_aead_decrypt returned bad 'mlen': Got <%llu>, expected <%llu>\n", mlen2, mlen); - ret_val = KAT_CRYPTO_FAILURE; - break; - } - - if (memcmp(msg, msg2, mlen)) { - fprintf(fp, "crypto_aead_decrypt did not recover the plaintext\n"); - ret_val = KAT_CRYPTO_FAILURE; - break; - } - } - } - - fclose(fp); - - return ret_val; -} - - -void fprint_bstr(FILE *fp, const char *label, const unsigned char *data, unsigned long long length) -{ - fprintf(fp, "%s", label); - - for (unsigned long long i = 0; i < length; i++) - fprintf(fp, "%02X", data[i]); - - fprintf(fp, "\n"); -} - -void init_buffer(unsigned char *buffer, unsigned long long numbytes) -{ - for (unsigned long long i = 0; i < numbytes; i++) - buffer[i] = (unsigned char)i; -} diff --git a/romulus/Implementations/crypto_aead/romulusn1v12/armsrc_NEC/skinny.h b/romulus/Implementations/crypto_aead/romulusn1v12/armsrc_NEC/skinny.h deleted file mode 100644 index 6392b0f..0000000 --- a/romulus/Implementations/crypto_aead/romulusn1v12/armsrc_NEC/skinny.h +++ /dev/null @@ -1,8 +0,0 @@ -typedef struct ___skinny_ctrl { - unsigned char roundKeys[960]; // number of round : 56 - void (*func_skinny_128_384_enc)(unsigned char*, struct ___skinny_ctrl*, unsigned char* CNT, unsigned char* T, const unsigned char* K); -} skinny_ctrl; - -extern void skinny_128_384_enc123_12 (unsigned char* input, skinny_ctrl* pskinny_ctrl, unsigned char* CNT, unsigned char* T, const unsigned char* K); -extern void skinny_128_384_enc12_12 (unsigned char* input, skinny_ctrl* pskinny_ctrl, unsigned char* CNT, unsigned char* T, const unsigned char* K); -extern void skinny_128_384_enc1_1 (unsigned char* input, skinny_ctrl* pskinny_ctrl, unsigned char* CNT, unsigned char* T, const unsigned char* K); diff --git a/romulus/Implementations/crypto_aead/romulusn1v12/armsrc_NEC/skinny_key_schedule2.c b/romulus/Implementations/crypto_aead/romulusn1v12/armsrc_NEC/skinny_key_schedule2.c deleted file mode 100644 index 58006f2..0000000 --- a/romulus/Implementations/crypto_aead/romulusn1v12/armsrc_NEC/skinny_key_schedule2.c +++ /dev/null @@ -1,3027 +0,0 @@ -/****************************************************************************** - * Copyright (c) 2020, NEC Corporation. - * - * THIS CODE IS FURNISHED TO YOU "AS IS" WITHOUT WARRANTY OF ANY KIND. - * - *****************************************************************************/ - -/* - * SKINNY-128-384 - * - * load * AC(c0 c1) ^ TK3 - * calc AC(c0 c1) ^ TK2 -> store - * ART(TK2) - * - * number of rounds : 56 - */ - -__attribute__((aligned(4))) -void RunEncryptionKeyScheduleTK2(unsigned char *roundKeys) -{ - // r0 : points to roundKeys(& masterKey) - // r1-r4 : key state - // r5-r6 : temp use - // r7 : constant(0xfefefefe) - // r8 : constant(0x01010101) - // r9 : temp use - // r10 : temp use - asm volatile( - "stmdb sp!, {r4-r10} \n\t" - "ldr.w r1, [r0,#16] \n\t" // load master key - "ldr.w r2, [r0,#20] \n\t" // load master key - "ldr.w r3, [r0,#24] \n\t" // load master key - "ldr.w r4, [r0,#28] \n\t" // load master key - "mov.w r7, #0xfefefefe \n\t" - "mov.w r8, #0x01010101 \n\t" - - // round 1 - - "ldr.w r9, [r0,#512] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#516] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#64] \n\t" - "str.w r10, [r0,#68] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 2 - - "ldr.w r9, [r0,#520] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#524] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#72] \n\t" - "str.w r10, [r0,#76] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 3 - - "ldr.w r9, [r0,#528] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#532] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#80] \n\t" - "str.w r10, [r0,#84] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 4 - - "ldr.w r9, [r0,#536] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#540] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#88] \n\t" - "str.w r10, [r0,#92] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 5 - - "ldr.w r9, [r0,#544] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#548] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#96] \n\t" - "str.w r10, [r0,#100] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 6 - - "ldr.w r9, [r0,#552] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#556] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#104] \n\t" - "str.w r10, [r0,#108] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 7 - - "ldr.w r9, [r0,#560] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#564] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#112] \n\t" - "str.w r10, [r0,#116] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 8 - - "ldr.w r9, [r0,#568] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#572] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#120] \n\t" - "str.w r10, [r0,#124] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 9 - - "ldr.w r9, [r0,#576] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#580] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#128] \n\t" - "str.w r10, [r0,#132] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 10 - - "ldr.w r9, [r0,#584] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#588] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#136] \n\t" - "str.w r10, [r0,#140] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 11 - - "ldr.w r9, [r0,#592] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#596] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#144] \n\t" - "str.w r10, [r0,#148] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 12 - - "ldr.w r9, [r0,#600] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#604] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#152] \n\t" - "str.w r10, [r0,#156] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 13 - - "ldr.w r9, [r0,#608] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#612] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#160] \n\t" - "str.w r10, [r0,#164] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 14 - - "ldr.w r9, [r0,#616] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#620] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#168] \n\t" - "str.w r10, [r0,#172] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 15 - - "ldr.w r9, [r0,#624] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#628] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#176] \n\t" - "str.w r10, [r0,#180] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 16 - - "ldr.w r9, [r0,#632] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#636] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#184] \n\t" - "str.w r10, [r0,#188] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 17 - - "ldr.w r9, [r0,#640] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#644] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#192] \n\t" - "str.w r10, [r0,#196] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 18 - - "ldr.w r9, [r0,#648] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#652] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#200] \n\t" - "str.w r10, [r0,#204] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 19 - - "ldr.w r9, [r0,#656] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#660] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#208] \n\t" - "str.w r10, [r0,#212] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 20 - - "ldr.w r9, [r0,#664] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#668] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#216] \n\t" - "str.w r10, [r0,#220] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 21 - - "ldr.w r9, [r0,#672] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#676] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#224] \n\t" - "str.w r10, [r0,#228] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 22 - - "ldr.w r9, [r0,#680] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#684] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#232] \n\t" - "str.w r10, [r0,#236] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 23 - - "ldr.w r9, [r0,#688] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#692] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#240] \n\t" - "str.w r10, [r0,#244] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 24 - - "ldr.w r9, [r0,#696] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#700] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#248] \n\t" - "str.w r10, [r0,#252] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 25 - - "ldr.w r9, [r0,#704] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#708] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#256] \n\t" - "str.w r10, [r0,#260] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 26 - - "ldr.w r9, [r0,#712] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#716] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#264] \n\t" - "str.w r10, [r0,#268] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 27 - - "ldr.w r9, [r0,#720] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#724] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#272] \n\t" - "str.w r10, [r0,#276] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 28 - - "ldr.w r9, [r0,#728] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#732] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#280] \n\t" - "str.w r10, [r0,#284] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 29 - - "ldr.w r9, [r0,#736] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#740] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#288] \n\t" - "str.w r10, [r0,#292] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 30 - - "ldr.w r9, [r0,#744] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#748] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#296] \n\t" - "str.w r10, [r0,#300] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 31 - - "ldr.w r9, [r0,#752] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#756] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#304] \n\t" - "str.w r10, [r0,#308] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 32 - - "ldr.w r9, [r0,#760] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#764] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#312] \n\t" - "str.w r10, [r0,#316] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 33 - - "ldr.w r9, [r0,#768] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#772] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#320] \n\t" - "str.w r10, [r0,#324] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 34 - - "ldr.w r9, [r0,#776] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#780] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#328] \n\t" - "str.w r10, [r0,#332] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 35 - - "ldr.w r9, [r0,#784] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#788] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#336] \n\t" - "str.w r10, [r0,#340] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 36 - - "ldr.w r9, [r0,#792] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#796] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#344] \n\t" - "str.w r10, [r0,#348] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 37 - - "ldr.w r9, [r0,#800] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#804] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#352] \n\t" - "str.w r10, [r0,#356] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 38 - - "ldr.w r9, [r0,#808] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#812] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#360] \n\t" - "str.w r10, [r0,#364] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 39 - - "ldr.w r9, [r0,#816] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#820] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#368] \n\t" - "str.w r10, [r0,#372] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 40 - - "ldr.w r9, [r0,#824] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#828] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#376] \n\t" - "str.w r10, [r0,#380] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 41 - - "ldr.w r9, [r0,#832] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#836] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#384] \n\t" - "str.w r10, [r0,#388] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 42 - - "ldr.w r9, [r0,#840] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#844] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#392] \n\t" - "str.w r10, [r0,#396] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 43 - - "ldr.w r9, [r0,#848] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#852] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#400] \n\t" - "str.w r10, [r0,#404] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 44 - - "ldr.w r9, [r0,#856] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#860] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#408] \n\t" - "str.w r10, [r0,#412] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 45 - - "ldr.w r9, [r0,#864] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#868] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#416] \n\t" - "str.w r10, [r0,#420] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 46 - - "ldr.w r9, [r0,#872] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#876] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#424] \n\t" - "str.w r10, [r0,#428] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 47 - - "ldr.w r9, [r0,#880] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#884] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#432] \n\t" - "str.w r10, [r0,#436] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 48 - - "ldr.w r9, [r0,#888] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#892] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#440] \n\t" - "str.w r10, [r0,#444] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 49 - - "ldr.w r9, [r0,#896] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#900] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#448] \n\t" - "str.w r10, [r0,#452] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 50 - - "ldr.w r9, [r0,#904] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#908] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#456] \n\t" - "str.w r10, [r0,#460] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 51 - - "ldr.w r9, [r0,#912] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#916] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#464] \n\t" - "str.w r10, [r0,#468] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 52 - - "ldr.w r9, [r0,#920] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#924] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#472] \n\t" - "str.w r10, [r0,#476] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 53 - - "ldr.w r9, [r0,#928] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#932] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#480] \n\t" - "str.w r10, [r0,#484] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 54 - - "ldr.w r9, [r0,#936] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#940] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#488] \n\t" - "str.w r10, [r0,#492] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 55 - - "ldr.w r9, [r0,#944] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#948] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#496] \n\t" - "str.w r10, [r0,#500] \n\t" - - // permutation - // r1 (k3 k2 k1 k0) k13 k8 k15 k9 - // r2 (k7 k6 k5 k4) k11 k12 k14 k10 - // r3 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r4 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r5, r3 \n\t" // r5(k11 k10 k9 k8 ) - "mov r6, r4 \n\t" // r6(k15 k14 k13 k12) - "mov r3, r1 \n\t" // r3(k3 k2 k1 k0) - "mov r4, r2 \n\t" // r4(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r1,r6, #16 \n\t" // r1(k13 k12 k15 k14) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 k14) - "pkhtb.w r2,r5, r5, asr #16 \n\t" // r2(k11 k10 k11 k10) - "ror.w r5, #8 \n\t" // r5( k8 k11 k10 k8) - "bfi.w r1,r5, #0,#8 \n\t" // r1(k13 k8 k15 k9) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k11 k10) - "ror.w r6,#16 \n\t" // r6(k13 k12 k15 k14) - "bfi.w r2,r6, #8,#8 \n\t" // r2(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r1, r6 \n\t" // r1(k12 k13 k14 k15) - "lsl.w r1, r1, #8 \n\t" // r1(k13 k14 k15 --) - "bfi.w r1,r5, #16,#8 \n\t" // r1(k13 k8 k15 --) - "lsr.w r5, r5, #8 \n\t" // r5( -- k11 k10 k9) - "bfi.w r1,r5, #0, #8 \n\t" // r1(k13 k8 k15 k9) - "rev16.w r2, r5 \n\t" // r2(k11 -- k9 k10) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k11 k12 k9 k10) - "lsr.w r6, r6, #16 \n\t" // r6(-- -- k15 k14) - "bfi.w r2,r6, #8, #8 \n\t" // r2(k11 k12 k14 k10) -#endif - // LFSR(for TK2) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x6 x5 x4 x3 x2 x1 x0 x7^x6) - "and.w r5, r7, r1, lsl #1 \n\t" - "and.w r6, r8, r1, lsr #7 \n\t" - "and.w r1, r8, r1, lsr #5 \n\t" - "eor.w r1, r6 \n\t" - "eor.w r1, r5 \n\t" - - "and.w r5, r7, r2, lsl #1 \n\t" - "and.w r6, r8, r2, lsr #7 \n\t" - "and.w r2, r8, r2, lsr #5 \n\t" - "eor.w r2, r6 \n\t" - "eor.w r2, r5 \n\t" - - // round 56 - - "ldr.w r9, [r0,#952] \n\t" // load TK3 ^ AC(c0 c1) - "ldr.w r10, [r0,#956] \n\t" // load TK3 ^ AC(c0 c1) - - "eor.w r9, r1 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r10, r2 \n\t" // TK2 ^ TK3 ^ AC(c0 c1) - - // round key store((TK2 ^ TK3 ^ AC(c0 c1)) - "str.w r9, [r0,#504] \n\t" - "str.w r10, [r0,#508] \n\t" - - // permutation - - // not need to calculate (not used) - - "ldmia.w sp!, {r4-r10} \n\t" - : - : [roundKeys] "r" (roundKeys) - : "cc"); -} diff --git a/romulus/Implementations/crypto_aead/romulusn1v12/armsrc_NEC/skinny_key_schedule3.c b/romulus/Implementations/crypto_aead/romulusn1v12/armsrc_NEC/skinny_key_schedule3.c deleted file mode 100644 index d8a4f30..0000000 --- a/romulus/Implementations/crypto_aead/romulusn1v12/armsrc_NEC/skinny_key_schedule3.c +++ /dev/null @@ -1,3081 +0,0 @@ -/****************************************************************************** - * Copyright (c) 2020, NEC Corporation. - * - * THIS CODE IS FURNISHED TO YOU "AS IS" WITHOUT WARRANTY OF ANY KIND. - * - *****************************************************************************/ - -/* - * SKINNY-128-384 - * - * AC(c0 c1) ^ TK3 -> store - * ART(TK3) - * - * number of rounds : 56 - */ - -__attribute__((aligned(4))) -void RunEncryptionKeyScheduleTK3(unsigned char *roundKeys, unsigned char *pRC) -{ - // r0 : points to roundKeys(& masterKey) - // r1 : points to RC - // r2-r5 : key state - // r6-r7 : temp use - // r8 : constant(0x7f7f7f7f) - // r9 : constant(0x80808080) - asm volatile( - "stmdb sp!, {r4-r9} \n\t" - "ldr.w r2, [r0,#32] \n\t" // load master key - "ldr.w r3, [r0,#36] \n\t" // load master key - "ldr.w r4, [r0,#40] \n\t" // load master key - "ldr.w r5, [r0,#44] \n\t" // load master key - "mov.w r8, #0x7f7f7f7f \n\t" - "mov.w r9, #0x80808080 \n\t" - - // round 1 - - // AC(c0 c1) - "ldrb.w r6, [r1,#0] \n\t" // load RC - - "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc - "and.w r6, r6, #0xf \n\t" - "eor.w r6, r6, r2 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#512] \n\t" - "str.w r7, [r0,#516] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 2 - - // AC(c0 c1) - "ldrb.w r6, [r1,#1] \n\t" // load RC - - "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc - "and.w r6, r6, #0xf \n\t" - "eor.w r6, r6, r2 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#520] \n\t" - "str.w r7, [r0,#524] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 3 - - // AC(c0 c1) - "ldrb.w r6, [r1,#2] \n\t" // load RC - - "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc - "and.w r6, r6, #0xf \n\t" - "eor.w r6, r6, r2 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#528] \n\t" - "str.w r7, [r0,#532] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 4 - - // AC(c0 c1) - "ldrb.w r6, [r1,#3] \n\t" // load RC - - "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc - "and.w r6, r6, #0xf \n\t" - "eor.w r6, r6, r2 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#536] \n\t" - "str.w r7, [r0,#540] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 5 - - // AC(c0 c1) - "ldrb.w r6, [r1,#4] \n\t" // load RC - - "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc - "and.w r6, r6, #0xf \n\t" - "eor.w r6, r6, r2 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#544] \n\t" - "str.w r7, [r0,#548] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 6 - - // AC(c0 c1) - "ldrb.w r6, [r1,#5] \n\t" // load RC - - "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc - "and.w r6, r6, #0xf \n\t" - "eor.w r6, r6, r2 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#552] \n\t" - "str.w r7, [r0,#556] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 7 - - // AC(c0 c1) - "ldrb.w r6, [r1,#6] \n\t" // load RC - - "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc - "and.w r6, r6, #0xf \n\t" - "eor.w r6, r6, r2 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#560] \n\t" - "str.w r7, [r0,#564] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 8 - - // AC(c0 c1) - "ldrb.w r6, [r1,#7] \n\t" // load RC - - "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc - "and.w r6, r6, #0xf \n\t" - "eor.w r6, r6, r2 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#568] \n\t" - "str.w r7, [r0,#572] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 9 - - // AC(c0 c1) - "ldrb.w r6, [r1,#8] \n\t" // load RC - - "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc - "and.w r6, r6, #0xf \n\t" - "eor.w r6, r6, r2 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#576] \n\t" - "str.w r7, [r0,#580] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 10 - - // AC(c0 c1) - "ldrb.w r6, [r1,#9] \n\t" // load RC - - "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc - "and.w r6, r6, #0xf \n\t" - "eor.w r6, r6, r2 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#584] \n\t" - "str.w r7, [r0,#588] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 11 - - // AC(c0 c1) - "ldrb.w r6, [r1,#10] \n\t" // load RC - - "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc - "and.w r6, r6, #0xf \n\t" - "eor.w r6, r6, r2 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#592] \n\t" - "str.w r7, [r0,#596] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 12 - - // AC(c0 c1) - "ldrb.w r6, [r1,#11] \n\t" // load RC - - "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc - "and.w r6, r6, #0xf \n\t" - "eor.w r6, r6, r2 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#600] \n\t" - "str.w r7, [r0,#604] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 13 - - // AC(c0 c1) - "ldrb.w r6, [r1,#12] \n\t" // load RC - - "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc - "and.w r6, r6, #0xf \n\t" - "eor.w r6, r6, r2 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#608] \n\t" - "str.w r7, [r0,#612] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 14 - - // AC(c0 c1) - "ldrb.w r6, [r1,#13] \n\t" // load RC - - "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc - "and.w r6, r6, #0xf \n\t" - "eor.w r6, r6, r2 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#616] \n\t" - "str.w r7, [r0,#620] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 15 - - // AC(c0 c1) - "ldrb.w r6, [r1,#14] \n\t" // load RC - - "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc - "and.w r6, r6, #0xf \n\t" - "eor.w r6, r6, r2 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#624] \n\t" - "str.w r7, [r0,#628] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 16 - - // AC(c0 c1) - "ldrb.w r6, [r1,#15] \n\t" // load RC - - "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc - "and.w r6, r6, #0xf \n\t" - "eor.w r6, r6, r2 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#632] \n\t" - "str.w r7, [r0,#636] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 17 - - // AC(c0 c1) - "ldrb.w r6, [r1,#16] \n\t" // load RC - - "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc - "and.w r6, r6, #0xf \n\t" - "eor.w r6, r6, r2 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#640] \n\t" - "str.w r7, [r0,#644] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 18 - - // AC(c0 c1) - "ldrb.w r6, [r1,#17] \n\t" // load RC - - "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc - "and.w r6, r6, #0xf \n\t" - "eor.w r6, r6, r2 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#648] \n\t" - "str.w r7, [r0,#652] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 19 - - // AC(c0 c1) - "ldrb.w r6, [r1,#18] \n\t" // load RC - - "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc - "and.w r6, r6, #0xf \n\t" - "eor.w r6, r6, r2 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#656] \n\t" - "str.w r7, [r0,#660] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 20 - - // AC(c0 c1) - "ldrb.w r6, [r1,#19] \n\t" // load RC - - "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc - "and.w r6, r6, #0xf \n\t" - "eor.w r6, r6, r2 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#664] \n\t" - "str.w r7, [r0,#668] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 21 - - // AC(c0 c1) - "ldrb.w r6, [r1,#20] \n\t" // load RC - - "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc - "and.w r6, r6, #0xf \n\t" - "eor.w r6, r6, r2 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#672] \n\t" - "str.w r7, [r0,#676] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 22 - - // AC(c0 c1) - "ldrb.w r6, [r1,#21] \n\t" // load RC - - "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc - "and.w r6, r6, #0xf \n\t" - "eor.w r6, r6, r2 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#680] \n\t" - "str.w r7, [r0,#684] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 23 - - // AC(c0 c1) - "ldrb.w r6, [r1,#22] \n\t" // load RC - - "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc - "and.w r6, r6, #0xf \n\t" - "eor.w r6, r6, r2 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#688] \n\t" - "str.w r7, [r0,#692] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 24 - - // AC(c0 c1) - "ldrb.w r6, [r1,#23] \n\t" // load RC - - "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc - "and.w r6, r6, #0xf \n\t" - "eor.w r6, r6, r2 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#696] \n\t" - "str.w r7, [r0,#700] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 25 - - // AC(c0 c1) - "ldrb.w r6, [r1,#24] \n\t" // load RC - - "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc - "and.w r6, r6, #0xf \n\t" - "eor.w r6, r6, r2 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#704] \n\t" - "str.w r7, [r0,#708] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 26 - - // AC(c0 c1) - "ldrb.w r6, [r1,#25] \n\t" // load RC - - "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc - "and.w r6, r6, #0xf \n\t" - "eor.w r6, r6, r2 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#712] \n\t" - "str.w r7, [r0,#716] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 27 - - // AC(c0 c1) - "ldrb.w r6, [r1,#26] \n\t" // load RC - - "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc - "and.w r6, r6, #0xf \n\t" - "eor.w r6, r6, r2 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#720] \n\t" - "str.w r7, [r0,#724] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 28 - - // AC(c0 c1) - "ldrb.w r6, [r1,#27] \n\t" // load RC - - "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc - "and.w r6, r6, #0xf \n\t" - "eor.w r6, r6, r2 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#728] \n\t" - "str.w r7, [r0,#732] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 29 - - // AC(c0 c1) - "ldrb.w r6, [r1,#28] \n\t" // load RC - - "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc - "and.w r6, r6, #0xf \n\t" - "eor.w r6, r6, r2 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#736] \n\t" - "str.w r7, [r0,#740] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 30 - - // AC(c0 c1) - "ldrb.w r6, [r1,#29] \n\t" // load RC - - "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc - "and.w r6, r6, #0xf \n\t" - "eor.w r6, r6, r2 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#744] \n\t" - "str.w r7, [r0,#748] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 31 - - // AC(c0 c1) - "ldrb.w r6, [r1,#30] \n\t" // load RC - - "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc - "and.w r6, r6, #0xf \n\t" - "eor.w r6, r6, r2 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#752] \n\t" - "str.w r7, [r0,#756] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 32 - - // AC(c0 c1) - "ldrb.w r6, [r1,#31] \n\t" // load RC - - "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc - "and.w r6, r6, #0xf \n\t" - "eor.w r6, r6, r2 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#760] \n\t" - "str.w r7, [r0,#764] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 33 - - // AC(c0 c1) - "ldrb.w r6, [r1,#32] \n\t" // load RC - - "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc - "and.w r6, r6, #0xf \n\t" - "eor.w r6, r6, r2 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#768] \n\t" - "str.w r7, [r0,#772] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 34 - - // AC(c0 c1) - "ldrb.w r6, [r1,#33] \n\t" // load RC - - "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc - "and.w r6, r6, #0xf \n\t" - "eor.w r6, r6, r2 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#776] \n\t" - "str.w r7, [r0,#780] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 35 - - // AC(c0 c1) - "ldrb.w r6, [r1,#34] \n\t" // load RC - - "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc - "and.w r6, r6, #0xf \n\t" - "eor.w r6, r6, r2 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#784] \n\t" - "str.w r7, [r0,#788] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 36 - - // AC(c0 c1) - "ldrb.w r6, [r1,#35] \n\t" // load RC - - "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc - "and.w r6, r6, #0xf \n\t" - "eor.w r6, r6, r2 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#792] \n\t" - "str.w r7, [r0,#796] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 37 - - // AC(c0 c1) - "ldrb.w r6, [r1,#36] \n\t" // load RC - - "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc - "and.w r6, r6, #0xf \n\t" - "eor.w r6, r6, r2 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#800] \n\t" - "str.w r7, [r0,#804] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 38 - - // AC(c0 c1) - "ldrb.w r6, [r1,#37] \n\t" // load RC - - "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc - "and.w r6, r6, #0xf \n\t" - "eor.w r6, r6, r2 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#808] \n\t" - "str.w r7, [r0,#812] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 39 - - // AC(c0 c1) - "ldrb.w r6, [r1,#38] \n\t" // load RC - - "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc - "and.w r6, r6, #0xf \n\t" - "eor.w r6, r6, r2 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#816] \n\t" - "str.w r7, [r0,#820] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 40 - - // AC(c0 c1) - "ldrb.w r6, [r1,#39] \n\t" // load RC - - "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc - "and.w r6, r6, #0xf \n\t" - "eor.w r6, r6, r2 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#824] \n\t" - "str.w r7, [r0,#828] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 41 - - // AC(c0 c1) - "ldrb.w r6, [r1,#40] \n\t" // load RC - - "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc - "and.w r6, r6, #0xf \n\t" - "eor.w r6, r6, r2 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#832] \n\t" - "str.w r7, [r0,#836] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 42 - - // AC(c0 c1) - "ldrb.w r6, [r1,#41] \n\t" // load RC - - "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc - "and.w r6, r6, #0xf \n\t" - "eor.w r6, r6, r2 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#840] \n\t" - "str.w r7, [r0,#844] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 43 - - // AC(c0 c1) - "ldrb.w r6, [r1,#42] \n\t" // load RC - - "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc - "and.w r6, r6, #0xf \n\t" - "eor.w r6, r6, r2 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#848] \n\t" - "str.w r7, [r0,#852] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 44 - - // AC(c0 c1) - "ldrb.w r6, [r1,#43] \n\t" // load RC - - "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc - "and.w r6, r6, #0xf \n\t" - "eor.w r6, r6, r2 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#856] \n\t" - "str.w r7, [r0,#860] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 45 - - // AC(c0 c1) - "ldrb.w r6, [r1,#44] \n\t" // load RC - - "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc - "and.w r6, r6, #0xf \n\t" - "eor.w r6, r6, r2 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#864] \n\t" - "str.w r7, [r0,#868] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 46 - - // AC(c0 c1) - "ldrb.w r6, [r1,#45] \n\t" // load RC - - "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc - "and.w r6, r6, #0xf \n\t" - "eor.w r6, r6, r2 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#872] \n\t" - "str.w r7, [r0,#876] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 47 - - // AC(c0 c1) - "ldrb.w r6, [r1,#46] \n\t" // load RC - - "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc - "and.w r6, r6, #0xf \n\t" - "eor.w r6, r6, r2 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#880] \n\t" - "str.w r7, [r0,#884] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 48 - - // AC(c0 c1) - "ldrb.w r6, [r1,#47] \n\t" // load RC - - "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc - "and.w r6, r6, #0xf \n\t" - "eor.w r6, r6, r2 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#888] \n\t" - "str.w r7, [r0,#892] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 49 - - // AC(c0 c1) - "ldrb.w r6, [r1,#48] \n\t" // load RC - - "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc - "and.w r6, r6, #0xf \n\t" - "eor.w r6, r6, r2 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#896] \n\t" - "str.w r7, [r0,#900] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 50 - - // AC(c0 c1) - "ldrb.w r6, [r1,#49] \n\t" // load RC - - "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc - "and.w r6, r6, #0xf \n\t" - "eor.w r6, r6, r2 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#904] \n\t" - "str.w r7, [r0,#908] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 51 - - // AC(c0 c1) - "ldrb.w r6, [r1,#50] \n\t" // load RC - - "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc - "and.w r6, r6, #0xf \n\t" - "eor.w r6, r6, r2 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#912] \n\t" - "str.w r7, [r0,#916] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 52 - - // AC(c0 c1) - "ldrb.w r6, [r1,#51] \n\t" // load RC - - "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc - "and.w r6, r6, #0xf \n\t" - "eor.w r6, r6, r2 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#920] \n\t" - "str.w r7, [r0,#924] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 53 - - // AC(c0 c1) - "ldrb.w r6, [r1,#52] \n\t" // load RC - - "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc - "and.w r6, r6, #0xf \n\t" - "eor.w r6, r6, r2 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#928] \n\t" - "str.w r7, [r0,#932] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 54 - - // AC(c0 c1) - "ldrb.w r6, [r1,#53] \n\t" // load RC - - "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc - "and.w r6, r6, #0xf \n\t" - "eor.w r6, r6, r2 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#936] \n\t" - "str.w r7, [r0,#940] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 55 - - // AC(c0 c1) - "ldrb.w r6, [r1,#54] \n\t" // load RC - - "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc - "and.w r6, r6, #0xf \n\t" - "eor.w r6, r6, r2 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#944] \n\t" - "str.w r7, [r0,#948] \n\t" - - // permutation - // r2 (k3 k2 k1 k0) k13 k8 k15 k9 - // r3 (k7 k6 k5 k4) k11 k12 k14 k10 - // r4 (k11 k10 k9 k8) ------> k3 k2 k1 k0 - // r5 (k15 k14 k13 k12) k7 k6 k5 k4 - "mov r6, r4 \n\t" // r6(k11 k10 k9 k8 ) - "mov r7, r5 \n\t" // r7(k15 k14 k13 k12) - "mov r4, r2 \n\t" // r4(k3 k2 k1 k0) - "mov r5, r3 \n\t" // r5(k7 k6 k5 k4) -#ifdef STM32F4 // for Cortex-M4 - "ror.w r2,r7, #16 \n\t" // r2(k13 k12 k15 k14) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 k14) - "pkhtb.w r3,r6, r6, asr #16 \n\t" // r3(k11 k10 k11 k10) - "ror.w r6, #8 \n\t" // r6( k8 k11 k10 k8) - "bfi.w r2,r6, #0,#8 \n\t" // r2(k13 k8 k15 k9) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k11 k10) - "ror.w r7,#16 \n\t" // r7(k13 k12 k15 k14) - "bfi.w r3,r7, #8,#8 \n\t" // r3(k11 k12 k14 k10) -#else // for Cortex-M3 - "rev.w r2, r7 \n\t" // r2(k12 k13 k14 k15) - "lsl.w r2, r2, #8 \n\t" // r2(k13 k14 k15 --) - "bfi.w r2,r6, #16,#8 \n\t" // r2(k13 k8 k15 --) - "lsr.w r6, r6, #8 \n\t" // r6( -- k11 k10 k9) - "bfi.w r2,r6, #0, #8 \n\t" // r2(k13 k8 k15 k9) - "rev16.w r3, r6 \n\t" // r3(k11 -- k9 k10) - "bfi.w r3,r7, #16,#8 \n\t" // r3(k11 k12 k9 k10) - "lsr.w r7, r7, #16 \n\t" // r7 (-- -- k15 k14) - "bfi.w r3,r7, #8, #8 \n\t" // r3(k11 k12 k14 k10) -#endif - // LFSR(for TK3) (x7 x6 x5 x4 x3 x2 x1 x0) -> (x0^x6 x7 x6 x5 x4 x2 x2 x1) - "and.w r6, r8, r2, lsr #1 \n\t" - "and.w r7, r9, r2, lsl #7 \n\t" - "and.w r2, r9, r2, lsl #1 \n\t" - "eor.w r2, r7 \n\t" - "eor.w r2, r6 \n\t" - - "and.w r6, r8, r3, lsr #1 \n\t" - "and.w r7, r9, r3, lsl #7 \n\t" - "and.w r3, r9, r3, lsl #1 \n\t" - "eor.w r3, r7 \n\t" - "eor.w r3, r6 \n\t" - - // round 56 - - // AC(c0 c1) - "ldrb.w r6, [r1,#55] \n\t" // load RC - - "eor.w r7, r3, r6, lsr #4 \n\t" // k4^rc - "and.w r6, r6, #0xf \n\t" - "eor.w r6, r6, r2 \n\t" // k0^rc - - // round key store - "str.w r6, [r0,#952] \n\t" - "str.w r7, [r0,#956] \n\t" - - // permutation - - // not need to calculate (not used) - - "ldmia.w sp!, {r4-r9} \n\t" - : - : [roundKeys] "r" (roundKeys), [pRC] "r" (pRC) - : "cc"); -} diff --git a/romulus/Implementations/crypto_aead/romulusn1v12/armsrc_NEC/skinny_main.c b/romulus/Implementations/crypto_aead/romulusn1v12/armsrc_NEC/skinny_main.c deleted file mode 100644 index 217b8a6..0000000 --- a/romulus/Implementations/crypto_aead/romulusn1v12/armsrc_NEC/skinny_main.c +++ /dev/null @@ -1,4687 +0,0 @@ -/****************************************************************************** - * Copyright (c) 2020, NEC Corporation. - * - * THIS CODE IS FURNISHED TO YOU "AS IS" WITHOUT WARRANTY OF ANY KIND. - * - *****************************************************************************/ - -/* - * SKINNY-128-384 - * - * ART(TK1) -> store - * load AC(c0 c1) ^ TK3 ^ TK2 - * load TK1 - * calc AC(c0 c1) ^ TK3 ^ TK2 ^ TK1 -> use at (AC->ART) - * SC->SR->(AC->ART)->MC - * - * number of rounds : 56 - */ - -#include "skinny.h" - -/* - * S-BOX - */ -unsigned char SBOX[512] -= { - // Original - 0x65, 0x4c, 0x6a, 0x42, 0x4b, 0x63, 0x43, 0x6b, 0x55, 0x75, 0x5a, 0x7a, 0x53, 0x73, 0x5b, 0x7b, - 0x35, 0x8c, 0x3a, 0x81, 0x89, 0x33, 0x80, 0x3b, 0x95, 0x25, 0x98, 0x2a, 0x90, 0x23, 0x99, 0x2b, - 0xe5, 0xcc, 0xe8, 0xc1, 0xc9, 0xe0, 0xc0, 0xe9, 0xd5, 0xf5, 0xd8, 0xf8, 0xd0, 0xf0, 0xd9, 0xf9, - 0xa5, 0x1c, 0xa8, 0x12, 0x1b, 0xa0, 0x13, 0xa9, 0x05, 0xb5, 0x0a, 0xb8, 0x03, 0xb0, 0x0b, 0xb9, - 0x32, 0x88, 0x3c, 0x85, 0x8d, 0x34, 0x84, 0x3d, 0x91, 0x22, 0x9c, 0x2c, 0x94, 0x24, 0x9d, 0x2d, - 0x62, 0x4a, 0x6c, 0x45, 0x4d, 0x64, 0x44, 0x6d, 0x52, 0x72, 0x5c, 0x7c, 0x54, 0x74, 0x5d, 0x7d, - 0xa1, 0x1a, 0xac, 0x15, 0x1d, 0xa4, 0x14, 0xad, 0x02, 0xb1, 0x0c, 0xbc, 0x04, 0xb4, 0x0d, 0xbd, - 0xe1, 0xc8, 0xec, 0xc5, 0xcd, 0xe4, 0xc4, 0xed, 0xd1, 0xf1, 0xdc, 0xfc, 0xd4, 0xf4, 0xdd, 0xfd, - 0x36, 0x8e, 0x38, 0x82, 0x8b, 0x30, 0x83, 0x39, 0x96, 0x26, 0x9a, 0x28, 0x93, 0x20, 0x9b, 0x29, - 0x66, 0x4e, 0x68, 0x41, 0x49, 0x60, 0x40, 0x69, 0x56, 0x76, 0x58, 0x78, 0x50, 0x70, 0x59, 0x79, - 0xa6, 0x1e, 0xaa, 0x11, 0x19, 0xa3, 0x10, 0xab, 0x06, 0xb6, 0x08, 0xba, 0x00, 0xb3, 0x09, 0xbb, - 0xe6, 0xce, 0xea, 0xc2, 0xcb, 0xe3, 0xc3, 0xeb, 0xd6, 0xf6, 0xda, 0xfa, 0xd3, 0xf3, 0xdb, 0xfb, - 0x31, 0x8a, 0x3e, 0x86, 0x8f, 0x37, 0x87, 0x3f, 0x92, 0x21, 0x9e, 0x2e, 0x97, 0x27, 0x9f, 0x2f, - 0x61, 0x48, 0x6e, 0x46, 0x4f, 0x67, 0x47, 0x6f, 0x51, 0x71, 0x5e, 0x7e, 0x57, 0x77, 0x5f, 0x7f, - 0xa2, 0x18, 0xae, 0x16, 0x1f, 0xa7, 0x17, 0xaf, 0x01, 0xb2, 0x0e, 0xbe, 0x07, 0xb7, 0x0f, 0xbf, - 0xe2, 0xca, 0xee, 0xc6, 0xcf, 0xe7, 0xc7, 0xef, 0xd2, 0xf2, 0xde, 0xfe, 0xd7, 0xf7, 0xdf, 0xff, - - // Original ^ c2(0x02) - 0x67, 0x4e, 0x68, 0x40, 0x49, 0x61, 0x41, 0x69, 0x57, 0x77, 0x58, 0x78, 0x51, 0x71, 0x59, 0x79, - 0x37, 0x8e, 0x38, 0x83, 0x8b, 0x31, 0x82, 0x39, 0x97, 0x27, 0x9a, 0x28, 0x92, 0x21, 0x9b, 0x29, - 0xe7, 0xce, 0xea, 0xc3, 0xcb, 0xe2, 0xc2, 0xeb, 0xd7, 0xf7, 0xda, 0xfa, 0xd2, 0xf2, 0xdb, 0xfb, - 0xa7, 0x1e, 0xaa, 0x10, 0x19, 0xa2, 0x11, 0xab, 0x07, 0xb7, 0x08, 0xba, 0x01, 0xb2, 0x09, 0xbb, - 0x30, 0x8a, 0x3e, 0x87, 0x8f, 0x36, 0x86, 0x3f, 0x93, 0x20, 0x9e, 0x2e, 0x96, 0x26, 0x9f, 0x2f, - 0x60, 0x48, 0x6e, 0x47, 0x4f, 0x66, 0x46, 0x6f, 0x50, 0x70, 0x5e, 0x7e, 0x56, 0x76, 0x5f, 0x7f, - 0xa3, 0x18, 0xae, 0x17, 0x1f, 0xa6, 0x16, 0xaf, 0x00, 0xb3, 0x0e, 0xbe, 0x06, 0xb6, 0x0f, 0xbf, - 0xe3, 0xca, 0xee, 0xc7, 0xcf, 0xe6, 0xc6, 0xef, 0xd3, 0xf3, 0xde, 0xfe, 0xd6, 0xf6, 0xdf, 0xff, - 0x34, 0x8c, 0x3a, 0x80, 0x89, 0x32, 0x81, 0x3b, 0x94, 0x24, 0x98, 0x2a, 0x91, 0x22, 0x99, 0x2b, - 0x64, 0x4c, 0x6a, 0x43, 0x4b, 0x62, 0x42, 0x6b, 0x54, 0x74, 0x5a, 0x7a, 0x52, 0x72, 0x5b, 0x7b, - 0xa4, 0x1c, 0xa8, 0x13, 0x1b, 0xa1, 0x12, 0xa9, 0x04, 0xb4, 0x0a, 0xb8, 0x02, 0xb1, 0x0b, 0xb9, - 0xe4, 0xcc, 0xe8, 0xc0, 0xc9, 0xe1, 0xc1, 0xe9, 0xd4, 0xf4, 0xd8, 0xf8, 0xd1, 0xf1, 0xd9, 0xf9, - 0x33, 0x88, 0x3c, 0x84, 0x8d, 0x35, 0x85, 0x3d, 0x90, 0x23, 0x9c, 0x2c, 0x95, 0x25, 0x9d, 0x2d, - 0x63, 0x4a, 0x6c, 0x44, 0x4d, 0x65, 0x45, 0x6d, 0x53, 0x73, 0x5c, 0x7c, 0x55, 0x75, 0x5d, 0x7d, - 0xa0, 0x1a, 0xac, 0x14, 0x1d, 0xa5, 0x15, 0xad, 0x03, 0xb0, 0x0c, 0xbc, 0x05, 0xb5, 0x0d, 0xbd, - 0xe0, 0xc8, 0xec, 0xc4, 0xcd, 0xe5, 0xc5, 0xed, 0xd0, 0xf0, 0xdc, 0xfc, 0xd5, 0xf5, 0xdd, 0xfd, -}; - -/* - * Round Constants - */ -unsigned char RC[56] -= { - 0x01, 0x03, 0x07, 0x0F, 0x1F, 0x3E, 0x3D, 0x3B, - 0x37, 0x2F, 0x1E, 0x3C, 0x39, 0x33, 0x27, 0x0E, - 0x1D, 0x3A, 0x35, 0x2B, 0x16, 0x2C, 0x18, 0x30, - 0x21, 0x02, 0x05, 0x0B, 0x17, 0x2E, 0x1C, 0x38, - 0x31, 0x23, 0x06, 0x0D, 0x1B, 0x36, 0x2D, 0x1A, - 0x34, 0x29, 0x12, 0x24, 0x08, 0x11, 0x22, 0x04, - 0x09, 0x13, 0x26, 0x0c, 0x19, 0x32, 0x25, 0x0a,}; - -extern void Encrypt(unsigned char *block, unsigned char *roundKeys, unsigned char *pSBOX) __attribute__((noinline)); -extern void RunEncryptionKeyScheduleTK2(unsigned char *roundKeys) __attribute__((noinline)); -extern void RunEncryptionKeyScheduleTK3(unsigned char *roundKeys, unsigned char *pRC) __attribute__((noinline)); - -void skinny_128_384_enc123_12 (unsigned char* input, skinny_ctrl* pskinny_ctrl, unsigned char* CNT, unsigned char* T, const unsigned char* K) -{ - *((unsigned int *)&pskinny_ctrl->roundKeys[0] ) = *((unsigned int *)&CNT[0]); - *((unsigned int *)&pskinny_ctrl->roundKeys[4] ) = *((unsigned int *)&CNT[4]); - *((unsigned int *)&pskinny_ctrl->roundKeys[16]) = *((unsigned int *)&T[0]); - *((unsigned int *)&pskinny_ctrl->roundKeys[20]) = *((unsigned int *)&T[4]); - *((unsigned int *)&pskinny_ctrl->roundKeys[24]) = *((unsigned int *)&T[8]); - *((unsigned int *)&pskinny_ctrl->roundKeys[28]) = *((unsigned int *)&T[12]); - *((unsigned int *)&pskinny_ctrl->roundKeys[32]) = *((unsigned int *)&K[0]); - *((unsigned int *)&pskinny_ctrl->roundKeys[36]) = *((unsigned int *)&K[4]); - *((unsigned int *)&pskinny_ctrl->roundKeys[40]) = *((unsigned int *)&K[8]); - *((unsigned int *)&pskinny_ctrl->roundKeys[44]) = *((unsigned int *)&K[12]); - - RunEncryptionKeyScheduleTK3(pskinny_ctrl->roundKeys, RC); - RunEncryptionKeyScheduleTK2(pskinny_ctrl->roundKeys); - Encrypt(input, pskinny_ctrl->roundKeys, SBOX); - - pskinny_ctrl->func_skinny_128_384_enc = skinny_128_384_enc12_12; -} - -void skinny_128_384_enc12_12 (unsigned char* input, skinny_ctrl* pskinny_ctrl, unsigned char* CNT, unsigned char* T, const unsigned char* K) -{ - (void)K; - - *((unsigned int *)&pskinny_ctrl->roundKeys[0] ) = *((unsigned int *)&CNT[0]); - *((unsigned int *)&pskinny_ctrl->roundKeys[4] ) = *((unsigned int *)&CNT[4]); - *((unsigned int *)&pskinny_ctrl->roundKeys[16]) = *((unsigned int *)&T[0]); - *((unsigned int *)&pskinny_ctrl->roundKeys[20]) = *((unsigned int *)&T[4]); - *((unsigned int *)&pskinny_ctrl->roundKeys[24]) = *((unsigned int *)&T[8]); - *((unsigned int *)&pskinny_ctrl->roundKeys[28]) = *((unsigned int *)&T[12]); - - RunEncryptionKeyScheduleTK2(pskinny_ctrl->roundKeys); - Encrypt(input, pskinny_ctrl->roundKeys, SBOX); -} - -extern void skinny_128_384_enc1_1 (unsigned char* input, skinny_ctrl* pskinny_ctrl, unsigned char* CNT, unsigned char* T, const unsigned char* K) -{ - (void)T; - (void)K; - - *((unsigned int *)&pskinny_ctrl->roundKeys[0] ) = *((unsigned int *)&CNT[0]); - *((unsigned int *)&pskinny_ctrl->roundKeys[4] ) = *((unsigned int *)&CNT[4]); - - Encrypt(input, pskinny_ctrl->roundKeys, SBOX); -} - -__attribute__((aligned(4))) -void Encrypt(unsigned char *block, unsigned char *roundKeys, unsigned char *pSBOX) -{ - // r0 : ponits to plaintext - // r1 : points to roundKeys(& masterKey) - // r2 : points to SBOX - // r3-r6 : cipher state - // r7-r12: temp use - // r14 : temp use - asm volatile( - "stmdb sp!, {r4-r12,r14} \n\t" - "stmdb.w sp!, {r0} \n\t" // push store pointer - -// ART(TK1) - - "ldm.w r1, {r3-r4} \n\t" // load master key - - // round 1-2 - -// // round key store(do not need) -// "str.w r3, [r1,#0] \n\t" -// "str.w r4, [r1,#4] \n\t" - - // premutation - - // r3 ( k3 k2 k1 k0) --- --- --- --- - // r4 ( k7 k6 k5 k4) --- --- --- --- - // r5 (--- --- --- ---) -----> k5 k0 k7 k1 - // r6 (--- --- --- ---) k3 k4 k6 k2 -#ifdef STM32F4 // for Cortex-M4 - "ror.w r5,r4, #16 \n\t" // r5( k5 k4 k7 k6) - "bfi.w r5,r3, #16,#8 \n\t" // r5( k5 k0 k7 k6) - "pkhtb.w r6,r3, r3, asr #16 \n\t" // r6( k3 k2 k3 k2) - "ror.w r3, #8 \n\t" // r3( k0 k3 k2 k1) - "bfi.w r5,r3, #0,#8 \n\t" // r5( k5 k4 k2 k6) - "bfi.w r6,r4, #16,#8 \n\t" // r6( k3 k4 k3 k2) - "ror.w r4,#16 \n\t" // r4( k5 k4 k7 k6) - "bfi.w r6,r4, #8,#8 \n\t" // r6( k3 k4 k6 k2) -#else // for Cortex-M3 - "rev.w r5, r4 \n\t" // r5( k4 k5 k6 k7) - "lsl.w r5, r5, #8 \n\t" // r5( k5 k6 k7 ---) - "bfi.w r5,r3, #16,#8 \n\t" // r5( k5 k0 k7 ---) - "lsr.w r3, r3, #8 \n\t" // r3(--- k3 k2 k1) - "bfi.w r5,r3, #0, #8 \n\t" // r5( k5 k0 k7 k1) - "rev16.w r6, r3 \n\t" // r6( k3 --- k1 k2) - "bfi.w r6,r4, #16,#8 \n\t" // r6( k3 k4 k1 k2) - "lsr.w r4, r4, #16 \n\t" // r4(-- --- k7 k6) - "bfi.w r6,r4, #8, #8 \n\t" // r6( k3 k4 k6 k2) -#endif - // round 3-4 - - // round key store - "str.w r5, [r1,#8] \n\t" - "str.w r6, [r1,#12] \n\t" - - // premutation - - // r3 (--- --- --- ---) k5 k0 k7 k1 - // r4 (--- --- --- ---) k3 k4 k6 k2 - // r5 ( k3 k2 k1 k0) -----> --- --- --- --- - // r6 ( k7 k6 k5 k4) --- --- --- --- -#ifdef STM32F4 // for Cortex-M4 - "ror.w r3,r6, #16 \n\t" // r3( k5 k4 k7 k6) - "bfi.w r3,r5, #16,#8 \n\t" // r3( k5 k0 k7 k6) - "pkhtb.w r4,r5, r5, asr #16 \n\t" // r4( k3 k2 k3 k2) - "ror.w r5, #8 \n\t" // r5( k0 k3 k2 k1) - "bfi.w r3,r5, #0,#8 \n\t" // r3( k5 k4 k2 k6) - "bfi.w r4,r6, #16,#8 \n\t" // r4( k3 k4 k3 k2) - "ror.w r6,#16 \n\t" // r6( k5 k4 k7 k6) - "bfi.w r4,r6, #8,#8 \n\t" // r4( k3 k4 k6 k2) -#else // for Cortex-M3 - "rev.w r3, r6 \n\t" // r3( k4 k5 k6 k7) - "lsl.w r3, r3, #8 \n\t" // r3( k5 k6 k7 ---) - "bfi.w r3,r5, #16,#8 \n\t" // r3( k5 k0 k7 ---) - "lsr.w r5, r5, #8 \n\t" // r5(--- k3 k2 k1) - "bfi.w r3,r5, #0, #8 \n\t" // r3( k5 k0 k7 k1) - "rev16.w r4, r5 \n\t" // r4( k3 --- k1 k2) - "bfi.w r4,r6, #16,#8 \n\t" // r4( k3 k4 k1 k2) - "lsr.w r6, r6, #16 \n\t" // r6(-- --- k7 k6) - "bfi.w r4,r6, #8, #8 \n\t" // r4( k3 k4 k6 k2) -#endif - - // round 5-6 - - // round key store - "str.w r3, [r1,#16] \n\t" - "str.w r4, [r1,#20] \n\t" - - // premutation - - // r3 ( k3 k2 k1 k0) --- --- --- --- - // r4 ( k7 k6 k5 k4) --- --- --- --- - // r5 (--- --- --- ---) -----> k5 k0 k7 k1 - // r6 (--- --- --- ---) k3 k4 k6 k2 -#ifdef STM32F4 // for Cortex-M4 - "ror.w r5,r4, #16 \n\t" // r5( k5 k4 k7 k6) - "bfi.w r5,r3, #16,#8 \n\t" // r5( k5 k0 k7 k6) - "pkhtb.w r6,r3, r3, asr #16 \n\t" // r6( k3 k2 k3 k2) - "ror.w r3, #8 \n\t" // r3( k0 k3 k2 k1) - "bfi.w r5,r3, #0,#8 \n\t" // r5( k5 k4 k2 k6) - "bfi.w r6,r4, #16,#8 \n\t" // r6( k3 k4 k3 k2) - "ror.w r4,#16 \n\t" // r4( k5 k4 k7 k6) - "bfi.w r6,r4, #8,#8 \n\t" // r6( k3 k4 k6 k2) -#else // for Cortex-M3 - "rev.w r5, r4 \n\t" // r5( k4 k5 k6 k7) - "lsl.w r5, r5, #8 \n\t" // r5( k5 k6 k7 ---) - "bfi.w r5,r3, #16,#8 \n\t" // r5( k5 k0 k7 ---) - "lsr.w r3, r3, #8 \n\t" // r3(--- k3 k2 k1) - "bfi.w r5,r3, #0, #8 \n\t" // r5( k5 k0 k7 k1) - "rev16.w r6, r3 \n\t" // r6( k3 --- k1 k2) - "bfi.w r6,r4, #16,#8 \n\t" // r6( k3 k4 k1 k2) - "lsr.w r4, r4, #16 \n\t" // r4(-- --- k7 k6) - "bfi.w r6,r4, #8, #8 \n\t" // r6( k3 k4 k6 k2) -#endif - // round 7-8 - - // round key store - "str.w r5, [r1,#24] \n\t" - "str.w r6, [r1,#28] \n\t" - - // premutation - - // r3 (--- --- --- ---) k5 k0 k7 k1 - // r4 (--- --- --- ---) k3 k4 k6 k2 - // r5 ( k3 k2 k1 k0) -----> --- --- --- --- - // r6 ( k7 k6 k5 k4) --- --- --- --- -#ifdef STM32F4 // for Cortex-M4 - "ror.w r3,r6, #16 \n\t" // r3( k5 k4 k7 k6) - "bfi.w r3,r5, #16,#8 \n\t" // r3( k5 k0 k7 k6) - "pkhtb.w r4,r5, r5, asr #16 \n\t" // r4( k3 k2 k3 k2) - "ror.w r5, #8 \n\t" // r5( k0 k3 k2 k1) - "bfi.w r3,r5, #0,#8 \n\t" // r3( k5 k4 k2 k6) - "bfi.w r4,r6, #16,#8 \n\t" // r4( k3 k4 k3 k2) - "ror.w r6,#16 \n\t" // r6( k5 k4 k7 k6) - "bfi.w r4,r6, #8,#8 \n\t" // r4( k3 k4 k6 k2) -#else // for Cortex-M3 - "rev.w r3, r6 \n\t" // r3( k4 k5 k6 k7) - "lsl.w r3, r3, #8 \n\t" // r3( k5 k6 k7 ---) - "bfi.w r3,r5, #16,#8 \n\t" // r3( k5 k0 k7 ---) - "lsr.w r5, r5, #8 \n\t" // r5(--- k3 k2 k1) - "bfi.w r3,r5, #0, #8 \n\t" // r3( k5 k0 k7 k1) - "rev16.w r4, r5 \n\t" // r4( k3 --- k1 k2) - "bfi.w r4,r6, #16,#8 \n\t" // r4( k3 k4 k1 k2) - "lsr.w r6, r6, #16 \n\t" // r6(-- --- k7 k6) - "bfi.w r4,r6, #8, #8 \n\t" // r4( k3 k4 k6 k2) -#endif - - // round 9-10 - - // round key store - "str.w r3, [r1,#32] \n\t" - "str.w r4, [r1,#36] \n\t" - - // premutation - - // r3 ( k3 k2 k1 k0) --- --- --- --- - // r4 ( k7 k6 k5 k4) --- --- --- --- - // r5 (--- --- --- ---) -----> k5 k0 k7 k1 - // r6 (--- --- --- ---) k3 k4 k6 k2 -#ifdef STM32F4 // for Cortex-M4 - "ror.w r5,r4, #16 \n\t" // r5( k5 k4 k7 k6) - "bfi.w r5,r3, #16,#8 \n\t" // r5( k5 k0 k7 k6) - "pkhtb.w r6,r3, r3, asr #16 \n\t" // r6( k3 k2 k3 k2) - "ror.w r3, #8 \n\t" // r3( k0 k3 k2 k1) - "bfi.w r5,r3, #0,#8 \n\t" // r5( k5 k4 k2 k6) - "bfi.w r6,r4, #16,#8 \n\t" // r6( k3 k4 k3 k2) - "ror.w r4,#16 \n\t" // r4( k5 k4 k7 k6) - "bfi.w r6,r4, #8,#8 \n\t" // r6( k3 k4 k6 k2) -#else // for Cortex-M3 - "rev.w r5, r4 \n\t" // r5( k4 k5 k6 k7) - "lsl.w r5, r5, #8 \n\t" // r5( k5 k6 k7 ---) - "bfi.w r5,r3, #16,#8 \n\t" // r5( k5 k0 k7 ---) - "lsr.w r3, r3, #8 \n\t" // r3(--- k3 k2 k1) - "bfi.w r5,r3, #0, #8 \n\t" // r5( k5 k0 k7 k1) - "rev16.w r6, r3 \n\t" // r6( k3 --- k1 k2) - "bfi.w r6,r4, #16,#8 \n\t" // r6( k3 k4 k1 k2) - "lsr.w r4, r4, #16 \n\t" // r4(-- --- k7 k6) - "bfi.w r6,r4, #8, #8 \n\t" // r6( k3 k4 k6 k2) -#endif - // round 11-12 - - // round key store - "str.w r5, [r1,#40] \n\t" - "str.w r6, [r1,#44] \n\t" - - // premutation - - // r3 (--- --- --- ---) k5 k0 k7 k1 - // r4 (--- --- --- ---) k3 k4 k6 k2 - // r5 ( k3 k2 k1 k0) -----> --- --- --- --- - // r6 ( k7 k6 k5 k4) --- --- --- --- -#ifdef STM32F4 // for Cortex-M4 - "ror.w r3,r6, #16 \n\t" // r3( k5 k4 k7 k6) - "bfi.w r3,r5, #16,#8 \n\t" // r3( k5 k0 k7 k6) - "pkhtb.w r4,r5, r5, asr #16 \n\t" // r4( k3 k2 k3 k2) - "ror.w r5, #8 \n\t" // r5( k0 k3 k2 k1) - "bfi.w r3,r5, #0,#8 \n\t" // r3( k5 k4 k2 k6) - "bfi.w r4,r6, #16,#8 \n\t" // r4( k3 k4 k3 k2) - "ror.w r6,#16 \n\t" // r6( k5 k4 k7 k6) - "bfi.w r4,r6, #8,#8 \n\t" // r4( k3 k4 k6 k2) -#else // for Cortex-M3 - "rev.w r3, r6 \n\t" // r3( k4 k5 k6 k7) - "lsl.w r3, r3, #8 \n\t" // r3( k5 k6 k7 ---) - "bfi.w r3,r5, #16,#8 \n\t" // r3( k5 k0 k7 ---) - "lsr.w r5, r5, #8 \n\t" // r5(--- k3 k2 k1) - "bfi.w r3,r5, #0, #8 \n\t" // r3( k5 k0 k7 k1) - "rev16.w r4, r5 \n\t" // r4( k3 --- k1 k2) - "bfi.w r4,r6, #16,#8 \n\t" // r4( k3 k4 k1 k2) - "lsr.w r6, r6, #16 \n\t" // r6(-- --- k7 k6) - "bfi.w r4,r6, #8, #8 \n\t" // r4( k3 k4 k6 k2) -#endif - - // round 13-14 - - // round key store - "str.w r3, [r1,#48] \n\t" - "str.w r4, [r1,#52] \n\t" - - // premutation - - // r3 ( k3 k2 k1 k0) --- --- --- --- - // r4 ( k7 k6 k5 k4) --- --- --- --- - // r5 (--- --- --- ---) -----> k5 k0 k7 k1 - // r6 (--- --- --- ---) k3 k4 k6 k2 -#ifdef STM32F4 // for Cortex-M4 - "ror.w r5,r4, #16 \n\t" // r5( k5 k4 k7 k6) - "bfi.w r5,r3, #16,#8 \n\t" // r5( k5 k0 k7 k6) - "pkhtb.w r6,r3, r3, asr #16 \n\t" // r6( k3 k2 k3 k2) - "ror.w r3, #8 \n\t" // r3( k0 k3 k2 k1) - "bfi.w r5,r3, #0,#8 \n\t" // r5( k5 k4 k2 k6) - "bfi.w r6,r4, #16,#8 \n\t" // r6( k3 k4 k3 k2) - "ror.w r4,#16 \n\t" // r4( k5 k4 k7 k6) - "bfi.w r6,r4, #8,#8 \n\t" // r6( k3 k4 k6 k2) -#else // for Cortex-M3 - "rev.w r5, r4 \n\t" // r5( k4 k5 k6 k7) - "lsl.w r5, r5, #8 \n\t" // r5( k5 k6 k7 ---) - "bfi.w r5,r3, #16,#8 \n\t" // r5( k5 k0 k7 ---) - "lsr.w r3, r3, #8 \n\t" // r3(--- k3 k2 k1) - "bfi.w r5,r3, #0, #8 \n\t" // r5( k5 k0 k7 k1) - "rev16.w r6, r3 \n\t" // r6( k3 --- k1 k2) - "bfi.w r6,r4, #16,#8 \n\t" // r6( k3 k4 k1 k2) - "lsr.w r4, r4, #16 \n\t" // r4(-- --- k7 k6) - "bfi.w r6,r4, #8, #8 \n\t" // r6( k3 k4 k6 k2) -#endif - // round 15-16 - - // round key store - "str.w r5, [r1,#56] \n\t" - "str.w r6, [r1,#60] \n\t" - - // premutation - - // not need to calculate (not used) - -// SC->(AC->ART)->SR->MC - - "add.w r14, r2, #256 \n\t" // point to SBOX ^ c2(0x02) - - "ldm.w r0, {r3-r6} \n\t" // load plaintext - // r0 now free to overwrite - - // round 1 - - // SubCell+ShiftRow+AC(c2) - // r3 (s3 s2 s1 s0) - // r4 (s7 s6 s5 s4) - // r5 (s11 s10 s9 s8) - // r6 (s15 s14 s13 s12) - - // 1st-2nd line - // r3(s3 s2 s1 s0) - "uxtb.w r9, r3, ror #24 \n\t" // s3 - "uxtb.w r8, r3, ror #16 \n\t" // s2 - "uxtb.w r7, r3, ror #8 \n\t" // s1 - "uxtb.w r3, r3 \n\t" // s0 - // r4(s6 s5 s4 s7) - "uxtb.w r12, r4, ror #16 \n\t" // s6 - "uxtb.w r11, r4, ror #8 \n\t" // s5 - "uxtb.w r10, r4 \n\t" // s4 - "uxtb.w r4, r4, ror #24 \n\t" // s7 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "eor.w r3, r3, r7, lsl #8 \n\t" - "eor.w r3, r3, r8, lsl #16 \n\t" - "eor.w r3, r3, r9, lsl #24 \n\t" - "eor.w r4, r4, r10, lsl #8 \n\t" - "eor.w r4, r4, r11, lsl #16 \n\t" - "eor.w r4, r4, r12, lsl #24 \n\t" - - // 3rd-4th line - // r5(s9 s8 s11 s10) - "uxtb.w r9, r5, ror #8 \n\t" // s9 - "uxtb.w r8, r5 \n\t" // s8 - "uxtb.w r7, r5, ror #24 \n\t" // s11 - "uxtb.w r5, r5, ror #16 \n\t" // s10 - // r6(s12 s15 s14 s13) - "uxtb.w r12, r6 \n\t" // s12 - "uxtb.w r11, r6, ror #24 \n\t" // s15 - "uxtb.w r10, r6, ror #16 \n\t" // s14 - "uxtb.w r6, r6, ror #8 \n\t" // s13 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "eor.w r5, r5, r7, lsl #8 \n\t" - "eor.w r5, r5, r8, lsl #16 \n\t" - "eor.w r5, r5, r9, lsl #24 \n\t" - "eor.w r6, r6, r10, lsl #8 \n\t" - "eor.w r6, r6, r11, lsl #16 \n\t" - "eor.w r6, r6, r12, lsl #24 \n\t" - - // AddRoundKey and AddRoundConst(from roundKeys) - "ldr.w r9, [r1,#0] \n\t" // load TK1 - "ldr.w r10, [r1,#4] \n\t" // load TK1 - "ldr.w r11, [r1,#64] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "ldr.w r12, [r1,#68] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - - "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) - "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) - // r8( s9 s8 s11 s10) - // r6(s12 s14 s14 s13) - - // MixColumn - "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 - "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 - "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 - // r8 ----------------> r8 - - // round 2 - - // SubCell+ShiftRow+AC(c2) - // r7 (s3 s2 s1 s0) - // r8 (s7 s6 s5 s4) - // r9 (s11 s10 s9 s8) - // r10(s15 s14 s13 s12) - - // 1st-2nd line - // r7(s3 s2 s1 s0) - "uxtb.w r5, r7, ror #24 \n\t" // s3 - "uxtb.w r4, r7, ror #16 \n\t" // s2 - "uxtb.w r3, r7, ror #8 \n\t" // s1 - "uxtb.w r7, r7 \n\t" // s0 - // r8(s6 s5 s4 s7) - "uxtb.w r12, r8, ror #16 \n\t" // s6 - "uxtb.w r11, r8, ror #8 \n\t" // s5 - "uxtb.w r6, r8 \n\t" // s4 - "uxtb.w r8, r8, ror #24 \n\t" // s7 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldr.w r0, [r1,#72] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r7, r7, r3, lsl #8 \n\t" - "eor.w r7, r7, r4, lsl #16 \n\t" - "eor.w r7, r7, r5, lsl #24 \n\t" - "eor.w r8, r8, r6, lsl #8 \n\t" - "eor.w r8, r8, r11, lsl #16 \n\t" - "eor.w r8, r8, r12, lsl #24 \n\t" - "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) - - // 3rd-4th line - // r9(s9 s8 s11 s10) - "uxtb.w r5, r9, ror #8 \n\t" // s9 - "uxtb.w r7, r9 \n\t" // s8 - "uxtb.w r3, r9, ror #24 \n\t" // s11 - "uxtb.w r9, r9, ror #16 \n\t" // s10 - // r10(s12 s15 s14 s13) - "uxtb.w r12, r10 \n\t" // s12 - "uxtb.w r11, r10, ror #24 \n\t" // s15 - "uxtb.w r6, r10, ror #16 \n\t" // s14 - "uxtb.w r10, r10, ror #8 \n\t" // s13 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldr.w r0, [r1,#76] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r9, r9, r3, lsl #8 \n\t" - "eor.w r9, r9, r7, lsl #16 \n\t" - "eor.w r9, r9, r5, lsl #24 \n\t" - "eor.w r10, r10, r6, lsl #8 \n\t" - "eor.w r10, r10, r11, lsl #16 \n\t" - "eor.w r10, r10, r12, lsl #24 \n\t" - "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) - - // AddRoundKey and AddRoundConst(from roundKeys) - - // r9( s9 s8 s11 s10) - // r10(s12 s14 s14 s13) - - // MixColumn - "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 - "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 - "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 - // r4 ----------------> r4 - // round 3 - - // SubCell+ShiftRow+AC(c2) - // r3 (s3 s2 s1 s0) - // r4 (s7 s6 s5 s4) - // r5 (s11 s10 s9 s8) - // r6 (s15 s14 s13 s12) - - // 1st-2nd line - // r3(s3 s2 s1 s0) - "uxtb.w r9, r3, ror #24 \n\t" // s3 - "uxtb.w r8, r3, ror #16 \n\t" // s2 - "uxtb.w r7, r3, ror #8 \n\t" // s1 - "uxtb.w r3, r3 \n\t" // s0 - // r4(s6 s5 s4 s7) - "uxtb.w r12, r4, ror #16 \n\t" // s6 - "uxtb.w r11, r4, ror #8 \n\t" // s5 - "uxtb.w r10, r4 \n\t" // s4 - "uxtb.w r4, r4, ror #24 \n\t" // s7 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "eor.w r3, r3, r7, lsl #8 \n\t" - "eor.w r3, r3, r8, lsl #16 \n\t" - "eor.w r3, r3, r9, lsl #24 \n\t" - "eor.w r4, r4, r10, lsl #8 \n\t" - "eor.w r4, r4, r11, lsl #16 \n\t" - "eor.w r4, r4, r12, lsl #24 \n\t" - - // 3rd-4th line - // r5(s9 s8 s11 s10) - "uxtb.w r9, r5, ror #8 \n\t" // s9 - "uxtb.w r8, r5 \n\t" // s8 - "uxtb.w r7, r5, ror #24 \n\t" // s11 - "uxtb.w r5, r5, ror #16 \n\t" // s10 - // r6(s12 s15 s14 s13) - "uxtb.w r12, r6 \n\t" // s12 - "uxtb.w r11, r6, ror #24 \n\t" // s15 - "uxtb.w r10, r6, ror #16 \n\t" // s14 - "uxtb.w r6, r6, ror #8 \n\t" // s13 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "eor.w r5, r5, r7, lsl #8 \n\t" - "eor.w r5, r5, r8, lsl #16 \n\t" - "eor.w r5, r5, r9, lsl #24 \n\t" - "eor.w r6, r6, r10, lsl #8 \n\t" - "eor.w r6, r6, r11, lsl #16 \n\t" - "eor.w r6, r6, r12, lsl #24 \n\t" - - // AddRoundKey and AddRoundConst(from roundKeys) - "ldr.w r9, [r1,#8] \n\t" // load TK1 - "ldr.w r10, [r1,#12] \n\t" // load TK1 - "ldr.w r11, [r1,#80] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "ldr.w r12, [r1,#84] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - - "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) - "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) - // r8( s9 s8 s11 s10) - // r6(s12 s14 s14 s13) - - // MixColumn - "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 - "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 - "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 - // r8 ----------------> r8 - - // round 4 - - // SubCell+ShiftRow+AC(c2) - // r7 (s3 s2 s1 s0) - // r8 (s7 s6 s5 s4) - // r9 (s11 s10 s9 s8) - // r10(s15 s14 s13 s12) - - // 1st-2nd line - // r7(s3 s2 s1 s0) - "uxtb.w r5, r7, ror #24 \n\t" // s3 - "uxtb.w r4, r7, ror #16 \n\t" // s2 - "uxtb.w r3, r7, ror #8 \n\t" // s1 - "uxtb.w r7, r7 \n\t" // s0 - // r8(s6 s5 s4 s7) - "uxtb.w r12, r8, ror #16 \n\t" // s6 - "uxtb.w r11, r8, ror #8 \n\t" // s5 - "uxtb.w r6, r8 \n\t" // s4 - "uxtb.w r8, r8, ror #24 \n\t" // s7 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldr.w r0, [r1,#88] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r7, r7, r3, lsl #8 \n\t" - "eor.w r7, r7, r4, lsl #16 \n\t" - "eor.w r7, r7, r5, lsl #24 \n\t" - "eor.w r8, r8, r6, lsl #8 \n\t" - "eor.w r8, r8, r11, lsl #16 \n\t" - "eor.w r8, r8, r12, lsl #24 \n\t" - "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) - - // 3rd-4th line - // r9(s9 s8 s11 s10) - "uxtb.w r5, r9, ror #8 \n\t" // s9 - "uxtb.w r7, r9 \n\t" // s8 - "uxtb.w r3, r9, ror #24 \n\t" // s11 - "uxtb.w r9, r9, ror #16 \n\t" // s10 - // r10(s12 s15 s14 s13) - "uxtb.w r12, r10 \n\t" // s12 - "uxtb.w r11, r10, ror #24 \n\t" // s15 - "uxtb.w r6, r10, ror #16 \n\t" // s14 - "uxtb.w r10, r10, ror #8 \n\t" // s13 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldr.w r0, [r1,#92] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r9, r9, r3, lsl #8 \n\t" - "eor.w r9, r9, r7, lsl #16 \n\t" - "eor.w r9, r9, r5, lsl #24 \n\t" - "eor.w r10, r10, r6, lsl #8 \n\t" - "eor.w r10, r10, r11, lsl #16 \n\t" - "eor.w r10, r10, r12, lsl #24 \n\t" - "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) - - // AddRoundKey and AddRoundConst(from roundKeys) - - // r9( s9 s8 s11 s10) - // r10(s12 s14 s14 s13) - - // MixColumn - "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 - "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 - "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 - // r4 ----------------> r4 - // round 5 - - // SubCell+ShiftRow+AC(c2) - // r3 (s3 s2 s1 s0) - // r4 (s7 s6 s5 s4) - // r5 (s11 s10 s9 s8) - // r6 (s15 s14 s13 s12) - - // 1st-2nd line - // r3(s3 s2 s1 s0) - "uxtb.w r9, r3, ror #24 \n\t" // s3 - "uxtb.w r8, r3, ror #16 \n\t" // s2 - "uxtb.w r7, r3, ror #8 \n\t" // s1 - "uxtb.w r3, r3 \n\t" // s0 - // r4(s6 s5 s4 s7) - "uxtb.w r12, r4, ror #16 \n\t" // s6 - "uxtb.w r11, r4, ror #8 \n\t" // s5 - "uxtb.w r10, r4 \n\t" // s4 - "uxtb.w r4, r4, ror #24 \n\t" // s7 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "eor.w r3, r3, r7, lsl #8 \n\t" - "eor.w r3, r3, r8, lsl #16 \n\t" - "eor.w r3, r3, r9, lsl #24 \n\t" - "eor.w r4, r4, r10, lsl #8 \n\t" - "eor.w r4, r4, r11, lsl #16 \n\t" - "eor.w r4, r4, r12, lsl #24 \n\t" - - // 3rd-4th line - // r5(s9 s8 s11 s10) - "uxtb.w r9, r5, ror #8 \n\t" // s9 - "uxtb.w r8, r5 \n\t" // s8 - "uxtb.w r7, r5, ror #24 \n\t" // s11 - "uxtb.w r5, r5, ror #16 \n\t" // s10 - // r6(s12 s15 s14 s13) - "uxtb.w r12, r6 \n\t" // s12 - "uxtb.w r11, r6, ror #24 \n\t" // s15 - "uxtb.w r10, r6, ror #16 \n\t" // s14 - "uxtb.w r6, r6, ror #8 \n\t" // s13 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "eor.w r5, r5, r7, lsl #8 \n\t" - "eor.w r5, r5, r8, lsl #16 \n\t" - "eor.w r5, r5, r9, lsl #24 \n\t" - "eor.w r6, r6, r10, lsl #8 \n\t" - "eor.w r6, r6, r11, lsl #16 \n\t" - "eor.w r6, r6, r12, lsl #24 \n\t" - - // AddRoundKey and AddRoundConst(from roundKeys) - "ldr.w r9, [r1,#16] \n\t" // load TK1 - "ldr.w r10, [r1,#20] \n\t" // load TK1 - "ldr.w r11, [r1,#96] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "ldr.w r12, [r1,#100] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - - "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) - "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) - // r8( s9 s8 s11 s10) - // r6(s12 s14 s14 s13) - - // MixColumn - "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 - "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 - "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 - // r8 ----------------> r8 - - // round 6 - - // SubCell+ShiftRow+AC(c2) - // r7 (s3 s2 s1 s0) - // r8 (s7 s6 s5 s4) - // r9 (s11 s10 s9 s8) - // r10(s15 s14 s13 s12) - - // 1st-2nd line - // r7(s3 s2 s1 s0) - "uxtb.w r5, r7, ror #24 \n\t" // s3 - "uxtb.w r4, r7, ror #16 \n\t" // s2 - "uxtb.w r3, r7, ror #8 \n\t" // s1 - "uxtb.w r7, r7 \n\t" // s0 - // r8(s6 s5 s4 s7) - "uxtb.w r12, r8, ror #16 \n\t" // s6 - "uxtb.w r11, r8, ror #8 \n\t" // s5 - "uxtb.w r6, r8 \n\t" // s4 - "uxtb.w r8, r8, ror #24 \n\t" // s7 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldr.w r0, [r1,#104] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r7, r7, r3, lsl #8 \n\t" - "eor.w r7, r7, r4, lsl #16 \n\t" - "eor.w r7, r7, r5, lsl #24 \n\t" - "eor.w r8, r8, r6, lsl #8 \n\t" - "eor.w r8, r8, r11, lsl #16 \n\t" - "eor.w r8, r8, r12, lsl #24 \n\t" - "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) - - // 3rd-4th line - // r9(s9 s8 s11 s10) - "uxtb.w r5, r9, ror #8 \n\t" // s9 - "uxtb.w r7, r9 \n\t" // s8 - "uxtb.w r3, r9, ror #24 \n\t" // s11 - "uxtb.w r9, r9, ror #16 \n\t" // s10 - // r10(s12 s15 s14 s13) - "uxtb.w r12, r10 \n\t" // s12 - "uxtb.w r11, r10, ror #24 \n\t" // s15 - "uxtb.w r6, r10, ror #16 \n\t" // s14 - "uxtb.w r10, r10, ror #8 \n\t" // s13 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldr.w r0, [r1,#108] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r9, r9, r3, lsl #8 \n\t" - "eor.w r9, r9, r7, lsl #16 \n\t" - "eor.w r9, r9, r5, lsl #24 \n\t" - "eor.w r10, r10, r6, lsl #8 \n\t" - "eor.w r10, r10, r11, lsl #16 \n\t" - "eor.w r10, r10, r12, lsl #24 \n\t" - "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) - - // AddRoundKey and AddRoundConst(from roundKeys) - - // r9( s9 s8 s11 s10) - // r10(s12 s14 s14 s13) - - // MixColumn - "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 - "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 - "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 - // r4 ----------------> r4 - // round 7 - - // SubCell+ShiftRow+AC(c2) - // r3 (s3 s2 s1 s0) - // r4 (s7 s6 s5 s4) - // r5 (s11 s10 s9 s8) - // r6 (s15 s14 s13 s12) - - // 1st-2nd line - // r3(s3 s2 s1 s0) - "uxtb.w r9, r3, ror #24 \n\t" // s3 - "uxtb.w r8, r3, ror #16 \n\t" // s2 - "uxtb.w r7, r3, ror #8 \n\t" // s1 - "uxtb.w r3, r3 \n\t" // s0 - // r4(s6 s5 s4 s7) - "uxtb.w r12, r4, ror #16 \n\t" // s6 - "uxtb.w r11, r4, ror #8 \n\t" // s5 - "uxtb.w r10, r4 \n\t" // s4 - "uxtb.w r4, r4, ror #24 \n\t" // s7 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "eor.w r3, r3, r7, lsl #8 \n\t" - "eor.w r3, r3, r8, lsl #16 \n\t" - "eor.w r3, r3, r9, lsl #24 \n\t" - "eor.w r4, r4, r10, lsl #8 \n\t" - "eor.w r4, r4, r11, lsl #16 \n\t" - "eor.w r4, r4, r12, lsl #24 \n\t" - - // 3rd-4th line - // r5(s9 s8 s11 s10) - "uxtb.w r9, r5, ror #8 \n\t" // s9 - "uxtb.w r8, r5 \n\t" // s8 - "uxtb.w r7, r5, ror #24 \n\t" // s11 - "uxtb.w r5, r5, ror #16 \n\t" // s10 - // r6(s12 s15 s14 s13) - "uxtb.w r12, r6 \n\t" // s12 - "uxtb.w r11, r6, ror #24 \n\t" // s15 - "uxtb.w r10, r6, ror #16 \n\t" // s14 - "uxtb.w r6, r6, ror #8 \n\t" // s13 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "eor.w r5, r5, r7, lsl #8 \n\t" - "eor.w r5, r5, r8, lsl #16 \n\t" - "eor.w r5, r5, r9, lsl #24 \n\t" - "eor.w r6, r6, r10, lsl #8 \n\t" - "eor.w r6, r6, r11, lsl #16 \n\t" - "eor.w r6, r6, r12, lsl #24 \n\t" - - // AddRoundKey and AddRoundConst(from roundKeys) - "ldr.w r9, [r1,#24] \n\t" // load TK1 - "ldr.w r10, [r1,#28] \n\t" // load TK1 - "ldr.w r11, [r1,#112] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "ldr.w r12, [r1,#116] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - - "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) - "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) - // r8( s9 s8 s11 s10) - // r6(s12 s14 s14 s13) - - // MixColumn - "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 - "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 - "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 - // r8 ----------------> r8 - - // round 8 - - // SubCell+ShiftRow+AC(c2) - // r7 (s3 s2 s1 s0) - // r8 (s7 s6 s5 s4) - // r9 (s11 s10 s9 s8) - // r10(s15 s14 s13 s12) - - // 1st-2nd line - // r7(s3 s2 s1 s0) - "uxtb.w r5, r7, ror #24 \n\t" // s3 - "uxtb.w r4, r7, ror #16 \n\t" // s2 - "uxtb.w r3, r7, ror #8 \n\t" // s1 - "uxtb.w r7, r7 \n\t" // s0 - // r8(s6 s5 s4 s7) - "uxtb.w r12, r8, ror #16 \n\t" // s6 - "uxtb.w r11, r8, ror #8 \n\t" // s5 - "uxtb.w r6, r8 \n\t" // s4 - "uxtb.w r8, r8, ror #24 \n\t" // s7 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldr.w r0, [r1,#120] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r7, r7, r3, lsl #8 \n\t" - "eor.w r7, r7, r4, lsl #16 \n\t" - "eor.w r7, r7, r5, lsl #24 \n\t" - "eor.w r8, r8, r6, lsl #8 \n\t" - "eor.w r8, r8, r11, lsl #16 \n\t" - "eor.w r8, r8, r12, lsl #24 \n\t" - "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) - - // 3rd-4th line - // r9(s9 s8 s11 s10) - "uxtb.w r5, r9, ror #8 \n\t" // s9 - "uxtb.w r7, r9 \n\t" // s8 - "uxtb.w r3, r9, ror #24 \n\t" // s11 - "uxtb.w r9, r9, ror #16 \n\t" // s10 - // r10(s12 s15 s14 s13) - "uxtb.w r12, r10 \n\t" // s12 - "uxtb.w r11, r10, ror #24 \n\t" // s15 - "uxtb.w r6, r10, ror #16 \n\t" // s14 - "uxtb.w r10, r10, ror #8 \n\t" // s13 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldr.w r0, [r1,#124] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r9, r9, r3, lsl #8 \n\t" - "eor.w r9, r9, r7, lsl #16 \n\t" - "eor.w r9, r9, r5, lsl #24 \n\t" - "eor.w r10, r10, r6, lsl #8 \n\t" - "eor.w r10, r10, r11, lsl #16 \n\t" - "eor.w r10, r10, r12, lsl #24 \n\t" - "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) - - // AddRoundKey and AddRoundConst(from roundKeys) - - // r9( s9 s8 s11 s10) - // r10(s12 s14 s14 s13) - - // MixColumn - "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 - "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 - "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 - // r4 ----------------> r4 - // round 9 - - // SubCell+ShiftRow+AC(c2) - // r3 (s3 s2 s1 s0) - // r4 (s7 s6 s5 s4) - // r5 (s11 s10 s9 s8) - // r6 (s15 s14 s13 s12) - - // 1st-2nd line - // r3(s3 s2 s1 s0) - "uxtb.w r9, r3, ror #24 \n\t" // s3 - "uxtb.w r8, r3, ror #16 \n\t" // s2 - "uxtb.w r7, r3, ror #8 \n\t" // s1 - "uxtb.w r3, r3 \n\t" // s0 - // r4(s6 s5 s4 s7) - "uxtb.w r12, r4, ror #16 \n\t" // s6 - "uxtb.w r11, r4, ror #8 \n\t" // s5 - "uxtb.w r10, r4 \n\t" // s4 - "uxtb.w r4, r4, ror #24 \n\t" // s7 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "eor.w r3, r3, r7, lsl #8 \n\t" - "eor.w r3, r3, r8, lsl #16 \n\t" - "eor.w r3, r3, r9, lsl #24 \n\t" - "eor.w r4, r4, r10, lsl #8 \n\t" - "eor.w r4, r4, r11, lsl #16 \n\t" - "eor.w r4, r4, r12, lsl #24 \n\t" - - // 3rd-4th line - // r5(s9 s8 s11 s10) - "uxtb.w r9, r5, ror #8 \n\t" // s9 - "uxtb.w r8, r5 \n\t" // s8 - "uxtb.w r7, r5, ror #24 \n\t" // s11 - "uxtb.w r5, r5, ror #16 \n\t" // s10 - // r6(s12 s15 s14 s13) - "uxtb.w r12, r6 \n\t" // s12 - "uxtb.w r11, r6, ror #24 \n\t" // s15 - "uxtb.w r10, r6, ror #16 \n\t" // s14 - "uxtb.w r6, r6, ror #8 \n\t" // s13 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "eor.w r5, r5, r7, lsl #8 \n\t" - "eor.w r5, r5, r8, lsl #16 \n\t" - "eor.w r5, r5, r9, lsl #24 \n\t" - "eor.w r6, r6, r10, lsl #8 \n\t" - "eor.w r6, r6, r11, lsl #16 \n\t" - "eor.w r6, r6, r12, lsl #24 \n\t" - - // AddRoundKey and AddRoundConst(from roundKeys) - "ldr.w r9, [r1,#32] \n\t" // load TK1 - "ldr.w r10, [r1,#36] \n\t" // load TK1 - "ldr.w r11, [r1,#128] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "ldr.w r12, [r1,#132] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - - "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) - "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) - // r8( s9 s8 s11 s10) - // r6(s12 s14 s14 s13) - - // MixColumn - "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 - "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 - "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 - // r8 ----------------> r8 - - // round 10 - - // SubCell+ShiftRow+AC(c2) - // r7 (s3 s2 s1 s0) - // r8 (s7 s6 s5 s4) - // r9 (s11 s10 s9 s8) - // r10(s15 s14 s13 s12) - - // 1st-2nd line - // r7(s3 s2 s1 s0) - "uxtb.w r5, r7, ror #24 \n\t" // s3 - "uxtb.w r4, r7, ror #16 \n\t" // s2 - "uxtb.w r3, r7, ror #8 \n\t" // s1 - "uxtb.w r7, r7 \n\t" // s0 - // r8(s6 s5 s4 s7) - "uxtb.w r12, r8, ror #16 \n\t" // s6 - "uxtb.w r11, r8, ror #8 \n\t" // s5 - "uxtb.w r6, r8 \n\t" // s4 - "uxtb.w r8, r8, ror #24 \n\t" // s7 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldr.w r0, [r1,#136] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r7, r7, r3, lsl #8 \n\t" - "eor.w r7, r7, r4, lsl #16 \n\t" - "eor.w r7, r7, r5, lsl #24 \n\t" - "eor.w r8, r8, r6, lsl #8 \n\t" - "eor.w r8, r8, r11, lsl #16 \n\t" - "eor.w r8, r8, r12, lsl #24 \n\t" - "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) - - // 3rd-4th line - // r9(s9 s8 s11 s10) - "uxtb.w r5, r9, ror #8 \n\t" // s9 - "uxtb.w r7, r9 \n\t" // s8 - "uxtb.w r3, r9, ror #24 \n\t" // s11 - "uxtb.w r9, r9, ror #16 \n\t" // s10 - // r10(s12 s15 s14 s13) - "uxtb.w r12, r10 \n\t" // s12 - "uxtb.w r11, r10, ror #24 \n\t" // s15 - "uxtb.w r6, r10, ror #16 \n\t" // s14 - "uxtb.w r10, r10, ror #8 \n\t" // s13 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldr.w r0, [r1,#140] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r9, r9, r3, lsl #8 \n\t" - "eor.w r9, r9, r7, lsl #16 \n\t" - "eor.w r9, r9, r5, lsl #24 \n\t" - "eor.w r10, r10, r6, lsl #8 \n\t" - "eor.w r10, r10, r11, lsl #16 \n\t" - "eor.w r10, r10, r12, lsl #24 \n\t" - "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) - - // AddRoundKey and AddRoundConst(from roundKeys) - - // r9( s9 s8 s11 s10) - // r10(s12 s14 s14 s13) - - // MixColumn - "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 - "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 - "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 - // r4 ----------------> r4 - // round 11 - - // SubCell+ShiftRow+AC(c2) - // r3 (s3 s2 s1 s0) - // r4 (s7 s6 s5 s4) - // r5 (s11 s10 s9 s8) - // r6 (s15 s14 s13 s12) - - // 1st-2nd line - // r3(s3 s2 s1 s0) - "uxtb.w r9, r3, ror #24 \n\t" // s3 - "uxtb.w r8, r3, ror #16 \n\t" // s2 - "uxtb.w r7, r3, ror #8 \n\t" // s1 - "uxtb.w r3, r3 \n\t" // s0 - // r4(s6 s5 s4 s7) - "uxtb.w r12, r4, ror #16 \n\t" // s6 - "uxtb.w r11, r4, ror #8 \n\t" // s5 - "uxtb.w r10, r4 \n\t" // s4 - "uxtb.w r4, r4, ror #24 \n\t" // s7 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "eor.w r3, r3, r7, lsl #8 \n\t" - "eor.w r3, r3, r8, lsl #16 \n\t" - "eor.w r3, r3, r9, lsl #24 \n\t" - "eor.w r4, r4, r10, lsl #8 \n\t" - "eor.w r4, r4, r11, lsl #16 \n\t" - "eor.w r4, r4, r12, lsl #24 \n\t" - - // 3rd-4th line - // r5(s9 s8 s11 s10) - "uxtb.w r9, r5, ror #8 \n\t" // s9 - "uxtb.w r8, r5 \n\t" // s8 - "uxtb.w r7, r5, ror #24 \n\t" // s11 - "uxtb.w r5, r5, ror #16 \n\t" // s10 - // r6(s12 s15 s14 s13) - "uxtb.w r12, r6 \n\t" // s12 - "uxtb.w r11, r6, ror #24 \n\t" // s15 - "uxtb.w r10, r6, ror #16 \n\t" // s14 - "uxtb.w r6, r6, ror #8 \n\t" // s13 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "eor.w r5, r5, r7, lsl #8 \n\t" - "eor.w r5, r5, r8, lsl #16 \n\t" - "eor.w r5, r5, r9, lsl #24 \n\t" - "eor.w r6, r6, r10, lsl #8 \n\t" - "eor.w r6, r6, r11, lsl #16 \n\t" - "eor.w r6, r6, r12, lsl #24 \n\t" - - // AddRoundKey and AddRoundConst(from roundKeys) - "ldr.w r9, [r1,#40] \n\t" // load TK1 - "ldr.w r10, [r1,#44] \n\t" // load TK1 - "ldr.w r11, [r1,#144] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "ldr.w r12, [r1,#148] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - - "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) - "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) - // r8( s9 s8 s11 s10) - // r6(s12 s14 s14 s13) - - // MixColumn - "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 - "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 - "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 - // r8 ----------------> r8 - - // round 12 - - // SubCell+ShiftRow+AC(c2) - // r7 (s3 s2 s1 s0) - // r8 (s7 s6 s5 s4) - // r9 (s11 s10 s9 s8) - // r10(s15 s14 s13 s12) - - // 1st-2nd line - // r7(s3 s2 s1 s0) - "uxtb.w r5, r7, ror #24 \n\t" // s3 - "uxtb.w r4, r7, ror #16 \n\t" // s2 - "uxtb.w r3, r7, ror #8 \n\t" // s1 - "uxtb.w r7, r7 \n\t" // s0 - // r8(s6 s5 s4 s7) - "uxtb.w r12, r8, ror #16 \n\t" // s6 - "uxtb.w r11, r8, ror #8 \n\t" // s5 - "uxtb.w r6, r8 \n\t" // s4 - "uxtb.w r8, r8, ror #24 \n\t" // s7 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldr.w r0, [r1,#152] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r7, r7, r3, lsl #8 \n\t" - "eor.w r7, r7, r4, lsl #16 \n\t" - "eor.w r7, r7, r5, lsl #24 \n\t" - "eor.w r8, r8, r6, lsl #8 \n\t" - "eor.w r8, r8, r11, lsl #16 \n\t" - "eor.w r8, r8, r12, lsl #24 \n\t" - "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) - - // 3rd-4th line - // r9(s9 s8 s11 s10) - "uxtb.w r5, r9, ror #8 \n\t" // s9 - "uxtb.w r7, r9 \n\t" // s8 - "uxtb.w r3, r9, ror #24 \n\t" // s11 - "uxtb.w r9, r9, ror #16 \n\t" // s10 - // r10(s12 s15 s14 s13) - "uxtb.w r12, r10 \n\t" // s12 - "uxtb.w r11, r10, ror #24 \n\t" // s15 - "uxtb.w r6, r10, ror #16 \n\t" // s14 - "uxtb.w r10, r10, ror #8 \n\t" // s13 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldr.w r0, [r1,#156] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r9, r9, r3, lsl #8 \n\t" - "eor.w r9, r9, r7, lsl #16 \n\t" - "eor.w r9, r9, r5, lsl #24 \n\t" - "eor.w r10, r10, r6, lsl #8 \n\t" - "eor.w r10, r10, r11, lsl #16 \n\t" - "eor.w r10, r10, r12, lsl #24 \n\t" - "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) - - // AddRoundKey and AddRoundConst(from roundKeys) - - // r9( s9 s8 s11 s10) - // r10(s12 s14 s14 s13) - - // MixColumn - "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 - "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 - "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 - // r4 ----------------> r4 - // round 13 - - // SubCell+ShiftRow+AC(c2) - // r3 (s3 s2 s1 s0) - // r4 (s7 s6 s5 s4) - // r5 (s11 s10 s9 s8) - // r6 (s15 s14 s13 s12) - - // 1st-2nd line - // r3(s3 s2 s1 s0) - "uxtb.w r9, r3, ror #24 \n\t" // s3 - "uxtb.w r8, r3, ror #16 \n\t" // s2 - "uxtb.w r7, r3, ror #8 \n\t" // s1 - "uxtb.w r3, r3 \n\t" // s0 - // r4(s6 s5 s4 s7) - "uxtb.w r12, r4, ror #16 \n\t" // s6 - "uxtb.w r11, r4, ror #8 \n\t" // s5 - "uxtb.w r10, r4 \n\t" // s4 - "uxtb.w r4, r4, ror #24 \n\t" // s7 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "eor.w r3, r3, r7, lsl #8 \n\t" - "eor.w r3, r3, r8, lsl #16 \n\t" - "eor.w r3, r3, r9, lsl #24 \n\t" - "eor.w r4, r4, r10, lsl #8 \n\t" - "eor.w r4, r4, r11, lsl #16 \n\t" - "eor.w r4, r4, r12, lsl #24 \n\t" - - // 3rd-4th line - // r5(s9 s8 s11 s10) - "uxtb.w r9, r5, ror #8 \n\t" // s9 - "uxtb.w r8, r5 \n\t" // s8 - "uxtb.w r7, r5, ror #24 \n\t" // s11 - "uxtb.w r5, r5, ror #16 \n\t" // s10 - // r6(s12 s15 s14 s13) - "uxtb.w r12, r6 \n\t" // s12 - "uxtb.w r11, r6, ror #24 \n\t" // s15 - "uxtb.w r10, r6, ror #16 \n\t" // s14 - "uxtb.w r6, r6, ror #8 \n\t" // s13 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "eor.w r5, r5, r7, lsl #8 \n\t" - "eor.w r5, r5, r8, lsl #16 \n\t" - "eor.w r5, r5, r9, lsl #24 \n\t" - "eor.w r6, r6, r10, lsl #8 \n\t" - "eor.w r6, r6, r11, lsl #16 \n\t" - "eor.w r6, r6, r12, lsl #24 \n\t" - - // AddRoundKey and AddRoundConst(from roundKeys) - "ldr.w r9, [r1,#48] \n\t" // load TK1 - "ldr.w r10, [r1,#52] \n\t" // load TK1 - "ldr.w r11, [r1,#160] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "ldr.w r12, [r1,#164] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - - "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) - "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) - // r8( s9 s8 s11 s10) - // r6(s12 s14 s14 s13) - - // MixColumn - "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 - "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 - "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 - // r8 ----------------> r8 - - // round 14 - - // SubCell+ShiftRow+AC(c2) - // r7 (s3 s2 s1 s0) - // r8 (s7 s6 s5 s4) - // r9 (s11 s10 s9 s8) - // r10(s15 s14 s13 s12) - - // 1st-2nd line - // r7(s3 s2 s1 s0) - "uxtb.w r5, r7, ror #24 \n\t" // s3 - "uxtb.w r4, r7, ror #16 \n\t" // s2 - "uxtb.w r3, r7, ror #8 \n\t" // s1 - "uxtb.w r7, r7 \n\t" // s0 - // r8(s6 s5 s4 s7) - "uxtb.w r12, r8, ror #16 \n\t" // s6 - "uxtb.w r11, r8, ror #8 \n\t" // s5 - "uxtb.w r6, r8 \n\t" // s4 - "uxtb.w r8, r8, ror #24 \n\t" // s7 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldr.w r0, [r1,#168] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r7, r7, r3, lsl #8 \n\t" - "eor.w r7, r7, r4, lsl #16 \n\t" - "eor.w r7, r7, r5, lsl #24 \n\t" - "eor.w r8, r8, r6, lsl #8 \n\t" - "eor.w r8, r8, r11, lsl #16 \n\t" - "eor.w r8, r8, r12, lsl #24 \n\t" - "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) - - // 3rd-4th line - // r9(s9 s8 s11 s10) - "uxtb.w r5, r9, ror #8 \n\t" // s9 - "uxtb.w r7, r9 \n\t" // s8 - "uxtb.w r3, r9, ror #24 \n\t" // s11 - "uxtb.w r9, r9, ror #16 \n\t" // s10 - // r10(s12 s15 s14 s13) - "uxtb.w r12, r10 \n\t" // s12 - "uxtb.w r11, r10, ror #24 \n\t" // s15 - "uxtb.w r6, r10, ror #16 \n\t" // s14 - "uxtb.w r10, r10, ror #8 \n\t" // s13 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldr.w r0, [r1,#172] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r9, r9, r3, lsl #8 \n\t" - "eor.w r9, r9, r7, lsl #16 \n\t" - "eor.w r9, r9, r5, lsl #24 \n\t" - "eor.w r10, r10, r6, lsl #8 \n\t" - "eor.w r10, r10, r11, lsl #16 \n\t" - "eor.w r10, r10, r12, lsl #24 \n\t" - "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) - - // AddRoundKey and AddRoundConst(from roundKeys) - - // r9( s9 s8 s11 s10) - // r10(s12 s14 s14 s13) - - // MixColumn - "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 - "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 - "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 - // r4 ----------------> r4 - // round 15 - - // SubCell+ShiftRow+AC(c2) - // r3 (s3 s2 s1 s0) - // r4 (s7 s6 s5 s4) - // r5 (s11 s10 s9 s8) - // r6 (s15 s14 s13 s12) - - // 1st-2nd line - // r3(s3 s2 s1 s0) - "uxtb.w r9, r3, ror #24 \n\t" // s3 - "uxtb.w r8, r3, ror #16 \n\t" // s2 - "uxtb.w r7, r3, ror #8 \n\t" // s1 - "uxtb.w r3, r3 \n\t" // s0 - // r4(s6 s5 s4 s7) - "uxtb.w r12, r4, ror #16 \n\t" // s6 - "uxtb.w r11, r4, ror #8 \n\t" // s5 - "uxtb.w r10, r4 \n\t" // s4 - "uxtb.w r4, r4, ror #24 \n\t" // s7 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "eor.w r3, r3, r7, lsl #8 \n\t" - "eor.w r3, r3, r8, lsl #16 \n\t" - "eor.w r3, r3, r9, lsl #24 \n\t" - "eor.w r4, r4, r10, lsl #8 \n\t" - "eor.w r4, r4, r11, lsl #16 \n\t" - "eor.w r4, r4, r12, lsl #24 \n\t" - - // 3rd-4th line - // r5(s9 s8 s11 s10) - "uxtb.w r9, r5, ror #8 \n\t" // s9 - "uxtb.w r8, r5 \n\t" // s8 - "uxtb.w r7, r5, ror #24 \n\t" // s11 - "uxtb.w r5, r5, ror #16 \n\t" // s10 - // r6(s12 s15 s14 s13) - "uxtb.w r12, r6 \n\t" // s12 - "uxtb.w r11, r6, ror #24 \n\t" // s15 - "uxtb.w r10, r6, ror #16 \n\t" // s14 - "uxtb.w r6, r6, ror #8 \n\t" // s13 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "eor.w r5, r5, r7, lsl #8 \n\t" - "eor.w r5, r5, r8, lsl #16 \n\t" - "eor.w r5, r5, r9, lsl #24 \n\t" - "eor.w r6, r6, r10, lsl #8 \n\t" - "eor.w r6, r6, r11, lsl #16 \n\t" - "eor.w r6, r6, r12, lsl #24 \n\t" - - // AddRoundKey and AddRoundConst(from roundKeys) - "ldr.w r9, [r1,#56] \n\t" // load TK1 - "ldr.w r10, [r1,#60] \n\t" // load TK1 - "ldr.w r11, [r1,#176] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "ldr.w r12, [r1,#180] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - - "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) - "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) - // r8( s9 s8 s11 s10) - // r6(s12 s14 s14 s13) - - // MixColumn - "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 - "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 - "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 - // r8 ----------------> r8 - - // round 16 - - // SubCell+ShiftRow+AC(c2) - // r7 (s3 s2 s1 s0) - // r8 (s7 s6 s5 s4) - // r9 (s11 s10 s9 s8) - // r10(s15 s14 s13 s12) - - // 1st-2nd line - // r7(s3 s2 s1 s0) - "uxtb.w r5, r7, ror #24 \n\t" // s3 - "uxtb.w r4, r7, ror #16 \n\t" // s2 - "uxtb.w r3, r7, ror #8 \n\t" // s1 - "uxtb.w r7, r7 \n\t" // s0 - // r8(s6 s5 s4 s7) - "uxtb.w r12, r8, ror #16 \n\t" // s6 - "uxtb.w r11, r8, ror #8 \n\t" // s5 - "uxtb.w r6, r8 \n\t" // s4 - "uxtb.w r8, r8, ror #24 \n\t" // s7 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldr.w r0, [r1,#184] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r7, r7, r3, lsl #8 \n\t" - "eor.w r7, r7, r4, lsl #16 \n\t" - "eor.w r7, r7, r5, lsl #24 \n\t" - "eor.w r8, r8, r6, lsl #8 \n\t" - "eor.w r8, r8, r11, lsl #16 \n\t" - "eor.w r8, r8, r12, lsl #24 \n\t" - "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) - - // 3rd-4th line - // r9(s9 s8 s11 s10) - "uxtb.w r5, r9, ror #8 \n\t" // s9 - "uxtb.w r7, r9 \n\t" // s8 - "uxtb.w r3, r9, ror #24 \n\t" // s11 - "uxtb.w r9, r9, ror #16 \n\t" // s10 - // r10(s12 s15 s14 s13) - "uxtb.w r12, r10 \n\t" // s12 - "uxtb.w r11, r10, ror #24 \n\t" // s15 - "uxtb.w r6, r10, ror #16 \n\t" // s14 - "uxtb.w r10, r10, ror #8 \n\t" // s13 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldr.w r0, [r1,#188] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r9, r9, r3, lsl #8 \n\t" - "eor.w r9, r9, r7, lsl #16 \n\t" - "eor.w r9, r9, r5, lsl #24 \n\t" - "eor.w r10, r10, r6, lsl #8 \n\t" - "eor.w r10, r10, r11, lsl #16 \n\t" - "eor.w r10, r10, r12, lsl #24 \n\t" - "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) - - // AddRoundKey and AddRoundConst(from roundKeys) - - // r9( s9 s8 s11 s10) - // r10(s12 s14 s14 s13) - - // MixColumn - "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 - "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 - "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 - // r4 ----------------> r4 - // round 17 - - // SubCell+ShiftRow+AC(c2) - // r3 (s3 s2 s1 s0) - // r4 (s7 s6 s5 s4) - // r5 (s11 s10 s9 s8) - // r6 (s15 s14 s13 s12) - - // 1st-2nd line - // r3(s3 s2 s1 s0) - "uxtb.w r9, r3, ror #24 \n\t" // s3 - "uxtb.w r8, r3, ror #16 \n\t" // s2 - "uxtb.w r7, r3, ror #8 \n\t" // s1 - "uxtb.w r3, r3 \n\t" // s0 - // r4(s6 s5 s4 s7) - "uxtb.w r12, r4, ror #16 \n\t" // s6 - "uxtb.w r11, r4, ror #8 \n\t" // s5 - "uxtb.w r10, r4 \n\t" // s4 - "uxtb.w r4, r4, ror #24 \n\t" // s7 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "eor.w r3, r3, r7, lsl #8 \n\t" - "eor.w r3, r3, r8, lsl #16 \n\t" - "eor.w r3, r3, r9, lsl #24 \n\t" - "eor.w r4, r4, r10, lsl #8 \n\t" - "eor.w r4, r4, r11, lsl #16 \n\t" - "eor.w r4, r4, r12, lsl #24 \n\t" - - // 3rd-4th line - // r5(s9 s8 s11 s10) - "uxtb.w r9, r5, ror #8 \n\t" // s9 - "uxtb.w r8, r5 \n\t" // s8 - "uxtb.w r7, r5, ror #24 \n\t" // s11 - "uxtb.w r5, r5, ror #16 \n\t" // s10 - // r6(s12 s15 s14 s13) - "uxtb.w r12, r6 \n\t" // s12 - "uxtb.w r11, r6, ror #24 \n\t" // s15 - "uxtb.w r10, r6, ror #16 \n\t" // s14 - "uxtb.w r6, r6, ror #8 \n\t" // s13 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "eor.w r5, r5, r7, lsl #8 \n\t" - "eor.w r5, r5, r8, lsl #16 \n\t" - "eor.w r5, r5, r9, lsl #24 \n\t" - "eor.w r6, r6, r10, lsl #8 \n\t" - "eor.w r6, r6, r11, lsl #16 \n\t" - "eor.w r6, r6, r12, lsl #24 \n\t" - - // AddRoundKey and AddRoundConst(from roundKeys) - "ldr.w r9, [r1,#0] \n\t" // load TK1 - "ldr.w r10, [r1,#4] \n\t" // load TK1 - "ldr.w r11, [r1,#192] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "ldr.w r12, [r1,#196] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - - "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) - "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) - // r8( s9 s8 s11 s10) - // r6(s12 s14 s14 s13) - - // MixColumn - "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 - "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 - "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 - // r8 ----------------> r8 - - // round 18 - - // SubCell+ShiftRow+AC(c2) - // r7 (s3 s2 s1 s0) - // r8 (s7 s6 s5 s4) - // r9 (s11 s10 s9 s8) - // r10(s15 s14 s13 s12) - - // 1st-2nd line - // r7(s3 s2 s1 s0) - "uxtb.w r5, r7, ror #24 \n\t" // s3 - "uxtb.w r4, r7, ror #16 \n\t" // s2 - "uxtb.w r3, r7, ror #8 \n\t" // s1 - "uxtb.w r7, r7 \n\t" // s0 - // r8(s6 s5 s4 s7) - "uxtb.w r12, r8, ror #16 \n\t" // s6 - "uxtb.w r11, r8, ror #8 \n\t" // s5 - "uxtb.w r6, r8 \n\t" // s4 - "uxtb.w r8, r8, ror #24 \n\t" // s7 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldr.w r0, [r1,#200] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r7, r7, r3, lsl #8 \n\t" - "eor.w r7, r7, r4, lsl #16 \n\t" - "eor.w r7, r7, r5, lsl #24 \n\t" - "eor.w r8, r8, r6, lsl #8 \n\t" - "eor.w r8, r8, r11, lsl #16 \n\t" - "eor.w r8, r8, r12, lsl #24 \n\t" - "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) - - // 3rd-4th line - // r9(s9 s8 s11 s10) - "uxtb.w r5, r9, ror #8 \n\t" // s9 - "uxtb.w r7, r9 \n\t" // s8 - "uxtb.w r3, r9, ror #24 \n\t" // s11 - "uxtb.w r9, r9, ror #16 \n\t" // s10 - // r10(s12 s15 s14 s13) - "uxtb.w r12, r10 \n\t" // s12 - "uxtb.w r11, r10, ror #24 \n\t" // s15 - "uxtb.w r6, r10, ror #16 \n\t" // s14 - "uxtb.w r10, r10, ror #8 \n\t" // s13 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldr.w r0, [r1,#204] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r9, r9, r3, lsl #8 \n\t" - "eor.w r9, r9, r7, lsl #16 \n\t" - "eor.w r9, r9, r5, lsl #24 \n\t" - "eor.w r10, r10, r6, lsl #8 \n\t" - "eor.w r10, r10, r11, lsl #16 \n\t" - "eor.w r10, r10, r12, lsl #24 \n\t" - "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) - - // AddRoundKey and AddRoundConst(from roundKeys) - - // r9( s9 s8 s11 s10) - // r10(s12 s14 s14 s13) - - // MixColumn - "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 - "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 - "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 - // r4 ----------------> r4 - // round 19 - - // SubCell+ShiftRow+AC(c2) - // r3 (s3 s2 s1 s0) - // r4 (s7 s6 s5 s4) - // r5 (s11 s10 s9 s8) - // r6 (s15 s14 s13 s12) - - // 1st-2nd line - // r3(s3 s2 s1 s0) - "uxtb.w r9, r3, ror #24 \n\t" // s3 - "uxtb.w r8, r3, ror #16 \n\t" // s2 - "uxtb.w r7, r3, ror #8 \n\t" // s1 - "uxtb.w r3, r3 \n\t" // s0 - // r4(s6 s5 s4 s7) - "uxtb.w r12, r4, ror #16 \n\t" // s6 - "uxtb.w r11, r4, ror #8 \n\t" // s5 - "uxtb.w r10, r4 \n\t" // s4 - "uxtb.w r4, r4, ror #24 \n\t" // s7 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "eor.w r3, r3, r7, lsl #8 \n\t" - "eor.w r3, r3, r8, lsl #16 \n\t" - "eor.w r3, r3, r9, lsl #24 \n\t" - "eor.w r4, r4, r10, lsl #8 \n\t" - "eor.w r4, r4, r11, lsl #16 \n\t" - "eor.w r4, r4, r12, lsl #24 \n\t" - - // 3rd-4th line - // r5(s9 s8 s11 s10) - "uxtb.w r9, r5, ror #8 \n\t" // s9 - "uxtb.w r8, r5 \n\t" // s8 - "uxtb.w r7, r5, ror #24 \n\t" // s11 - "uxtb.w r5, r5, ror #16 \n\t" // s10 - // r6(s12 s15 s14 s13) - "uxtb.w r12, r6 \n\t" // s12 - "uxtb.w r11, r6, ror #24 \n\t" // s15 - "uxtb.w r10, r6, ror #16 \n\t" // s14 - "uxtb.w r6, r6, ror #8 \n\t" // s13 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "eor.w r5, r5, r7, lsl #8 \n\t" - "eor.w r5, r5, r8, lsl #16 \n\t" - "eor.w r5, r5, r9, lsl #24 \n\t" - "eor.w r6, r6, r10, lsl #8 \n\t" - "eor.w r6, r6, r11, lsl #16 \n\t" - "eor.w r6, r6, r12, lsl #24 \n\t" - - // AddRoundKey and AddRoundConst(from roundKeys) - "ldr.w r9, [r1,#8] \n\t" // load TK1 - "ldr.w r10, [r1,#12] \n\t" // load TK1 - "ldr.w r11, [r1,#208] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "ldr.w r12, [r1,#212] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - - "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) - "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) - // r8( s9 s8 s11 s10) - // r6(s12 s14 s14 s13) - - // MixColumn - "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 - "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 - "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 - // r8 ----------------> r8 - - // round 20 - - // SubCell+ShiftRow+AC(c2) - // r7 (s3 s2 s1 s0) - // r8 (s7 s6 s5 s4) - // r9 (s11 s10 s9 s8) - // r10(s15 s14 s13 s12) - - // 1st-2nd line - // r7(s3 s2 s1 s0) - "uxtb.w r5, r7, ror #24 \n\t" // s3 - "uxtb.w r4, r7, ror #16 \n\t" // s2 - "uxtb.w r3, r7, ror #8 \n\t" // s1 - "uxtb.w r7, r7 \n\t" // s0 - // r8(s6 s5 s4 s7) - "uxtb.w r12, r8, ror #16 \n\t" // s6 - "uxtb.w r11, r8, ror #8 \n\t" // s5 - "uxtb.w r6, r8 \n\t" // s4 - "uxtb.w r8, r8, ror #24 \n\t" // s7 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldr.w r0, [r1,#216] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r7, r7, r3, lsl #8 \n\t" - "eor.w r7, r7, r4, lsl #16 \n\t" - "eor.w r7, r7, r5, lsl #24 \n\t" - "eor.w r8, r8, r6, lsl #8 \n\t" - "eor.w r8, r8, r11, lsl #16 \n\t" - "eor.w r8, r8, r12, lsl #24 \n\t" - "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) - - // 3rd-4th line - // r9(s9 s8 s11 s10) - "uxtb.w r5, r9, ror #8 \n\t" // s9 - "uxtb.w r7, r9 \n\t" // s8 - "uxtb.w r3, r9, ror #24 \n\t" // s11 - "uxtb.w r9, r9, ror #16 \n\t" // s10 - // r10(s12 s15 s14 s13) - "uxtb.w r12, r10 \n\t" // s12 - "uxtb.w r11, r10, ror #24 \n\t" // s15 - "uxtb.w r6, r10, ror #16 \n\t" // s14 - "uxtb.w r10, r10, ror #8 \n\t" // s13 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldr.w r0, [r1,#220] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r9, r9, r3, lsl #8 \n\t" - "eor.w r9, r9, r7, lsl #16 \n\t" - "eor.w r9, r9, r5, lsl #24 \n\t" - "eor.w r10, r10, r6, lsl #8 \n\t" - "eor.w r10, r10, r11, lsl #16 \n\t" - "eor.w r10, r10, r12, lsl #24 \n\t" - "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) - - // AddRoundKey and AddRoundConst(from roundKeys) - - // r9( s9 s8 s11 s10) - // r10(s12 s14 s14 s13) - - // MixColumn - "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 - "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 - "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 - // r4 ----------------> r4 - // round 21 - - // SubCell+ShiftRow+AC(c2) - // r3 (s3 s2 s1 s0) - // r4 (s7 s6 s5 s4) - // r5 (s11 s10 s9 s8) - // r6 (s15 s14 s13 s12) - - // 1st-2nd line - // r3(s3 s2 s1 s0) - "uxtb.w r9, r3, ror #24 \n\t" // s3 - "uxtb.w r8, r3, ror #16 \n\t" // s2 - "uxtb.w r7, r3, ror #8 \n\t" // s1 - "uxtb.w r3, r3 \n\t" // s0 - // r4(s6 s5 s4 s7) - "uxtb.w r12, r4, ror #16 \n\t" // s6 - "uxtb.w r11, r4, ror #8 \n\t" // s5 - "uxtb.w r10, r4 \n\t" // s4 - "uxtb.w r4, r4, ror #24 \n\t" // s7 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "eor.w r3, r3, r7, lsl #8 \n\t" - "eor.w r3, r3, r8, lsl #16 \n\t" - "eor.w r3, r3, r9, lsl #24 \n\t" - "eor.w r4, r4, r10, lsl #8 \n\t" - "eor.w r4, r4, r11, lsl #16 \n\t" - "eor.w r4, r4, r12, lsl #24 \n\t" - - // 3rd-4th line - // r5(s9 s8 s11 s10) - "uxtb.w r9, r5, ror #8 \n\t" // s9 - "uxtb.w r8, r5 \n\t" // s8 - "uxtb.w r7, r5, ror #24 \n\t" // s11 - "uxtb.w r5, r5, ror #16 \n\t" // s10 - // r6(s12 s15 s14 s13) - "uxtb.w r12, r6 \n\t" // s12 - "uxtb.w r11, r6, ror #24 \n\t" // s15 - "uxtb.w r10, r6, ror #16 \n\t" // s14 - "uxtb.w r6, r6, ror #8 \n\t" // s13 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "eor.w r5, r5, r7, lsl #8 \n\t" - "eor.w r5, r5, r8, lsl #16 \n\t" - "eor.w r5, r5, r9, lsl #24 \n\t" - "eor.w r6, r6, r10, lsl #8 \n\t" - "eor.w r6, r6, r11, lsl #16 \n\t" - "eor.w r6, r6, r12, lsl #24 \n\t" - - // AddRoundKey and AddRoundConst(from roundKeys) - "ldr.w r9, [r1,#16] \n\t" // load TK1 - "ldr.w r10, [r1,#20] \n\t" // load TK1 - "ldr.w r11, [r1,#224] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "ldr.w r12, [r1,#228] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - - "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) - "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) - // r8( s9 s8 s11 s10) - // r6(s12 s14 s14 s13) - - // MixColumn - "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 - "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 - "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 - // r8 ----------------> r8 - - // round 22 - - // SubCell+ShiftRow+AC(c2) - // r7 (s3 s2 s1 s0) - // r8 (s7 s6 s5 s4) - // r9 (s11 s10 s9 s8) - // r10(s15 s14 s13 s12) - - // 1st-2nd line - // r7(s3 s2 s1 s0) - "uxtb.w r5, r7, ror #24 \n\t" // s3 - "uxtb.w r4, r7, ror #16 \n\t" // s2 - "uxtb.w r3, r7, ror #8 \n\t" // s1 - "uxtb.w r7, r7 \n\t" // s0 - // r8(s6 s5 s4 s7) - "uxtb.w r12, r8, ror #16 \n\t" // s6 - "uxtb.w r11, r8, ror #8 \n\t" // s5 - "uxtb.w r6, r8 \n\t" // s4 - "uxtb.w r8, r8, ror #24 \n\t" // s7 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldr.w r0, [r1,#232] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r7, r7, r3, lsl #8 \n\t" - "eor.w r7, r7, r4, lsl #16 \n\t" - "eor.w r7, r7, r5, lsl #24 \n\t" - "eor.w r8, r8, r6, lsl #8 \n\t" - "eor.w r8, r8, r11, lsl #16 \n\t" - "eor.w r8, r8, r12, lsl #24 \n\t" - "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) - - // 3rd-4th line - // r9(s9 s8 s11 s10) - "uxtb.w r5, r9, ror #8 \n\t" // s9 - "uxtb.w r7, r9 \n\t" // s8 - "uxtb.w r3, r9, ror #24 \n\t" // s11 - "uxtb.w r9, r9, ror #16 \n\t" // s10 - // r10(s12 s15 s14 s13) - "uxtb.w r12, r10 \n\t" // s12 - "uxtb.w r11, r10, ror #24 \n\t" // s15 - "uxtb.w r6, r10, ror #16 \n\t" // s14 - "uxtb.w r10, r10, ror #8 \n\t" // s13 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldr.w r0, [r1,#236] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r9, r9, r3, lsl #8 \n\t" - "eor.w r9, r9, r7, lsl #16 \n\t" - "eor.w r9, r9, r5, lsl #24 \n\t" - "eor.w r10, r10, r6, lsl #8 \n\t" - "eor.w r10, r10, r11, lsl #16 \n\t" - "eor.w r10, r10, r12, lsl #24 \n\t" - "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) - - // AddRoundKey and AddRoundConst(from roundKeys) - - // r9( s9 s8 s11 s10) - // r10(s12 s14 s14 s13) - - // MixColumn - "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 - "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 - "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 - // r4 ----------------> r4 - // round 23 - - // SubCell+ShiftRow+AC(c2) - // r3 (s3 s2 s1 s0) - // r4 (s7 s6 s5 s4) - // r5 (s11 s10 s9 s8) - // r6 (s15 s14 s13 s12) - - // 1st-2nd line - // r3(s3 s2 s1 s0) - "uxtb.w r9, r3, ror #24 \n\t" // s3 - "uxtb.w r8, r3, ror #16 \n\t" // s2 - "uxtb.w r7, r3, ror #8 \n\t" // s1 - "uxtb.w r3, r3 \n\t" // s0 - // r4(s6 s5 s4 s7) - "uxtb.w r12, r4, ror #16 \n\t" // s6 - "uxtb.w r11, r4, ror #8 \n\t" // s5 - "uxtb.w r10, r4 \n\t" // s4 - "uxtb.w r4, r4, ror #24 \n\t" // s7 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "eor.w r3, r3, r7, lsl #8 \n\t" - "eor.w r3, r3, r8, lsl #16 \n\t" - "eor.w r3, r3, r9, lsl #24 \n\t" - "eor.w r4, r4, r10, lsl #8 \n\t" - "eor.w r4, r4, r11, lsl #16 \n\t" - "eor.w r4, r4, r12, lsl #24 \n\t" - - // 3rd-4th line - // r5(s9 s8 s11 s10) - "uxtb.w r9, r5, ror #8 \n\t" // s9 - "uxtb.w r8, r5 \n\t" // s8 - "uxtb.w r7, r5, ror #24 \n\t" // s11 - "uxtb.w r5, r5, ror #16 \n\t" // s10 - // r6(s12 s15 s14 s13) - "uxtb.w r12, r6 \n\t" // s12 - "uxtb.w r11, r6, ror #24 \n\t" // s15 - "uxtb.w r10, r6, ror #16 \n\t" // s14 - "uxtb.w r6, r6, ror #8 \n\t" // s13 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "eor.w r5, r5, r7, lsl #8 \n\t" - "eor.w r5, r5, r8, lsl #16 \n\t" - "eor.w r5, r5, r9, lsl #24 \n\t" - "eor.w r6, r6, r10, lsl #8 \n\t" - "eor.w r6, r6, r11, lsl #16 \n\t" - "eor.w r6, r6, r12, lsl #24 \n\t" - - // AddRoundKey and AddRoundConst(from roundKeys) - "ldr.w r9, [r1,#24] \n\t" // load TK1 - "ldr.w r10, [r1,#28] \n\t" // load TK1 - "ldr.w r11, [r1,#240] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "ldr.w r12, [r1,#244] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - - "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) - "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) - // r8( s9 s8 s11 s10) - // r6(s12 s14 s14 s13) - - // MixColumn - "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 - "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 - "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 - // r8 ----------------> r8 - - // round 24 - - // SubCell+ShiftRow+AC(c2) - // r7 (s3 s2 s1 s0) - // r8 (s7 s6 s5 s4) - // r9 (s11 s10 s9 s8) - // r10(s15 s14 s13 s12) - - // 1st-2nd line - // r7(s3 s2 s1 s0) - "uxtb.w r5, r7, ror #24 \n\t" // s3 - "uxtb.w r4, r7, ror #16 \n\t" // s2 - "uxtb.w r3, r7, ror #8 \n\t" // s1 - "uxtb.w r7, r7 \n\t" // s0 - // r8(s6 s5 s4 s7) - "uxtb.w r12, r8, ror #16 \n\t" // s6 - "uxtb.w r11, r8, ror #8 \n\t" // s5 - "uxtb.w r6, r8 \n\t" // s4 - "uxtb.w r8, r8, ror #24 \n\t" // s7 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldr.w r0, [r1,#248] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r7, r7, r3, lsl #8 \n\t" - "eor.w r7, r7, r4, lsl #16 \n\t" - "eor.w r7, r7, r5, lsl #24 \n\t" - "eor.w r8, r8, r6, lsl #8 \n\t" - "eor.w r8, r8, r11, lsl #16 \n\t" - "eor.w r8, r8, r12, lsl #24 \n\t" - "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) - - // 3rd-4th line - // r9(s9 s8 s11 s10) - "uxtb.w r5, r9, ror #8 \n\t" // s9 - "uxtb.w r7, r9 \n\t" // s8 - "uxtb.w r3, r9, ror #24 \n\t" // s11 - "uxtb.w r9, r9, ror #16 \n\t" // s10 - // r10(s12 s15 s14 s13) - "uxtb.w r12, r10 \n\t" // s12 - "uxtb.w r11, r10, ror #24 \n\t" // s15 - "uxtb.w r6, r10, ror #16 \n\t" // s14 - "uxtb.w r10, r10, ror #8 \n\t" // s13 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldr.w r0, [r1,#252] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r9, r9, r3, lsl #8 \n\t" - "eor.w r9, r9, r7, lsl #16 \n\t" - "eor.w r9, r9, r5, lsl #24 \n\t" - "eor.w r10, r10, r6, lsl #8 \n\t" - "eor.w r10, r10, r11, lsl #16 \n\t" - "eor.w r10, r10, r12, lsl #24 \n\t" - "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) - - // AddRoundKey and AddRoundConst(from roundKeys) - - // r9( s9 s8 s11 s10) - // r10(s12 s14 s14 s13) - - // MixColumn - "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 - "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 - "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 - // r4 ----------------> r4 - // round 25 - - // SubCell+ShiftRow+AC(c2) - // r3 (s3 s2 s1 s0) - // r4 (s7 s6 s5 s4) - // r5 (s11 s10 s9 s8) - // r6 (s15 s14 s13 s12) - - // 1st-2nd line - // r3(s3 s2 s1 s0) - "uxtb.w r9, r3, ror #24 \n\t" // s3 - "uxtb.w r8, r3, ror #16 \n\t" // s2 - "uxtb.w r7, r3, ror #8 \n\t" // s1 - "uxtb.w r3, r3 \n\t" // s0 - // r4(s6 s5 s4 s7) - "uxtb.w r12, r4, ror #16 \n\t" // s6 - "uxtb.w r11, r4, ror #8 \n\t" // s5 - "uxtb.w r10, r4 \n\t" // s4 - "uxtb.w r4, r4, ror #24 \n\t" // s7 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "eor.w r3, r3, r7, lsl #8 \n\t" - "eor.w r3, r3, r8, lsl #16 \n\t" - "eor.w r3, r3, r9, lsl #24 \n\t" - "eor.w r4, r4, r10, lsl #8 \n\t" - "eor.w r4, r4, r11, lsl #16 \n\t" - "eor.w r4, r4, r12, lsl #24 \n\t" - - // 3rd-4th line - // r5(s9 s8 s11 s10) - "uxtb.w r9, r5, ror #8 \n\t" // s9 - "uxtb.w r8, r5 \n\t" // s8 - "uxtb.w r7, r5, ror #24 \n\t" // s11 - "uxtb.w r5, r5, ror #16 \n\t" // s10 - // r6(s12 s15 s14 s13) - "uxtb.w r12, r6 \n\t" // s12 - "uxtb.w r11, r6, ror #24 \n\t" // s15 - "uxtb.w r10, r6, ror #16 \n\t" // s14 - "uxtb.w r6, r6, ror #8 \n\t" // s13 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "eor.w r5, r5, r7, lsl #8 \n\t" - "eor.w r5, r5, r8, lsl #16 \n\t" - "eor.w r5, r5, r9, lsl #24 \n\t" - "eor.w r6, r6, r10, lsl #8 \n\t" - "eor.w r6, r6, r11, lsl #16 \n\t" - "eor.w r6, r6, r12, lsl #24 \n\t" - - // AddRoundKey and AddRoundConst(from roundKeys) - "ldr.w r9, [r1,#32] \n\t" // load TK1 - "ldr.w r10, [r1,#36] \n\t" // load TK1 - "ldr.w r11, [r1,#256] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "ldr.w r12, [r1,#260] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - - "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) - "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) - // r8( s9 s8 s11 s10) - // r6(s12 s14 s14 s13) - - // MixColumn - "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 - "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 - "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 - // r8 ----------------> r8 - - // round 26 - - // SubCell+ShiftRow+AC(c2) - // r7 (s3 s2 s1 s0) - // r8 (s7 s6 s5 s4) - // r9 (s11 s10 s9 s8) - // r10(s15 s14 s13 s12) - - // 1st-2nd line - // r7(s3 s2 s1 s0) - "uxtb.w r5, r7, ror #24 \n\t" // s3 - "uxtb.w r4, r7, ror #16 \n\t" // s2 - "uxtb.w r3, r7, ror #8 \n\t" // s1 - "uxtb.w r7, r7 \n\t" // s0 - // r8(s6 s5 s4 s7) - "uxtb.w r12, r8, ror #16 \n\t" // s6 - "uxtb.w r11, r8, ror #8 \n\t" // s5 - "uxtb.w r6, r8 \n\t" // s4 - "uxtb.w r8, r8, ror #24 \n\t" // s7 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldr.w r0, [r1,#264] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r7, r7, r3, lsl #8 \n\t" - "eor.w r7, r7, r4, lsl #16 \n\t" - "eor.w r7, r7, r5, lsl #24 \n\t" - "eor.w r8, r8, r6, lsl #8 \n\t" - "eor.w r8, r8, r11, lsl #16 \n\t" - "eor.w r8, r8, r12, lsl #24 \n\t" - "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) - - // 3rd-4th line - // r9(s9 s8 s11 s10) - "uxtb.w r5, r9, ror #8 \n\t" // s9 - "uxtb.w r7, r9 \n\t" // s8 - "uxtb.w r3, r9, ror #24 \n\t" // s11 - "uxtb.w r9, r9, ror #16 \n\t" // s10 - // r10(s12 s15 s14 s13) - "uxtb.w r12, r10 \n\t" // s12 - "uxtb.w r11, r10, ror #24 \n\t" // s15 - "uxtb.w r6, r10, ror #16 \n\t" // s14 - "uxtb.w r10, r10, ror #8 \n\t" // s13 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldr.w r0, [r1,#268] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r9, r9, r3, lsl #8 \n\t" - "eor.w r9, r9, r7, lsl #16 \n\t" - "eor.w r9, r9, r5, lsl #24 \n\t" - "eor.w r10, r10, r6, lsl #8 \n\t" - "eor.w r10, r10, r11, lsl #16 \n\t" - "eor.w r10, r10, r12, lsl #24 \n\t" - "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) - - // AddRoundKey and AddRoundConst(from roundKeys) - - // r9( s9 s8 s11 s10) - // r10(s12 s14 s14 s13) - - // MixColumn - "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 - "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 - "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 - // r4 ----------------> r4 - // round 27 - - // SubCell+ShiftRow+AC(c2) - // r3 (s3 s2 s1 s0) - // r4 (s7 s6 s5 s4) - // r5 (s11 s10 s9 s8) - // r6 (s15 s14 s13 s12) - - // 1st-2nd line - // r3(s3 s2 s1 s0) - "uxtb.w r9, r3, ror #24 \n\t" // s3 - "uxtb.w r8, r3, ror #16 \n\t" // s2 - "uxtb.w r7, r3, ror #8 \n\t" // s1 - "uxtb.w r3, r3 \n\t" // s0 - // r4(s6 s5 s4 s7) - "uxtb.w r12, r4, ror #16 \n\t" // s6 - "uxtb.w r11, r4, ror #8 \n\t" // s5 - "uxtb.w r10, r4 \n\t" // s4 - "uxtb.w r4, r4, ror #24 \n\t" // s7 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "eor.w r3, r3, r7, lsl #8 \n\t" - "eor.w r3, r3, r8, lsl #16 \n\t" - "eor.w r3, r3, r9, lsl #24 \n\t" - "eor.w r4, r4, r10, lsl #8 \n\t" - "eor.w r4, r4, r11, lsl #16 \n\t" - "eor.w r4, r4, r12, lsl #24 \n\t" - - // 3rd-4th line - // r5(s9 s8 s11 s10) - "uxtb.w r9, r5, ror #8 \n\t" // s9 - "uxtb.w r8, r5 \n\t" // s8 - "uxtb.w r7, r5, ror #24 \n\t" // s11 - "uxtb.w r5, r5, ror #16 \n\t" // s10 - // r6(s12 s15 s14 s13) - "uxtb.w r12, r6 \n\t" // s12 - "uxtb.w r11, r6, ror #24 \n\t" // s15 - "uxtb.w r10, r6, ror #16 \n\t" // s14 - "uxtb.w r6, r6, ror #8 \n\t" // s13 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "eor.w r5, r5, r7, lsl #8 \n\t" - "eor.w r5, r5, r8, lsl #16 \n\t" - "eor.w r5, r5, r9, lsl #24 \n\t" - "eor.w r6, r6, r10, lsl #8 \n\t" - "eor.w r6, r6, r11, lsl #16 \n\t" - "eor.w r6, r6, r12, lsl #24 \n\t" - - // AddRoundKey and AddRoundConst(from roundKeys) - "ldr.w r9, [r1,#40] \n\t" // load TK1 - "ldr.w r10, [r1,#44] \n\t" // load TK1 - "ldr.w r11, [r1,#272] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "ldr.w r12, [r1,#276] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - - "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) - "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) - // r8( s9 s8 s11 s10) - // r6(s12 s14 s14 s13) - - // MixColumn - "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 - "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 - "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 - // r8 ----------------> r8 - - // round 28 - - // SubCell+ShiftRow+AC(c2) - // r7 (s3 s2 s1 s0) - // r8 (s7 s6 s5 s4) - // r9 (s11 s10 s9 s8) - // r10(s15 s14 s13 s12) - - // 1st-2nd line - // r7(s3 s2 s1 s0) - "uxtb.w r5, r7, ror #24 \n\t" // s3 - "uxtb.w r4, r7, ror #16 \n\t" // s2 - "uxtb.w r3, r7, ror #8 \n\t" // s1 - "uxtb.w r7, r7 \n\t" // s0 - // r8(s6 s5 s4 s7) - "uxtb.w r12, r8, ror #16 \n\t" // s6 - "uxtb.w r11, r8, ror #8 \n\t" // s5 - "uxtb.w r6, r8 \n\t" // s4 - "uxtb.w r8, r8, ror #24 \n\t" // s7 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldr.w r0, [r1,#280] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r7, r7, r3, lsl #8 \n\t" - "eor.w r7, r7, r4, lsl #16 \n\t" - "eor.w r7, r7, r5, lsl #24 \n\t" - "eor.w r8, r8, r6, lsl #8 \n\t" - "eor.w r8, r8, r11, lsl #16 \n\t" - "eor.w r8, r8, r12, lsl #24 \n\t" - "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) - - // 3rd-4th line - // r9(s9 s8 s11 s10) - "uxtb.w r5, r9, ror #8 \n\t" // s9 - "uxtb.w r7, r9 \n\t" // s8 - "uxtb.w r3, r9, ror #24 \n\t" // s11 - "uxtb.w r9, r9, ror #16 \n\t" // s10 - // r10(s12 s15 s14 s13) - "uxtb.w r12, r10 \n\t" // s12 - "uxtb.w r11, r10, ror #24 \n\t" // s15 - "uxtb.w r6, r10, ror #16 \n\t" // s14 - "uxtb.w r10, r10, ror #8 \n\t" // s13 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldr.w r0, [r1,#284] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r9, r9, r3, lsl #8 \n\t" - "eor.w r9, r9, r7, lsl #16 \n\t" - "eor.w r9, r9, r5, lsl #24 \n\t" - "eor.w r10, r10, r6, lsl #8 \n\t" - "eor.w r10, r10, r11, lsl #16 \n\t" - "eor.w r10, r10, r12, lsl #24 \n\t" - "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) - - // AddRoundKey and AddRoundConst(from roundKeys) - - // r9( s9 s8 s11 s10) - // r10(s12 s14 s14 s13) - - // MixColumn - "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 - "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 - "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 - // r4 ----------------> r4 - // round 29 - - // SubCell+ShiftRow+AC(c2) - // r3 (s3 s2 s1 s0) - // r4 (s7 s6 s5 s4) - // r5 (s11 s10 s9 s8) - // r6 (s15 s14 s13 s12) - - // 1st-2nd line - // r3(s3 s2 s1 s0) - "uxtb.w r9, r3, ror #24 \n\t" // s3 - "uxtb.w r8, r3, ror #16 \n\t" // s2 - "uxtb.w r7, r3, ror #8 \n\t" // s1 - "uxtb.w r3, r3 \n\t" // s0 - // r4(s6 s5 s4 s7) - "uxtb.w r12, r4, ror #16 \n\t" // s6 - "uxtb.w r11, r4, ror #8 \n\t" // s5 - "uxtb.w r10, r4 \n\t" // s4 - "uxtb.w r4, r4, ror #24 \n\t" // s7 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "eor.w r3, r3, r7, lsl #8 \n\t" - "eor.w r3, r3, r8, lsl #16 \n\t" - "eor.w r3, r3, r9, lsl #24 \n\t" - "eor.w r4, r4, r10, lsl #8 \n\t" - "eor.w r4, r4, r11, lsl #16 \n\t" - "eor.w r4, r4, r12, lsl #24 \n\t" - - // 3rd-4th line - // r5(s9 s8 s11 s10) - "uxtb.w r9, r5, ror #8 \n\t" // s9 - "uxtb.w r8, r5 \n\t" // s8 - "uxtb.w r7, r5, ror #24 \n\t" // s11 - "uxtb.w r5, r5, ror #16 \n\t" // s10 - // r6(s12 s15 s14 s13) - "uxtb.w r12, r6 \n\t" // s12 - "uxtb.w r11, r6, ror #24 \n\t" // s15 - "uxtb.w r10, r6, ror #16 \n\t" // s14 - "uxtb.w r6, r6, ror #8 \n\t" // s13 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "eor.w r5, r5, r7, lsl #8 \n\t" - "eor.w r5, r5, r8, lsl #16 \n\t" - "eor.w r5, r5, r9, lsl #24 \n\t" - "eor.w r6, r6, r10, lsl #8 \n\t" - "eor.w r6, r6, r11, lsl #16 \n\t" - "eor.w r6, r6, r12, lsl #24 \n\t" - - // AddRoundKey and AddRoundConst(from roundKeys) - "ldr.w r9, [r1,#48] \n\t" // load TK1 - "ldr.w r10, [r1,#52] \n\t" // load TK1 - "ldr.w r11, [r1,#288] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "ldr.w r12, [r1,#292] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - - "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) - "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) - // r8( s9 s8 s11 s10) - // r6(s12 s14 s14 s13) - - // MixColumn - "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 - "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 - "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 - // r8 ----------------> r8 - - // round 30 - - // SubCell+ShiftRow+AC(c2) - // r7 (s3 s2 s1 s0) - // r8 (s7 s6 s5 s4) - // r9 (s11 s10 s9 s8) - // r10(s15 s14 s13 s12) - - // 1st-2nd line - // r7(s3 s2 s1 s0) - "uxtb.w r5, r7, ror #24 \n\t" // s3 - "uxtb.w r4, r7, ror #16 \n\t" // s2 - "uxtb.w r3, r7, ror #8 \n\t" // s1 - "uxtb.w r7, r7 \n\t" // s0 - // r8(s6 s5 s4 s7) - "uxtb.w r12, r8, ror #16 \n\t" // s6 - "uxtb.w r11, r8, ror #8 \n\t" // s5 - "uxtb.w r6, r8 \n\t" // s4 - "uxtb.w r8, r8, ror #24 \n\t" // s7 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldr.w r0, [r1,#296] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r7, r7, r3, lsl #8 \n\t" - "eor.w r7, r7, r4, lsl #16 \n\t" - "eor.w r7, r7, r5, lsl #24 \n\t" - "eor.w r8, r8, r6, lsl #8 \n\t" - "eor.w r8, r8, r11, lsl #16 \n\t" - "eor.w r8, r8, r12, lsl #24 \n\t" - "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) - - // 3rd-4th line - // r9(s9 s8 s11 s10) - "uxtb.w r5, r9, ror #8 \n\t" // s9 - "uxtb.w r7, r9 \n\t" // s8 - "uxtb.w r3, r9, ror #24 \n\t" // s11 - "uxtb.w r9, r9, ror #16 \n\t" // s10 - // r10(s12 s15 s14 s13) - "uxtb.w r12, r10 \n\t" // s12 - "uxtb.w r11, r10, ror #24 \n\t" // s15 - "uxtb.w r6, r10, ror #16 \n\t" // s14 - "uxtb.w r10, r10, ror #8 \n\t" // s13 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldr.w r0, [r1,#300] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r9, r9, r3, lsl #8 \n\t" - "eor.w r9, r9, r7, lsl #16 \n\t" - "eor.w r9, r9, r5, lsl #24 \n\t" - "eor.w r10, r10, r6, lsl #8 \n\t" - "eor.w r10, r10, r11, lsl #16 \n\t" - "eor.w r10, r10, r12, lsl #24 \n\t" - "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) - - // AddRoundKey and AddRoundConst(from roundKeys) - - // r9( s9 s8 s11 s10) - // r10(s12 s14 s14 s13) - - // MixColumn - "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 - "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 - "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 - // r4 ----------------> r4 - // round 31 - - // SubCell+ShiftRow+AC(c2) - // r3 (s3 s2 s1 s0) - // r4 (s7 s6 s5 s4) - // r5 (s11 s10 s9 s8) - // r6 (s15 s14 s13 s12) - - // 1st-2nd line - // r3(s3 s2 s1 s0) - "uxtb.w r9, r3, ror #24 \n\t" // s3 - "uxtb.w r8, r3, ror #16 \n\t" // s2 - "uxtb.w r7, r3, ror #8 \n\t" // s1 - "uxtb.w r3, r3 \n\t" // s0 - // r4(s6 s5 s4 s7) - "uxtb.w r12, r4, ror #16 \n\t" // s6 - "uxtb.w r11, r4, ror #8 \n\t" // s5 - "uxtb.w r10, r4 \n\t" // s4 - "uxtb.w r4, r4, ror #24 \n\t" // s7 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "eor.w r3, r3, r7, lsl #8 \n\t" - "eor.w r3, r3, r8, lsl #16 \n\t" - "eor.w r3, r3, r9, lsl #24 \n\t" - "eor.w r4, r4, r10, lsl #8 \n\t" - "eor.w r4, r4, r11, lsl #16 \n\t" - "eor.w r4, r4, r12, lsl #24 \n\t" - - // 3rd-4th line - // r5(s9 s8 s11 s10) - "uxtb.w r9, r5, ror #8 \n\t" // s9 - "uxtb.w r8, r5 \n\t" // s8 - "uxtb.w r7, r5, ror #24 \n\t" // s11 - "uxtb.w r5, r5, ror #16 \n\t" // s10 - // r6(s12 s15 s14 s13) - "uxtb.w r12, r6 \n\t" // s12 - "uxtb.w r11, r6, ror #24 \n\t" // s15 - "uxtb.w r10, r6, ror #16 \n\t" // s14 - "uxtb.w r6, r6, ror #8 \n\t" // s13 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "eor.w r5, r5, r7, lsl #8 \n\t" - "eor.w r5, r5, r8, lsl #16 \n\t" - "eor.w r5, r5, r9, lsl #24 \n\t" - "eor.w r6, r6, r10, lsl #8 \n\t" - "eor.w r6, r6, r11, lsl #16 \n\t" - "eor.w r6, r6, r12, lsl #24 \n\t" - - // AddRoundKey and AddRoundConst(from roundKeys) - "ldr.w r9, [r1,#56] \n\t" // load TK1 - "ldr.w r10, [r1,#60] \n\t" // load TK1 - "ldr.w r11, [r1,#304] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "ldr.w r12, [r1,#308] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - - "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) - "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) - // r8( s9 s8 s11 s10) - // r6(s12 s14 s14 s13) - - // MixColumn - "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 - "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 - "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 - // r8 ----------------> r8 - - // round 32 - - // SubCell+ShiftRow+AC(c2) - // r7 (s3 s2 s1 s0) - // r8 (s7 s6 s5 s4) - // r9 (s11 s10 s9 s8) - // r10(s15 s14 s13 s12) - - // 1st-2nd line - // r7(s3 s2 s1 s0) - "uxtb.w r5, r7, ror #24 \n\t" // s3 - "uxtb.w r4, r7, ror #16 \n\t" // s2 - "uxtb.w r3, r7, ror #8 \n\t" // s1 - "uxtb.w r7, r7 \n\t" // s0 - // r8(s6 s5 s4 s7) - "uxtb.w r12, r8, ror #16 \n\t" // s6 - "uxtb.w r11, r8, ror #8 \n\t" // s5 - "uxtb.w r6, r8 \n\t" // s4 - "uxtb.w r8, r8, ror #24 \n\t" // s7 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldr.w r0, [r1,#312] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r7, r7, r3, lsl #8 \n\t" - "eor.w r7, r7, r4, lsl #16 \n\t" - "eor.w r7, r7, r5, lsl #24 \n\t" - "eor.w r8, r8, r6, lsl #8 \n\t" - "eor.w r8, r8, r11, lsl #16 \n\t" - "eor.w r8, r8, r12, lsl #24 \n\t" - "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) - - // 3rd-4th line - // r9(s9 s8 s11 s10) - "uxtb.w r5, r9, ror #8 \n\t" // s9 - "uxtb.w r7, r9 \n\t" // s8 - "uxtb.w r3, r9, ror #24 \n\t" // s11 - "uxtb.w r9, r9, ror #16 \n\t" // s10 - // r10(s12 s15 s14 s13) - "uxtb.w r12, r10 \n\t" // s12 - "uxtb.w r11, r10, ror #24 \n\t" // s15 - "uxtb.w r6, r10, ror #16 \n\t" // s14 - "uxtb.w r10, r10, ror #8 \n\t" // s13 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldr.w r0, [r1,#316] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r9, r9, r3, lsl #8 \n\t" - "eor.w r9, r9, r7, lsl #16 \n\t" - "eor.w r9, r9, r5, lsl #24 \n\t" - "eor.w r10, r10, r6, lsl #8 \n\t" - "eor.w r10, r10, r11, lsl #16 \n\t" - "eor.w r10, r10, r12, lsl #24 \n\t" - "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) - - // AddRoundKey and AddRoundConst(from roundKeys) - - // r9( s9 s8 s11 s10) - // r10(s12 s14 s14 s13) - - // MixColumn - "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 - "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 - "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 - // r4 ----------------> r4 - // round 33 - - // SubCell+ShiftRow+AC(c2) - // r3 (s3 s2 s1 s0) - // r4 (s7 s6 s5 s4) - // r5 (s11 s10 s9 s8) - // r6 (s15 s14 s13 s12) - - // 1st-2nd line - // r3(s3 s2 s1 s0) - "uxtb.w r9, r3, ror #24 \n\t" // s3 - "uxtb.w r8, r3, ror #16 \n\t" // s2 - "uxtb.w r7, r3, ror #8 \n\t" // s1 - "uxtb.w r3, r3 \n\t" // s0 - // r4(s6 s5 s4 s7) - "uxtb.w r12, r4, ror #16 \n\t" // s6 - "uxtb.w r11, r4, ror #8 \n\t" // s5 - "uxtb.w r10, r4 \n\t" // s4 - "uxtb.w r4, r4, ror #24 \n\t" // s7 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "eor.w r3, r3, r7, lsl #8 \n\t" - "eor.w r3, r3, r8, lsl #16 \n\t" - "eor.w r3, r3, r9, lsl #24 \n\t" - "eor.w r4, r4, r10, lsl #8 \n\t" - "eor.w r4, r4, r11, lsl #16 \n\t" - "eor.w r4, r4, r12, lsl #24 \n\t" - - // 3rd-4th line - // r5(s9 s8 s11 s10) - "uxtb.w r9, r5, ror #8 \n\t" // s9 - "uxtb.w r8, r5 \n\t" // s8 - "uxtb.w r7, r5, ror #24 \n\t" // s11 - "uxtb.w r5, r5, ror #16 \n\t" // s10 - // r6(s12 s15 s14 s13) - "uxtb.w r12, r6 \n\t" // s12 - "uxtb.w r11, r6, ror #24 \n\t" // s15 - "uxtb.w r10, r6, ror #16 \n\t" // s14 - "uxtb.w r6, r6, ror #8 \n\t" // s13 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "eor.w r5, r5, r7, lsl #8 \n\t" - "eor.w r5, r5, r8, lsl #16 \n\t" - "eor.w r5, r5, r9, lsl #24 \n\t" - "eor.w r6, r6, r10, lsl #8 \n\t" - "eor.w r6, r6, r11, lsl #16 \n\t" - "eor.w r6, r6, r12, lsl #24 \n\t" - - // AddRoundKey and AddRoundConst(from roundKeys) - "ldr.w r9, [r1,#0] \n\t" // load TK1 - "ldr.w r10, [r1,#4] \n\t" // load TK1 - "ldr.w r11, [r1,#320] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "ldr.w r12, [r1,#324] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - - "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) - "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) - // r8( s9 s8 s11 s10) - // r6(s12 s14 s14 s13) - - // MixColumn - "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 - "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 - "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 - // r8 ----------------> r8 - - // round 34 - - // SubCell+ShiftRow+AC(c2) - // r7 (s3 s2 s1 s0) - // r8 (s7 s6 s5 s4) - // r9 (s11 s10 s9 s8) - // r10(s15 s14 s13 s12) - - // 1st-2nd line - // r7(s3 s2 s1 s0) - "uxtb.w r5, r7, ror #24 \n\t" // s3 - "uxtb.w r4, r7, ror #16 \n\t" // s2 - "uxtb.w r3, r7, ror #8 \n\t" // s1 - "uxtb.w r7, r7 \n\t" // s0 - // r8(s6 s5 s4 s7) - "uxtb.w r12, r8, ror #16 \n\t" // s6 - "uxtb.w r11, r8, ror #8 \n\t" // s5 - "uxtb.w r6, r8 \n\t" // s4 - "uxtb.w r8, r8, ror #24 \n\t" // s7 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldr.w r0, [r1,#328] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r7, r7, r3, lsl #8 \n\t" - "eor.w r7, r7, r4, lsl #16 \n\t" - "eor.w r7, r7, r5, lsl #24 \n\t" - "eor.w r8, r8, r6, lsl #8 \n\t" - "eor.w r8, r8, r11, lsl #16 \n\t" - "eor.w r8, r8, r12, lsl #24 \n\t" - "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) - - // 3rd-4th line - // r9(s9 s8 s11 s10) - "uxtb.w r5, r9, ror #8 \n\t" // s9 - "uxtb.w r7, r9 \n\t" // s8 - "uxtb.w r3, r9, ror #24 \n\t" // s11 - "uxtb.w r9, r9, ror #16 \n\t" // s10 - // r10(s12 s15 s14 s13) - "uxtb.w r12, r10 \n\t" // s12 - "uxtb.w r11, r10, ror #24 \n\t" // s15 - "uxtb.w r6, r10, ror #16 \n\t" // s14 - "uxtb.w r10, r10, ror #8 \n\t" // s13 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldr.w r0, [r1,#332] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r9, r9, r3, lsl #8 \n\t" - "eor.w r9, r9, r7, lsl #16 \n\t" - "eor.w r9, r9, r5, lsl #24 \n\t" - "eor.w r10, r10, r6, lsl #8 \n\t" - "eor.w r10, r10, r11, lsl #16 \n\t" - "eor.w r10, r10, r12, lsl #24 \n\t" - "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) - - // AddRoundKey and AddRoundConst(from roundKeys) - - // r9( s9 s8 s11 s10) - // r10(s12 s14 s14 s13) - - // MixColumn - "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 - "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 - "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 - // r4 ----------------> r4 - // round 35 - - // SubCell+ShiftRow+AC(c2) - // r3 (s3 s2 s1 s0) - // r4 (s7 s6 s5 s4) - // r5 (s11 s10 s9 s8) - // r6 (s15 s14 s13 s12) - - // 1st-2nd line - // r3(s3 s2 s1 s0) - "uxtb.w r9, r3, ror #24 \n\t" // s3 - "uxtb.w r8, r3, ror #16 \n\t" // s2 - "uxtb.w r7, r3, ror #8 \n\t" // s1 - "uxtb.w r3, r3 \n\t" // s0 - // r4(s6 s5 s4 s7) - "uxtb.w r12, r4, ror #16 \n\t" // s6 - "uxtb.w r11, r4, ror #8 \n\t" // s5 - "uxtb.w r10, r4 \n\t" // s4 - "uxtb.w r4, r4, ror #24 \n\t" // s7 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "eor.w r3, r3, r7, lsl #8 \n\t" - "eor.w r3, r3, r8, lsl #16 \n\t" - "eor.w r3, r3, r9, lsl #24 \n\t" - "eor.w r4, r4, r10, lsl #8 \n\t" - "eor.w r4, r4, r11, lsl #16 \n\t" - "eor.w r4, r4, r12, lsl #24 \n\t" - - // 3rd-4th line - // r5(s9 s8 s11 s10) - "uxtb.w r9, r5, ror #8 \n\t" // s9 - "uxtb.w r8, r5 \n\t" // s8 - "uxtb.w r7, r5, ror #24 \n\t" // s11 - "uxtb.w r5, r5, ror #16 \n\t" // s10 - // r6(s12 s15 s14 s13) - "uxtb.w r12, r6 \n\t" // s12 - "uxtb.w r11, r6, ror #24 \n\t" // s15 - "uxtb.w r10, r6, ror #16 \n\t" // s14 - "uxtb.w r6, r6, ror #8 \n\t" // s13 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "eor.w r5, r5, r7, lsl #8 \n\t" - "eor.w r5, r5, r8, lsl #16 \n\t" - "eor.w r5, r5, r9, lsl #24 \n\t" - "eor.w r6, r6, r10, lsl #8 \n\t" - "eor.w r6, r6, r11, lsl #16 \n\t" - "eor.w r6, r6, r12, lsl #24 \n\t" - - // AddRoundKey and AddRoundConst(from roundKeys) - "ldr.w r9, [r1,#8] \n\t" // load TK1 - "ldr.w r10, [r1,#12] \n\t" // load TK1 - "ldr.w r11, [r1,#336] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "ldr.w r12, [r1,#340] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - - "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) - "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) - // r8( s9 s8 s11 s10) - // r6(s12 s14 s14 s13) - - // MixColumn - "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 - "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 - "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 - // r8 ----------------> r8 - - // round 36 - - // SubCell+ShiftRow+AC(c2) - // r7 (s3 s2 s1 s0) - // r8 (s7 s6 s5 s4) - // r9 (s11 s10 s9 s8) - // r10(s15 s14 s13 s12) - - // 1st-2nd line - // r7(s3 s2 s1 s0) - "uxtb.w r5, r7, ror #24 \n\t" // s3 - "uxtb.w r4, r7, ror #16 \n\t" // s2 - "uxtb.w r3, r7, ror #8 \n\t" // s1 - "uxtb.w r7, r7 \n\t" // s0 - // r8(s6 s5 s4 s7) - "uxtb.w r12, r8, ror #16 \n\t" // s6 - "uxtb.w r11, r8, ror #8 \n\t" // s5 - "uxtb.w r6, r8 \n\t" // s4 - "uxtb.w r8, r8, ror #24 \n\t" // s7 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldr.w r0, [r1,#344] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r7, r7, r3, lsl #8 \n\t" - "eor.w r7, r7, r4, lsl #16 \n\t" - "eor.w r7, r7, r5, lsl #24 \n\t" - "eor.w r8, r8, r6, lsl #8 \n\t" - "eor.w r8, r8, r11, lsl #16 \n\t" - "eor.w r8, r8, r12, lsl #24 \n\t" - "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) - - // 3rd-4th line - // r9(s9 s8 s11 s10) - "uxtb.w r5, r9, ror #8 \n\t" // s9 - "uxtb.w r7, r9 \n\t" // s8 - "uxtb.w r3, r9, ror #24 \n\t" // s11 - "uxtb.w r9, r9, ror #16 \n\t" // s10 - // r10(s12 s15 s14 s13) - "uxtb.w r12, r10 \n\t" // s12 - "uxtb.w r11, r10, ror #24 \n\t" // s15 - "uxtb.w r6, r10, ror #16 \n\t" // s14 - "uxtb.w r10, r10, ror #8 \n\t" // s13 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldr.w r0, [r1,#348] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r9, r9, r3, lsl #8 \n\t" - "eor.w r9, r9, r7, lsl #16 \n\t" - "eor.w r9, r9, r5, lsl #24 \n\t" - "eor.w r10, r10, r6, lsl #8 \n\t" - "eor.w r10, r10, r11, lsl #16 \n\t" - "eor.w r10, r10, r12, lsl #24 \n\t" - "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) - - // AddRoundKey and AddRoundConst(from roundKeys) - - // r9( s9 s8 s11 s10) - // r10(s12 s14 s14 s13) - - // MixColumn - "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 - "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 - "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 - // r4 ----------------> r4 - // round 37 - - // SubCell+ShiftRow+AC(c2) - // r3 (s3 s2 s1 s0) - // r4 (s7 s6 s5 s4) - // r5 (s11 s10 s9 s8) - // r6 (s15 s14 s13 s12) - - // 1st-2nd line - // r3(s3 s2 s1 s0) - "uxtb.w r9, r3, ror #24 \n\t" // s3 - "uxtb.w r8, r3, ror #16 \n\t" // s2 - "uxtb.w r7, r3, ror #8 \n\t" // s1 - "uxtb.w r3, r3 \n\t" // s0 - // r4(s6 s5 s4 s7) - "uxtb.w r12, r4, ror #16 \n\t" // s6 - "uxtb.w r11, r4, ror #8 \n\t" // s5 - "uxtb.w r10, r4 \n\t" // s4 - "uxtb.w r4, r4, ror #24 \n\t" // s7 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "eor.w r3, r3, r7, lsl #8 \n\t" - "eor.w r3, r3, r8, lsl #16 \n\t" - "eor.w r3, r3, r9, lsl #24 \n\t" - "eor.w r4, r4, r10, lsl #8 \n\t" - "eor.w r4, r4, r11, lsl #16 \n\t" - "eor.w r4, r4, r12, lsl #24 \n\t" - - // 3rd-4th line - // r5(s9 s8 s11 s10) - "uxtb.w r9, r5, ror #8 \n\t" // s9 - "uxtb.w r8, r5 \n\t" // s8 - "uxtb.w r7, r5, ror #24 \n\t" // s11 - "uxtb.w r5, r5, ror #16 \n\t" // s10 - // r6(s12 s15 s14 s13) - "uxtb.w r12, r6 \n\t" // s12 - "uxtb.w r11, r6, ror #24 \n\t" // s15 - "uxtb.w r10, r6, ror #16 \n\t" // s14 - "uxtb.w r6, r6, ror #8 \n\t" // s13 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "eor.w r5, r5, r7, lsl #8 \n\t" - "eor.w r5, r5, r8, lsl #16 \n\t" - "eor.w r5, r5, r9, lsl #24 \n\t" - "eor.w r6, r6, r10, lsl #8 \n\t" - "eor.w r6, r6, r11, lsl #16 \n\t" - "eor.w r6, r6, r12, lsl #24 \n\t" - - // AddRoundKey and AddRoundConst(from roundKeys) - "ldr.w r9, [r1,#16] \n\t" // load TK1 - "ldr.w r10, [r1,#20] \n\t" // load TK1 - "ldr.w r11, [r1,#352] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "ldr.w r12, [r1,#356] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - - "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) - "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) - // r8( s9 s8 s11 s10) - // r6(s12 s14 s14 s13) - - // MixColumn - "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 - "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 - "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 - // r8 ----------------> r8 - - // round 38 - - // SubCell+ShiftRow+AC(c2) - // r7 (s3 s2 s1 s0) - // r8 (s7 s6 s5 s4) - // r9 (s11 s10 s9 s8) - // r10(s15 s14 s13 s12) - - // 1st-2nd line - // r7(s3 s2 s1 s0) - "uxtb.w r5, r7, ror #24 \n\t" // s3 - "uxtb.w r4, r7, ror #16 \n\t" // s2 - "uxtb.w r3, r7, ror #8 \n\t" // s1 - "uxtb.w r7, r7 \n\t" // s0 - // r8(s6 s5 s4 s7) - "uxtb.w r12, r8, ror #16 \n\t" // s6 - "uxtb.w r11, r8, ror #8 \n\t" // s5 - "uxtb.w r6, r8 \n\t" // s4 - "uxtb.w r8, r8, ror #24 \n\t" // s7 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldr.w r0, [r1,#360] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r7, r7, r3, lsl #8 \n\t" - "eor.w r7, r7, r4, lsl #16 \n\t" - "eor.w r7, r7, r5, lsl #24 \n\t" - "eor.w r8, r8, r6, lsl #8 \n\t" - "eor.w r8, r8, r11, lsl #16 \n\t" - "eor.w r8, r8, r12, lsl #24 \n\t" - "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) - - // 3rd-4th line - // r9(s9 s8 s11 s10) - "uxtb.w r5, r9, ror #8 \n\t" // s9 - "uxtb.w r7, r9 \n\t" // s8 - "uxtb.w r3, r9, ror #24 \n\t" // s11 - "uxtb.w r9, r9, ror #16 \n\t" // s10 - // r10(s12 s15 s14 s13) - "uxtb.w r12, r10 \n\t" // s12 - "uxtb.w r11, r10, ror #24 \n\t" // s15 - "uxtb.w r6, r10, ror #16 \n\t" // s14 - "uxtb.w r10, r10, ror #8 \n\t" // s13 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldr.w r0, [r1,#364] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r9, r9, r3, lsl #8 \n\t" - "eor.w r9, r9, r7, lsl #16 \n\t" - "eor.w r9, r9, r5, lsl #24 \n\t" - "eor.w r10, r10, r6, lsl #8 \n\t" - "eor.w r10, r10, r11, lsl #16 \n\t" - "eor.w r10, r10, r12, lsl #24 \n\t" - "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) - - // AddRoundKey and AddRoundConst(from roundKeys) - - // r9( s9 s8 s11 s10) - // r10(s12 s14 s14 s13) - - // MixColumn - "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 - "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 - "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 - // r4 ----------------> r4 - // round 39 - - // SubCell+ShiftRow+AC(c2) - // r3 (s3 s2 s1 s0) - // r4 (s7 s6 s5 s4) - // r5 (s11 s10 s9 s8) - // r6 (s15 s14 s13 s12) - - // 1st-2nd line - // r3(s3 s2 s1 s0) - "uxtb.w r9, r3, ror #24 \n\t" // s3 - "uxtb.w r8, r3, ror #16 \n\t" // s2 - "uxtb.w r7, r3, ror #8 \n\t" // s1 - "uxtb.w r3, r3 \n\t" // s0 - // r4(s6 s5 s4 s7) - "uxtb.w r12, r4, ror #16 \n\t" // s6 - "uxtb.w r11, r4, ror #8 \n\t" // s5 - "uxtb.w r10, r4 \n\t" // s4 - "uxtb.w r4, r4, ror #24 \n\t" // s7 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "eor.w r3, r3, r7, lsl #8 \n\t" - "eor.w r3, r3, r8, lsl #16 \n\t" - "eor.w r3, r3, r9, lsl #24 \n\t" - "eor.w r4, r4, r10, lsl #8 \n\t" - "eor.w r4, r4, r11, lsl #16 \n\t" - "eor.w r4, r4, r12, lsl #24 \n\t" - - // 3rd-4th line - // r5(s9 s8 s11 s10) - "uxtb.w r9, r5, ror #8 \n\t" // s9 - "uxtb.w r8, r5 \n\t" // s8 - "uxtb.w r7, r5, ror #24 \n\t" // s11 - "uxtb.w r5, r5, ror #16 \n\t" // s10 - // r6(s12 s15 s14 s13) - "uxtb.w r12, r6 \n\t" // s12 - "uxtb.w r11, r6, ror #24 \n\t" // s15 - "uxtb.w r10, r6, ror #16 \n\t" // s14 - "uxtb.w r6, r6, ror #8 \n\t" // s13 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "eor.w r5, r5, r7, lsl #8 \n\t" - "eor.w r5, r5, r8, lsl #16 \n\t" - "eor.w r5, r5, r9, lsl #24 \n\t" - "eor.w r6, r6, r10, lsl #8 \n\t" - "eor.w r6, r6, r11, lsl #16 \n\t" - "eor.w r6, r6, r12, lsl #24 \n\t" - - // AddRoundKey and AddRoundConst(from roundKeys) - "ldr.w r9, [r1,#24] \n\t" // load TK1 - "ldr.w r10, [r1,#28] \n\t" // load TK1 - "ldr.w r11, [r1,#368] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "ldr.w r12, [r1,#372] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - - "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) - "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) - // r8( s9 s8 s11 s10) - // r6(s12 s14 s14 s13) - - // MixColumn - "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 - "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 - "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 - // r8 ----------------> r8 - - // round 40 - - // SubCell+ShiftRow+AC(c2) - // r7 (s3 s2 s1 s0) - // r8 (s7 s6 s5 s4) - // r9 (s11 s10 s9 s8) - // r10(s15 s14 s13 s12) - - // 1st-2nd line - // r7(s3 s2 s1 s0) - "uxtb.w r5, r7, ror #24 \n\t" // s3 - "uxtb.w r4, r7, ror #16 \n\t" // s2 - "uxtb.w r3, r7, ror #8 \n\t" // s1 - "uxtb.w r7, r7 \n\t" // s0 - // r8(s6 s5 s4 s7) - "uxtb.w r12, r8, ror #16 \n\t" // s6 - "uxtb.w r11, r8, ror #8 \n\t" // s5 - "uxtb.w r6, r8 \n\t" // s4 - "uxtb.w r8, r8, ror #24 \n\t" // s7 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldr.w r0, [r1,#376] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r7, r7, r3, lsl #8 \n\t" - "eor.w r7, r7, r4, lsl #16 \n\t" - "eor.w r7, r7, r5, lsl #24 \n\t" - "eor.w r8, r8, r6, lsl #8 \n\t" - "eor.w r8, r8, r11, lsl #16 \n\t" - "eor.w r8, r8, r12, lsl #24 \n\t" - "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) - - // 3rd-4th line - // r9(s9 s8 s11 s10) - "uxtb.w r5, r9, ror #8 \n\t" // s9 - "uxtb.w r7, r9 \n\t" // s8 - "uxtb.w r3, r9, ror #24 \n\t" // s11 - "uxtb.w r9, r9, ror #16 \n\t" // s10 - // r10(s12 s15 s14 s13) - "uxtb.w r12, r10 \n\t" // s12 - "uxtb.w r11, r10, ror #24 \n\t" // s15 - "uxtb.w r6, r10, ror #16 \n\t" // s14 - "uxtb.w r10, r10, ror #8 \n\t" // s13 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldr.w r0, [r1,#380] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r9, r9, r3, lsl #8 \n\t" - "eor.w r9, r9, r7, lsl #16 \n\t" - "eor.w r9, r9, r5, lsl #24 \n\t" - "eor.w r10, r10, r6, lsl #8 \n\t" - "eor.w r10, r10, r11, lsl #16 \n\t" - "eor.w r10, r10, r12, lsl #24 \n\t" - "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) - - // AddRoundKey and AddRoundConst(from roundKeys) - - // r9( s9 s8 s11 s10) - // r10(s12 s14 s14 s13) - - // MixColumn - "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 - "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 - "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 - // r4 ----------------> r4 - - // round 41 - - // SubCell+ShiftRow+AC(c2) - // r3 (s3 s2 s1 s0) - // r4 (s7 s6 s5 s4) - // r5 (s11 s10 s9 s8) - // r6 (s15 s14 s13 s12) - - // 1st-2nd line - // r3(s3 s2 s1 s0) - "uxtb.w r9, r3, ror #24 \n\t" // s3 - "uxtb.w r8, r3, ror #16 \n\t" // s2 - "uxtb.w r7, r3, ror #8 \n\t" // s1 - "uxtb.w r3, r3 \n\t" // s0 - // r4(s6 s5 s4 s7) - "uxtb.w r12, r4, ror #16 \n\t" // s6 - "uxtb.w r11, r4, ror #8 \n\t" // s5 - "uxtb.w r10, r4 \n\t" // s4 - "uxtb.w r4, r4, ror #24 \n\t" // s7 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "eor.w r3, r3, r7, lsl #8 \n\t" - "eor.w r3, r3, r8, lsl #16 \n\t" - "eor.w r3, r3, r9, lsl #24 \n\t" - "eor.w r4, r4, r10, lsl #8 \n\t" - "eor.w r4, r4, r11, lsl #16 \n\t" - "eor.w r4, r4, r12, lsl #24 \n\t" - - // 3rd-4th line - // r5(s9 s8 s11 s10) - "uxtb.w r9, r5, ror #8 \n\t" // s9 - "uxtb.w r8, r5 \n\t" // s8 - "uxtb.w r7, r5, ror #24 \n\t" // s11 - "uxtb.w r5, r5, ror #16 \n\t" // s10 - // r6(s12 s15 s14 s13) - "uxtb.w r12, r6 \n\t" // s12 - "uxtb.w r11, r6, ror #24 \n\t" // s15 - "uxtb.w r10, r6, ror #16 \n\t" // s14 - "uxtb.w r6, r6, ror #8 \n\t" // s13 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "eor.w r5, r5, r7, lsl #8 \n\t" - "eor.w r5, r5, r8, lsl #16 \n\t" - "eor.w r5, r5, r9, lsl #24 \n\t" - "eor.w r6, r6, r10, lsl #8 \n\t" - "eor.w r6, r6, r11, lsl #16 \n\t" - "eor.w r6, r6, r12, lsl #24 \n\t" - - // AddRoundKey and AddRoundConst(from roundKeys) - "ldr.w r9, [r1,#32] \n\t" // load TK1 - "ldr.w r10, [r1,#36] \n\t" // load TK1 - "ldr.w r11, [r1,#384] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "ldr.w r12, [r1,#388] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - - "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) - "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) - // r8( s9 s8 s11 s10) - // r6(s12 s14 s14 s13) - - // MixColumn - "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 - "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 - "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 - // r8 ----------------> r8 - - // round 42 - - // SubCell+ShiftRow+AC(c2) - // r7 (s3 s2 s1 s0) - // r8 (s7 s6 s5 s4) - // r9 (s11 s10 s9 s8) - // r10(s15 s14 s13 s12) - - // 1st-2nd line - // r7(s3 s2 s1 s0) - "uxtb.w r5, r7, ror #24 \n\t" // s3 - "uxtb.w r4, r7, ror #16 \n\t" // s2 - "uxtb.w r3, r7, ror #8 \n\t" // s1 - "uxtb.w r7, r7 \n\t" // s0 - // r8(s6 s5 s4 s7) - "uxtb.w r12, r8, ror #16 \n\t" // s6 - "uxtb.w r11, r8, ror #8 \n\t" // s5 - "uxtb.w r6, r8 \n\t" // s4 - "uxtb.w r8, r8, ror #24 \n\t" // s7 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldr.w r0, [r1,#392] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r7, r7, r3, lsl #8 \n\t" - "eor.w r7, r7, r4, lsl #16 \n\t" - "eor.w r7, r7, r5, lsl #24 \n\t" - "eor.w r8, r8, r6, lsl #8 \n\t" - "eor.w r8, r8, r11, lsl #16 \n\t" - "eor.w r8, r8, r12, lsl #24 \n\t" - "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) - - // 3rd-4th line - // r9(s9 s8 s11 s10) - "uxtb.w r5, r9, ror #8 \n\t" // s9 - "uxtb.w r7, r9 \n\t" // s8 - "uxtb.w r3, r9, ror #24 \n\t" // s11 - "uxtb.w r9, r9, ror #16 \n\t" // s10 - // r10(s12 s15 s14 s13) - "uxtb.w r12, r10 \n\t" // s12 - "uxtb.w r11, r10, ror #24 \n\t" // s15 - "uxtb.w r6, r10, ror #16 \n\t" // s14 - "uxtb.w r10, r10, ror #8 \n\t" // s13 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldr.w r0, [r1,#396] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r9, r9, r3, lsl #8 \n\t" - "eor.w r9, r9, r7, lsl #16 \n\t" - "eor.w r9, r9, r5, lsl #24 \n\t" - "eor.w r10, r10, r6, lsl #8 \n\t" - "eor.w r10, r10, r11, lsl #16 \n\t" - "eor.w r10, r10, r12, lsl #24 \n\t" - "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) - - // AddRoundKey and AddRoundConst(from roundKeys) - - // r9( s9 s8 s11 s10) - // r10(s12 s14 s14 s13) - - // MixColumn - "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 - "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 - "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 - // r4 ----------------> r4 - // round 43 - - // SubCell+ShiftRow+AC(c2) - // r3 (s3 s2 s1 s0) - // r4 (s7 s6 s5 s4) - // r5 (s11 s10 s9 s8) - // r6 (s15 s14 s13 s12) - - // 1st-2nd line - // r3(s3 s2 s1 s0) - "uxtb.w r9, r3, ror #24 \n\t" // s3 - "uxtb.w r8, r3, ror #16 \n\t" // s2 - "uxtb.w r7, r3, ror #8 \n\t" // s1 - "uxtb.w r3, r3 \n\t" // s0 - // r4(s6 s5 s4 s7) - "uxtb.w r12, r4, ror #16 \n\t" // s6 - "uxtb.w r11, r4, ror #8 \n\t" // s5 - "uxtb.w r10, r4 \n\t" // s4 - "uxtb.w r4, r4, ror #24 \n\t" // s7 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "eor.w r3, r3, r7, lsl #8 \n\t" - "eor.w r3, r3, r8, lsl #16 \n\t" - "eor.w r3, r3, r9, lsl #24 \n\t" - "eor.w r4, r4, r10, lsl #8 \n\t" - "eor.w r4, r4, r11, lsl #16 \n\t" - "eor.w r4, r4, r12, lsl #24 \n\t" - - // 3rd-4th line - // r5(s9 s8 s11 s10) - "uxtb.w r9, r5, ror #8 \n\t" // s9 - "uxtb.w r8, r5 \n\t" // s8 - "uxtb.w r7, r5, ror #24 \n\t" // s11 - "uxtb.w r5, r5, ror #16 \n\t" // s10 - // r6(s12 s15 s14 s13) - "uxtb.w r12, r6 \n\t" // s12 - "uxtb.w r11, r6, ror #24 \n\t" // s15 - "uxtb.w r10, r6, ror #16 \n\t" // s14 - "uxtb.w r6, r6, ror #8 \n\t" // s13 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "eor.w r5, r5, r7, lsl #8 \n\t" - "eor.w r5, r5, r8, lsl #16 \n\t" - "eor.w r5, r5, r9, lsl #24 \n\t" - "eor.w r6, r6, r10, lsl #8 \n\t" - "eor.w r6, r6, r11, lsl #16 \n\t" - "eor.w r6, r6, r12, lsl #24 \n\t" - - // AddRoundKey and AddRoundConst(from roundKeys) - "ldr.w r9, [r1,#40] \n\t" // load TK1 - "ldr.w r10, [r1,#44] \n\t" // load TK1 - "ldr.w r11, [r1,#400] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "ldr.w r12, [r1,#404] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - - "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) - "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) - // r8( s9 s8 s11 s10) - // r6(s12 s14 s14 s13) - - // MixColumn - "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 - "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 - "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 - // r8 ----------------> r8 - - // round 44 - - // SubCell+ShiftRow+AC(c2) - // r7 (s3 s2 s1 s0) - // r8 (s7 s6 s5 s4) - // r9 (s11 s10 s9 s8) - // r10(s15 s14 s13 s12) - - // 1st-2nd line - // r7(s3 s2 s1 s0) - "uxtb.w r5, r7, ror #24 \n\t" // s3 - "uxtb.w r4, r7, ror #16 \n\t" // s2 - "uxtb.w r3, r7, ror #8 \n\t" // s1 - "uxtb.w r7, r7 \n\t" // s0 - // r8(s6 s5 s4 s7) - "uxtb.w r12, r8, ror #16 \n\t" // s6 - "uxtb.w r11, r8, ror #8 \n\t" // s5 - "uxtb.w r6, r8 \n\t" // s4 - "uxtb.w r8, r8, ror #24 \n\t" // s7 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldr.w r0, [r1,#408] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r7, r7, r3, lsl #8 \n\t" - "eor.w r7, r7, r4, lsl #16 \n\t" - "eor.w r7, r7, r5, lsl #24 \n\t" - "eor.w r8, r8, r6, lsl #8 \n\t" - "eor.w r8, r8, r11, lsl #16 \n\t" - "eor.w r8, r8, r12, lsl #24 \n\t" - "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) - - // 3rd-4th line - // r9(s9 s8 s11 s10) - "uxtb.w r5, r9, ror #8 \n\t" // s9 - "uxtb.w r7, r9 \n\t" // s8 - "uxtb.w r3, r9, ror #24 \n\t" // s11 - "uxtb.w r9, r9, ror #16 \n\t" // s10 - // r10(s12 s15 s14 s13) - "uxtb.w r12, r10 \n\t" // s12 - "uxtb.w r11, r10, ror #24 \n\t" // s15 - "uxtb.w r6, r10, ror #16 \n\t" // s14 - "uxtb.w r10, r10, ror #8 \n\t" // s13 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldr.w r0, [r1,#412] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r9, r9, r3, lsl #8 \n\t" - "eor.w r9, r9, r7, lsl #16 \n\t" - "eor.w r9, r9, r5, lsl #24 \n\t" - "eor.w r10, r10, r6, lsl #8 \n\t" - "eor.w r10, r10, r11, lsl #16 \n\t" - "eor.w r10, r10, r12, lsl #24 \n\t" - "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) - - // AddRoundKey and AddRoundConst(from roundKeys) - - // r9( s9 s8 s11 s10) - // r10(s12 s14 s14 s13) - - // MixColumn - "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 - "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 - "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 - // r4 ----------------> r4 - // round 45 - - // SubCell+ShiftRow+AC(c2) - // r3 (s3 s2 s1 s0) - // r4 (s7 s6 s5 s4) - // r5 (s11 s10 s9 s8) - // r6 (s15 s14 s13 s12) - - // 1st-2nd line - // r3(s3 s2 s1 s0) - "uxtb.w r9, r3, ror #24 \n\t" // s3 - "uxtb.w r8, r3, ror #16 \n\t" // s2 - "uxtb.w r7, r3, ror #8 \n\t" // s1 - "uxtb.w r3, r3 \n\t" // s0 - // r4(s6 s5 s4 s7) - "uxtb.w r12, r4, ror #16 \n\t" // s6 - "uxtb.w r11, r4, ror #8 \n\t" // s5 - "uxtb.w r10, r4 \n\t" // s4 - "uxtb.w r4, r4, ror #24 \n\t" // s7 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "eor.w r3, r3, r7, lsl #8 \n\t" - "eor.w r3, r3, r8, lsl #16 \n\t" - "eor.w r3, r3, r9, lsl #24 \n\t" - "eor.w r4, r4, r10, lsl #8 \n\t" - "eor.w r4, r4, r11, lsl #16 \n\t" - "eor.w r4, r4, r12, lsl #24 \n\t" - - // 3rd-4th line - // r5(s9 s8 s11 s10) - "uxtb.w r9, r5, ror #8 \n\t" // s9 - "uxtb.w r8, r5 \n\t" // s8 - "uxtb.w r7, r5, ror #24 \n\t" // s11 - "uxtb.w r5, r5, ror #16 \n\t" // s10 - // r6(s12 s15 s14 s13) - "uxtb.w r12, r6 \n\t" // s12 - "uxtb.w r11, r6, ror #24 \n\t" // s15 - "uxtb.w r10, r6, ror #16 \n\t" // s14 - "uxtb.w r6, r6, ror #8 \n\t" // s13 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "eor.w r5, r5, r7, lsl #8 \n\t" - "eor.w r5, r5, r8, lsl #16 \n\t" - "eor.w r5, r5, r9, lsl #24 \n\t" - "eor.w r6, r6, r10, lsl #8 \n\t" - "eor.w r6, r6, r11, lsl #16 \n\t" - "eor.w r6, r6, r12, lsl #24 \n\t" - - // AddRoundKey and AddRoundConst(from roundKeys) - "ldr.w r9, [r1,#48] \n\t" // load TK1 - "ldr.w r10, [r1,#52] \n\t" // load TK1 - "ldr.w r11, [r1,#416] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "ldr.w r12, [r1,#420] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - - "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) - "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) - // r8( s9 s8 s11 s10) - // r6(s12 s14 s14 s13) - - // MixColumn - "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 - "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 - "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 - // r8 ----------------> r8 - - // round 46 - - // SubCell+ShiftRow+AC(c2) - // r7 (s3 s2 s1 s0) - // r8 (s7 s6 s5 s4) - // r9 (s11 s10 s9 s8) - // r10(s15 s14 s13 s12) - - // 1st-2nd line - // r7(s3 s2 s1 s0) - "uxtb.w r5, r7, ror #24 \n\t" // s3 - "uxtb.w r4, r7, ror #16 \n\t" // s2 - "uxtb.w r3, r7, ror #8 \n\t" // s1 - "uxtb.w r7, r7 \n\t" // s0 - // r8(s6 s5 s4 s7) - "uxtb.w r12, r8, ror #16 \n\t" // s6 - "uxtb.w r11, r8, ror #8 \n\t" // s5 - "uxtb.w r6, r8 \n\t" // s4 - "uxtb.w r8, r8, ror #24 \n\t" // s7 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldr.w r0, [r1,#424] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r7, r7, r3, lsl #8 \n\t" - "eor.w r7, r7, r4, lsl #16 \n\t" - "eor.w r7, r7, r5, lsl #24 \n\t" - "eor.w r8, r8, r6, lsl #8 \n\t" - "eor.w r8, r8, r11, lsl #16 \n\t" - "eor.w r8, r8, r12, lsl #24 \n\t" - "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) - - // 3rd-4th line - // r9(s9 s8 s11 s10) - "uxtb.w r5, r9, ror #8 \n\t" // s9 - "uxtb.w r7, r9 \n\t" // s8 - "uxtb.w r3, r9, ror #24 \n\t" // s11 - "uxtb.w r9, r9, ror #16 \n\t" // s10 - // r10(s12 s15 s14 s13) - "uxtb.w r12, r10 \n\t" // s12 - "uxtb.w r11, r10, ror #24 \n\t" // s15 - "uxtb.w r6, r10, ror #16 \n\t" // s14 - "uxtb.w r10, r10, ror #8 \n\t" // s13 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldr.w r0, [r1,#428] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r9, r9, r3, lsl #8 \n\t" - "eor.w r9, r9, r7, lsl #16 \n\t" - "eor.w r9, r9, r5, lsl #24 \n\t" - "eor.w r10, r10, r6, lsl #8 \n\t" - "eor.w r10, r10, r11, lsl #16 \n\t" - "eor.w r10, r10, r12, lsl #24 \n\t" - "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) - - // AddRoundKey and AddRoundConst(from roundKeys) - - // r9( s9 s8 s11 s10) - // r10(s12 s14 s14 s13) - - // MixColumn - "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 - "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 - "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 - // r4 ----------------> r4 - // round 47 - - // SubCell+ShiftRow+AC(c2) - // r3 (s3 s2 s1 s0) - // r4 (s7 s6 s5 s4) - // r5 (s11 s10 s9 s8) - // r6 (s15 s14 s13 s12) - - // 1st-2nd line - // r3(s3 s2 s1 s0) - "uxtb.w r9, r3, ror #24 \n\t" // s3 - "uxtb.w r8, r3, ror #16 \n\t" // s2 - "uxtb.w r7, r3, ror #8 \n\t" // s1 - "uxtb.w r3, r3 \n\t" // s0 - // r4(s6 s5 s4 s7) - "uxtb.w r12, r4, ror #16 \n\t" // s6 - "uxtb.w r11, r4, ror #8 \n\t" // s5 - "uxtb.w r10, r4 \n\t" // s4 - "uxtb.w r4, r4, ror #24 \n\t" // s7 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "eor.w r3, r3, r7, lsl #8 \n\t" - "eor.w r3, r3, r8, lsl #16 \n\t" - "eor.w r3, r3, r9, lsl #24 \n\t" - "eor.w r4, r4, r10, lsl #8 \n\t" - "eor.w r4, r4, r11, lsl #16 \n\t" - "eor.w r4, r4, r12, lsl #24 \n\t" - - // 3rd-4th line - // r5(s9 s8 s11 s10) - "uxtb.w r9, r5, ror #8 \n\t" // s9 - "uxtb.w r8, r5 \n\t" // s8 - "uxtb.w r7, r5, ror #24 \n\t" // s11 - "uxtb.w r5, r5, ror #16 \n\t" // s10 - // r6(s12 s15 s14 s13) - "uxtb.w r12, r6 \n\t" // s12 - "uxtb.w r11, r6, ror #24 \n\t" // s15 - "uxtb.w r10, r6, ror #16 \n\t" // s14 - "uxtb.w r6, r6, ror #8 \n\t" // s13 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "eor.w r5, r5, r7, lsl #8 \n\t" - "eor.w r5, r5, r8, lsl #16 \n\t" - "eor.w r5, r5, r9, lsl #24 \n\t" - "eor.w r6, r6, r10, lsl #8 \n\t" - "eor.w r6, r6, r11, lsl #16 \n\t" - "eor.w r6, r6, r12, lsl #24 \n\t" - - // AddRoundKey and AddRoundConst(from roundKeys) - "ldr.w r9, [r1,#56] \n\t" // load TK1 - "ldr.w r10, [r1,#60] \n\t" // load TK1 - "ldr.w r11, [r1,#432] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "ldr.w r12, [r1,#436] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - - "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) - "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) - // r8( s9 s8 s11 s10) - // r6(s12 s14 s14 s13) - - // MixColumn - "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 - "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 - "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 - // r8 ----------------> r8 - - // round 48 - - // SubCell+ShiftRow+AC(c2) - // r7 (s3 s2 s1 s0) - // r8 (s7 s6 s5 s4) - // r9 (s11 s10 s9 s8) - // r10(s15 s14 s13 s12) - - // 1st-2nd line - // r7(s3 s2 s1 s0) - "uxtb.w r5, r7, ror #24 \n\t" // s3 - "uxtb.w r4, r7, ror #16 \n\t" // s2 - "uxtb.w r3, r7, ror #8 \n\t" // s1 - "uxtb.w r7, r7 \n\t" // s0 - // r8(s6 s5 s4 s7) - "uxtb.w r12, r8, ror #16 \n\t" // s6 - "uxtb.w r11, r8, ror #8 \n\t" // s5 - "uxtb.w r6, r8 \n\t" // s4 - "uxtb.w r8, r8, ror #24 \n\t" // s7 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldr.w r0, [r1,#440] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r7, r7, r3, lsl #8 \n\t" - "eor.w r7, r7, r4, lsl #16 \n\t" - "eor.w r7, r7, r5, lsl #24 \n\t" - "eor.w r8, r8, r6, lsl #8 \n\t" - "eor.w r8, r8, r11, lsl #16 \n\t" - "eor.w r8, r8, r12, lsl #24 \n\t" - "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) - - // 3rd-4th line - // r9(s9 s8 s11 s10) - "uxtb.w r5, r9, ror #8 \n\t" // s9 - "uxtb.w r7, r9 \n\t" // s8 - "uxtb.w r3, r9, ror #24 \n\t" // s11 - "uxtb.w r9, r9, ror #16 \n\t" // s10 - // r10(s12 s15 s14 s13) - "uxtb.w r12, r10 \n\t" // s12 - "uxtb.w r11, r10, ror #24 \n\t" // s15 - "uxtb.w r6, r10, ror #16 \n\t" // s14 - "uxtb.w r10, r10, ror #8 \n\t" // s13 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldr.w r0, [r1,#444] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r9, r9, r3, lsl #8 \n\t" - "eor.w r9, r9, r7, lsl #16 \n\t" - "eor.w r9, r9, r5, lsl #24 \n\t" - "eor.w r10, r10, r6, lsl #8 \n\t" - "eor.w r10, r10, r11, lsl #16 \n\t" - "eor.w r10, r10, r12, lsl #24 \n\t" - "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) - - // AddRoundKey and AddRoundConst(from roundKeys) - - // r9( s9 s8 s11 s10) - // r10(s12 s14 s14 s13) - - // MixColumn - "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 - "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 - "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 - // r4 ----------------> r4 - // round 49 - - // SubCell+ShiftRow+AC(c2) - // r3 (s3 s2 s1 s0) - // r4 (s7 s6 s5 s4) - // r5 (s11 s10 s9 s8) - // r6 (s15 s14 s13 s12) - - // 1st-2nd line - // r3(s3 s2 s1 s0) - "uxtb.w r9, r3, ror #24 \n\t" // s3 - "uxtb.w r8, r3, ror #16 \n\t" // s2 - "uxtb.w r7, r3, ror #8 \n\t" // s1 - "uxtb.w r3, r3 \n\t" // s0 - // r4(s6 s5 s4 s7) - "uxtb.w r12, r4, ror #16 \n\t" // s6 - "uxtb.w r11, r4, ror #8 \n\t" // s5 - "uxtb.w r10, r4 \n\t" // s4 - "uxtb.w r4, r4, ror #24 \n\t" // s7 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "eor.w r3, r3, r7, lsl #8 \n\t" - "eor.w r3, r3, r8, lsl #16 \n\t" - "eor.w r3, r3, r9, lsl #24 \n\t" - "eor.w r4, r4, r10, lsl #8 \n\t" - "eor.w r4, r4, r11, lsl #16 \n\t" - "eor.w r4, r4, r12, lsl #24 \n\t" - - // 3rd-4th line - // r5(s9 s8 s11 s10) - "uxtb.w r9, r5, ror #8 \n\t" // s9 - "uxtb.w r8, r5 \n\t" // s8 - "uxtb.w r7, r5, ror #24 \n\t" // s11 - "uxtb.w r5, r5, ror #16 \n\t" // s10 - // r6(s12 s15 s14 s13) - "uxtb.w r12, r6 \n\t" // s12 - "uxtb.w r11, r6, ror #24 \n\t" // s15 - "uxtb.w r10, r6, ror #16 \n\t" // s14 - "uxtb.w r6, r6, ror #8 \n\t" // s13 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "eor.w r5, r5, r7, lsl #8 \n\t" - "eor.w r5, r5, r8, lsl #16 \n\t" - "eor.w r5, r5, r9, lsl #24 \n\t" - "eor.w r6, r6, r10, lsl #8 \n\t" - "eor.w r6, r6, r11, lsl #16 \n\t" - "eor.w r6, r6, r12, lsl #24 \n\t" - - // AddRoundKey and AddRoundConst(from roundKeys) - "ldr.w r9, [r1,#0] \n\t" // load TK1 - "ldr.w r10, [r1,#4] \n\t" // load TK1 - "ldr.w r11, [r1,#448] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "ldr.w r12, [r1,#452] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - - "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) - "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) - // r8( s9 s8 s11 s10) - // r6(s12 s14 s14 s13) - - // MixColumn - "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 - "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 - "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 - // r8 ----------------> r8 - - // round 50 - - // SubCell+ShiftRow+AC(c2) - // r7 (s3 s2 s1 s0) - // r8 (s7 s6 s5 s4) - // r9 (s11 s10 s9 s8) - // r10(s15 s14 s13 s12) - - // 1st-2nd line - // r7(s3 s2 s1 s0) - "uxtb.w r5, r7, ror #24 \n\t" // s3 - "uxtb.w r4, r7, ror #16 \n\t" // s2 - "uxtb.w r3, r7, ror #8 \n\t" // s1 - "uxtb.w r7, r7 \n\t" // s0 - // r8(s6 s5 s4 s7) - "uxtb.w r12, r8, ror #16 \n\t" // s6 - "uxtb.w r11, r8, ror #8 \n\t" // s5 - "uxtb.w r6, r8 \n\t" // s4 - "uxtb.w r8, r8, ror #24 \n\t" // s7 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldr.w r0, [r1,#456] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r7, r7, r3, lsl #8 \n\t" - "eor.w r7, r7, r4, lsl #16 \n\t" - "eor.w r7, r7, r5, lsl #24 \n\t" - "eor.w r8, r8, r6, lsl #8 \n\t" - "eor.w r8, r8, r11, lsl #16 \n\t" - "eor.w r8, r8, r12, lsl #24 \n\t" - "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) - - // 3rd-4th line - // r9(s9 s8 s11 s10) - "uxtb.w r5, r9, ror #8 \n\t" // s9 - "uxtb.w r7, r9 \n\t" // s8 - "uxtb.w r3, r9, ror #24 \n\t" // s11 - "uxtb.w r9, r9, ror #16 \n\t" // s10 - // r10(s12 s15 s14 s13) - "uxtb.w r12, r10 \n\t" // s12 - "uxtb.w r11, r10, ror #24 \n\t" // s15 - "uxtb.w r6, r10, ror #16 \n\t" // s14 - "uxtb.w r10, r10, ror #8 \n\t" // s13 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldr.w r0, [r1,#460] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r9, r9, r3, lsl #8 \n\t" - "eor.w r9, r9, r7, lsl #16 \n\t" - "eor.w r9, r9, r5, lsl #24 \n\t" - "eor.w r10, r10, r6, lsl #8 \n\t" - "eor.w r10, r10, r11, lsl #16 \n\t" - "eor.w r10, r10, r12, lsl #24 \n\t" - "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) - - // AddRoundKey and AddRoundConst(from roundKeys) - - // r9( s9 s8 s11 s10) - // r10(s12 s14 s14 s13) - - // MixColumn - "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 - "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 - "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 - // r4 ----------------> r4 - // round 51 - - // SubCell+ShiftRow+AC(c2) - // r3 (s3 s2 s1 s0) - // r4 (s7 s6 s5 s4) - // r5 (s11 s10 s9 s8) - // r6 (s15 s14 s13 s12) - - // 1st-2nd line - // r3(s3 s2 s1 s0) - "uxtb.w r9, r3, ror #24 \n\t" // s3 - "uxtb.w r8, r3, ror #16 \n\t" // s2 - "uxtb.w r7, r3, ror #8 \n\t" // s1 - "uxtb.w r3, r3 \n\t" // s0 - // r4(s6 s5 s4 s7) - "uxtb.w r12, r4, ror #16 \n\t" // s6 - "uxtb.w r11, r4, ror #8 \n\t" // s5 - "uxtb.w r10, r4 \n\t" // s4 - "uxtb.w r4, r4, ror #24 \n\t" // s7 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "eor.w r3, r3, r7, lsl #8 \n\t" - "eor.w r3, r3, r8, lsl #16 \n\t" - "eor.w r3, r3, r9, lsl #24 \n\t" - "eor.w r4, r4, r10, lsl #8 \n\t" - "eor.w r4, r4, r11, lsl #16 \n\t" - "eor.w r4, r4, r12, lsl #24 \n\t" - - // 3rd-4th line - // r5(s9 s8 s11 s10) - "uxtb.w r9, r5, ror #8 \n\t" // s9 - "uxtb.w r8, r5 \n\t" // s8 - "uxtb.w r7, r5, ror #24 \n\t" // s11 - "uxtb.w r5, r5, ror #16 \n\t" // s10 - // r6(s12 s15 s14 s13) - "uxtb.w r12, r6 \n\t" // s12 - "uxtb.w r11, r6, ror #24 \n\t" // s15 - "uxtb.w r10, r6, ror #16 \n\t" // s14 - "uxtb.w r6, r6, ror #8 \n\t" // s13 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "eor.w r5, r5, r7, lsl #8 \n\t" - "eor.w r5, r5, r8, lsl #16 \n\t" - "eor.w r5, r5, r9, lsl #24 \n\t" - "eor.w r6, r6, r10, lsl #8 \n\t" - "eor.w r6, r6, r11, lsl #16 \n\t" - "eor.w r6, r6, r12, lsl #24 \n\t" - - // AddRoundKey and AddRoundConst(from roundKeys) - "ldr.w r9, [r1,#8] \n\t" // load TK1 - "ldr.w r10, [r1,#12] \n\t" // load TK1 - "ldr.w r11, [r1,#464] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "ldr.w r12, [r1,#468] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - - "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) - "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) - // r8( s9 s8 s11 s10) - // r6(s12 s14 s14 s13) - - // MixColumn - "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 - "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 - "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 - // r8 ----------------> r8 - - // round 52 - - // SubCell+ShiftRow+AC(c2) - // r7 (s3 s2 s1 s0) - // r8 (s7 s6 s5 s4) - // r9 (s11 s10 s9 s8) - // r10(s15 s14 s13 s12) - - // 1st-2nd line - // r7(s3 s2 s1 s0) - "uxtb.w r5, r7, ror #24 \n\t" // s3 - "uxtb.w r4, r7, ror #16 \n\t" // s2 - "uxtb.w r3, r7, ror #8 \n\t" // s1 - "uxtb.w r7, r7 \n\t" // s0 - // r8(s6 s5 s4 s7) - "uxtb.w r12, r8, ror #16 \n\t" // s6 - "uxtb.w r11, r8, ror #8 \n\t" // s5 - "uxtb.w r6, r8 \n\t" // s4 - "uxtb.w r8, r8, ror #24 \n\t" // s7 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldr.w r0, [r1,#472] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r7, r7, r3, lsl #8 \n\t" - "eor.w r7, r7, r4, lsl #16 \n\t" - "eor.w r7, r7, r5, lsl #24 \n\t" - "eor.w r8, r8, r6, lsl #8 \n\t" - "eor.w r8, r8, r11, lsl #16 \n\t" - "eor.w r8, r8, r12, lsl #24 \n\t" - "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) - - // 3rd-4th line - // r9(s9 s8 s11 s10) - "uxtb.w r5, r9, ror #8 \n\t" // s9 - "uxtb.w r7, r9 \n\t" // s8 - "uxtb.w r3, r9, ror #24 \n\t" // s11 - "uxtb.w r9, r9, ror #16 \n\t" // s10 - // r10(s12 s15 s14 s13) - "uxtb.w r12, r10 \n\t" // s12 - "uxtb.w r11, r10, ror #24 \n\t" // s15 - "uxtb.w r6, r10, ror #16 \n\t" // s14 - "uxtb.w r10, r10, ror #8 \n\t" // s13 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldr.w r0, [r1,#476] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r9, r9, r3, lsl #8 \n\t" - "eor.w r9, r9, r7, lsl #16 \n\t" - "eor.w r9, r9, r5, lsl #24 \n\t" - "eor.w r10, r10, r6, lsl #8 \n\t" - "eor.w r10, r10, r11, lsl #16 \n\t" - "eor.w r10, r10, r12, lsl #24 \n\t" - "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) - - // AddRoundKey and AddRoundConst(from roundKeys) - - // r9( s9 s8 s11 s10) - // r10(s12 s14 s14 s13) - - // MixColumn - "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 - "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 - "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 - // r4 ----------------> r4 - // round 53 - - // SubCell+ShiftRow+AC(c2) - // r3 (s3 s2 s1 s0) - // r4 (s7 s6 s5 s4) - // r5 (s11 s10 s9 s8) - // r6 (s15 s14 s13 s12) - - // 1st-2nd line - // r3(s3 s2 s1 s0) - "uxtb.w r9, r3, ror #24 \n\t" // s3 - "uxtb.w r8, r3, ror #16 \n\t" // s2 - "uxtb.w r7, r3, ror #8 \n\t" // s1 - "uxtb.w r3, r3 \n\t" // s0 - // r4(s6 s5 s4 s7) - "uxtb.w r12, r4, ror #16 \n\t" // s6 - "uxtb.w r11, r4, ror #8 \n\t" // s5 - "uxtb.w r10, r4 \n\t" // s4 - "uxtb.w r4, r4, ror #24 \n\t" // s7 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "eor.w r3, r3, r7, lsl #8 \n\t" - "eor.w r3, r3, r8, lsl #16 \n\t" - "eor.w r3, r3, r9, lsl #24 \n\t" - "eor.w r4, r4, r10, lsl #8 \n\t" - "eor.w r4, r4, r11, lsl #16 \n\t" - "eor.w r4, r4, r12, lsl #24 \n\t" - - // 3rd-4th line - // r5(s9 s8 s11 s10) - "uxtb.w r9, r5, ror #8 \n\t" // s9 - "uxtb.w r8, r5 \n\t" // s8 - "uxtb.w r7, r5, ror #24 \n\t" // s11 - "uxtb.w r5, r5, ror #16 \n\t" // s10 - // r6(s12 s15 s14 s13) - "uxtb.w r12, r6 \n\t" // s12 - "uxtb.w r11, r6, ror #24 \n\t" // s15 - "uxtb.w r10, r6, ror #16 \n\t" // s14 - "uxtb.w r6, r6, ror #8 \n\t" // s13 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "eor.w r5, r5, r7, lsl #8 \n\t" - "eor.w r5, r5, r8, lsl #16 \n\t" - "eor.w r5, r5, r9, lsl #24 \n\t" - "eor.w r6, r6, r10, lsl #8 \n\t" - "eor.w r6, r6, r11, lsl #16 \n\t" - "eor.w r6, r6, r12, lsl #24 \n\t" - - // AddRoundKey and AddRoundConst(from roundKeys) - "ldr.w r9, [r1,#16] \n\t" // load TK1 - "ldr.w r10, [r1,#20] \n\t" // load TK1 - "ldr.w r11, [r1,#480] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "ldr.w r12, [r1,#484] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - - "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) - "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) - // r8( s9 s8 s11 s10) - // r6(s12 s14 s14 s13) - - // MixColumn - "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 - "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 - "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 - // r8 ----------------> r8 - - // round 54 - - // SubCell+ShiftRow+AC(c2) - // r7 (s3 s2 s1 s0) - // r8 (s7 s6 s5 s4) - // r9 (s11 s10 s9 s8) - // r10(s15 s14 s13 s12) - - // 1st-2nd line - // r7(s3 s2 s1 s0) - "uxtb.w r5, r7, ror #24 \n\t" // s3 - "uxtb.w r4, r7, ror #16 \n\t" // s2 - "uxtb.w r3, r7, ror #8 \n\t" // s1 - "uxtb.w r7, r7 \n\t" // s0 - // r8(s6 s5 s4 s7) - "uxtb.w r12, r8, ror #16 \n\t" // s6 - "uxtb.w r11, r8, ror #8 \n\t" // s5 - "uxtb.w r6, r8 \n\t" // s4 - "uxtb.w r8, r8, ror #24 \n\t" // s7 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldr.w r0, [r1,#488] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r7, r7, r3, lsl #8 \n\t" - "eor.w r7, r7, r4, lsl #16 \n\t" - "eor.w r7, r7, r5, lsl #24 \n\t" - "eor.w r8, r8, r6, lsl #8 \n\t" - "eor.w r8, r8, r11, lsl #16 \n\t" - "eor.w r8, r8, r12, lsl #24 \n\t" - "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) - - // 3rd-4th line - // r9(s9 s8 s11 s10) - "uxtb.w r5, r9, ror #8 \n\t" // s9 - "uxtb.w r7, r9 \n\t" // s8 - "uxtb.w r3, r9, ror #24 \n\t" // s11 - "uxtb.w r9, r9, ror #16 \n\t" // s10 - // r10(s12 s15 s14 s13) - "uxtb.w r12, r10 \n\t" // s12 - "uxtb.w r11, r10, ror #24 \n\t" // s15 - "uxtb.w r6, r10, ror #16 \n\t" // s14 - "uxtb.w r10, r10, ror #8 \n\t" // s13 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldr.w r0, [r1,#492] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r9, r9, r3, lsl #8 \n\t" - "eor.w r9, r9, r7, lsl #16 \n\t" - "eor.w r9, r9, r5, lsl #24 \n\t" - "eor.w r10, r10, r6, lsl #8 \n\t" - "eor.w r10, r10, r11, lsl #16 \n\t" - "eor.w r10, r10, r12, lsl #24 \n\t" - "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) - - // AddRoundKey and AddRoundConst(from roundKeys) - - // r9( s9 s8 s11 s10) - // r10(s12 s14 s14 s13) - - // MixColumn - "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 - "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 - "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 - // r4 ----------------> r4 - // round 55 - - // SubCell+ShiftRow+AC(c2) - // r3 (s3 s2 s1 s0) - // r4 (s7 s6 s5 s4) - // r5 (s11 s10 s9 s8) - // r6 (s15 s14 s13 s12) - - // 1st-2nd line - // r3(s3 s2 s1 s0) - "uxtb.w r9, r3, ror #24 \n\t" // s3 - "uxtb.w r8, r3, ror #16 \n\t" // s2 - "uxtb.w r7, r3, ror #8 \n\t" // s1 - "uxtb.w r3, r3 \n\t" // s0 - // r4(s6 s5 s4 s7) - "uxtb.w r12, r4, ror #16 \n\t" // s6 - "uxtb.w r11, r4, ror #8 \n\t" // s5 - "uxtb.w r10, r4 \n\t" // s4 - "uxtb.w r4, r4, ror #24 \n\t" // s7 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "eor.w r3, r3, r7, lsl #8 \n\t" - "eor.w r3, r3, r8, lsl #16 \n\t" - "eor.w r3, r3, r9, lsl #24 \n\t" - "eor.w r4, r4, r10, lsl #8 \n\t" - "eor.w r4, r4, r11, lsl #16 \n\t" - "eor.w r4, r4, r12, lsl #24 \n\t" - - // 3rd-4th line - // r5(s9 s8 s11 s10) - "uxtb.w r9, r5, ror #8 \n\t" // s9 - "uxtb.w r8, r5 \n\t" // s8 - "uxtb.w r7, r5, ror #24 \n\t" // s11 - "uxtb.w r5, r5, ror #16 \n\t" // s10 - // r6(s12 s15 s14 s13) - "uxtb.w r12, r6 \n\t" // s12 - "uxtb.w r11, r6, ror #24 \n\t" // s15 - "uxtb.w r10, r6, ror #16 \n\t" // s14 - "uxtb.w r6, r6, ror #8 \n\t" // s13 - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r8, [r14,r8] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "eor.w r5, r5, r7, lsl #8 \n\t" - "eor.w r5, r5, r8, lsl #16 \n\t" - "eor.w r5, r5, r9, lsl #24 \n\t" - "eor.w r6, r6, r10, lsl #8 \n\t" - "eor.w r6, r6, r11, lsl #16 \n\t" - "eor.w r6, r6, r12, lsl #24 \n\t" - - // AddRoundKey and AddRoundConst(from roundKeys) - "ldr.w r9, [r1,#24] \n\t" // load TK1 - "ldr.w r10, [r1,#28] \n\t" // load TK1 - "ldr.w r11, [r1,#496] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "ldr.w r12, [r1,#500] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r11, r9 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r12, r10 \n\t" // TK1 ^ TK2 ^ TK3 ^ AC(c0 c1) - - "eor.w r8, r3, r11 \n\t" // r3 eor r11 -----------------> r8( s3 s2 s1 s0) - "eor.w r7, r4, r12, ror 24 \n\t" // r4 eor (r12 ror 24) --------> r7( s6 s5 s4 s7) - // r8( s9 s8 s11 s10) - // r6(s12 s14 s14 s13) - - // MixColumn - "eor.w r10, r8, r5 \n\t" // r8 eor r5 ---------> r10 - "eor.w r9, r7, r5 \n\t" // r7 eor r5 ---------> r9 - "eor.w r7, r6, r10 \n\t" // r6 eor r10 --------> r7 - // r8 ----------------> r8 - - // round 56 - - // SubCell+ShiftRow+AC(c2) - // r7 (s3 s2 s1 s0) - // r8 (s7 s6 s5 s4) - // r9 (s11 s10 s9 s8) - // r10(s15 s14 s13 s12) - - // 1st-2nd line - // r7(s3 s2 s1 s0) - "uxtb.w r5, r7, ror #24 \n\t" // s3 - "uxtb.w r4, r7, ror #16 \n\t" // s2 - "uxtb.w r3, r7, ror #8 \n\t" // s1 - "uxtb.w r7, r7 \n\t" // s0 - // r8(s6 s5 s4 s7) - "uxtb.w r12, r8, ror #16 \n\t" // s6 - "uxtb.w r11, r8, ror #8 \n\t" // s5 - "uxtb.w r6, r8 \n\t" // s4 - "uxtb.w r8, r8, ror #24 \n\t" // s7 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r4, [r2,r4] \n\t" - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r7, [r2,r7] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r8, [r2,r8] \n\t" - "ldr.w r0, [r1,#504] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r7, r7, r3, lsl #8 \n\t" - "eor.w r7, r7, r4, lsl #16 \n\t" - "eor.w r7, r7, r5, lsl #24 \n\t" - "eor.w r8, r8, r6, lsl #8 \n\t" - "eor.w r8, r8, r11, lsl #16 \n\t" - "eor.w r8, r8, r12, lsl #24 \n\t" - "eor.w r4, r7, r0 \n\t" // r7 eor r0 -----------------> r4( s3 s2 s1 s0) - - // 3rd-4th line - // r9(s9 s8 s11 s10) - "uxtb.w r5, r9, ror #8 \n\t" // s9 - "uxtb.w r7, r9 \n\t" // s8 - "uxtb.w r3, r9, ror #24 \n\t" // s11 - "uxtb.w r9, r9, ror #16 \n\t" // s10 - // r10(s12 s15 s14 s13) - "uxtb.w r12, r10 \n\t" // s12 - "uxtb.w r11, r10, ror #24 \n\t" // s15 - "uxtb.w r6, r10, ror #16 \n\t" // s14 - "uxtb.w r10, r10, ror #8 \n\t" // s13 - "ldrb.w r5, [r2,r5] \n\t" - "ldrb.w r7, [r14,r7] \n\t" // load from SBOX ^ c2(0x02) - "ldrb.w r3, [r2,r3] \n\t" - "ldrb.w r9, [r2,r9] \n\t" - "ldrb.w r12, [r2,r12] \n\t" - "ldrb.w r11, [r2,r11] \n\t" - "ldrb.w r6, [r2,r6] \n\t" - "ldrb.w r10, [r2,r10] \n\t" - "ldr.w r0, [r1,#508] \n\t" // load TK2 ^ TK3 ^ AC(c0 c1) - "eor.w r9, r9, r3, lsl #8 \n\t" - "eor.w r9, r9, r7, lsl #16 \n\t" - "eor.w r9, r9, r5, lsl #24 \n\t" - "eor.w r10, r10, r6, lsl #8 \n\t" - "eor.w r10, r10, r11, lsl #16 \n\t" - "eor.w r10, r10, r12, lsl #24 \n\t" - "eor.w r3, r8, r0, ror 24 \n\t" // r8 eor (r0 ror 24) --------> r3( s6 s5 s4 s7) - - // AddRoundKey and AddRoundConst(from roundKeys) - - // r9( s9 s8 s11 s10) - // r10(s12 s14 s14 s13) - - // MixColumn - "eor.w r6, r4, r9 \n\t" // r4 eor r9 --------> r6 - "eor.w r5, r3, r9 \n\t" // r3 eor r9 --------> r5 - "eor.w r3, r10, r6 \n\t" // r10 eor r6 --------> r3 - // r4 ----------------> r4 - - "ldmia.w sp!, {r0} \n\t" // pop store pointer - // r0 reload - - "str.w r3, [r0,#0] \n\t" // store ciphertext - "str.w r4, [r0,#4] \n\t" // store ciphertext - "str.w r5, [r0,#8] \n\t" // store ciphertext - "str.w r6, [r0,#12] \n\t" // store ciphertext - - "ldmia.w sp!, {r4-r12,r14} \n\t" - : - : [block] "r" (block), [roundKeys] "r" (roundKeys), [pSBOX] "" (pSBOX) - : "cc"); -} - diff --git a/romulus/Implementations/crypto_aead/romulusn1v12/opt32/api.h b/romulus/Implementations/crypto_aead/romulusn1v12/opt32/api.h deleted file mode 100644 index a4aa567..0000000 --- a/romulus/Implementations/crypto_aead/romulusn1v12/opt32/api.h +++ /dev/null @@ -1,5 +0,0 @@ -#define CRYPTO_KEYBYTES 16 -#define CRYPTO_NSECBYTES 0 -#define CRYPTO_NPUBBYTES 16 -#define CRYPTO_ABYTES 16 -#define CRYPTO_NOOVERLAP 1 diff --git a/romulus/Implementations/crypto_aead/romulusn1v12/opt32/crypto_aead.h b/romulus/Implementations/crypto_aead/romulusn1v12/opt32/crypto_aead.h deleted file mode 100644 index e2ca9b0..0000000 --- a/romulus/Implementations/crypto_aead/romulusn1v12/opt32/crypto_aead.h +++ /dev/null @@ -1,18 +0,0 @@ - -int crypto_aead_encrypt( - unsigned char *c, unsigned long long *clen, - const unsigned char *m, unsigned long long mlen, - const unsigned char *ad, unsigned long long adlen, - const unsigned char *nsec, - const unsigned char *npub, - const unsigned char *k -); - -int crypto_aead_decrypt( - unsigned char *m, unsigned long long *mlen, - unsigned char *nsec, - const unsigned char *c, unsigned long long clen, - const unsigned char *ad, unsigned long long adlen, - const unsigned char *npub, - const unsigned char *k -); \ No newline at end of file diff --git a/romulus/Implementations/crypto_aead/romulusn1v12/opt32/encrypt.c b/romulus/Implementations/crypto_aead/romulusn1v12/opt32/encrypt.c deleted file mode 100644 index 071cf2a..0000000 --- a/romulus/Implementations/crypto_aead/romulusn1v12/opt32/encrypt.c +++ /dev/null @@ -1,270 +0,0 @@ -#include "skinny128.h" -#include "tk_schedule.h" -#include "romulus.h" -#include -#include - -//Encryption and authentication using Romulus-N1 -int crypto_aead_encrypt - (unsigned char *c, unsigned long long *clen, - const unsigned char *m, unsigned long long mlen, - const unsigned char *ad, unsigned long long adlen, - const unsigned char *nsec, - const unsigned char *npub, - const unsigned char *k) { - - int i; - u32 tmp; - skinny_128_384_tks tks; - u8 state[BLOCKBYTES], pad[BLOCKBYTES]; - (void)nsec; - - // ----------------- Initialization ----------------- - *clen = mlen + TAGBYTES; - memset(tks.tk1, 0x00, KEYBYTES); - memset(state, 0x00, BLOCKBYTES); - tks.tk1[0] = 0x01; //56-bit LFSR counter - // ----------------- Initialization ----------------- - - // ----------------- Process the associated data ----------------- - //Handle the special case of no associated data - if (adlen == 0) { - UPDATE_CTR(tks.tk1); - SET_DOMAIN(tks, 0x1A); - precompute_rtk2_3(tks.rtk2_3, npub, k); - precompute_rtk1(tks.rtk1, tks.tk1); - skinny128_384(state, state, tks.rtk1, tks.rtk2_3); - } else { - // Process all double blocks except the last - SET_DOMAIN(tks, 0x08); - while (adlen > 2*BLOCKBYTES) { - UPDATE_CTR(tks.tk1); - XOR_BLOCK(state, state, ad); - precompute_rtk2_3(tks.rtk2_3, ad + BLOCKBYTES, k); - precompute_rtk1(tks.rtk1, tks.tk1); - skinny128_384(state, state, tks.rtk1, tks.rtk2_3); - UPDATE_CTR(tks.tk1); - ad += 2*BLOCKBYTES; - adlen -= 2*BLOCKBYTES; - } - //Pad and process the left-over blocks - UPDATE_CTR(tks.tk1); - if (adlen == 2*BLOCKBYTES) { - // Left-over complete double block - XOR_BLOCK(state, state, ad); - precompute_rtk2_3(tks.rtk2_3, ad + BLOCKBYTES, k); - precompute_rtk1(tks.rtk1, tks.tk1); - skinny128_384(state, state, tks.rtk1, tks.rtk2_3); - UPDATE_CTR(tks.tk1); - SET_DOMAIN(tks, 0x18); - } else if (adlen > BLOCKBYTES) { - // Left-over partial double block - adlen -= BLOCKBYTES; - XOR_BLOCK(state, state, ad); - memcpy(pad, ad + BLOCKBYTES, adlen); - memset(pad + adlen, 0x00, 15 - adlen); - pad[15] = adlen; - precompute_rtk2_3(tks.rtk2_3, pad, k); - precompute_rtk1(tks.rtk1, tks.tk1); - skinny128_384(state, state, tks.rtk1, tks.rtk2_3); - UPDATE_CTR(tks.tk1); - SET_DOMAIN(tks, 0x1A); - } else if (adlen == BLOCKBYTES) { - // Left-over complete single block - XOR_BLOCK(state, state, ad); - SET_DOMAIN(tks, 0x18); - } else { - // Left-over partial single block - for(i =0; i < (int)adlen; i++) - state[i] ^= ad[i]; - state[15] ^= adlen; - SET_DOMAIN(tks, 0x1A); - } - precompute_rtk2_3(tks.rtk2_3, npub, k); - precompute_rtk1(tks.rtk1, tks.tk1); - skinny128_384(state, state, tks.rtk1, tks.rtk2_3); - } - // ----------------- Process the associated data ----------------- - - // ----------------- Process the plaintext ----------------- - memset(tks.tk1, 0, KEYBYTES); - tks.tk1[0] = 0x01; //init the 56-bit LFSR counter - if (mlen == 0) { - UPDATE_CTR(tks.tk1); - SET_DOMAIN(tks, 0x15); - precompute_rtk1(tks.rtk1, tks.tk1); - skinny128_384(state, state, tks.rtk1, tks.rtk2_3); - } else { - //process all blocks except the last - SET_DOMAIN(tks, 0x04); - while (mlen > BLOCKBYTES) { - RHO(state,c,m); - UPDATE_CTR(tks.tk1); - precompute_rtk1(tks.rtk1, tks.tk1); - skinny128_384(state, state, tks.rtk1, tks.rtk2_3); - c += BLOCKBYTES; - m += BLOCKBYTES; - mlen -= BLOCKBYTES; - } - //pad and process the last block - UPDATE_CTR(tks.tk1); - if (mlen < BLOCKBYTES) { - for(i = 0; i < (int)mlen; i++) { - tmp = m[i]; //use of tmp variable just in case 'c = m' - c[i] = m[i] ^ (state[i] >> 1) ^ (state[i] & 0x80) ^ (state[i] << 7); - state[i] ^= (u8)tmp; - } - state[15] ^= (u8)mlen; //padding - SET_DOMAIN(tks, 0x15); - } else { - RHO(state,c,m); - SET_DOMAIN(tks, 0x14); - } - precompute_rtk1(tks.rtk1, tks.tk1); - skinny128_384(state, state, tks.rtk1, tks.rtk2_3); - c += mlen; - } - // ----------------- Process the plaintext ----------------- - - // ----------------- Generate the tag ----------------- - G(state,state); - memcpy(c, state, TAGBYTES); - // ----------------- Generate the tag ----------------- - - return 0; -} - - -//Decryption and tag verification using Romulus-N1 -int crypto_aead_decrypt - (unsigned char *m, unsigned long long *mlen, - unsigned char *nsec, - const unsigned char *c, unsigned long long clen, - const unsigned char *ad, unsigned long long adlen, - const unsigned char *npub, - const unsigned char *k) { - - int i; - u32 tmp; - skinny_128_384_tks tks; - u8 state[BLOCKBYTES], pad[BLOCKBYTES]; - (void)nsec; - - if (clen < TAGBYTES) - return -1; - - // ----------------- Initialization ----------------- - *mlen = clen - TAGBYTES; - memset(tks.tk1, 0x00, KEYBYTES); - memset(state, 0x00, BLOCKBYTES); - tks.tk1[0] = 0x01; //56-bit LFSR counter - // ----------------- Initialization ----------------- - - // ----------------- Process the associated data ----------------- - //Handle the special case of no associated data - if (adlen == 0) { - UPDATE_CTR(tks.tk1); - SET_DOMAIN(tks, 0x1A); - precompute_rtk2_3(tks.rtk2_3, npub, k); - precompute_rtk1(tks.rtk1, tks.tk1); - skinny128_384(state, state, tks.rtk1, tks.rtk2_3); - } else { - // Process all double blocks except the last - SET_DOMAIN(tks, 0x08); - while (adlen > 2*BLOCKBYTES) { - UPDATE_CTR(tks.tk1); - XOR_BLOCK(state, state, ad); - precompute_rtk2_3(tks.rtk2_3, ad + BLOCKBYTES, k); - precompute_rtk1(tks.rtk1, tks.tk1); - skinny128_384(state, state, tks.rtk1, tks.rtk2_3); - UPDATE_CTR(tks.tk1); - ad += 2*BLOCKBYTES; - adlen -= 2*BLOCKBYTES; - } - //Pad and process the left-over blocks - UPDATE_CTR(tks.tk1); - if (adlen == 2*BLOCKBYTES) { - // Left-over complete double block - XOR_BLOCK(state, state, ad); - precompute_rtk2_3(tks.rtk2_3, ad + BLOCKBYTES, k); - precompute_rtk1(tks.rtk1, tks.tk1); - skinny128_384(state, state, tks.rtk1, tks.rtk2_3); - UPDATE_CTR(tks.tk1); - SET_DOMAIN(tks, 0x18); - } else if (adlen > BLOCKBYTES) { - // Left-over partial double block - adlen -= BLOCKBYTES; - XOR_BLOCK(state, state, ad); - memcpy(pad, ad + BLOCKBYTES, adlen); - memset(pad + adlen, 0x00, 15 - adlen); - pad[15] = adlen; - precompute_rtk2_3(tks.rtk2_3, pad, k); - precompute_rtk1(tks.rtk1, tks.tk1); - skinny128_384(state, state, tks.rtk1, tks.rtk2_3); - UPDATE_CTR(tks.tk1); - SET_DOMAIN(tks, 0x1A); - } else if (adlen == BLOCKBYTES) { - // Left-over complete single block - XOR_BLOCK(state, state, ad); - SET_DOMAIN(tks, 0x18); - } else { - // Left-over partial single block - for(i =0; i < (int)adlen; i++) - state[i] ^= ad[i]; - state[15] ^= adlen; - SET_DOMAIN(tks, 0x1A); - } - precompute_rtk2_3(tks.rtk2_3, npub, k); - precompute_rtk1(tks.rtk1, tks.tk1); - skinny128_384(state, state, tks.rtk1, tks.rtk2_3); - } - // ----------------- Process the associated data ----------------- - - // ----------------- Process the ciphertext ----------------- - clen -= TAGBYTES; - memset(tks.tk1, 0, KEYBYTES); - tks.tk1[0] = 0x01; //init the 56-bit LFSR counter - if (clen == 0) { - UPDATE_CTR(tks.tk1); - SET_DOMAIN(tks, 0x15); - precompute_rtk1(tks.rtk1, tks.tk1); - skinny128_384(state, state, tks.rtk1, tks.rtk2_3); - } else { - //process all blocks except the last - SET_DOMAIN(tks, 0x04); - while (clen > BLOCKBYTES) { - RHO_INV(state,c,m); - UPDATE_CTR(tks.tk1); - precompute_rtk1(tks.rtk1, tks.tk1); - skinny128_384(state, state, tks.rtk1, tks.rtk2_3); - c += BLOCKBYTES; - m += BLOCKBYTES; - clen -= BLOCKBYTES; - } - //pad and process the last block - UPDATE_CTR(tks.tk1); - if (clen < BLOCKBYTES) { - for(i = 0; i < (int)clen; i++) { - m[i] = c[i] ^ (state[i] >> 1) ^ (state[i] & 0x80) ^ (state[i] << 7); - state[i] ^= m[i]; - } - state[15] ^= (u8)clen; //padding - SET_DOMAIN(tks, 0x15); - } else { - RHO_INV(state,c,m); - SET_DOMAIN(tks, 0x14); - } - precompute_rtk1(tks.rtk1, tks.tk1); - skinny128_384(state, state, tks.rtk1, tks.rtk2_3); - } - // ----------------- Process the plaintext ----------------- - - // ----------------- Generate and check the tag ----------------- - G(state,state); - tmp = 0; - for(i = 0; i < TAGBYTES; i++) - tmp |= state[i] ^ c[clen+i]; //constant-time tag comparison - // ----------------- Generate and check the tag ----------------- - - return tmp; -} \ No newline at end of file diff --git a/romulus/Implementations/crypto_aead/romulusn1v12/opt32/romulus.h b/romulus/Implementations/crypto_aead/romulusn1v12/opt32/romulus.h deleted file mode 100644 index 3a70219..0000000 --- a/romulus/Implementations/crypto_aead/romulusn1v12/opt32/romulus.h +++ /dev/null @@ -1,68 +0,0 @@ -#ifndef ROMULUSN1_H_ -#define ROMULUSN1_H_ - -#include "skinny128.h" - -typedef unsigned char u8; -typedef unsigned int u32; -typedef struct { - u8 tk1[16]; //to manipulate tk1 byte-wise - u32 rtk1[4*16]; //to avoid tk schedule recomputations - u32 rtk2_3[4*SKINNY128_384_ROUNDS]; //all round tweakeys -} skinny_128_384_tks; - -#define TAGBYTES 16 -#define KEYBYTES 16 -#define BLOCKBYTES 16 - -#define SET_DOMAIN(tks, domain) ((tks).tk1[7] = (domain)) - -//G as defined in the Romulus specification in a 32-bit word-wise manner -#define G(x,y) ({ \ - tmp = ((u32*)(y))[0]; \ - ((u32*)(x))[0] = (tmp >> 1 & 0x7f7f7f7f) ^ ((tmp ^ (tmp << 7)) & 0x80808080); \ - tmp = ((u32*)(y))[1]; \ - ((u32*)(x))[1] = (tmp >> 1 & 0x7f7f7f7f) ^ ((tmp ^ (tmp << 7)) & 0x80808080); \ - tmp = ((u32*)(y))[2]; \ - ((u32*)(x))[2] = (tmp >> 1 & 0x7f7f7f7f) ^ ((tmp ^ (tmp << 7)) & 0x80808080); \ - tmp = ((u32*)(y))[3]; \ - ((u32*)(x))[3] = (tmp >> 1 & 0x7f7f7f7f) ^ ((tmp ^ (tmp << 7)) & 0x80808080); \ -}) - -//update the counter in tk1 in a 32-bit word-wise manner -#define UPDATE_CTR(tk1) ({ \ - tmp = ((u32*)(tk1))[1]; \ - ((u32*)(tk1))[1] = (tmp << 1) & 0x00ffffff; \ - ((u32*)(tk1))[1] |= (((u32*)(tk1))[0] >> 31); \ - ((u32*)(tk1))[1] |= tmp & 0xff000000; \ - ((u32*)(tk1))[0] <<= 1; \ - if ((tmp >> 23) & 0x01) \ - ((u32*)(tk1))[0] ^= 0x95; \ -}) - -//x <- y ^ z for 128-bit blocks -#define XOR_BLOCK(x,y,z) ({ \ - ((u32*)(x))[0] = ((u32*)(y))[0] ^ ((u32*)(z))[0]; \ - ((u32*)(x))[1] = ((u32*)(y))[1] ^ ((u32*)(z))[1]; \ - ((u32*)(x))[2] = ((u32*)(y))[2] ^ ((u32*)(z))[2]; \ - ((u32*)(x))[3] = ((u32*)(y))[3] ^ ((u32*)(z))[3]; \ -}) - - -//Rho as defined in the Romulus specification -//use pad as a tmp variable in case y = z -#define RHO(x,y,z) ({ \ - G(pad,x); \ - XOR_BLOCK(y, pad, z); \ - XOR_BLOCK(x, x, z); \ -}) - -//Rho inverse as defined in the Romulus specification -//use pad as a tmp variable in case y = z -#define RHO_INV(x, y, z) ({ \ - G(pad, x); \ - XOR_BLOCK(z, pad, y); \ - XOR_BLOCK(x, x, z); \ -}) - -#endif // ROMULUSN1_H_ \ No newline at end of file diff --git a/romulus/Implementations/crypto_aead/romulusn1v12/opt32/skinny128.c b/romulus/Implementations/crypto_aead/romulusn1v12/opt32/skinny128.c deleted file mode 100644 index 87718e3..0000000 --- a/romulus/Implementations/crypto_aead/romulusn1v12/opt32/skinny128.c +++ /dev/null @@ -1,110 +0,0 @@ -/****************************************************************************** -* Constant-time implementation of the SKINNY tweakable block ciphers. -* -* This implementation doesn't compute the ShiftRows operation. Some masks and -* shifts are applied during the MixColumns operation so that the proper bits -* are XORed together. Moreover, the row permutation within the MixColumns -* is omitted, as well as the bit permutation at the end of the Sbox. The rows -* are synchronized with the classical after only 4 rounds. Therefore, this -* implementation relies on a "QUADRUPLE_ROUND" routine. -* -* The Sbox computation takes advantage of some symmetry in the 8-bit Sbox to -* turn it into a 4-bit S-box computation. Although the last bit permutation -* within the Sbox is not computed, the bit ordering is synchronized with the -* classical representation after 2 calls. -* -* @author Alexandre Adomnicai, Nanyang Technological University, -* alexandre.adomnicai@ntu.edu.sg -* -* @date May 2020 -******************************************************************************/ -#include -#include -#include "skinny128.h" -#include "tk_schedule.h" - -/****************************************************************************** -* The MixColumns computation for rounds i such that (i % 4) == 0 -******************************************************************************/ -void mixcolumns_0(u32* state) { - u32 tmp; - for(int i = 0; i < 4; i++) { - tmp = ROR(state[i],24) & 0x0c0c0c0c; - state[i] ^= ROR(tmp,30); - tmp = ROR(state[i],16) & 0xc0c0c0c0; - state[i] ^= ROR(tmp,4); - tmp = ROR(state[i],8) & 0x0c0c0c0c; - state[i] ^= ROR(tmp,2); - } -} - -/****************************************************************************** -* The MixColumns computation for rounds i such that (i % 4) == 1 -******************************************************************************/ -void mixcolumns_1(u32* state) { - u32 tmp; - for(int i = 0; i < 4; i++) { - tmp = ROR(state[i],16) & 0x30303030; - state[i] ^= ROR(tmp,30); - tmp = state[i] & 0x03030303; - state[i] ^= ROR(tmp,28); - tmp = ROR(state[i],16) & 0x30303030; - state[i] ^= ROR(tmp,2); - } -} - -/****************************************************************************** -* The MixColumns computation for rounds i such that (i % 4) == 2 -******************************************************************************/ -void mixcolumns_2(u32* state) { - u32 tmp; - for(int i = 0; i < 4; i++) { - tmp = ROR(state[i],8) & 0xc0c0c0c0; - state[i] ^= ROR(tmp,6); - tmp = ROR(state[i],16) & 0x0c0c0c0c; - state[i] ^= ROR(tmp,28); - tmp = ROR(state[i],24) & 0xc0c0c0c0; - state[i] ^= ROR(tmp,2); - } -} - -/****************************************************************************** -* The MixColumns computation for rounds i such that (i % 4) == 3 -******************************************************************************/ -void mixcolumns_3(u32* state) { - u32 tmp; - for(int i = 0; i < 4; i++) { - tmp = state[i] & 0x03030303; - state[i] ^= ROR(tmp,30); - tmp = state[i] & 0x30303030; - state[i] ^= ROR(tmp,4); - tmp = state[i] & 0x03030303; - state[i] ^= ROR(tmp,26); - } -} - -/****************************************************************************** -* Encryption of a single block without any operation mode using SKINNY-128-384. -* RTK1 and RTK2_3 are given separately to take advantage of the fact that -* TK2 and TK3 remains the same through the entire data encryption/decryption. -******************************************************************************/ -void skinny128_384(u8* ctext, const u8* ptext, const u32* rtk1, const u32* rtk2_3) { - u32 tmp; // used in SWAPMOVE macro - u32 state[4]; // 128-bit state - packing(state, ptext); // from byte to bitsliced representation - QUADRUPLE_ROUND(state, rtk1, rtk2_3); - QUADRUPLE_ROUND(state, rtk1+16, rtk2_3+16); - QUADRUPLE_ROUND(state, rtk1+32, rtk2_3+32); - QUADRUPLE_ROUND(state, rtk1+48, rtk2_3+48); - QUADRUPLE_ROUND(state, rtk1, rtk2_3+64); - QUADRUPLE_ROUND(state, rtk1+16, rtk2_3+80); - QUADRUPLE_ROUND(state, rtk1+32, rtk2_3+96); - QUADRUPLE_ROUND(state, rtk1+48, rtk2_3+112); - QUADRUPLE_ROUND(state, rtk1, rtk2_3+128); - QUADRUPLE_ROUND(state, rtk1+16, rtk2_3+144); - QUADRUPLE_ROUND(state, rtk1+32, rtk2_3+160); - QUADRUPLE_ROUND(state, rtk1+48, rtk2_3+176); - QUADRUPLE_ROUND(state, rtk1, rtk2_3+192); - QUADRUPLE_ROUND(state, rtk1+16, rtk2_3+208); - unpacking(ctext, state); // from bitsliced to byte representation -} \ No newline at end of file diff --git a/romulus/Implementations/crypto_aead/romulusn1v12/opt32/skinny128.h b/romulus/Implementations/crypto_aead/romulusn1v12/opt32/skinny128.h deleted file mode 100644 index dab6338..0000000 --- a/romulus/Implementations/crypto_aead/romulusn1v12/opt32/skinny128.h +++ /dev/null @@ -1,94 +0,0 @@ -#ifndef SKINNY128_H_ -#define SKINNY128_H_ - -typedef unsigned char u8; -typedef unsigned int u32; - -#define SKINNY128_384_ROUNDS 56 - -#define QUADRUPLE_ROUND(state, rtk1, rtk2_3) ({ \ - state[3] ^= ~(state[0] | state[1]); \ - SWAPMOVE(state[2], state[1], 0x55555555, 1); \ - SWAPMOVE(state[3], state[2], 0x55555555, 1); \ - state[1] ^= ~(state[2] | state[3]); \ - SWAPMOVE(state[1], state[0], 0x55555555, 1); \ - SWAPMOVE(state[0], state[3], 0x55555555, 1); \ - state[3] ^= ~(state[0] | state[1]); \ - SWAPMOVE(state[2], state[1], 0x55555555, 1); \ - SWAPMOVE(state[3], state[2], 0x55555555, 1); \ - state[1] ^= (state[2] | state[3]); \ - SWAPMOVE(state[3], state[0], 0x55555555, 0); \ - state[0] ^= (rtk1)[0]; \ - state[1] ^= (rtk1)[1]; \ - state[2] ^= (rtk1)[2]; \ - state[3] ^= (rtk1)[3]; \ - state[0] ^= (rtk2_3)[0]; \ - state[1] ^= (rtk2_3)[1]; \ - state[2] ^= (rtk2_3)[2]; \ - state[3] ^= (rtk2_3)[3]; \ - mixcolumns_0(state); \ - state[1] ^= ~(state[2] | state[3]); \ - SWAPMOVE(state[1], state[0], 0x55555555, 1); \ - SWAPMOVE(state[0], state[3], 0x55555555, 1); \ - state[3] ^= ~(state[0] | state[1]); \ - SWAPMOVE(state[2], state[1], 0x55555555, 1); \ - SWAPMOVE(state[3], state[2], 0x55555555, 1); \ - state[1] ^= ~(state[2] | state[3]); \ - SWAPMOVE(state[1], state[0], 0x55555555, 1); \ - SWAPMOVE(state[0], state[3], 0x55555555, 1); \ - state[3] ^= (state[0] | state[1]); \ - SWAPMOVE(state[1], state[2], 0x55555555, 0); \ - state[0] ^= (rtk1)[4]; \ - state[1] ^= (rtk1)[5]; \ - state[2] ^= (rtk1)[6]; \ - state[3] ^= (rtk1)[7]; \ - state[0] ^= (rtk2_3)[4]; \ - state[1] ^= (rtk2_3)[5]; \ - state[2] ^= (rtk2_3)[6]; \ - state[3] ^= (rtk2_3)[7]; \ - mixcolumns_1(state); \ - state[3] ^= ~(state[0] | state[1]); \ - SWAPMOVE(state[2], state[1], 0x55555555, 1); \ - SWAPMOVE(state[3], state[2], 0x55555555, 1); \ - state[1] ^= ~(state[2] | state[3]); \ - SWAPMOVE(state[1], state[0], 0x55555555, 1); \ - SWAPMOVE(state[0], state[3], 0x55555555, 1); \ - state[3] ^= ~(state[0] | state[1]); \ - SWAPMOVE(state[2], state[1], 0x55555555, 1); \ - SWAPMOVE(state[3], state[2], 0x55555555, 1); \ - state[1] ^= (state[2] | state[3]); \ - SWAPMOVE(state[3], state[0], 0x55555555, 0); \ - state[0] ^= (rtk1)[8]; \ - state[1] ^= (rtk1)[9]; \ - state[2] ^= (rtk1)[10]; \ - state[3] ^= (rtk1)[11]; \ - state[0] ^= (rtk2_3)[8]; \ - state[1] ^= (rtk2_3)[9]; \ - state[2] ^= (rtk2_3)[10]; \ - state[3] ^= (rtk2_3)[11]; \ - mixcolumns_2(state); \ - state[1] ^= ~(state[2] | state[3]); \ - SWAPMOVE(state[1], state[0], 0x55555555, 1); \ - SWAPMOVE(state[0], state[3], 0x55555555, 1); \ - state[3] ^= ~(state[0] | state[1]); \ - SWAPMOVE(state[2], state[1], 0x55555555, 1); \ - SWAPMOVE(state[3], state[2], 0x55555555, 1); \ - state[1] ^= ~(state[2] | state[3]); \ - SWAPMOVE(state[1], state[0], 0x55555555, 1); \ - SWAPMOVE(state[0], state[3], 0x55555555, 1); \ - state[3] ^= (state[0] | state[1]); \ - SWAPMOVE(state[1], state[2], 0x55555555, 0); \ - state[0] ^= (rtk1)[12]; \ - state[1] ^= (rtk1)[13]; \ - state[2] ^= (rtk1)[14]; \ - state[3] ^= (rtk1)[15]; \ - state[0] ^= (rtk2_3)[12]; \ - state[1] ^= (rtk2_3)[13]; \ - state[2] ^= (rtk2_3)[14]; \ - state[3] ^= (rtk2_3)[15]; \ - mixcolumns_3(state); \ -}) - -void skinny128_384(u8* ctext, const u8* ptext, const u32* rtk1, const u32* rtk2_3); - -#endif // SKINNY128_H_ \ No newline at end of file diff --git a/romulus/Implementations/crypto_aead/romulusn1v12/opt32/tk_schedule.c b/romulus/Implementations/crypto_aead/romulusn1v12/opt32/tk_schedule.c deleted file mode 100644 index c818cf2..0000000 --- a/romulus/Implementations/crypto_aead/romulusn1v12/opt32/tk_schedule.c +++ /dev/null @@ -1,379 +0,0 @@ -/****************************************************************************** -* Implementation of the SKINNY tweakey schedule to match fixslicing. -* -* @author Alexandre Adomnicai, Nanyang Technological University, -* alexandre.adomnicai@ntu.edu.sg -* -* @date May 2020 -******************************************************************************/ -#include -#include //for memcmp -#include "tk_schedule.h" -#include "skinny128.h" - -typedef unsigned char u8; -typedef unsigned int u32; - -/****************************************************************************** -* The round constants according to the new representation. -******************************************************************************/ -u32 rconst_32_bs[224] = { - 0x00000004, 0xffffffbf, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x10000100, 0xfffffeff, 0x44000000, 0xfbffffff, 0x00000000, 0x04000000, - 0x00100000, 0x00100000, 0x00100001, 0xffefffff, 0x00440000, 0xffafffff, - 0x00400000, 0x00400000, 0x01000000, 0x01000000, 0x01401000, 0xffbfffff, - 0x01004000, 0xfefffbff, 0x00000400, 0x00000400, 0x00000010, 0x00000000, - 0x00010410, 0xfffffbef, 0x00000054, 0xffffffaf, 0x00000000, 0x00000040, - 0x00000100, 0x00000100, 0x10000140, 0xfffffeff, 0x44000000, 0xfffffeff, - 0x04000000, 0x04000000, 0x00100000, 0x00100000, 0x04000001, 0xfbffffff, - 0x00140000, 0xffafffff, 0x00400000, 0x00000000, 0x00000000, 0x00000000, - 0x01401000, 0xfebfffff, 0x01004400, 0xfffffbff, 0x00000000, 0x00000400, - 0x00000010, 0x00000010, 0x00010010, 0xffffffff, 0x00000004, 0xffffffaf, - 0x00000040, 0x00000040, 0x00000100, 0x00000000, 0x10000140, 0xffffffbf, - 0x40000100, 0xfbfffeff, 0x00000000, 0x04000000, 0x00100000, 0x00000000, - 0x04100001, 0xffefffff, 0x00440000, 0xffefffff, 0x00000000, 0x00400000, - 0x01000000, 0x01000000, 0x00401000, 0xffffffff, 0x00004000, 0xfeffffff, - 0x00000400, 0x00000000, 0x00000000, 0x00000000, 0x00010400, 0xfffffbff, - 0x00000014, 0xffffffbf, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x10000100, 0xffffffff, 0x40000000, 0xfbffffff, 0x00000000, 0x04000000, - 0x00100000, 0x00000000, 0x00100001, 0xffefffff, 0x00440000, 0xffafffff, - 0x00000000, 0x00400000, 0x01000000, 0x01000000, 0x01401000, 0xffffffff, - 0x00004000, 0xfeffffff, 0x00000400, 0x00000400, 0x00000010, 0x00000000, - 0x00010400, 0xfffffbff, 0x00000014, 0xffffffaf, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x10000140, 0xfffffeff, 0x44000000, 0xffffffff, - 0x00000000, 0x04000000, 0x00100000, 0x00100000, 0x00000001, 0xffefffff, - 0x00440000, 0xffafffff, 0x00400000, 0x00000000, 0x00000000, 0x01000000, - 0x01401000, 0xffbfffff, 0x01004000, 0xfffffbff, 0x00000400, 0x00000400, - 0x00000010, 0x00000000, 0x00010010, 0xfffffbff, 0x00000014, 0xffffffef, - 0x00000000, 0x00000040, 0x00000100, 0x00000000, 0x10000040, 0xfffffeff, - 0x44000000, 0xfffffeff, 0x00000000, 0x00000000, 0x00000000, 0x00100000, - 0x04000001, 0xffffffff, 0x00040000, 0xffffffff, 0x00400000, 0x00000000, - 0x00000000, 0x00000000, 0x00001000, 0xfebfffff, 0x01004400, 0xffffffff, - 0x00000000, 0x00000000, 0x00000000, 0x00000010, 0x00010000, 0xffffffff, - 0x00000004, 0xffffffbf, 0x00000040, 0x00000000, 0x00000000, 0x00000000, - 0x10000100, 0xfffffebf, 0x44000100, 0xffffffff, 0x00000000, 0x04000000, - 0x00100000, 0x00100000, 0x00000001, 0xffffffff, 0x00040000, 0xffafffff, - 0x00400000, 0x00000000, 0x00000000, 0x00000000, 0x01401000, 0xffbfffff, - 0x01004000, 0xfffffbff, 0x00000000, 0x00000400, 0x00000010, 0x00000000, - 0x00010010, 0xffffffff -}; - -/****************************************************************************** -* Pack the input into the bitsliced representation -* 24 28 56 60 88 92 120 124 | ... | 0 4 32 36 64 68 96 100 -* 25 29 57 61 89 93 121 125 | ... | 1 5 33 37 65 69 97 101 -* 26 30 58 62 90 94 122 126 | ... | 2 6 34 38 66 70 98 102 -* 27 31 59 63 91 95 123 127 | ... | 3 7 35 39 67 71 99 103 -******************************************************************************/ -void packing(u32* out, const u8* in) { - u32 tmp; - LE_LOAD(out, in); - LE_LOAD(out + 1, in + 8); - LE_LOAD(out + 2, in + 4); - LE_LOAD(out + 3, in + 12); - SWAPMOVE(out[0], out[0], 0x0a0a0a0a, 3); - SWAPMOVE(out[1], out[1], 0x0a0a0a0a, 3); - SWAPMOVE(out[2], out[2], 0x0a0a0a0a, 3); - SWAPMOVE(out[3], out[3], 0x0a0a0a0a, 3); - SWAPMOVE(out[2], out[0], 0x30303030, 2); - SWAPMOVE(out[1], out[0], 0x0c0c0c0c, 4); - SWAPMOVE(out[3], out[0], 0x03030303, 6); - SWAPMOVE(out[1], out[2], 0x0c0c0c0c, 2); - SWAPMOVE(out[3], out[2], 0x03030303, 4); - SWAPMOVE(out[3], out[1], 0x03030303, 2); -} - -/****************************************************************************** -* Unpack the input to a byte-wise representation -******************************************************************************/ -void unpacking(u8* out, u32 *in) { - u32 tmp; - SWAPMOVE(in[3], in[1], 0x03030303, 2); - SWAPMOVE(in[3], in[2], 0x03030303, 4); - SWAPMOVE(in[1], in[2], 0x0c0c0c0c, 2); - SWAPMOVE(in[3], in[0], 0x03030303, 6); - SWAPMOVE(in[1], in[0], 0x0c0c0c0c, 4); - SWAPMOVE(in[2], in[0], 0x30303030, 2); - SWAPMOVE(in[0], in[0], 0x0a0a0a0a, 3); - SWAPMOVE(in[1], in[1], 0x0a0a0a0a, 3); - SWAPMOVE(in[2], in[2], 0x0a0a0a0a, 3); - SWAPMOVE(in[3], in[3], 0x0a0a0a0a, 3); - LE_STORE(out, in[0]); - LE_STORE(out + 8, in[1]); - LE_STORE(out + 4, in[2]); - LE_STORE(out + 12, in[3]); -} - -/****************************************************************************** -* 0 4 1 5 -* 1 5 ---> 2 6 -* 2 6 3 7 -* 3 7 4 0 -******************************************************************************/ -void lfsr2_bs(u32* tk) { - u32 tmp; - tmp = tk[0] ^ (tk[2] & 0xaaaaaaaa); - tmp = ((tmp & 0xaaaaaaaa) >> 1) | ((tmp << 1) & 0xaaaaaaaa); - tk[0] = tk[1]; - tk[1] = tk[2]; - tk[2] = tk[3]; - tk[3] = tmp; -} - -/****************************************************************************** -* 0 4 7 3 -* 1 5 ---> 0 4 -* 2 6 1 5 -* 3 7 2 6 -******************************************************************************/ -void lfsr3_bs(u32* tk) { - u32 tmp; - tmp = tk[3] ^ ((tk[1] & 0xaaaaaaaa) >> 1); - tmp = ((tmp & 0xaaaaaaaa) >> 1) | ((tmp << 1) & 0xaaaaaaaa); - tk[3] = tk[2]; - tk[2] = tk[1]; - tk[1] = tk[0]; - tk[0] = tmp; -} - -/****************************************************************************** -* Apply the permutation in a bitsliced manner, twice -******************************************************************************/ -void permute_tk_2(u32* tk) { - u32 tmp; - for(int i =0; i < 4; i++) { - tmp = tk[i]; - tk[i] = ROR(tmp,14) & 0xcc00cc00; - tk[i] |= (tmp & 0x000000ff) << 16; - tk[i] |= (tmp & 0xcc000000)>> 2; - tk[i] |= (tmp & 0x0033cc00) >> 8; - tk[i] |= (tmp & 0x00cc0000) >>18; - } -} - -/****************************************************************************** -* Apply the permutation in a bitsliced manner, 4 times -******************************************************************************/ -void permute_tk_4(u32* tk) { - u32 tmp; - for(int i =0; i < 4; i++) { - tmp = tk[i]; - tk[i] = ROR(tmp,22) & 0xcc0000cc; - tk[i] |= ROR(tmp,16) & 0x3300cc00; - tk[i] |= ROR(tmp, 24) & 0x00cc3300; - tk[i] |= (tmp & 0x00cc00cc) >> 2; - } -} - -/****************************************************************************** -* Apply the permutation in a bitsliced manner, 6 times -******************************************************************************/ -void permute_tk_6(u32* tk) { - u32 tmp; - for(int i =0; i < 4; i++) { - tmp = tk[i]; - tk[i] = ROR(tmp,6) & 0xcccc0000; - tk[i] |= ROR(tmp,24) & 0x330000cc; - tk[i] |= ROR(tmp,10) & 0x3333; - tk[i] |= (tmp & 0xcc) << 14; - tk[i] |= (tmp & 0x3300) << 2; - } -} - -/****************************************************************************** -* Apply the permutation in a bitsliced manner, 8 times -******************************************************************************/ -void permute_tk_8(u32* tk) { - u32 tmp; - for(int i =0; i < 4; i++) { - tmp = tk[i]; - tk[i] = ROR(tmp,24) & 0xcc000033; - tk[i] |= ROR(tmp,8) & 0x33cc0000; - tk[i] |= ROR(tmp,26) & 0x00333300; - tk[i] |= (tmp & 0x00333300) >> 6; - } -} - -/****************************************************************************** -* Apply the permutation in a bitsliced manner, 10 times -******************************************************************************/ -void permute_tk_10(u32* tk) { - u32 tmp; - for(int i =0; i < 4; i++) { - tmp = tk[i]; - tk[i] = ROR(tmp,8) & 0xcc330000; - tk[i] |= ROR(tmp,26) & 0x33000033; - tk[i] |= ROR(tmp,22) & 0x00cccc00; - tk[i] |= (tmp & 0x00330000) >> 14; - tk[i] |= (tmp & 0xcc00) >> 2; - } -} - -/****************************************************************************** -* Apply the permutation in a bitsliced manner, 12 times -******************************************************************************/ -void permute_tk_12(u32* tk) { - u32 tmp; - for(int i =0; i < 4; i++) { - tmp = tk[i]; - tk[i] = ROR(tmp,8) & 0xcc33; - tk[i] |= ROR(tmp,30) & 0x00cc00cc; - tk[i] |= ROR(tmp,10) & 0x33330000; - tk[i] |= ROR(tmp,16) & 0xcc003300; - } -} - -/****************************************************************************** -* Apply the permutation in a bitsliced manner, 14 times -******************************************************************************/ -void permute_tk_14(u32* tk) { - u32 tmp; - for(int i =0; i < 4; i++) { - tmp = tk[i]; - tk[i] = ROR(tmp,24) & 0x0033cc00; - tk[i] |= ROR(tmp,14) & 0x00cc0000; - tk[i] |= ROR(tmp,30) & 0xcc000000; - tk[i] |= ROR(tmp,16) & 0x000000ff; - tk[i] |= ROR(tmp,18) & 0x33003300; - } -} - -/****************************************************************************** -* Precompute all LFSRs on TK2 -******************************************************************************/ -void precompute_lfsr_tk2(u32* tk, const u8* key, const int rounds) { - u32 tk2[4]; - packing(tk2, key); - memcpy(tk, tk2, 16); - for(int i = 0 ; i < rounds; i+=2) { - lfsr2_bs(tk2); - memcpy(tk+i*4+4, tk2, 16); - } -} - -/****************************************************************************** -* Precompute all LFSRs on TK3 -******************************************************************************/ -void precompute_lfsr_tk3(u32* tk, const u8* key, const int rounds) { - u32 tk3[4]; - packing(tk3, key); - tk[0] ^= tk3[0]; - tk[1] ^= tk3[1]; - tk[2] ^= tk3[2]; - tk[3] ^= tk3[3]; - for(int i = 0 ; i < rounds; i+=2) { - lfsr3_bs(tk3); - tk[i*4+4] ^= tk3[0]; - tk[i*4+5] ^= tk3[1]; - tk[i*4+6] ^= tk3[2]; - tk[i*4+7] ^= tk3[3]; - } -} - -/****************************************************************************** -* XOR TK with TK1 before applying the permutations. -* The key is then rearranged to match the barrel shiftrows representation. -******************************************************************************/ -void permute_tk(u32* tk, const u8* key, const int rounds) { - u32 test; - u32 tk1[4], tmp[4]; - packing(tk1, key); - memcpy(tmp, tk, 16); - tmp[0] ^= tk1[0]; - tmp[1] ^= tk1[1]; - tmp[2] ^= tk1[2]; - tmp[3] ^= tk1[3]; - for(int i = 0 ; i < rounds; i += 8) { - test = (i % 16 < 8) ? 1 : 0; //to apply the right power of P - tk[i*4] = tmp[2] & 0xf0f0f0f0; - tk[i*4+1] = tmp[3] & 0xf0f0f0f0; - tk[i*4+2] = tmp[0] & 0xf0f0f0f0; - tk[i*4+3] = tmp[1] & 0xf0f0f0f0; - memcpy(tmp, tk+i*4+4, 16); - XOR_BLOCKS(tmp, tk1); - if (test) - permute_tk_2(tmp); // applies P^2 - else - permute_tk_10(tmp); // applies P^10 - tk[i*4+4] = ROR(tmp[0],26) & 0xc3c3c3c3; - tk[i*4+5] = ROR(tmp[1],26) & 0xc3c3c3c3; - tk[i*4+6] = ROR(tmp[2],26) & 0xc3c3c3c3; - tk[i*4+7] = ROR(tmp[3],26) & 0xc3c3c3c3; - tk[i*4+8] = ROR(tmp[2],28) & 0x03030303; - tk[i*4+8] |= ROR(tmp[2],12) & 0x0c0c0c0c; - tk[i*4+9] = ROR(tmp[3],28) & 0x03030303; - tk[i*4+9] |= ROR(tmp[3],12) & 0x0c0c0c0c; - tk[i*4+10] = ROR(tmp[0],28) & 0x03030303; - tk[i*4+10] |= ROR(tmp[0],12) & 0x0c0c0c0c; - tk[i*4+11] = ROR(tmp[1],28) & 0x03030303; - tk[i*4+11] |= ROR(tmp[1],12) & 0x0c0c0c0c; - memcpy(tmp, tk+i*4+12, 16); - XOR_BLOCKS(tmp, tk1); - if (test) - permute_tk_4(tmp); // applies P^4 - else - permute_tk_12(tmp); // applies P^12 - for(int j = 0; j < 4; j++) { - tk[i*4+12+j] = ROR(tmp[j],14) & 0x30303030; - tk[i*4+12+j] |= ROR(tmp[j],6) & 0x0c0c0c0c; - } - tk[i*4+16] = ROR(tmp[2], 16) & 0xf0f0f0f0; - tk[i*4+17] = ROR(tmp[3], 16) & 0xf0f0f0f0; - tk[i*4+18] = ROR(tmp[0], 16) & 0xf0f0f0f0; - tk[i*4+19] = ROR(tmp[1], 16) & 0xf0f0f0f0; - memcpy(tmp, tk+i*4+20, 16); - XOR_BLOCKS(tmp, tk1); - if (test) - permute_tk_6(tmp); // applies P^6 - else - permute_tk_14(tmp); // applies P^14 - tk[i*4+20] = ROR(tmp[0], 10) & 0xc3c3c3c3; - tk[i*4+21] = ROR(tmp[1], 10) & 0xc3c3c3c3; - tk[i*4+22] = ROR(tmp[2], 10) & 0xc3c3c3c3; - tk[i*4+23] = ROR(tmp[3], 10) & 0xc3c3c3c3; - tk[i*4+24] = ROR(tmp[2],12) & 0x03030303; - tk[i*4+24] |= ROR(tmp[2],28) & 0x0c0c0c0c; - tk[i*4+25] = ROR(tmp[3],12) & 0x03030303; - tk[i*4+25] |= ROR(tmp[3],28) & 0x0c0c0c0c; - tk[i*4+26] = ROR(tmp[0],12) & 0x03030303; - tk[i*4+26] |= ROR(tmp[0],28) & 0x0c0c0c0c; - tk[i*4+27] = ROR(tmp[1],12) & 0x03030303; - tk[i*4+27] |= ROR(tmp[1],28) & 0x0c0c0c0c; - memcpy(tmp, tk+i*4+28, 16); - XOR_BLOCKS(tmp, tk1); - if (test) - permute_tk_8(tmp); // applies P^8 - for(int j = 0; j < 4; j++) { - tk[i*4+28+j] = ROR(tmp[j],30) & 0x30303030; - tk[i*4+28+j] |= ROR(tmp[j],22) & 0x0c0c0c0c; - } - if (test && (i+8 < rounds)) { //only if next loop iteration - tk[i*4+32] = tmp[2] & 0xf0f0f0f0; - tk[i*4+33] = tmp[3] & 0xf0f0f0f0; - tk[i*4+34] = tmp[0] & 0xf0f0f0f0; - tk[i*4+35] = tmp[1] & 0xf0f0f0f0; - } - } -} - -/****************************************************************************** -* Precompute LFSR2(TK2) ^ LFSR3(TK3) ^ rconst. -******************************************************************************/ -void precompute_rtk2_3(u32* rtk, const u8* tk2, const u8 * tk3) { - memset(rtk, 0x00, 16*SKINNY128_384_ROUNDS); - precompute_lfsr_tk2(rtk, tk2, SKINNY128_384_ROUNDS); - precompute_lfsr_tk3(rtk, tk3, SKINNY128_384_ROUNDS); - permute_tk(rtk, (u8*)(rtk+8), SKINNY128_384_ROUNDS); // rtk+8 is NULL - for(int i = 0; i < SKINNY128_384_ROUNDS; i++) { // add rconsts - for(int j = 0; j < 4; j++) - rtk[i*4+j] ^= rconst_32_bs[i*4+j]; - } -} - -/****************************************************************************** -* Precompute RTK1. -******************************************************************************/ -void precompute_rtk1(u32* rtk1, const u8* tk1) { - memset(rtk1, 0x00, 16*16); - permute_tk(rtk1, tk1, 16); -} \ No newline at end of file diff --git a/romulus/Implementations/crypto_aead/romulusn1v12/opt32/tk_schedule.h b/romulus/Implementations/crypto_aead/romulusn1v12/opt32/tk_schedule.h deleted file mode 100644 index 5615cbd..0000000 --- a/romulus/Implementations/crypto_aead/romulusn1v12/opt32/tk_schedule.h +++ /dev/null @@ -1,39 +0,0 @@ -#ifndef TK_SCHEDULE_H_ -#define TK_SCHEDULE_H_ - -typedef unsigned char u8; -typedef unsigned int u32; - -void packing(u32* out, const u8* in); -void unpacking(u8* out, u32 *in); -void precompute_rtk2_3(u32* rtk, const u8* tk2, const u8* tk3); -void precompute_rtk1(u32* rtk1, const u8* tk1); - -#define ROR(x,y) (((x) >> (y)) | ((x) << (32 - (y)))) - -#define XOR_BLOCKS(x,y) ({ \ - (x)[0] ^= (y)[0]; \ - (x)[1] ^= (y)[1]; \ - (x)[2] ^= (y)[2]; \ - (x)[3] ^= (y)[3]; \ -}) - -#define SWAPMOVE(a, b, mask, n) ({ \ - tmp = (b ^ (a >> n)) & mask; \ - b ^= tmp; \ - a ^= (tmp << n); \ -}) - -#define LE_LOAD(x, y) \ - *(x) = (((u32)(y)[3] << 24) | \ - ((u32)(y)[2] << 16) | \ - ((u32)(y)[1] << 8) | \ - (y)[0]); - -#define LE_STORE(x, y) \ - (x)[0] = (y) & 0xff; \ - (x)[1] = ((y) >> 8) & 0xff; \ - (x)[2] = ((y) >> 16) & 0xff; \ - (x)[3] = (y) >> 24; - -#endif // TK_SCHEDULE_H_ \ No newline at end of file diff --git a/romulus/Implementations/crypto_aead/romulusn1v12/ref/api.h b/romulus/Implementations/crypto_aead/romulusn1v12/ref/api.h deleted file mode 100644 index a4aa567..0000000 --- a/romulus/Implementations/crypto_aead/romulusn1v12/ref/api.h +++ /dev/null @@ -1,5 +0,0 @@ -#define CRYPTO_KEYBYTES 16 -#define CRYPTO_NSECBYTES 0 -#define CRYPTO_NPUBBYTES 16 -#define CRYPTO_ABYTES 16 -#define CRYPTO_NOOVERLAP 1 diff --git a/romulus/Implementations/crypto_aead/romulusn1v12/ref/encrypt.c b/romulus/Implementations/crypto_aead/romulusn1v12/ref/encrypt.c deleted file mode 100644 index 4bcd5b9..0000000 --- a/romulus/Implementations/crypto_aead/romulusn1v12/ref/encrypt.c +++ /dev/null @@ -1,493 +0,0 @@ -/* - * Date: 29 November 2018 - * Contact: Thomas Peyrin - thomas.peyrin@gmail.com - * Mustafa Khairallah - mustafam001@e.ntu.edu.sg - */ - -#include "crypto_aead.h" -#include "api.h" -#include "variant.h" -#include "skinny.h" -#include -#include - -/*void display_vector (const unsigned char* x, int lenx) { - int i; - - for (i = 0; i < lenx; i++) { - //printf("%02x",x[i]); - } - //printf("\n"); - - }*/ - -void pad (const unsigned char* m, unsigned char* mp, int l, int len8) { - int i; - - for (i = 0; i < l; i++) { - if (i < len8) { - mp[i] = m[i]; - } - else if (i == l - 1) { - mp[i] = (len8 & 0x0f); - } - else { - mp[i] = 0x00; - } - } - -} - -void g8A (unsigned char* s, unsigned char* c) { - int i; - - for (i = 0; i < 16; i++) { - c[i] = (s[i] >> 1) ^ (s[i] & 0x80) ^ ((s[i] & 0x01) << 7); - } - -} - -void rho_ad (const unsigned char* m, - unsigned char* s, - int len8, - int ver) { - int i; - unsigned char mp [16]; - - //printf("rho in m = ");display_vector(m,len8); - pad(m,mp,ver,len8); - //printf("rho in mp = ");display_vector(mp,16); - //printf("rho in s = ");display_vector(s,16); - for (i = 0; i < ver; i++) { - s[i] = s[i] ^ mp[i]; - } - //printf("rho out s = ");display_vector(s,16); - -} - -void rho (const unsigned char* m, - unsigned char* c, - unsigned char* s, - int len8, - int ver) { - int i; - unsigned char mp [16]; - - //printf("rho in m = ");display_vector(m,len8); - pad(m,mp,ver,len8); - //printf("rho in mp = ");display_vector(mp,16); - //printf("rho in s = ");display_vector(s,16); - - g8A(s,c); - for (i = 0; i < ver; i++) { - s[i] = s[i] ^ mp[i]; - if (i < len8) { - c[i] = c[i] ^ mp[i]; - } - else { - c[i] = 0; - } - } - //printf("rho out s = ");display_vector(s,16); - //printf("rho out c = ");display_vector(c,16); - -} - -void irho (unsigned char* m, - const unsigned char* c, - unsigned char* s, - int len8, - int ver) { - int i; - unsigned char cp [16]; - - //printf("irho in c = ");display_vector(c,len8); - pad(c,cp,ver,len8); - //printf("irho in cp = ");display_vector(cp,16); - //printf("irho in s = ");display_vector(s,16); - - g8A(s,m); - for (i = 0; i < ver; i++) { - if (i < len8) { - s[i] = s[i] ^ cp[i] ^ m[i]; - } - else { - s[i] = s[i] ^ cp[i]; - } - if (i < len8) { - m[i] = m[i] ^ cp[i]; - } - else { - m[i] = 0; - } - } - //printf("irho out s = ");display_vector(s,16); - //printf("irho out m = ");display_vector(c,16); - -} - -void reset_lfsr_gf56 (unsigned char* CNT) { - CNT[0] = 0x01; - CNT[1] = 0x00; - CNT[2] = 0x00; - CNT[3] = 0x00; - CNT[4] = 0x00; - CNT[5] = 0x00; - CNT[6] = 0x00; -} - -void lfsr_gf56 (unsigned char* CNT) { - unsigned char fb0; - - fb0 = CNT[6] >> 7; - - CNT[6] = (CNT[6] << 1) | (CNT[5] >> 7); - CNT[5] = (CNT[5] << 1) | (CNT[4] >> 7); - CNT[4] = (CNT[4] << 1) | (CNT[3] >> 7); - CNT[3] = (CNT[3] << 1) | (CNT[2] >> 7); - CNT[2] = (CNT[2] << 1) | (CNT[1] >> 7); - CNT[1] = (CNT[1] << 1) | (CNT[0] >> 7); - if (fb0 == 1) { - CNT[0] = (CNT[0] << 1) ^ 0x95; - } - else { - CNT[0] = (CNT[0] << 1); - } -} - -void compose_tweakey (unsigned char* KT, - const unsigned char* K, - unsigned char* T, - unsigned char* CNT, - unsigned char D, - int t) { - - int i; - - for (i = 0; i < 7; i++) { - KT[i] = CNT[i]; - } - KT[i] = D; - for (i = 8; i < 16; i++) { - KT[i] = 0x00; - } - for (i = 0; i < t; i++) { - KT[i+16] = T[i]; - } - for (i = 0; i < 16; i++) { - KT[i+16+t] = K[i]; - } - -} - -void block_cipher(unsigned char* s, - const unsigned char* k, unsigned char* T, - unsigned char* CNT, unsigned char D, int t, int n) { - unsigned char KT [48]; - - (void) n; - compose_tweakey(KT,k,T,CNT,D,t); - //printf("BC in kt = ");display_vector(KT,3*n); - //printf("BC in s = ");display_vector(s,n); - skinny_128_384_enc (s,KT); - //printf("BC out s = ");display_vector(s,n); - -} - -void nonce_encryption (const unsigned char* N, - unsigned char* CNT, - unsigned char*s, const unsigned char* k, - int t, int n, unsigned char D) { - unsigned char T [16]; - int i; - for (i = 0; i < t; i++) { - T[i] = N[i]; - } - //printf("nonce cnt = ");display_vector(CNT,7); - block_cipher(s,k,T,CNT,D,t,n); - -} - -void generate_tag (unsigned char** c, unsigned char* s, - int n, unsigned long long* clen) { - - g8A(s, *c); - *c = *c + n; - *c = *c - *clen; - -} - -unsigned long long msg_encryption (const unsigned char** M, unsigned char** c, - const unsigned char* N, - unsigned char* CNT, - unsigned char*s, const unsigned char* k, - unsigned int n, unsigned int t, unsigned char D, - unsigned long long mlen) { - int len8; - - - if (mlen >= n) { - len8 = n; - mlen = mlen - n; - } - else { - len8 = mlen; - mlen = 0; - } - rho(*M, *c, s, len8, n); - *c = *c + len8; - *M = *M + len8; - lfsr_gf56(CNT); - nonce_encryption(N,CNT,s,k,t,n,D); - return mlen; -} - - - -unsigned long long msg_decryption (unsigned char** M, const unsigned char** c, - const unsigned char* N, - unsigned char* CNT, - unsigned char*s, const unsigned char* k, - unsigned int n, unsigned int t, unsigned char D, - unsigned long long clen) { - int len8; - - if (clen >= n) { - len8 = n; - clen = clen - n; - } - else { - len8 = clen; - clen = 0; - } - irho(*M, *c, s, len8, n); - *c = *c + len8; - *M = *M + len8; - lfsr_gf56(CNT); - nonce_encryption(N,CNT,s,k,t,n,D); - return clen; -} - -unsigned long long ad_encryption (const unsigned char** A, unsigned char* s, - const unsigned char* k, unsigned long long adlen, - unsigned char* CNT, - unsigned char D, - unsigned int n, unsigned int t) { - - unsigned char T [16]; - int len8; - - //printf("AD in = ");display_vector(*A,16); - if (adlen >= n) { - len8 = n; - adlen = adlen - n; - } - else { - len8 = adlen; - adlen = 0; - } - rho_ad(*A, s, len8, n); - *A = *A + len8; - lfsr_gf56(CNT); - //printf("AD cnt = ");display_vector(CNT,7); - if (adlen != 0) { - if (adlen >= t) { - len8 = t; - adlen = adlen - t; - } - else { - len8 = adlen; - adlen = 0; - } - pad(*A, T, t, len8); - *A = *A + len8; - block_cipher(s,k,T,CNT,D,t,n); - lfsr_gf56(CNT); - } - - return adlen; -} - -int crypto_aead_encrypt ( - unsigned char* c, unsigned long long* clen, - const unsigned char* m, unsigned long long mlen, - const unsigned char* ad, unsigned long long adlen, - const unsigned char* nsec, - const unsigned char* npub, - const unsigned char* k - ) -{ - unsigned char s[16]; - unsigned char CNT[7]; - const unsigned char* A; - const unsigned char* M; - const unsigned char* N; - unsigned int n, t, i; - - (void) nsec; - A = ad; - M = m; - N = npub; - - n = AD_BLK_LEN_ODD; - t = AD_BLK_LEN_EVN; - - for (i = 0; i < n; i++) { - s[i] = 0; - } - reset_lfsr_gf56(CNT); - //printf("s = ");display_vector(s,16); - //printf("cnt = ");display_vector(CNT,7); - - if (adlen == 0) { // AD is an empty string - lfsr_gf56(CNT); - nonce_encryption(N,CNT,s,k,t,n,0x1a); - } - else while (adlen > 0) { - if (adlen < n) { // The last block of AD is odd and incomplete - adlen = ad_encryption(&A,s,k,adlen,CNT,0x08,n,t); - nonce_encryption(N,CNT,s,k,t,n,0x1a); - } - else if (adlen == n) { // The last block of AD is odd and complete - adlen = ad_encryption(&A,s,k,adlen,CNT,0x08,n,t); - nonce_encryption(N,CNT,s,k,t,n,0x18); - } - else if (adlen < (n+t)) { // The last block of AD is even and incomplete - adlen = ad_encryption(&A,s,k,adlen,CNT,0x08,n,t); - nonce_encryption(N,CNT,s,k,t,n,0x1a); - } - else if (adlen == (n+t)) { // The last block of AD is even and complete - adlen = ad_encryption(&A,s,k,adlen,CNT,0x08,n,t); - nonce_encryption(N,CNT,s,k,t,n,0x18); - } - else { // A normal full pair of blocks of AD - adlen = ad_encryption(&A,s,k,adlen,CNT,0x08,n,t); - } - } - - reset_lfsr_gf56(CNT); - - n = MSG_BLK_LEN; - *clen = mlen + n; - - if (mlen == 0) { // M is an empty string - lfsr_gf56(CNT); - nonce_encryption(N,CNT,s,k,t,n,0x15); - } - else while (mlen > 0) { - if (mlen < n) { // The last block of M is incomplete - mlen = msg_encryption(&M,&c,N,CNT,s,k,n,t,0x15,mlen); - } - else if (mlen == n) { // The last block of M is complete - mlen = msg_encryption(&M,&c,N,CNT,s,k,n,t,0x14,mlen); - } - else { // A normal full message block - mlen = msg_encryption(&M,&c,N,CNT,s,k,n,t,0x04,mlen); - } - } - - // Tag generation - generate_tag(&c,s,n,clen); - //printf("T = ");display_vector(c+*clen-n,n); - - - return 0; -} - -int crypto_aead_decrypt( -unsigned char *m,unsigned long long *mlen, -unsigned char *nsec, -const unsigned char *c,unsigned long long clen, -const unsigned char *ad,unsigned long long adlen, -const unsigned char *npub, -const unsigned char *k -) -{ - - unsigned char s[16]; - unsigned char T[16]; - unsigned char CNT[7]; - const unsigned char* A; - unsigned char* M; - const unsigned char* N; - unsigned int n, t, i; - - (void) nsec; - A = ad; - M = m; - N = npub; - - n = AD_BLK_LEN_ODD; - t = AD_BLK_LEN_EVN; - - for (i = 0; i < n; i++) { - s[i] = 0; - } - reset_lfsr_gf56(CNT); - //printf("s = ");display_vector(s,16); - //printf("cnt = ");display_vector(CNT,7); - - if (adlen == 0) { // AD is an empty string - lfsr_gf56(CNT); - nonce_encryption(N,CNT,s,k,t,n,0x1a); - } - else while (adlen > 0) { - if (adlen < n) { // The last block of AD is odd and incomplete - adlen = ad_encryption(&A,s,k,adlen,CNT,0x08,n,t); - nonce_encryption(N,CNT,s,k,t,n,0x1a); - } - else if (adlen == n) { // The last block of AD is odd and complete - adlen = ad_encryption(&A,s,k,adlen,CNT,0x08,n,t); - nonce_encryption(N,CNT,s,k,t,n,0x18); - } - else if (adlen < (n+t)) { // The last block of AD is even and incomplete - adlen = ad_encryption(&A,s,k,adlen,CNT,0x08,n,t); - nonce_encryption(N,CNT,s,k,t,n,0x1a); - } - else if (adlen == (n+t)) { // The last block of AD is even and complete - adlen = ad_encryption(&A,s,k,adlen,CNT,0x08,n,t); - nonce_encryption(N,CNT,s,k,t,n,0x18); - } - else { // A normal full pair of blocks of AD - adlen = ad_encryption(&A,s,k,adlen,CNT,0x08,n,t); - } - } - - reset_lfsr_gf56(CNT); - - n = MSG_BLK_LEN; - - clen = clen - n; - *mlen = clen; - - if (clen == 0) { // C is an empty string - lfsr_gf56(CNT); - nonce_encryption(N,CNT,s,k,t,n,0x15); - } - else while (clen > 0) { - if (clen < n) { // The last block of C is incomplete - clen = msg_decryption(&M,&c,N,CNT,s,k,n,t,0x15,clen); - } - else if (clen == n) { // The last block of C is complete - clen = msg_decryption(&M,&c,N,CNT,s,k,n,t,0x14,clen); - } - else { // A normal full message block - clen = msg_decryption(&M,&c,N,CNT,s,k,n,t,0x04,clen); - } - } - - - // Tag generation - g8A(s, T); - //printf("T = ");display_vector(T,n); - for (i = 0; i < 16; i++) { - if (T[i] != (*(c+i))) { - return -1; - } - } - - return 0; - -} - - diff --git a/romulus/Implementations/crypto_aead/romulusn1v12/ref/genkat_aead.c b/romulus/Implementations/crypto_aead/romulusn1v12/ref/genkat_aead.c deleted file mode 100644 index ecee146..0000000 --- a/romulus/Implementations/crypto_aead/romulusn1v12/ref/genkat_aead.c +++ /dev/null @@ -1,163 +0,0 @@ -// -// NIST-developed software is provided by NIST as a public service. -// You may use, copy and distribute copies of the software in any medium, -// provided that you keep intact this entire notice. You may improve, -// modify and create derivative works of the software or any portion of -// the software, and you may copy and distribute such modifications or -// works. Modified works should carry a notice stating that you changed -// the software and should note the date and nature of any such change. -// Please explicitly acknowledge the National Institute of Standards and -// Technology as the source of the software. -// -// NIST-developed software is expressly provided "AS IS." NIST MAKES NO -// WARRANTY OF ANY KIND, EXPRESS, IMPLIED, IN FACT OR ARISING BY OPERATION -// OF LAW, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTY OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT AND DATA ACCURACY. NIST -// NEITHER REPRESENTS NOR WARRANTS THAT THE OPERATION OF THE SOFTWARE WILL BE -// UNINTERRUPTED OR ERROR-FREE, OR THAT ANY DEFECTS WILL BE CORRECTED. NIST -// DOES NOT WARRANT OR MAKE ANY REPRESENTATIONS REGARDING THE USE OF THE SOFTWARE -// OR THE RESULTS THEREOF, INCLUDING BUT NOT LIMITED TO THE CORRECTNESS, ACCURACY, -// RELIABILITY, OR USEFULNESS OF THE SOFTWARE. -// -// You are solely responsible for determining the appropriateness of using and -// distributing the software and you assume all risks associated with its use, -// including but not limited to the risks and costs of program errors, compliance -// with applicable laws, damage to or loss of data, programs or equipment, and -// the unavailability or interruption of operation. This software is not intended -// to be used in any situation where a failure could cause risk of injury or -// damage to property. The software developed by NIST employees is not subject to -// copyright protection within the United States. -// - -// disable deprecation for sprintf and fopen -#ifdef _MSC_VER -#define _CRT_SECURE_NO_WARNINGS -#endif - -#include -#include - -#include "crypto_aead.h" -#include "api.h" - -#define KAT_SUCCESS 0 -#define KAT_FILE_OPEN_ERROR -1 -#define KAT_DATA_ERROR -3 -#define KAT_CRYPTO_FAILURE -4 - -#define MAX_FILE_NAME 256 -#define MAX_MESSAGE_LENGTH 32 -#define MAX_ASSOCIATED_DATA_LENGTH 32 - -void init_buffer(unsigned char *buffer, unsigned long long numbytes); - -void fprint_bstr(FILE *fp, const char *label, const unsigned char *data, unsigned long long length); - -int generate_test_vectors(); - -int main() -{ - int ret = generate_test_vectors(); - - if (ret != KAT_SUCCESS) { - fprintf(stderr, "test vector generation failed with code %d\n", ret); - } - - return ret; -} - -int generate_test_vectors() -{ - FILE *fp; - char fileName[MAX_FILE_NAME]; - unsigned char key[CRYPTO_KEYBYTES]; - unsigned char nonce[CRYPTO_NPUBBYTES]; - unsigned char msg[MAX_MESSAGE_LENGTH]; - unsigned char msg2[MAX_MESSAGE_LENGTH]; - unsigned char ad[MAX_ASSOCIATED_DATA_LENGTH]; - unsigned char ct[MAX_MESSAGE_LENGTH + CRYPTO_ABYTES]; - unsigned long long clen, mlen2; - int count = 1; - int func_ret, ret_val = KAT_SUCCESS; - - init_buffer(key, sizeof(key)); - init_buffer(nonce, sizeof(nonce)); - init_buffer(msg, sizeof(msg)); - init_buffer(ad, sizeof(ad)); - - sprintf(fileName, "LWC_AEAD_KAT_%d_%d.txt", (CRYPTO_KEYBYTES * 8), (CRYPTO_NPUBBYTES * 8)); - - if ((fp = fopen(fileName, "w")) == NULL) { - fprintf(stderr, "Couldn't open <%s> for write\n", fileName); - return KAT_FILE_OPEN_ERROR; - } - - for (unsigned long long mlen = 0; (mlen <= MAX_MESSAGE_LENGTH) && (ret_val == KAT_SUCCESS); mlen++) { - //for (unsigned long long mlen = 0; (mlen <= 32) && (ret_val == KAT_SUCCESS); mlen++) { - for (unsigned long long adlen = 0; adlen <= MAX_ASSOCIATED_DATA_LENGTH; adlen++) { - //for (unsigned long long adlen = 0; adlen <= 32; adlen++) { - - printf("%0d\n", (int)clen); - - fprintf(fp, "Count = %d\n", count++); - printf("Count = %d\n", count - 1); - - fprint_bstr(fp, "Key = ", key, CRYPTO_KEYBYTES); - - fprint_bstr(fp, "Nonce = ", nonce, CRYPTO_NPUBBYTES); - - fprint_bstr(fp, "PT = ", msg, mlen); - - fprint_bstr(fp, "AD = ", ad, adlen); - - if ((func_ret = crypto_aead_encrypt(ct, &clen, msg, mlen, ad, adlen, NULL, nonce, key)) != 0) { - fprintf(fp, "crypto_aead_encrypt returned <%d>\n", func_ret); - ret_val = KAT_CRYPTO_FAILURE; - break; - } - - fprint_bstr(fp, "CT = ", ct, clen); - - fprintf(fp, "\n"); - - if ((func_ret = crypto_aead_decrypt(msg2, &mlen2, NULL, ct, clen, ad, adlen, nonce, key)) != 0) { - fprintf(fp, "crypto_aead_decrypt returned <%d>\n", func_ret); - ret_val = KAT_CRYPTO_FAILURE; - break; - } - - if (mlen != mlen2) { - fprintf(fp, "crypto_aead_decrypt returned bad 'mlen': Got <%llu>, expected <%llu>\n", mlen2, mlen); - ret_val = KAT_CRYPTO_FAILURE; - break; - } - - if (memcmp(msg, msg2, mlen)) { - fprintf(fp, "crypto_aead_decrypt did not recover the plaintext\n"); - ret_val = KAT_CRYPTO_FAILURE; - break; - } - } - } - - fclose(fp); - - return ret_val; -} - - -void fprint_bstr(FILE *fp, const char *label, const unsigned char *data, unsigned long long length) -{ - fprintf(fp, "%s", label); - - for (unsigned long long i = 0; i < length; i++) - fprintf(fp, "%02X", data[i]); - - fprintf(fp, "\n"); -} - -void init_buffer(unsigned char *buffer, unsigned long long numbytes) -{ - for (unsigned long long i = 0; i < numbytes; i++) - buffer[i] = (unsigned char)i; -} diff --git a/romulus/Implementations/crypto_aead/romulusn1v12/ref/skinny.h b/romulus/Implementations/crypto_aead/romulusn1v12/ref/skinny.h deleted file mode 100644 index 70c4421..0000000 --- a/romulus/Implementations/crypto_aead/romulusn1v12/ref/skinny.h +++ /dev/null @@ -1 +0,0 @@ -extern void skinny_128_384_enc (unsigned char* input, const unsigned char* userkey); diff --git a/romulus/Implementations/crypto_aead/romulusn1v12/ref/skinny_reference.c b/romulus/Implementations/crypto_aead/romulusn1v12/ref/skinny_reference.c deleted file mode 100644 index ec59a31..0000000 --- a/romulus/Implementations/crypto_aead/romulusn1v12/ref/skinny_reference.c +++ /dev/null @@ -1,547 +0,0 @@ -/* - * Date: 11 December 2015 - * Contact: Thomas Peyrin - thomas.peyrin@gmail.com - */ - -#include -#include -#include -#include -#include "skinny.h" - -#define DEBUG 0 - -// Table that encodes the parameters of the various Skinny versions: -// (block size, key size, number of rounds) -//Skinny-64-64: 32 rounds -//Skinny-64-128: 36 rounds -//Skinny-64-192: 40 rounds -//Skinny-128-128: 40 rounds -//Skinny-128-256: 48 rounds -//Skinny-128-384: 56 rounds -int versions[6][3]={{64,64,32},{64,128,36},{64,192,40},{128,128,40},{128,256,48},{128,384,56}}; - -// Packing of data is done as follows (state[i][j] stands for row i and column j): -// 0 1 2 3 -// 4 5 6 7 -// 8 9 10 11 -//12 13 14 15 - -// 4-bit Sbox -const unsigned char sbox_4[16] = {12,6,9,0,1,10,2,11,3,8,5,13,4,14,7,15}; -const unsigned char sbox_4_inv[16] = {3,4,6,8,12,10,1,14,9,2,5,7,0,11,13,15}; - -// 8-bit Sbox -const unsigned char sbox_8[256] = {0x65 , 0x4c , 0x6a , 0x42 , 0x4b , 0x63 , 0x43 , 0x6b , 0x55 , 0x75 , 0x5a , 0x7a , 0x53 , 0x73 , 0x5b , 0x7b ,0x35 , 0x8c , 0x3a , 0x81 , 0x89 , 0x33 , 0x80 , 0x3b , 0x95 , 0x25 , 0x98 , 0x2a , 0x90 , 0x23 , 0x99 , 0x2b ,0xe5 , 0xcc , 0xe8 , 0xc1 , 0xc9 , 0xe0 , 0xc0 , 0xe9 , 0xd5 , 0xf5 , 0xd8 , 0xf8 , 0xd0 , 0xf0 , 0xd9 , 0xf9 ,0xa5 , 0x1c , 0xa8 , 0x12 , 0x1b , 0xa0 , 0x13 , 0xa9 , 0x05 , 0xb5 , 0x0a , 0xb8 , 0x03 , 0xb0 , 0x0b , 0xb9 ,0x32 , 0x88 , 0x3c , 0x85 , 0x8d , 0x34 , 0x84 , 0x3d , 0x91 , 0x22 , 0x9c , 0x2c , 0x94 , 0x24 , 0x9d , 0x2d ,0x62 , 0x4a , 0x6c , 0x45 , 0x4d , 0x64 , 0x44 , 0x6d , 0x52 , 0x72 , 0x5c , 0x7c , 0x54 , 0x74 , 0x5d , 0x7d ,0xa1 , 0x1a , 0xac , 0x15 , 0x1d , 0xa4 , 0x14 , 0xad , 0x02 , 0xb1 , 0x0c , 0xbc , 0x04 , 0xb4 , 0x0d , 0xbd ,0xe1 , 0xc8 , 0xec , 0xc5 , 0xcd , 0xe4 , 0xc4 , 0xed , 0xd1 , 0xf1 , 0xdc , 0xfc , 0xd4 , 0xf4 , 0xdd , 0xfd ,0x36 , 0x8e , 0x38 , 0x82 , 0x8b , 0x30 , 0x83 , 0x39 , 0x96 , 0x26 , 0x9a , 0x28 , 0x93 , 0x20 , 0x9b , 0x29 ,0x66 , 0x4e , 0x68 , 0x41 , 0x49 , 0x60 , 0x40 , 0x69 , 0x56 , 0x76 , 0x58 , 0x78 , 0x50 , 0x70 , 0x59 , 0x79 ,0xa6 , 0x1e , 0xaa , 0x11 , 0x19 , 0xa3 , 0x10 , 0xab , 0x06 , 0xb6 , 0x08 , 0xba , 0x00 , 0xb3 , 0x09 , 0xbb ,0xe6 , 0xce , 0xea , 0xc2 , 0xcb , 0xe3 , 0xc3 , 0xeb , 0xd6 , 0xf6 , 0xda , 0xfa , 0xd3 , 0xf3 , 0xdb , 0xfb ,0x31 , 0x8a , 0x3e , 0x86 , 0x8f , 0x37 , 0x87 , 0x3f , 0x92 , 0x21 , 0x9e , 0x2e , 0x97 , 0x27 , 0x9f , 0x2f ,0x61 , 0x48 , 0x6e , 0x46 , 0x4f , 0x67 , 0x47 , 0x6f , 0x51 , 0x71 , 0x5e , 0x7e , 0x57 , 0x77 , 0x5f , 0x7f ,0xa2 , 0x18 , 0xae , 0x16 , 0x1f , 0xa7 , 0x17 , 0xaf , 0x01 , 0xb2 , 0x0e , 0xbe , 0x07 , 0xb7 , 0x0f , 0xbf ,0xe2 , 0xca , 0xee , 0xc6 , 0xcf ,0xe7 , 0xc7 , 0xef , 0xd2 , 0xf2 , 0xde , 0xfe , 0xd7 , 0xf7 , 0xdf , 0xff}; -const unsigned char sbox_8_inv[256] = {0xac , 0xe8 , 0x68 , 0x3c , 0x6c , 0x38 , 0xa8 , 0xec , 0xaa , 0xae , 0x3a , 0x3e , 0x6a , 0x6e , 0xea , 0xee ,0xa6 , 0xa3 , 0x33 , 0x36 , 0x66 , 0x63 , 0xe3 , 0xe6 , 0xe1 , 0xa4 , 0x61 , 0x34 , 0x31 , 0x64 , 0xa1 , 0xe4 ,0x8d , 0xc9 , 0x49 , 0x1d , 0x4d , 0x19 , 0x89 , 0xcd , 0x8b , 0x8f , 0x1b , 0x1f , 0x4b , 0x4f , 0xcb , 0xcf ,0x85 , 0xc0 , 0x40 , 0x15 , 0x45 , 0x10 , 0x80 , 0xc5 , 0x82 , 0x87 , 0x12 , 0x17 , 0x42 , 0x47 , 0xc2 , 0xc7 ,0x96 , 0x93 , 0x03 , 0x06 , 0x56 , 0x53 , 0xd3 , 0xd6 , 0xd1 , 0x94 , 0x51 , 0x04 , 0x01 , 0x54 , 0x91 , 0xd4 ,0x9c , 0xd8 , 0x58 , 0x0c , 0x5c , 0x08 , 0x98 , 0xdc , 0x9a , 0x9e , 0x0a , 0x0e , 0x5a , 0x5e , 0xda , 0xde ,0x95 , 0xd0 , 0x50 , 0x05 , 0x55 , 0x00 , 0x90 , 0xd5 , 0x92 , 0x97 , 0x02 , 0x07 , 0x52 , 0x57 , 0xd2 , 0xd7 ,0x9d , 0xd9 , 0x59 , 0x0d , 0x5d , 0x09 , 0x99 , 0xdd , 0x9b , 0x9f , 0x0b , 0x0f , 0x5b , 0x5f , 0xdb , 0xdf ,0x16 , 0x13 , 0x83 , 0x86 , 0x46 , 0x43 , 0xc3 , 0xc6 , 0x41 , 0x14 , 0xc1 , 0x84 , 0x11 , 0x44 , 0x81 , 0xc4 ,0x1c , 0x48 , 0xc8 , 0x8c , 0x4c , 0x18 , 0x88 , 0xcc , 0x1a , 0x1e , 0x8a , 0x8e , 0x4a , 0x4e , 0xca , 0xce ,0x35 , 0x60 , 0xe0 , 0xa5 , 0x65 , 0x30 , 0xa0 , 0xe5 , 0x32 , 0x37 , 0xa2 , 0xa7 , 0x62 , 0x67 , 0xe2 , 0xe7 ,0x3d , 0x69 , 0xe9 , 0xad , 0x6d , 0x39 , 0xa9 , 0xed , 0x3b , 0x3f , 0xab , 0xaf , 0x6b , 0x6f , 0xeb , 0xef ,0x26 , 0x23 , 0xb3 , 0xb6 , 0x76 , 0x73 , 0xf3 , 0xf6 , 0x71 , 0x24 , 0xf1 , 0xb4 , 0x21 , 0x74 , 0xb1 , 0xf4 ,0x2c , 0x78 , 0xf8 , 0xbc , 0x7c , 0x28 , 0xb8 , 0xfc , 0x2a , 0x2e , 0xba , 0xbe , 0x7a , 0x7e , 0xfa , 0xfe ,0x25 , 0x70 , 0xf0 , 0xb5 , 0x75 , 0x20 , 0xb0 , 0xf5 , 0x22 , 0x27 , 0xb2 , 0xb7 , 0x72 , 0x77 , 0xf2 , 0xf7 ,0x2d , 0x79 , 0xf9 , 0xbd , 0x7d , 0x29 , 0xb9 , 0xfd , 0x2b , 0x2f , 0xbb , 0xbf , 0x7b , 0x7f , 0xfb , 0xff}; - -// ShiftAndSwitchRows permutation -const unsigned char P[16] = {0,1,2,3,7,4,5,6,10,11,8,9,13,14,15,12}; -const unsigned char P_inv[16] = {0,1,2,3,5,6,7,4,10,11,8,9,15,12,13,14}; - -// Tweakey permutation -const unsigned char TWEAKEY_P[16] = {9,15,8,13,10,14,12,11,0,1,2,3,4,5,6,7}; -const unsigned char TWEAKEY_P_inv[16] = {8,9,10,11,12,13,14,15,2,0,4,7,6,3,5,1}; - -// round constants -const unsigned char RC[62] = { - 0x01, 0x03, 0x07, 0x0F, 0x1F, 0x3E, 0x3D, 0x3B, 0x37, 0x2F, - 0x1E, 0x3C, 0x39, 0x33, 0x27, 0x0E, 0x1D, 0x3A, 0x35, 0x2B, - 0x16, 0x2C, 0x18, 0x30, 0x21, 0x02, 0x05, 0x0B, 0x17, 0x2E, - 0x1C, 0x38, 0x31, 0x23, 0x06, 0x0D, 0x1B, 0x36, 0x2D, 0x1A, - 0x34, 0x29, 0x12, 0x24, 0x08, 0x11, 0x22, 0x04, 0x09, 0x13, - 0x26, 0x0c, 0x19, 0x32, 0x25, 0x0a, 0x15, 0x2a, 0x14, 0x28, - 0x10, 0x20}; - -FILE* fic; - - -// Extract and apply the subtweakey to the internal state (must be the two top rows XORed together), then update the tweakey state -void AddKey(unsigned char state[4][4], unsigned char keyCells[3][4][4], int ver) -{ - int i, j, k; - unsigned char pos; - unsigned char keyCells_tmp[3][4][4]; - - // apply the subtweakey to the internal state - for(i = 0; i <= 1; i++) - { - for(j = 0; j < 4; j++) - { - state[i][j] ^= keyCells[0][i][j]; - if (2*versions[ver][0]==versions[ver][1]) - state[i][j] ^= keyCells[1][i][j]; - else if (3*versions[ver][0]==versions[ver][1]) - state[i][j] ^= keyCells[1][i][j] ^ keyCells[2][i][j]; - } - } - - // update the subtweakey states with the permutation - for(k = 0; k <(int)(versions[ver][1]/versions[ver][0]); k++){ - for(i = 0; i < 4; i++){ - for(j = 0; j < 4; j++){ - //application of the TWEAKEY permutation - pos=TWEAKEY_P[j+4*i]; - keyCells_tmp[k][i][j]=keyCells[k][pos>>2][pos&0x3]; - } - } - } - - // update the subtweakey states with the LFSRs - for(k = 0; k <(int)(versions[ver][1]/versions[ver][0]); k++){ - for(i = 0; i <= 1; i++){ - for(j = 0; j < 4; j++){ - //application of LFSRs for TK updates - if (k==1) - { - if (versions[ver][0]==64) - keyCells_tmp[k][i][j]=((keyCells_tmp[k][i][j]<<1)&0xE)^((keyCells_tmp[k][i][j]>>3)&0x1)^((keyCells_tmp[k][i][j]>>2)&0x1); - else - keyCells_tmp[k][i][j]=((keyCells_tmp[k][i][j]<<1)&0xFE)^((keyCells_tmp[k][i][j]>>7)&0x01)^((keyCells_tmp[k][i][j]>>5)&0x01); - } - else if (k==2) - { - if (versions[ver][0]==64) - keyCells_tmp[k][i][j]=((keyCells_tmp[k][i][j]>>1)&0x7)^((keyCells_tmp[k][i][j])&0x8)^((keyCells_tmp[k][i][j]<<3)&0x8); - else - keyCells_tmp[k][i][j]=((keyCells_tmp[k][i][j]>>1)&0x7F)^((keyCells_tmp[k][i][j]<<7)&0x80)^((keyCells_tmp[k][i][j]<<1)&0x80); - } - } - } - } - - for(k = 0; k <(int)(versions[ver][1]/versions[ver][0]); k++){ - for(i = 0; i < 4; i++){ - for(j = 0; j < 4; j++){ - keyCells[k][i][j]=keyCells_tmp[k][i][j]; - } - } - } -} - - -// Extract and apply the subtweakey to the internal state (must be the two top rows XORed together), then update the tweakey state (inverse function} -void AddKey_inv(unsigned char state[4][4], unsigned char keyCells[3][4][4], int ver) -{ - int i, j, k; - unsigned char pos; - unsigned char keyCells_tmp[3][4][4]; - - // update the subtweakey states with the permutation - for(k = 0; k <(int)(versions[ver][1]/versions[ver][0]); k++){ - for(i = 0; i < 4; i++){ - for(j = 0; j < 4; j++){ - //application of the inverse TWEAKEY permutation - pos=TWEAKEY_P_inv[j+4*i]; - keyCells_tmp[k][i][j]=keyCells[k][pos>>2][pos&0x3]; - } - } - } - - // update the subtweakey states with the LFSRs - for(k = 0; k <(int)(versions[ver][1]/versions[ver][0]); k++){ - for(i = 2; i <= 3; i++){ - for(j = 0; j < 4; j++){ - //application of inverse LFSRs for TK updates - if (k==1) - { - if (versions[ver][0]==64) - keyCells_tmp[k][i][j]=((keyCells_tmp[k][i][j]>>1)&0x7)^((keyCells_tmp[k][i][j]<<3)&0x8)^((keyCells_tmp[k][i][j])&0x8); - else - keyCells_tmp[k][i][j]=((keyCells_tmp[k][i][j]>>1)&0x7F)^((keyCells_tmp[k][i][j]<<7)&0x80)^((keyCells_tmp[k][i][j]<<1)&0x80); - } - else if (k==2) - { - if (versions[ver][0]==64) - keyCells_tmp[k][i][j]=((keyCells_tmp[k][i][j]<<1)&0xE)^((keyCells_tmp[k][i][j]>>3)&0x1)^((keyCells_tmp[k][i][j]>>2)&0x1); - else - keyCells_tmp[k][i][j]=((keyCells_tmp[k][i][j]<<1)&0xFE)^((keyCells_tmp[k][i][j]>>7)&0x01)^((keyCells_tmp[k][i][j]>>5)&0x01); - } - } - } - } - - for(k = 0; k <(int)(versions[ver][1]/versions[ver][0]); k++){ - for(i = 0; i < 4; i++){ - for(j = 0; j < 4; j++){ - keyCells[k][i][j]=keyCells_tmp[k][i][j]; - } - } - } - - - // apply the subtweakey to the internal state - for(i = 0; i <= 1; i++) - { - for(j = 0; j < 4; j++) - { - state[i][j] ^= keyCells[0][i][j]; - if (2*versions[ver][0]==versions[ver][1]) - state[i][j] ^= keyCells[1][i][j]; - else if (3*versions[ver][0]==versions[ver][1]) - state[i][j] ^= keyCells[1][i][j] ^ keyCells[2][i][j]; - } - } -} - - -// Apply the constants: using a LFSR counter on 6 bits, we XOR the 6 bits to the first 6 bits of the internal state -void AddConstants(unsigned char state[4][4], int r) -{ - state[0][0] ^= (RC[r] & 0xf); - state[1][0] ^= ((RC[r]>>4) & 0x3); - state[2][0] ^= 0x2; -} - -// apply the 4-bit Sbox -void SubCell4(unsigned char state[4][4]) -{ - int i,j; - for(i = 0; i < 4; i++) - for(j = 0; j < 4; j++) - state[i][j] = sbox_4[state[i][j]]; -} - -// apply the 4-bit inverse Sbox -void SubCell4_inv(unsigned char state[4][4]) -{ - int i,j; - for(i = 0; i < 4; i++) - for(j = 0; j < 4; j++) - state[i][j] = sbox_4_inv[state[i][j]]; -} - -// apply the 8-bit Sbox -void SubCell8(unsigned char state[4][4]) -{ - int i,j; - for(i = 0; i < 4; i++) - for(j = 0; j < 4; j++) - state[i][j] = sbox_8[state[i][j]]; -} - -// apply the 8-bit inverse Sbox -void SubCell8_inv(unsigned char state[4][4]) -{ - int i,j; - for(i = 0; i < 4; i++) - for(j = 0; j < 4; j++) - state[i][j] = sbox_8_inv[state[i][j]]; -} - -// Apply the ShiftRows function -void ShiftRows(unsigned char state[4][4]) -{ - int i, j, pos; - - unsigned char state_tmp[4][4]; - for(i = 0; i < 4; i++) - { - for(j = 0; j < 4; j++) - { - //application of the ShiftRows permutation - pos=P[j+4*i]; - state_tmp[i][j]=state[pos>>2][pos&0x3]; - } - } - - for(i = 0; i < 4; i++) - { - for(j = 0; j < 4; j++) - { - state[i][j]=state_tmp[i][j]; - } - } -} - -// Apply the inverse ShiftRows function -void ShiftRows_inv(unsigned char state[4][4]) -{ - int i, j, pos; - - unsigned char state_tmp[4][4]; - for(i = 0; i < 4; i++) - { - for(j = 0; j < 4; j++) - { - //application of the inverse ShiftRows permutation - pos=P_inv[j+4*i]; - state_tmp[i][j]=state[pos>>2][pos&0x3]; - } - } - - for(i = 0; i < 4; i++) - { - for(j = 0; j < 4; j++) - { - state[i][j]=state_tmp[i][j]; - } - } -} - -// Apply the linear diffusion matrix -//M = -//1 0 1 1 -//1 0 0 0 -//0 1 1 0 -//1 0 1 0 -void MixColumn(unsigned char state[4][4]) -{ - int j; - unsigned char temp; - - for(j = 0; j < 4; j++){ - state[1][j]^=state[2][j]; - state[2][j]^=state[0][j]; - state[3][j]^=state[2][j]; - - temp=state[3][j]; - state[3][j]=state[2][j]; - state[2][j]=state[1][j]; - state[1][j]=state[0][j]; - state[0][j]=temp; - } -} - -// Apply the inverse linear diffusion matrix -void MixColumn_inv(unsigned char state[4][4]) -{ - int j; - unsigned char temp; - - for(j = 0; j < 4; j++){ - temp=state[3][j]; - state[3][j]=state[0][j]; - state[0][j]=state[1][j]; - state[1][j]=state[2][j]; - state[2][j]=temp; - - state[3][j]^=state[2][j]; - state[2][j]^=state[0][j]; - state[1][j]^=state[2][j]; - } -} - -// decryption function of Skinny -void dec(unsigned char* input, const unsigned char* userkey, int ver) -{ - unsigned char state[4][4]; - unsigned char dummy[4][4]={{0}}; - unsigned char keyCells[3][4][4]; - int i; - - memset(keyCells, 0, 48); - for(i = 0; i < 16; i++) { - if (versions[ver][0]==64){ - if(i&1) - { - state[i>>2][i&0x3] = input[i>>1]&0xF; - keyCells[0][i>>2][i&0x3] = userkey[i>>1]&0xF; - if (versions[ver][1]>=128) - keyCells[1][i>>2][i&0x3] = userkey[(i+16)>>1]&0xF; - if (versions[ver][1]>=192) - keyCells[2][i>>2][i&0x3] = userkey[(i+32)>>1]&0xF; - } - else - { - state[i>>2][i&0x3] = (input[i>>1]>>4)&0xF; - keyCells[0][i>>2][i&0x3] = (userkey[i>>1]>>4)&0xF; - if (versions[ver][1]>=128) - keyCells[1][i>>2][i&0x3] = (userkey[(i+16)>>1]>>4)&0xF; - if (versions[ver][1]>=192) - keyCells[2][i>>2][i&0x3] = (userkey[(i+32)>>1]>>4)&0xF; - } - } - else if (versions[ver][0]==128){ - state[i>>2][i&0x3] = input[i]&0xFF; - - keyCells[0][i>>2][i&0x3] = userkey[i]&0xFF; - if (versions[ver][1]>=256) - keyCells[1][i>>2][i&0x3] = userkey[i+16]&0xFF; - if (versions[ver][1]>=384) - keyCells[2][i>>2][i&0x3] = userkey[i+32]&0xFF; - } - } - - for(i = versions[ver][2]-1; i >=0 ; i--){ - AddKey(dummy, keyCells, ver); - } - - #ifdef DEBUG - //f//printf(fic,"DEC - initial state: ");display_cipher_state(state,keyCells,ver);//f//printf(fic,"\n"); - #endif - - for(i = versions[ver][2]-1; i >=0 ; i--){ - MixColumn_inv(state); - #ifdef DEBUG - //f//printf(fic,"DEC - round %.2i - after MixColumn_inv: ",i);display_cipher_state(state,keyCells,ver);//f//printf(fic,"\n"); - #endif - ShiftRows_inv(state); - #ifdef DEBUG - //f//printf(fic,"DEC - round %.2i - after ShiftRows_inv: ",i);display_cipher_state(state,keyCells,ver);//f//printf(fic,"\n"); - #endif - AddKey_inv(state, keyCells, ver); - #ifdef DEBUG - //f//printf(fic,"DEC - round %.2i - after AddKey_inv: ",i);display_cipher_state(state,keyCells,ver);//f//printf(fic,"\n"); - #endif - AddConstants(state, i); - #ifdef DEBUG - //f//printf(fic,"DEC - round %.2i - after AddConstants_inv: ",i);display_cipher_state(state,keyCells,ver);//f//printf(fic,"\n"); - #endif - if (versions[ver][0]==64) - SubCell4_inv(state); - else - SubCell8_inv(state); - #ifdef DEBUG - //f//printf(fic,"DEC - round %.2i - after SubCell_inv: ",i);display_cipher_state(state,keyCells,ver);//f//printf(fic,"\n"); - #endif - } - - #ifdef DEBUG - //f//printf(fic,"DEC - final state: ");display_cipher_state(state,keyCells,ver);//f//printf(fic,"\n"); - #endif - - if (versions[ver][0]==64) - { - for(i = 0; i < 8; i++) - input[i] = ((state[(2*i)>>2][(2*i)&0x3] & 0xF) << 4) | (state[(2*i+1)>>2][(2*i+1)&0x3] & 0xF); - } - else if (versions[ver][0]==128) - { - for(i = 0; i < 16; i++) - input[i] = state[i>>2][i&0x3] & 0xFF; - } -} - -// encryption function of Skinny -void enc(unsigned char* input, const unsigned char* userkey, int ver) -{ - unsigned char state[4][4]; - unsigned char keyCells[3][4][4]; - int i; - - memset(keyCells, 0, 48); - for(i = 0; i < 16; i++) { - if (versions[ver][0]==64){ - if(i&1) - { - state[i>>2][i&0x3] = input[i>>1]&0xF; - keyCells[0][i>>2][i&0x3] = userkey[i>>1]&0xF; - if (versions[ver][1]>=128) - keyCells[1][i>>2][i&0x3] = userkey[(i+16)>>1]&0xF; - if (versions[ver][1]>=192) - keyCells[2][i>>2][i&0x3] = userkey[(i+32)>>1]&0xF; - } - else - { - state[i>>2][i&0x3] = (input[i>>1]>>4)&0xF; - keyCells[0][i>>2][i&0x3] = (userkey[i>>1]>>4)&0xF; - if (versions[ver][1]>=128) - keyCells[1][i>>2][i&0x3] = (userkey[(i+16)>>1]>>4)&0xF; - if (versions[ver][1]>=192) - keyCells[2][i>>2][i&0x3] = (userkey[(i+32)>>1]>>4)&0xF; - } - } - else if (versions[ver][0]==128){ - state[i>>2][i&0x3] = input[i]&0xFF; - keyCells[0][i>>2][i&0x3] = userkey[i]&0xFF; - if (versions[ver][1]>=256) - keyCells[1][i>>2][i&0x3] = userkey[i+16]&0xFF; - if (versions[ver][1]>=384) - keyCells[2][i>>2][i&0x3] = userkey[i+32]&0xFF; - } - } - - #ifdef DEBUG - //printf("ENC - initial state: ");display_cipher_state(state,keyCells,ver);//printf("\n"); - #endif - for(i = 0; i < versions[ver][2]; i++){ - if (versions[ver][0]==64) - SubCell4(state); - else - SubCell8(state); - #ifdef DEBUG - //printf("ENC - round %.2i - after SubCell: ",i);display_cipher_state(state,keyCells,ver);//printf("\n"); - #endif - AddConstants(state, i); - #ifdef DEBUG - //printf("ENC - round %.2i - after AddConstants: ",i);display_cipher_state(state,keyCells,ver);//printf("\n"); - #endif - AddKey(state, keyCells, ver); - #ifdef DEBUG - //printf("ENC - round %.2i - after AddKey: ",i);display_cipher_state(state,keyCells,ver);//printf("\n"); - #endif - ShiftRows(state); - #ifdef DEBUG - //printf("ENC - round %.2i - after ShiftRows: ",i);display_cipher_state(state,keyCells,ver);//printf("\n"); - #endif - MixColumn(state); - #ifdef DEBUG - //printf("ENC - round %.2i - after MixColumn: ",i);display_cipher_state(state,keyCells,ver);//printf("\n"); - #endif - } //The last subtweakey should not be added - - #ifdef DEBUG - //printf("ENC - final state: ");display_cipher_state(state,keyCells,ver);//printf("\n"); - #endif - - if (versions[ver][0]==64) - { - for(i = 0; i < 8; i++) - input[i] = ((state[(2*i)>>2][(2*i)&0x3] & 0xF) << 4) | (state[(2*i+1)>>2][(2*i+1)&0x3] & 0xF); - } - else if (versions[ver][0]==128) - { - for(i = 0; i < 16; i++) - input[i] = state[i>>2][i&0x3] & 0xFF; - } -} - -void skinny_128_384_enc (unsigned char* input, const unsigned char* userkey) { - enc(input,userkey,5); -} - -// generate test vectors for all the versions of Skinny -void TestVectors(int ver) -{ - unsigned char p[16]; - unsigned char c[16]; - unsigned char k[48]; - int n; - - for(n = 1; n < 10; n++) - { - int i; - for(i = 0; i < (versions[ver][0]>>3); i++) c[i] = p[i] = rand() & 0xff; - for(i = 0; i < (versions[ver][1]>>3); i++) k[i] = rand() & 0xff; - //printf("TK = "); for(i = 0; i < (versions[ver][1]>>3); i++) //printf("%02x", k[i]); //printf("\n"); - //printf("P = "); for(i = 0; i < (versions[ver][0]>>3); i++) //printf("%02x", p[i]); //printf("\n"); - enc(c,k,ver); - //printf("C = "); for(i = 0; i < (versions[ver][0]>>3); i++) //printf("%02x", c[i]); //printf("\n"); - dec(c,k,ver); - //printf("P' = "); for(i = 0; i < (versions[ver][0]>>3); i++) //printf("%02x", c[i]); //printf("\n\n"); - } -} - -/* int main() { */ -/* unsigned int i; */ -/* char name[30]; */ - -/* srand((unsigned) time (NULL)); */ - -/* //test all versions of Skinny */ -/* for (i=0; i<(sizeof(versions)/sizeof(*versions));i++) */ -/* { */ -/* s//printf(name, "test_vectors_%i_%i.txt", versions[i][0], versions[i][1]); */ -/* fic=fopen(name,"w"); */ -/* //printf("\n\nSkinny-%i/%i: \n",versions[i][0],versions[i][1]); */ -/* TestVectors(i); */ -/* fclose(fic); */ -/* //printf("Generating test vectors for Skinny-%i/%i - saved in file test_vectors_%i_%i.txt \n",versions[i][0],versions[i][1],versions[i][0],versions[i][1]); */ -/* } */ - -/* return 0; */ -/* } */ - - - diff --git a/romulus/Implementations/crypto_aead/romulusn1v12/ref/variant.h b/romulus/Implementations/crypto_aead/romulusn1v12/ref/variant.h deleted file mode 100644 index 71b0405..0000000 --- a/romulus/Implementations/crypto_aead/romulusn1v12/ref/variant.h +++ /dev/null @@ -1,3 +0,0 @@ -#define MSG_BLK_LEN 16 -#define AD_BLK_LEN_ODD 16 -#define AD_BLK_LEN_EVN 16 diff --git a/romulus/Implementations/crypto_aead/romulusn2/LWC_AEAD_KAT_128_96.txt b/romulus/Implementations/crypto_aead/romulusn2/LWC_AEAD_KAT_128_96.txt new file mode 100644 index 0000000..2f55446 --- /dev/null +++ b/romulus/Implementations/crypto_aead/romulusn2/LWC_AEAD_KAT_128_96.txt @@ -0,0 +1,7623 @@ +Count = 1 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = +AD = +CT = C543F9D547B68FFCA08FABBD9983997E + +Count = 2 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = +AD = 00 +CT = 99F599A3361F11E971FFE9073EEC3344 + +Count = 3 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = +AD = 0001 +CT = 2B03E1BB97BB9AFBFFD84FC5FE6FCA01 + +Count = 4 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = +AD = 000102 +CT = 0DDC3A18751EDBCA0958EC8A3E8CF5CB + +Count = 5 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = +AD = 00010203 +CT = 0D68612ED24E72A508F61F1343F4DBB7 + +Count = 6 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = +AD = 0001020304 +CT = 57C5D787455A51D8AB836A985ED05F0C + +Count = 7 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = +AD = 000102030405 +CT = 4ACFE2DA8FF158B91F59BEA9BB219115 + +Count = 8 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = +AD = 00010203040506 +CT = A17547546D9A5D704108288FC22C9992 + +Count = 9 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = +AD = 0001020304050607 +CT = 6E8FF6DD9E92436D0FDC7732635CEE97 + +Count = 10 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = +AD = 000102030405060708 +CT = FE0D8754DA146FFEDF1CAF77FF7A01D3 + +Count = 11 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = +AD = 00010203040506070809 +CT = DA906645C5BBF0FF894604C6F384437D + +Count = 12 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = +AD = 000102030405060708090A +CT = 6A451C42CA8239BD25BFF9B41B05EB1E + +Count = 13 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = +AD = 000102030405060708090A0B +CT = 96B3D55B8386B1789A198D84B80FEA63 + +Count = 14 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = +AD = 000102030405060708090A0B0C +CT = 3E358F70CF0C24C1AA10BE62D374771D + +Count = 15 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = +AD = 000102030405060708090A0B0C0D +CT = 079B85B78B0D9B7B3F82C05A0D38F478 + +Count = 16 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = +AD = 000102030405060708090A0B0C0D0E +CT = 8DCDEE8F83AB434A1DF7629B759D3DD2 + +Count = 17 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = +AD = 000102030405060708090A0B0C0D0E0F +CT = 619D4B54B8DA2C164D19B20A6AA22B62 + +Count = 18 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 05DFC578A15D27F4FE8E0DD3D2ED7640 + +Count = 19 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = E18E486A598A521309A96F0A610CD65D + +Count = 20 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = DBD35CCF9823385A085F263654055BDC + +Count = 21 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 91B4DF856EC2330A6BE249F2E261875B + +Count = 22 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = 9EBDEC1724DC2100F7DABB1B12E14595 + +Count = 23 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = 2D3F55B5BF7ACBAE0ED40DD8720D7DA1 + +Count = 24 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 1C55DA577512A77984EE60C6915797E2 + +Count = 25 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = 9478877A1C29F986B4EB8A2F50CD1496 + +Count = 26 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 2BB4F1FB6E7CE907E6219B82DEE13806 + +Count = 27 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = A07EC49E3230F61C7034DD7C107F7165 + +Count = 28 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = C2FFB276FF8312F0835D26DCC37CB1D4 + +Count = 29 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 4DFC61D2650F0A5726A42E9C94910917 + +Count = 30 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = 948556EFE394D60581EFBDB61706EA03 + +Count = 31 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 1A29D67F8805A68F77FB8B3B5CDD8C4B + +Count = 32 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = 0022E10AFDBAB85DA2743E0B1F570511 + +Count = 33 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 78D90E0F6B106712C708C5BC415AE098 + +Count = 34 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00 +AD = +CT = BCB8819AFBD5C3B118B254EC1446FAB366 + +Count = 35 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00 +AD = 00 +CT = B1EFC7AAF6ACFD436F8B330B0388251E10 + +Count = 36 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00 +AD = 0001 +CT = FD338B27F24E85D9AD4EF503E619C84715 + +Count = 37 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00 +AD = 000102 +CT = A26652548EDCF21972A7FCCA4DA366D767 + +Count = 38 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00 +AD = 00010203 +CT = 3E07CC440CABD8CED4DAF5D5C5D537F58C + +Count = 39 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00 +AD = 0001020304 +CT = 7E8DEC3790DD8BDE0194A5684A63C7572D + +Count = 40 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00 +AD = 000102030405 +CT = 1A60A320769BD5AD2AC37576E9956DF32B + +Count = 41 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00 +AD = 00010203040506 +CT = 1FF2E69469BF0EAB606B543D3B729FB301 + +Count = 42 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00 +AD = 0001020304050607 +CT = 86482F44AFB20E21A1262E47A2AEC28119 + +Count = 43 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00 +AD = 000102030405060708 +CT = 587872CD5F085E54247EBA2A35CB23C751 + +Count = 44 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00 +AD = 00010203040506070809 +CT = 6B0CA14D0ACD0D9872DAAD15AAC62DF31D + +Count = 45 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00 +AD = 000102030405060708090A +CT = 5B73CD55FECFB020AB115CFB8AEC718B6A + +Count = 46 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00 +AD = 000102030405060708090A0B +CT = FE6BA807BE8BB04ED5682A80AA36BAD6E2 + +Count = 47 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00 +AD = 000102030405060708090A0B0C +CT = 02C5D6A3FD7E5F363094385E8BD9C2BF76 + +Count = 48 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00 +AD = 000102030405060708090A0B0C0D +CT = 6880361FD028535C5EA869D6EA1CBF807D + +Count = 49 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00 +AD = 000102030405060708090A0B0C0D0E +CT = E4F367AB177AA08FCB5C0C62DC7618BA3C + +Count = 50 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00 +AD = 000102030405060708090A0B0C0D0E0F +CT = DF8F16E138DB369E723175688C1EF3501B + +Count = 51 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 5402EED71BB123E0D039DEF19421CEFE44 + +Count = 52 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 3664359A97C225EDBBB809ED5A9A01166E + +Count = 53 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = C1F9B5D101871F391C33969BEFA8939E6D + +Count = 54 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 014D2721412ABE4E859A33212572F7379A + +Count = 55 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = FB19AC89185C63BB711395076B4A938AFA + +Count = 56 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = EE8567043C48B971531BDA01A5AE5CCAFF + +Count = 57 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 955668803EDC39D5676F055432E04494BC + +Count = 58 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = CFFDDED5502E94639EFF757B6ED4C7C21F + +Count = 59 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = A56F5BB57DAE3C18C2C1EA6FB493A13819 + +Count = 60 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = 4E24489ED97051E7A62F7F2ABEC9DEF41F + +Count = 61 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = BB6B8BA451DBDBCC51196DA106BF8EE308 + +Count = 62 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 549CBA0327D6B0964B472585D14E64B6A9 + +Count = 63 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = 221EE30E6B04624FE9232D7285299C29BA + +Count = 64 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 0553FCCA51C6C7427C9CF3E6F5BFCC1710 + +Count = 65 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = C0878355AC0D394CB53F93499C3F2E68EF + +Count = 66 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 13DFBA9400792685FFBDE1D33676185BFA + +Count = 67 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001 +AD = +CT = BC737E3A48DAA7E0EB32E3FEDFCFCE30ECC7 + +Count = 68 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001 +AD = 00 +CT = B1A8573A8DF6142D49756B52707DE6239BE4 + +Count = 69 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001 +AD = 0001 +CT = FDC9AC573AA4B7BCD8B4F1457E954484FD84 + +Count = 70 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001 +AD = 000102 +CT = A2EED9BB3A9F883F6258092DF0D7C8779BA5 + +Count = 71 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001 +AD = 00010203 +CT = 3ECF602E68E5F3DDB8EFFEDF9C058D1A7B27 + +Count = 72 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001 +AD = 0001020304 +CT = 7EA0B8A59B28CA1367624D104E555F336485 + +Count = 73 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001 +AD = 000102030405 +CT = 1A94912F7285DC5109D4ABAFFFAC36325A48 + +Count = 74 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001 +AD = 00010203040506 +CT = 1F6DD0EE6138983A9328ED379ED5965405CF + +Count = 75 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001 +AD = 0001020304050607 +CT = 86A0CA39E6B3E646B32EDE877C33A0C219E4 + +Count = 76 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001 +AD = 000102030405060708 +CT = 5840356DA3E76736F7D9E4A658927F86D9A3 + +Count = 77 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001 +AD = 00010203040506070809 +CT = 6B74877F8ACC9214316C487A6D5C2C7026A9 + +Count = 78 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001 +AD = 000102030405060708090A +CT = 5BA13728D2CC5B1FCBD6FD5830B6F3090C94 + +Count = 79 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001 +AD = 000102030405060708090A0B +CT = FEB663714E5B6DD53952D4B196CBACEB10BE + +Count = 80 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001 +AD = 000102030405060708090A0B0C +CT = 0286879A8149CBC6A0718A93E7981FE03296 + +Count = 81 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001 +AD = 000102030405060708090A0B0C0D +CT = 681E50DBE7C22D441565E03C5FA6DE8F3B2D + +Count = 82 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001 +AD = 000102030405060708090A0B0C0D0E +CT = E43AF3DA4DEF0778AAEBED0C2297B7FE3F0E + +Count = 83 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001 +AD = 000102030405060708090A0B0C0D0E0F +CT = DF0C14698DD0679F6F0E29C6B7C273AFD751 + +Count = 84 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 541104932A1EE8D6AFC1C64515B43C8B175C + +Count = 85 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 36CED7E4633988ACE3C23F3190949EE127C8 + +Count = 86 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = C171B5BD878EFE688E9ABD51AA900FA4C3C7 + +Count = 87 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 01E45F06A0F9098AC9A0FE8FABE4EEFBA3AC + +Count = 88 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = FBAA63D7D7FCF59B45A4040ECFD92BBE6ED0 + +Count = 89 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = EE7B6201647876244AA2A23AF9E2752EAFE3 + +Count = 90 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 95AF6205A152FCE12AA743083E6596406F4B + +Count = 91 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = CF2FE77114811C119A6691C3EB401AD771D3 + +Count = 92 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = A5AE792AFA7D8FEE63CF8FE646786C1C0B16 + +Count = 93 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = 4E7F0B8B4FC2C12EA679C5483D4F12DBC229 + +Count = 94 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = BB85FAEDEEEE33D99998593999D4754F7B0C + +Count = 95 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 545D2CE9D083D06DCF66BB80084F4F03D673 + +Count = 96 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = 228474F21E2D79F485D0D9950C8EEB67CD1C + +Count = 97 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 05F8272149DFD9ADC98D443DB7C015ABBC6D + +Count = 98 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = C01929B1685A438F696074DD42DDD42F9533 + +Count = 99 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 13B6C13DDD93EB478C8AA03E740F104628CB + +Count = 100 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102 +AD = +CT = BC73B148EF4F566C2DDD8476C7D7674A14EAD4 + +Count = 101 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102 +AD = 00 +CT = B1A8DFF1B83E98806E92DD39AE8BF93C19C59E + +Count = 102 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102 +AD = 0001 +CT = FDC95789049E490F4E0E6531C709B46B5A7322 + +Count = 103 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102 +AD = 000102 +CT = A2EEF1B7299AB8890B4727FFA7046CCA6D7621 + +Count = 104 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102 +AD = 00010203 +CT = 3ECF2CC348A9769DFACF1A7CCADE8D5740B0FC + +Count = 105 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102 +AD = 0001020304 +CT = 7EA0A6FAB184D368A331BBE19E46AC71445667 + +Count = 106 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102 +AD = 000102030405 +CT = 1A9471D7A7E5FB69155CB5241E01BDFA1886A1 + +Count = 107 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102 +AD = 00010203040506 +CT = 1F6D4F81F656B21CA691C8AD4C660D082E16FB + +Count = 108 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102 +AD = 0001020304050607 +CT = 86A003EB2B17B4483EFCA222EEF15C393D6304 + +Count = 109 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102 +AD = 000102030405060708 +CT = 5840C91F07DABED91063CAD103E56A1ECD5674 + +Count = 110 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102 +AD = 00010203040506070809 +CT = 6B7449BA2889FC8F5C831FD9247961EBB6FD57 + +Count = 111 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102 +AD = 000102030405060708090A +CT = 5BA183D97CC14E5A28A2A5FF5D8D25E91ACE18 + +Count = 112 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102 +AD = 000102030405060708090A0B +CT = FEB6AB5F16D9D058822C877EF94ACAB9F1EF51 + +Count = 113 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102 +AD = 000102030405060708090A0B0C +CT = 028697C32D4ABFA1659C58F42D7F57A041DDE3 + +Count = 114 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102 +AD = 000102030405060708090A0B0C0D +CT = 681E884BAD7C149A6C3E1D708B114E347343F5 + +Count = 115 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102 +AD = 000102030405060708090A0B0C0D0E +CT = E43AF8DA3BEA2A4133C19CB0434D9122073CB8 + +Count = 116 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102 +AD = 000102030405060708090A0B0C0D0E0F +CT = DF0CA1CF54C75720D2119D7D32D4254691D703 + +Count = 117 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 541111E3006B3840324F89775826BFA1E7BE71 + +Count = 118 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 36CE88D3D950D7AD270BBE0F5AB20E5DEABAC9 + +Count = 119 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = C171586DF5F47C9EFB71883FA543A82EA97284 + +Count = 120 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 01E474633C5E40C248BE4BD6D602BEBE9EA4CB + +Count = 121 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = FBAACC5F273352A545CC685E8A8D3C7C6F152D + +Count = 122 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = EE7B6FE1EAF662A543710938F6B79FCBDC56B7 + +Count = 123 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 95AFA23971C95F1BBE555913EC7F46A42F565E + +Count = 124 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = CF2FB74F6DF9C2F08B874F8BCADE5D6CFBFC5A + +Count = 125 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = A5AEC9001D16C21E1069420E198051C119A9AD + +Count = 126 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = 4E7F9FCECD92275EC75BA55DA2A26D03EA42CC + +Count = 127 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = BB85E26C88814A654EC0B43DEAC414E4A5D580 + +Count = 128 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 545D8CA7379E8B30A6766D35A591970405E803 + +Count = 129 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = 2284614FBA1CB02A6CE48B96C1453400F9DB53 + +Count = 130 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 05F8B00E64238577A0219B003DEB8C4CBDFEA0 + +Count = 131 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = C019C2EE6BD21855FF0E14C8BA780FF04D52B1 + +Count = 132 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 13B62511918C2D7BAB77BD7633BF664D74845C + +Count = 133 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203 +AD = +CT = BC73B1C24E29CFFDC2E7ADD32A3BC5D8B10B9F1D + +Count = 134 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203 +AD = 00 +CT = B1A8DFB12CD1A86F5ED8369D7A455BE0B8994D02 + +Count = 135 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203 +AD = 0001 +CT = FDC957619A541C37B28E8A6191DA16682AE01368 + +Count = 136 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203 +AD = 000102 +CT = A2EEF13F17EE3740342CAAECBF75380CF7BEEA75 + +Count = 137 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203 +AD = 00010203 +CT = 3ECF2C0BD94BD65849A58255110EBD6DDDB2C45C + +Count = 138 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203 +AD = 0001020304 +CT = 7EA0A670FDB46BBFDA06E7F1467B9AF16F9AB387 + +Count = 139 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203 +AD = 000102030405 +CT = 1A947165B2802DB081F793363C8DB3F7533195FD + +Count = 140 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203 +AD = 00010203040506 +CT = 1F6D4FBA724351929A4BF1DEA235F48C011FBCDB + +Count = 141 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203 +AD = 0001020304050607 +CT = 86A003A0186FACDF166B076BCACAB6BF8659CC1B + +Count = 142 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203 +AD = 000102030405060708 +CT = 5840C9CD1813078CBC62614CFEC4F8FB33C62487 + +Count = 143 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203 +AD = 00010203040506070809 +CT = 6B74495424C8840E1518893F33B34A01DC51BC16 + +Count = 144 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203 +AD = 000102030405060708090A +CT = 5BA1831D7D5AE50BF0C703A4C9A1EA018A433E34 + +Count = 145 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203 +AD = 000102030405060708090A0B +CT = FEB6AB5F46BF80269077FB24AA09EC8DCBFDA2D1 + +Count = 146 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203 +AD = 000102030405060708090A0B0C +CT = 028697CF85E050846B652B8BBF129C3D355FB344 + +Count = 147 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203 +AD = 000102030405060708090A0B0C0D +CT = 681E88AD7A5F9D7CC65330A31FBC4E9F12746176 + +Count = 148 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203 +AD = 000102030405060708090A0B0C0D0E +CT = E43AF8F5E24E6E823900A43E3B7A634BFB5561E4 + +Count = 149 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203 +AD = 000102030405060708090A0B0C0D0E0F +CT = DF0CA111A3B70DA0D9A48DB9062EEA4896CE70A8 + +Count = 150 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 5411119D8802DD780564F3E1D7A4706F8D69A7FF + +Count = 151 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 36CE88BC2AAEA293CE4C7C2308AD0EEC7234ED50 + +Count = 152 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = C17158652091C8EB9C2077FD8FD16AE1C9394CBA + +Count = 153 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 01E47467301ABAA25D6AC2BACD657303FA0C2422 + +Count = 154 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = FBAACC6482D91C98024D80CEC8D40EF49864D477 + +Count = 155 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = EE7B6FEA46853BFDEBE6EE6202318AA209454BD7 + +Count = 156 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 95AFA27D7528CF548DF81B79202229F5E8EA64BC + +Count = 157 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = CF2FB7E7588D289A29CFEEA51F63E6DBE20A7CFA + +Count = 158 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = A5AEC98A7F4D720711BFF47400BFFFEDFD6F6BF1 + +Count = 159 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = 4E7F9F0B0DC41A25D26328D5D16AD1D90010EA83 + +Count = 160 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = BB85E2FF54D3D3450771C4092B38820266A56E7A + +Count = 161 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 545D8C7BD242C06190FB0461C2782206BE8BE42B + +Count = 162 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = 2284612C3F3A9A1ED2D769A13F01336F3D7286D3 + +Count = 163 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 05F8B0EDD5DF436AB434EE1B333941A4855CD6FB + +Count = 164 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = C019C2961D69A7D9B24A03407AC1E8B094C1B3E1 + +Count = 165 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 13B625E5DA82C3A0BF1061335B6703D1946314B6 + +Count = 166 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304 +AD = +CT = BC73B1C2F36370F828AC2068FB01ABC0DBCEA16208 + +Count = 167 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304 +AD = 00 +CT = B1A8DFB1928F88B201A006E9F863587B092358E35F + +Count = 168 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304 +AD = 0001 +CT = FDC9576118A65ECD4354AAA7F671CDFD40A607E4C0 + +Count = 169 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304 +AD = 000102 +CT = A2EEF13FA0F94CD8576F507483077E6F905532F0CE + +Count = 170 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304 +AD = 00010203 +CT = 3ECF2C0B16C9493177C2946151EBCC0CFD52281F39 + +Count = 171 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304 +AD = 0001020304 +CT = 7EA0A67026AEE0E46291E5FAEABAFBFB96A394D10E + +Count = 172 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304 +AD = 000102030405 +CT = 1A9471657219911946F30729281AA4B895653A0FC8 + +Count = 173 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304 +AD = 00010203040506 +CT = 1F6D4FBAA55F828EAB30B1B3BA423784B69624F45B + +Count = 174 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304 +AD = 0001020304050607 +CT = 86A003A0C555A889FFC37E5BCAA275FFA75C32CD80 + +Count = 175 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304 +AD = 000102030405060708 +CT = 5840C9CD518576F76115AFBACDD56A53C260C059C5 + +Count = 176 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304 +AD = 00010203040506070809 +CT = 6B744954091BBC5749A2D5355A42920AEA651BDCED + +Count = 177 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304 +AD = 000102030405060708090A +CT = 5BA1831D48BAD01E9C5B47BEF7E309C951C030D681 + +Count = 178 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304 +AD = 000102030405060708090A0B +CT = FEB6AB5F16612E4AB60D9B745A90EE54B1DF072292 + +Count = 179 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304 +AD = 000102030405060708090A0B0C +CT = 028697CF28CA7C89C1F5DEF0C1AAE4B794EC487B98 + +Count = 180 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304 +AD = 000102030405060708090A0B0C0D +CT = 681E88ADDFED66ED9779418B07B36AE061372545FC + +Count = 181 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304 +AD = 000102030405060708090A0B0C0D0E +CT = E43AF8F5570EBD84F6D4B6D70EF1E2224395141C3F + +Count = 182 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304 +AD = 000102030405060708090A0B0C0D0E0F +CT = DF0CA1114FFA3AD0DDEE86064AF0BD946012F2A4F3 + +Count = 183 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 5411119D718AB3E9E8E1554FD9D2AF0E30D230E88C + +Count = 184 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 36CE88BC5702D47F1F0FC42F5B9CDB8D111E7C39E3 + +Count = 185 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = C1715865997A003118DAE733512F0456FA451B18AA + +Count = 186 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 01E47467EC7216F60737E9C2AA8368BCE3A45C6847 + +Count = 187 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = FBAACC6494F1BA2E7BB84D4D5610126317B92137A5 + +Count = 188 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = EE7B6FEA6D742117883796A8784EC45C7540C96C7C + +Count = 189 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 95AFA27D4D9D022D00C88E2132C3DFCCB837820567 + +Count = 190 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = CF2FB7E7386AD2E54021D4F5BC238C54E8587711A6 + +Count = 191 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = A5AEC98AA8EEB3D8696C4B2C2870D7DC69CB32C682 + +Count = 192 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = 4E7F9F0B4532434E7BEA27878805C10A4F435C2A9F + +Count = 193 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = BB85E2FF033796C270F8DD70B907695656457FCE17 + +Count = 194 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 545D8C7B15B962C8D59674DD8BE0008BFB4C28B3E0 + +Count = 195 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = 2284612C476E4D01491EC0A46B62CE70276CD7B8E8 + +Count = 196 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 05F8B0EDB0B9121A407ADE4209954F7E78A73B6C88 + +Count = 197 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = C019C296038332FF15C5168F20794737FC00EBFAA3 + +Count = 198 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 13B625E5F4FFB0824961D17AE71386DC3B432C7A83 + +Count = 199 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405 +AD = +CT = BC73B1C2F3FE1861CCBE84668A60DD6877684C65440C + +Count = 200 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405 +AD = 00 +CT = B1A8DFB192FA84A6B3E141B117CE2100B87A7D724C13 + +Count = 201 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405 +AD = 0001 +CT = FDC957611833C83DDB7B55169C1D09B1244CB74E0136 + +Count = 202 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405 +AD = 000102 +CT = A2EEF13FA0EA43C542E76E5BB779CB83FF9A7A673246 + +Count = 203 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405 +AD = 00010203 +CT = 3ECF2C0B164E6C7D62A3CAFE86B39E21940425A78AAB + +Count = 204 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405 +AD = 0001020304 +CT = 7EA0A67026AE3758F2B070A5A5CAD6E30DACA8B1C63B + +Count = 205 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405 +AD = 000102030405 +CT = 1A94716572303040F45986A6A9D19AF83529A1B0870F + +Count = 206 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405 +AD = 00010203040506 +CT = 1F6D4FBAA5952543C296DA1C2FF88B8707DB58AE5B55 + +Count = 207 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405 +AD = 0001020304050607 +CT = 86A003A0C56CE1A2B043BBF52458E560F00EC9D40AD4 + +Count = 208 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405 +AD = 000102030405060708 +CT = 5840C9CD51285F42019151D2315865C150E7651B1D81 + +Count = 209 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405 +AD = 00010203040506070809 +CT = 6B74495409117F4F37A882FD0187163C07D6152DF596 + +Count = 210 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405 +AD = 000102030405060708090A +CT = 5BA1831D487F15ECA7B599DC777FDCE0E6D007BEF30E + +Count = 211 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405 +AD = 000102030405060708090A0B +CT = FEB6AB5F168A467D69E5C729BD6052A4A711C0CC960F + +Count = 212 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405 +AD = 000102030405060708090A0B0C +CT = 028697CF285B58E8C24AA29713C41E19D852CF914FD8 + +Count = 213 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405 +AD = 000102030405060708090A0B0C0D +CT = 681E88ADDF414B5E2BF90B9E88D858CADD64AE980D49 + +Count = 214 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405 +AD = 000102030405060708090A0B0C0D0E +CT = E43AF8F5579076D401E267464D1309843D302CAD7B39 + +Count = 215 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405 +AD = 000102030405060708090A0B0C0D0E0F +CT = DF0CA1114F2E80A055A80F18D870D4BB1EC7C58CB433 + +Count = 216 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 5411119D71AC2D428B7A5D44B75569159D73667C0563 + +Count = 217 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 36CE88BC57F99A60E14B9793ACE50AA0538BDCC49924 + +Count = 218 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = C171586599C0FC4DB57911E3F82AE9F54C770B6303B1 + +Count = 219 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 01E47467EC5FA856B9D32F4A1DA224AC49C09CDF4630 + +Count = 220 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = FBAACC649496E66AB5E4573E1097B18D7574E31B6A94 + +Count = 221 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = EE7B6FEA6D4E3FFF5CBFE10067EFFE725F3572B672ED + +Count = 222 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 95AFA27D4D8C6DCDFE3D4AC643332005B7DD0D8D32BE + +Count = 223 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = CF2FB7E73873973304C20771F346D5E5875F7E0363A8 + +Count = 224 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = A5AEC98AA860D84F235AEBFCCB0E6F792EA0035035A9 + +Count = 225 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = 4E7F9F0B45CB8B88EE6180F0320B62413B7581C2AA77 + +Count = 226 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = BB85E2FF036ABC976602396B75A961EC1BC23CE81197 + +Count = 227 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 545D8C7B15741BBF9DEE311E33AD6250CD31E484C034 + +Count = 228 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = 2284612C47444AA6EB605B1E6F57FCDCD45C58D7F18F + +Count = 229 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 05F8B0EDB0343940B982F5EE257785B6115A4DC3F0FF + +Count = 230 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = C019C29603C177346887761CFB014B3C9DAC979574F4 + +Count = 231 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 13B625E5F4DF52BB7D8A88CCA1FAD88650DBA439F17E + +Count = 232 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506 +AD = +CT = BC73B1C2F3FE0C8A119DC8EB2006C09BF4EFEAC883B7C5 + +Count = 233 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506 +AD = 00 +CT = B1A8DFB192FA2C9B882BB5A1BD3E41388D3AF4A673390C + +Count = 234 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506 +AD = 0001 +CT = FDC957611833EC980BA62EBAE1DB3D5F20102A5E4BBD08 + +Count = 235 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506 +AD = 000102 +CT = A2EEF13FA0EA16608D346308313B122286CFB3B5559FD0 + +Count = 236 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506 +AD = 00010203 +CT = 3ECF2C0B164EEE34C2140C1C8D2E40771B570B0C207446 + +Count = 237 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506 +AD = 0001020304 +CT = 7EA0A67026AE73F721FC06F5000EBEA295460B9CB7328D + +Count = 238 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506 +AD = 000102030405 +CT = 1A9471657230C229576B97C2843E295BBB28DC584463BC + +Count = 239 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506 +AD = 00010203040506 +CT = 1F6D4FBAA595F10CC2F555FBD102CDF053BCFB044CA354 + +Count = 240 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506 +AD = 0001020304050607 +CT = 86A003A0C56CDDD39EC8EEA5EF2CF00A0AEA7E833F7B44 + +Count = 241 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506 +AD = 000102030405060708 +CT = 5840C9CD51283B537C39A4D4282BD443AD903C1B882C2B + +Count = 242 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506 +AD = 00010203040506070809 +CT = 6B74495409113A0CCCECFEB8243BABEE89DA9F3D5F6F9C + +Count = 243 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506 +AD = 000102030405060708090A +CT = 5BA1831D487F8EFA6D026EF5A0C895712620CE43F0B983 + +Count = 244 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506 +AD = 000102030405060708090A0B +CT = FEB6AB5F168A5779902177882140EF8D0227D058F090B6 + +Count = 245 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506 +AD = 000102030405060708090A0B0C +CT = 028697CF285B4635B4A253D9A452E6C146BC17C63022FA + +Count = 246 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506 +AD = 000102030405060708090A0B0C0D +CT = 681E88ADDF417873AD44B477686423A78DE8135AC03D10 + +Count = 247 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506 +AD = 000102030405060708090A0B0C0D0E +CT = E43AF8F5579066B2DFE647B256590486521C9B4FA2A554 + +Count = 248 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506 +AD = 000102030405060708090A0B0C0D0E0F +CT = DF0CA1114F2E00B6B486E4F42D5CC4E814F5BC9CC80FAD + +Count = 249 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 5411119D71ACCC54E993609BACE6AC655FDAC45EB1E111 + +Count = 250 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 36CE88BC57F9482A27BA5E2A0B4D7774B21CFBACD44842 + +Count = 251 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = C171586599C0291BCFBE391A76D208BBCDEB1AE4A7742A + +Count = 252 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 01E47467EC5F8139E949DB80BC92FE6FB4B9378AF72D16 + +Count = 253 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = FBAACC649496A6C0095EDEBF24A17CA63BAD3F9D3B63EE + +Count = 254 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = EE7B6FEA6D4E6CFF82B361C76DCE703BE3817C78EC8F42 + +Count = 255 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 95AFA27D4D8CEAFCF2929528916D3C898A2B7784B6210A + +Count = 256 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = CF2FB7E73873BEDB9A6D88BC4ED3853A646608024CF0B1 + +Count = 257 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = A5AEC98AA860CE9F5B626135CC7167C77DF7556A92C0BD + +Count = 258 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = 4E7F9F0B45CB9D3469DD24FE1B2B3703A4CDF242CDCC45 + +Count = 259 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = BB85E2FF036A7E9E0B1DEE14616DF028CC414045563A0B + +Count = 260 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 545D8C7B15744BD3B185363ABC352D63FD4C339DA6E49D + +Count = 261 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = 2284612C4744BF1B6CCD512DD5D2493933FCC616AE67CC + +Count = 262 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 05F8B0EDB03495C5B311982ED379F547F3C6922F981EE4 + +Count = 263 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = C019C29603C1E1652360795697AF19817D95A4EC63D4F7 + +Count = 264 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 13B625E5F4DF9238AD49E129C32DA4CC49591FF0FFE760 + +Count = 265 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304050607 +AD = +CT = BC73B1C2F3FE0C59948552C8DE953CB1E3E08CEDD1BA5F6C + +Count = 266 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304050607 +AD = 00 +CT = B1A8DFB192FA2C1BA0E9EB7A2FA1F91AAA1189B654458494 + +Count = 267 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304050607 +AD = 0001 +CT = FDC957611833EC301897788BAE70ECC2B672F133D9B700D4 + +Count = 268 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304050607 +AD = 000102 +CT = A2EEF13FA0EA16BAF23CD117ABB6BC88EC6E6E5AC07B47CF + +Count = 269 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304050607 +AD = 00010203 +CT = 3ECF2C0B164EEE0BB9891D2A0325D072D6017DFD1C0DAF6C + +Count = 270 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304050607 +AD = 0001020304 +CT = 7EA0A67026AE73868602786DA30C7456861B9E9949FB9F7C + +Count = 271 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304050607 +AD = 000102030405 +CT = 1A9471657230C227D6C5723DAB0014309F2421441459800A + +Count = 272 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304050607 +AD = 00010203040506 +CT = 1F6D4FBAA595F14BCBA306C366BD2D987F7C00296B37DECE + +Count = 273 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304050607 +AD = 0001020304050607 +CT = 86A003A0C56CDDD7EAE5D87D1081C2289B2F4CF370386DC9 + +Count = 274 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304050607 +AD = 000102030405060708 +CT = 5840C9CD51283BD1E079C98842EBFF04B82162EF4625249C + +Count = 275 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304050607 +AD = 00010203040506070809 +CT = 6B74495409113A9078C89B0B041A3D903CED91C62D5A4581 + +Count = 276 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304050607 +AD = 000102030405060708090A +CT = 5BA1831D487F8E2481C5CC35C31E82C6B0817A0202DD998F + +Count = 277 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304050607 +AD = 000102030405060708090A0B +CT = FEB6AB5F168A5792DF340DF4CAD06CFEB3BD790766875C86 + +Count = 278 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304050607 +AD = 000102030405060708090A0B0C +CT = 028697CF285B46BF35586C7E282A2D311BC5B61BFC6237F7 + +Count = 279 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304050607 +AD = 000102030405060708090A0B0C0D +CT = 681E88ADDF4178133E12252A49A3600803032938FFAB0BF5 + +Count = 280 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304050607 +AD = 000102030405060708090A0B0C0D0E +CT = E43AF8F55790660A21DFD9F8717252741067CFD6BD1051B5 + +Count = 281 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304050607 +AD = 000102030405060708090A0B0C0D0E0F +CT = DF0CA1114F2E00513FCBCA12F4C9A7866E89C4C8660589EF + +Count = 282 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304050607 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 5411119D71ACCC5DCE1652636EDD9555311F7873D56E21B3 + +Count = 283 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304050607 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 36CE88BC57F948B6DD6BD49402E80FBDB83DDD221399B6CB + +Count = 284 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304050607 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = C171586599C0292C5E2D211F78FBAC902CF350E3C77CB466 + +Count = 285 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304050607 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 01E47467EC5F81AD07256E918962B2C2A1EC80BA3786D2F4 + +Count = 286 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304050607 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = FBAACC649496A650F8475022B61BD16530E398C6BC88C28F + +Count = 287 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304050607 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = EE7B6FEA6D4E6CE720296EDF39A45E0E076332CF2B80C71E + +Count = 288 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304050607 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 95AFA27D4D8CEA688EF347A6D6FE0D1BA5A4BBAE47000262 + +Count = 289 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304050607 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = CF2FB7E73873BE2A84B266AC7514FF26EF3AFF5E43718D43 + +Count = 290 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304050607 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = A5AEC98AA860CE1759CF517D9D5CCAB7B24EFFAA626C2009 + +Count = 291 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304050607 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = 4E7F9F0B45CB9DC42F6DAE7079FC59CD064C6A3F704C8585 + +Count = 292 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304050607 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = BB85E2FF036A7EE1300294BCF07E2CC0A3A768AA9C062379 + +Count = 293 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304050607 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 545D8C7B15744B9A059EA450CE27E060DB074DED02E2DED4 + +Count = 294 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304050607 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = 2284612C4744BFB1C161304FD558A4F42D8926E7F41AD2EA + +Count = 295 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304050607 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 05F8B0EDB034954EF8AAFD7DD7BDF979ED378837E8FEAC33 + +Count = 296 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304050607 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = C019C29603C1E1EDCAFE6839B1782E71DBA2FC347E8255ED + +Count = 297 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304050607 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 13B625E5F4DF92DA237FAE7E2180F716509958D83A2484E6 + +Count = 298 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708 +AD = +CT = BC73B1C2F3FE0C59A36A93578573783993EA8BC810F4129261 + +Count = 299 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708 +AD = 00 +CT = B1A8DFB192FA2C1BD9C39E3B0F5DDFB3E690F07994221EA5CC + +Count = 300 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708 +AD = 0001 +CT = FDC957611833EC30515C9923386955D43CEA80D5D80F2F0D9D + +Count = 301 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708 +AD = 000102 +CT = A2EEF13FA0EA16BA674F7E1667CAC85C31D41BB1253640AA4F + +Count = 302 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708 +AD = 00010203 +CT = 3ECF2C0B164EEE0B9D94E827A3BA0D0ADFFC3513E448F01607 + +Count = 303 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708 +AD = 0001020304 +CT = 7EA0A67026AE7386204BD27E1598E19E5BF83EB0719463928F + +Count = 304 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708 +AD = 000102030405 +CT = 1A9471657230C2272CD7342800F68BCB53360A6A43993BEEF1 + +Count = 305 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708 +AD = 00010203040506 +CT = 1F6D4FBAA595F14B997986D01E3C077100D8E99C83F048C5C2 + +Count = 306 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708 +AD = 0001020304050607 +CT = 86A003A0C56CDDD7A9437D59BDE2BA92AC392DB0B5451AC4EA + +Count = 307 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708 +AD = 000102030405060708 +CT = 5840C9CD51283BD1D915C2DC46E37B58B9F59BA8D218CAC54F + +Count = 308 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708 +AD = 00010203040506070809 +CT = 6B74495409113A904D0DC41111E7F062366E2C22462B1CD7D4 + +Count = 309 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708 +AD = 000102030405060708090A +CT = 5BA1831D487F8E249C7B5762C029C0D5B08774565B555E51F3 + +Count = 310 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708 +AD = 000102030405060708090A0B +CT = FEB6AB5F168A5792A8A5D2CB7C789E148562BD8C8C902E1911 + +Count = 311 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708 +AD = 000102030405060708090A0B0C +CT = 028697CF285B46BFDA86B4C502746B82E53320C13AAA2F0D08 + +Count = 312 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708 +AD = 000102030405060708090A0B0C0D +CT = 681E88ADDF41781366EFFBD46DABCA396743589820FD6D302A + +Count = 313 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708 +AD = 000102030405060708090A0B0C0D0E +CT = E43AF8F55790660AB0A34C2E0D81F896144231523638FD3008 + +Count = 314 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708 +AD = 000102030405060708090A0B0C0D0E0F +CT = DF0CA1114F2E0051AC175D3E92EAD1FD4B35131C02AD67358F + +Count = 315 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 5411119D71ACCC5D9A79BAC9EDE22CD229EFD1CA6203DA986D + +Count = 316 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 36CE88BC57F948B6D85AECDA62A6513EB4D34A227CA5517531 + +Count = 317 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = C171586599C0292C87E53B7209F1FDC5B15675709F0DD1356A + +Count = 318 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 01E47467EC5F81AD2262BFDDBAD26BA3E9588D6F2E8B57AFFF + +Count = 319 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = FBAACC649496A650F8BFC549618494EC0EA8479CCE97A5DEAF + +Count = 320 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = EE7B6FEA6D4E6CE7C17B434AFA1017DBBCFEB1FCB2814AD63F + +Count = 321 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 95AFA27D4D8CEA68B269B586A42C5D8EA4EFCAC9212096BDE5 + +Count = 322 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = CF2FB7E73873BE2A92E2FCB9C185CE20CAA43411A8674042B3 + +Count = 323 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = A5AEC98AA860CE17F0CC8D1ACF15F971D083A792B520E43669 + +Count = 324 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = 4E7F9F0B45CB9DC4DF7446A8F237ACDCDB26F8332AAB71AFF8 + +Count = 325 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = BB85E2FF036A7EE15FEFC83FDA0B4D563C57D2892369D217CF + +Count = 326 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 545D8C7B15744B9AB08976C0DB8D4BA0C6C75D61280ADBA634 + +Count = 327 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = 2284612C4744BFB1E3B99733EF4A3FEC17EE62FEE4B3647AF5 + +Count = 328 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 05F8B0EDB034954E081C6544446179C70417FCA3DD64292E23 + +Count = 329 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = C019C29603C1E1ED3DE1E25E542B8BA952681B043CB6847E40 + +Count = 330 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 13B625E5F4DF92DADD91E2EB94359F3397DD50EF532735373A + +Count = 331 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506070809 +AD = +CT = BC73B1C2F3FE0C59A329C5B54B86A65132FEB8F159B1C2AB5208 + +Count = 332 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506070809 +AD = 00 +CT = B1A8DFB192FA2C1BD9789C8DD7CC31435559E416A3F9A7878798 + +Count = 333 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506070809 +AD = 0001 +CT = FDC957611833EC30511CE5BA1C9893F0960E34DEB1D8EAA9A306 + +Count = 334 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506070809 +AD = 000102 +CT = A2EEF13FA0EA16BA67E648CA515B1143F4517FF341961FF8FEA3 + +Count = 335 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506070809 +AD = 00010203 +CT = 3ECF2C0B164EEE0B9D65E207FF29631230A54420795A95B65F6B + +Count = 336 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506070809 +AD = 0001020304 +CT = 7EA0A67026AE738620E3AD8D50D59324B1403461C1BC02C7505A + +Count = 337 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506070809 +AD = 000102030405 +CT = 1A9471657230C2272C41137618390F81DA6FC41B8C6F4105FC6C + +Count = 338 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506070809 +AD = 00010203040506 +CT = 1F6D4FBAA595F14B9918CC4F96106A5520BFB6E4195CB0F298DC + +Count = 339 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506070809 +AD = 0001020304050607 +CT = 86A003A0C56CDDD7A985EA03C55961A5113FA45058E8A671EB52 + +Count = 340 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506070809 +AD = 000102030405060708 +CT = 5840C9CD51283BD1D909E480AE82867A6F43F36CF19A3FFE922E + +Count = 341 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506070809 +AD = 00010203040506070809 +CT = 6B74495409113A904D45C67B8A581BE9EC670A4B0DF522235D24 + +Count = 342 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506070809 +AD = 000102030405060708090A +CT = 5BA1831D487F8E249C91914227AB85E7C1D5D8EF6B582090C0D6 + +Count = 343 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506070809 +AD = 000102030405060708090A0B +CT = FEB6AB5F168A5792A88D89288D4433D2BE450774BE06F40DF3D6 + +Count = 344 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C +CT = 028697CF285B46BFDA13EE1BB9E6E50E172FF51BA79C6F065994 + +Count = 345 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C0D +CT = 681E88ADDF417813669390F893E30AA7EEA3A16E2CDABD403803 + +Count = 346 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C0D0E +CT = E43AF8F55790660AB0B71D8E07EC173DB6B5DE2EB8488CC0617F + +Count = 347 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C0D0E0F +CT = DF0CA1114F2E0051AC6EEF17089E8A3BD1CB8C6AC08E655E9D85 + +Count = 348 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 5411119D71ACCC5D9A103A4106275FE795F2B22A2DAC37689F34 + +Count = 349 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 36CE88BC57F948B6D81BBFCC5D88263BD4DB486D53F4B4F36ED6 + +Count = 350 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = C171586599C0292C87A39A988E74ACF02E9A66965619F2BBF864 + +Count = 351 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 01E47467EC5F81AD224E21A1FE5606ABE1792B289C0D8BA5AA3C + +Count = 352 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = FBAACC649496A650F85AD57B10F55326A2B4D22B76B437B4E4C6 + +Count = 353 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = EE7B6FEA6D4E6CE7C1753876D84FCC9E64F6D68872CDBB7022E5 + +Count = 354 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 95AFA27D4D8CEA68B2D4C8960419E2CFCCF1B89C2246166EA02B + +Count = 355 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = CF2FB7E73873BE2A926E07F2A30FD158EBF8FB173E54A97C8691 + +Count = 356 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = A5AEC98AA860CE17F008B5EFFEC8CA556883BD48AD48789335AD + +Count = 357 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = 4E7F9F0B45CB9DC4DFFA413F41F7EF40836626E49AB3C74CFE74 + +Count = 358 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = BB85E2FF036A7EE15F498B1CA1E2B403E5B60A83AAB2995BA4A3 + +Count = 359 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 545D8C7B15744B9AB0630EB911EE97C486C332394190D7F253B3 + +Count = 360 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = 2284612C4744BFB1E362096F0E7933B9A0E48F2F5CF2D7367C95 + +Count = 361 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 05F8B0EDB034954E08531963D8A69D4134D074629BC22D323BBF + +Count = 362 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = C019C29603C1E1ED3D94C423BB33CEA44114A40934C23044F318 + +Count = 363 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 13B625E5F4DF92DADDBCE73D0A53DAA1AA0051B6523B5F1EE20F + +Count = 364 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A +AD = +CT = BC73B1C2F3FE0C59A329415D418E6A98AE8B176895D2816DDAB163 + +Count = 365 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A +AD = 00 +CT = B1A8DFB192FA2C1BD978DE49263CEC42DEA90C0A140BB2AB769B46 + +Count = 366 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A +AD = 0001 +CT = FDC957611833EC30511C58D561F80A21E851F0DFF9FD83045721FC + +Count = 367 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A +AD = 000102 +CT = A2EEF13FA0EA16BA67E6E4B6B68B061F88F783366C9908AE84B12E + +Count = 368 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A +AD = 00010203 +CT = 3ECF2C0B164EEE0B9D655C4B1F1B6C138FE2B54AEB5465BC4BF16E + +Count = 369 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A +AD = 0001020304 +CT = 7EA0A67026AE738620E3693D86F40AEF6292B3BECB966F73EC9C60 + +Count = 370 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A +AD = 000102030405 +CT = 1A9471657230C2272C41927F22D069F9420C5C146BF6C8CB8A4C73 + +Count = 371 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A +AD = 00010203040506 +CT = 1F6D4FBAA595F14B9918C0944770D029C726E54208DF2F3CDF3985 + +Count = 372 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A +AD = 0001020304050607 +CT = 86A003A0C56CDDD7A9853A5B5C2512AB918659489EF53A2933137E + +Count = 373 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A +AD = 000102030405060708 +CT = 5840C9CD51283BD1D9096EE7C57A7D59E828D053A47171933B8DC3 + +Count = 374 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A +AD = 00010203040506070809 +CT = 6B74495409113A904D457353A2BA143AE5199592460C6482FEF7EA + +Count = 375 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A +AD = 000102030405060708090A +CT = 5BA1831D487F8E249C91935B0976CD637D8C0FEE0C7ED3B5FC06CF + +Count = 376 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A +AD = 000102030405060708090A0B +CT = FEB6AB5F168A5792A88D0A42F7D398DBAB377826CD120B93A08AC5 + +Count = 377 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C +CT = 028697CF285B46BFDA13BC58EFBC6D5BA3F5CBBD091C89222BFEC1 + +Count = 378 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C0D +CT = 681E88ADDF4178136693CD230A5BE105CF6D6853A37D6B8746E83B + +Count = 379 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C0D0E +CT = E43AF8F55790660AB0B7F30A81CDEC3EDF0EC5BD690CA02BFE24DA + +Count = 380 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C0D0E0F +CT = DF0CA1114F2E0051AC6E3401081EC512E3F0168E9778A51D530134 + +Count = 381 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 5411119D71ACCC5D9A10F077C4F163CF06E2C7244240706164DADF + +Count = 382 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 36CE88BC57F948B6D81B209A900586EED52EAE21CA2A2EADAF8DD5 + +Count = 383 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = C171586599C0292C87A35602014123F533864E92137F8DD492387D + +Count = 384 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 01E47467EC5F81AD224EE1CB106DF92E6520D0125D572F4A856028 + +Count = 385 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = FBAACC649496A650F85A5061E82FB2563274BA5FCD9383961BEDD7 + +Count = 386 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = EE7B6FEA6D4E6CE7C175DCABDB8CF623F2D9269B2400A0EDACCECB + +Count = 387 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 95AFA27D4D8CEA68B2D46D05B78D2B6A2161D95981F8D5EA019EC7 + +Count = 388 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = CF2FB7E73873BE2A926E3BFAAF02263379C35069FEBFCED6E57BF0 + +Count = 389 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = A5AEC98AA860CE17F00838562715A1ECDB1B93073B63E99199188B + +Count = 390 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = 4E7F9F0B45CB9DC4DFFA2CF725B21DF3685CFD686996957D837DB2 + +Count = 391 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = BB85E2FF036A7EE15F4954CD12DCA17FD376A67A4969DC72F144DA + +Count = 392 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 545D8C7B15744B9AB0638A0777FC495D38A3987A0D0BB80E4C0F4D + +Count = 393 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = 2284612C4744BFB1E362854EB71886274B88A4B00A225DA84EC6A7 + +Count = 394 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 05F8B0EDB034954E0853898D21191BB224D466497D7ECC53E1DC57 + +Count = 395 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = C019C29603C1E1ED3D94BA37972B57849868071038826A64B84CD6 + +Count = 396 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 13B625E5F4DF92DADDBC6BFE1BA1CDF0A6C602AD0A96E4C6DD85F8 + +Count = 397 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B +AD = +CT = BC73B1C2F3FE0C59A3294171F08A9DB4AD829896D18836C273B9AC5F + +Count = 398 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B +AD = 00 +CT = B1A8DFB192FA2C1BD978DE3A00AE5BA0572CFCEF918C5D187D163346 + +Count = 399 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B +AD = 0001 +CT = FDC957611833EC30511C583B46F7B96D284E3DA0CF1621E72EB5B0D1 + +Count = 400 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B +AD = 000102 +CT = A2EEF13FA0EA16BA67E6E411B53C3B5B58A67DED4FD031ACBE8AC0D3 + +Count = 401 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B +AD = 00010203 +CT = 3ECF2C0B164EEE0B9D655C5270795C1379EEE25E0F18D46057683061 + +Count = 402 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B +AD = 0001020304 +CT = 7EA0A67026AE738620E369B965FEB54F99BF1E1D5C23D49BA51BA0C5 + +Count = 403 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B +AD = 000102030405 +CT = 1A9471657230C2272C4192D923546D0BA81FF0157BE08C5D230487E2 + +Count = 404 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B +AD = 00010203040506 +CT = 1F6D4FBAA595F14B9918C01A6E93334C74EE85A8E4DB8AD50195BE8B + +Count = 405 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B +AD = 0001020304050607 +CT = 86A003A0C56CDDD7A9853AA77DD268037F77E87B11B0D873C2D04EDF + +Count = 406 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B +AD = 000102030405060708 +CT = 5840C9CD51283BD1D9096E4CFB2B3EA1890535CA9F80B002310EB15B + +Count = 407 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B +AD = 00010203040506070809 +CT = 6B74495409113A904D4573ACC6598CEB5A1F2986D13E21BCAFDB6F97 + +Count = 408 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B +AD = 000102030405060708090A +CT = 5BA1831D487F8E249C9193399FC5A10713C63CDB6BE6EC854E0D62B4 + +Count = 409 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B +CT = FEB6AB5F168A5792A88D0A6B471C389C38EC4688CF80DEFF98A2E818 + +Count = 410 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C +CT = 028697CF285B46BFDA13BCECD295250F2E35344147EFFC4F9B187929 + +Count = 411 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C0D +CT = 681E88ADDF4178136693CD3D2DBB5651084C6C596173B06E1C87D8F8 + +Count = 412 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C0D0E +CT = E43AF8F55790660AB0B7F35185515B4550F73497DC0D186B017B3157 + +Count = 413 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C0D0E0F +CT = DF0CA1114F2E0051AC6E347F50F24A549906C783B8DA27854ED447DC + +Count = 414 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 5411119D71ACCC5D9A10F0DB045ED5E70CBC8373873A0BA745000087 + +Count = 415 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 36CE88BC57F948B6D81B20AC45A59A29F113043CEBC428A5DD78A1E9 + +Count = 416 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = C171586599C0292C87A35673C95F248D26C711133B37210135925986 + +Count = 417 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 01E47467EC5F81AD224EE173380AFF6C33BAB43DD774D5B1701B6CE1 + +Count = 418 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = FBAACC649496A650F85A500F17F6AA4D5165D8080E514FECAF848973 + +Count = 419 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = EE7B6FEA6D4E6CE7C175DC6478BB3BFB6FDA2D04A27FF0E019C018BE + +Count = 420 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 95AFA27D4D8CEA68B2D46DF5920FDC3E878920653A80185B8F9423FC + +Count = 421 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = CF2FB7E73873BE2A926E3B4AFD98DC57ED638962D16022273C2B8747 + +Count = 422 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = A5AEC98AA860CE17F00838C6630A92FDCD37286CC56DD431FA05C2E1 + +Count = 423 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = 4E7F9F0B45CB9DC4DFFA2C45994584F24F07AB4B1B9E6C795A15B39B + +Count = 424 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = BB85E2FF036A7EE15F49548C4A13C8A7A2418BAC066919F381BDA9F5 + +Count = 425 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 545D8C7B15744B9AB0638AD78E6835E898800E4981A888D7DCDE4B15 + +Count = 426 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = 2284612C4744BFB1E36285ED574FB3A90C2D9D3B1F5A4F89D7585327 + +Count = 427 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 05F8B0EDB034954E085389B69268A708ACC13014621EF087F6A4EB87 + +Count = 428 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = C019C29603C1E1ED3D94BA68E9033769EC2D286096E1CB038ADBF571 + +Count = 429 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 13B625E5F4DF92DADDBC6B70E01E1DAF857E8890AB0E772C007D72CC + +Count = 430 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C +AD = +CT = BC73B1C2F3FE0C59A32941714414FEBEB9629C47DE35052C89DA2B7081 + +Count = 431 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C +AD = 00 +CT = B1A8DFB192FA2C1BD978DE3A0A1C36DEA0CB18ABCFA42EC96AA30B5A95 + +Count = 432 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C +AD = 0001 +CT = FDC957611833EC30511C583BF39599BC7FD198B7AD9C565340020990B2 + +Count = 433 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C +AD = 000102 +CT = A2EEF13FA0EA16BA67E6E411872F132BE4A9519C38CB858A80668FD5B6 + +Count = 434 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C +AD = 00010203 +CT = 3ECF2C0B164EEE0B9D655C5207E5E55AF1065F06750170D134450E1A98 + +Count = 435 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C +AD = 0001020304 +CT = 7EA0A67026AE738620E369B96D0BF0E67A049C5526CF40F1FBED80885B + +Count = 436 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C +AD = 000102030405 +CT = 1A9471657230C2272C4192D9D1CF4D27E7D500B42DBFA1078809413D83 + +Count = 437 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C +AD = 00010203040506 +CT = 1F6D4FBAA595F14B9918C01A5A77467373DF855826D187C90C2EA3EF5D + +Count = 438 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C +AD = 0001020304050607 +CT = 86A003A0C56CDDD7A9853AA70F96A897C61762F22E2D3DA8938CA405AA + +Count = 439 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C +AD = 000102030405060708 +CT = 5840C9CD51283BD1D9096E4CC1EDE8D4C37429990F3783510448BD350C + +Count = 440 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C +AD = 00010203040506070809 +CT = 6B74495409113A904D4573AC8AD3C67295D62FF1128E536B2B4C50133F + +Count = 441 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A +CT = 5BA1831D487F8E249C9193393CB53C4A3F75301276CFBEF358B277AF02 + +Count = 442 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B +CT = FEB6AB5F168A5792A88D0A6BF20B2741EBE09A49C65EBA79976852C5E6 + +Count = 443 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C +CT = 028697CF285B46BFDA13BCECAD117510328384160776EF8C3F01BA8A63 + +Count = 444 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C0D +CT = 681E88ADDF4178136693CD3DBB3E04A48D3D6392DEA123B1465C71C551 + +Count = 445 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C0D0E +CT = E43AF8F55790660AB0B7F3519A5A38FECA31AD255A81B06394E8BDC569 + +Count = 446 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C0D0E0F +CT = DF0CA1114F2E0051AC6E347F4536AEB07E6A796423E8F0EFA897A4764B + +Count = 447 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 5411119D71ACCC5D9A10F0DBE40EDE1340E83E88A6C204B32F80FA5BB3 + +Count = 448 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 36CE88BC57F948B6D81B20AC747E24C6246FCA3BC09C8391E38CD6312C + +Count = 449 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = C171586599C0292C87A35673E87C272E8769D61CDCC24B4598D57867F6 + +Count = 450 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 01E47467EC5F81AD224EE173D6853646464D964E3541A48216686F1E73 + +Count = 451 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = FBAACC649496A650F85A500FA6E905577326820404EC7072BAA4DDF146 + +Count = 452 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = EE7B6FEA6D4E6CE7C175DC649B5B84CA9F9A82F4C828DFA84F6C852BDF + +Count = 453 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 95AFA27D4D8CEA68B2D46DF5AE2010FDBFABBE8038A7C57FCA78A733E8 + +Count = 454 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = CF2FB7E73873BE2A926E3B4A370B00856729C3D979F6389F54274F659F + +Count = 455 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = A5AEC98AA860CE17F00838C6C9B2372CA04E333876B2C7978F5E8BB109 + +Count = 456 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = 4E7F9F0B45CB9DC4DFFA2C4514CC5D10DD07F8CB9057B857E53FE7D946 + +Count = 457 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = BB85E2FF036A7EE15F49548C5FF9C4CCE725E346EAF06A1B780DD45859 + +Count = 458 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 545D8C7B15744B9AB0638AD7C0F0BC7BF3C876DFB51C06A0BD4AF49346 + +Count = 459 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = 2284612C4744BFB1E36285EDB577B54C10383894E4FDDD180508C6F5DC + +Count = 460 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 05F8B0EDB034954E085389B6B0C9B15197E52ABADB2E696F59CBFA281D + +Count = 461 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = C019C29603C1E1ED3D94BA68BDE8D2D29C67DACFD21B880A814F6DECAF + +Count = 462 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 13B625E5F4DF92DADDBC6B70656453DB96BB924BA31D0EF4853680A714 + +Count = 463 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D +AD = +CT = BC73B1C2F3FE0C59A32941714473EAF39A7A2E48EF198C26C4089BE027D3 + +Count = 464 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D +AD = 00 +CT = B1A8DFB192FA2C1BD978DE3A0A1C90D9F213A50805A3E1F1AE9140210B7A + +Count = 465 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D +AD = 0001 +CT = FDC957611833EC30511C583BF3CB073BD5D4D4A353949BECC753314531AB + +Count = 466 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D +AD = 000102 +CT = A2EEF13FA0EA16BA67E6E411879694C9B4FD153BF61B9F7CA030A0EFCEA4 + +Count = 467 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D +AD = 00010203 +CT = 3ECF2C0B164EEE0B9D655C5207B776929CC61FF5A4EC1E417937E73685E9 + +Count = 468 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D +AD = 0001020304 +CT = 7EA0A67026AE738620E369B96D4861F442122CD78748C4D08D52010F7BA1 + +Count = 469 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D +AD = 000102030405 +CT = 1A9471657230C2272C4192D9D193CCBE205C4BC1056BD251C7A50F229739 + +Count = 470 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D +AD = 00010203040506 +CT = 1F6D4FBAA595F14B9918C01A5AE8E9E0975C6A7EA94D97A8281FC503CDB0 + +Count = 471 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D +AD = 0001020304050607 +CT = 86A003A0C56CDDD7A9853AA70F7D07BF394D7B1F3498A6EFD1C3DA8D8DDD + +Count = 472 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708 +CT = 5840C9CD51283BD1D9096E4CC1032AAEFBB7D062FC3B779A3A30A65B9986 + +Count = 473 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D +AD = 00010203040506070809 +CT = 6B74495409113A904D4573AC8AB6C5FA7BA00E5A07ED678AB58EAB878E28 + +Count = 474 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A +CT = 5BA1831D487F8E249C9193393C15FB224FEE175145C5307517C19E6C5D56 + +Count = 475 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B +CT = FEB6AB5F168A5792A88D0A6BF2B2ABFD83FD8F4BF4F469D78CBE7979BFF9 + +Count = 476 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C +CT = 028697CF285B46BFDA13BCECAD22B0B858B41AC73784FF5CCB9D9CCB4F6D + +Count = 477 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C0D +CT = 681E88ADDF4178136693CD3DBBC01E0DB8844B75F722CF56595B6F5D9CC3 + +Count = 478 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C0D0E +CT = E43AF8F55790660AB0B7F3519AFFF1969980E03C575237D49B924F28F96D + +Count = 479 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C0D0E0F +CT = DF0CA1114F2E0051AC6E347F45D1AE014786DEBEF11E53410A8649D23E95 + +Count = 480 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 5411119D71ACCC5D9A10F0DBE4D8BFD239638095015E671696A2F2068BA1 + +Count = 481 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 36CE88BC57F948B6D81B20AC749DF19D7875F3103DCA42CA625CB002976D + +Count = 482 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = C171586599C0292C87A35673E8DA449FF0166DF3494D14B19E6B1C1AB31E + +Count = 483 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 01E47467EC5F81AD224EE173D64AB72E577820BF3EE5086F23FEE0CFE628 + +Count = 484 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = FBAACC649496A650F85A500FA693710FF3F37C59320537B195735AB61C4A + +Count = 485 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = EE7B6FEA6D4E6CE7C175DC649B90EBCCB57D3E611A1320F2C9A61E6BD1DE + +Count = 486 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 95AFA27D4D8CEA68B2D46DF5AEDBC61B002FF1DD74D44673053CC08770CC + +Count = 487 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = CF2FB7E73873BE2A926E3B4A370DA83DCAF9576F0532AC1A464044B2B085 + +Count = 488 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = A5AEC98AA860CE17F00838C6C94B220B59F0BECCAA383A7BFC5664988B03 + +Count = 489 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = 4E7F9F0B45CB9DC4DFFA2C451437AC9A5C33B688DBD00D1296BFE7EA5954 + +Count = 490 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = BB85E2FF036A7EE15F49548C5FDFD9538C7D12324E03688874EF326F058D + +Count = 491 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 545D8C7B15744B9AB0638AD7C0CF63C40B9DB7A7B09B9F5346299D696936 + +Count = 492 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = 2284612C4744BFB1E36285EDB535AE344BF30F7DB937D53F27292C3AC9A8 + +Count = 493 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 05F8B0EDB034954E085389B6B011B629C2C8D29BA655AEF6C1D5651DE6DE + +Count = 494 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = C019C29603C1E1ED3D94BA68BD5C8ABFCDD08659E350F48413749455160E + +Count = 495 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 13B625E5F4DF92DADDBC6B7065B3DBA1A30947A7363459E1D44E6408DB30 + +Count = 496 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E +AD = +CT = BC73B1C2F3FE0C59A329417144737DBF9EADF52B2382A873F68F61EEB4B1E6 + +Count = 497 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E +AD = 00 +CT = B1A8DFB192FA2C1BD978DE3A0A1C827B31E47992DA2F2F9E586487C1A373C6 + +Count = 498 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E +AD = 0001 +CT = FDC957611833EC30511C583BF3CB663AF367ECB9C9C1965291C1B98A7010E7 + +Count = 499 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E +AD = 000102 +CT = A2EEF13FA0EA16BA67E6E4118796073DC545F840757D2CCAF62F547F3FDF85 + +Count = 500 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E +AD = 00010203 +CT = 3ECF2C0B164EEE0B9D655C5207B7F4BDD7B2E5EC90CAA58D304D4A6CA36E5A + +Count = 501 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E +AD = 0001020304 +CT = 7EA0A67026AE738620E369B96D4858C99CFFD132E5FDCC55C456E462BBE9B2 + +Count = 502 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405 +CT = 1A9471657230C2272C4192D9D193FE7B08872C49F8041960033969378E0E04 + +Count = 503 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E +AD = 00010203040506 +CT = 1F6D4FBAA595F14B9918C01A5AE870DC924800E37672B419C101400C950163 + +Count = 504 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E +AD = 0001020304050607 +CT = 86A003A0C56CDDD7A9853AA70F7DB89ADD3A8957E257244DBA5638593D84B1 + +Count = 505 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708 +CT = 5840C9CD51283BD1D9096E4CC1039AA86FE9F2A30258F5CFCB6707A39BC04B + +Count = 506 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E +AD = 00010203040506070809 +CT = 6B74495409113A904D4573AC8AB6617505745A7A72E94D8F1D178827B4B2D7 + +Count = 507 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A +CT = 5BA1831D487F8E249C9193393C1589F89DF5B2B4D5DE3477BE33AEA4646665 + +Count = 508 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B +CT = FEB6AB5F168A5792A88D0A6BF2B26FCE3E34BF5A0AAD3C5311BFA5FF819830 + +Count = 509 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C +CT = 028697CF285B46BFDA13BCECAD22D03512AC8357781589B691EE5F6E27C129 + +Count = 510 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C0D +CT = 681E88ADDF4178136693CD3DBBC0020AED7B3D70FF9439A9936983EF8395EE + +Count = 511 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C0D0E +CT = E43AF8F55790660AB0B7F3519AFF292CAFC3BD4195801D7AA68000696B7565 + +Count = 512 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C0D0E0F +CT = DF0CA1114F2E0051AC6E347F45D177B9EFFC418CB4CA7D851B183E31085E4C + +Count = 513 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 5411119D71ACCC5D9A10F0DBE4D8BD4C6CA4C0CFE2C72C7058221CC727358B + +Count = 514 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 36CE88BC57F948B6D81B20AC749D464634225206989D61647BC0864DF25E2F + +Count = 515 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = C171586599C0292C87A35673E8DAA11259B0F6817357302C3A8D6178760A6F + +Count = 516 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 01E47467EC5F81AD224EE173D64A14FB6CAFFD331DEBB2123E9271670FF2BC + +Count = 517 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = FBAACC649496A650F85A500FA69307E45758D7F0BE51ABE000379CC0893F1B + +Count = 518 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = EE7B6FEA6D4E6CE7C175DC649B9022A007EDB4D7559482DF00F4A9515C7045 + +Count = 519 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 95AFA27D4D8CEA68B2D46DF5AEDB88EDF2994F6FF8EC61665CE48A66C2FFEE + +Count = 520 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = CF2FB7E73873BE2A926E3B4A370D0C34EDD8376481278FA4081D265A899CC6 + +Count = 521 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = A5AEC98AA860CE17F00838C6C94B138A900ABF67976D03D83E1ED8EC8CE19C + +Count = 522 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = 4E7F9F0B45CB9DC4DFFA2C451437CD7137EDEAC00182D8D29D3A9E75130B8F + +Count = 523 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = BB85E2FF036A7EE15F49548C5FDF93C5518C35AF102AB1832B9D03205FE87B + +Count = 524 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 545D8C7B15744B9AB0638AD7C0CF38276161382202C8F988A3C9630CEDCF2A + +Count = 525 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = 2284612C4744BFB1E36285EDB53556694E0164A2608392E00DA3E62FE0BF58 + +Count = 526 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 05F8B0EDB034954E085389B6B0117E49E9F3AA1FA522A05F04B1A541A76218 + +Count = 527 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = C019C29603C1E1ED3D94BA68BD5CCBBBE3BF26397FEF42EE9F3D9BB5430A6D + +Count = 528 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 13B625E5F4DF92DADDBC6B7065B36ED1635C3E105E74AEA863C5F485D16E83 + +Count = 529 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F +AD = +CT = BC73B1C2F3FE0C59A329417144737D0FBC27F66BA4C739B4C13F7E85D40CF381 + +Count = 530 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F +AD = 00 +CT = B1A8DFB192FA2C1BD978DE3A0A1C82E274E644246D8CE10336162634B9B24D07 + +Count = 531 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F +AD = 0001 +CT = FDC957611833EC30511C583BF3CB66B6ED3E53276F464D7C5912F66B5F47573B + +Count = 532 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102 +CT = A2EEF13FA0EA16BA67E6E4118796071CE7964ED06F6CE4853E602BF702E9FFBF + +Count = 533 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F +AD = 00010203 +CT = 3ECF2C0B164EEE0B9D655C5207B7F4AAE3C87D827AFAEF4AD0CD65D3EA1518CD + +Count = 534 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F +AD = 0001020304 +CT = 7EA0A67026AE738620E369B96D4858ED6BB7C693B55C450985D5F82D198FFDC8 + +Count = 535 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405 +CT = 1A9471657230C2272C4192D9D193FE028A35AD1C7F60C2F2F6CF1CCF54FBC9C9 + +Count = 536 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F +AD = 00010203040506 +CT = 1F6D4FBAA595F14B9918C01A5AE870C68893F3F2A8DDA2C2919298EE031BF69D + +Count = 537 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F +AD = 0001020304050607 +CT = 86A003A0C56CDDD7A9853AA70F7DB885C3C8A3CCAE65B6F0FDDFA758199EE268 + +Count = 538 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708 +CT = 5840C9CD51283BD1D9096E4CC1039AF9B1F0F12D8A9A226C7B8A6D2788AA7BE9 + +Count = 539 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F +AD = 00010203040506070809 +CT = 6B74495409113A904D4573AC8AB661F6761EBA952939A69653BCF593B4165481 + +Count = 540 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A +CT = 5BA1831D487F8E249C9193393C1589A8DC9204B1CE9D7EA02976AC98DCB74B8B + +Count = 541 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B +CT = FEB6AB5F168A5792A88D0A6BF2B26F2996AA3E52FB7A87CCE290DFDB8BA69505 + +Count = 542 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C +CT = 028697CF285B46BFDA13BCECAD22D09E72F8BCDF4E7842CA0590EEBA76DEFEE6 + +Count = 543 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C0D +CT = 681E88ADDF4178136693CD3DBBC0020A0F7BF48A4C1AE97006FDEB1FA1B8DDFD + +Count = 544 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C0D0E +CT = E43AF8F55790660AB0B7F3519AFF29F08D5CFAC68A38EBA31D716573780F3538 + +Count = 545 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C0D0E0F +CT = DF0CA1114F2E0051AC6E347F45D177822623D7A63D33E083B1E5CE9C6028BD94 + +Count = 546 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 5411119D71ACCC5D9A10F0DBE4D8BD5C1BC354027E2AC04207756D70D0674F77 + +Count = 547 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 36CE88BC57F948B6D81B20AC749D46C31C254F2CB18224F7E8D30D24D19FD108 + +Count = 548 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = C171586599C0292C87A35673E8DAA1A138A5EE479877E909213559980546388A + +Count = 549 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 01E47467EC5F81AD224EE173D64A14FCC6D69751C0A4424F0C2942A72F427FA7 + +Count = 550 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = FBAACC649496A650F85A500FA69307A576613A7F409C3A12D765D155231B87B5 + +Count = 551 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = EE7B6FEA6D4E6CE7C175DC649B902201C1E11F06943E7A86571F1F75A6DE0B6B + +Count = 552 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 95AFA27D4D8CEA68B2D46DF5AEDB88A37DC2EE750D7F282123DB801E050031B0 + +Count = 553 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = CF2FB7E73873BE2A926E3B4A370D0C792245BBFC7885EA94E97054615A30FC3F + +Count = 554 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = A5AEC98AA860CE17F00838C6C94B1368777B1D66D154D14AAF3F54D0021F744F + +Count = 555 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = 4E7F9F0B45CB9DC4DFFA2C451437CDE1CC6C888E036F5FD6F28DF83915773FA7 + +Count = 556 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = BB85E2FF036A7EE15F49548C5FDF93D39B047288ECECA45AD8FF0D41CC4A977C + +Count = 557 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 545D8C7B15744B9AB0638AD7C0CF3895E966678F050BF8A622E0E36C1A429758 + +Count = 558 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = 2284612C4744BFB1E36285EDB5355666F30F37D5EA8E301EE833ADF7E79E823D + +Count = 559 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 05F8B0EDB034954E085389B6B0117E59A7DC7505608FE3223364EAB0A0BA7CA0 + +Count = 560 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = C019C29603C1E1ED3D94BA68BD5CCB8678D4C3D3F048EE9E9D3BA25AAD479947 + +Count = 561 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 13B625E5F4DF92DADDBC6B7065B36E47700FFC1B8F7AA3A52695AB9449A89509 + +Count = 562 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10 +AD = +CT = BC73B1C2F3FE0C59A329417144737D0FA3E94965B55CF7C68ACE5BB1155B7366BB + +Count = 563 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 00 +CT = B1A8DFB192FA2C1BD978DE3A0A1C82E2C1B00CF717A2B285A2BD0B5F6ABC07B02D + +Count = 564 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 0001 +CT = FDC957611833EC30511C583BF3CB66B61CC71339E3142D6E5657807C293FE78F1A + +Count = 565 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102 +CT = A2EEF13FA0EA16BA67E6E4118796071CCD5B433F09FD96A4B946ACE727A0562163 + +Count = 566 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 00010203 +CT = 3ECF2C0B164EEE0B9D655C5207B7F4AA855AD2D11781719D789069FDD9A5A85791 + +Count = 567 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 0001020304 +CT = 7EA0A67026AE738620E369B96D4858EDBF75BC04DF41B03B02101BDAE30E6BE9BD + +Count = 568 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405 +CT = 1A9471657230C2272C4192D9D193FE02DC781366A8415E7C2525018A686A4C90CE + +Count = 569 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 00010203040506 +CT = 1F6D4FBAA595F14B9918C01A5AE870C6D1567755746F83385964DAFB27E1C06DCE + +Count = 570 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 0001020304050607 +CT = 86A003A0C56CDDD7A9853AA70F7DB885591523E456A5CB4954B2E3640290AEA27A + +Count = 571 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708 +CT = 5840C9CD51283BD1D9096E4CC1039AF9816BBED28A10965A9E1C942313591086FC + +Count = 572 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 00010203040506070809 +CT = 6B74495409113A904D4573AC8AB661F6FDC4E336C15BD150F67DB989F58EBD50D6 + +Count = 573 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A +CT = 5BA1831D487F8E249C9193393C1589A8BC6309ED917DAEF1B08699560C1966D71D + +Count = 574 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B +CT = FEB6AB5F168A5792A88D0A6BF2B26F29CAA27FF1EFB38B5B2FA030ACFD6A5097D2 + +Count = 575 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C +CT = 028697CF285B46BFDA13BCECAD22D09E411A75B4C85FD7A9E8957F544AF80E3C19 + +Count = 576 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C0D +CT = 681E88ADDF4178136693CD3DBBC0020A93425CCD824330EDBAE26DB4C16F7700E9 + +Count = 577 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C0D0E +CT = E43AF8F55790660AB0B7F3519AFF29F07916C2F5F315326EFE519B69455539E3C2 + +Count = 578 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C0D0E0F +CT = DF0CA1114F2E0051AC6E347F45D17782241F204838259A40DE0013FCF1E9EE4FB9 + +Count = 579 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 5411119D71ACCC5D9A10F0DBE4D8BD5C1250A1D8BC074337DBBF23BA82D9C36C2F + +Count = 580 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 36CE88BC57F948B6D81B20AC749D46C3A839468957E5BBA51496AD832C3861B50D + +Count = 581 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = C171586599C0292C87A35673E8DAA1A1899A0E93B2CBAAFF6C95C1CA6061343B27 + +Count = 582 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 01E47467EC5F81AD224EE173D64A14FCBB530250EAAD81050665D6075237AAA4B9 + +Count = 583 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = FBAACC649496A650F85A500FA69307A5F4816599982CE5036B80CD65AD11B9AE4F + +Count = 584 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = EE7B6FEA6D4E6CE7C175DC649B90220168C161D14DACEDE617B9DF2EEF6C61DFB3 + +Count = 585 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 95AFA27D4D8CEA68B2D46DF5AEDB88A3B88AB44E188AE12C98979F6E1864EF8312 + +Count = 586 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = CF2FB7E73873BE2A926E3B4A370D0C79B5DA97C31E469242751E9D346602C2A415 + +Count = 587 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = A5AEC98AA860CE17F00838C6C94B13686086CAB0A28850C1446CEB5343EC7FF90E + +Count = 588 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = 4E7F9F0B45CB9DC4DFFA2C451437CDE1BB772FC9EB84B1C03D6CE7A026BFA7D0A4 + +Count = 589 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = BB85E2FF036A7EE15F49548C5FDF93D318D870D7A89A4080249C03C1BFE30D10B0 + +Count = 590 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 545D8C7B15744B9AB0638AD7C0CF38950F1BB343F270B6D5E807CCD9BDA774BA81 + +Count = 591 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = 2284612C4744BFB1E36285EDB5355666023BE810873BF13BA3F3B879DED0402589 + +Count = 592 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 05F8B0EDB034954E085389B6B0117E59BF0E22B520BDB8D5D85575AE92EB83AA72 + +Count = 593 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = C019C29603C1E1ED3D94BA68BD5CCB86FF73A5D03739FA6B3AC942FEBC13044E2C + +Count = 594 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 13B625E5F4DF92DADDBC6B7065B36E47684129B85172BFCC6E6B9ADB37A9B6DAC3 + +Count = 595 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = +CT = BC73B1C2F3FE0C59A329417144737D0FA3E28AF3BEE9B5092D14E69B272D9C4A994D + +Count = 596 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 00 +CT = B1A8DFB192FA2C1BD978DE3A0A1C82E2C170F488BC956899BB01BCB786D29157D94A + +Count = 597 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 0001 +CT = FDC957611833EC30511C583BF3CB66B61C4B36963F452687F5ED975072BBA784B4A7 + +Count = 598 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102 +CT = A2EEF13FA0EA16BA67E6E4118796071CCD01DE8925A6D36A64CDB1EE73FD760D28F5 + +Count = 599 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 00010203 +CT = 3ECF2C0B164EEE0B9D655C5207B7F4AA854EB94FB4DE375EDF94A5B470F06774E805 + +Count = 600 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 0001020304 +CT = 7EA0A67026AE738620E369B96D4858EDBF9F102B514465DC33380294F451C76B9A65 + +Count = 601 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405 +CT = 1A9471657230C2272C4192D9D193FE02DC9079912EECCAE995ADFD795DFD764DE46C + +Count = 602 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 00010203040506 +CT = 1F6D4FBAA595F14B9918C01A5AE870C6D1764ECDFD36A892FF2203F2D05FA45AC1C8 + +Count = 603 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 0001020304050607 +CT = 86A003A0C56CDDD7A9853AA70F7DB88559C06D04754D2FA566054AB4A07A81BE4C9E + +Count = 604 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708 +CT = 5840C9CD51283BD1D9096E4CC1039AF981EEBD4267F71E1FD3F5CD4E9DA58A0F5AFF + +Count = 605 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 00010203040506070809 +CT = 6B74495409113A904D4573AC8AB661F6FD4A0694173A4160C48BA7D7C2BFBD8E1912 + +Count = 606 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A +CT = 5BA1831D487F8E249C9193393C1589A8BCAB31904F12FD12E1F8DE0802316007830D + +Count = 607 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B +CT = FEB6AB5F168A5792A88D0A6BF2B26F29CAD9B8C680D44A4B30D1CA07189AFCF2BCF4 + +Count = 608 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C +CT = 028697CF285B46BFDA13BCECAD22D09E416CD8AB58EDEF4673FC07A56EFC751BB984 + +Count = 609 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C0D +CT = 681E88ADDF4178136693CD3DBBC0020A935B44E15918C817D4D03D8E531AD8AB80F3 + +Count = 610 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C0D0E +CT = E43AF8F55790660AB0B7F3519AFF29F07990C77D4B146E305CD8094D2BD81D38FDCB + +Count = 611 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C0D0E0F +CT = DF0CA1114F2E0051AC6E347F45D177822409BF0501349A5181635A210ADD7365E640 + +Count = 612 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 5411119D71ACCC5D9A10F0DBE4D8BD5C123BB4D54B2B3FE883F718F9D58E1AD141DE + +Count = 613 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 36CE88BC57F948B6D81B20AC749D46C3A8396CE3C08237FC3024586EA3DBD036B50A + +Count = 614 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = C171586599C0292C87A35673E8DAA1A189C7593777AB5E073F8892B8B824979A4562 + +Count = 615 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 01E47467EC5F81AD224EE173D64A14FCBB4D3D207D6AAF72D841C87F09C0EA2151BE + +Count = 616 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = FBAACC649496A650F85A500FA69307A5F49E28BB0A58C53420592FD6AA1B8FCC1D83 + +Count = 617 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = EE7B6FEA6D4E6CE7C175DC649B90220168E9CD9EDDFD6C7DFA7B188896F8F76DE5E8 + +Count = 618 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 95AFA27D4D8CEA68B2D46DF5AEDB88A3B834FD6FA14AB59A29C08E6BD9CF6B1F830C + +Count = 619 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = CF2FB7E73873BE2A926E3B4A370D0C79B56653F2F71FB527770E69768FFDC302D2F8 + +Count = 620 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = A5AEC98AA860CE17F00838C6C94B13686065D5F49C1F34BD00AE10C6419C92375AE8 + +Count = 621 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = 4E7F9F0B45CB9DC4DFFA2C451437CDE1BBFA7C429CC1289C9B7190817840217703F9 + +Count = 622 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = BB85E2FF036A7EE15F49548C5FDF93D31888916599B7C2CC665566E816BA173928F4 + +Count = 623 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 545D8C7B15744B9AB0638AD7C0CF38950F4385F21F8E8CAB99E15B8CEF21FE36B2AA + +Count = 624 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = 2284612C4744BFB1E36285EDB535566602D52EC321FB1662EB126F8A4D7827A14320 + +Count = 625 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 05F8B0EDB034954E085389B6B0117E59BF7A68E0DA37313FC16B550D3F1C394A1252 + +Count = 626 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = C019C29603C1E1ED3D94BA68BD5CCB86FF53A38B655629E4C40F0721A20E033A360F + +Count = 627 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 13B625E5F4DF92DADDBC6B7065B36E4768EEEEA3FB5CADD45164F16B905DB8E1DFC7 + +Count = 628 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = +CT = BC73B1C2F3FE0C59A329417144737D0FA3E2C412186B9693087B6F482DCF38E96E31DF + +Count = 629 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 00 +CT = B1A8DFB192FA2C1BD978DE3A0A1C82E2C1709F1F8D3966F2FF9B9DE1741674EC38A1E4 + +Count = 630 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 0001 +CT = FDC957611833EC30511C583BF3CB66B61C4B0D0299A367A2285B7B535B46B09B3043A2 + +Count = 631 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102 +CT = A2EEF13FA0EA16BA67E6E4118796071CCD01477922DC7696B8130B940240E5B1DC57A5 + +Count = 632 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 00010203 +CT = 3ECF2C0B164EEE0B9D655C5207B7F4AA854ECC733D0EF3BDD6BD203D99294F9504B914 + +Count = 633 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 0001020304 +CT = 7EA0A67026AE738620E369B96D4858EDBF9FEEA5AF90C1F8FB417CC85E797D8F2A8C79 + +Count = 634 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405 +CT = 1A9471657230C2272C4192D9D193FE02DC9096E4F6CB948BEC039BC6C0FD38410596C0 + +Count = 635 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 00010203040506 +CT = 1F6D4FBAA595F14B9918C01A5AE870C6D1761FE486D86D9682BFC4B2E642D2B89C93A0 + +Count = 636 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 0001020304050607 +CT = 86A003A0C56CDDD7A9853AA70F7DB88559C0E0C752C3A088FB389C9197F09A1399F235 + +Count = 637 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708 +CT = 5840C9CD51283BD1D9096E4CC1039AF981EE5F93317BDFDB4818A72DF2D42312A461B1 + +Count = 638 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 00010203040506070809 +CT = 6B74495409113A904D4573AC8AB661F6FD4A71930AAFCBB00D251F6D67D5F883CDE576 + +Count = 639 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A +CT = 5BA1831D487F8E249C9193393C1589A8BCAB84BAD8928E7339654BC881F7E9C75ABAA1 + +Count = 640 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B +CT = FEB6AB5F168A5792A88D0A6BF2B26F29CAD93B2EC2DD42EA7AFE70CECF57777CADD492 + +Count = 641 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C +CT = 028697CF285B46BFDA13BCECAD22D09E416C16E1C76546C9F0EAAF55105A68F855172B + +Count = 642 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C0D +CT = 681E88ADDF4178136693CD3DBBC0020A935B95956E582C3435B1194016E54EAE574ED0 + +Count = 643 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C0D0E +CT = E43AF8F55790660AB0B7F3519AFF29F079902E76117AE4741B4C740A967473ADA49CDE + +Count = 644 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C0D0E0F +CT = DF0CA1114F2E0051AC6E347F45D1778224098F536618659641BA9328147386A21AF85A + +Count = 645 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 5411119D71ACCC5D9A10F0DBE4D8BD5C123B10D87D073C47D6F698F57B23811D899CC7 + +Count = 646 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 36CE88BC57F948B6D81B20AC749D46C3A83989796389BAD48E7EF042E5B5430D00FC68 + +Count = 647 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = C171586599C0292C87A35673E8DAA1A189C728C7BB4F7C97AA81E121B83D06E8ADD53E + +Count = 648 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 01E47467EC5F81AD224EE173D64A14FCBB4DC4A7C3E3E5CAB0BA73CCCE114803FFC791 + +Count = 649 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = FBAACC649496A650F85A500FA69307A5F49E877D1E0A823DDFC95E99AAC2A0C6894996 + +Count = 650 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = EE7B6FEA6D4E6CE7C175DC649B90220168E94A760941236BD111A9A5EAEF6A25A3712E + +Count = 651 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 95AFA27D4D8CEA68B2D46DF5AEDB88A3B8348D76921570C6E702D854693874FCE219C6 + +Count = 652 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = CF2FB7E73873BE2A926E3B4A370D0C79B566BD39CD7C11F55AE4DF4AF4AED4BFB3BB10 + +Count = 653 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = A5AEC98AA860CE17F00838C6C94B1368606539C87F2C3B3A091313A25ADCAF8563FD59 + +Count = 654 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = 4E7F9F0B45CB9DC4DFFA2C451437CDE1BBFA0DB97F39B1763BCC0482D83A8356C25C94 + +Count = 655 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = BB85E2FF036A7EE15F49548C5FDF93D31888FC356AFD3366BD6386B4D5EB4701139E05 + +Count = 656 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 545D8C7B15744B9AB0638AD7C0CF38950F43A177B8532426C624C7B590C9791FA3889A + +Count = 657 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = 2284612C4744BFB1E36285EDB535566602D57E50C92463A0D949BAE2936ABC05AD2B4F + +Count = 658 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 05F8B0EDB034954E085389B6B0117E59BF7A14418BD90E81F8E6163BA088E3119951BC + +Count = 659 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = C019C29603C1E1ED3D94BA68BD5CCB86FF53CCC69FE884E6E3F6ADF881828221CB1566 + +Count = 660 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 13B625E5F4DF92DADDBC6B7065B36E4768EE87D4CBF131CBC58C7B5D975349E2F45CDA + +Count = 661 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = +CT = BC73B1C2F3FE0C59A329417144737D0FA3E2C4D0113B39880922B0319CAD951F72E49A74 + +Count = 662 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 00 +CT = B1A8DFB192FA2C1BD978DE3A0A1C82E2C1709F2797D89E5625504A6C856013EC3BD6205A + +Count = 663 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 0001 +CT = FDC957611833EC30511C583BF3CB66B61C4B0D721481415AE5630243B9BA0D5677C372AB + +Count = 664 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102 +CT = A2EEF13FA0EA16BA67E6E4118796071CCD01474E1E50A2E4072A59607B7B2A1F73C02F67 + +Count = 665 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 00010203 +CT = 3ECF2C0B164EEE0B9D655C5207B7F4AA854ECC9D2ACB72411A8A0FCED55CB11A9A5A16C5 + +Count = 666 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 0001020304 +CT = 7EA0A67026AE738620E369B96D4858EDBF9FEECCA3441698ABE9660BB97E2F7D850A168C + +Count = 667 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405 +CT = 1A9471657230C2272C4192D9D193FE02DC90965A9AF0B2840B259CB584AB0CE8BDE7AB85 + +Count = 668 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 00010203040506 +CT = 1F6D4FBAA595F14B9918C01A5AE870C6D1761F68DCD8671A169B81865499677008587F95 + +Count = 669 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 0001020304050607 +CT = 86A003A0C56CDDD7A9853AA70F7DB88559C0E0BCBA03CD249FF1D87F84F3702CADF8C9E2 + +Count = 670 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708 +CT = 5840C9CD51283BD1D9096E4CC1039AF981EE5F4127A60C302CF722FCAE3084F11AE9D631 + +Count = 671 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 00010203040506070809 +CT = 6B74495409113A904D4573AC8AB661F6FD4A711D7BE33BC4D14ED58C099963E918C9E13A + +Count = 672 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A +CT = 5BA1831D487F8E249C9193393C1589A8BCAB84228D685006D9EC12CC2A22FBAA342B2FFC + +Count = 673 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B +CT = FEB6AB5F168A5792A88D0A6BF2B26F29CAD93B50DA5C3C6971FF1AA3B2016458C8A5BC47 + +Count = 674 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C +CT = 028697CF285B46BFDA13BCECAD22D09E416C16D07E8268F0F0953AF9EF515EFEED09C248 + +Count = 675 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C0D +CT = 681E88ADDF4178136693CD3DBBC0020A935B9535710EFAA5D7C67B93F22E5F119C0E77E2 + +Count = 676 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C0D0E +CT = E43AF8F55790660AB0B7F3519AFF29F079902EC49909104455BAB07A49FFDB0C89B15D8D + +Count = 677 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C0D0E0F +CT = DF0CA1114F2E0051AC6E347F45D1778224098FA9114A5B2B65057DFCD9F329E6EC6BC715 + +Count = 678 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 5411119D71ACCC5D9A10F0DBE4D8BD5C123B10FBCE3585B384305199C72AC362C37F853B + +Count = 679 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 36CE88BC57F948B6D81B20AC749D46C3A83989708479BC859BEFF75C7ADB48223100BFD5 + +Count = 680 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = C171586599C0292C87A35673E8DAA1A189C72898D5FF8FBA03CC4133F027A57BE0901D71 + +Count = 681 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 01E47467EC5F81AD224EE173D64A14FCBB4DC423138B870DFDC0833895CAB003AB49ECD7 + +Count = 682 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = FBAACC649496A650F85A500FA69307A5F49E8793A2B448CEE7D4215597283C8D7354EE33 + +Count = 683 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = EE7B6FEA6D4E6CE7C175DC649B90220168E94A6845D7B37C9296A23B1048DE36AF2BCEDF + +Count = 684 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 95AFA27D4D8CEA68B2D46DF5AEDB88A3B8348D176945CF1E1A767292603BA7CE3EA2273D + +Count = 685 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = CF2FB7E73873BE2A926E3B4A370D0C79B566BD95CEE0307CECACD520FDD221209E14DEC6 + +Count = 686 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = A5AEC98AA860CE17F00838C6C94B136860653905F38D47FECBDFE66E89C57C08F1F9ABE0 + +Count = 687 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = 4E7F9F0B45CB9DC4DFFA2C451437CDE1BBFA0D80D217E35B5D0EF71D74BFAC53744E6517 + +Count = 688 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = BB85E2FF036A7EE15F49548C5FDF93D31888FC10A03A1505AEFBB48BD91B116033530DB9 + +Count = 689 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 545D8C7B15744B9AB0638AD7C0CF38950F43A12CBC003E6BEA17D00EACF718B76D9F11A8 + +Count = 690 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = 2284612C4744BFB1E36285EDB535566602D57E6AFFF473CDC1991B8D0187717024F71024 + +Count = 691 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 05F8B0EDB034954E085389B6B0117E59BF7A14459F502DCE435CAD6F1B4306FBC14A5234 + +Count = 692 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = C019C29603C1E1ED3D94BA68BD5CCB86FF53CC90C05FA190827EEF79781B14E625986E19 + +Count = 693 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 13B625E5F4DF92DADDBC6B7065B36E4768EE87751884D842D13CAEDB16405270F0EE4D12 + +Count = 694 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = +CT = BC73B1C2F3FE0C59A329417144737D0FA3E2C4D09CF98ED89583E781AFF030D39717B82D3C + +Count = 695 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 00 +CT = B1A8DFB192FA2C1BD978DE3A0A1C82E2C1709F271498880D2C84981089BDD646F73CA0E39A + +Count = 696 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 0001 +CT = FDC957611833EC30511C583BF3CB66B61C4B0D72D4B0940C85A65FE2CBB5DCDBFF867619A4 + +Count = 697 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102 +CT = A2EEF13FA0EA16BA67E6E4118796071CCD01474EF79050F8E380B0BD86994E3A73FECC635D + +Count = 698 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 00010203 +CT = 3ECF2C0B164EEE0B9D655C5207B7F4AA854ECC9D6D95B29FEB98723D14D4A4A39484136DE4 + +Count = 699 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 0001020304 +CT = 7EA0A67026AE738620E369B96D4858EDBF9FEECC57DA43F70FD4B7D070F0C45BF8F1F2C324 + +Count = 700 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405 +CT = 1A9471657230C2272C4192D9D193FE02DC90965A75214436047AC70F48621B690A2D424935 + +Count = 701 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 00010203040506 +CT = 1F6D4FBAA595F14B9918C01A5AE870C6D1761F68DD38B0821578267EF8F9BE1B58A5B9CE5F + +Count = 702 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 0001020304050607 +CT = 86A003A0C56CDDD7A9853AA70F7DB88559C0E0BC24BB253FC42FAE8CD92CE505771B7A4D26 + +Count = 703 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708 +CT = 5840C9CD51283BD1D9096E4CC1039AF981EE5F415C21CCC3465F87A4F3D59D431050F6FA9D + +Count = 704 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 00010203040506070809 +CT = 6B74495409113A904D4573AC8AB661F6FD4A711DAF8D5C07D456DD97BFB915619203B71CA7 + +Count = 705 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A +CT = 5BA1831D487F8E249C9193393C1589A8BCAB84224E08AFCF81AA6CD5448A9AB415847C912B + +Count = 706 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B +CT = FEB6AB5F168A5792A88D0A6BF2B26F29CAD93B504E1688285432703BED760F6DC230FD921C + +Count = 707 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C +CT = 028697CF285B46BFDA13BCECAD22D09E416C16D092FFA8AF72F786636FA19BBA41913E7480 + +Count = 708 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C0D +CT = 681E88ADDF4178136693CD3DBBC0020A935B95350FB98DDB68154775DC70EA9EB5B56D2062 + +Count = 709 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C0D0E +CT = E43AF8F55790660AB0B7F3519AFF29F079902EC431DEF31DCA4F06E42CDE85367EE10E8DC9 + +Count = 710 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C0D0E0F +CT = DF0CA1114F2E0051AC6E347F45D1778224098FA934114C1AEC88DB6C4713243D08A0739C88 + +Count = 711 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 5411119D71ACCC5D9A10F0DBE4D8BD5C123B10FBC461F9241D0492BB1EFE92DA2AF6A7E8B7 + +Count = 712 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 36CE88BC57F948B6D81B20AC749D46C3A83989704D6404BA3AE7F3BBA733F434078346D919 + +Count = 713 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = C171586599C0292C87A35673E8DAA1A189C728986A8E3B85735A6361DC2CE626829DC3EA29 + +Count = 714 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 01E47467EC5F81AD224EE173D64A14FCBB4DC423DDA41D2093A1846321A7EEE21E5343D327 + +Count = 715 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = FBAACC649496A650F85A500FA69307A5F49E879359936BAC93240C8BED40AE18508190DA2F + +Count = 716 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = EE7B6FEA6D4E6CE7C175DC649B90220168E94A687A147F3A3E6004273A78032425DFC5F777 + +Count = 717 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 95AFA27D4D8CEA68B2D46DF5AEDB88A3B8348D174E748743CAA786F8992D11A440224440EA + +Count = 718 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = CF2FB7E73873BE2A926E3B4A370D0C79B566BD95CD7B1E52B72194946EE8E9882015E3D4AB + +Count = 719 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = A5AEC98AA860CE17F00838C6C94B1368606539054FC057C99DB021E60DD14B2FC46074FFC0 + +Count = 720 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = 4E7F9F0B45CB9DC4DFFA2C451437CDE1BBFA0D802ABA46024FD7A1D7B1512AA2C18F36930D + +Count = 721 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = BB85E2FF036A7EE15F49548C5FDF93D31888FC103F6AE18681BAE77EB8439E6BCD4EE42E3C + +Count = 722 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 545D8C7B15744B9AB0638AD7C0CF38950F43A12CAD6C855F8901AE805DCBB62B6BD7464E37 + +Count = 723 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = 2284612C4744BFB1E36285EDB535566602D57E6A4E5E69913B98CF271FF33FB8EEB243E35F + +Count = 724 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 05F8B0EDB034954E085389B6B0117E59BF7A1445EF9ED641EDA3F5BA8A467C5616458A3572 + +Count = 725 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = C019C29603C1E1ED3D94BA68BD5CCB86FF53CC904E9430E509E91A7D9E75097AFF4EE605A6 + +Count = 726 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 13B625E5F4DF92DADDBC6B7065B36E4768EE8775191ED4EC4148E7075A60CD258104964A2A + +Count = 727 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = +CT = BC73B1C2F3FE0C59A329417144737D0FA3E2C4D09CFA40247B72318085A05612400863BBA117 + +Count = 728 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 00 +CT = B1A8DFB192FA2C1BD978DE3A0A1C82E2C1709F2714A24DF989644C18B38A6CA551C8CBFD7B7C + +Count = 729 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 0001 +CT = FDC957611833EC30511C583BF3CB66B61C4B0D72D47B4C01BDA1EF44B721CCEAA30813A4A161 + +Count = 730 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102 +CT = A2EEF13FA0EA16BA67E6E4118796071CCD01474EF7B92BF79BA163BA118C9D26AB46EB44954C + +Count = 731 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 00010203 +CT = 3ECF2C0B164EEE0B9D655C5207B7F4AA854ECC9D6D483A18AA87D56BBC3BF61E926084E71160 + +Count = 732 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 0001020304 +CT = 7EA0A67026AE738620E369B96D4858EDBF9FEECC57ECCF9AA1AEFEA056E7D0B0BD1E136FD4AA + +Count = 733 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405 +CT = 1A9471657230C2272C4192D9D193FE02DC90965A75DB9B8694E9591740F85EDF5ACF828E6158 + +Count = 734 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 00010203040506 +CT = 1F6D4FBAA595F14B9918C01A5AE870C6D1761F68DDDA998E5981F5E16DEE607220F9EBB01D55 + +Count = 735 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 0001020304050607 +CT = 86A003A0C56CDDD7A9853AA70F7DB88559C0E0BC24903C9481FCC5CCCDB9DF5AB4F1B3230D43 + +Count = 736 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708 +CT = 5840C9CD51283BD1D9096E4CC1039AF981EE5F415C6F5FE614441BC62D3775F63B7463A5073B + +Count = 737 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 00010203040506070809 +CT = 6B74495409113A904D4573AC8AB661F6FD4A711DAF4A6379F0EC4E11725F5E6D5F81411E6C4E + +Count = 738 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A +CT = 5BA1831D487F8E249C9193393C1589A8BCAB84224E6C0069B15F0D1F1E81B57EB089F5065B2E + +Count = 739 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B +CT = FEB6AB5F168A5792A88D0A6BF2B26F29CAD93B504E2F4981BEF3C3469B90E583F71847CA3314 + +Count = 740 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C +CT = 028697CF285B46BFDA13BCECAD22D09E416C16D092BB05AB4C5F87F29EEC456E8D2E98FB10C1 + +Count = 741 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C0D +CT = 681E88ADDF4178136693CD3DBBC0020A935B95350FB5C67B9EBFF91D4C28FEC12A97B2712E21 + +Count = 742 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C0D0E +CT = E43AF8F55790660AB0B7F3519AFF29F079902EC431CB68C319FC47E398CC792B11B78F27B51C + +Count = 743 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C0D0E0F +CT = DF0CA1114F2E0051AC6E347F45D1778224098FA9346D747110F8F05A733525A924420623F842 + +Count = 744 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 5411119D71ACCC5D9A10F0DBE4D8BD5C123B10FBC4B5A38D245C7FDB1C149E0D9AEDFA691CE3 + +Count = 745 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 36CE88BC57F948B6D81B20AC749D46C3A83989704D7DD662BC963DB8E50A6297E5DE0AD7595C + +Count = 746 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = C171586599C0292C87A35673E8DAA1A189C728986AEFE3057252738AB4BA1D59557444DFD63B + +Count = 747 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 01E47467EC5F81AD224EE173D64A14FCBB4DC423DDFD85B54D7C28A336D20F25EE905BEE8998 + +Count = 748 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = FBAACC649496A650F85A500FA69307A5F49E87935987F802252C47B98E2D8A118013305D99CD + +Count = 749 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = EE7B6FEA6D4E6CE7C175DC649B90220168E94A687A1B59BCEA05C890F6150E27B26D978A73D4 + +Count = 750 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 95AFA27D4D8CEA68B2D46DF5AEDB88A3B8348D174E069A23632E2AD5C0630A4B5848FFCDBA92 + +Count = 751 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = CF2FB7E73873BE2A926E3B4A370D0C79B566BD95CDA816AA701309164C0374A51128492C2522 + +Count = 752 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = A5AEC98AA860CE17F00838C6C94B1368606539054F789732BA7CE2BEA5A336039B3D7DAB9680 + +Count = 753 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = 4E7F9F0B45CB9DC4DFFA2C451437CDE1BBFA0D802A465F18282A3D04526A7E5C081BC65CDA36 + +Count = 754 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = BB85E2FF036A7EE15F49548C5FDF93D31888FC103FBA6E1779951D02A3A20680B95BA11517B2 + +Count = 755 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 545D8C7B15744B9AB0638AD7C0CF38950F43A12CAD52D60BEEB742CC7C3D4317117D1B073915 + +Count = 756 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = 2284612C4744BFB1E36285EDB535566602D57E6A4E5BA5B01D8CE4272AC5102F5E8C461B459B + +Count = 757 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 05F8B0EDB034954E085389B6B0117E59BF7A1445EF1F1305A5938A56884EF5F537750049FF0D + +Count = 758 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = C019C29603C1E1ED3D94BA68BD5CCB86FF53CC904E5EE0B79A0EEACBF185A7E5D5F4BB67CEA0 + +Count = 759 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 13B625E5F4DF92DADDBC6B7065B36E4768EE877519542FDDFAA2A7CC0ED3BC834266DAD9ED91 + +Count = 760 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = +CT = BC73B1C2F3FE0C59A329417144737D0FA3E2C4D09CFABE4C05B3DF4108088C3EC8CF76EBE1A0F2 + +Count = 761 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 00 +CT = B1A8DFB192FA2C1BD978DE3A0A1C82E2C1709F2714A235AD3D5FC843F6514AADCAD00F685385F0 + +Count = 762 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 0001 +CT = FDC957611833EC30511C583BF3CB66B61C4B0D72D47B25041F2974DE5D9BF755721FFD133F87AF + +Count = 763 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102 +CT = A2EEF13FA0EA16BA67E6E4118796071CCD01474EF7B90B81F88A7332E4585F3CB6D8EFC696D311 + +Count = 764 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 00010203 +CT = 3ECF2C0B164EEE0B9D655C5207B7F4AA854ECC9D6D48818C57BA78521D3A44D990525A67A12E80 + +Count = 765 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 0001020304 +CT = 7EA0A67026AE738620E369B96D4858EDBF9FEECC57EC756BC5058DE102BE19CCDD2BD6F9E4B527 + +Count = 766 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405 +CT = 1A9471657230C2272C4192D9D193FE02DC90965A75DB47B96DB9273B29015A789293E8928DB748 + +Count = 767 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 00010203040506 +CT = 1F6D4FBAA595F14B9918C01A5AE870C6D1761F68DDDAB237B1645F933F16B034CCE5E2AA4B9B94 + +Count = 768 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 0001020304050607 +CT = 86A003A0C56CDDD7A9853AA70F7DB88559C0E0BC2490B60FD4D972610CCA178C900D50208AD06E + +Count = 769 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708 +CT = 5840C9CD51283BD1D9096E4CC1039AF981EE5F415C6F0687CBC2CB8D33D3CF1ADD3A4DD45E89B0 + +Count = 770 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 00010203040506070809 +CT = 6B74495409113A904D4573AC8AB661F6FD4A711DAF4A54D2A61E1A425E1071ECADA8B8736301AC + +Count = 771 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A +CT = 5BA1831D487F8E249C9193393C1589A8BCAB84224E6C47176CB68A9086B8668D01DBD3BB62DDCE + +Count = 772 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B +CT = FEB6AB5F168A5792A88D0A6BF2B26F29CAD93B504E2F8DF18E059B656B6721391A3CF590B284A6 + +Count = 773 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C +CT = 028697CF285B46BFDA13BCECAD22D09E416C16D092BBE843C680F818C5BF44D5EE7DE148F88D03 + +Count = 774 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C0D +CT = 681E88ADDF4178136693CD3DBBC0020A935B95350FB5A29D90B059852313100E4984C805928443 + +Count = 775 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C0D0E +CT = E43AF8F55790660AB0B7F3519AFF29F079902EC431CB82470FC800E4F643E9288447414D98B59E + +Count = 776 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C0D0E0F +CT = DF0CA1114F2E0051AC6E347F45D1778224098FA9346DC0237D2C81BA1CC81EB04D2A0ECB9F2739 + +Count = 777 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 5411119D71ACCC5D9A10F0DBE4D8BD5C123B10FBC4B5B1CBEC93998FA9648B10399A33B3DCCBFA + +Count = 778 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 36CE88BC57F948B6D81B20AC749D46C3A83989704D7D2C3A3CBB47C929482A12D3B5FF33F5F4A2 + +Count = 779 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = C171586599C0292C87A35673E8DAA1A189C728986AEF37CFD59B99E33226FF6757A6BACE2CDA4C + +Count = 780 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 01E47467EC5F81AD224EE173D64A14FCBB4DC423DDFD70E37D779FDB4E666142840169544D6F1B + +Count = 781 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = FBAACC649496A650F85A500FA69307A5F49E87935987AF753E67CA9CF6CC83DABECA7E27635176 + +Count = 782 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = EE7B6FEA6D4E6CE7C175DC649B90220168E94A687A1B12B561255FA94DA153B2E1337D8297905E + +Count = 783 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 95AFA27D4D8CEA68B2D46DF5AEDB88A3B8348D174E06DBE57D8DE76680CD596520B08E32B7D89B + +Count = 784 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = CF2FB7E73873BE2A926E3B4A370D0C79B566BD95CDA8371D1A03C6EF552A9F187A0AA43635E583 + +Count = 785 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = A5AEC98AA860CE17F00838C6C94B1368606539054F78D9350F1EE978852C245DBD64E4D65CC1CB + +Count = 786 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = 4E7F9F0B45CB9DC4DFFA2C451437CDE1BBFA0D802A467F8DA31F651F31172EF87DE006EEF6E16E + +Count = 787 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = BB85E2FF036A7EE15F49548C5FDF93D31888FC103FBAE14347A37582459A03266DE0FC704B1EF1 + +Count = 788 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 545D8C7B15744B9AB0638AD7C0CF38950F43A12CAD52D9964C29292A1BDCD76F60B37A15EE21D4 + +Count = 789 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = 2284612C4744BFB1E36285EDB535566602D57E6A4E5B29AF16E0E95759C2B125844E496A7F6457 + +Count = 790 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 05F8B0EDB034954E085389B6B0117E59BF7A1445EF1F338FDAF94F2A9BCE5DAB7B8733761D4893 + +Count = 791 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = C019C29603C1E1ED3D94BA68BD5CCB86FF53CC904E5E054FA8221C56A113E989B9F81BD13B9AC7 + +Count = 792 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 13B625E5F4DF92DADDBC6B7065B36E4768EE877519541187D81F0CF498BD2317EEEFC1BA09FD5F + +Count = 793 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = +CT = BC73B1C2F3FE0C59A329417144737D0FA3E2C4D09CFABE5C67F0BE77C96DCA2D621A3AEDA407DEA9 + +Count = 794 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 00 +CT = B1A8DFB192FA2C1BD978DE3A0A1C82E2C1709F2714A235D11F48C67F708E8845985CB19ED6010FFC + +Count = 795 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 0001 +CT = FDC957611833EC30511C583BF3CB66B61C4B0D72D47B25DBBB850CE2576C3A57FD18BC3CFF3D6D5B + +Count = 796 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102 +CT = A2EEF13FA0EA16BA67E6E4118796071CCD01474EF7B90B13ED837E5EFA4849EB7979337FD145B1AB + +Count = 797 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 00010203 +CT = 3ECF2C0B164EEE0B9D655C5207B7F4AA854ECC9D6D488146B61ED6A49143E54F91090703502E1994 + +Count = 798 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 0001020304 +CT = 7EA0A67026AE738620E369B96D4858EDBF9FEECC57EC753423E518B2703E59075B236CF7FF055358 + +Count = 799 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405 +CT = 1A9471657230C2272C4192D9D193FE02DC90965A75DB47ACF3622DDD5EC2DE97BCF3527921D29107 + +Count = 800 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 00010203040506 +CT = 1F6D4FBAA595F14B9918C01A5AE870C6D1761F68DDDAB2E75FEAE2F03FE90BE8C79E2DF75A7265D0 + +Count = 801 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 0001020304050607 +CT = 86A003A0C56CDDD7A9853AA70F7DB88559C0E0BC2490B6A17486444F9440434133FD04142925C8F9 + +Count = 802 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708 +CT = 5840C9CD51283BD1D9096E4CC1039AF981EE5F415C6F0688FD48546BBF1B67D67AD413A9CD157CEC + +Count = 803 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 00010203040506070809 +CT = 6B74495409113A904D4573AC8AB661F6FD4A711DAF4A54B31BC7DAB26D903950EE5379C743AF8C93 + +Count = 804 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A +CT = 5BA1831D487F8E249C9193393C1589A8BCAB84224E6C47094B57F09AB7A21026B142ED6436497EB0 + +Count = 805 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B +CT = FEB6AB5F168A5792A88D0A6BF2B26F29CAD93B504E2F8DD57B6405C3808CF25A26AE2289DD85CFF5 + +Count = 806 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C +CT = 028697CF285B46BFDA13BCECAD22D09E416C16D092BBE8B9596AE06506D4CC33DB0AA22365304C5C + +Count = 807 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C0D +CT = 681E88ADDF4178136693CD3DBBC0020A935B95350FB5A28D9590AC4E915251A024C50D1FCE31EB02 + +Count = 808 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C0D0E +CT = E43AF8F55790660AB0B7F3519AFF29F079902EC431CB82A70106161BC3FC4891CB3356597BFFF6A1 + +Count = 809 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C0D0E0F +CT = DF0CA1114F2E0051AC6E347F45D1778224098FA9346DC096229D9E1715514902B61AD4DFBD1F602A + +Count = 810 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 5411119D71ACCC5D9A10F0DBE4D8BD5C123B10FBC4B5B1086E20396B5783A8A60603081317C54133 + +Count = 811 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 36CE88BC57F948B6D81B20AC749D46C3A83989704D7D2CE14B78BB63FFEA6B6E4F481501C9D996CF + +Count = 812 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = C171586599C0292C87A35673E8DAA1A189C728986AEF37EA7AEE5C1D85068F993515875FBF7A7BF8 + +Count = 813 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 01E47467EC5F81AD224EE173D64A14FCBB4DC423DDFD7062363D20E31A91526E7160F6B601FD01AA + +Count = 814 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = FBAACC649496A650F85A500FA69307A5F49E87935987AF3F2B9A1E102B8F3CD486D2A6FDC6E9759D + +Count = 815 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = EE7B6FEA6D4E6CE7C175DC649B90220168E94A687A1B1244DFFF225FB61FEE1E4F26AE8DCD4F1878 + +Count = 816 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 95AFA27D4D8CEA68B2D46DF5AEDB88A3B8348D174E06DB0760F957BC42E1C22E1958F3B6D4512AD2 + +Count = 817 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = CF2FB7E73873BE2A926E3B4A370D0C79B566BD95CDA83797D8E2E17A03E076AF09822CAB762FD0DB + +Count = 818 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = A5AEC98AA860CE17F00838C6C94B1368606539054F78D9876F17F9D98F60D64EA9E44201410ACD38 + +Count = 819 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = 4E7F9F0B45CB9DC4DFFA2C451437CDE1BBFA0D802A467FAD1E7FFCBFB4BF5F94518E18A4C6AD9316 + +Count = 820 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = BB85E2FF036A7EE15F49548C5FDF93D31888FC103FBAE1CF47D09B679011A91DC89F8500A4501523 + +Count = 821 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 545D8C7B15744B9AB0638AD7C0CF38950F43A12CAD52D9008B28E58871C9E3004693A0775A13CD19 + +Count = 822 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = 2284612C4744BFB1E36285EDB535566602D57E6A4E5B29AC1AFE850F982EC5B9003210AE09126E80 + +Count = 823 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 05F8B0EDB034954E085389B6B0117E59BF7A1445EF1F33B5406032F3C5D380105DF5166364FA1475 + +Count = 824 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = C019C29603C1E1ED3D94BA68BD5CCB86FF53CC904E5E05D8098254D4EE8BD4CCF2DC396FA157C1EE + +Count = 825 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 13B625E5F4DF92DADDBC6B7065B36E4768EE8775195411326928BA5B34AFB44961A8408B703CF143 + +Count = 826 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = +CT = BC73B1C2F3FE0C59A329417144737D0FA3E2C4D09CFABE5CBD1A328F2DA944A30866E2C778C5E95EDD + +Count = 827 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 00 +CT = B1A8DFB192FA2C1BD978DE3A0A1C82E2C1709F2714A235D148BADACE6929F188CE8BEDA20D89DD8182 + +Count = 828 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 0001 +CT = FDC957611833EC30511C583BF3CB66B61C4B0D72D47B25DBDE457EE363381C08EFDF4E65E20C24DF0D + +Count = 829 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102 +CT = A2EEF13FA0EA16BA67E6E4118796071CCD01474EF7B90B13089E7FA7A7320BE3297F6F27C2347D887F + +Count = 830 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 00010203 +CT = 3ECF2C0B164EEE0B9D655C5207B7F4AA854ECC9D6D488146E25EDC3E3A1DAB8EB03BD858BDC4F7A6DA + +Count = 831 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 0001020304 +CT = 7EA0A67026AE738620E369B96D4858EDBF9FEECC57EC75345757E57DB012D0E680069B1E14D1126917 + +Count = 832 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405 +CT = 1A9471657230C2272C4192D9D193FE02DC90965A75DB47AC439AC527F2DE1C8D6A18B933E8AC263035 + +Count = 833 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 00010203040506 +CT = 1F6D4FBAA595F14B9918C01A5AE870C6D1761F68DDDAB2E7FEE75830F01559C9A3BA94C239518DBBE7 + +Count = 834 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 0001020304050607 +CT = 86A003A0C56CDDD7A9853AA70F7DB88559C0E0BC2490B6A1E0EC5DAD3C4D5C224262F028982F26E799 + +Count = 835 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708 +CT = 5840C9CD51283BD1D9096E4CC1039AF981EE5F415C6F06883828972F98A20D5011D28F59E0F984DCEF + +Count = 836 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 00010203040506070809 +CT = 6B74495409113A904D4573AC8AB661F6FD4A711DAF4A54B3D4BF379E805EDF1A7B4D397B7459BA5718 + +Count = 837 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A +CT = 5BA1831D487F8E249C9193393C1589A8BCAB84224E6C4709A41925A95E9B9FE8FDA0A420548DD6A54C + +Count = 838 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B +CT = FEB6AB5F168A5792A88D0A6BF2B26F29CAD93B504E2F8DD55D3061AFD32777529C28183635D83B4D25 + +Count = 839 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C +CT = 028697CF285B46BFDA13BCECAD22D09E416C16D092BBE8B9A15CFFF1D05BFB471D00775A6FC930164C + +Count = 840 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C0D +CT = 681E88ADDF4178136693CD3DBBC0020A935B95350FB5A28DD2A7F42ACAF8062A2029D9EF3668305772 + +Count = 841 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C0D0E +CT = E43AF8F55790660AB0B7F3519AFF29F079902EC431CB82A7DEF38464B5F749E708EACDA920288AAACE + +Count = 842 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C0D0E0F +CT = DF0CA1114F2E0051AC6E347F45D1778224098FA9346DC09611E7E3D6883C458501FB52815F52AE5554 + +Count = 843 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 5411119D71ACCC5D9A10F0DBE4D8BD5C123B10FBC4B5B108FAAEBB224FFCD62E04951A1A8531D32B99 + +Count = 844 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 36CE88BC57F948B6D81B20AC749D46C3A83989704D7D2CE1170B221523F97A2A98F432435283F99BB7 + +Count = 845 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = C171586599C0292C87A35673E8DAA1A189C728986AEF37EA521E0EACB295C968BA3F87A193C3990C3C + +Count = 846 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 01E47467EC5F81AD224EE173D64A14FCBB4DC423DDFD70620519AE922C7C7C4BF5CF0F1101F9806A91 + +Count = 847 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = FBAACC649496A650F85A500FA69307A5F49E87935987AF3F4800DE4425BDF6368485CA20F81E3F4D60 + +Count = 848 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = EE7B6FEA6D4E6CE7C175DC649B90220168E94A687A1B1244DEB2EA7E199359D938CF814309FB0E99CF + +Count = 849 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 95AFA27D4D8CEA68B2D46DF5AEDB88A3B8348D174E06DB0706ECBECFA8A7EE35014CACEEFD26C8CF83 + +Count = 850 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = CF2FB7E73873BE2A926E3B4A370D0C79B566BD95CDA8379712A11B5C1CB67C82B78DBF412E3693DD21 + +Count = 851 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = A5AEC98AA860CE17F00838C6C94B1368606539054F78D987F6BFA05EA06D3F3515EE9D711D706A6436 + +Count = 852 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = 4E7F9F0B45CB9DC4DFFA2C451437CDE1BBFA0D802A467FADAAD3B2BEF833E5F38536187DB0597A3447 + +Count = 853 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = BB85E2FF036A7EE15F49548C5FDF93D31888FC103FBAE1CFB3F1C13FCDF731E1611A97003C51D02DF5 + +Count = 854 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 545D8C7B15744B9AB0638AD7C0CF38950F43A12CAD52D9003849348A22DFE14CF80ED7BCEAFDE82CBA + +Count = 855 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = 2284612C4744BFB1E36285EDB535566602D57E6A4E5B29AC166B38D203C6F6457C985218AC2BAAC92B + +Count = 856 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 05F8B0EDB034954E085389B6B0117E59BF7A1445EF1F33B5E8C42139763405A8CAB204EA387D989999 + +Count = 857 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = C019C29603C1E1ED3D94BA68BD5CCB86FF53CC904E5E05D8E8F8611E4B7B955D93887A846980ACA855 + +Count = 858 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 13B625E5F4DF92DADDBC6B7065B36E4768EE877519541132810CA2912F085BE7211EA4B9A4C54D1928 + +Count = 859 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = +CT = BC73B1C2F3FE0C59A329417144737D0FA3E2C4D09CFABE5CBD702CCBDC49E6C41D59A793CB6237EBD574 + +Count = 860 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 00 +CT = B1A8DFB192FA2C1BD978DE3A0A1C82E2C1709F2714A235D148FA004B07344C351F3C515A61249574F732 + +Count = 861 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 0001 +CT = FDC957611833EC30511C583BF3CB66B61C4B0D72D47B25DBDE9474EBCF7DA8687A5266224589E483D36E + +Count = 862 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102 +CT = A2EEF13FA0EA16BA67E6E4118796071CCD01474EF7B90B1308AACFEB7CEA01529837AE39D3061CFC3A6C + +Count = 863 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 00010203 +CT = 3ECF2C0B164EEE0B9D655C5207B7F4AA854ECC9D6D488146E23CC6441B2E6DD94802C3B7753F3B751729 + +Count = 864 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 0001020304 +CT = 7EA0A67026AE738620E369B96D4858EDBF9FEECC57EC753457F18B7F22BA655B0A57744EB435A8906B56 + +Count = 865 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405 +CT = 1A9471657230C2272C4192D9D193FE02DC90965A75DB47AC4305D8F6B1426839447C71FFDA676A8F8674 + +Count = 866 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 00010203040506 +CT = 1F6D4FBAA595F14B9918C01A5AE870C6D1761F68DDDAB2E7FE1133E36DE2A7567D26CF4C12C292E5786B + +Count = 867 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 0001020304050607 +CT = 86A003A0C56CDDD7A9853AA70F7DB88559C0E0BC2490B6A1E03D1577111D13A75C3618E91AD0A064E935 + +Count = 868 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708 +CT = 5840C9CD51283BD1D9096E4CC1039AF981EE5F415C6F068838E1C03B07F0AC6E4818AB442CD5BFC4CB07 + +Count = 869 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 00010203040506070809 +CT = 6B74495409113A904D4573AC8AB661F6FD4A711DAF4A54B3D430DB56E19E0C0BE73F8C78465271F2EF26 + +Count = 870 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A +CT = 5BA1831D487F8E249C9193393C1589A8BCAB84224E6C4709A42F19030DD2D00DEE467426945536D63F0E + +Count = 871 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B +CT = FEB6AB5F168A5792A88D0A6BF2B26F29CAD93B504E2F8DD55DC6F520C5ED096CF8A6AD1EFDD26E48F509 + +Count = 872 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C +CT = 028697CF285B46BFDA13BCECAD22D09E416C16D092BBE8B9A1A200B594DD5C8D4126649ED6C5062D834A + +Count = 873 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C0D +CT = 681E88ADDF4178136693CD3DBBC0020A935B95350FB5A28DD275FE566DF26A986DA8BC6241C560FADD1C + +Count = 874 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C0D0E +CT = E43AF8F55790660AB0B7F3519AFF29F079902EC431CB82A7DE02DBDA9AA76CE11A4149CC0BA41CBA3197 + +Count = 875 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C0D0E0F +CT = DF0CA1114F2E0051AC6E347F45D1778224098FA9346DC09611FA6B993D6C9988129DE0E97A389832EF93 + +Count = 876 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 5411119D71ACCC5D9A10F0DBE4D8BD5C123B10FBC4B5B108FAD4BF0709E2ACDF0357269DFC97832C09F0 + +Count = 877 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 36CE88BC57F948B6D81B20AC749D46C3A83989704D7D2CE11797007B57A1462C7B76ECF0C39DAA7B5EAA + +Count = 878 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = C171586599C0292C87A35673E8DAA1A189C728986AEF37EA52D0A166C3B01220B64400C60881AA333A81 + +Count = 879 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 01E47467EC5F81AD224EE173D64A14FCBB4DC423DDFD70620527DA9C1507DEB367A6E4942B7FB9144156 + +Count = 880 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = FBAACC649496A650F85A500FA69307A5F49E87935987AF3F4816A7627FE5F0DE5D1CA10BFE85F5175EA0 + +Count = 881 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = EE7B6FEA6D4E6CE7C175DC649B90220168E94A687A1B1244DE72FE366C661B92C8329CE4D46BC27326EB + +Count = 882 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 95AFA27D4D8CEA68B2D46DF5AEDB88A3B8348D174E06DB0706A3EDEAE04029AC0CDA42C47B3823298835 + +Count = 883 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = CF2FB7E73873BE2A926E3B4A370D0C79B566BD95CDA8379712D292ABF9F210CFDA2E6DFDB4855F7AB6D6 + +Count = 884 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = A5AEC98AA860CE17F00838C6C94B1368606539054F78D987F67E82E13F4201C03AF9342EDC7512ADA457 + +Count = 885 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = 4E7F9F0B45CB9DC4DFFA2C451437CDE1BBFA0D802A467FADAA6AAF51AC52FD83BD36220705B97A0F3CC9 + +Count = 886 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = BB85E2FF036A7EE15F49548C5FDF93D31888FC103FBAE1CFB32CB13DFA77756B20E59562DE6B945EE218 + +Count = 887 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 545D8C7B15744B9AB0638AD7C0CF38950F43A12CAD52D90038071C37298E1538B746EB58A7F4DF059F35 + +Count = 888 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = 2284612C4744BFB1E36285EDB535566602D57E6A4E5B29AC16216771C65BE9D0D623BD0366EC7CFB6A70 + +Count = 889 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 05F8B0EDB034954E085389B6B0117E59BF7A1445EF1F33B5E8354835273AC250509FB81AC2EA814B392D + +Count = 890 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = C019C29603C1E1ED3D94BA68BD5CCB86FF53CC904E5E05D8E89F2513DDB129DE9078F72539A65D6BE30F + +Count = 891 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 13B625E5F4DF92DADDBC6B7065B36E4768EE877519541132818BE3A76D23A9FED6A5633B1236833668E4 + +Count = 892 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = +CT = BC73B1C2F3FE0C59A329417144737D0FA3E2C4D09CFABE5CBD7056BD4D93D5933524D84B3B47FA173C84D2 + +Count = 893 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 00 +CT = B1A8DFB192FA2C1BD978DE3A0A1C82E2C1709F2714A235D148FA22B29558B2F6B63758DA7562AF91E3EAE1 + +Count = 894 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 0001 +CT = FDC957611833EC30511C583BF3CB66B61C4B0D72D47B25DBDE942550466D1728EE7CD56B1391FA3F7A2239 + +Count = 895 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102 +CT = A2EEF13FA0EA16BA67E6E4118796071CCD01474EF7B90B1308AACB60D2D5D36D4BB68A1A8623C84993DF90 + +Count = 896 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 00010203 +CT = 3ECF2C0B164EEE0B9D655C5207B7F4AA854ECC9D6D488146E23C0C6BC5333D56C869DED469C06AD41394C4 + +Count = 897 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 0001020304 +CT = 7EA0A67026AE738620E369B96D4858EDBF9FEECC57EC753457F19DD54E9B5C97DF8EFD5D7AE1B8D2BF4F5D + +Count = 898 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405 +CT = 1A9471657230C2272C4192D9D193FE02DC90965A75DB47AC43056127CC49C3A05D9936DF7A35AC705AD6B7 + +Count = 899 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 00010203040506 +CT = 1F6D4FBAA595F14B9918C01A5AE870C6D1761F68DDDAB2E7FE11402E5AF3C0D6E1FEB0E3E79A77A65D8CCA + +Count = 900 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 0001020304050607 +CT = 86A003A0C56CDDD7A9853AA70F7DB88559C0E0BC2490B6A1E03D63FBF8D98A8478435380BB9D69B9216BFB + +Count = 901 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708 +CT = 5840C9CD51283BD1D9096E4CC1039AF981EE5F415C6F068838E1DB055FF825B9989676A64D4C48C2422E4D + +Count = 902 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 00010203040506070809 +CT = 6B74495409113A904D4573AC8AB661F6FD4A711DAF4A54B3D4308AD274165A05E6B1728312090C066CEE3C + +Count = 903 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A +CT = 5BA1831D487F8E249C9193393C1589A8BCAB84224E6C4709A42FF17578BA57C60BCBC91289F43A5CF49572 + +Count = 904 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B +CT = FEB6AB5F168A5792A88D0A6BF2B26F29CAD93B504E2F8DD55DC612DA6D3E1148BD7123887827C68D5EE9BF + +Count = 905 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C +CT = 028697CF285B46BFDA13BCECAD22D09E416C16D092BBE8B9A1A28228F6C281C59045425DD55AE359ACE76A + +Count = 906 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C0D +CT = 681E88ADDF4178136693CD3DBBC0020A935B95350FB5A28DD275E5EE27EB88191B25A0CEE3C42CE4821583 + +Count = 907 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C0D0E +CT = E43AF8F55790660AB0B7F3519AFF29F079902EC431CB82A7DE02C34F3CBB69EBFB7BDCB197012AF9566ED9 + +Count = 908 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C0D0E0F +CT = DF0CA1114F2E0051AC6E347F45D1778224098FA9346DC09611FA55EB8E7C5175684057F5F87A283EF57577 + +Count = 909 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 5411119D71ACCC5D9A10F0DBE4D8BD5C123B10FBC4B5B108FAD4EE5AB165F564313475DBC06475DDB97B2B + +Count = 910 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 36CE88BC57F948B6D81B20AC749D46C3A83989704D7D2CE11797F05CBE0A9A0ABE554B2F1E4BA768CCE5E3 + +Count = 911 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = C171586599C0292C87A35673E8DAA1A189C728986AEF37EA52D04781D1C75E1C03F538119D420D2E3B186A + +Count = 912 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 01E47467EC5F81AD224EE173D64A14FCBB4DC423DDFD7062052732E146AA248CABB989E4B7BCF7288F89CA + +Count = 913 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = FBAACC649496A650F85A500FA69307A5F49E87935987AF3F4816A410102E6A95393F951F6864C49A243BA3 + +Count = 914 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = EE7B6FEA6D4E6CE7C175DC649B90220168E94A687A1B1244DE720AF7EA7BE1AA2ABF3A5023375C9FA42869 + +Count = 915 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 95AFA27D4D8CEA68B2D46DF5AEDB88A3B8348D174E06DB0706A3F12DDAB57EE5FBA1CE483857EAD3972113 + +Count = 916 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = CF2FB7E73873BE2A926E3B4A370D0C79B566BD95CDA8379712D2B5D072FACF3B082FFD6D4FE8134CCD6657 + +Count = 917 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = A5AEC98AA860CE17F00838C6C94B1368606539054F78D987F67E762A3F3497C83A447AE51972EEC409257F + +Count = 918 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = 4E7F9F0B45CB9DC4DFFA2C451437CDE1BBFA0D802A467FADAA6A4C431CDAB5B61CA8A8DF8552A198887BA7 + +Count = 919 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = BB85E2FF036A7EE15F49548C5FDF93D31888FC103FBAE1CFB32CC4BC17F3E71F3C63ACA6BE85061A8F1DCC + +Count = 920 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 545D8C7B15744B9AB0638AD7C0CF38950F43A12CAD52D900380764E2C08534E89D545BB0EFAE485EFAADD0 + +Count = 921 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = 2284612C4744BFB1E36285EDB535566602D57E6A4E5B29AC162161ABBC64A1ACA295A71B992D124686333F + +Count = 922 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 05F8B0EDB034954E085389B6B0117E59BF7A1445EF1F33B5E835F6FCA22E779EDD264113B0A5FE7F1BA1CC + +Count = 923 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = C019C29603C1E1ED3D94BA68BD5CCB86FF53CC904E5E05D8E89FC116522F921F79BCFC6A1ED085381062D6 + +Count = 924 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 13B625E5F4DF92DADDBC6B7065B36E4768EE877519541132818B5F30C6CA1B069F6335F9EE5196C8CDA94C + +Count = 925 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = +CT = BC73B1C2F3FE0C59A329417144737D0FA3E2C4D09CFABE5CBD70565BE9D4DF7CA6A1DBD4BAEFF25E3025C1EA + +Count = 926 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 00 +CT = B1A8DFB192FA2C1BD978DE3A0A1C82E2C1709F2714A235D148FA22AFC2A1C93EFFF96C55FEABBC4F8B0D9E69 + +Count = 927 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 0001 +CT = FDC957611833EC30511C583BF3CB66B61C4B0D72D47B25DBDE9425B9B431F0943619D94997B209D49CB3F65B + +Count = 928 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102 +CT = A2EEF13FA0EA16BA67E6E4118796071CCD01474EF7B90B1308AACB7BBAD79045D7C458C04CF36D59CEFE18E0 + +Count = 929 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 00010203 +CT = 3ECF2C0B164EEE0B9D655C5207B7F4AA854ECC9D6D488146E23C0CF2A22CB2EA43C8EACEDFBD43B90F5FC1D8 + +Count = 930 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 0001020304 +CT = 7EA0A67026AE738620E369B96D4858EDBF9FEECC57EC753457F19DEDA269CB3429B91BCE6FFC72109BE1A6F2 + +Count = 931 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405 +CT = 1A9471657230C2272C4192D9D193FE02DC90965A75DB47AC430561E144062F91E09DCA8F69493B31B2697B0F + +Count = 932 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 00010203040506 +CT = 1F6D4FBAA595F14B9918C01A5AE870C6D1761F68DDDAB2E7FE1140BE649A7A03B8A5F94776B854097E1E7D0D + +Count = 933 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 0001020304050607 +CT = 86A003A0C56CDDD7A9853AA70F7DB88559C0E0BC2490B6A1E03D6334002A70BB35D2046976933A1220EB08C8 + +Count = 934 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708 +CT = 5840C9CD51283BD1D9096E4CC1039AF981EE5F415C6F068838E1DB3EF9098E54C9C1D00D82E62460D449C423 + +Count = 935 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 00010203040506070809 +CT = 6B74495409113A904D4573AC8AB661F6FD4A711DAF4A54B3D4308A444213557E65E663960291592F3DB91C37 + +Count = 936 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A +CT = 5BA1831D487F8E249C9193393C1589A8BCAB84224E6C4709A42FF1B4475F7CA87AC9BA66E2A39465C4FE4434 + +Count = 937 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B +CT = FEB6AB5F168A5792A88D0A6BF2B26F29CAD93B504E2F8DD55DC6124F27567B9306BD44266EEC3B497188A0C6 + +Count = 938 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C +CT = 028697CF285B46BFDA13BCECAD22D09E416C16D092BBE8B9A1A282FA34605E368965835FDA1DFE96C751B9D7 + +Count = 939 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C0D +CT = 681E88ADDF4178136693CD3DBBC0020A935B95350FB5A28DD275E5E1FB7FDE8D19AEF4CEC1EE1031E6E170A7 + +Count = 940 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C0D0E +CT = E43AF8F55790660AB0B7F3519AFF29F079902EC431CB82A7DE02C3DDCF8EC059653192F7BE923BC21F4250EB + +Count = 941 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C0D0E0F +CT = DF0CA1114F2E0051AC6E347F45D1778224098FA9346DC09611FA557AD8192FB3C30B3C66BCC1EF1AC7483121 + +Count = 942 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 5411119D71ACCC5D9A10F0DBE4D8BD5C123B10FBC4B5B108FAD4EEA3FE3F2805D390869542CD1B1B3794DDB0 + +Count = 943 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 36CE88BC57F948B6D81B20AC749D46C3A83989704D7D2CE11797F090DE5606F1C64C713F12CE942F0F5AB33A + +Count = 944 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = C171586599C0292C87A35673E8DAA1A189C728986AEF37EA52D047410DB1F8837123BD8094EBEFBA2A15AA43 + +Count = 945 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 01E47467EC5F81AD224EE173D64A14FCBB4DC423DDFD7062052732C18D390F1109D53A0115181C98EC2BE23E + +Count = 946 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = FBAACC649496A650F85A500FA69307A5F49E87935987AF3F4816A428F51A411BE005076F4574FD0AD25AFAC1 + +Count = 947 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = EE7B6FEA6D4E6CE7C175DC649B90220168E94A687A1B1244DE720A1FCE7592B19E1236AF0EB3B7399B0F506D + +Count = 948 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 95AFA27D4D8CEA68B2D46DF5AEDB88A3B8348D174E06DB0706A3F101B7DA55D58D244CCC4BA3859BB4DA9F92 + +Count = 949 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = CF2FB7E73873BE2A926E3B4A370D0C79B566BD95CDA8379712D2B514D5B065030865553E2068D516D5508307 + +Count = 950 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = A5AEC98AA860CE17F00838C6C94B1368606539054F78D987F67E764D2477CC96B0510D1C6CEC8B1B5F3F229A + +Count = 951 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = 4E7F9F0B45CB9DC4DFFA2C451437CDE1BBFA0D802A467FADAA6A4C07952AF75499E7A247CB96C608917EA215 + +Count = 952 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = BB85E2FF036A7EE15F49548C5FDF93D31888FC103FBAE1CFB32CC47C6A0F02B4CDB8247287AB31BC35C79975 + +Count = 953 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 545D8C7B15744B9AB0638AD7C0CF38950F43A12CAD52D9003807643B0696A98D88CC4BED26B20D400378350F + +Count = 954 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = 2284612C4744BFB1E36285EDB535566602D57E6A4E5B29AC162161514E3B5D9DC558E08F4046C7F37E391712 + +Count = 955 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 05F8B0EDB034954E085389B6B0117E59BF7A1445EF1F33B5E835F6010F8370F5DAD7FB5B2EB1D190D220A380 + +Count = 956 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = C019C29603C1E1ED3D94BA68BD5CCB86FF53CC904E5E05D8E89FC1FD21447594EC2960D016A1F60261F2CA4E + +Count = 957 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 13B625E5F4DF92DADDBC6B7065B36E4768EE877519541132818B5FA4F255C8F1907D4526C25BA2A69DEB6601 + +Count = 958 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = +CT = BC73B1C2F3FE0C59A329417144737D0FA3E2C4D09CFABE5CBD70565B5AD989ACD5D1DC50D912CE204BB77E8CBC + +Count = 959 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 00 +CT = B1A8DFB192FA2C1BD978DE3A0A1C82E2C1709F2714A235D148FA22AFC93F7854D40745119AFD75BE131CF1C5F7 + +Count = 960 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 0001 +CT = FDC957611833EC30511C583BF3CB66B61C4B0D72D47B25DBDE9425B9F9B2992833E40F138AE4C95E0A479E39EB + +Count = 961 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102 +CT = A2EEF13FA0EA16BA67E6E4118796071CCD01474EF7B90B1308AACB7B55B01B001001B05FC382E9417C76956ABC + +Count = 962 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 00010203 +CT = 3ECF2C0B164EEE0B9D655C5207B7F4AA854ECC9D6D488146E23C0CF22914F3F5D9E99AA29EE9D58A199B7D4565 + +Count = 963 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 0001020304 +CT = 7EA0A67026AE738620E369B96D4858EDBF9FEECC57EC753457F19DED177F26F7FE27E6044D7568A38927A547DA + +Count = 964 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405 +CT = 1A9471657230C2272C4192D9D193FE02DC90965A75DB47AC430561E13D29C9DF3034F2F83E16C3D96EB9D3AFBF + +Count = 965 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 00010203040506 +CT = 1F6D4FBAA595F14B9918C01A5AE870C6D1761F68DDDAB2E7FE1140BEE3C80D247A9DBDB8FE702846CF6578155F + +Count = 966 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 0001020304050607 +CT = 86A003A0C56CDDD7A9853AA70F7DB88559C0E0BC2490B6A1E03D6334C31063D6E31DA1842F8507A6B9A3750075 + +Count = 967 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708 +CT = 5840C9CD51283BD1D9096E4CC1039AF981EE5F415C6F068838E1DB3E02505B48DE01252065B680ED49D9EAC0B5 + +Count = 968 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 00010203040506070809 +CT = 6B74495409113A904D4573AC8AB661F6FD4A711DAF4A54B3D4308A443BE60871C77ED8AC7EA40D94A291485A8C + +Count = 969 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A +CT = 5BA1831D487F8E249C9193393C1589A8BCAB84224E6C4709A42FF1B49B0DD0B2471E6D534F920DF5ABC1319980 + +Count = 970 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B +CT = FEB6AB5F168A5792A88D0A6BF2B26F29CAD93B504E2F8DD55DC6124F346B335B88DC008BDA84F06B4558DB8C5B + +Count = 971 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C +CT = 028697CF285B46BFDA13BCECAD22D09E416C16D092BBE8B9A1A282FAB93A5D4BEEDAB45D8770EF6989C60AF8BB + +Count = 972 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C0D +CT = 681E88ADDF4178136693CD3DBBC0020A935B95350FB5A28DD275E5E1938F249EADEDFB09B8CD40CD05B4488B9F + +Count = 973 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C0D0E +CT = E43AF8F55790660AB0B7F3519AFF29F079902EC431CB82A7DE02C3DDD8E624A6A5EB4C4C1F566588CA942B3429 + +Count = 974 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C0D0E0F +CT = DF0CA1114F2E0051AC6E347F45D1778224098FA9346DC09611FA557A760FA7FDABDDBD223DB8981D0AEA112003 + +Count = 975 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 5411119D71ACCC5D9A10F0DBE4D8BD5C123B10FBC4B5B108FAD4EEA3C19551FB885FC471C9924E060370AE6A58 + +Count = 976 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 36CE88BC57F948B6D81B20AC749D46C3A83989704D7D2CE11797F090C1F4F17E7721D27DAE1FC54B2853BDE6B4 + +Count = 977 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = C171586599C0292C87A35673E8DAA1A189C728986AEF37EA52D04741B024F017C21E9F40C24B7A0705B2A6F747 + +Count = 978 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 01E47467EC5F81AD224EE173D64A14FCBB4DC423DDFD7062052732C15538EF5DB4FEB13F9BD2CA608C9B238ADC + +Count = 979 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = FBAACC649496A650F85A500FA69307A5F49E87935987AF3F4816A4284DC35478396EF18AF4D20439D23F7C8718 + +Count = 980 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = EE7B6FEA6D4E6CE7C175DC649B90220168E94A687A1B1244DE720A1F2057CCDE9D31322E27D9C63D3024741066 + +Count = 981 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 95AFA27D4D8CEA68B2D46DF5AEDB88A3B8348D174E06DB0706A3F1014C0D37DE00ED97A43C3FFC912CBE72293F + +Count = 982 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = CF2FB7E73873BE2A926E3B4A370D0C79B566BD95CDA8379712D2B514372545B4B9F8B2CF598AC3ECC39EC1FEEC + +Count = 983 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = A5AEC98AA860CE17F00838C6C94B1368606539054F78D987F67E764D7625A5518167DAD1004E55587AE8F666BD + +Count = 984 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = 4E7F9F0B45CB9DC4DFFA2C451437CDE1BBFA0D802A467FADAA6A4C07F2FB3C9F7626E8C86AAF9CAA39C3799602 + +Count = 985 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = BB85E2FF036A7EE15F49548C5FDF93D31888FC103FBAE1CFB32CC47C513FF570F5F6AAA1EB4804520AE233183F + +Count = 986 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 545D8C7B15744B9AB0638AD7C0CF38950F43A12CAD52D9003807643B427A0A5635E44FBD1B84DAFDD2ACADF97C + +Count = 987 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = 2284612C4744BFB1E36285EDB535566602D57E6A4E5B29AC16216151336AC1D93FBAEB376578A956F9AAC2B223 + +Count = 988 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 05F8B0EDB034954E085389B6B0117E59BF7A1445EF1F33B5E835F6016A502599249DAF426F7DFD13FE028FA12D + +Count = 989 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = C019C29603C1E1ED3D94BA68BD5CCB86FF53CC904E5E05D8E89FC1FD500880A78FD6DD22ABFD2F90E9DCDAE525 + +Count = 990 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 13B625E5F4DF92DADDBC6B7065B36E4768EE877519541132818B5FA4F4027B3A9CA4E541AF383A9B89342764CA + +Count = 991 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = +CT = BC73B1C2F3FE0C59A329417144737D0FA3E2C4D09CFABE5CBD70565B5A8692C1D93A7D4C06B413794552C18A0420 + +Count = 992 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 00 +CT = B1A8DFB192FA2C1BD978DE3A0A1C82E2C1709F2714A235D148FA22AFC9C353299A16F4AAA278EB34094D03508D75 + +Count = 993 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 0001 +CT = FDC957611833EC30511C583BF3CB66B61C4B0D72D47B25DBDE9425B9F91448DE7C92526DB588D5B78FCE13433715 + +Count = 994 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102 +CT = A2EEF13FA0EA16BA67E6E4118796071CCD01474EF7B90B1308AACB7B55E9399917571A55510B1DAE01B4450AD76B + +Count = 995 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 00010203 +CT = 3ECF2C0B164EEE0B9D655C5207B7F4AA854ECC9D6D488146E23C0CF229B9037E2EA4A165C708014BF304C8F253FA + +Count = 996 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 0001020304 +CT = 7EA0A67026AE738620E369B96D4858EDBF9FEECC57EC753457F19DED17A416F9C60712759EAEC46AB34B3563193B + +Count = 997 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405 +CT = 1A9471657230C2272C4192D9D193FE02DC90965A75DB47AC430561E13D3E084142FFF50ED99AA93B04F5B0435548 + +Count = 998 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 00010203040506 +CT = 1F6D4FBAA595F14B9918C01A5AE870C6D1761F68DDDAB2E7FE1140BEE3DFAA12704DE1EC881448234A056D5E151D + +Count = 999 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 0001020304050607 +CT = 86A003A0C56CDDD7A9853AA70F7DB88559C0E0BC2490B6A1E03D6334C37E1D473E4DD7CF92A5ECDDB1D6EE77A88F + +Count = 1000 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708 +CT = 5840C9CD51283BD1D9096E4CC1039AF981EE5F415C6F068838E1DB3E023F6C59210A97891ADB1825B1CB7850D713 + +Count = 1001 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 00010203040506070809 +CT = 6B74495409113A904D4573AC8AB661F6FD4A711DAF4A54B3D4308A443B90A68B9C5AB205AAAD569FDD416C8D58D7 + +Count = 1002 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A +CT = 5BA1831D487F8E249C9193393C1589A8BCAB84224E6C4709A42FF1B49B351A28BD1754C231E0CBBF4EADA4F0AE66 + +Count = 1003 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B +CT = FEB6AB5F168A5792A88D0A6BF2B26F29CAD93B504E2F8DD55DC6124F34C80CD434A2FFF6CF7EBB7056B42A4B3239 + +Count = 1004 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C +CT = 028697CF285B46BFDA13BCECAD22D09E416C16D092BBE8B9A1A282FAB9087DEC7700CA90875AA3941565AC8D4CA0 + +Count = 1005 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C0D +CT = 681E88ADDF4178136693CD3DBBC0020A935B95350FB5A28DD275E5E193AEA069AEF5E677DC6F69F4322385846D24 + +Count = 1006 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C0D0E +CT = E43AF8F55790660AB0B7F3519AFF29F079902EC431CB82A7DE02C3DDD8EE4F19DBB7F3A6E69E2C7FE04BD6ECF36B + +Count = 1007 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C0D0E0F +CT = DF0CA1114F2E0051AC6E347F45D1778224098FA9346DC09611FA557A76F4A1A886F035EFE5F95FBF257EE9D715F9 + +Count = 1008 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 5411119D71ACCC5D9A10F0DBE4D8BD5C123B10FBC4B5B108FAD4EEA3C17097B764A75262E27A810B8CED29440403 + +Count = 1009 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 36CE88BC57F948B6D81B20AC749D46C3A83989704D7D2CE11797F090C1B3F7B9325BDF2DDDFEB3638AE010B8507C + +Count = 1010 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = C171586599C0292C87A35673E8DAA1A189C728986AEF37EA52D04741B082475F9D3D096A7A17947FDE09A2FB2A16 + +Count = 1011 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 01E47467EC5F81AD224EE173D64A14FCBB4DC423DDFD7062052732C155D3D714D4A472895BE660A0D5C42C4E724D + +Count = 1012 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = FBAACC649496A650F85A500FA69307A5F49E87935987AF3F4816A4284DBC7750CC872C0097DA34590040C58BA755 + +Count = 1013 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = EE7B6FEA6D4E6CE7C175DC649B90220168E94A687A1B1244DE720A1F20D7C757DA8EF720024B914719C83D4C9A41 + +Count = 1014 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 95AFA27D4D8CEA68B2D46DF5AEDB88A3B8348D174E06DB0706A3F1014C0B0645716EDE563CE4F0B7B6243919B4CE + +Count = 1015 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = CF2FB7E73873BE2A926E3B4A370D0C79B566BD95CDA8379712D2B51437D80E88D205B828708FD4C3F19809279B05 + +Count = 1016 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = A5AEC98AA860CE17F00838C6C94B1368606539054F78D987F67E764D766E3F39E72DF75F902B813F57AEF7010A80 + +Count = 1017 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = 4E7F9F0B45CB9DC4DFFA2C451437CDE1BBFA0D802A467FADAA6A4C07F22C85332793D9FC3D9AC2A642A31444C344 + +Count = 1018 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = BB85E2FF036A7EE15F49548C5FDF93D31888FC103FBAE1CFB32CC47C518AD10A512C058C2686D2157E5FA817130B + +Count = 1019 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 545D8C7B15744B9AB0638AD7C0CF38950F43A12CAD52D9003807643B426B830A1076A45963A3DC582FFD457324E4 + +Count = 1020 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = 2284612C4744BFB1E36285EDB535566602D57E6A4E5B29AC1621615133E422E5F1CFD4ED43F7265E0F1FED8C22B6 + +Count = 1021 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 05F8B0EDB034954E085389B6B0117E59BF7A1445EF1F33B5E835F6016A7ED52B1C3B3A443657DFDB294548598A50 + +Count = 1022 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = C019C29603C1E1ED3D94BA68BD5CCB86FF53CC904E5E05D8E89FC1FD504D0473BB3DB95D29D1B343DC092B134990 + +Count = 1023 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 13B625E5F4DF92DADDBC6B7065B36E4768EE877519541132818B5FA4F4540537BB8289E3A90DC1BDB389E0321DAF + +Count = 1024 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = +CT = BC73B1C2F3FE0C59A329417144737D0FA3E2C4D09CFABE5CBD70565B5A8616D152FD781147C835A21EB48A2D4A4CF7 + +Count = 1025 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 00 +CT = B1A8DFB192FA2C1BD978DE3A0A1C82E2C1709F2714A235D148FA22AFC9C302D539CDD2CF9914F71A5E9E558CFF6602 + +Count = 1026 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 0001 +CT = FDC957611833EC30511C583BF3CB66B61C4B0D72D47B25DBDE9425B9F91404E6432D0C49C9ABAC7A6EAE613E0C40DC + +Count = 1027 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102 +CT = A2EEF13FA0EA16BA67E6E4118796071CCD01474EF7B90B1308AACB7B55E95E7F6377E22DCAFBDC7E8D75BB17C30E63 + +Count = 1028 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 00010203 +CT = 3ECF2C0B164EEE0B9D655C5207B7F4AA854ECC9D6D488146E23C0CF229B9E4166233E28CA9C7D4E2ED990A1C93CBAB + +Count = 1029 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 0001020304 +CT = 7EA0A67026AE738620E369B96D4858EDBF9FEECC57EC753457F19DED17A4AD2B59C673AAB966AF1F175A27A0045E1B + +Count = 1030 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405 +CT = 1A9471657230C2272C4192D9D193FE02DC90965A75DB47AC430561E13D3E6F93891309CB5018E95D820532362767A2 + +Count = 1031 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 00010203040506 +CT = 1F6D4FBAA595F14B9918C01A5AE870C6D1761F68DDDAB2E7FE1140BEE3DF1A7A61575BF6E83316336671232E484CBB + +Count = 1032 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 0001020304050607 +CT = 86A003A0C56CDDD7A9853AA70F7DB88559C0E0BC2490B6A1E03D6334C37E732BA195DBB35D7C1DC7C1DF48FF28F728 + +Count = 1033 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708 +CT = 5840C9CD51283BD1D9096E4CC1039AF981EE5F415C6F068838E1DB3E023FE8983C662B9C2C1A1C98D1798FD147747D + +Count = 1034 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 00010203040506070809 +CT = 6B74495409113A904D4573AC8AB661F6FD4A711DAF4A54B3D4308A443B903FB5024CBDB9711BD605BA9D6F281A7543 + +Count = 1035 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A +CT = 5BA1831D487F8E249C9193393C1589A8BCAB84224E6C4709A42FF1B49B35BB1AA4E5514291E2DE15461BDBE80F3A6F + +Count = 1036 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B +CT = FEB6AB5F168A5792A88D0A6BF2B26F29CAD93B504E2F8DD55DC6124F34C87EB2AF1DEC95D0B7B78D0B7ADC5D9666E7 + +Count = 1037 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C +CT = 028697CF285B46BFDA13BCECAD22D09E416C16D092BBE8B9A1A282FAB90847EE2CDDA8455B9C7A87D432999CB59267 + +Count = 1038 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C0D +CT = 681E88ADDF4178136693CD3DBBC0020A935B95350FB5A28DD275E5E193AE450724509037966B7AE09779860083A460 + +Count = 1039 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C0D0E +CT = E43AF8F55790660AB0B7F3519AFF29F079902EC431CB82A7DE02C3DDD8EE41260FDB15DCC1DA866E85547C6A459951 + +Count = 1040 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C0D0E0F +CT = DF0CA1114F2E0051AC6E347F45D1778224098FA9346DC09611FA557A76F4ABEDE96139585EB47FE6F7A36E02665F05 + +Count = 1041 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 5411119D71ACCC5D9A10F0DBE4D8BD5C123B10FBC4B5B108FAD4EEA3C1702773A80EC8FAAE89202FB531DF71C4F294 + +Count = 1042 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 36CE88BC57F948B6D81B20AC749D46C3A83989704D7D2CE11797F090C1B33AF087C7DBA4991FA708B63E45E851E6F2 + +Count = 1043 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = C171586599C0292C87A35673E8DAA1A189C728986AEF37EA52D04741B082B8614EB3B6582D365D77CB7300E53A9BAD + +Count = 1044 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 01E47467EC5F81AD224EE173D64A14FCBB4DC423DDFD7062052732C155D3866277C8D94AF9434DEEB8D6BDFED2DEE3 + +Count = 1045 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = FBAACC649496A650F85A500FA69307A5F49E87935987AF3F4816A4284DBCB722117EE305974F19002AE769ACA52DC8 + +Count = 1046 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = EE7B6FEA6D4E6CE7C175DC649B90220168E94A687A1B1244DE720A1F20D7B3CFB0A9B5090E3E2A9604DCE7F9BC8FFF + +Count = 1047 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 95AFA27D4D8CEA68B2D46DF5AEDB88A3B8348D174E06DB0706A3F1014C0B2785DFA90016ECE0BFEF100CC2F6BBB411 + +Count = 1048 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = CF2FB7E73873BE2A926E3B4A370D0C79B566BD95CDA8379712D2B51437D86EB1877AFA3439202DD99B30403812931C + +Count = 1049 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = A5AEC98AA860CE17F00838C6C94B1368606539054F78D987F67E764D766EC549E0A9C011EAAE2FE67081CB04FDC0FF + +Count = 1050 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = 4E7F9F0B45CB9DC4DFFA2C451437CDE1BBFA0D802A467FADAA6A4C07F22C1CF9EDBE5EF1847162D8082269B2741738 + +Count = 1051 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = BB85E2FF036A7EE15F49548C5FDF93D31888FC103FBAE1CFB32CC47C518AE18DD0684D6C7521A099BFB83419CA311A + +Count = 1052 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 545D8C7B15744B9AB0638AD7C0CF38950F43A12CAD52D9003807643B426B66DC5F4C6597257FA7B2E64D48B8A46F36 + +Count = 1053 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = 2284612C4744BFB1E36285EDB535566602D57E6A4E5B29AC1621615133E4E2F1098607FED906E0347422AA44F72820 + +Count = 1054 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 05F8B0EDB034954E085389B6B0117E59BF7A1445EF1F33B5E835F6016A7E30F085D72EB6CDB18F25702BD9BED830B4 + +Count = 1055 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = C019C29603C1E1ED3D94BA68BD5CCB86FF53CC904E5E05D8E89FC1FD504D568C7062B5A095442750AF76AA7AA4B375 + +Count = 1056 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 13B625E5F4DF92DADDBC6B7065B36E4768EE877519541132818B5FA4F4540252AE42F2674C35CC1D8512B835BDDCF3 + +Count = 1057 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = +CT = BC73B1C2F3FE0C59A329417144737D0FA3E2C4D09CFABE5CBD70565B5A861694E9260A97977F7CFBA2E38866E417865F + +Count = 1058 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 00 +CT = B1A8DFB192FA2C1BD978DE3A0A1C82E2C1709F2714A235D148FA22AFC9C302B389B2A0797B684149860B701339291A9C + +Count = 1059 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 0001 +CT = FDC957611833EC30511C583BF3CB66B61C4B0D72D47B25DBDE9425B9F91404F452BA320397C57F48284D4668C10FB732 + +Count = 1060 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102 +CT = A2EEF13FA0EA16BA67E6E4118796071CCD01474EF7B90B1308AACB7B55E95ED532E9FD3123E998CEAAA913E3A8BC9FEA + +Count = 1061 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 00010203 +CT = 3ECF2C0B164EEE0B9D655C5207B7F4AA854ECC9D6D488146E23C0CF229B9E44472C4C02E5C32FA12B5DE012D2DBF5FE1 + +Count = 1062 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 0001020304 +CT = 7EA0A67026AE738620E369B96D4858EDBF9FEECC57EC753457F19DED17A4ADBC45D55FE672BBC93FD1A15B09CF1536CA + +Count = 1063 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405 +CT = 1A9471657230C2272C4192D9D193FE02DC90965A75DB47AC430561E13D3E6FD0FA5D83635D20D7CC668B07BC24B23A1B + +Count = 1064 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 00010203040506 +CT = 1F6D4FBAA595F14B9918C01A5AE870C6D1761F68DDDAB2E7FE1140BEE3DF1A96685143C4C443B87C1DF2C4A140A8C5D7 + +Count = 1065 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 0001020304050607 +CT = 86A003A0C56CDDD7A9853AA70F7DB88559C0E0BC2490B6A1E03D6334C37E73EBF59FAE6CD125DB5DD0EA1839F0ABFFDB + +Count = 1066 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708 +CT = 5840C9CD51283BD1D9096E4CC1039AF981EE5F415C6F068838E1DB3E023FE828B9A7ADB189A8AF510DA214612DE09E2D + +Count = 1067 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 00010203040506070809 +CT = 6B74495409113A904D4573AC8AB661F6FD4A711DAF4A54B3D4308A443B903F38F199626D9D2551E6B4C24C98EA1B30C7 + +Count = 1068 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A +CT = 5BA1831D487F8E249C9193393C1589A8BCAB84224E6C4709A42FF1B49B35BB4428F2D363A7A5CBEC5FAAC54980A03681 + +Count = 1069 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B +CT = FEB6AB5F168A5792A88D0A6BF2B26F29CAD93B504E2F8DD55DC6124F34C87E00C0D30654082F390C8188023F6EF9DEB7 + +Count = 1070 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C +CT = 028697CF285B46BFDA13BCECAD22D09E416C16D092BBE8B9A1A282FAB90847CF7D67ABE237C4923533B101B5CC44A381 + +Count = 1071 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C0D +CT = 681E88ADDF4178136693CD3DBBC0020A935B95350FB5A28DD275E5E193AE4532E5A3C036F5462932878EEA64F134B834 + +Count = 1072 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C0D0E +CT = E43AF8F55790660AB0B7F3519AFF29F079902EC431CB82A7DE02C3DDD8EE41BF1A910A55B59BDF30B300AEF1997001CB + +Count = 1073 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C0D0E0F +CT = DF0CA1114F2E0051AC6E347F45D1778224098FA9346DC09611FA557A76F4AB789F19C668E13EF77882A397A88494E821 + +Count = 1074 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 5411119D71ACCC5D9A10F0DBE4D8BD5C123B10FBC4B5B108FAD4EEA3C170276445484C94A0BDEB4BA4DAAC9B8F109F24 + +Count = 1075 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 36CE88BC57F948B6D81B20AC749D46C3A83989704D7D2CE11797F090C1B33A61021D5659A0CCE6C823741182B7E3F8FB + +Count = 1076 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = C171586599C0292C87A35673E8DAA1A189C728986AEF37EA52D04741B082B8FD9E98A61454CF438686061BCB5E840A0A + +Count = 1077 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = 01E47467EC5F81AD224EE173D64A14FCBB4DC423DDFD7062052732C155D386B1DE798B12E23E0489F9E9B5C2EF28C0BA + +Count = 1078 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = FBAACC649496A650F85A500FA69307A5F49E87935987AF3F4816A4284DBCB72A58A80B83535E6F3E877F138D534C8EBC + +Count = 1079 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = EE7B6FEA6D4E6CE7C175DC649B90220168E94A687A1B1244DE720A1F20D7B3132EE82F86D18EBE74F37690E649F37853 + +Count = 1080 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 95AFA27D4D8CEA68B2D46DF5AEDB88A3B8348D174E06DB0706A3F1014C0B277F2824FD088F1A0FBE597A366FFA14983D + +Count = 1081 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = CF2FB7E73873BE2A926E3B4A370D0C79B566BD95CDA8379712D2B51437D86EFF7C53325D4D5ED52D3B3321E0A5C94D63 + +Count = 1082 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = A5AEC98AA860CE17F00838C6C94B1368606539054F78D987F67E764D766EC5F0599FECB7C244939FC90787D50283B983 + +Count = 1083 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = 4E7F9F0B45CB9DC4DFFA2C451437CDE1BBFA0D802A467FADAA6A4C07F22C1CDA7AD9CCDAF50C1C73F563406418DE3751 + +Count = 1084 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = BB85E2FF036A7EE15F49548C5FDF93D31888FC103FBAE1CFB32CC47C518AE1A3D9E19ABD4B236D115102681353FC215A + +Count = 1085 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 545D8C7B15744B9AB0638AD7C0CF38950F43A12CAD52D9003807643B426B662AC7601A33402FBB748780D2A831E12CF9 + +Count = 1086 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = 2284612C4744BFB1E36285EDB535566602D57E6A4E5B29AC1621615133E4E2305430E9192987F15523F02B366CAB47E9 + +Count = 1087 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 05F8B0EDB034954E085389B6B0117E59BF7A1445EF1F33B5E835F6016A7E30009535F82D5B177B4425934DF831FD8EEA + +Count = 1088 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = C019C29603C1E1ED3D94BA68BD5CCB86FF53CC904E5E05D8E89FC1FD504D56BF3852F3441F46E9B6E461D37AF7A8332E + +Count = 1089 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 13B625E5F4DF92DADDBC6B7065B36E4768EE877519541132818B5FA4F4540260E0A668020917870083DB460F80CC524B + diff --git a/romulus/Implementations/crypto_aead/romulusn2/ref/api.h b/romulus/Implementations/crypto_aead/romulusn2/ref/api.h new file mode 100644 index 0000000..969c338 --- /dev/null +++ b/romulus/Implementations/crypto_aead/romulusn2/ref/api.h @@ -0,0 +1,5 @@ +#define CRYPTO_KEYBYTES 16 +#define CRYPTO_NSECBYTES 0 +#define CRYPTO_NPUBBYTES 12 +#define CRYPTO_ABYTES 16 +#define CRYPTO_NOOVERLAP 1 diff --git a/romulus/Implementations/crypto_aead/romulusn2/ref/encrypt.c b/romulus/Implementations/crypto_aead/romulusn2/ref/encrypt.c new file mode 100644 index 0000000..80e8d9b --- /dev/null +++ b/romulus/Implementations/crypto_aead/romulusn2/ref/encrypt.c @@ -0,0 +1,505 @@ +/* + * Date: 29 November 2018 + * Contact: Thomas Peyrin - thomas.peyrin@gmail.com + * Mustafa Khairallah - mustafam001@e.ntu.edu.sg + */ + +#include "crypto_aead.h" +#include "api.h" +#include "variant.h" +#include "skinny.h" +#include +#include + +/*void display_vector (const unsigned char* x, int lenx) { + int i; + + for (i = 0; i < lenx; i++) { + //printf("%02x",x[i]); + } + //printf("\n"); + + }*/ + +void pad (const unsigned char* m, unsigned char* mp, int l, int len8) { + int i; + + for (i = 0; i < l; i++) { + if (i < len8) { + mp[i] = m[i]; + } + else if (i == l - 1) { + mp[i] = (len8 & 0x0f); + } + else { + mp[i] = 0x00; + } + } + +} + +void g8A (unsigned char* s, unsigned char* c) { + int i; + + for (i = 0; i < 16; i++) { + c[i] = (s[i] >> 1) ^ (s[i] & 0x80) ^ ((s[i] & 0x01) << 7); + } + +} + +void rho_ad (const unsigned char* m, + unsigned char* s, + int len8, + int ver) { + int i; + unsigned char mp [16]; + + //printf("rho in m = ");display_vector(m,len8); + pad(m,mp,ver,len8); + //printf("rho in mp = ");display_vector(mp,16); + //printf("rho in s = ");display_vector(s,16); + for (i = 0; i < ver; i++) { + s[i] = s[i] ^ mp[i]; + } + //printf("rho out s = ");display_vector(s,16); + +} + +void rho (const unsigned char* m, + unsigned char* c, + unsigned char* s, + int len8, + int ver) { + int i; + unsigned char mp [16]; + + //printf("rho in m = ");display_vector(m,len8); + pad(m,mp,ver,len8); + //printf("rho in mp = ");display_vector(mp,16); + //printf("rho in s = ");display_vector(s,16); + + g8A(s,c); + for (i = 0; i < ver; i++) { + s[i] = s[i] ^ mp[i]; + if (i < len8) { + c[i] = c[i] ^ mp[i]; + } + else { + c[i] = 0; + } + } + //printf("rho out s = ");display_vector(s,16); + //printf("rho out c = ");display_vector(c,16); + +} + +void irho (unsigned char* m, + const unsigned char* c, + unsigned char* s, + int len8, + int ver) { + int i; + unsigned char cp [16]; + + //printf("irho in c = ");display_vector(c,len8); + pad(c,cp,ver,len8); + //printf("irho in cp = ");display_vector(cp,16); + //printf("irho in s = ");display_vector(s,16); + + g8A(s,m); + for (i = 0; i < ver; i++) { + if (i < len8) { + s[i] = s[i] ^ cp[i] ^ m[i]; + } + else { + s[i] = s[i] ^ cp[i]; + } + if (i < len8) { + m[i] = m[i] ^ cp[i]; + } + else { + m[i] = 0; + } + } + //printf("irho out s = ");display_vector(s,16); + //printf("irho out m = ");display_vector(c,16); + +} + +void reset_lfsr_gf24 (unsigned char* CNT) { + CNT[0] = 0x01; + CNT[1] = 0x00; + CNT[2] = 0x00; +} + +void lfsr_gf24 (unsigned char* CNT) { + unsigned char fb0; + + fb0 = CNT[2] >> 7; + + CNT[2] = (CNT[2] << 1) | (CNT[1] >> 7); + CNT[1] = (CNT[1] << 1) | (CNT[0] >> 7); + if (fb0 == 1) { + CNT[0] = (CNT[0] << 1) ^ 0x1b; + } + else { + CNT[0] = (CNT[0] << 1); + } +} + +void reset_dual_lfsr (unsigned char* CNT) { + reset_lfsr_gf24 (CNT); + reset_lfsr_gf24 (CNT+3); +} + +void dual_lfsr (unsigned char* CNT) { + lfsr_gf24(CNT); + if (CNT[0] == 0x01) { + if (CNT[1] == 0x00) { + if (CNT[2] == 0x00) { + lfsr_gf24(CNT+3); + } + } + } +} + +void compose_tweakey (unsigned char* KT, + const unsigned char* K, + unsigned char* T, + unsigned char* CNT, + unsigned char D, + int t) { + + int i; + + for (i = 0; i < 3; i++) { + KT[i] = CNT[i]; + } + KT[i] = D; + for (i = 0; i < t; i++) { + KT[i+4] = T[i]; + } + for (i = 0; i < 16; i++) { + KT[i+4+t] = K[i]; + } + for (i = 0; i < 3; i++) { + KT[i+4+t+16] = CNT[i+3]; + } + for (i = 0; i < 13; i++) { + KT[i+4+t+16+3] = 0x00; + } + +} + +void block_cipher(unsigned char* s, + const unsigned char* k, unsigned char* T, + unsigned char* CNT, unsigned char D, int t, int n) { + unsigned char KT [48]; + + (void) n; + compose_tweakey(KT,k,T,CNT,D,t); + //printf("BC in kt = ");display_vector(KT,3*n); + //printf("BC in s = ");display_vector(s,n); + skinny_128_384_enc (s,KT); + //printf("BC out s = ");display_vector(s,n); + +} + +void nonce_encryption (const unsigned char* N, + unsigned char* CNT, + unsigned char*s, const unsigned char* k, + int t, int n, unsigned char D) { + unsigned char T [16]; + int i; + + for (i = 0; i < t; i++) { + T[i] = N[i]; + } + //printf("nonce cnt = ");display_vector(CNT,6); + block_cipher(s,k,T,CNT,D,t,n); + +} + +void generate_tag (unsigned char** c, unsigned char* s, + int n, unsigned long long* clen) { + + g8A(s, *c); + *c = *c + n; + *c = *c - *clen; + +} + +unsigned long long msg_encryption (const unsigned char** M, unsigned char** c, + const unsigned char* N, + unsigned char* CNT, + unsigned char*s, const unsigned char* k, + unsigned int n, unsigned int t, unsigned char D, + unsigned long long mlen) { + int len8; + + + if (mlen >= n) { + len8 = n; + mlen = mlen - n; + } + else { + len8 = mlen; + mlen = 0; + } + rho(*M, *c, s, len8, n); + *c = *c + len8; + *M = *M + len8; + dual_lfsr(CNT); + nonce_encryption(N,CNT,s,k,t,n,D); + return mlen; +} + + + +unsigned long long msg_decryption (unsigned char** M, const unsigned char** c, + const unsigned char* N, + unsigned char* CNT, + unsigned char*s, const unsigned char* k, + unsigned int n, unsigned int t, unsigned char D, + unsigned long long clen) { + int len8; + + if (clen >= n) { + len8 = n; + clen = clen - n; + } + else { + len8 = clen; + clen = 0; + } + irho(*M, *c, s, len8, n); + *c = *c + len8; + *M = *M + len8; + dual_lfsr(CNT); + nonce_encryption(N,CNT,s,k,t,n,D); + return clen; +} + +unsigned long long ad_encryption (const unsigned char** A, unsigned char* s, + const unsigned char* k, unsigned long long adlen, + unsigned char* CNT, + unsigned char D, + unsigned int n, unsigned int t) { + + unsigned char T [16]; + int len8; + + if (adlen >= n) { + len8 = n; + adlen = adlen - n; + } + else { + len8 = adlen; + adlen = 0; + } + //printf("AD in = ");display_vector(*A,len8); + rho_ad(*A, s, len8, n); + *A = *A + len8; + dual_lfsr(CNT); + //printf("AD cnt = ");display_vector(CNT,6); + if (adlen != 0) { + if (adlen >= t) { + len8 = t; + adlen = adlen - t; + } + else { + len8 = adlen; + adlen = 0; + } + pad(*A, T, t, len8); + *A = *A + len8; + block_cipher(s,k,T,CNT,D,t,n); + dual_lfsr(CNT); + } + + return adlen; +} + +int crypto_aead_encrypt ( + unsigned char* c, unsigned long long* clen, + const unsigned char* m, unsigned long long mlen, + const unsigned char* ad, unsigned long long adlen, + const unsigned char* nsec, + const unsigned char* npub, + const unsigned char* k + ) +{ + unsigned char s[16]; + unsigned char CNT[7]; + const unsigned char* A; + const unsigned char* M; + const unsigned char* N; + unsigned int n, t, i; + + (void)nsec; + A = ad; + M = m; + N = npub; + + n = AD_BLK_LEN_ODD; + t = AD_BLK_LEN_EVN; + + for (i = 0; i < n; i++) { + s[i] = 0; + } + reset_dual_lfsr(CNT); + //printf("s = ");display_vector(s,16); + //printf("cnt = ");display_vector(CNT,6); + + if (adlen == 0) { // AD is an empty string + dual_lfsr(CNT); + nonce_encryption(N,CNT,s,k,t,n,0x5a); + } + else while (adlen > 0) { + if (adlen < n) { // The last block of AD is odd and incomplete + adlen = ad_encryption(&A,s,k,adlen,CNT,0x48,n,t); + nonce_encryption(N,CNT,s,k,t,n,0x5a); + } + else if (adlen == n) { // The last block of AD is odd and complete + adlen = ad_encryption(&A,s,k,adlen,CNT,0x48,n,t); + nonce_encryption(N,CNT,s,k,t,n,0x58); + } + else if (adlen < (n+t)) { // The last block of AD is even and incomplete + adlen = ad_encryption(&A,s,k,adlen,CNT,0x48,n,t); + nonce_encryption(N,CNT,s,k,t,n,0x5a); + } + else if (adlen == (n+t)) { // The last block of AD is even and complete + adlen = ad_encryption(&A,s,k,adlen,CNT,0x48,n,t); + nonce_encryption(N,CNT,s,k,t,n,0x58); + } + else { // A normal full pair of blocks of AD + adlen = ad_encryption(&A,s,k,adlen,CNT,0x48,n,t); + } + } + + reset_dual_lfsr(CNT); + + n = MSG_BLK_LEN; + *clen = mlen + n; + + if (mlen == 0) { // M is an empty string + dual_lfsr(CNT); + nonce_encryption(N,CNT,s,k,t,n,0x55); + } + else while (mlen > 0) { + if (mlen < n) { // The last block of M is incomplete + mlen = msg_encryption(&M,&c,N,CNT,s,k,n,t,0x55,mlen); + } + else if (mlen == n) { // The last block of M is complete + mlen = msg_encryption(&M,&c,N,CNT,s,k,n,t,0x54,mlen); + } + else { // A normal full message block + mlen = msg_encryption(&M,&c,N,CNT,s,k,n,t,0x44,mlen); + } + } + + // Tag generation + generate_tag(&c,s,n,clen); + //printf("T = ");display_vector(c+*clen-n,n); + + + return 0; +} + +int crypto_aead_decrypt( +unsigned char *m,unsigned long long *mlen, +unsigned char *nsec, +const unsigned char *c,unsigned long long clen, +const unsigned char *ad,unsigned long long adlen, +const unsigned char *npub, +const unsigned char *k +) +{ + + unsigned char s[16]; + unsigned char T[16]; + unsigned char CNT[6]; + const unsigned char* A; + unsigned char* M; + const unsigned char* N; + unsigned int n, t, i; + + (void)nsec; + A = ad; + M = m; + N = npub; + + n = AD_BLK_LEN_ODD; + t = AD_BLK_LEN_EVN; + + for (i = 0; i < n; i++) { + s[i] = 0; + } + reset_dual_lfsr(CNT); + //printf("s = ");display_vector(s,16); + //printf("cnt = ");display_vector(CNT,6); + + if (adlen == 0) { // AD is an empty string + dual_lfsr(CNT); + nonce_encryption(N,CNT,s,k,t,n,0x5a); + } + else while (adlen > 0) { + if (adlen < n) { // The last block of AD is odd and incomplete + adlen = ad_encryption(&A,s,k,adlen,CNT,0x48,n,t); + nonce_encryption(N,CNT,s,k,t,n,0x5a); + } + else if (adlen == n) { // The last block of AD is odd and complete + adlen = ad_encryption(&A,s,k,adlen,CNT,0x48,n,t); + nonce_encryption(N,CNT,s,k,t,n,0x58); + } + else if (adlen < (n+t)) { // The last block of AD is even and incomplete + adlen = ad_encryption(&A,s,k,adlen,CNT,0x48,n,t); + nonce_encryption(N,CNT,s,k,t,n,0x5a); + } + else if (adlen == (n+t)) { // The last block of AD is even and complete + adlen = ad_encryption(&A,s,k,adlen,CNT,0x48,n,t); + nonce_encryption(N,CNT,s,k,t,n,0x58); + } + else { // A normal full pair of blocks of AD + adlen = ad_encryption(&A,s,k,adlen,CNT,0x48,n,t); + } + } + + reset_dual_lfsr(CNT); + + n = MSG_BLK_LEN; + + clen = clen - n; + *mlen = clen; + + if (clen == 0) { // C is an empty string + dual_lfsr(CNT); + nonce_encryption(N,CNT,s,k,t,n,0x55); + } + else while (clen > 0) { + if (clen < n) { // The last block of C is incomplete + clen = msg_decryption(&M,&c,N,CNT,s,k,n,t,0x55,clen); + } + else if (clen == n) { // The last block of C is complete + clen = msg_decryption(&M,&c,N,CNT,s,k,n,t,0x54,clen); + } + else { // A normal full message block + clen = msg_decryption(&M,&c,N,CNT,s,k,n,t,0x44,clen); + } + } + + + // Tag generation + g8A(s, T); + //printf("T = ");display_vector(T,n); + for (i = 0; i < 16; i++) { + if (T[i] != (*(c+i))) { + return -1; + } + } + + return 0; + +} + + diff --git a/romulus/Implementations/crypto_aead/romulusn2/ref/genkat_aead.c b/romulus/Implementations/crypto_aead/romulusn2/ref/genkat_aead.c new file mode 100644 index 0000000..9727b0b --- /dev/null +++ b/romulus/Implementations/crypto_aead/romulusn2/ref/genkat_aead.c @@ -0,0 +1,162 @@ +// +// NIST-developed software is provided by NIST as a public service. +// You may use, copy and distribute copies of the software in any medium, +// provided that you keep intact this entire notice. You may improve, +// modify and create derivative works of the software or any portion of +// the software, and you may copy and distribute such modifications or +// works. Modified works should carry a notice stating that you changed +// the software and should note the date and nature of any such change. +// Please explicitly acknowledge the National Institute of Standards and +// Technology as the source of the software. +// +// NIST-developed software is expressly provided "AS IS." NIST MAKES NO +// WARRANTY OF ANY KIND, EXPRESS, IMPLIED, IN FACT OR ARISING BY OPERATION +// OF LAW, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTY OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT AND DATA ACCURACY. NIST +// NEITHER REPRESENTS NOR WARRANTS THAT THE OPERATION OF THE SOFTWARE WILL BE +// UNINTERRUPTED OR ERROR-FREE, OR THAT ANY DEFECTS WILL BE CORRECTED. NIST +// DOES NOT WARRANT OR MAKE ANY REPRESENTATIONS REGARDING THE USE OF THE SOFTWARE +// OR THE RESULTS THEREOF, INCLUDING BUT NOT LIMITED TO THE CORRECTNESS, ACCURACY, +// RELIABILITY, OR USEFULNESS OF THE SOFTWARE. +// +// You are solely responsible for determining the appropriateness of using and +// distributing the software and you assume all risks associated with its use, +// including but not limited to the risks and costs of program errors, compliance +// with applicable laws, damage to or loss of data, programs or equipment, and +// the unavailability or interruption of operation. This software is not intended +// to be used in any situation where a failure could cause risk of injury or +// damage to property. The software developed by NIST employees is not subject to +// copyright protection within the United States. +// + +// disable deprecation for sprintf and fopen +#ifdef _MSC_VER +#define _CRT_SECURE_NO_WARNINGS +#endif + +#include +#include + +#include "crypto_aead.h" +#include "api.h" + +#define KAT_SUCCESS 0 +#define KAT_FILE_OPEN_ERROR -1 +#define KAT_DATA_ERROR -3 +#define KAT_CRYPTO_FAILURE -4 + +#define MAX_FILE_NAME 256 +#define MAX_MESSAGE_LENGTH 32 +#define MAX_ASSOCIATED_DATA_LENGTH 32 + +void init_buffer(unsigned char *buffer, unsigned long long numbytes); + +void fprint_bstr(FILE *fp, const char *label, const unsigned char *data, unsigned long long length); + +int generate_test_vectors(); + +int main() +{ + int ret = generate_test_vectors(); + + if (ret != KAT_SUCCESS) { + fprintf(stderr, "test vector generation failed with code %d\n", ret); + } + + return ret; +} + +int generate_test_vectors() +{ + FILE *fp; + char fileName[MAX_FILE_NAME]; + unsigned char key[CRYPTO_KEYBYTES]; + unsigned char nonce[CRYPTO_NPUBBYTES]; + unsigned char msg[MAX_MESSAGE_LENGTH]; + unsigned char msg2[MAX_MESSAGE_LENGTH]; + unsigned char ad[MAX_ASSOCIATED_DATA_LENGTH]; + unsigned char ct[MAX_MESSAGE_LENGTH + CRYPTO_ABYTES]; + unsigned long long clen, mlen2; + int count = 1; + int func_ret, ret_val = KAT_SUCCESS; + + init_buffer(key, sizeof(key)); + init_buffer(nonce, sizeof(nonce)); + init_buffer(msg, sizeof(msg)); + init_buffer(ad, sizeof(ad)); + + sprintf(fileName, "LWC_AEAD_KAT_%d_%d.txt", (CRYPTO_KEYBYTES * 8), (CRYPTO_NPUBBYTES * 8)); + + if ((fp = fopen(fileName, "w")) == NULL) { + fprintf(stderr, "Couldn't open <%s> for write\n", fileName); + return KAT_FILE_OPEN_ERROR; + } + + for (unsigned long long mlen = 0; (mlen <= MAX_MESSAGE_LENGTH) && (ret_val == KAT_SUCCESS); mlen++) { + //for (unsigned long long mlen = 0; (mlen <= 0) && (ret_val == KAT_SUCCESS); mlen++) { + for (unsigned long long adlen = 0; adlen <= MAX_ASSOCIATED_DATA_LENGTH; adlen++) { + //for (unsigned long long adlen = 0; adlen <= 1; adlen++) { + + printf("%0d\n", (int)clen); + + fprintf(fp, "Count = %d\n", count++); + + fprint_bstr(fp, "Key = ", key, CRYPTO_KEYBYTES); + + fprint_bstr(fp, "Nonce = ", nonce, CRYPTO_NPUBBYTES); + + fprint_bstr(fp, "PT = ", msg, mlen); + + fprint_bstr(fp, "AD = ", ad, adlen); + + if ((func_ret = crypto_aead_encrypt(ct, &clen, msg, mlen, ad, adlen, NULL, nonce, key)) != 0) { + fprintf(fp, "crypto_aead_encrypt returned <%d>\n", func_ret); + ret_val = KAT_CRYPTO_FAILURE; + break; + } + + fprint_bstr(fp, "CT = ", ct, clen); + + fprintf(fp, "\n"); + + if ((func_ret = crypto_aead_decrypt(msg2, &mlen2, NULL, ct, clen, ad, adlen, nonce, key)) != 0) { + fprintf(fp, "crypto_aead_decrypt returned <%d>\n", func_ret); + ret_val = KAT_CRYPTO_FAILURE; + break; + } + + if (mlen != mlen2) { + fprintf(fp, "crypto_aead_decrypt returned bad 'mlen': Got <%llu>, expected <%llu>\n", mlen2, mlen); + ret_val = KAT_CRYPTO_FAILURE; + break; + } + + if (memcmp(msg, msg2, mlen)) { + fprintf(fp, "crypto_aead_decrypt did not recover the plaintext\n"); + ret_val = KAT_CRYPTO_FAILURE; + break; + } + } + } + + fclose(fp); + + return ret_val; +} + + +void fprint_bstr(FILE *fp, const char *label, const unsigned char *data, unsigned long long length) +{ + fprintf(fp, "%s", label); + + for (unsigned long long i = 0; i < length; i++) + fprintf(fp, "%02X", data[i]); + + fprintf(fp, "\n"); +} + +void init_buffer(unsigned char *buffer, unsigned long long numbytes) +{ + for (unsigned long long i = 0; i < numbytes; i++) + buffer[i] = (unsigned char)i; +} diff --git a/romulus/Implementations/crypto_aead/romulusn2/ref/skinny.h b/romulus/Implementations/crypto_aead/romulusn2/ref/skinny.h new file mode 100644 index 0000000..70c4421 --- /dev/null +++ b/romulus/Implementations/crypto_aead/romulusn2/ref/skinny.h @@ -0,0 +1 @@ +extern void skinny_128_384_enc (unsigned char* input, const unsigned char* userkey); diff --git a/romulus/Implementations/crypto_aead/romulusn2/ref/skinny_reference.c b/romulus/Implementations/crypto_aead/romulusn2/ref/skinny_reference.c new file mode 100644 index 0000000..ec59a31 --- /dev/null +++ b/romulus/Implementations/crypto_aead/romulusn2/ref/skinny_reference.c @@ -0,0 +1,547 @@ +/* + * Date: 11 December 2015 + * Contact: Thomas Peyrin - thomas.peyrin@gmail.com + */ + +#include +#include +#include +#include +#include "skinny.h" + +#define DEBUG 0 + +// Table that encodes the parameters of the various Skinny versions: +// (block size, key size, number of rounds) +//Skinny-64-64: 32 rounds +//Skinny-64-128: 36 rounds +//Skinny-64-192: 40 rounds +//Skinny-128-128: 40 rounds +//Skinny-128-256: 48 rounds +//Skinny-128-384: 56 rounds +int versions[6][3]={{64,64,32},{64,128,36},{64,192,40},{128,128,40},{128,256,48},{128,384,56}}; + +// Packing of data is done as follows (state[i][j] stands for row i and column j): +// 0 1 2 3 +// 4 5 6 7 +// 8 9 10 11 +//12 13 14 15 + +// 4-bit Sbox +const unsigned char sbox_4[16] = {12,6,9,0,1,10,2,11,3,8,5,13,4,14,7,15}; +const unsigned char sbox_4_inv[16] = {3,4,6,8,12,10,1,14,9,2,5,7,0,11,13,15}; + +// 8-bit Sbox +const unsigned char sbox_8[256] = {0x65 , 0x4c , 0x6a , 0x42 , 0x4b , 0x63 , 0x43 , 0x6b , 0x55 , 0x75 , 0x5a , 0x7a , 0x53 , 0x73 , 0x5b , 0x7b ,0x35 , 0x8c , 0x3a , 0x81 , 0x89 , 0x33 , 0x80 , 0x3b , 0x95 , 0x25 , 0x98 , 0x2a , 0x90 , 0x23 , 0x99 , 0x2b ,0xe5 , 0xcc , 0xe8 , 0xc1 , 0xc9 , 0xe0 , 0xc0 , 0xe9 , 0xd5 , 0xf5 , 0xd8 , 0xf8 , 0xd0 , 0xf0 , 0xd9 , 0xf9 ,0xa5 , 0x1c , 0xa8 , 0x12 , 0x1b , 0xa0 , 0x13 , 0xa9 , 0x05 , 0xb5 , 0x0a , 0xb8 , 0x03 , 0xb0 , 0x0b , 0xb9 ,0x32 , 0x88 , 0x3c , 0x85 , 0x8d , 0x34 , 0x84 , 0x3d , 0x91 , 0x22 , 0x9c , 0x2c , 0x94 , 0x24 , 0x9d , 0x2d ,0x62 , 0x4a , 0x6c , 0x45 , 0x4d , 0x64 , 0x44 , 0x6d , 0x52 , 0x72 , 0x5c , 0x7c , 0x54 , 0x74 , 0x5d , 0x7d ,0xa1 , 0x1a , 0xac , 0x15 , 0x1d , 0xa4 , 0x14 , 0xad , 0x02 , 0xb1 , 0x0c , 0xbc , 0x04 , 0xb4 , 0x0d , 0xbd ,0xe1 , 0xc8 , 0xec , 0xc5 , 0xcd , 0xe4 , 0xc4 , 0xed , 0xd1 , 0xf1 , 0xdc , 0xfc , 0xd4 , 0xf4 , 0xdd , 0xfd ,0x36 , 0x8e , 0x38 , 0x82 , 0x8b , 0x30 , 0x83 , 0x39 , 0x96 , 0x26 , 0x9a , 0x28 , 0x93 , 0x20 , 0x9b , 0x29 ,0x66 , 0x4e , 0x68 , 0x41 , 0x49 , 0x60 , 0x40 , 0x69 , 0x56 , 0x76 , 0x58 , 0x78 , 0x50 , 0x70 , 0x59 , 0x79 ,0xa6 , 0x1e , 0xaa , 0x11 , 0x19 , 0xa3 , 0x10 , 0xab , 0x06 , 0xb6 , 0x08 , 0xba , 0x00 , 0xb3 , 0x09 , 0xbb ,0xe6 , 0xce , 0xea , 0xc2 , 0xcb , 0xe3 , 0xc3 , 0xeb , 0xd6 , 0xf6 , 0xda , 0xfa , 0xd3 , 0xf3 , 0xdb , 0xfb ,0x31 , 0x8a , 0x3e , 0x86 , 0x8f , 0x37 , 0x87 , 0x3f , 0x92 , 0x21 , 0x9e , 0x2e , 0x97 , 0x27 , 0x9f , 0x2f ,0x61 , 0x48 , 0x6e , 0x46 , 0x4f , 0x67 , 0x47 , 0x6f , 0x51 , 0x71 , 0x5e , 0x7e , 0x57 , 0x77 , 0x5f , 0x7f ,0xa2 , 0x18 , 0xae , 0x16 , 0x1f , 0xa7 , 0x17 , 0xaf , 0x01 , 0xb2 , 0x0e , 0xbe , 0x07 , 0xb7 , 0x0f , 0xbf ,0xe2 , 0xca , 0xee , 0xc6 , 0xcf ,0xe7 , 0xc7 , 0xef , 0xd2 , 0xf2 , 0xde , 0xfe , 0xd7 , 0xf7 , 0xdf , 0xff}; +const unsigned char sbox_8_inv[256] = {0xac , 0xe8 , 0x68 , 0x3c , 0x6c , 0x38 , 0xa8 , 0xec , 0xaa , 0xae , 0x3a , 0x3e , 0x6a , 0x6e , 0xea , 0xee ,0xa6 , 0xa3 , 0x33 , 0x36 , 0x66 , 0x63 , 0xe3 , 0xe6 , 0xe1 , 0xa4 , 0x61 , 0x34 , 0x31 , 0x64 , 0xa1 , 0xe4 ,0x8d , 0xc9 , 0x49 , 0x1d , 0x4d , 0x19 , 0x89 , 0xcd , 0x8b , 0x8f , 0x1b , 0x1f , 0x4b , 0x4f , 0xcb , 0xcf ,0x85 , 0xc0 , 0x40 , 0x15 , 0x45 , 0x10 , 0x80 , 0xc5 , 0x82 , 0x87 , 0x12 , 0x17 , 0x42 , 0x47 , 0xc2 , 0xc7 ,0x96 , 0x93 , 0x03 , 0x06 , 0x56 , 0x53 , 0xd3 , 0xd6 , 0xd1 , 0x94 , 0x51 , 0x04 , 0x01 , 0x54 , 0x91 , 0xd4 ,0x9c , 0xd8 , 0x58 , 0x0c , 0x5c , 0x08 , 0x98 , 0xdc , 0x9a , 0x9e , 0x0a , 0x0e , 0x5a , 0x5e , 0xda , 0xde ,0x95 , 0xd0 , 0x50 , 0x05 , 0x55 , 0x00 , 0x90 , 0xd5 , 0x92 , 0x97 , 0x02 , 0x07 , 0x52 , 0x57 , 0xd2 , 0xd7 ,0x9d , 0xd9 , 0x59 , 0x0d , 0x5d , 0x09 , 0x99 , 0xdd , 0x9b , 0x9f , 0x0b , 0x0f , 0x5b , 0x5f , 0xdb , 0xdf ,0x16 , 0x13 , 0x83 , 0x86 , 0x46 , 0x43 , 0xc3 , 0xc6 , 0x41 , 0x14 , 0xc1 , 0x84 , 0x11 , 0x44 , 0x81 , 0xc4 ,0x1c , 0x48 , 0xc8 , 0x8c , 0x4c , 0x18 , 0x88 , 0xcc , 0x1a , 0x1e , 0x8a , 0x8e , 0x4a , 0x4e , 0xca , 0xce ,0x35 , 0x60 , 0xe0 , 0xa5 , 0x65 , 0x30 , 0xa0 , 0xe5 , 0x32 , 0x37 , 0xa2 , 0xa7 , 0x62 , 0x67 , 0xe2 , 0xe7 ,0x3d , 0x69 , 0xe9 , 0xad , 0x6d , 0x39 , 0xa9 , 0xed , 0x3b , 0x3f , 0xab , 0xaf , 0x6b , 0x6f , 0xeb , 0xef ,0x26 , 0x23 , 0xb3 , 0xb6 , 0x76 , 0x73 , 0xf3 , 0xf6 , 0x71 , 0x24 , 0xf1 , 0xb4 , 0x21 , 0x74 , 0xb1 , 0xf4 ,0x2c , 0x78 , 0xf8 , 0xbc , 0x7c , 0x28 , 0xb8 , 0xfc , 0x2a , 0x2e , 0xba , 0xbe , 0x7a , 0x7e , 0xfa , 0xfe ,0x25 , 0x70 , 0xf0 , 0xb5 , 0x75 , 0x20 , 0xb0 , 0xf5 , 0x22 , 0x27 , 0xb2 , 0xb7 , 0x72 , 0x77 , 0xf2 , 0xf7 ,0x2d , 0x79 , 0xf9 , 0xbd , 0x7d , 0x29 , 0xb9 , 0xfd , 0x2b , 0x2f , 0xbb , 0xbf , 0x7b , 0x7f , 0xfb , 0xff}; + +// ShiftAndSwitchRows permutation +const unsigned char P[16] = {0,1,2,3,7,4,5,6,10,11,8,9,13,14,15,12}; +const unsigned char P_inv[16] = {0,1,2,3,5,6,7,4,10,11,8,9,15,12,13,14}; + +// Tweakey permutation +const unsigned char TWEAKEY_P[16] = {9,15,8,13,10,14,12,11,0,1,2,3,4,5,6,7}; +const unsigned char TWEAKEY_P_inv[16] = {8,9,10,11,12,13,14,15,2,0,4,7,6,3,5,1}; + +// round constants +const unsigned char RC[62] = { + 0x01, 0x03, 0x07, 0x0F, 0x1F, 0x3E, 0x3D, 0x3B, 0x37, 0x2F, + 0x1E, 0x3C, 0x39, 0x33, 0x27, 0x0E, 0x1D, 0x3A, 0x35, 0x2B, + 0x16, 0x2C, 0x18, 0x30, 0x21, 0x02, 0x05, 0x0B, 0x17, 0x2E, + 0x1C, 0x38, 0x31, 0x23, 0x06, 0x0D, 0x1B, 0x36, 0x2D, 0x1A, + 0x34, 0x29, 0x12, 0x24, 0x08, 0x11, 0x22, 0x04, 0x09, 0x13, + 0x26, 0x0c, 0x19, 0x32, 0x25, 0x0a, 0x15, 0x2a, 0x14, 0x28, + 0x10, 0x20}; + +FILE* fic; + + +// Extract and apply the subtweakey to the internal state (must be the two top rows XORed together), then update the tweakey state +void AddKey(unsigned char state[4][4], unsigned char keyCells[3][4][4], int ver) +{ + int i, j, k; + unsigned char pos; + unsigned char keyCells_tmp[3][4][4]; + + // apply the subtweakey to the internal state + for(i = 0; i <= 1; i++) + { + for(j = 0; j < 4; j++) + { + state[i][j] ^= keyCells[0][i][j]; + if (2*versions[ver][0]==versions[ver][1]) + state[i][j] ^= keyCells[1][i][j]; + else if (3*versions[ver][0]==versions[ver][1]) + state[i][j] ^= keyCells[1][i][j] ^ keyCells[2][i][j]; + } + } + + // update the subtweakey states with the permutation + for(k = 0; k <(int)(versions[ver][1]/versions[ver][0]); k++){ + for(i = 0; i < 4; i++){ + for(j = 0; j < 4; j++){ + //application of the TWEAKEY permutation + pos=TWEAKEY_P[j+4*i]; + keyCells_tmp[k][i][j]=keyCells[k][pos>>2][pos&0x3]; + } + } + } + + // update the subtweakey states with the LFSRs + for(k = 0; k <(int)(versions[ver][1]/versions[ver][0]); k++){ + for(i = 0; i <= 1; i++){ + for(j = 0; j < 4; j++){ + //application of LFSRs for TK updates + if (k==1) + { + if (versions[ver][0]==64) + keyCells_tmp[k][i][j]=((keyCells_tmp[k][i][j]<<1)&0xE)^((keyCells_tmp[k][i][j]>>3)&0x1)^((keyCells_tmp[k][i][j]>>2)&0x1); + else + keyCells_tmp[k][i][j]=((keyCells_tmp[k][i][j]<<1)&0xFE)^((keyCells_tmp[k][i][j]>>7)&0x01)^((keyCells_tmp[k][i][j]>>5)&0x01); + } + else if (k==2) + { + if (versions[ver][0]==64) + keyCells_tmp[k][i][j]=((keyCells_tmp[k][i][j]>>1)&0x7)^((keyCells_tmp[k][i][j])&0x8)^((keyCells_tmp[k][i][j]<<3)&0x8); + else + keyCells_tmp[k][i][j]=((keyCells_tmp[k][i][j]>>1)&0x7F)^((keyCells_tmp[k][i][j]<<7)&0x80)^((keyCells_tmp[k][i][j]<<1)&0x80); + } + } + } + } + + for(k = 0; k <(int)(versions[ver][1]/versions[ver][0]); k++){ + for(i = 0; i < 4; i++){ + for(j = 0; j < 4; j++){ + keyCells[k][i][j]=keyCells_tmp[k][i][j]; + } + } + } +} + + +// Extract and apply the subtweakey to the internal state (must be the two top rows XORed together), then update the tweakey state (inverse function} +void AddKey_inv(unsigned char state[4][4], unsigned char keyCells[3][4][4], int ver) +{ + int i, j, k; + unsigned char pos; + unsigned char keyCells_tmp[3][4][4]; + + // update the subtweakey states with the permutation + for(k = 0; k <(int)(versions[ver][1]/versions[ver][0]); k++){ + for(i = 0; i < 4; i++){ + for(j = 0; j < 4; j++){ + //application of the inverse TWEAKEY permutation + pos=TWEAKEY_P_inv[j+4*i]; + keyCells_tmp[k][i][j]=keyCells[k][pos>>2][pos&0x3]; + } + } + } + + // update the subtweakey states with the LFSRs + for(k = 0; k <(int)(versions[ver][1]/versions[ver][0]); k++){ + for(i = 2; i <= 3; i++){ + for(j = 0; j < 4; j++){ + //application of inverse LFSRs for TK updates + if (k==1) + { + if (versions[ver][0]==64) + keyCells_tmp[k][i][j]=((keyCells_tmp[k][i][j]>>1)&0x7)^((keyCells_tmp[k][i][j]<<3)&0x8)^((keyCells_tmp[k][i][j])&0x8); + else + keyCells_tmp[k][i][j]=((keyCells_tmp[k][i][j]>>1)&0x7F)^((keyCells_tmp[k][i][j]<<7)&0x80)^((keyCells_tmp[k][i][j]<<1)&0x80); + } + else if (k==2) + { + if (versions[ver][0]==64) + keyCells_tmp[k][i][j]=((keyCells_tmp[k][i][j]<<1)&0xE)^((keyCells_tmp[k][i][j]>>3)&0x1)^((keyCells_tmp[k][i][j]>>2)&0x1); + else + keyCells_tmp[k][i][j]=((keyCells_tmp[k][i][j]<<1)&0xFE)^((keyCells_tmp[k][i][j]>>7)&0x01)^((keyCells_tmp[k][i][j]>>5)&0x01); + } + } + } + } + + for(k = 0; k <(int)(versions[ver][1]/versions[ver][0]); k++){ + for(i = 0; i < 4; i++){ + for(j = 0; j < 4; j++){ + keyCells[k][i][j]=keyCells_tmp[k][i][j]; + } + } + } + + + // apply the subtweakey to the internal state + for(i = 0; i <= 1; i++) + { + for(j = 0; j < 4; j++) + { + state[i][j] ^= keyCells[0][i][j]; + if (2*versions[ver][0]==versions[ver][1]) + state[i][j] ^= keyCells[1][i][j]; + else if (3*versions[ver][0]==versions[ver][1]) + state[i][j] ^= keyCells[1][i][j] ^ keyCells[2][i][j]; + } + } +} + + +// Apply the constants: using a LFSR counter on 6 bits, we XOR the 6 bits to the first 6 bits of the internal state +void AddConstants(unsigned char state[4][4], int r) +{ + state[0][0] ^= (RC[r] & 0xf); + state[1][0] ^= ((RC[r]>>4) & 0x3); + state[2][0] ^= 0x2; +} + +// apply the 4-bit Sbox +void SubCell4(unsigned char state[4][4]) +{ + int i,j; + for(i = 0; i < 4; i++) + for(j = 0; j < 4; j++) + state[i][j] = sbox_4[state[i][j]]; +} + +// apply the 4-bit inverse Sbox +void SubCell4_inv(unsigned char state[4][4]) +{ + int i,j; + for(i = 0; i < 4; i++) + for(j = 0; j < 4; j++) + state[i][j] = sbox_4_inv[state[i][j]]; +} + +// apply the 8-bit Sbox +void SubCell8(unsigned char state[4][4]) +{ + int i,j; + for(i = 0; i < 4; i++) + for(j = 0; j < 4; j++) + state[i][j] = sbox_8[state[i][j]]; +} + +// apply the 8-bit inverse Sbox +void SubCell8_inv(unsigned char state[4][4]) +{ + int i,j; + for(i = 0; i < 4; i++) + for(j = 0; j < 4; j++) + state[i][j] = sbox_8_inv[state[i][j]]; +} + +// Apply the ShiftRows function +void ShiftRows(unsigned char state[4][4]) +{ + int i, j, pos; + + unsigned char state_tmp[4][4]; + for(i = 0; i < 4; i++) + { + for(j = 0; j < 4; j++) + { + //application of the ShiftRows permutation + pos=P[j+4*i]; + state_tmp[i][j]=state[pos>>2][pos&0x3]; + } + } + + for(i = 0; i < 4; i++) + { + for(j = 0; j < 4; j++) + { + state[i][j]=state_tmp[i][j]; + } + } +} + +// Apply the inverse ShiftRows function +void ShiftRows_inv(unsigned char state[4][4]) +{ + int i, j, pos; + + unsigned char state_tmp[4][4]; + for(i = 0; i < 4; i++) + { + for(j = 0; j < 4; j++) + { + //application of the inverse ShiftRows permutation + pos=P_inv[j+4*i]; + state_tmp[i][j]=state[pos>>2][pos&0x3]; + } + } + + for(i = 0; i < 4; i++) + { + for(j = 0; j < 4; j++) + { + state[i][j]=state_tmp[i][j]; + } + } +} + +// Apply the linear diffusion matrix +//M = +//1 0 1 1 +//1 0 0 0 +//0 1 1 0 +//1 0 1 0 +void MixColumn(unsigned char state[4][4]) +{ + int j; + unsigned char temp; + + for(j = 0; j < 4; j++){ + state[1][j]^=state[2][j]; + state[2][j]^=state[0][j]; + state[3][j]^=state[2][j]; + + temp=state[3][j]; + state[3][j]=state[2][j]; + state[2][j]=state[1][j]; + state[1][j]=state[0][j]; + state[0][j]=temp; + } +} + +// Apply the inverse linear diffusion matrix +void MixColumn_inv(unsigned char state[4][4]) +{ + int j; + unsigned char temp; + + for(j = 0; j < 4; j++){ + temp=state[3][j]; + state[3][j]=state[0][j]; + state[0][j]=state[1][j]; + state[1][j]=state[2][j]; + state[2][j]=temp; + + state[3][j]^=state[2][j]; + state[2][j]^=state[0][j]; + state[1][j]^=state[2][j]; + } +} + +// decryption function of Skinny +void dec(unsigned char* input, const unsigned char* userkey, int ver) +{ + unsigned char state[4][4]; + unsigned char dummy[4][4]={{0}}; + unsigned char keyCells[3][4][4]; + int i; + + memset(keyCells, 0, 48); + for(i = 0; i < 16; i++) { + if (versions[ver][0]==64){ + if(i&1) + { + state[i>>2][i&0x3] = input[i>>1]&0xF; + keyCells[0][i>>2][i&0x3] = userkey[i>>1]&0xF; + if (versions[ver][1]>=128) + keyCells[1][i>>2][i&0x3] = userkey[(i+16)>>1]&0xF; + if (versions[ver][1]>=192) + keyCells[2][i>>2][i&0x3] = userkey[(i+32)>>1]&0xF; + } + else + { + state[i>>2][i&0x3] = (input[i>>1]>>4)&0xF; + keyCells[0][i>>2][i&0x3] = (userkey[i>>1]>>4)&0xF; + if (versions[ver][1]>=128) + keyCells[1][i>>2][i&0x3] = (userkey[(i+16)>>1]>>4)&0xF; + if (versions[ver][1]>=192) + keyCells[2][i>>2][i&0x3] = (userkey[(i+32)>>1]>>4)&0xF; + } + } + else if (versions[ver][0]==128){ + state[i>>2][i&0x3] = input[i]&0xFF; + + keyCells[0][i>>2][i&0x3] = userkey[i]&0xFF; + if (versions[ver][1]>=256) + keyCells[1][i>>2][i&0x3] = userkey[i+16]&0xFF; + if (versions[ver][1]>=384) + keyCells[2][i>>2][i&0x3] = userkey[i+32]&0xFF; + } + } + + for(i = versions[ver][2]-1; i >=0 ; i--){ + AddKey(dummy, keyCells, ver); + } + + #ifdef DEBUG + //f//printf(fic,"DEC - initial state: ");display_cipher_state(state,keyCells,ver);//f//printf(fic,"\n"); + #endif + + for(i = versions[ver][2]-1; i >=0 ; i--){ + MixColumn_inv(state); + #ifdef DEBUG + //f//printf(fic,"DEC - round %.2i - after MixColumn_inv: ",i);display_cipher_state(state,keyCells,ver);//f//printf(fic,"\n"); + #endif + ShiftRows_inv(state); + #ifdef DEBUG + //f//printf(fic,"DEC - round %.2i - after ShiftRows_inv: ",i);display_cipher_state(state,keyCells,ver);//f//printf(fic,"\n"); + #endif + AddKey_inv(state, keyCells, ver); + #ifdef DEBUG + //f//printf(fic,"DEC - round %.2i - after AddKey_inv: ",i);display_cipher_state(state,keyCells,ver);//f//printf(fic,"\n"); + #endif + AddConstants(state, i); + #ifdef DEBUG + //f//printf(fic,"DEC - round %.2i - after AddConstants_inv: ",i);display_cipher_state(state,keyCells,ver);//f//printf(fic,"\n"); + #endif + if (versions[ver][0]==64) + SubCell4_inv(state); + else + SubCell8_inv(state); + #ifdef DEBUG + //f//printf(fic,"DEC - round %.2i - after SubCell_inv: ",i);display_cipher_state(state,keyCells,ver);//f//printf(fic,"\n"); + #endif + } + + #ifdef DEBUG + //f//printf(fic,"DEC - final state: ");display_cipher_state(state,keyCells,ver);//f//printf(fic,"\n"); + #endif + + if (versions[ver][0]==64) + { + for(i = 0; i < 8; i++) + input[i] = ((state[(2*i)>>2][(2*i)&0x3] & 0xF) << 4) | (state[(2*i+1)>>2][(2*i+1)&0x3] & 0xF); + } + else if (versions[ver][0]==128) + { + for(i = 0; i < 16; i++) + input[i] = state[i>>2][i&0x3] & 0xFF; + } +} + +// encryption function of Skinny +void enc(unsigned char* input, const unsigned char* userkey, int ver) +{ + unsigned char state[4][4]; + unsigned char keyCells[3][4][4]; + int i; + + memset(keyCells, 0, 48); + for(i = 0; i < 16; i++) { + if (versions[ver][0]==64){ + if(i&1) + { + state[i>>2][i&0x3] = input[i>>1]&0xF; + keyCells[0][i>>2][i&0x3] = userkey[i>>1]&0xF; + if (versions[ver][1]>=128) + keyCells[1][i>>2][i&0x3] = userkey[(i+16)>>1]&0xF; + if (versions[ver][1]>=192) + keyCells[2][i>>2][i&0x3] = userkey[(i+32)>>1]&0xF; + } + else + { + state[i>>2][i&0x3] = (input[i>>1]>>4)&0xF; + keyCells[0][i>>2][i&0x3] = (userkey[i>>1]>>4)&0xF; + if (versions[ver][1]>=128) + keyCells[1][i>>2][i&0x3] = (userkey[(i+16)>>1]>>4)&0xF; + if (versions[ver][1]>=192) + keyCells[2][i>>2][i&0x3] = (userkey[(i+32)>>1]>>4)&0xF; + } + } + else if (versions[ver][0]==128){ + state[i>>2][i&0x3] = input[i]&0xFF; + keyCells[0][i>>2][i&0x3] = userkey[i]&0xFF; + if (versions[ver][1]>=256) + keyCells[1][i>>2][i&0x3] = userkey[i+16]&0xFF; + if (versions[ver][1]>=384) + keyCells[2][i>>2][i&0x3] = userkey[i+32]&0xFF; + } + } + + #ifdef DEBUG + //printf("ENC - initial state: ");display_cipher_state(state,keyCells,ver);//printf("\n"); + #endif + for(i = 0; i < versions[ver][2]; i++){ + if (versions[ver][0]==64) + SubCell4(state); + else + SubCell8(state); + #ifdef DEBUG + //printf("ENC - round %.2i - after SubCell: ",i);display_cipher_state(state,keyCells,ver);//printf("\n"); + #endif + AddConstants(state, i); + #ifdef DEBUG + //printf("ENC - round %.2i - after AddConstants: ",i);display_cipher_state(state,keyCells,ver);//printf("\n"); + #endif + AddKey(state, keyCells, ver); + #ifdef DEBUG + //printf("ENC - round %.2i - after AddKey: ",i);display_cipher_state(state,keyCells,ver);//printf("\n"); + #endif + ShiftRows(state); + #ifdef DEBUG + //printf("ENC - round %.2i - after ShiftRows: ",i);display_cipher_state(state,keyCells,ver);//printf("\n"); + #endif + MixColumn(state); + #ifdef DEBUG + //printf("ENC - round %.2i - after MixColumn: ",i);display_cipher_state(state,keyCells,ver);//printf("\n"); + #endif + } //The last subtweakey should not be added + + #ifdef DEBUG + //printf("ENC - final state: ");display_cipher_state(state,keyCells,ver);//printf("\n"); + #endif + + if (versions[ver][0]==64) + { + for(i = 0; i < 8; i++) + input[i] = ((state[(2*i)>>2][(2*i)&0x3] & 0xF) << 4) | (state[(2*i+1)>>2][(2*i+1)&0x3] & 0xF); + } + else if (versions[ver][0]==128) + { + for(i = 0; i < 16; i++) + input[i] = state[i>>2][i&0x3] & 0xFF; + } +} + +void skinny_128_384_enc (unsigned char* input, const unsigned char* userkey) { + enc(input,userkey,5); +} + +// generate test vectors for all the versions of Skinny +void TestVectors(int ver) +{ + unsigned char p[16]; + unsigned char c[16]; + unsigned char k[48]; + int n; + + for(n = 1; n < 10; n++) + { + int i; + for(i = 0; i < (versions[ver][0]>>3); i++) c[i] = p[i] = rand() & 0xff; + for(i = 0; i < (versions[ver][1]>>3); i++) k[i] = rand() & 0xff; + //printf("TK = "); for(i = 0; i < (versions[ver][1]>>3); i++) //printf("%02x", k[i]); //printf("\n"); + //printf("P = "); for(i = 0; i < (versions[ver][0]>>3); i++) //printf("%02x", p[i]); //printf("\n"); + enc(c,k,ver); + //printf("C = "); for(i = 0; i < (versions[ver][0]>>3); i++) //printf("%02x", c[i]); //printf("\n"); + dec(c,k,ver); + //printf("P' = "); for(i = 0; i < (versions[ver][0]>>3); i++) //printf("%02x", c[i]); //printf("\n\n"); + } +} + +/* int main() { */ +/* unsigned int i; */ +/* char name[30]; */ + +/* srand((unsigned) time (NULL)); */ + +/* //test all versions of Skinny */ +/* for (i=0; i<(sizeof(versions)/sizeof(*versions));i++) */ +/* { */ +/* s//printf(name, "test_vectors_%i_%i.txt", versions[i][0], versions[i][1]); */ +/* fic=fopen(name,"w"); */ +/* //printf("\n\nSkinny-%i/%i: \n",versions[i][0],versions[i][1]); */ +/* TestVectors(i); */ +/* fclose(fic); */ +/* //printf("Generating test vectors for Skinny-%i/%i - saved in file test_vectors_%i_%i.txt \n",versions[i][0],versions[i][1],versions[i][0],versions[i][1]); */ +/* } */ + +/* return 0; */ +/* } */ + + + diff --git a/romulus/Implementations/crypto_aead/romulusn2/ref/variant.h b/romulus/Implementations/crypto_aead/romulusn2/ref/variant.h new file mode 100644 index 0000000..27e7705 --- /dev/null +++ b/romulus/Implementations/crypto_aead/romulusn2/ref/variant.h @@ -0,0 +1,3 @@ +#define MSG_BLK_LEN 16 +#define AD_BLK_LEN_ODD 16 +#define AD_BLK_LEN_EVN 12 diff --git a/romulus/Implementations/crypto_aead/romulusn2v12/LWC_AEAD_KAT_128_96.txt b/romulus/Implementations/crypto_aead/romulusn2v12/LWC_AEAD_KAT_128_96.txt deleted file mode 100644 index 2f55446..0000000 --- a/romulus/Implementations/crypto_aead/romulusn2v12/LWC_AEAD_KAT_128_96.txt +++ /dev/null @@ -1,7623 +0,0 @@ -Count = 1 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = -AD = -CT = C543F9D547B68FFCA08FABBD9983997E - -Count = 2 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = -AD = 00 -CT = 99F599A3361F11E971FFE9073EEC3344 - -Count = 3 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = -AD = 0001 -CT = 2B03E1BB97BB9AFBFFD84FC5FE6FCA01 - -Count = 4 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = -AD = 000102 -CT = 0DDC3A18751EDBCA0958EC8A3E8CF5CB - -Count = 5 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = -AD = 00010203 -CT = 0D68612ED24E72A508F61F1343F4DBB7 - -Count = 6 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = -AD = 0001020304 -CT = 57C5D787455A51D8AB836A985ED05F0C - -Count = 7 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = -AD = 000102030405 -CT = 4ACFE2DA8FF158B91F59BEA9BB219115 - -Count = 8 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = -AD = 00010203040506 -CT = A17547546D9A5D704108288FC22C9992 - -Count = 9 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = -AD = 0001020304050607 -CT = 6E8FF6DD9E92436D0FDC7732635CEE97 - -Count = 10 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = -AD = 000102030405060708 -CT = FE0D8754DA146FFEDF1CAF77FF7A01D3 - -Count = 11 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = -AD = 00010203040506070809 -CT = DA906645C5BBF0FF894604C6F384437D - -Count = 12 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = -AD = 000102030405060708090A -CT = 6A451C42CA8239BD25BFF9B41B05EB1E - -Count = 13 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = -AD = 000102030405060708090A0B -CT = 96B3D55B8386B1789A198D84B80FEA63 - -Count = 14 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = -AD = 000102030405060708090A0B0C -CT = 3E358F70CF0C24C1AA10BE62D374771D - -Count = 15 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = -AD = 000102030405060708090A0B0C0D -CT = 079B85B78B0D9B7B3F82C05A0D38F478 - -Count = 16 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = -AD = 000102030405060708090A0B0C0D0E -CT = 8DCDEE8F83AB434A1DF7629B759D3DD2 - -Count = 17 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = -AD = 000102030405060708090A0B0C0D0E0F -CT = 619D4B54B8DA2C164D19B20A6AA22B62 - -Count = 18 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 05DFC578A15D27F4FE8E0DD3D2ED7640 - -Count = 19 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = E18E486A598A521309A96F0A610CD65D - -Count = 20 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = DBD35CCF9823385A085F263654055BDC - -Count = 21 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 91B4DF856EC2330A6BE249F2E261875B - -Count = 22 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = 9EBDEC1724DC2100F7DABB1B12E14595 - -Count = 23 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = 2D3F55B5BF7ACBAE0ED40DD8720D7DA1 - -Count = 24 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 1C55DA577512A77984EE60C6915797E2 - -Count = 25 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = 9478877A1C29F986B4EB8A2F50CD1496 - -Count = 26 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 2BB4F1FB6E7CE907E6219B82DEE13806 - -Count = 27 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = A07EC49E3230F61C7034DD7C107F7165 - -Count = 28 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = C2FFB276FF8312F0835D26DCC37CB1D4 - -Count = 29 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 4DFC61D2650F0A5726A42E9C94910917 - -Count = 30 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = 948556EFE394D60581EFBDB61706EA03 - -Count = 31 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 1A29D67F8805A68F77FB8B3B5CDD8C4B - -Count = 32 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = 0022E10AFDBAB85DA2743E0B1F570511 - -Count = 33 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 78D90E0F6B106712C708C5BC415AE098 - -Count = 34 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00 -AD = -CT = BCB8819AFBD5C3B118B254EC1446FAB366 - -Count = 35 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00 -AD = 00 -CT = B1EFC7AAF6ACFD436F8B330B0388251E10 - -Count = 36 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00 -AD = 0001 -CT = FD338B27F24E85D9AD4EF503E619C84715 - -Count = 37 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00 -AD = 000102 -CT = A26652548EDCF21972A7FCCA4DA366D767 - -Count = 38 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00 -AD = 00010203 -CT = 3E07CC440CABD8CED4DAF5D5C5D537F58C - -Count = 39 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00 -AD = 0001020304 -CT = 7E8DEC3790DD8BDE0194A5684A63C7572D - -Count = 40 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00 -AD = 000102030405 -CT = 1A60A320769BD5AD2AC37576E9956DF32B - -Count = 41 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00 -AD = 00010203040506 -CT = 1FF2E69469BF0EAB606B543D3B729FB301 - -Count = 42 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00 -AD = 0001020304050607 -CT = 86482F44AFB20E21A1262E47A2AEC28119 - -Count = 43 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00 -AD = 000102030405060708 -CT = 587872CD5F085E54247EBA2A35CB23C751 - -Count = 44 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00 -AD = 00010203040506070809 -CT = 6B0CA14D0ACD0D9872DAAD15AAC62DF31D - -Count = 45 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00 -AD = 000102030405060708090A -CT = 5B73CD55FECFB020AB115CFB8AEC718B6A - -Count = 46 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00 -AD = 000102030405060708090A0B -CT = FE6BA807BE8BB04ED5682A80AA36BAD6E2 - -Count = 47 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00 -AD = 000102030405060708090A0B0C -CT = 02C5D6A3FD7E5F363094385E8BD9C2BF76 - -Count = 48 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00 -AD = 000102030405060708090A0B0C0D -CT = 6880361FD028535C5EA869D6EA1CBF807D - -Count = 49 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00 -AD = 000102030405060708090A0B0C0D0E -CT = E4F367AB177AA08FCB5C0C62DC7618BA3C - -Count = 50 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00 -AD = 000102030405060708090A0B0C0D0E0F -CT = DF8F16E138DB369E723175688C1EF3501B - -Count = 51 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 5402EED71BB123E0D039DEF19421CEFE44 - -Count = 52 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 3664359A97C225EDBBB809ED5A9A01166E - -Count = 53 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = C1F9B5D101871F391C33969BEFA8939E6D - -Count = 54 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 014D2721412ABE4E859A33212572F7379A - -Count = 55 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = FB19AC89185C63BB711395076B4A938AFA - -Count = 56 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = EE8567043C48B971531BDA01A5AE5CCAFF - -Count = 57 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 955668803EDC39D5676F055432E04494BC - -Count = 58 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = CFFDDED5502E94639EFF757B6ED4C7C21F - -Count = 59 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = A56F5BB57DAE3C18C2C1EA6FB493A13819 - -Count = 60 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = 4E24489ED97051E7A62F7F2ABEC9DEF41F - -Count = 61 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = BB6B8BA451DBDBCC51196DA106BF8EE308 - -Count = 62 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 549CBA0327D6B0964B472585D14E64B6A9 - -Count = 63 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = 221EE30E6B04624FE9232D7285299C29BA - -Count = 64 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 0553FCCA51C6C7427C9CF3E6F5BFCC1710 - -Count = 65 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = C0878355AC0D394CB53F93499C3F2E68EF - -Count = 66 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 13DFBA9400792685FFBDE1D33676185BFA - -Count = 67 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001 -AD = -CT = BC737E3A48DAA7E0EB32E3FEDFCFCE30ECC7 - -Count = 68 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001 -AD = 00 -CT = B1A8573A8DF6142D49756B52707DE6239BE4 - -Count = 69 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001 -AD = 0001 -CT = FDC9AC573AA4B7BCD8B4F1457E954484FD84 - -Count = 70 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001 -AD = 000102 -CT = A2EED9BB3A9F883F6258092DF0D7C8779BA5 - -Count = 71 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001 -AD = 00010203 -CT = 3ECF602E68E5F3DDB8EFFEDF9C058D1A7B27 - -Count = 72 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001 -AD = 0001020304 -CT = 7EA0B8A59B28CA1367624D104E555F336485 - -Count = 73 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001 -AD = 000102030405 -CT = 1A94912F7285DC5109D4ABAFFFAC36325A48 - -Count = 74 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001 -AD = 00010203040506 -CT = 1F6DD0EE6138983A9328ED379ED5965405CF - -Count = 75 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001 -AD = 0001020304050607 -CT = 86A0CA39E6B3E646B32EDE877C33A0C219E4 - -Count = 76 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001 -AD = 000102030405060708 -CT = 5840356DA3E76736F7D9E4A658927F86D9A3 - -Count = 77 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001 -AD = 00010203040506070809 -CT = 6B74877F8ACC9214316C487A6D5C2C7026A9 - -Count = 78 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001 -AD = 000102030405060708090A -CT = 5BA13728D2CC5B1FCBD6FD5830B6F3090C94 - -Count = 79 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001 -AD = 000102030405060708090A0B -CT = FEB663714E5B6DD53952D4B196CBACEB10BE - -Count = 80 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001 -AD = 000102030405060708090A0B0C -CT = 0286879A8149CBC6A0718A93E7981FE03296 - -Count = 81 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001 -AD = 000102030405060708090A0B0C0D -CT = 681E50DBE7C22D441565E03C5FA6DE8F3B2D - -Count = 82 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001 -AD = 000102030405060708090A0B0C0D0E -CT = E43AF3DA4DEF0778AAEBED0C2297B7FE3F0E - -Count = 83 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001 -AD = 000102030405060708090A0B0C0D0E0F -CT = DF0C14698DD0679F6F0E29C6B7C273AFD751 - -Count = 84 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 541104932A1EE8D6AFC1C64515B43C8B175C - -Count = 85 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 36CED7E4633988ACE3C23F3190949EE127C8 - -Count = 86 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = C171B5BD878EFE688E9ABD51AA900FA4C3C7 - -Count = 87 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 01E45F06A0F9098AC9A0FE8FABE4EEFBA3AC - -Count = 88 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = FBAA63D7D7FCF59B45A4040ECFD92BBE6ED0 - -Count = 89 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = EE7B6201647876244AA2A23AF9E2752EAFE3 - -Count = 90 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 95AF6205A152FCE12AA743083E6596406F4B - -Count = 91 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = CF2FE77114811C119A6691C3EB401AD771D3 - -Count = 92 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = A5AE792AFA7D8FEE63CF8FE646786C1C0B16 - -Count = 93 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = 4E7F0B8B4FC2C12EA679C5483D4F12DBC229 - -Count = 94 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = BB85FAEDEEEE33D99998593999D4754F7B0C - -Count = 95 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 545D2CE9D083D06DCF66BB80084F4F03D673 - -Count = 96 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = 228474F21E2D79F485D0D9950C8EEB67CD1C - -Count = 97 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 05F8272149DFD9ADC98D443DB7C015ABBC6D - -Count = 98 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = C01929B1685A438F696074DD42DDD42F9533 - -Count = 99 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 13B6C13DDD93EB478C8AA03E740F104628CB - -Count = 100 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102 -AD = -CT = BC73B148EF4F566C2DDD8476C7D7674A14EAD4 - -Count = 101 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102 -AD = 00 -CT = B1A8DFF1B83E98806E92DD39AE8BF93C19C59E - -Count = 102 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102 -AD = 0001 -CT = FDC95789049E490F4E0E6531C709B46B5A7322 - -Count = 103 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102 -AD = 000102 -CT = A2EEF1B7299AB8890B4727FFA7046CCA6D7621 - -Count = 104 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102 -AD = 00010203 -CT = 3ECF2CC348A9769DFACF1A7CCADE8D5740B0FC - -Count = 105 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102 -AD = 0001020304 -CT = 7EA0A6FAB184D368A331BBE19E46AC71445667 - -Count = 106 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102 -AD = 000102030405 -CT = 1A9471D7A7E5FB69155CB5241E01BDFA1886A1 - -Count = 107 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102 -AD = 00010203040506 -CT = 1F6D4F81F656B21CA691C8AD4C660D082E16FB - -Count = 108 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102 -AD = 0001020304050607 -CT = 86A003EB2B17B4483EFCA222EEF15C393D6304 - -Count = 109 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102 -AD = 000102030405060708 -CT = 5840C91F07DABED91063CAD103E56A1ECD5674 - -Count = 110 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102 -AD = 00010203040506070809 -CT = 6B7449BA2889FC8F5C831FD9247961EBB6FD57 - -Count = 111 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102 -AD = 000102030405060708090A -CT = 5BA183D97CC14E5A28A2A5FF5D8D25E91ACE18 - -Count = 112 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102 -AD = 000102030405060708090A0B -CT = FEB6AB5F16D9D058822C877EF94ACAB9F1EF51 - -Count = 113 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102 -AD = 000102030405060708090A0B0C -CT = 028697C32D4ABFA1659C58F42D7F57A041DDE3 - -Count = 114 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102 -AD = 000102030405060708090A0B0C0D -CT = 681E884BAD7C149A6C3E1D708B114E347343F5 - -Count = 115 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102 -AD = 000102030405060708090A0B0C0D0E -CT = E43AF8DA3BEA2A4133C19CB0434D9122073CB8 - -Count = 116 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102 -AD = 000102030405060708090A0B0C0D0E0F -CT = DF0CA1CF54C75720D2119D7D32D4254691D703 - -Count = 117 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 541111E3006B3840324F89775826BFA1E7BE71 - -Count = 118 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 36CE88D3D950D7AD270BBE0F5AB20E5DEABAC9 - -Count = 119 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = C171586DF5F47C9EFB71883FA543A82EA97284 - -Count = 120 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 01E474633C5E40C248BE4BD6D602BEBE9EA4CB - -Count = 121 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = FBAACC5F273352A545CC685E8A8D3C7C6F152D - -Count = 122 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = EE7B6FE1EAF662A543710938F6B79FCBDC56B7 - -Count = 123 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 95AFA23971C95F1BBE555913EC7F46A42F565E - -Count = 124 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = CF2FB74F6DF9C2F08B874F8BCADE5D6CFBFC5A - -Count = 125 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = A5AEC9001D16C21E1069420E198051C119A9AD - -Count = 126 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = 4E7F9FCECD92275EC75BA55DA2A26D03EA42CC - -Count = 127 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = BB85E26C88814A654EC0B43DEAC414E4A5D580 - -Count = 128 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 545D8CA7379E8B30A6766D35A591970405E803 - -Count = 129 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = 2284614FBA1CB02A6CE48B96C1453400F9DB53 - -Count = 130 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 05F8B00E64238577A0219B003DEB8C4CBDFEA0 - -Count = 131 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = C019C2EE6BD21855FF0E14C8BA780FF04D52B1 - -Count = 132 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 13B62511918C2D7BAB77BD7633BF664D74845C - -Count = 133 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203 -AD = -CT = BC73B1C24E29CFFDC2E7ADD32A3BC5D8B10B9F1D - -Count = 134 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203 -AD = 00 -CT = B1A8DFB12CD1A86F5ED8369D7A455BE0B8994D02 - -Count = 135 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203 -AD = 0001 -CT = FDC957619A541C37B28E8A6191DA16682AE01368 - -Count = 136 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203 -AD = 000102 -CT = A2EEF13F17EE3740342CAAECBF75380CF7BEEA75 - -Count = 137 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203 -AD = 00010203 -CT = 3ECF2C0BD94BD65849A58255110EBD6DDDB2C45C - -Count = 138 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203 -AD = 0001020304 -CT = 7EA0A670FDB46BBFDA06E7F1467B9AF16F9AB387 - -Count = 139 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203 -AD = 000102030405 -CT = 1A947165B2802DB081F793363C8DB3F7533195FD - -Count = 140 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203 -AD = 00010203040506 -CT = 1F6D4FBA724351929A4BF1DEA235F48C011FBCDB - -Count = 141 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203 -AD = 0001020304050607 -CT = 86A003A0186FACDF166B076BCACAB6BF8659CC1B - -Count = 142 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203 -AD = 000102030405060708 -CT = 5840C9CD1813078CBC62614CFEC4F8FB33C62487 - -Count = 143 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203 -AD = 00010203040506070809 -CT = 6B74495424C8840E1518893F33B34A01DC51BC16 - -Count = 144 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203 -AD = 000102030405060708090A -CT = 5BA1831D7D5AE50BF0C703A4C9A1EA018A433E34 - -Count = 145 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203 -AD = 000102030405060708090A0B -CT = FEB6AB5F46BF80269077FB24AA09EC8DCBFDA2D1 - -Count = 146 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203 -AD = 000102030405060708090A0B0C -CT = 028697CF85E050846B652B8BBF129C3D355FB344 - -Count = 147 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203 -AD = 000102030405060708090A0B0C0D -CT = 681E88AD7A5F9D7CC65330A31FBC4E9F12746176 - -Count = 148 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203 -AD = 000102030405060708090A0B0C0D0E -CT = E43AF8F5E24E6E823900A43E3B7A634BFB5561E4 - -Count = 149 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203 -AD = 000102030405060708090A0B0C0D0E0F -CT = DF0CA111A3B70DA0D9A48DB9062EEA4896CE70A8 - -Count = 150 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 5411119D8802DD780564F3E1D7A4706F8D69A7FF - -Count = 151 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 36CE88BC2AAEA293CE4C7C2308AD0EEC7234ED50 - -Count = 152 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = C17158652091C8EB9C2077FD8FD16AE1C9394CBA - -Count = 153 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 01E47467301ABAA25D6AC2BACD657303FA0C2422 - -Count = 154 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = FBAACC6482D91C98024D80CEC8D40EF49864D477 - -Count = 155 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = EE7B6FEA46853BFDEBE6EE6202318AA209454BD7 - -Count = 156 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 95AFA27D7528CF548DF81B79202229F5E8EA64BC - -Count = 157 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = CF2FB7E7588D289A29CFEEA51F63E6DBE20A7CFA - -Count = 158 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = A5AEC98A7F4D720711BFF47400BFFFEDFD6F6BF1 - -Count = 159 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = 4E7F9F0B0DC41A25D26328D5D16AD1D90010EA83 - -Count = 160 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = BB85E2FF54D3D3450771C4092B38820266A56E7A - -Count = 161 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 545D8C7BD242C06190FB0461C2782206BE8BE42B - -Count = 162 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = 2284612C3F3A9A1ED2D769A13F01336F3D7286D3 - -Count = 163 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 05F8B0EDD5DF436AB434EE1B333941A4855CD6FB - -Count = 164 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = C019C2961D69A7D9B24A03407AC1E8B094C1B3E1 - -Count = 165 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 13B625E5DA82C3A0BF1061335B6703D1946314B6 - -Count = 166 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304 -AD = -CT = BC73B1C2F36370F828AC2068FB01ABC0DBCEA16208 - -Count = 167 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304 -AD = 00 -CT = B1A8DFB1928F88B201A006E9F863587B092358E35F - -Count = 168 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304 -AD = 0001 -CT = FDC9576118A65ECD4354AAA7F671CDFD40A607E4C0 - -Count = 169 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304 -AD = 000102 -CT = A2EEF13FA0F94CD8576F507483077E6F905532F0CE - -Count = 170 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304 -AD = 00010203 -CT = 3ECF2C0B16C9493177C2946151EBCC0CFD52281F39 - -Count = 171 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304 -AD = 0001020304 -CT = 7EA0A67026AEE0E46291E5FAEABAFBFB96A394D10E - -Count = 172 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304 -AD = 000102030405 -CT = 1A9471657219911946F30729281AA4B895653A0FC8 - -Count = 173 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304 -AD = 00010203040506 -CT = 1F6D4FBAA55F828EAB30B1B3BA423784B69624F45B - -Count = 174 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304 -AD = 0001020304050607 -CT = 86A003A0C555A889FFC37E5BCAA275FFA75C32CD80 - -Count = 175 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304 -AD = 000102030405060708 -CT = 5840C9CD518576F76115AFBACDD56A53C260C059C5 - -Count = 176 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304 -AD = 00010203040506070809 -CT = 6B744954091BBC5749A2D5355A42920AEA651BDCED - -Count = 177 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304 -AD = 000102030405060708090A -CT = 5BA1831D48BAD01E9C5B47BEF7E309C951C030D681 - -Count = 178 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304 -AD = 000102030405060708090A0B -CT = FEB6AB5F16612E4AB60D9B745A90EE54B1DF072292 - -Count = 179 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304 -AD = 000102030405060708090A0B0C -CT = 028697CF28CA7C89C1F5DEF0C1AAE4B794EC487B98 - -Count = 180 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304 -AD = 000102030405060708090A0B0C0D -CT = 681E88ADDFED66ED9779418B07B36AE061372545FC - -Count = 181 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304 -AD = 000102030405060708090A0B0C0D0E -CT = E43AF8F5570EBD84F6D4B6D70EF1E2224395141C3F - -Count = 182 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304 -AD = 000102030405060708090A0B0C0D0E0F -CT = DF0CA1114FFA3AD0DDEE86064AF0BD946012F2A4F3 - -Count = 183 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 5411119D718AB3E9E8E1554FD9D2AF0E30D230E88C - -Count = 184 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 36CE88BC5702D47F1F0FC42F5B9CDB8D111E7C39E3 - -Count = 185 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = C1715865997A003118DAE733512F0456FA451B18AA - -Count = 186 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 01E47467EC7216F60737E9C2AA8368BCE3A45C6847 - -Count = 187 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = FBAACC6494F1BA2E7BB84D4D5610126317B92137A5 - -Count = 188 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = EE7B6FEA6D742117883796A8784EC45C7540C96C7C - -Count = 189 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 95AFA27D4D9D022D00C88E2132C3DFCCB837820567 - -Count = 190 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = CF2FB7E7386AD2E54021D4F5BC238C54E8587711A6 - -Count = 191 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = A5AEC98AA8EEB3D8696C4B2C2870D7DC69CB32C682 - -Count = 192 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = 4E7F9F0B4532434E7BEA27878805C10A4F435C2A9F - -Count = 193 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = BB85E2FF033796C270F8DD70B907695656457FCE17 - -Count = 194 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 545D8C7B15B962C8D59674DD8BE0008BFB4C28B3E0 - -Count = 195 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = 2284612C476E4D01491EC0A46B62CE70276CD7B8E8 - -Count = 196 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 05F8B0EDB0B9121A407ADE4209954F7E78A73B6C88 - -Count = 197 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = C019C296038332FF15C5168F20794737FC00EBFAA3 - -Count = 198 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 13B625E5F4FFB0824961D17AE71386DC3B432C7A83 - -Count = 199 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405 -AD = -CT = BC73B1C2F3FE1861CCBE84668A60DD6877684C65440C - -Count = 200 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405 -AD = 00 -CT = B1A8DFB192FA84A6B3E141B117CE2100B87A7D724C13 - -Count = 201 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405 -AD = 0001 -CT = FDC957611833C83DDB7B55169C1D09B1244CB74E0136 - -Count = 202 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405 -AD = 000102 -CT = A2EEF13FA0EA43C542E76E5BB779CB83FF9A7A673246 - -Count = 203 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405 -AD = 00010203 -CT = 3ECF2C0B164E6C7D62A3CAFE86B39E21940425A78AAB - -Count = 204 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405 -AD = 0001020304 -CT = 7EA0A67026AE3758F2B070A5A5CAD6E30DACA8B1C63B - -Count = 205 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405 -AD = 000102030405 -CT = 1A94716572303040F45986A6A9D19AF83529A1B0870F - -Count = 206 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405 -AD = 00010203040506 -CT = 1F6D4FBAA5952543C296DA1C2FF88B8707DB58AE5B55 - -Count = 207 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405 -AD = 0001020304050607 -CT = 86A003A0C56CE1A2B043BBF52458E560F00EC9D40AD4 - -Count = 208 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405 -AD = 000102030405060708 -CT = 5840C9CD51285F42019151D2315865C150E7651B1D81 - -Count = 209 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405 -AD = 00010203040506070809 -CT = 6B74495409117F4F37A882FD0187163C07D6152DF596 - -Count = 210 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405 -AD = 000102030405060708090A -CT = 5BA1831D487F15ECA7B599DC777FDCE0E6D007BEF30E - -Count = 211 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405 -AD = 000102030405060708090A0B -CT = FEB6AB5F168A467D69E5C729BD6052A4A711C0CC960F - -Count = 212 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405 -AD = 000102030405060708090A0B0C -CT = 028697CF285B58E8C24AA29713C41E19D852CF914FD8 - -Count = 213 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405 -AD = 000102030405060708090A0B0C0D -CT = 681E88ADDF414B5E2BF90B9E88D858CADD64AE980D49 - -Count = 214 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405 -AD = 000102030405060708090A0B0C0D0E -CT = E43AF8F5579076D401E267464D1309843D302CAD7B39 - -Count = 215 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405 -AD = 000102030405060708090A0B0C0D0E0F -CT = DF0CA1114F2E80A055A80F18D870D4BB1EC7C58CB433 - -Count = 216 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 5411119D71AC2D428B7A5D44B75569159D73667C0563 - -Count = 217 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 36CE88BC57F99A60E14B9793ACE50AA0538BDCC49924 - -Count = 218 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = C171586599C0FC4DB57911E3F82AE9F54C770B6303B1 - -Count = 219 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 01E47467EC5FA856B9D32F4A1DA224AC49C09CDF4630 - -Count = 220 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = FBAACC649496E66AB5E4573E1097B18D7574E31B6A94 - -Count = 221 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = EE7B6FEA6D4E3FFF5CBFE10067EFFE725F3572B672ED - -Count = 222 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 95AFA27D4D8C6DCDFE3D4AC643332005B7DD0D8D32BE - -Count = 223 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = CF2FB7E73873973304C20771F346D5E5875F7E0363A8 - -Count = 224 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = A5AEC98AA860D84F235AEBFCCB0E6F792EA0035035A9 - -Count = 225 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = 4E7F9F0B45CB8B88EE6180F0320B62413B7581C2AA77 - -Count = 226 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = BB85E2FF036ABC976602396B75A961EC1BC23CE81197 - -Count = 227 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 545D8C7B15741BBF9DEE311E33AD6250CD31E484C034 - -Count = 228 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = 2284612C47444AA6EB605B1E6F57FCDCD45C58D7F18F - -Count = 229 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 05F8B0EDB0343940B982F5EE257785B6115A4DC3F0FF - -Count = 230 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = C019C29603C177346887761CFB014B3C9DAC979574F4 - -Count = 231 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 13B625E5F4DF52BB7D8A88CCA1FAD88650DBA439F17E - -Count = 232 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506 -AD = -CT = BC73B1C2F3FE0C8A119DC8EB2006C09BF4EFEAC883B7C5 - -Count = 233 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506 -AD = 00 -CT = B1A8DFB192FA2C9B882BB5A1BD3E41388D3AF4A673390C - -Count = 234 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506 -AD = 0001 -CT = FDC957611833EC980BA62EBAE1DB3D5F20102A5E4BBD08 - -Count = 235 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506 -AD = 000102 -CT = A2EEF13FA0EA16608D346308313B122286CFB3B5559FD0 - -Count = 236 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506 -AD = 00010203 -CT = 3ECF2C0B164EEE34C2140C1C8D2E40771B570B0C207446 - -Count = 237 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506 -AD = 0001020304 -CT = 7EA0A67026AE73F721FC06F5000EBEA295460B9CB7328D - -Count = 238 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506 -AD = 000102030405 -CT = 1A9471657230C229576B97C2843E295BBB28DC584463BC - -Count = 239 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506 -AD = 00010203040506 -CT = 1F6D4FBAA595F10CC2F555FBD102CDF053BCFB044CA354 - -Count = 240 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506 -AD = 0001020304050607 -CT = 86A003A0C56CDDD39EC8EEA5EF2CF00A0AEA7E833F7B44 - -Count = 241 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506 -AD = 000102030405060708 -CT = 5840C9CD51283B537C39A4D4282BD443AD903C1B882C2B - -Count = 242 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506 -AD = 00010203040506070809 -CT = 6B74495409113A0CCCECFEB8243BABEE89DA9F3D5F6F9C - -Count = 243 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506 -AD = 000102030405060708090A -CT = 5BA1831D487F8EFA6D026EF5A0C895712620CE43F0B983 - -Count = 244 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506 -AD = 000102030405060708090A0B -CT = FEB6AB5F168A5779902177882140EF8D0227D058F090B6 - -Count = 245 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506 -AD = 000102030405060708090A0B0C -CT = 028697CF285B4635B4A253D9A452E6C146BC17C63022FA - -Count = 246 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506 -AD = 000102030405060708090A0B0C0D -CT = 681E88ADDF417873AD44B477686423A78DE8135AC03D10 - -Count = 247 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506 -AD = 000102030405060708090A0B0C0D0E -CT = E43AF8F5579066B2DFE647B256590486521C9B4FA2A554 - -Count = 248 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506 -AD = 000102030405060708090A0B0C0D0E0F -CT = DF0CA1114F2E00B6B486E4F42D5CC4E814F5BC9CC80FAD - -Count = 249 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 5411119D71ACCC54E993609BACE6AC655FDAC45EB1E111 - -Count = 250 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 36CE88BC57F9482A27BA5E2A0B4D7774B21CFBACD44842 - -Count = 251 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = C171586599C0291BCFBE391A76D208BBCDEB1AE4A7742A - -Count = 252 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 01E47467EC5F8139E949DB80BC92FE6FB4B9378AF72D16 - -Count = 253 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = FBAACC649496A6C0095EDEBF24A17CA63BAD3F9D3B63EE - -Count = 254 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = EE7B6FEA6D4E6CFF82B361C76DCE703BE3817C78EC8F42 - -Count = 255 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 95AFA27D4D8CEAFCF2929528916D3C898A2B7784B6210A - -Count = 256 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = CF2FB7E73873BEDB9A6D88BC4ED3853A646608024CF0B1 - -Count = 257 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = A5AEC98AA860CE9F5B626135CC7167C77DF7556A92C0BD - -Count = 258 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = 4E7F9F0B45CB9D3469DD24FE1B2B3703A4CDF242CDCC45 - -Count = 259 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = BB85E2FF036A7E9E0B1DEE14616DF028CC414045563A0B - -Count = 260 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 545D8C7B15744BD3B185363ABC352D63FD4C339DA6E49D - -Count = 261 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = 2284612C4744BF1B6CCD512DD5D2493933FCC616AE67CC - -Count = 262 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 05F8B0EDB03495C5B311982ED379F547F3C6922F981EE4 - -Count = 263 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = C019C29603C1E1652360795697AF19817D95A4EC63D4F7 - -Count = 264 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 13B625E5F4DF9238AD49E129C32DA4CC49591FF0FFE760 - -Count = 265 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304050607 -AD = -CT = BC73B1C2F3FE0C59948552C8DE953CB1E3E08CEDD1BA5F6C - -Count = 266 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304050607 -AD = 00 -CT = B1A8DFB192FA2C1BA0E9EB7A2FA1F91AAA1189B654458494 - -Count = 267 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304050607 -AD = 0001 -CT = FDC957611833EC301897788BAE70ECC2B672F133D9B700D4 - -Count = 268 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304050607 -AD = 000102 -CT = A2EEF13FA0EA16BAF23CD117ABB6BC88EC6E6E5AC07B47CF - -Count = 269 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304050607 -AD = 00010203 -CT = 3ECF2C0B164EEE0BB9891D2A0325D072D6017DFD1C0DAF6C - -Count = 270 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304050607 -AD = 0001020304 -CT = 7EA0A67026AE73868602786DA30C7456861B9E9949FB9F7C - -Count = 271 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304050607 -AD = 000102030405 -CT = 1A9471657230C227D6C5723DAB0014309F2421441459800A - -Count = 272 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304050607 -AD = 00010203040506 -CT = 1F6D4FBAA595F14BCBA306C366BD2D987F7C00296B37DECE - -Count = 273 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304050607 -AD = 0001020304050607 -CT = 86A003A0C56CDDD7EAE5D87D1081C2289B2F4CF370386DC9 - -Count = 274 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304050607 -AD = 000102030405060708 -CT = 5840C9CD51283BD1E079C98842EBFF04B82162EF4625249C - -Count = 275 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304050607 -AD = 00010203040506070809 -CT = 6B74495409113A9078C89B0B041A3D903CED91C62D5A4581 - -Count = 276 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304050607 -AD = 000102030405060708090A -CT = 5BA1831D487F8E2481C5CC35C31E82C6B0817A0202DD998F - -Count = 277 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304050607 -AD = 000102030405060708090A0B -CT = FEB6AB5F168A5792DF340DF4CAD06CFEB3BD790766875C86 - -Count = 278 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304050607 -AD = 000102030405060708090A0B0C -CT = 028697CF285B46BF35586C7E282A2D311BC5B61BFC6237F7 - -Count = 279 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304050607 -AD = 000102030405060708090A0B0C0D -CT = 681E88ADDF4178133E12252A49A3600803032938FFAB0BF5 - -Count = 280 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304050607 -AD = 000102030405060708090A0B0C0D0E -CT = E43AF8F55790660A21DFD9F8717252741067CFD6BD1051B5 - -Count = 281 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304050607 -AD = 000102030405060708090A0B0C0D0E0F -CT = DF0CA1114F2E00513FCBCA12F4C9A7866E89C4C8660589EF - -Count = 282 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304050607 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 5411119D71ACCC5DCE1652636EDD9555311F7873D56E21B3 - -Count = 283 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304050607 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 36CE88BC57F948B6DD6BD49402E80FBDB83DDD221399B6CB - -Count = 284 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304050607 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = C171586599C0292C5E2D211F78FBAC902CF350E3C77CB466 - -Count = 285 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304050607 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 01E47467EC5F81AD07256E918962B2C2A1EC80BA3786D2F4 - -Count = 286 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304050607 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = FBAACC649496A650F8475022B61BD16530E398C6BC88C28F - -Count = 287 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304050607 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = EE7B6FEA6D4E6CE720296EDF39A45E0E076332CF2B80C71E - -Count = 288 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304050607 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 95AFA27D4D8CEA688EF347A6D6FE0D1BA5A4BBAE47000262 - -Count = 289 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304050607 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = CF2FB7E73873BE2A84B266AC7514FF26EF3AFF5E43718D43 - -Count = 290 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304050607 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = A5AEC98AA860CE1759CF517D9D5CCAB7B24EFFAA626C2009 - -Count = 291 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304050607 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = 4E7F9F0B45CB9DC42F6DAE7079FC59CD064C6A3F704C8585 - -Count = 292 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304050607 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = BB85E2FF036A7EE1300294BCF07E2CC0A3A768AA9C062379 - -Count = 293 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304050607 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 545D8C7B15744B9A059EA450CE27E060DB074DED02E2DED4 - -Count = 294 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304050607 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = 2284612C4744BFB1C161304FD558A4F42D8926E7F41AD2EA - -Count = 295 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304050607 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 05F8B0EDB034954EF8AAFD7DD7BDF979ED378837E8FEAC33 - -Count = 296 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304050607 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = C019C29603C1E1EDCAFE6839B1782E71DBA2FC347E8255ED - -Count = 297 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304050607 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 13B625E5F4DF92DA237FAE7E2180F716509958D83A2484E6 - -Count = 298 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708 -AD = -CT = BC73B1C2F3FE0C59A36A93578573783993EA8BC810F4129261 - -Count = 299 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708 -AD = 00 -CT = B1A8DFB192FA2C1BD9C39E3B0F5DDFB3E690F07994221EA5CC - -Count = 300 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708 -AD = 0001 -CT = FDC957611833EC30515C9923386955D43CEA80D5D80F2F0D9D - -Count = 301 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708 -AD = 000102 -CT = A2EEF13FA0EA16BA674F7E1667CAC85C31D41BB1253640AA4F - -Count = 302 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708 -AD = 00010203 -CT = 3ECF2C0B164EEE0B9D94E827A3BA0D0ADFFC3513E448F01607 - -Count = 303 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708 -AD = 0001020304 -CT = 7EA0A67026AE7386204BD27E1598E19E5BF83EB0719463928F - -Count = 304 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708 -AD = 000102030405 -CT = 1A9471657230C2272CD7342800F68BCB53360A6A43993BEEF1 - -Count = 305 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708 -AD = 00010203040506 -CT = 1F6D4FBAA595F14B997986D01E3C077100D8E99C83F048C5C2 - -Count = 306 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708 -AD = 0001020304050607 -CT = 86A003A0C56CDDD7A9437D59BDE2BA92AC392DB0B5451AC4EA - -Count = 307 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708 -AD = 000102030405060708 -CT = 5840C9CD51283BD1D915C2DC46E37B58B9F59BA8D218CAC54F - -Count = 308 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708 -AD = 00010203040506070809 -CT = 6B74495409113A904D0DC41111E7F062366E2C22462B1CD7D4 - -Count = 309 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708 -AD = 000102030405060708090A -CT = 5BA1831D487F8E249C7B5762C029C0D5B08774565B555E51F3 - -Count = 310 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708 -AD = 000102030405060708090A0B -CT = FEB6AB5F168A5792A8A5D2CB7C789E148562BD8C8C902E1911 - -Count = 311 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708 -AD = 000102030405060708090A0B0C -CT = 028697CF285B46BFDA86B4C502746B82E53320C13AAA2F0D08 - -Count = 312 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708 -AD = 000102030405060708090A0B0C0D -CT = 681E88ADDF41781366EFFBD46DABCA396743589820FD6D302A - -Count = 313 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708 -AD = 000102030405060708090A0B0C0D0E -CT = E43AF8F55790660AB0A34C2E0D81F896144231523638FD3008 - -Count = 314 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708 -AD = 000102030405060708090A0B0C0D0E0F -CT = DF0CA1114F2E0051AC175D3E92EAD1FD4B35131C02AD67358F - -Count = 315 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 5411119D71ACCC5D9A79BAC9EDE22CD229EFD1CA6203DA986D - -Count = 316 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 36CE88BC57F948B6D85AECDA62A6513EB4D34A227CA5517531 - -Count = 317 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = C171586599C0292C87E53B7209F1FDC5B15675709F0DD1356A - -Count = 318 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 01E47467EC5F81AD2262BFDDBAD26BA3E9588D6F2E8B57AFFF - -Count = 319 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = FBAACC649496A650F8BFC549618494EC0EA8479CCE97A5DEAF - -Count = 320 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = EE7B6FEA6D4E6CE7C17B434AFA1017DBBCFEB1FCB2814AD63F - -Count = 321 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 95AFA27D4D8CEA68B269B586A42C5D8EA4EFCAC9212096BDE5 - -Count = 322 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = CF2FB7E73873BE2A92E2FCB9C185CE20CAA43411A8674042B3 - -Count = 323 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = A5AEC98AA860CE17F0CC8D1ACF15F971D083A792B520E43669 - -Count = 324 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = 4E7F9F0B45CB9DC4DF7446A8F237ACDCDB26F8332AAB71AFF8 - -Count = 325 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = BB85E2FF036A7EE15FEFC83FDA0B4D563C57D2892369D217CF - -Count = 326 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 545D8C7B15744B9AB08976C0DB8D4BA0C6C75D61280ADBA634 - -Count = 327 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = 2284612C4744BFB1E3B99733EF4A3FEC17EE62FEE4B3647AF5 - -Count = 328 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 05F8B0EDB034954E081C6544446179C70417FCA3DD64292E23 - -Count = 329 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = C019C29603C1E1ED3DE1E25E542B8BA952681B043CB6847E40 - -Count = 330 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 13B625E5F4DF92DADD91E2EB94359F3397DD50EF532735373A - -Count = 331 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506070809 -AD = -CT = BC73B1C2F3FE0C59A329C5B54B86A65132FEB8F159B1C2AB5208 - -Count = 332 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506070809 -AD = 00 -CT = B1A8DFB192FA2C1BD9789C8DD7CC31435559E416A3F9A7878798 - -Count = 333 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506070809 -AD = 0001 -CT = FDC957611833EC30511CE5BA1C9893F0960E34DEB1D8EAA9A306 - -Count = 334 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506070809 -AD = 000102 -CT = A2EEF13FA0EA16BA67E648CA515B1143F4517FF341961FF8FEA3 - -Count = 335 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506070809 -AD = 00010203 -CT = 3ECF2C0B164EEE0B9D65E207FF29631230A54420795A95B65F6B - -Count = 336 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506070809 -AD = 0001020304 -CT = 7EA0A67026AE738620E3AD8D50D59324B1403461C1BC02C7505A - -Count = 337 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506070809 -AD = 000102030405 -CT = 1A9471657230C2272C41137618390F81DA6FC41B8C6F4105FC6C - -Count = 338 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506070809 -AD = 00010203040506 -CT = 1F6D4FBAA595F14B9918CC4F96106A5520BFB6E4195CB0F298DC - -Count = 339 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506070809 -AD = 0001020304050607 -CT = 86A003A0C56CDDD7A985EA03C55961A5113FA45058E8A671EB52 - -Count = 340 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506070809 -AD = 000102030405060708 -CT = 5840C9CD51283BD1D909E480AE82867A6F43F36CF19A3FFE922E - -Count = 341 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506070809 -AD = 00010203040506070809 -CT = 6B74495409113A904D45C67B8A581BE9EC670A4B0DF522235D24 - -Count = 342 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506070809 -AD = 000102030405060708090A -CT = 5BA1831D487F8E249C91914227AB85E7C1D5D8EF6B582090C0D6 - -Count = 343 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506070809 -AD = 000102030405060708090A0B -CT = FEB6AB5F168A5792A88D89288D4433D2BE450774BE06F40DF3D6 - -Count = 344 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C -CT = 028697CF285B46BFDA13EE1BB9E6E50E172FF51BA79C6F065994 - -Count = 345 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C0D -CT = 681E88ADDF417813669390F893E30AA7EEA3A16E2CDABD403803 - -Count = 346 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C0D0E -CT = E43AF8F55790660AB0B71D8E07EC173DB6B5DE2EB8488CC0617F - -Count = 347 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C0D0E0F -CT = DF0CA1114F2E0051AC6EEF17089E8A3BD1CB8C6AC08E655E9D85 - -Count = 348 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 5411119D71ACCC5D9A103A4106275FE795F2B22A2DAC37689F34 - -Count = 349 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 36CE88BC57F948B6D81BBFCC5D88263BD4DB486D53F4B4F36ED6 - -Count = 350 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = C171586599C0292C87A39A988E74ACF02E9A66965619F2BBF864 - -Count = 351 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 01E47467EC5F81AD224E21A1FE5606ABE1792B289C0D8BA5AA3C - -Count = 352 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = FBAACC649496A650F85AD57B10F55326A2B4D22B76B437B4E4C6 - -Count = 353 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = EE7B6FEA6D4E6CE7C1753876D84FCC9E64F6D68872CDBB7022E5 - -Count = 354 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 95AFA27D4D8CEA68B2D4C8960419E2CFCCF1B89C2246166EA02B - -Count = 355 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = CF2FB7E73873BE2A926E07F2A30FD158EBF8FB173E54A97C8691 - -Count = 356 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = A5AEC98AA860CE17F008B5EFFEC8CA556883BD48AD48789335AD - -Count = 357 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = 4E7F9F0B45CB9DC4DFFA413F41F7EF40836626E49AB3C74CFE74 - -Count = 358 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = BB85E2FF036A7EE15F498B1CA1E2B403E5B60A83AAB2995BA4A3 - -Count = 359 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 545D8C7B15744B9AB0630EB911EE97C486C332394190D7F253B3 - -Count = 360 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = 2284612C4744BFB1E362096F0E7933B9A0E48F2F5CF2D7367C95 - -Count = 361 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 05F8B0EDB034954E08531963D8A69D4134D074629BC22D323BBF - -Count = 362 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = C019C29603C1E1ED3D94C423BB33CEA44114A40934C23044F318 - -Count = 363 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 13B625E5F4DF92DADDBCE73D0A53DAA1AA0051B6523B5F1EE20F - -Count = 364 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A -AD = -CT = BC73B1C2F3FE0C59A329415D418E6A98AE8B176895D2816DDAB163 - -Count = 365 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A -AD = 00 -CT = B1A8DFB192FA2C1BD978DE49263CEC42DEA90C0A140BB2AB769B46 - -Count = 366 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A -AD = 0001 -CT = FDC957611833EC30511C58D561F80A21E851F0DFF9FD83045721FC - -Count = 367 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A -AD = 000102 -CT = A2EEF13FA0EA16BA67E6E4B6B68B061F88F783366C9908AE84B12E - -Count = 368 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A -AD = 00010203 -CT = 3ECF2C0B164EEE0B9D655C4B1F1B6C138FE2B54AEB5465BC4BF16E - -Count = 369 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A -AD = 0001020304 -CT = 7EA0A67026AE738620E3693D86F40AEF6292B3BECB966F73EC9C60 - -Count = 370 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A -AD = 000102030405 -CT = 1A9471657230C2272C41927F22D069F9420C5C146BF6C8CB8A4C73 - -Count = 371 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A -AD = 00010203040506 -CT = 1F6D4FBAA595F14B9918C0944770D029C726E54208DF2F3CDF3985 - -Count = 372 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A -AD = 0001020304050607 -CT = 86A003A0C56CDDD7A9853A5B5C2512AB918659489EF53A2933137E - -Count = 373 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A -AD = 000102030405060708 -CT = 5840C9CD51283BD1D9096EE7C57A7D59E828D053A47171933B8DC3 - -Count = 374 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A -AD = 00010203040506070809 -CT = 6B74495409113A904D457353A2BA143AE5199592460C6482FEF7EA - -Count = 375 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A -AD = 000102030405060708090A -CT = 5BA1831D487F8E249C91935B0976CD637D8C0FEE0C7ED3B5FC06CF - -Count = 376 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A -AD = 000102030405060708090A0B -CT = FEB6AB5F168A5792A88D0A42F7D398DBAB377826CD120B93A08AC5 - -Count = 377 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C -CT = 028697CF285B46BFDA13BC58EFBC6D5BA3F5CBBD091C89222BFEC1 - -Count = 378 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C0D -CT = 681E88ADDF4178136693CD230A5BE105CF6D6853A37D6B8746E83B - -Count = 379 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C0D0E -CT = E43AF8F55790660AB0B7F30A81CDEC3EDF0EC5BD690CA02BFE24DA - -Count = 380 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C0D0E0F -CT = DF0CA1114F2E0051AC6E3401081EC512E3F0168E9778A51D530134 - -Count = 381 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 5411119D71ACCC5D9A10F077C4F163CF06E2C7244240706164DADF - -Count = 382 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 36CE88BC57F948B6D81B209A900586EED52EAE21CA2A2EADAF8DD5 - -Count = 383 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = C171586599C0292C87A35602014123F533864E92137F8DD492387D - -Count = 384 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 01E47467EC5F81AD224EE1CB106DF92E6520D0125D572F4A856028 - -Count = 385 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = FBAACC649496A650F85A5061E82FB2563274BA5FCD9383961BEDD7 - -Count = 386 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = EE7B6FEA6D4E6CE7C175DCABDB8CF623F2D9269B2400A0EDACCECB - -Count = 387 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 95AFA27D4D8CEA68B2D46D05B78D2B6A2161D95981F8D5EA019EC7 - -Count = 388 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = CF2FB7E73873BE2A926E3BFAAF02263379C35069FEBFCED6E57BF0 - -Count = 389 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = A5AEC98AA860CE17F00838562715A1ECDB1B93073B63E99199188B - -Count = 390 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = 4E7F9F0B45CB9DC4DFFA2CF725B21DF3685CFD686996957D837DB2 - -Count = 391 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = BB85E2FF036A7EE15F4954CD12DCA17FD376A67A4969DC72F144DA - -Count = 392 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 545D8C7B15744B9AB0638A0777FC495D38A3987A0D0BB80E4C0F4D - -Count = 393 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = 2284612C4744BFB1E362854EB71886274B88A4B00A225DA84EC6A7 - -Count = 394 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 05F8B0EDB034954E0853898D21191BB224D466497D7ECC53E1DC57 - -Count = 395 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = C019C29603C1E1ED3D94BA37972B57849868071038826A64B84CD6 - -Count = 396 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 13B625E5F4DF92DADDBC6BFE1BA1CDF0A6C602AD0A96E4C6DD85F8 - -Count = 397 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B -AD = -CT = BC73B1C2F3FE0C59A3294171F08A9DB4AD829896D18836C273B9AC5F - -Count = 398 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B -AD = 00 -CT = B1A8DFB192FA2C1BD978DE3A00AE5BA0572CFCEF918C5D187D163346 - -Count = 399 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B -AD = 0001 -CT = FDC957611833EC30511C583B46F7B96D284E3DA0CF1621E72EB5B0D1 - -Count = 400 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B -AD = 000102 -CT = A2EEF13FA0EA16BA67E6E411B53C3B5B58A67DED4FD031ACBE8AC0D3 - -Count = 401 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B -AD = 00010203 -CT = 3ECF2C0B164EEE0B9D655C5270795C1379EEE25E0F18D46057683061 - -Count = 402 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B -AD = 0001020304 -CT = 7EA0A67026AE738620E369B965FEB54F99BF1E1D5C23D49BA51BA0C5 - -Count = 403 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B -AD = 000102030405 -CT = 1A9471657230C2272C4192D923546D0BA81FF0157BE08C5D230487E2 - -Count = 404 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B -AD = 00010203040506 -CT = 1F6D4FBAA595F14B9918C01A6E93334C74EE85A8E4DB8AD50195BE8B - -Count = 405 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B -AD = 0001020304050607 -CT = 86A003A0C56CDDD7A9853AA77DD268037F77E87B11B0D873C2D04EDF - -Count = 406 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B -AD = 000102030405060708 -CT = 5840C9CD51283BD1D9096E4CFB2B3EA1890535CA9F80B002310EB15B - -Count = 407 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B -AD = 00010203040506070809 -CT = 6B74495409113A904D4573ACC6598CEB5A1F2986D13E21BCAFDB6F97 - -Count = 408 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B -AD = 000102030405060708090A -CT = 5BA1831D487F8E249C9193399FC5A10713C63CDB6BE6EC854E0D62B4 - -Count = 409 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B -CT = FEB6AB5F168A5792A88D0A6B471C389C38EC4688CF80DEFF98A2E818 - -Count = 410 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C -CT = 028697CF285B46BFDA13BCECD295250F2E35344147EFFC4F9B187929 - -Count = 411 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C0D -CT = 681E88ADDF4178136693CD3D2DBB5651084C6C596173B06E1C87D8F8 - -Count = 412 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C0D0E -CT = E43AF8F55790660AB0B7F35185515B4550F73497DC0D186B017B3157 - -Count = 413 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C0D0E0F -CT = DF0CA1114F2E0051AC6E347F50F24A549906C783B8DA27854ED447DC - -Count = 414 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 5411119D71ACCC5D9A10F0DB045ED5E70CBC8373873A0BA745000087 - -Count = 415 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 36CE88BC57F948B6D81B20AC45A59A29F113043CEBC428A5DD78A1E9 - -Count = 416 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = C171586599C0292C87A35673C95F248D26C711133B37210135925986 - -Count = 417 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 01E47467EC5F81AD224EE173380AFF6C33BAB43DD774D5B1701B6CE1 - -Count = 418 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = FBAACC649496A650F85A500F17F6AA4D5165D8080E514FECAF848973 - -Count = 419 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = EE7B6FEA6D4E6CE7C175DC6478BB3BFB6FDA2D04A27FF0E019C018BE - -Count = 420 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 95AFA27D4D8CEA68B2D46DF5920FDC3E878920653A80185B8F9423FC - -Count = 421 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = CF2FB7E73873BE2A926E3B4AFD98DC57ED638962D16022273C2B8747 - -Count = 422 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = A5AEC98AA860CE17F00838C6630A92FDCD37286CC56DD431FA05C2E1 - -Count = 423 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = 4E7F9F0B45CB9DC4DFFA2C45994584F24F07AB4B1B9E6C795A15B39B - -Count = 424 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = BB85E2FF036A7EE15F49548C4A13C8A7A2418BAC066919F381BDA9F5 - -Count = 425 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 545D8C7B15744B9AB0638AD78E6835E898800E4981A888D7DCDE4B15 - -Count = 426 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = 2284612C4744BFB1E36285ED574FB3A90C2D9D3B1F5A4F89D7585327 - -Count = 427 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 05F8B0EDB034954E085389B69268A708ACC13014621EF087F6A4EB87 - -Count = 428 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = C019C29603C1E1ED3D94BA68E9033769EC2D286096E1CB038ADBF571 - -Count = 429 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 13B625E5F4DF92DADDBC6B70E01E1DAF857E8890AB0E772C007D72CC - -Count = 430 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C -AD = -CT = BC73B1C2F3FE0C59A32941714414FEBEB9629C47DE35052C89DA2B7081 - -Count = 431 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C -AD = 00 -CT = B1A8DFB192FA2C1BD978DE3A0A1C36DEA0CB18ABCFA42EC96AA30B5A95 - -Count = 432 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C -AD = 0001 -CT = FDC957611833EC30511C583BF39599BC7FD198B7AD9C565340020990B2 - -Count = 433 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C -AD = 000102 -CT = A2EEF13FA0EA16BA67E6E411872F132BE4A9519C38CB858A80668FD5B6 - -Count = 434 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C -AD = 00010203 -CT = 3ECF2C0B164EEE0B9D655C5207E5E55AF1065F06750170D134450E1A98 - -Count = 435 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C -AD = 0001020304 -CT = 7EA0A67026AE738620E369B96D0BF0E67A049C5526CF40F1FBED80885B - -Count = 436 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C -AD = 000102030405 -CT = 1A9471657230C2272C4192D9D1CF4D27E7D500B42DBFA1078809413D83 - -Count = 437 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C -AD = 00010203040506 -CT = 1F6D4FBAA595F14B9918C01A5A77467373DF855826D187C90C2EA3EF5D - -Count = 438 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C -AD = 0001020304050607 -CT = 86A003A0C56CDDD7A9853AA70F96A897C61762F22E2D3DA8938CA405AA - -Count = 439 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C -AD = 000102030405060708 -CT = 5840C9CD51283BD1D9096E4CC1EDE8D4C37429990F3783510448BD350C - -Count = 440 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C -AD = 00010203040506070809 -CT = 6B74495409113A904D4573AC8AD3C67295D62FF1128E536B2B4C50133F - -Count = 441 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A -CT = 5BA1831D487F8E249C9193393CB53C4A3F75301276CFBEF358B277AF02 - -Count = 442 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B -CT = FEB6AB5F168A5792A88D0A6BF20B2741EBE09A49C65EBA79976852C5E6 - -Count = 443 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C -CT = 028697CF285B46BFDA13BCECAD117510328384160776EF8C3F01BA8A63 - -Count = 444 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C0D -CT = 681E88ADDF4178136693CD3DBB3E04A48D3D6392DEA123B1465C71C551 - -Count = 445 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C0D0E -CT = E43AF8F55790660AB0B7F3519A5A38FECA31AD255A81B06394E8BDC569 - -Count = 446 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C0D0E0F -CT = DF0CA1114F2E0051AC6E347F4536AEB07E6A796423E8F0EFA897A4764B - -Count = 447 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 5411119D71ACCC5D9A10F0DBE40EDE1340E83E88A6C204B32F80FA5BB3 - -Count = 448 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 36CE88BC57F948B6D81B20AC747E24C6246FCA3BC09C8391E38CD6312C - -Count = 449 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = C171586599C0292C87A35673E87C272E8769D61CDCC24B4598D57867F6 - -Count = 450 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 01E47467EC5F81AD224EE173D6853646464D964E3541A48216686F1E73 - -Count = 451 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = FBAACC649496A650F85A500FA6E905577326820404EC7072BAA4DDF146 - -Count = 452 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = EE7B6FEA6D4E6CE7C175DC649B5B84CA9F9A82F4C828DFA84F6C852BDF - -Count = 453 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 95AFA27D4D8CEA68B2D46DF5AE2010FDBFABBE8038A7C57FCA78A733E8 - -Count = 454 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = CF2FB7E73873BE2A926E3B4A370B00856729C3D979F6389F54274F659F - -Count = 455 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = A5AEC98AA860CE17F00838C6C9B2372CA04E333876B2C7978F5E8BB109 - -Count = 456 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = 4E7F9F0B45CB9DC4DFFA2C4514CC5D10DD07F8CB9057B857E53FE7D946 - -Count = 457 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = BB85E2FF036A7EE15F49548C5FF9C4CCE725E346EAF06A1B780DD45859 - -Count = 458 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 545D8C7B15744B9AB0638AD7C0F0BC7BF3C876DFB51C06A0BD4AF49346 - -Count = 459 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = 2284612C4744BFB1E36285EDB577B54C10383894E4FDDD180508C6F5DC - -Count = 460 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 05F8B0EDB034954E085389B6B0C9B15197E52ABADB2E696F59CBFA281D - -Count = 461 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = C019C29603C1E1ED3D94BA68BDE8D2D29C67DACFD21B880A814F6DECAF - -Count = 462 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 13B625E5F4DF92DADDBC6B70656453DB96BB924BA31D0EF4853680A714 - -Count = 463 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D -AD = -CT = BC73B1C2F3FE0C59A32941714473EAF39A7A2E48EF198C26C4089BE027D3 - -Count = 464 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D -AD = 00 -CT = B1A8DFB192FA2C1BD978DE3A0A1C90D9F213A50805A3E1F1AE9140210B7A - -Count = 465 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D -AD = 0001 -CT = FDC957611833EC30511C583BF3CB073BD5D4D4A353949BECC753314531AB - -Count = 466 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D -AD = 000102 -CT = A2EEF13FA0EA16BA67E6E411879694C9B4FD153BF61B9F7CA030A0EFCEA4 - -Count = 467 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D -AD = 00010203 -CT = 3ECF2C0B164EEE0B9D655C5207B776929CC61FF5A4EC1E417937E73685E9 - -Count = 468 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D -AD = 0001020304 -CT = 7EA0A67026AE738620E369B96D4861F442122CD78748C4D08D52010F7BA1 - -Count = 469 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D -AD = 000102030405 -CT = 1A9471657230C2272C4192D9D193CCBE205C4BC1056BD251C7A50F229739 - -Count = 470 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D -AD = 00010203040506 -CT = 1F6D4FBAA595F14B9918C01A5AE8E9E0975C6A7EA94D97A8281FC503CDB0 - -Count = 471 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D -AD = 0001020304050607 -CT = 86A003A0C56CDDD7A9853AA70F7D07BF394D7B1F3498A6EFD1C3DA8D8DDD - -Count = 472 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708 -CT = 5840C9CD51283BD1D9096E4CC1032AAEFBB7D062FC3B779A3A30A65B9986 - -Count = 473 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D -AD = 00010203040506070809 -CT = 6B74495409113A904D4573AC8AB6C5FA7BA00E5A07ED678AB58EAB878E28 - -Count = 474 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A -CT = 5BA1831D487F8E249C9193393C15FB224FEE175145C5307517C19E6C5D56 - -Count = 475 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B -CT = FEB6AB5F168A5792A88D0A6BF2B2ABFD83FD8F4BF4F469D78CBE7979BFF9 - -Count = 476 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C -CT = 028697CF285B46BFDA13BCECAD22B0B858B41AC73784FF5CCB9D9CCB4F6D - -Count = 477 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C0D -CT = 681E88ADDF4178136693CD3DBBC01E0DB8844B75F722CF56595B6F5D9CC3 - -Count = 478 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C0D0E -CT = E43AF8F55790660AB0B7F3519AFFF1969980E03C575237D49B924F28F96D - -Count = 479 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C0D0E0F -CT = DF0CA1114F2E0051AC6E347F45D1AE014786DEBEF11E53410A8649D23E95 - -Count = 480 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 5411119D71ACCC5D9A10F0DBE4D8BFD239638095015E671696A2F2068BA1 - -Count = 481 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 36CE88BC57F948B6D81B20AC749DF19D7875F3103DCA42CA625CB002976D - -Count = 482 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = C171586599C0292C87A35673E8DA449FF0166DF3494D14B19E6B1C1AB31E - -Count = 483 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 01E47467EC5F81AD224EE173D64AB72E577820BF3EE5086F23FEE0CFE628 - -Count = 484 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = FBAACC649496A650F85A500FA693710FF3F37C59320537B195735AB61C4A - -Count = 485 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = EE7B6FEA6D4E6CE7C175DC649B90EBCCB57D3E611A1320F2C9A61E6BD1DE - -Count = 486 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 95AFA27D4D8CEA68B2D46DF5AEDBC61B002FF1DD74D44673053CC08770CC - -Count = 487 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = CF2FB7E73873BE2A926E3B4A370DA83DCAF9576F0532AC1A464044B2B085 - -Count = 488 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = A5AEC98AA860CE17F00838C6C94B220B59F0BECCAA383A7BFC5664988B03 - -Count = 489 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = 4E7F9F0B45CB9DC4DFFA2C451437AC9A5C33B688DBD00D1296BFE7EA5954 - -Count = 490 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = BB85E2FF036A7EE15F49548C5FDFD9538C7D12324E03688874EF326F058D - -Count = 491 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 545D8C7B15744B9AB0638AD7C0CF63C40B9DB7A7B09B9F5346299D696936 - -Count = 492 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = 2284612C4744BFB1E36285EDB535AE344BF30F7DB937D53F27292C3AC9A8 - -Count = 493 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 05F8B0EDB034954E085389B6B011B629C2C8D29BA655AEF6C1D5651DE6DE - -Count = 494 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = C019C29603C1E1ED3D94BA68BD5C8ABFCDD08659E350F48413749455160E - -Count = 495 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 13B625E5F4DF92DADDBC6B7065B3DBA1A30947A7363459E1D44E6408DB30 - -Count = 496 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E -AD = -CT = BC73B1C2F3FE0C59A329417144737DBF9EADF52B2382A873F68F61EEB4B1E6 - -Count = 497 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E -AD = 00 -CT = B1A8DFB192FA2C1BD978DE3A0A1C827B31E47992DA2F2F9E586487C1A373C6 - -Count = 498 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E -AD = 0001 -CT = FDC957611833EC30511C583BF3CB663AF367ECB9C9C1965291C1B98A7010E7 - -Count = 499 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E -AD = 000102 -CT = A2EEF13FA0EA16BA67E6E4118796073DC545F840757D2CCAF62F547F3FDF85 - -Count = 500 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E -AD = 00010203 -CT = 3ECF2C0B164EEE0B9D655C5207B7F4BDD7B2E5EC90CAA58D304D4A6CA36E5A - -Count = 501 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E -AD = 0001020304 -CT = 7EA0A67026AE738620E369B96D4858C99CFFD132E5FDCC55C456E462BBE9B2 - -Count = 502 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405 -CT = 1A9471657230C2272C4192D9D193FE7B08872C49F8041960033969378E0E04 - -Count = 503 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E -AD = 00010203040506 -CT = 1F6D4FBAA595F14B9918C01A5AE870DC924800E37672B419C101400C950163 - -Count = 504 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E -AD = 0001020304050607 -CT = 86A003A0C56CDDD7A9853AA70F7DB89ADD3A8957E257244DBA5638593D84B1 - -Count = 505 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708 -CT = 5840C9CD51283BD1D9096E4CC1039AA86FE9F2A30258F5CFCB6707A39BC04B - -Count = 506 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E -AD = 00010203040506070809 -CT = 6B74495409113A904D4573AC8AB6617505745A7A72E94D8F1D178827B4B2D7 - -Count = 507 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A -CT = 5BA1831D487F8E249C9193393C1589F89DF5B2B4D5DE3477BE33AEA4646665 - -Count = 508 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B -CT = FEB6AB5F168A5792A88D0A6BF2B26FCE3E34BF5A0AAD3C5311BFA5FF819830 - -Count = 509 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C -CT = 028697CF285B46BFDA13BCECAD22D03512AC8357781589B691EE5F6E27C129 - -Count = 510 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C0D -CT = 681E88ADDF4178136693CD3DBBC0020AED7B3D70FF9439A9936983EF8395EE - -Count = 511 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C0D0E -CT = E43AF8F55790660AB0B7F3519AFF292CAFC3BD4195801D7AA68000696B7565 - -Count = 512 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C0D0E0F -CT = DF0CA1114F2E0051AC6E347F45D177B9EFFC418CB4CA7D851B183E31085E4C - -Count = 513 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 5411119D71ACCC5D9A10F0DBE4D8BD4C6CA4C0CFE2C72C7058221CC727358B - -Count = 514 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 36CE88BC57F948B6D81B20AC749D464634225206989D61647BC0864DF25E2F - -Count = 515 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = C171586599C0292C87A35673E8DAA11259B0F6817357302C3A8D6178760A6F - -Count = 516 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 01E47467EC5F81AD224EE173D64A14FB6CAFFD331DEBB2123E9271670FF2BC - -Count = 517 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = FBAACC649496A650F85A500FA69307E45758D7F0BE51ABE000379CC0893F1B - -Count = 518 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = EE7B6FEA6D4E6CE7C175DC649B9022A007EDB4D7559482DF00F4A9515C7045 - -Count = 519 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 95AFA27D4D8CEA68B2D46DF5AEDB88EDF2994F6FF8EC61665CE48A66C2FFEE - -Count = 520 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = CF2FB7E73873BE2A926E3B4A370D0C34EDD8376481278FA4081D265A899CC6 - -Count = 521 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = A5AEC98AA860CE17F00838C6C94B138A900ABF67976D03D83E1ED8EC8CE19C - -Count = 522 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = 4E7F9F0B45CB9DC4DFFA2C451437CD7137EDEAC00182D8D29D3A9E75130B8F - -Count = 523 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = BB85E2FF036A7EE15F49548C5FDF93C5518C35AF102AB1832B9D03205FE87B - -Count = 524 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 545D8C7B15744B9AB0638AD7C0CF38276161382202C8F988A3C9630CEDCF2A - -Count = 525 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = 2284612C4744BFB1E36285EDB53556694E0164A2608392E00DA3E62FE0BF58 - -Count = 526 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 05F8B0EDB034954E085389B6B0117E49E9F3AA1FA522A05F04B1A541A76218 - -Count = 527 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = C019C29603C1E1ED3D94BA68BD5CCBBBE3BF26397FEF42EE9F3D9BB5430A6D - -Count = 528 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 13B625E5F4DF92DADDBC6B7065B36ED1635C3E105E74AEA863C5F485D16E83 - -Count = 529 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F -AD = -CT = BC73B1C2F3FE0C59A329417144737D0FBC27F66BA4C739B4C13F7E85D40CF381 - -Count = 530 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F -AD = 00 -CT = B1A8DFB192FA2C1BD978DE3A0A1C82E274E644246D8CE10336162634B9B24D07 - -Count = 531 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F -AD = 0001 -CT = FDC957611833EC30511C583BF3CB66B6ED3E53276F464D7C5912F66B5F47573B - -Count = 532 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102 -CT = A2EEF13FA0EA16BA67E6E4118796071CE7964ED06F6CE4853E602BF702E9FFBF - -Count = 533 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F -AD = 00010203 -CT = 3ECF2C0B164EEE0B9D655C5207B7F4AAE3C87D827AFAEF4AD0CD65D3EA1518CD - -Count = 534 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F -AD = 0001020304 -CT = 7EA0A67026AE738620E369B96D4858ED6BB7C693B55C450985D5F82D198FFDC8 - -Count = 535 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405 -CT = 1A9471657230C2272C4192D9D193FE028A35AD1C7F60C2F2F6CF1CCF54FBC9C9 - -Count = 536 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F -AD = 00010203040506 -CT = 1F6D4FBAA595F14B9918C01A5AE870C68893F3F2A8DDA2C2919298EE031BF69D - -Count = 537 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F -AD = 0001020304050607 -CT = 86A003A0C56CDDD7A9853AA70F7DB885C3C8A3CCAE65B6F0FDDFA758199EE268 - -Count = 538 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708 -CT = 5840C9CD51283BD1D9096E4CC1039AF9B1F0F12D8A9A226C7B8A6D2788AA7BE9 - -Count = 539 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F -AD = 00010203040506070809 -CT = 6B74495409113A904D4573AC8AB661F6761EBA952939A69653BCF593B4165481 - -Count = 540 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A -CT = 5BA1831D487F8E249C9193393C1589A8DC9204B1CE9D7EA02976AC98DCB74B8B - -Count = 541 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B -CT = FEB6AB5F168A5792A88D0A6BF2B26F2996AA3E52FB7A87CCE290DFDB8BA69505 - -Count = 542 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C -CT = 028697CF285B46BFDA13BCECAD22D09E72F8BCDF4E7842CA0590EEBA76DEFEE6 - -Count = 543 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C0D -CT = 681E88ADDF4178136693CD3DBBC0020A0F7BF48A4C1AE97006FDEB1FA1B8DDFD - -Count = 544 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C0D0E -CT = E43AF8F55790660AB0B7F3519AFF29F08D5CFAC68A38EBA31D716573780F3538 - -Count = 545 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C0D0E0F -CT = DF0CA1114F2E0051AC6E347F45D177822623D7A63D33E083B1E5CE9C6028BD94 - -Count = 546 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 5411119D71ACCC5D9A10F0DBE4D8BD5C1BC354027E2AC04207756D70D0674F77 - -Count = 547 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 36CE88BC57F948B6D81B20AC749D46C31C254F2CB18224F7E8D30D24D19FD108 - -Count = 548 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = C171586599C0292C87A35673E8DAA1A138A5EE479877E909213559980546388A - -Count = 549 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 01E47467EC5F81AD224EE173D64A14FCC6D69751C0A4424F0C2942A72F427FA7 - -Count = 550 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = FBAACC649496A650F85A500FA69307A576613A7F409C3A12D765D155231B87B5 - -Count = 551 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = EE7B6FEA6D4E6CE7C175DC649B902201C1E11F06943E7A86571F1F75A6DE0B6B - -Count = 552 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 95AFA27D4D8CEA68B2D46DF5AEDB88A37DC2EE750D7F282123DB801E050031B0 - -Count = 553 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = CF2FB7E73873BE2A926E3B4A370D0C792245BBFC7885EA94E97054615A30FC3F - -Count = 554 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = A5AEC98AA860CE17F00838C6C94B1368777B1D66D154D14AAF3F54D0021F744F - -Count = 555 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = 4E7F9F0B45CB9DC4DFFA2C451437CDE1CC6C888E036F5FD6F28DF83915773FA7 - -Count = 556 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = BB85E2FF036A7EE15F49548C5FDF93D39B047288ECECA45AD8FF0D41CC4A977C - -Count = 557 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 545D8C7B15744B9AB0638AD7C0CF3895E966678F050BF8A622E0E36C1A429758 - -Count = 558 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = 2284612C4744BFB1E36285EDB5355666F30F37D5EA8E301EE833ADF7E79E823D - -Count = 559 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 05F8B0EDB034954E085389B6B0117E59A7DC7505608FE3223364EAB0A0BA7CA0 - -Count = 560 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = C019C29603C1E1ED3D94BA68BD5CCB8678D4C3D3F048EE9E9D3BA25AAD479947 - -Count = 561 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 13B625E5F4DF92DADDBC6B7065B36E47700FFC1B8F7AA3A52695AB9449A89509 - -Count = 562 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10 -AD = -CT = BC73B1C2F3FE0C59A329417144737D0FA3E94965B55CF7C68ACE5BB1155B7366BB - -Count = 563 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 00 -CT = B1A8DFB192FA2C1BD978DE3A0A1C82E2C1B00CF717A2B285A2BD0B5F6ABC07B02D - -Count = 564 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 0001 -CT = FDC957611833EC30511C583BF3CB66B61CC71339E3142D6E5657807C293FE78F1A - -Count = 565 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102 -CT = A2EEF13FA0EA16BA67E6E4118796071CCD5B433F09FD96A4B946ACE727A0562163 - -Count = 566 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 00010203 -CT = 3ECF2C0B164EEE0B9D655C5207B7F4AA855AD2D11781719D789069FDD9A5A85791 - -Count = 567 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 0001020304 -CT = 7EA0A67026AE738620E369B96D4858EDBF75BC04DF41B03B02101BDAE30E6BE9BD - -Count = 568 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405 -CT = 1A9471657230C2272C4192D9D193FE02DC781366A8415E7C2525018A686A4C90CE - -Count = 569 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 00010203040506 -CT = 1F6D4FBAA595F14B9918C01A5AE870C6D1567755746F83385964DAFB27E1C06DCE - -Count = 570 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 0001020304050607 -CT = 86A003A0C56CDDD7A9853AA70F7DB885591523E456A5CB4954B2E3640290AEA27A - -Count = 571 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708 -CT = 5840C9CD51283BD1D9096E4CC1039AF9816BBED28A10965A9E1C942313591086FC - -Count = 572 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 00010203040506070809 -CT = 6B74495409113A904D4573AC8AB661F6FDC4E336C15BD150F67DB989F58EBD50D6 - -Count = 573 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A -CT = 5BA1831D487F8E249C9193393C1589A8BC6309ED917DAEF1B08699560C1966D71D - -Count = 574 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B -CT = FEB6AB5F168A5792A88D0A6BF2B26F29CAA27FF1EFB38B5B2FA030ACFD6A5097D2 - -Count = 575 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C -CT = 028697CF285B46BFDA13BCECAD22D09E411A75B4C85FD7A9E8957F544AF80E3C19 - -Count = 576 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C0D -CT = 681E88ADDF4178136693CD3DBBC0020A93425CCD824330EDBAE26DB4C16F7700E9 - -Count = 577 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C0D0E -CT = E43AF8F55790660AB0B7F3519AFF29F07916C2F5F315326EFE519B69455539E3C2 - -Count = 578 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C0D0E0F -CT = DF0CA1114F2E0051AC6E347F45D17782241F204838259A40DE0013FCF1E9EE4FB9 - -Count = 579 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 5411119D71ACCC5D9A10F0DBE4D8BD5C1250A1D8BC074337DBBF23BA82D9C36C2F - -Count = 580 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 36CE88BC57F948B6D81B20AC749D46C3A839468957E5BBA51496AD832C3861B50D - -Count = 581 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = C171586599C0292C87A35673E8DAA1A1899A0E93B2CBAAFF6C95C1CA6061343B27 - -Count = 582 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 01E47467EC5F81AD224EE173D64A14FCBB530250EAAD81050665D6075237AAA4B9 - -Count = 583 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = FBAACC649496A650F85A500FA69307A5F4816599982CE5036B80CD65AD11B9AE4F - -Count = 584 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = EE7B6FEA6D4E6CE7C175DC649B90220168C161D14DACEDE617B9DF2EEF6C61DFB3 - -Count = 585 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 95AFA27D4D8CEA68B2D46DF5AEDB88A3B88AB44E188AE12C98979F6E1864EF8312 - -Count = 586 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = CF2FB7E73873BE2A926E3B4A370D0C79B5DA97C31E469242751E9D346602C2A415 - -Count = 587 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = A5AEC98AA860CE17F00838C6C94B13686086CAB0A28850C1446CEB5343EC7FF90E - -Count = 588 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = 4E7F9F0B45CB9DC4DFFA2C451437CDE1BB772FC9EB84B1C03D6CE7A026BFA7D0A4 - -Count = 589 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = BB85E2FF036A7EE15F49548C5FDF93D318D870D7A89A4080249C03C1BFE30D10B0 - -Count = 590 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 545D8C7B15744B9AB0638AD7C0CF38950F1BB343F270B6D5E807CCD9BDA774BA81 - -Count = 591 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = 2284612C4744BFB1E36285EDB5355666023BE810873BF13BA3F3B879DED0402589 - -Count = 592 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 05F8B0EDB034954E085389B6B0117E59BF0E22B520BDB8D5D85575AE92EB83AA72 - -Count = 593 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = C019C29603C1E1ED3D94BA68BD5CCB86FF73A5D03739FA6B3AC942FEBC13044E2C - -Count = 594 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 13B625E5F4DF92DADDBC6B7065B36E47684129B85172BFCC6E6B9ADB37A9B6DAC3 - -Count = 595 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = -CT = BC73B1C2F3FE0C59A329417144737D0FA3E28AF3BEE9B5092D14E69B272D9C4A994D - -Count = 596 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 00 -CT = B1A8DFB192FA2C1BD978DE3A0A1C82E2C170F488BC956899BB01BCB786D29157D94A - -Count = 597 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 0001 -CT = FDC957611833EC30511C583BF3CB66B61C4B36963F452687F5ED975072BBA784B4A7 - -Count = 598 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102 -CT = A2EEF13FA0EA16BA67E6E4118796071CCD01DE8925A6D36A64CDB1EE73FD760D28F5 - -Count = 599 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 00010203 -CT = 3ECF2C0B164EEE0B9D655C5207B7F4AA854EB94FB4DE375EDF94A5B470F06774E805 - -Count = 600 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 0001020304 -CT = 7EA0A67026AE738620E369B96D4858EDBF9F102B514465DC33380294F451C76B9A65 - -Count = 601 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405 -CT = 1A9471657230C2272C4192D9D193FE02DC9079912EECCAE995ADFD795DFD764DE46C - -Count = 602 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 00010203040506 -CT = 1F6D4FBAA595F14B9918C01A5AE870C6D1764ECDFD36A892FF2203F2D05FA45AC1C8 - -Count = 603 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 0001020304050607 -CT = 86A003A0C56CDDD7A9853AA70F7DB88559C06D04754D2FA566054AB4A07A81BE4C9E - -Count = 604 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708 -CT = 5840C9CD51283BD1D9096E4CC1039AF981EEBD4267F71E1FD3F5CD4E9DA58A0F5AFF - -Count = 605 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 00010203040506070809 -CT = 6B74495409113A904D4573AC8AB661F6FD4A0694173A4160C48BA7D7C2BFBD8E1912 - -Count = 606 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A -CT = 5BA1831D487F8E249C9193393C1589A8BCAB31904F12FD12E1F8DE0802316007830D - -Count = 607 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B -CT = FEB6AB5F168A5792A88D0A6BF2B26F29CAD9B8C680D44A4B30D1CA07189AFCF2BCF4 - -Count = 608 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C -CT = 028697CF285B46BFDA13BCECAD22D09E416CD8AB58EDEF4673FC07A56EFC751BB984 - -Count = 609 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C0D -CT = 681E88ADDF4178136693CD3DBBC0020A935B44E15918C817D4D03D8E531AD8AB80F3 - -Count = 610 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C0D0E -CT = E43AF8F55790660AB0B7F3519AFF29F07990C77D4B146E305CD8094D2BD81D38FDCB - -Count = 611 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C0D0E0F -CT = DF0CA1114F2E0051AC6E347F45D177822409BF0501349A5181635A210ADD7365E640 - -Count = 612 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 5411119D71ACCC5D9A10F0DBE4D8BD5C123BB4D54B2B3FE883F718F9D58E1AD141DE - -Count = 613 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 36CE88BC57F948B6D81B20AC749D46C3A8396CE3C08237FC3024586EA3DBD036B50A - -Count = 614 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = C171586599C0292C87A35673E8DAA1A189C7593777AB5E073F8892B8B824979A4562 - -Count = 615 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 01E47467EC5F81AD224EE173D64A14FCBB4D3D207D6AAF72D841C87F09C0EA2151BE - -Count = 616 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = FBAACC649496A650F85A500FA69307A5F49E28BB0A58C53420592FD6AA1B8FCC1D83 - -Count = 617 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = EE7B6FEA6D4E6CE7C175DC649B90220168E9CD9EDDFD6C7DFA7B188896F8F76DE5E8 - -Count = 618 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 95AFA27D4D8CEA68B2D46DF5AEDB88A3B834FD6FA14AB59A29C08E6BD9CF6B1F830C - -Count = 619 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = CF2FB7E73873BE2A926E3B4A370D0C79B56653F2F71FB527770E69768FFDC302D2F8 - -Count = 620 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = A5AEC98AA860CE17F00838C6C94B13686065D5F49C1F34BD00AE10C6419C92375AE8 - -Count = 621 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = 4E7F9F0B45CB9DC4DFFA2C451437CDE1BBFA7C429CC1289C9B7190817840217703F9 - -Count = 622 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = BB85E2FF036A7EE15F49548C5FDF93D31888916599B7C2CC665566E816BA173928F4 - -Count = 623 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 545D8C7B15744B9AB0638AD7C0CF38950F4385F21F8E8CAB99E15B8CEF21FE36B2AA - -Count = 624 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = 2284612C4744BFB1E36285EDB535566602D52EC321FB1662EB126F8A4D7827A14320 - -Count = 625 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 05F8B0EDB034954E085389B6B0117E59BF7A68E0DA37313FC16B550D3F1C394A1252 - -Count = 626 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = C019C29603C1E1ED3D94BA68BD5CCB86FF53A38B655629E4C40F0721A20E033A360F - -Count = 627 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 13B625E5F4DF92DADDBC6B7065B36E4768EEEEA3FB5CADD45164F16B905DB8E1DFC7 - -Count = 628 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = -CT = BC73B1C2F3FE0C59A329417144737D0FA3E2C412186B9693087B6F482DCF38E96E31DF - -Count = 629 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 00 -CT = B1A8DFB192FA2C1BD978DE3A0A1C82E2C1709F1F8D3966F2FF9B9DE1741674EC38A1E4 - -Count = 630 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 0001 -CT = FDC957611833EC30511C583BF3CB66B61C4B0D0299A367A2285B7B535B46B09B3043A2 - -Count = 631 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102 -CT = A2EEF13FA0EA16BA67E6E4118796071CCD01477922DC7696B8130B940240E5B1DC57A5 - -Count = 632 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 00010203 -CT = 3ECF2C0B164EEE0B9D655C5207B7F4AA854ECC733D0EF3BDD6BD203D99294F9504B914 - -Count = 633 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 0001020304 -CT = 7EA0A67026AE738620E369B96D4858EDBF9FEEA5AF90C1F8FB417CC85E797D8F2A8C79 - -Count = 634 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405 -CT = 1A9471657230C2272C4192D9D193FE02DC9096E4F6CB948BEC039BC6C0FD38410596C0 - -Count = 635 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 00010203040506 -CT = 1F6D4FBAA595F14B9918C01A5AE870C6D1761FE486D86D9682BFC4B2E642D2B89C93A0 - -Count = 636 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 0001020304050607 -CT = 86A003A0C56CDDD7A9853AA70F7DB88559C0E0C752C3A088FB389C9197F09A1399F235 - -Count = 637 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708 -CT = 5840C9CD51283BD1D9096E4CC1039AF981EE5F93317BDFDB4818A72DF2D42312A461B1 - -Count = 638 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 00010203040506070809 -CT = 6B74495409113A904D4573AC8AB661F6FD4A71930AAFCBB00D251F6D67D5F883CDE576 - -Count = 639 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A -CT = 5BA1831D487F8E249C9193393C1589A8BCAB84BAD8928E7339654BC881F7E9C75ABAA1 - -Count = 640 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B -CT = FEB6AB5F168A5792A88D0A6BF2B26F29CAD93B2EC2DD42EA7AFE70CECF57777CADD492 - -Count = 641 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C -CT = 028697CF285B46BFDA13BCECAD22D09E416C16E1C76546C9F0EAAF55105A68F855172B - -Count = 642 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C0D -CT = 681E88ADDF4178136693CD3DBBC0020A935B95956E582C3435B1194016E54EAE574ED0 - -Count = 643 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C0D0E -CT = E43AF8F55790660AB0B7F3519AFF29F079902E76117AE4741B4C740A967473ADA49CDE - -Count = 644 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C0D0E0F -CT = DF0CA1114F2E0051AC6E347F45D1778224098F536618659641BA9328147386A21AF85A - -Count = 645 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 5411119D71ACCC5D9A10F0DBE4D8BD5C123B10D87D073C47D6F698F57B23811D899CC7 - -Count = 646 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 36CE88BC57F948B6D81B20AC749D46C3A83989796389BAD48E7EF042E5B5430D00FC68 - -Count = 647 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = C171586599C0292C87A35673E8DAA1A189C728C7BB4F7C97AA81E121B83D06E8ADD53E - -Count = 648 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 01E47467EC5F81AD224EE173D64A14FCBB4DC4A7C3E3E5CAB0BA73CCCE114803FFC791 - -Count = 649 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = FBAACC649496A650F85A500FA69307A5F49E877D1E0A823DDFC95E99AAC2A0C6894996 - -Count = 650 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = EE7B6FEA6D4E6CE7C175DC649B90220168E94A760941236BD111A9A5EAEF6A25A3712E - -Count = 651 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 95AFA27D4D8CEA68B2D46DF5AEDB88A3B8348D76921570C6E702D854693874FCE219C6 - -Count = 652 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = CF2FB7E73873BE2A926E3B4A370D0C79B566BD39CD7C11F55AE4DF4AF4AED4BFB3BB10 - -Count = 653 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = A5AEC98AA860CE17F00838C6C94B1368606539C87F2C3B3A091313A25ADCAF8563FD59 - -Count = 654 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = 4E7F9F0B45CB9DC4DFFA2C451437CDE1BBFA0DB97F39B1763BCC0482D83A8356C25C94 - -Count = 655 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = BB85E2FF036A7EE15F49548C5FDF93D31888FC356AFD3366BD6386B4D5EB4701139E05 - -Count = 656 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 545D8C7B15744B9AB0638AD7C0CF38950F43A177B8532426C624C7B590C9791FA3889A - -Count = 657 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = 2284612C4744BFB1E36285EDB535566602D57E50C92463A0D949BAE2936ABC05AD2B4F - -Count = 658 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 05F8B0EDB034954E085389B6B0117E59BF7A14418BD90E81F8E6163BA088E3119951BC - -Count = 659 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = C019C29603C1E1ED3D94BA68BD5CCB86FF53CCC69FE884E6E3F6ADF881828221CB1566 - -Count = 660 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 13B625E5F4DF92DADDBC6B7065B36E4768EE87D4CBF131CBC58C7B5D975349E2F45CDA - -Count = 661 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = -CT = BC73B1C2F3FE0C59A329417144737D0FA3E2C4D0113B39880922B0319CAD951F72E49A74 - -Count = 662 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 00 -CT = B1A8DFB192FA2C1BD978DE3A0A1C82E2C1709F2797D89E5625504A6C856013EC3BD6205A - -Count = 663 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 0001 -CT = FDC957611833EC30511C583BF3CB66B61C4B0D721481415AE5630243B9BA0D5677C372AB - -Count = 664 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102 -CT = A2EEF13FA0EA16BA67E6E4118796071CCD01474E1E50A2E4072A59607B7B2A1F73C02F67 - -Count = 665 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 00010203 -CT = 3ECF2C0B164EEE0B9D655C5207B7F4AA854ECC9D2ACB72411A8A0FCED55CB11A9A5A16C5 - -Count = 666 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 0001020304 -CT = 7EA0A67026AE738620E369B96D4858EDBF9FEECCA3441698ABE9660BB97E2F7D850A168C - -Count = 667 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405 -CT = 1A9471657230C2272C4192D9D193FE02DC90965A9AF0B2840B259CB584AB0CE8BDE7AB85 - -Count = 668 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 00010203040506 -CT = 1F6D4FBAA595F14B9918C01A5AE870C6D1761F68DCD8671A169B81865499677008587F95 - -Count = 669 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 0001020304050607 -CT = 86A003A0C56CDDD7A9853AA70F7DB88559C0E0BCBA03CD249FF1D87F84F3702CADF8C9E2 - -Count = 670 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708 -CT = 5840C9CD51283BD1D9096E4CC1039AF981EE5F4127A60C302CF722FCAE3084F11AE9D631 - -Count = 671 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 00010203040506070809 -CT = 6B74495409113A904D4573AC8AB661F6FD4A711D7BE33BC4D14ED58C099963E918C9E13A - -Count = 672 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A -CT = 5BA1831D487F8E249C9193393C1589A8BCAB84228D685006D9EC12CC2A22FBAA342B2FFC - -Count = 673 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B -CT = FEB6AB5F168A5792A88D0A6BF2B26F29CAD93B50DA5C3C6971FF1AA3B2016458C8A5BC47 - -Count = 674 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C -CT = 028697CF285B46BFDA13BCECAD22D09E416C16D07E8268F0F0953AF9EF515EFEED09C248 - -Count = 675 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C0D -CT = 681E88ADDF4178136693CD3DBBC0020A935B9535710EFAA5D7C67B93F22E5F119C0E77E2 - -Count = 676 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C0D0E -CT = E43AF8F55790660AB0B7F3519AFF29F079902EC49909104455BAB07A49FFDB0C89B15D8D - -Count = 677 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C0D0E0F -CT = DF0CA1114F2E0051AC6E347F45D1778224098FA9114A5B2B65057DFCD9F329E6EC6BC715 - -Count = 678 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 5411119D71ACCC5D9A10F0DBE4D8BD5C123B10FBCE3585B384305199C72AC362C37F853B - -Count = 679 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 36CE88BC57F948B6D81B20AC749D46C3A83989708479BC859BEFF75C7ADB48223100BFD5 - -Count = 680 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = C171586599C0292C87A35673E8DAA1A189C72898D5FF8FBA03CC4133F027A57BE0901D71 - -Count = 681 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 01E47467EC5F81AD224EE173D64A14FCBB4DC423138B870DFDC0833895CAB003AB49ECD7 - -Count = 682 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = FBAACC649496A650F85A500FA69307A5F49E8793A2B448CEE7D4215597283C8D7354EE33 - -Count = 683 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = EE7B6FEA6D4E6CE7C175DC649B90220168E94A6845D7B37C9296A23B1048DE36AF2BCEDF - -Count = 684 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 95AFA27D4D8CEA68B2D46DF5AEDB88A3B8348D176945CF1E1A767292603BA7CE3EA2273D - -Count = 685 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = CF2FB7E73873BE2A926E3B4A370D0C79B566BD95CEE0307CECACD520FDD221209E14DEC6 - -Count = 686 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = A5AEC98AA860CE17F00838C6C94B136860653905F38D47FECBDFE66E89C57C08F1F9ABE0 - -Count = 687 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = 4E7F9F0B45CB9DC4DFFA2C451437CDE1BBFA0D80D217E35B5D0EF71D74BFAC53744E6517 - -Count = 688 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = BB85E2FF036A7EE15F49548C5FDF93D31888FC10A03A1505AEFBB48BD91B116033530DB9 - -Count = 689 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 545D8C7B15744B9AB0638AD7C0CF38950F43A12CBC003E6BEA17D00EACF718B76D9F11A8 - -Count = 690 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = 2284612C4744BFB1E36285EDB535566602D57E6AFFF473CDC1991B8D0187717024F71024 - -Count = 691 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 05F8B0EDB034954E085389B6B0117E59BF7A14459F502DCE435CAD6F1B4306FBC14A5234 - -Count = 692 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = C019C29603C1E1ED3D94BA68BD5CCB86FF53CC90C05FA190827EEF79781B14E625986E19 - -Count = 693 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 13B625E5F4DF92DADDBC6B7065B36E4768EE87751884D842D13CAEDB16405270F0EE4D12 - -Count = 694 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = -CT = BC73B1C2F3FE0C59A329417144737D0FA3E2C4D09CF98ED89583E781AFF030D39717B82D3C - -Count = 695 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 00 -CT = B1A8DFB192FA2C1BD978DE3A0A1C82E2C1709F271498880D2C84981089BDD646F73CA0E39A - -Count = 696 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 0001 -CT = FDC957611833EC30511C583BF3CB66B61C4B0D72D4B0940C85A65FE2CBB5DCDBFF867619A4 - -Count = 697 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102 -CT = A2EEF13FA0EA16BA67E6E4118796071CCD01474EF79050F8E380B0BD86994E3A73FECC635D - -Count = 698 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 00010203 -CT = 3ECF2C0B164EEE0B9D655C5207B7F4AA854ECC9D6D95B29FEB98723D14D4A4A39484136DE4 - -Count = 699 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 0001020304 -CT = 7EA0A67026AE738620E369B96D4858EDBF9FEECC57DA43F70FD4B7D070F0C45BF8F1F2C324 - -Count = 700 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405 -CT = 1A9471657230C2272C4192D9D193FE02DC90965A75214436047AC70F48621B690A2D424935 - -Count = 701 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 00010203040506 -CT = 1F6D4FBAA595F14B9918C01A5AE870C6D1761F68DD38B0821578267EF8F9BE1B58A5B9CE5F - -Count = 702 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 0001020304050607 -CT = 86A003A0C56CDDD7A9853AA70F7DB88559C0E0BC24BB253FC42FAE8CD92CE505771B7A4D26 - -Count = 703 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708 -CT = 5840C9CD51283BD1D9096E4CC1039AF981EE5F415C21CCC3465F87A4F3D59D431050F6FA9D - -Count = 704 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 00010203040506070809 -CT = 6B74495409113A904D4573AC8AB661F6FD4A711DAF8D5C07D456DD97BFB915619203B71CA7 - -Count = 705 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A -CT = 5BA1831D487F8E249C9193393C1589A8BCAB84224E08AFCF81AA6CD5448A9AB415847C912B - -Count = 706 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B -CT = FEB6AB5F168A5792A88D0A6BF2B26F29CAD93B504E1688285432703BED760F6DC230FD921C - -Count = 707 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C -CT = 028697CF285B46BFDA13BCECAD22D09E416C16D092FFA8AF72F786636FA19BBA41913E7480 - -Count = 708 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C0D -CT = 681E88ADDF4178136693CD3DBBC0020A935B95350FB98DDB68154775DC70EA9EB5B56D2062 - -Count = 709 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C0D0E -CT = E43AF8F55790660AB0B7F3519AFF29F079902EC431DEF31DCA4F06E42CDE85367EE10E8DC9 - -Count = 710 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C0D0E0F -CT = DF0CA1114F2E0051AC6E347F45D1778224098FA934114C1AEC88DB6C4713243D08A0739C88 - -Count = 711 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 5411119D71ACCC5D9A10F0DBE4D8BD5C123B10FBC461F9241D0492BB1EFE92DA2AF6A7E8B7 - -Count = 712 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 36CE88BC57F948B6D81B20AC749D46C3A83989704D6404BA3AE7F3BBA733F434078346D919 - -Count = 713 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = C171586599C0292C87A35673E8DAA1A189C728986A8E3B85735A6361DC2CE626829DC3EA29 - -Count = 714 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 01E47467EC5F81AD224EE173D64A14FCBB4DC423DDA41D2093A1846321A7EEE21E5343D327 - -Count = 715 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = FBAACC649496A650F85A500FA69307A5F49E879359936BAC93240C8BED40AE18508190DA2F - -Count = 716 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = EE7B6FEA6D4E6CE7C175DC649B90220168E94A687A147F3A3E6004273A78032425DFC5F777 - -Count = 717 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 95AFA27D4D8CEA68B2D46DF5AEDB88A3B8348D174E748743CAA786F8992D11A440224440EA - -Count = 718 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = CF2FB7E73873BE2A926E3B4A370D0C79B566BD95CD7B1E52B72194946EE8E9882015E3D4AB - -Count = 719 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = A5AEC98AA860CE17F00838C6C94B1368606539054FC057C99DB021E60DD14B2FC46074FFC0 - -Count = 720 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = 4E7F9F0B45CB9DC4DFFA2C451437CDE1BBFA0D802ABA46024FD7A1D7B1512AA2C18F36930D - -Count = 721 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = BB85E2FF036A7EE15F49548C5FDF93D31888FC103F6AE18681BAE77EB8439E6BCD4EE42E3C - -Count = 722 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 545D8C7B15744B9AB0638AD7C0CF38950F43A12CAD6C855F8901AE805DCBB62B6BD7464E37 - -Count = 723 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = 2284612C4744BFB1E36285EDB535566602D57E6A4E5E69913B98CF271FF33FB8EEB243E35F - -Count = 724 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 05F8B0EDB034954E085389B6B0117E59BF7A1445EF9ED641EDA3F5BA8A467C5616458A3572 - -Count = 725 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = C019C29603C1E1ED3D94BA68BD5CCB86FF53CC904E9430E509E91A7D9E75097AFF4EE605A6 - -Count = 726 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 13B625E5F4DF92DADDBC6B7065B36E4768EE8775191ED4EC4148E7075A60CD258104964A2A - -Count = 727 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = -CT = BC73B1C2F3FE0C59A329417144737D0FA3E2C4D09CFA40247B72318085A05612400863BBA117 - -Count = 728 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 00 -CT = B1A8DFB192FA2C1BD978DE3A0A1C82E2C1709F2714A24DF989644C18B38A6CA551C8CBFD7B7C - -Count = 729 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 0001 -CT = FDC957611833EC30511C583BF3CB66B61C4B0D72D47B4C01BDA1EF44B721CCEAA30813A4A161 - -Count = 730 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102 -CT = A2EEF13FA0EA16BA67E6E4118796071CCD01474EF7B92BF79BA163BA118C9D26AB46EB44954C - -Count = 731 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 00010203 -CT = 3ECF2C0B164EEE0B9D655C5207B7F4AA854ECC9D6D483A18AA87D56BBC3BF61E926084E71160 - -Count = 732 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 0001020304 -CT = 7EA0A67026AE738620E369B96D4858EDBF9FEECC57ECCF9AA1AEFEA056E7D0B0BD1E136FD4AA - -Count = 733 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405 -CT = 1A9471657230C2272C4192D9D193FE02DC90965A75DB9B8694E9591740F85EDF5ACF828E6158 - -Count = 734 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 00010203040506 -CT = 1F6D4FBAA595F14B9918C01A5AE870C6D1761F68DDDA998E5981F5E16DEE607220F9EBB01D55 - -Count = 735 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 0001020304050607 -CT = 86A003A0C56CDDD7A9853AA70F7DB88559C0E0BC24903C9481FCC5CCCDB9DF5AB4F1B3230D43 - -Count = 736 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708 -CT = 5840C9CD51283BD1D9096E4CC1039AF981EE5F415C6F5FE614441BC62D3775F63B7463A5073B - -Count = 737 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 00010203040506070809 -CT = 6B74495409113A904D4573AC8AB661F6FD4A711DAF4A6379F0EC4E11725F5E6D5F81411E6C4E - -Count = 738 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A -CT = 5BA1831D487F8E249C9193393C1589A8BCAB84224E6C0069B15F0D1F1E81B57EB089F5065B2E - -Count = 739 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B -CT = FEB6AB5F168A5792A88D0A6BF2B26F29CAD93B504E2F4981BEF3C3469B90E583F71847CA3314 - -Count = 740 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C -CT = 028697CF285B46BFDA13BCECAD22D09E416C16D092BB05AB4C5F87F29EEC456E8D2E98FB10C1 - -Count = 741 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C0D -CT = 681E88ADDF4178136693CD3DBBC0020A935B95350FB5C67B9EBFF91D4C28FEC12A97B2712E21 - -Count = 742 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C0D0E -CT = E43AF8F55790660AB0B7F3519AFF29F079902EC431CB68C319FC47E398CC792B11B78F27B51C - -Count = 743 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C0D0E0F -CT = DF0CA1114F2E0051AC6E347F45D1778224098FA9346D747110F8F05A733525A924420623F842 - -Count = 744 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 5411119D71ACCC5D9A10F0DBE4D8BD5C123B10FBC4B5A38D245C7FDB1C149E0D9AEDFA691CE3 - -Count = 745 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 36CE88BC57F948B6D81B20AC749D46C3A83989704D7DD662BC963DB8E50A6297E5DE0AD7595C - -Count = 746 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = C171586599C0292C87A35673E8DAA1A189C728986AEFE3057252738AB4BA1D59557444DFD63B - -Count = 747 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 01E47467EC5F81AD224EE173D64A14FCBB4DC423DDFD85B54D7C28A336D20F25EE905BEE8998 - -Count = 748 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = FBAACC649496A650F85A500FA69307A5F49E87935987F802252C47B98E2D8A118013305D99CD - -Count = 749 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = EE7B6FEA6D4E6CE7C175DC649B90220168E94A687A1B59BCEA05C890F6150E27B26D978A73D4 - -Count = 750 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 95AFA27D4D8CEA68B2D46DF5AEDB88A3B8348D174E069A23632E2AD5C0630A4B5848FFCDBA92 - -Count = 751 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = CF2FB7E73873BE2A926E3B4A370D0C79B566BD95CDA816AA701309164C0374A51128492C2522 - -Count = 752 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = A5AEC98AA860CE17F00838C6C94B1368606539054F789732BA7CE2BEA5A336039B3D7DAB9680 - -Count = 753 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = 4E7F9F0B45CB9DC4DFFA2C451437CDE1BBFA0D802A465F18282A3D04526A7E5C081BC65CDA36 - -Count = 754 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = BB85E2FF036A7EE15F49548C5FDF93D31888FC103FBA6E1779951D02A3A20680B95BA11517B2 - -Count = 755 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 545D8C7B15744B9AB0638AD7C0CF38950F43A12CAD52D60BEEB742CC7C3D4317117D1B073915 - -Count = 756 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = 2284612C4744BFB1E36285EDB535566602D57E6A4E5BA5B01D8CE4272AC5102F5E8C461B459B - -Count = 757 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 05F8B0EDB034954E085389B6B0117E59BF7A1445EF1F1305A5938A56884EF5F537750049FF0D - -Count = 758 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = C019C29603C1E1ED3D94BA68BD5CCB86FF53CC904E5EE0B79A0EEACBF185A7E5D5F4BB67CEA0 - -Count = 759 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 13B625E5F4DF92DADDBC6B7065B36E4768EE877519542FDDFAA2A7CC0ED3BC834266DAD9ED91 - -Count = 760 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = -CT = BC73B1C2F3FE0C59A329417144737D0FA3E2C4D09CFABE4C05B3DF4108088C3EC8CF76EBE1A0F2 - -Count = 761 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 00 -CT = B1A8DFB192FA2C1BD978DE3A0A1C82E2C1709F2714A235AD3D5FC843F6514AADCAD00F685385F0 - -Count = 762 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 0001 -CT = FDC957611833EC30511C583BF3CB66B61C4B0D72D47B25041F2974DE5D9BF755721FFD133F87AF - -Count = 763 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102 -CT = A2EEF13FA0EA16BA67E6E4118796071CCD01474EF7B90B81F88A7332E4585F3CB6D8EFC696D311 - -Count = 764 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 00010203 -CT = 3ECF2C0B164EEE0B9D655C5207B7F4AA854ECC9D6D48818C57BA78521D3A44D990525A67A12E80 - -Count = 765 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 0001020304 -CT = 7EA0A67026AE738620E369B96D4858EDBF9FEECC57EC756BC5058DE102BE19CCDD2BD6F9E4B527 - -Count = 766 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405 -CT = 1A9471657230C2272C4192D9D193FE02DC90965A75DB47B96DB9273B29015A789293E8928DB748 - -Count = 767 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 00010203040506 -CT = 1F6D4FBAA595F14B9918C01A5AE870C6D1761F68DDDAB237B1645F933F16B034CCE5E2AA4B9B94 - -Count = 768 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 0001020304050607 -CT = 86A003A0C56CDDD7A9853AA70F7DB88559C0E0BC2490B60FD4D972610CCA178C900D50208AD06E - -Count = 769 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708 -CT = 5840C9CD51283BD1D9096E4CC1039AF981EE5F415C6F0687CBC2CB8D33D3CF1ADD3A4DD45E89B0 - -Count = 770 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 00010203040506070809 -CT = 6B74495409113A904D4573AC8AB661F6FD4A711DAF4A54D2A61E1A425E1071ECADA8B8736301AC - -Count = 771 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A -CT = 5BA1831D487F8E249C9193393C1589A8BCAB84224E6C47176CB68A9086B8668D01DBD3BB62DDCE - -Count = 772 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B -CT = FEB6AB5F168A5792A88D0A6BF2B26F29CAD93B504E2F8DF18E059B656B6721391A3CF590B284A6 - -Count = 773 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C -CT = 028697CF285B46BFDA13BCECAD22D09E416C16D092BBE843C680F818C5BF44D5EE7DE148F88D03 - -Count = 774 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C0D -CT = 681E88ADDF4178136693CD3DBBC0020A935B95350FB5A29D90B059852313100E4984C805928443 - -Count = 775 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C0D0E -CT = E43AF8F55790660AB0B7F3519AFF29F079902EC431CB82470FC800E4F643E9288447414D98B59E - -Count = 776 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C0D0E0F -CT = DF0CA1114F2E0051AC6E347F45D1778224098FA9346DC0237D2C81BA1CC81EB04D2A0ECB9F2739 - -Count = 777 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 5411119D71ACCC5D9A10F0DBE4D8BD5C123B10FBC4B5B1CBEC93998FA9648B10399A33B3DCCBFA - -Count = 778 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 36CE88BC57F948B6D81B20AC749D46C3A83989704D7D2C3A3CBB47C929482A12D3B5FF33F5F4A2 - -Count = 779 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = C171586599C0292C87A35673E8DAA1A189C728986AEF37CFD59B99E33226FF6757A6BACE2CDA4C - -Count = 780 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 01E47467EC5F81AD224EE173D64A14FCBB4DC423DDFD70E37D779FDB4E666142840169544D6F1B - -Count = 781 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = FBAACC649496A650F85A500FA69307A5F49E87935987AF753E67CA9CF6CC83DABECA7E27635176 - -Count = 782 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = EE7B6FEA6D4E6CE7C175DC649B90220168E94A687A1B12B561255FA94DA153B2E1337D8297905E - -Count = 783 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 95AFA27D4D8CEA68B2D46DF5AEDB88A3B8348D174E06DBE57D8DE76680CD596520B08E32B7D89B - -Count = 784 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = CF2FB7E73873BE2A926E3B4A370D0C79B566BD95CDA8371D1A03C6EF552A9F187A0AA43635E583 - -Count = 785 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = A5AEC98AA860CE17F00838C6C94B1368606539054F78D9350F1EE978852C245DBD64E4D65CC1CB - -Count = 786 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = 4E7F9F0B45CB9DC4DFFA2C451437CDE1BBFA0D802A467F8DA31F651F31172EF87DE006EEF6E16E - -Count = 787 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = BB85E2FF036A7EE15F49548C5FDF93D31888FC103FBAE14347A37582459A03266DE0FC704B1EF1 - -Count = 788 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 545D8C7B15744B9AB0638AD7C0CF38950F43A12CAD52D9964C29292A1BDCD76F60B37A15EE21D4 - -Count = 789 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = 2284612C4744BFB1E36285EDB535566602D57E6A4E5B29AF16E0E95759C2B125844E496A7F6457 - -Count = 790 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 05F8B0EDB034954E085389B6B0117E59BF7A1445EF1F338FDAF94F2A9BCE5DAB7B8733761D4893 - -Count = 791 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = C019C29603C1E1ED3D94BA68BD5CCB86FF53CC904E5E054FA8221C56A113E989B9F81BD13B9AC7 - -Count = 792 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 13B625E5F4DF92DADDBC6B7065B36E4768EE877519541187D81F0CF498BD2317EEEFC1BA09FD5F - -Count = 793 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = -CT = BC73B1C2F3FE0C59A329417144737D0FA3E2C4D09CFABE5C67F0BE77C96DCA2D621A3AEDA407DEA9 - -Count = 794 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 00 -CT = B1A8DFB192FA2C1BD978DE3A0A1C82E2C1709F2714A235D11F48C67F708E8845985CB19ED6010FFC - -Count = 795 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 0001 -CT = FDC957611833EC30511C583BF3CB66B61C4B0D72D47B25DBBB850CE2576C3A57FD18BC3CFF3D6D5B - -Count = 796 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102 -CT = A2EEF13FA0EA16BA67E6E4118796071CCD01474EF7B90B13ED837E5EFA4849EB7979337FD145B1AB - -Count = 797 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 00010203 -CT = 3ECF2C0B164EEE0B9D655C5207B7F4AA854ECC9D6D488146B61ED6A49143E54F91090703502E1994 - -Count = 798 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 0001020304 -CT = 7EA0A67026AE738620E369B96D4858EDBF9FEECC57EC753423E518B2703E59075B236CF7FF055358 - -Count = 799 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405 -CT = 1A9471657230C2272C4192D9D193FE02DC90965A75DB47ACF3622DDD5EC2DE97BCF3527921D29107 - -Count = 800 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 00010203040506 -CT = 1F6D4FBAA595F14B9918C01A5AE870C6D1761F68DDDAB2E75FEAE2F03FE90BE8C79E2DF75A7265D0 - -Count = 801 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 0001020304050607 -CT = 86A003A0C56CDDD7A9853AA70F7DB88559C0E0BC2490B6A17486444F9440434133FD04142925C8F9 - -Count = 802 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708 -CT = 5840C9CD51283BD1D9096E4CC1039AF981EE5F415C6F0688FD48546BBF1B67D67AD413A9CD157CEC - -Count = 803 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 00010203040506070809 -CT = 6B74495409113A904D4573AC8AB661F6FD4A711DAF4A54B31BC7DAB26D903950EE5379C743AF8C93 - -Count = 804 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A -CT = 5BA1831D487F8E249C9193393C1589A8BCAB84224E6C47094B57F09AB7A21026B142ED6436497EB0 - -Count = 805 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B -CT = FEB6AB5F168A5792A88D0A6BF2B26F29CAD93B504E2F8DD57B6405C3808CF25A26AE2289DD85CFF5 - -Count = 806 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C -CT = 028697CF285B46BFDA13BCECAD22D09E416C16D092BBE8B9596AE06506D4CC33DB0AA22365304C5C - -Count = 807 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C0D -CT = 681E88ADDF4178136693CD3DBBC0020A935B95350FB5A28D9590AC4E915251A024C50D1FCE31EB02 - -Count = 808 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C0D0E -CT = E43AF8F55790660AB0B7F3519AFF29F079902EC431CB82A70106161BC3FC4891CB3356597BFFF6A1 - -Count = 809 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C0D0E0F -CT = DF0CA1114F2E0051AC6E347F45D1778224098FA9346DC096229D9E1715514902B61AD4DFBD1F602A - -Count = 810 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 5411119D71ACCC5D9A10F0DBE4D8BD5C123B10FBC4B5B1086E20396B5783A8A60603081317C54133 - -Count = 811 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 36CE88BC57F948B6D81B20AC749D46C3A83989704D7D2CE14B78BB63FFEA6B6E4F481501C9D996CF - -Count = 812 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = C171586599C0292C87A35673E8DAA1A189C728986AEF37EA7AEE5C1D85068F993515875FBF7A7BF8 - -Count = 813 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 01E47467EC5F81AD224EE173D64A14FCBB4DC423DDFD7062363D20E31A91526E7160F6B601FD01AA - -Count = 814 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = FBAACC649496A650F85A500FA69307A5F49E87935987AF3F2B9A1E102B8F3CD486D2A6FDC6E9759D - -Count = 815 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = EE7B6FEA6D4E6CE7C175DC649B90220168E94A687A1B1244DFFF225FB61FEE1E4F26AE8DCD4F1878 - -Count = 816 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 95AFA27D4D8CEA68B2D46DF5AEDB88A3B8348D174E06DB0760F957BC42E1C22E1958F3B6D4512AD2 - -Count = 817 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = CF2FB7E73873BE2A926E3B4A370D0C79B566BD95CDA83797D8E2E17A03E076AF09822CAB762FD0DB - -Count = 818 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = A5AEC98AA860CE17F00838C6C94B1368606539054F78D9876F17F9D98F60D64EA9E44201410ACD38 - -Count = 819 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = 4E7F9F0B45CB9DC4DFFA2C451437CDE1BBFA0D802A467FAD1E7FFCBFB4BF5F94518E18A4C6AD9316 - -Count = 820 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = BB85E2FF036A7EE15F49548C5FDF93D31888FC103FBAE1CF47D09B679011A91DC89F8500A4501523 - -Count = 821 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 545D8C7B15744B9AB0638AD7C0CF38950F43A12CAD52D9008B28E58871C9E3004693A0775A13CD19 - -Count = 822 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = 2284612C4744BFB1E36285EDB535566602D57E6A4E5B29AC1AFE850F982EC5B9003210AE09126E80 - -Count = 823 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 05F8B0EDB034954E085389B6B0117E59BF7A1445EF1F33B5406032F3C5D380105DF5166364FA1475 - -Count = 824 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = C019C29603C1E1ED3D94BA68BD5CCB86FF53CC904E5E05D8098254D4EE8BD4CCF2DC396FA157C1EE - -Count = 825 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 13B625E5F4DF92DADDBC6B7065B36E4768EE8775195411326928BA5B34AFB44961A8408B703CF143 - -Count = 826 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = -CT = BC73B1C2F3FE0C59A329417144737D0FA3E2C4D09CFABE5CBD1A328F2DA944A30866E2C778C5E95EDD - -Count = 827 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 00 -CT = B1A8DFB192FA2C1BD978DE3A0A1C82E2C1709F2714A235D148BADACE6929F188CE8BEDA20D89DD8182 - -Count = 828 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 0001 -CT = FDC957611833EC30511C583BF3CB66B61C4B0D72D47B25DBDE457EE363381C08EFDF4E65E20C24DF0D - -Count = 829 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102 -CT = A2EEF13FA0EA16BA67E6E4118796071CCD01474EF7B90B13089E7FA7A7320BE3297F6F27C2347D887F - -Count = 830 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 00010203 -CT = 3ECF2C0B164EEE0B9D655C5207B7F4AA854ECC9D6D488146E25EDC3E3A1DAB8EB03BD858BDC4F7A6DA - -Count = 831 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 0001020304 -CT = 7EA0A67026AE738620E369B96D4858EDBF9FEECC57EC75345757E57DB012D0E680069B1E14D1126917 - -Count = 832 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405 -CT = 1A9471657230C2272C4192D9D193FE02DC90965A75DB47AC439AC527F2DE1C8D6A18B933E8AC263035 - -Count = 833 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 00010203040506 -CT = 1F6D4FBAA595F14B9918C01A5AE870C6D1761F68DDDAB2E7FEE75830F01559C9A3BA94C239518DBBE7 - -Count = 834 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 0001020304050607 -CT = 86A003A0C56CDDD7A9853AA70F7DB88559C0E0BC2490B6A1E0EC5DAD3C4D5C224262F028982F26E799 - -Count = 835 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708 -CT = 5840C9CD51283BD1D9096E4CC1039AF981EE5F415C6F06883828972F98A20D5011D28F59E0F984DCEF - -Count = 836 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 00010203040506070809 -CT = 6B74495409113A904D4573AC8AB661F6FD4A711DAF4A54B3D4BF379E805EDF1A7B4D397B7459BA5718 - -Count = 837 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A -CT = 5BA1831D487F8E249C9193393C1589A8BCAB84224E6C4709A41925A95E9B9FE8FDA0A420548DD6A54C - -Count = 838 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B -CT = FEB6AB5F168A5792A88D0A6BF2B26F29CAD93B504E2F8DD55D3061AFD32777529C28183635D83B4D25 - -Count = 839 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C -CT = 028697CF285B46BFDA13BCECAD22D09E416C16D092BBE8B9A15CFFF1D05BFB471D00775A6FC930164C - -Count = 840 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C0D -CT = 681E88ADDF4178136693CD3DBBC0020A935B95350FB5A28DD2A7F42ACAF8062A2029D9EF3668305772 - -Count = 841 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C0D0E -CT = E43AF8F55790660AB0B7F3519AFF29F079902EC431CB82A7DEF38464B5F749E708EACDA920288AAACE - -Count = 842 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C0D0E0F -CT = DF0CA1114F2E0051AC6E347F45D1778224098FA9346DC09611E7E3D6883C458501FB52815F52AE5554 - -Count = 843 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 5411119D71ACCC5D9A10F0DBE4D8BD5C123B10FBC4B5B108FAAEBB224FFCD62E04951A1A8531D32B99 - -Count = 844 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 36CE88BC57F948B6D81B20AC749D46C3A83989704D7D2CE1170B221523F97A2A98F432435283F99BB7 - -Count = 845 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = C171586599C0292C87A35673E8DAA1A189C728986AEF37EA521E0EACB295C968BA3F87A193C3990C3C - -Count = 846 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 01E47467EC5F81AD224EE173D64A14FCBB4DC423DDFD70620519AE922C7C7C4BF5CF0F1101F9806A91 - -Count = 847 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = FBAACC649496A650F85A500FA69307A5F49E87935987AF3F4800DE4425BDF6368485CA20F81E3F4D60 - -Count = 848 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = EE7B6FEA6D4E6CE7C175DC649B90220168E94A687A1B1244DEB2EA7E199359D938CF814309FB0E99CF - -Count = 849 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 95AFA27D4D8CEA68B2D46DF5AEDB88A3B8348D174E06DB0706ECBECFA8A7EE35014CACEEFD26C8CF83 - -Count = 850 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = CF2FB7E73873BE2A926E3B4A370D0C79B566BD95CDA8379712A11B5C1CB67C82B78DBF412E3693DD21 - -Count = 851 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = A5AEC98AA860CE17F00838C6C94B1368606539054F78D987F6BFA05EA06D3F3515EE9D711D706A6436 - -Count = 852 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = 4E7F9F0B45CB9DC4DFFA2C451437CDE1BBFA0D802A467FADAAD3B2BEF833E5F38536187DB0597A3447 - -Count = 853 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = BB85E2FF036A7EE15F49548C5FDF93D31888FC103FBAE1CFB3F1C13FCDF731E1611A97003C51D02DF5 - -Count = 854 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 545D8C7B15744B9AB0638AD7C0CF38950F43A12CAD52D9003849348A22DFE14CF80ED7BCEAFDE82CBA - -Count = 855 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = 2284612C4744BFB1E36285EDB535566602D57E6A4E5B29AC166B38D203C6F6457C985218AC2BAAC92B - -Count = 856 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 05F8B0EDB034954E085389B6B0117E59BF7A1445EF1F33B5E8C42139763405A8CAB204EA387D989999 - -Count = 857 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = C019C29603C1E1ED3D94BA68BD5CCB86FF53CC904E5E05D8E8F8611E4B7B955D93887A846980ACA855 - -Count = 858 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 13B625E5F4DF92DADDBC6B7065B36E4768EE877519541132810CA2912F085BE7211EA4B9A4C54D1928 - -Count = 859 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = -CT = BC73B1C2F3FE0C59A329417144737D0FA3E2C4D09CFABE5CBD702CCBDC49E6C41D59A793CB6237EBD574 - -Count = 860 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 00 -CT = B1A8DFB192FA2C1BD978DE3A0A1C82E2C1709F2714A235D148FA004B07344C351F3C515A61249574F732 - -Count = 861 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 0001 -CT = FDC957611833EC30511C583BF3CB66B61C4B0D72D47B25DBDE9474EBCF7DA8687A5266224589E483D36E - -Count = 862 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102 -CT = A2EEF13FA0EA16BA67E6E4118796071CCD01474EF7B90B1308AACFEB7CEA01529837AE39D3061CFC3A6C - -Count = 863 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 00010203 -CT = 3ECF2C0B164EEE0B9D655C5207B7F4AA854ECC9D6D488146E23CC6441B2E6DD94802C3B7753F3B751729 - -Count = 864 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 0001020304 -CT = 7EA0A67026AE738620E369B96D4858EDBF9FEECC57EC753457F18B7F22BA655B0A57744EB435A8906B56 - -Count = 865 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405 -CT = 1A9471657230C2272C4192D9D193FE02DC90965A75DB47AC4305D8F6B1426839447C71FFDA676A8F8674 - -Count = 866 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 00010203040506 -CT = 1F6D4FBAA595F14B9918C01A5AE870C6D1761F68DDDAB2E7FE1133E36DE2A7567D26CF4C12C292E5786B - -Count = 867 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 0001020304050607 -CT = 86A003A0C56CDDD7A9853AA70F7DB88559C0E0BC2490B6A1E03D1577111D13A75C3618E91AD0A064E935 - -Count = 868 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708 -CT = 5840C9CD51283BD1D9096E4CC1039AF981EE5F415C6F068838E1C03B07F0AC6E4818AB442CD5BFC4CB07 - -Count = 869 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 00010203040506070809 -CT = 6B74495409113A904D4573AC8AB661F6FD4A711DAF4A54B3D430DB56E19E0C0BE73F8C78465271F2EF26 - -Count = 870 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A -CT = 5BA1831D487F8E249C9193393C1589A8BCAB84224E6C4709A42F19030DD2D00DEE467426945536D63F0E - -Count = 871 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B -CT = FEB6AB5F168A5792A88D0A6BF2B26F29CAD93B504E2F8DD55DC6F520C5ED096CF8A6AD1EFDD26E48F509 - -Count = 872 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C -CT = 028697CF285B46BFDA13BCECAD22D09E416C16D092BBE8B9A1A200B594DD5C8D4126649ED6C5062D834A - -Count = 873 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C0D -CT = 681E88ADDF4178136693CD3DBBC0020A935B95350FB5A28DD275FE566DF26A986DA8BC6241C560FADD1C - -Count = 874 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C0D0E -CT = E43AF8F55790660AB0B7F3519AFF29F079902EC431CB82A7DE02DBDA9AA76CE11A4149CC0BA41CBA3197 - -Count = 875 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C0D0E0F -CT = DF0CA1114F2E0051AC6E347F45D1778224098FA9346DC09611FA6B993D6C9988129DE0E97A389832EF93 - -Count = 876 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 5411119D71ACCC5D9A10F0DBE4D8BD5C123B10FBC4B5B108FAD4BF0709E2ACDF0357269DFC97832C09F0 - -Count = 877 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 36CE88BC57F948B6D81B20AC749D46C3A83989704D7D2CE11797007B57A1462C7B76ECF0C39DAA7B5EAA - -Count = 878 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = C171586599C0292C87A35673E8DAA1A189C728986AEF37EA52D0A166C3B01220B64400C60881AA333A81 - -Count = 879 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 01E47467EC5F81AD224EE173D64A14FCBB4DC423DDFD70620527DA9C1507DEB367A6E4942B7FB9144156 - -Count = 880 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = FBAACC649496A650F85A500FA69307A5F49E87935987AF3F4816A7627FE5F0DE5D1CA10BFE85F5175EA0 - -Count = 881 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = EE7B6FEA6D4E6CE7C175DC649B90220168E94A687A1B1244DE72FE366C661B92C8329CE4D46BC27326EB - -Count = 882 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 95AFA27D4D8CEA68B2D46DF5AEDB88A3B8348D174E06DB0706A3EDEAE04029AC0CDA42C47B3823298835 - -Count = 883 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = CF2FB7E73873BE2A926E3B4A370D0C79B566BD95CDA8379712D292ABF9F210CFDA2E6DFDB4855F7AB6D6 - -Count = 884 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = A5AEC98AA860CE17F00838C6C94B1368606539054F78D987F67E82E13F4201C03AF9342EDC7512ADA457 - -Count = 885 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = 4E7F9F0B45CB9DC4DFFA2C451437CDE1BBFA0D802A467FADAA6AAF51AC52FD83BD36220705B97A0F3CC9 - -Count = 886 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = BB85E2FF036A7EE15F49548C5FDF93D31888FC103FBAE1CFB32CB13DFA77756B20E59562DE6B945EE218 - -Count = 887 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 545D8C7B15744B9AB0638AD7C0CF38950F43A12CAD52D90038071C37298E1538B746EB58A7F4DF059F35 - -Count = 888 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = 2284612C4744BFB1E36285EDB535566602D57E6A4E5B29AC16216771C65BE9D0D623BD0366EC7CFB6A70 - -Count = 889 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 05F8B0EDB034954E085389B6B0117E59BF7A1445EF1F33B5E8354835273AC250509FB81AC2EA814B392D - -Count = 890 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = C019C29603C1E1ED3D94BA68BD5CCB86FF53CC904E5E05D8E89F2513DDB129DE9078F72539A65D6BE30F - -Count = 891 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 13B625E5F4DF92DADDBC6B7065B36E4768EE877519541132818BE3A76D23A9FED6A5633B1236833668E4 - -Count = 892 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = -CT = BC73B1C2F3FE0C59A329417144737D0FA3E2C4D09CFABE5CBD7056BD4D93D5933524D84B3B47FA173C84D2 - -Count = 893 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 00 -CT = B1A8DFB192FA2C1BD978DE3A0A1C82E2C1709F2714A235D148FA22B29558B2F6B63758DA7562AF91E3EAE1 - -Count = 894 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 0001 -CT = FDC957611833EC30511C583BF3CB66B61C4B0D72D47B25DBDE942550466D1728EE7CD56B1391FA3F7A2239 - -Count = 895 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102 -CT = A2EEF13FA0EA16BA67E6E4118796071CCD01474EF7B90B1308AACB60D2D5D36D4BB68A1A8623C84993DF90 - -Count = 896 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 00010203 -CT = 3ECF2C0B164EEE0B9D655C5207B7F4AA854ECC9D6D488146E23C0C6BC5333D56C869DED469C06AD41394C4 - -Count = 897 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 0001020304 -CT = 7EA0A67026AE738620E369B96D4858EDBF9FEECC57EC753457F19DD54E9B5C97DF8EFD5D7AE1B8D2BF4F5D - -Count = 898 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405 -CT = 1A9471657230C2272C4192D9D193FE02DC90965A75DB47AC43056127CC49C3A05D9936DF7A35AC705AD6B7 - -Count = 899 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 00010203040506 -CT = 1F6D4FBAA595F14B9918C01A5AE870C6D1761F68DDDAB2E7FE11402E5AF3C0D6E1FEB0E3E79A77A65D8CCA - -Count = 900 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 0001020304050607 -CT = 86A003A0C56CDDD7A9853AA70F7DB88559C0E0BC2490B6A1E03D63FBF8D98A8478435380BB9D69B9216BFB - -Count = 901 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708 -CT = 5840C9CD51283BD1D9096E4CC1039AF981EE5F415C6F068838E1DB055FF825B9989676A64D4C48C2422E4D - -Count = 902 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 00010203040506070809 -CT = 6B74495409113A904D4573AC8AB661F6FD4A711DAF4A54B3D4308AD274165A05E6B1728312090C066CEE3C - -Count = 903 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A -CT = 5BA1831D487F8E249C9193393C1589A8BCAB84224E6C4709A42FF17578BA57C60BCBC91289F43A5CF49572 - -Count = 904 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B -CT = FEB6AB5F168A5792A88D0A6BF2B26F29CAD93B504E2F8DD55DC612DA6D3E1148BD7123887827C68D5EE9BF - -Count = 905 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C -CT = 028697CF285B46BFDA13BCECAD22D09E416C16D092BBE8B9A1A28228F6C281C59045425DD55AE359ACE76A - -Count = 906 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C0D -CT = 681E88ADDF4178136693CD3DBBC0020A935B95350FB5A28DD275E5EE27EB88191B25A0CEE3C42CE4821583 - -Count = 907 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C0D0E -CT = E43AF8F55790660AB0B7F3519AFF29F079902EC431CB82A7DE02C34F3CBB69EBFB7BDCB197012AF9566ED9 - -Count = 908 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C0D0E0F -CT = DF0CA1114F2E0051AC6E347F45D1778224098FA9346DC09611FA55EB8E7C5175684057F5F87A283EF57577 - -Count = 909 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 5411119D71ACCC5D9A10F0DBE4D8BD5C123B10FBC4B5B108FAD4EE5AB165F564313475DBC06475DDB97B2B - -Count = 910 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 36CE88BC57F948B6D81B20AC749D46C3A83989704D7D2CE11797F05CBE0A9A0ABE554B2F1E4BA768CCE5E3 - -Count = 911 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = C171586599C0292C87A35673E8DAA1A189C728986AEF37EA52D04781D1C75E1C03F538119D420D2E3B186A - -Count = 912 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 01E47467EC5F81AD224EE173D64A14FCBB4DC423DDFD7062052732E146AA248CABB989E4B7BCF7288F89CA - -Count = 913 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = FBAACC649496A650F85A500FA69307A5F49E87935987AF3F4816A410102E6A95393F951F6864C49A243BA3 - -Count = 914 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = EE7B6FEA6D4E6CE7C175DC649B90220168E94A687A1B1244DE720AF7EA7BE1AA2ABF3A5023375C9FA42869 - -Count = 915 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 95AFA27D4D8CEA68B2D46DF5AEDB88A3B8348D174E06DB0706A3F12DDAB57EE5FBA1CE483857EAD3972113 - -Count = 916 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = CF2FB7E73873BE2A926E3B4A370D0C79B566BD95CDA8379712D2B5D072FACF3B082FFD6D4FE8134CCD6657 - -Count = 917 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = A5AEC98AA860CE17F00838C6C94B1368606539054F78D987F67E762A3F3497C83A447AE51972EEC409257F - -Count = 918 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = 4E7F9F0B45CB9DC4DFFA2C451437CDE1BBFA0D802A467FADAA6A4C431CDAB5B61CA8A8DF8552A198887BA7 - -Count = 919 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = BB85E2FF036A7EE15F49548C5FDF93D31888FC103FBAE1CFB32CC4BC17F3E71F3C63ACA6BE85061A8F1DCC - -Count = 920 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 545D8C7B15744B9AB0638AD7C0CF38950F43A12CAD52D900380764E2C08534E89D545BB0EFAE485EFAADD0 - -Count = 921 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = 2284612C4744BFB1E36285EDB535566602D57E6A4E5B29AC162161ABBC64A1ACA295A71B992D124686333F - -Count = 922 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 05F8B0EDB034954E085389B6B0117E59BF7A1445EF1F33B5E835F6FCA22E779EDD264113B0A5FE7F1BA1CC - -Count = 923 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = C019C29603C1E1ED3D94BA68BD5CCB86FF53CC904E5E05D8E89FC116522F921F79BCFC6A1ED085381062D6 - -Count = 924 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 13B625E5F4DF92DADDBC6B7065B36E4768EE877519541132818B5F30C6CA1B069F6335F9EE5196C8CDA94C - -Count = 925 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = -CT = BC73B1C2F3FE0C59A329417144737D0FA3E2C4D09CFABE5CBD70565BE9D4DF7CA6A1DBD4BAEFF25E3025C1EA - -Count = 926 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 00 -CT = B1A8DFB192FA2C1BD978DE3A0A1C82E2C1709F2714A235D148FA22AFC2A1C93EFFF96C55FEABBC4F8B0D9E69 - -Count = 927 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 0001 -CT = FDC957611833EC30511C583BF3CB66B61C4B0D72D47B25DBDE9425B9B431F0943619D94997B209D49CB3F65B - -Count = 928 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102 -CT = A2EEF13FA0EA16BA67E6E4118796071CCD01474EF7B90B1308AACB7BBAD79045D7C458C04CF36D59CEFE18E0 - -Count = 929 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 00010203 -CT = 3ECF2C0B164EEE0B9D655C5207B7F4AA854ECC9D6D488146E23C0CF2A22CB2EA43C8EACEDFBD43B90F5FC1D8 - -Count = 930 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 0001020304 -CT = 7EA0A67026AE738620E369B96D4858EDBF9FEECC57EC753457F19DEDA269CB3429B91BCE6FFC72109BE1A6F2 - -Count = 931 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405 -CT = 1A9471657230C2272C4192D9D193FE02DC90965A75DB47AC430561E144062F91E09DCA8F69493B31B2697B0F - -Count = 932 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 00010203040506 -CT = 1F6D4FBAA595F14B9918C01A5AE870C6D1761F68DDDAB2E7FE1140BE649A7A03B8A5F94776B854097E1E7D0D - -Count = 933 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 0001020304050607 -CT = 86A003A0C56CDDD7A9853AA70F7DB88559C0E0BC2490B6A1E03D6334002A70BB35D2046976933A1220EB08C8 - -Count = 934 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708 -CT = 5840C9CD51283BD1D9096E4CC1039AF981EE5F415C6F068838E1DB3EF9098E54C9C1D00D82E62460D449C423 - -Count = 935 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 00010203040506070809 -CT = 6B74495409113A904D4573AC8AB661F6FD4A711DAF4A54B3D4308A444213557E65E663960291592F3DB91C37 - -Count = 936 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A -CT = 5BA1831D487F8E249C9193393C1589A8BCAB84224E6C4709A42FF1B4475F7CA87AC9BA66E2A39465C4FE4434 - -Count = 937 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B -CT = FEB6AB5F168A5792A88D0A6BF2B26F29CAD93B504E2F8DD55DC6124F27567B9306BD44266EEC3B497188A0C6 - -Count = 938 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C -CT = 028697CF285B46BFDA13BCECAD22D09E416C16D092BBE8B9A1A282FA34605E368965835FDA1DFE96C751B9D7 - -Count = 939 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C0D -CT = 681E88ADDF4178136693CD3DBBC0020A935B95350FB5A28DD275E5E1FB7FDE8D19AEF4CEC1EE1031E6E170A7 - -Count = 940 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C0D0E -CT = E43AF8F55790660AB0B7F3519AFF29F079902EC431CB82A7DE02C3DDCF8EC059653192F7BE923BC21F4250EB - -Count = 941 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C0D0E0F -CT = DF0CA1114F2E0051AC6E347F45D1778224098FA9346DC09611FA557AD8192FB3C30B3C66BCC1EF1AC7483121 - -Count = 942 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 5411119D71ACCC5D9A10F0DBE4D8BD5C123B10FBC4B5B108FAD4EEA3FE3F2805D390869542CD1B1B3794DDB0 - -Count = 943 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 36CE88BC57F948B6D81B20AC749D46C3A83989704D7D2CE11797F090DE5606F1C64C713F12CE942F0F5AB33A - -Count = 944 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = C171586599C0292C87A35673E8DAA1A189C728986AEF37EA52D047410DB1F8837123BD8094EBEFBA2A15AA43 - -Count = 945 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 01E47467EC5F81AD224EE173D64A14FCBB4DC423DDFD7062052732C18D390F1109D53A0115181C98EC2BE23E - -Count = 946 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = FBAACC649496A650F85A500FA69307A5F49E87935987AF3F4816A428F51A411BE005076F4574FD0AD25AFAC1 - -Count = 947 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = EE7B6FEA6D4E6CE7C175DC649B90220168E94A687A1B1244DE720A1FCE7592B19E1236AF0EB3B7399B0F506D - -Count = 948 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 95AFA27D4D8CEA68B2D46DF5AEDB88A3B8348D174E06DB0706A3F101B7DA55D58D244CCC4BA3859BB4DA9F92 - -Count = 949 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = CF2FB7E73873BE2A926E3B4A370D0C79B566BD95CDA8379712D2B514D5B065030865553E2068D516D5508307 - -Count = 950 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = A5AEC98AA860CE17F00838C6C94B1368606539054F78D987F67E764D2477CC96B0510D1C6CEC8B1B5F3F229A - -Count = 951 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = 4E7F9F0B45CB9DC4DFFA2C451437CDE1BBFA0D802A467FADAA6A4C07952AF75499E7A247CB96C608917EA215 - -Count = 952 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = BB85E2FF036A7EE15F49548C5FDF93D31888FC103FBAE1CFB32CC47C6A0F02B4CDB8247287AB31BC35C79975 - -Count = 953 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 545D8C7B15744B9AB0638AD7C0CF38950F43A12CAD52D9003807643B0696A98D88CC4BED26B20D400378350F - -Count = 954 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = 2284612C4744BFB1E36285EDB535566602D57E6A4E5B29AC162161514E3B5D9DC558E08F4046C7F37E391712 - -Count = 955 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 05F8B0EDB034954E085389B6B0117E59BF7A1445EF1F33B5E835F6010F8370F5DAD7FB5B2EB1D190D220A380 - -Count = 956 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = C019C29603C1E1ED3D94BA68BD5CCB86FF53CC904E5E05D8E89FC1FD21447594EC2960D016A1F60261F2CA4E - -Count = 957 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 13B625E5F4DF92DADDBC6B7065B36E4768EE877519541132818B5FA4F255C8F1907D4526C25BA2A69DEB6601 - -Count = 958 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = -CT = BC73B1C2F3FE0C59A329417144737D0FA3E2C4D09CFABE5CBD70565B5AD989ACD5D1DC50D912CE204BB77E8CBC - -Count = 959 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 00 -CT = B1A8DFB192FA2C1BD978DE3A0A1C82E2C1709F2714A235D148FA22AFC93F7854D40745119AFD75BE131CF1C5F7 - -Count = 960 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 0001 -CT = FDC957611833EC30511C583BF3CB66B61C4B0D72D47B25DBDE9425B9F9B2992833E40F138AE4C95E0A479E39EB - -Count = 961 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102 -CT = A2EEF13FA0EA16BA67E6E4118796071CCD01474EF7B90B1308AACB7B55B01B001001B05FC382E9417C76956ABC - -Count = 962 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 00010203 -CT = 3ECF2C0B164EEE0B9D655C5207B7F4AA854ECC9D6D488146E23C0CF22914F3F5D9E99AA29EE9D58A199B7D4565 - -Count = 963 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 0001020304 -CT = 7EA0A67026AE738620E369B96D4858EDBF9FEECC57EC753457F19DED177F26F7FE27E6044D7568A38927A547DA - -Count = 964 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405 -CT = 1A9471657230C2272C4192D9D193FE02DC90965A75DB47AC430561E13D29C9DF3034F2F83E16C3D96EB9D3AFBF - -Count = 965 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 00010203040506 -CT = 1F6D4FBAA595F14B9918C01A5AE870C6D1761F68DDDAB2E7FE1140BEE3C80D247A9DBDB8FE702846CF6578155F - -Count = 966 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 0001020304050607 -CT = 86A003A0C56CDDD7A9853AA70F7DB88559C0E0BC2490B6A1E03D6334C31063D6E31DA1842F8507A6B9A3750075 - -Count = 967 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708 -CT = 5840C9CD51283BD1D9096E4CC1039AF981EE5F415C6F068838E1DB3E02505B48DE01252065B680ED49D9EAC0B5 - -Count = 968 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 00010203040506070809 -CT = 6B74495409113A904D4573AC8AB661F6FD4A711DAF4A54B3D4308A443BE60871C77ED8AC7EA40D94A291485A8C - -Count = 969 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A -CT = 5BA1831D487F8E249C9193393C1589A8BCAB84224E6C4709A42FF1B49B0DD0B2471E6D534F920DF5ABC1319980 - -Count = 970 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B -CT = FEB6AB5F168A5792A88D0A6BF2B26F29CAD93B504E2F8DD55DC6124F346B335B88DC008BDA84F06B4558DB8C5B - -Count = 971 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C -CT = 028697CF285B46BFDA13BCECAD22D09E416C16D092BBE8B9A1A282FAB93A5D4BEEDAB45D8770EF6989C60AF8BB - -Count = 972 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C0D -CT = 681E88ADDF4178136693CD3DBBC0020A935B95350FB5A28DD275E5E1938F249EADEDFB09B8CD40CD05B4488B9F - -Count = 973 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C0D0E -CT = E43AF8F55790660AB0B7F3519AFF29F079902EC431CB82A7DE02C3DDD8E624A6A5EB4C4C1F566588CA942B3429 - -Count = 974 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C0D0E0F -CT = DF0CA1114F2E0051AC6E347F45D1778224098FA9346DC09611FA557A760FA7FDABDDBD223DB8981D0AEA112003 - -Count = 975 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 5411119D71ACCC5D9A10F0DBE4D8BD5C123B10FBC4B5B108FAD4EEA3C19551FB885FC471C9924E060370AE6A58 - -Count = 976 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 36CE88BC57F948B6D81B20AC749D46C3A83989704D7D2CE11797F090C1F4F17E7721D27DAE1FC54B2853BDE6B4 - -Count = 977 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = C171586599C0292C87A35673E8DAA1A189C728986AEF37EA52D04741B024F017C21E9F40C24B7A0705B2A6F747 - -Count = 978 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 01E47467EC5F81AD224EE173D64A14FCBB4DC423DDFD7062052732C15538EF5DB4FEB13F9BD2CA608C9B238ADC - -Count = 979 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = FBAACC649496A650F85A500FA69307A5F49E87935987AF3F4816A4284DC35478396EF18AF4D20439D23F7C8718 - -Count = 980 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = EE7B6FEA6D4E6CE7C175DC649B90220168E94A687A1B1244DE720A1F2057CCDE9D31322E27D9C63D3024741066 - -Count = 981 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 95AFA27D4D8CEA68B2D46DF5AEDB88A3B8348D174E06DB0706A3F1014C0D37DE00ED97A43C3FFC912CBE72293F - -Count = 982 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = CF2FB7E73873BE2A926E3B4A370D0C79B566BD95CDA8379712D2B514372545B4B9F8B2CF598AC3ECC39EC1FEEC - -Count = 983 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = A5AEC98AA860CE17F00838C6C94B1368606539054F78D987F67E764D7625A5518167DAD1004E55587AE8F666BD - -Count = 984 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = 4E7F9F0B45CB9DC4DFFA2C451437CDE1BBFA0D802A467FADAA6A4C07F2FB3C9F7626E8C86AAF9CAA39C3799602 - -Count = 985 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = BB85E2FF036A7EE15F49548C5FDF93D31888FC103FBAE1CFB32CC47C513FF570F5F6AAA1EB4804520AE233183F - -Count = 986 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 545D8C7B15744B9AB0638AD7C0CF38950F43A12CAD52D9003807643B427A0A5635E44FBD1B84DAFDD2ACADF97C - -Count = 987 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = 2284612C4744BFB1E36285EDB535566602D57E6A4E5B29AC16216151336AC1D93FBAEB376578A956F9AAC2B223 - -Count = 988 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 05F8B0EDB034954E085389B6B0117E59BF7A1445EF1F33B5E835F6016A502599249DAF426F7DFD13FE028FA12D - -Count = 989 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = C019C29603C1E1ED3D94BA68BD5CCB86FF53CC904E5E05D8E89FC1FD500880A78FD6DD22ABFD2F90E9DCDAE525 - -Count = 990 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 13B625E5F4DF92DADDBC6B7065B36E4768EE877519541132818B5FA4F4027B3A9CA4E541AF383A9B89342764CA - -Count = 991 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = -CT = BC73B1C2F3FE0C59A329417144737D0FA3E2C4D09CFABE5CBD70565B5A8692C1D93A7D4C06B413794552C18A0420 - -Count = 992 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 00 -CT = B1A8DFB192FA2C1BD978DE3A0A1C82E2C1709F2714A235D148FA22AFC9C353299A16F4AAA278EB34094D03508D75 - -Count = 993 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 0001 -CT = FDC957611833EC30511C583BF3CB66B61C4B0D72D47B25DBDE9425B9F91448DE7C92526DB588D5B78FCE13433715 - -Count = 994 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102 -CT = A2EEF13FA0EA16BA67E6E4118796071CCD01474EF7B90B1308AACB7B55E9399917571A55510B1DAE01B4450AD76B - -Count = 995 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 00010203 -CT = 3ECF2C0B164EEE0B9D655C5207B7F4AA854ECC9D6D488146E23C0CF229B9037E2EA4A165C708014BF304C8F253FA - -Count = 996 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 0001020304 -CT = 7EA0A67026AE738620E369B96D4858EDBF9FEECC57EC753457F19DED17A416F9C60712759EAEC46AB34B3563193B - -Count = 997 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405 -CT = 1A9471657230C2272C4192D9D193FE02DC90965A75DB47AC430561E13D3E084142FFF50ED99AA93B04F5B0435548 - -Count = 998 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 00010203040506 -CT = 1F6D4FBAA595F14B9918C01A5AE870C6D1761F68DDDAB2E7FE1140BEE3DFAA12704DE1EC881448234A056D5E151D - -Count = 999 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 0001020304050607 -CT = 86A003A0C56CDDD7A9853AA70F7DB88559C0E0BC2490B6A1E03D6334C37E1D473E4DD7CF92A5ECDDB1D6EE77A88F - -Count = 1000 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708 -CT = 5840C9CD51283BD1D9096E4CC1039AF981EE5F415C6F068838E1DB3E023F6C59210A97891ADB1825B1CB7850D713 - -Count = 1001 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 00010203040506070809 -CT = 6B74495409113A904D4573AC8AB661F6FD4A711DAF4A54B3D4308A443B90A68B9C5AB205AAAD569FDD416C8D58D7 - -Count = 1002 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A -CT = 5BA1831D487F8E249C9193393C1589A8BCAB84224E6C4709A42FF1B49B351A28BD1754C231E0CBBF4EADA4F0AE66 - -Count = 1003 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B -CT = FEB6AB5F168A5792A88D0A6BF2B26F29CAD93B504E2F8DD55DC6124F34C80CD434A2FFF6CF7EBB7056B42A4B3239 - -Count = 1004 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C -CT = 028697CF285B46BFDA13BCECAD22D09E416C16D092BBE8B9A1A282FAB9087DEC7700CA90875AA3941565AC8D4CA0 - -Count = 1005 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C0D -CT = 681E88ADDF4178136693CD3DBBC0020A935B95350FB5A28DD275E5E193AEA069AEF5E677DC6F69F4322385846D24 - -Count = 1006 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C0D0E -CT = E43AF8F55790660AB0B7F3519AFF29F079902EC431CB82A7DE02C3DDD8EE4F19DBB7F3A6E69E2C7FE04BD6ECF36B - -Count = 1007 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C0D0E0F -CT = DF0CA1114F2E0051AC6E347F45D1778224098FA9346DC09611FA557A76F4A1A886F035EFE5F95FBF257EE9D715F9 - -Count = 1008 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 5411119D71ACCC5D9A10F0DBE4D8BD5C123B10FBC4B5B108FAD4EEA3C17097B764A75262E27A810B8CED29440403 - -Count = 1009 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 36CE88BC57F948B6D81B20AC749D46C3A83989704D7D2CE11797F090C1B3F7B9325BDF2DDDFEB3638AE010B8507C - -Count = 1010 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = C171586599C0292C87A35673E8DAA1A189C728986AEF37EA52D04741B082475F9D3D096A7A17947FDE09A2FB2A16 - -Count = 1011 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 01E47467EC5F81AD224EE173D64A14FCBB4DC423DDFD7062052732C155D3D714D4A472895BE660A0D5C42C4E724D - -Count = 1012 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = FBAACC649496A650F85A500FA69307A5F49E87935987AF3F4816A4284DBC7750CC872C0097DA34590040C58BA755 - -Count = 1013 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = EE7B6FEA6D4E6CE7C175DC649B90220168E94A687A1B1244DE720A1F20D7C757DA8EF720024B914719C83D4C9A41 - -Count = 1014 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 95AFA27D4D8CEA68B2D46DF5AEDB88A3B8348D174E06DB0706A3F1014C0B0645716EDE563CE4F0B7B6243919B4CE - -Count = 1015 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = CF2FB7E73873BE2A926E3B4A370D0C79B566BD95CDA8379712D2B51437D80E88D205B828708FD4C3F19809279B05 - -Count = 1016 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = A5AEC98AA860CE17F00838C6C94B1368606539054F78D987F67E764D766E3F39E72DF75F902B813F57AEF7010A80 - -Count = 1017 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = 4E7F9F0B45CB9DC4DFFA2C451437CDE1BBFA0D802A467FADAA6A4C07F22C85332793D9FC3D9AC2A642A31444C344 - -Count = 1018 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = BB85E2FF036A7EE15F49548C5FDF93D31888FC103FBAE1CFB32CC47C518AD10A512C058C2686D2157E5FA817130B - -Count = 1019 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 545D8C7B15744B9AB0638AD7C0CF38950F43A12CAD52D9003807643B426B830A1076A45963A3DC582FFD457324E4 - -Count = 1020 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = 2284612C4744BFB1E36285EDB535566602D57E6A4E5B29AC1621615133E422E5F1CFD4ED43F7265E0F1FED8C22B6 - -Count = 1021 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 05F8B0EDB034954E085389B6B0117E59BF7A1445EF1F33B5E835F6016A7ED52B1C3B3A443657DFDB294548598A50 - -Count = 1022 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = C019C29603C1E1ED3D94BA68BD5CCB86FF53CC904E5E05D8E89FC1FD504D0473BB3DB95D29D1B343DC092B134990 - -Count = 1023 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 13B625E5F4DF92DADDBC6B7065B36E4768EE877519541132818B5FA4F4540537BB8289E3A90DC1BDB389E0321DAF - -Count = 1024 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = -CT = BC73B1C2F3FE0C59A329417144737D0FA3E2C4D09CFABE5CBD70565B5A8616D152FD781147C835A21EB48A2D4A4CF7 - -Count = 1025 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 00 -CT = B1A8DFB192FA2C1BD978DE3A0A1C82E2C1709F2714A235D148FA22AFC9C302D539CDD2CF9914F71A5E9E558CFF6602 - -Count = 1026 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 0001 -CT = FDC957611833EC30511C583BF3CB66B61C4B0D72D47B25DBDE9425B9F91404E6432D0C49C9ABAC7A6EAE613E0C40DC - -Count = 1027 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102 -CT = A2EEF13FA0EA16BA67E6E4118796071CCD01474EF7B90B1308AACB7B55E95E7F6377E22DCAFBDC7E8D75BB17C30E63 - -Count = 1028 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 00010203 -CT = 3ECF2C0B164EEE0B9D655C5207B7F4AA854ECC9D6D488146E23C0CF229B9E4166233E28CA9C7D4E2ED990A1C93CBAB - -Count = 1029 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 0001020304 -CT = 7EA0A67026AE738620E369B96D4858EDBF9FEECC57EC753457F19DED17A4AD2B59C673AAB966AF1F175A27A0045E1B - -Count = 1030 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405 -CT = 1A9471657230C2272C4192D9D193FE02DC90965A75DB47AC430561E13D3E6F93891309CB5018E95D820532362767A2 - -Count = 1031 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 00010203040506 -CT = 1F6D4FBAA595F14B9918C01A5AE870C6D1761F68DDDAB2E7FE1140BEE3DF1A7A61575BF6E83316336671232E484CBB - -Count = 1032 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 0001020304050607 -CT = 86A003A0C56CDDD7A9853AA70F7DB88559C0E0BC2490B6A1E03D6334C37E732BA195DBB35D7C1DC7C1DF48FF28F728 - -Count = 1033 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708 -CT = 5840C9CD51283BD1D9096E4CC1039AF981EE5F415C6F068838E1DB3E023FE8983C662B9C2C1A1C98D1798FD147747D - -Count = 1034 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 00010203040506070809 -CT = 6B74495409113A904D4573AC8AB661F6FD4A711DAF4A54B3D4308A443B903FB5024CBDB9711BD605BA9D6F281A7543 - -Count = 1035 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A -CT = 5BA1831D487F8E249C9193393C1589A8BCAB84224E6C4709A42FF1B49B35BB1AA4E5514291E2DE15461BDBE80F3A6F - -Count = 1036 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B -CT = FEB6AB5F168A5792A88D0A6BF2B26F29CAD93B504E2F8DD55DC6124F34C87EB2AF1DEC95D0B7B78D0B7ADC5D9666E7 - -Count = 1037 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C -CT = 028697CF285B46BFDA13BCECAD22D09E416C16D092BBE8B9A1A282FAB90847EE2CDDA8455B9C7A87D432999CB59267 - -Count = 1038 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C0D -CT = 681E88ADDF4178136693CD3DBBC0020A935B95350FB5A28DD275E5E193AE450724509037966B7AE09779860083A460 - -Count = 1039 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C0D0E -CT = E43AF8F55790660AB0B7F3519AFF29F079902EC431CB82A7DE02C3DDD8EE41260FDB15DCC1DA866E85547C6A459951 - -Count = 1040 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C0D0E0F -CT = DF0CA1114F2E0051AC6E347F45D1778224098FA9346DC09611FA557A76F4ABEDE96139585EB47FE6F7A36E02665F05 - -Count = 1041 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 5411119D71ACCC5D9A10F0DBE4D8BD5C123B10FBC4B5B108FAD4EEA3C1702773A80EC8FAAE89202FB531DF71C4F294 - -Count = 1042 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 36CE88BC57F948B6D81B20AC749D46C3A83989704D7D2CE11797F090C1B33AF087C7DBA4991FA708B63E45E851E6F2 - -Count = 1043 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = C171586599C0292C87A35673E8DAA1A189C728986AEF37EA52D04741B082B8614EB3B6582D365D77CB7300E53A9BAD - -Count = 1044 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 01E47467EC5F81AD224EE173D64A14FCBB4DC423DDFD7062052732C155D3866277C8D94AF9434DEEB8D6BDFED2DEE3 - -Count = 1045 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = FBAACC649496A650F85A500FA69307A5F49E87935987AF3F4816A4284DBCB722117EE305974F19002AE769ACA52DC8 - -Count = 1046 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = EE7B6FEA6D4E6CE7C175DC649B90220168E94A687A1B1244DE720A1F20D7B3CFB0A9B5090E3E2A9604DCE7F9BC8FFF - -Count = 1047 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 95AFA27D4D8CEA68B2D46DF5AEDB88A3B8348D174E06DB0706A3F1014C0B2785DFA90016ECE0BFEF100CC2F6BBB411 - -Count = 1048 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = CF2FB7E73873BE2A926E3B4A370D0C79B566BD95CDA8379712D2B51437D86EB1877AFA3439202DD99B30403812931C - -Count = 1049 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = A5AEC98AA860CE17F00838C6C94B1368606539054F78D987F67E764D766EC549E0A9C011EAAE2FE67081CB04FDC0FF - -Count = 1050 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = 4E7F9F0B45CB9DC4DFFA2C451437CDE1BBFA0D802A467FADAA6A4C07F22C1CF9EDBE5EF1847162D8082269B2741738 - -Count = 1051 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = BB85E2FF036A7EE15F49548C5FDF93D31888FC103FBAE1CFB32CC47C518AE18DD0684D6C7521A099BFB83419CA311A - -Count = 1052 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 545D8C7B15744B9AB0638AD7C0CF38950F43A12CAD52D9003807643B426B66DC5F4C6597257FA7B2E64D48B8A46F36 - -Count = 1053 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = 2284612C4744BFB1E36285EDB535566602D57E6A4E5B29AC1621615133E4E2F1098607FED906E0347422AA44F72820 - -Count = 1054 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 05F8B0EDB034954E085389B6B0117E59BF7A1445EF1F33B5E835F6016A7E30F085D72EB6CDB18F25702BD9BED830B4 - -Count = 1055 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = C019C29603C1E1ED3D94BA68BD5CCB86FF53CC904E5E05D8E89FC1FD504D568C7062B5A095442750AF76AA7AA4B375 - -Count = 1056 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 13B625E5F4DF92DADDBC6B7065B36E4768EE877519541132818B5FA4F4540252AE42F2674C35CC1D8512B835BDDCF3 - -Count = 1057 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = -CT = BC73B1C2F3FE0C59A329417144737D0FA3E2C4D09CFABE5CBD70565B5A861694E9260A97977F7CFBA2E38866E417865F - -Count = 1058 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 00 -CT = B1A8DFB192FA2C1BD978DE3A0A1C82E2C1709F2714A235D148FA22AFC9C302B389B2A0797B684149860B701339291A9C - -Count = 1059 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 0001 -CT = FDC957611833EC30511C583BF3CB66B61C4B0D72D47B25DBDE9425B9F91404F452BA320397C57F48284D4668C10FB732 - -Count = 1060 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102 -CT = A2EEF13FA0EA16BA67E6E4118796071CCD01474EF7B90B1308AACB7B55E95ED532E9FD3123E998CEAAA913E3A8BC9FEA - -Count = 1061 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 00010203 -CT = 3ECF2C0B164EEE0B9D655C5207B7F4AA854ECC9D6D488146E23C0CF229B9E44472C4C02E5C32FA12B5DE012D2DBF5FE1 - -Count = 1062 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 0001020304 -CT = 7EA0A67026AE738620E369B96D4858EDBF9FEECC57EC753457F19DED17A4ADBC45D55FE672BBC93FD1A15B09CF1536CA - -Count = 1063 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405 -CT = 1A9471657230C2272C4192D9D193FE02DC90965A75DB47AC430561E13D3E6FD0FA5D83635D20D7CC668B07BC24B23A1B - -Count = 1064 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 00010203040506 -CT = 1F6D4FBAA595F14B9918C01A5AE870C6D1761F68DDDAB2E7FE1140BEE3DF1A96685143C4C443B87C1DF2C4A140A8C5D7 - -Count = 1065 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 0001020304050607 -CT = 86A003A0C56CDDD7A9853AA70F7DB88559C0E0BC2490B6A1E03D6334C37E73EBF59FAE6CD125DB5DD0EA1839F0ABFFDB - -Count = 1066 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708 -CT = 5840C9CD51283BD1D9096E4CC1039AF981EE5F415C6F068838E1DB3E023FE828B9A7ADB189A8AF510DA214612DE09E2D - -Count = 1067 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 00010203040506070809 -CT = 6B74495409113A904D4573AC8AB661F6FD4A711DAF4A54B3D4308A443B903F38F199626D9D2551E6B4C24C98EA1B30C7 - -Count = 1068 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A -CT = 5BA1831D487F8E249C9193393C1589A8BCAB84224E6C4709A42FF1B49B35BB4428F2D363A7A5CBEC5FAAC54980A03681 - -Count = 1069 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B -CT = FEB6AB5F168A5792A88D0A6BF2B26F29CAD93B504E2F8DD55DC6124F34C87E00C0D30654082F390C8188023F6EF9DEB7 - -Count = 1070 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C -CT = 028697CF285B46BFDA13BCECAD22D09E416C16D092BBE8B9A1A282FAB90847CF7D67ABE237C4923533B101B5CC44A381 - -Count = 1071 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C0D -CT = 681E88ADDF4178136693CD3DBBC0020A935B95350FB5A28DD275E5E193AE4532E5A3C036F5462932878EEA64F134B834 - -Count = 1072 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C0D0E -CT = E43AF8F55790660AB0B7F3519AFF29F079902EC431CB82A7DE02C3DDD8EE41BF1A910A55B59BDF30B300AEF1997001CB - -Count = 1073 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C0D0E0F -CT = DF0CA1114F2E0051AC6E347F45D1778224098FA9346DC09611FA557A76F4AB789F19C668E13EF77882A397A88494E821 - -Count = 1074 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 5411119D71ACCC5D9A10F0DBE4D8BD5C123B10FBC4B5B108FAD4EEA3C170276445484C94A0BDEB4BA4DAAC9B8F109F24 - -Count = 1075 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 36CE88BC57F948B6D81B20AC749D46C3A83989704D7D2CE11797F090C1B33A61021D5659A0CCE6C823741182B7E3F8FB - -Count = 1076 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = C171586599C0292C87A35673E8DAA1A189C728986AEF37EA52D04741B082B8FD9E98A61454CF438686061BCB5E840A0A - -Count = 1077 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = 01E47467EC5F81AD224EE173D64A14FCBB4DC423DDFD7062052732C155D386B1DE798B12E23E0489F9E9B5C2EF28C0BA - -Count = 1078 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = FBAACC649496A650F85A500FA69307A5F49E87935987AF3F4816A4284DBCB72A58A80B83535E6F3E877F138D534C8EBC - -Count = 1079 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = EE7B6FEA6D4E6CE7C175DC649B90220168E94A687A1B1244DE720A1F20D7B3132EE82F86D18EBE74F37690E649F37853 - -Count = 1080 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 95AFA27D4D8CEA68B2D46DF5AEDB88A3B8348D174E06DB0706A3F1014C0B277F2824FD088F1A0FBE597A366FFA14983D - -Count = 1081 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = CF2FB7E73873BE2A926E3B4A370D0C79B566BD95CDA8379712D2B51437D86EFF7C53325D4D5ED52D3B3321E0A5C94D63 - -Count = 1082 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = A5AEC98AA860CE17F00838C6C94B1368606539054F78D987F67E764D766EC5F0599FECB7C244939FC90787D50283B983 - -Count = 1083 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = 4E7F9F0B45CB9DC4DFFA2C451437CDE1BBFA0D802A467FADAA6A4C07F22C1CDA7AD9CCDAF50C1C73F563406418DE3751 - -Count = 1084 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = BB85E2FF036A7EE15F49548C5FDF93D31888FC103FBAE1CFB32CC47C518AE1A3D9E19ABD4B236D115102681353FC215A - -Count = 1085 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 545D8C7B15744B9AB0638AD7C0CF38950F43A12CAD52D9003807643B426B662AC7601A33402FBB748780D2A831E12CF9 - -Count = 1086 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = 2284612C4744BFB1E36285EDB535566602D57E6A4E5B29AC1621615133E4E2305430E9192987F15523F02B366CAB47E9 - -Count = 1087 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 05F8B0EDB034954E085389B6B0117E59BF7A1445EF1F33B5E835F6016A7E30009535F82D5B177B4425934DF831FD8EEA - -Count = 1088 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = C019C29603C1E1ED3D94BA68BD5CCB86FF53CC904E5E05D8E89FC1FD504D56BF3852F3441F46E9B6E461D37AF7A8332E - -Count = 1089 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 13B625E5F4DF92DADDBC6B7065B36E4768EE877519541132818B5FA4F4540260E0A668020917870083DB460F80CC524B - diff --git a/romulus/Implementations/crypto_aead/romulusn2v12/ref/api.h b/romulus/Implementations/crypto_aead/romulusn2v12/ref/api.h deleted file mode 100644 index 969c338..0000000 --- a/romulus/Implementations/crypto_aead/romulusn2v12/ref/api.h +++ /dev/null @@ -1,5 +0,0 @@ -#define CRYPTO_KEYBYTES 16 -#define CRYPTO_NSECBYTES 0 -#define CRYPTO_NPUBBYTES 12 -#define CRYPTO_ABYTES 16 -#define CRYPTO_NOOVERLAP 1 diff --git a/romulus/Implementations/crypto_aead/romulusn2v12/ref/encrypt.c b/romulus/Implementations/crypto_aead/romulusn2v12/ref/encrypt.c deleted file mode 100644 index 80e8d9b..0000000 --- a/romulus/Implementations/crypto_aead/romulusn2v12/ref/encrypt.c +++ /dev/null @@ -1,505 +0,0 @@ -/* - * Date: 29 November 2018 - * Contact: Thomas Peyrin - thomas.peyrin@gmail.com - * Mustafa Khairallah - mustafam001@e.ntu.edu.sg - */ - -#include "crypto_aead.h" -#include "api.h" -#include "variant.h" -#include "skinny.h" -#include -#include - -/*void display_vector (const unsigned char* x, int lenx) { - int i; - - for (i = 0; i < lenx; i++) { - //printf("%02x",x[i]); - } - //printf("\n"); - - }*/ - -void pad (const unsigned char* m, unsigned char* mp, int l, int len8) { - int i; - - for (i = 0; i < l; i++) { - if (i < len8) { - mp[i] = m[i]; - } - else if (i == l - 1) { - mp[i] = (len8 & 0x0f); - } - else { - mp[i] = 0x00; - } - } - -} - -void g8A (unsigned char* s, unsigned char* c) { - int i; - - for (i = 0; i < 16; i++) { - c[i] = (s[i] >> 1) ^ (s[i] & 0x80) ^ ((s[i] & 0x01) << 7); - } - -} - -void rho_ad (const unsigned char* m, - unsigned char* s, - int len8, - int ver) { - int i; - unsigned char mp [16]; - - //printf("rho in m = ");display_vector(m,len8); - pad(m,mp,ver,len8); - //printf("rho in mp = ");display_vector(mp,16); - //printf("rho in s = ");display_vector(s,16); - for (i = 0; i < ver; i++) { - s[i] = s[i] ^ mp[i]; - } - //printf("rho out s = ");display_vector(s,16); - -} - -void rho (const unsigned char* m, - unsigned char* c, - unsigned char* s, - int len8, - int ver) { - int i; - unsigned char mp [16]; - - //printf("rho in m = ");display_vector(m,len8); - pad(m,mp,ver,len8); - //printf("rho in mp = ");display_vector(mp,16); - //printf("rho in s = ");display_vector(s,16); - - g8A(s,c); - for (i = 0; i < ver; i++) { - s[i] = s[i] ^ mp[i]; - if (i < len8) { - c[i] = c[i] ^ mp[i]; - } - else { - c[i] = 0; - } - } - //printf("rho out s = ");display_vector(s,16); - //printf("rho out c = ");display_vector(c,16); - -} - -void irho (unsigned char* m, - const unsigned char* c, - unsigned char* s, - int len8, - int ver) { - int i; - unsigned char cp [16]; - - //printf("irho in c = ");display_vector(c,len8); - pad(c,cp,ver,len8); - //printf("irho in cp = ");display_vector(cp,16); - //printf("irho in s = ");display_vector(s,16); - - g8A(s,m); - for (i = 0; i < ver; i++) { - if (i < len8) { - s[i] = s[i] ^ cp[i] ^ m[i]; - } - else { - s[i] = s[i] ^ cp[i]; - } - if (i < len8) { - m[i] = m[i] ^ cp[i]; - } - else { - m[i] = 0; - } - } - //printf("irho out s = ");display_vector(s,16); - //printf("irho out m = ");display_vector(c,16); - -} - -void reset_lfsr_gf24 (unsigned char* CNT) { - CNT[0] = 0x01; - CNT[1] = 0x00; - CNT[2] = 0x00; -} - -void lfsr_gf24 (unsigned char* CNT) { - unsigned char fb0; - - fb0 = CNT[2] >> 7; - - CNT[2] = (CNT[2] << 1) | (CNT[1] >> 7); - CNT[1] = (CNT[1] << 1) | (CNT[0] >> 7); - if (fb0 == 1) { - CNT[0] = (CNT[0] << 1) ^ 0x1b; - } - else { - CNT[0] = (CNT[0] << 1); - } -} - -void reset_dual_lfsr (unsigned char* CNT) { - reset_lfsr_gf24 (CNT); - reset_lfsr_gf24 (CNT+3); -} - -void dual_lfsr (unsigned char* CNT) { - lfsr_gf24(CNT); - if (CNT[0] == 0x01) { - if (CNT[1] == 0x00) { - if (CNT[2] == 0x00) { - lfsr_gf24(CNT+3); - } - } - } -} - -void compose_tweakey (unsigned char* KT, - const unsigned char* K, - unsigned char* T, - unsigned char* CNT, - unsigned char D, - int t) { - - int i; - - for (i = 0; i < 3; i++) { - KT[i] = CNT[i]; - } - KT[i] = D; - for (i = 0; i < t; i++) { - KT[i+4] = T[i]; - } - for (i = 0; i < 16; i++) { - KT[i+4+t] = K[i]; - } - for (i = 0; i < 3; i++) { - KT[i+4+t+16] = CNT[i+3]; - } - for (i = 0; i < 13; i++) { - KT[i+4+t+16+3] = 0x00; - } - -} - -void block_cipher(unsigned char* s, - const unsigned char* k, unsigned char* T, - unsigned char* CNT, unsigned char D, int t, int n) { - unsigned char KT [48]; - - (void) n; - compose_tweakey(KT,k,T,CNT,D,t); - //printf("BC in kt = ");display_vector(KT,3*n); - //printf("BC in s = ");display_vector(s,n); - skinny_128_384_enc (s,KT); - //printf("BC out s = ");display_vector(s,n); - -} - -void nonce_encryption (const unsigned char* N, - unsigned char* CNT, - unsigned char*s, const unsigned char* k, - int t, int n, unsigned char D) { - unsigned char T [16]; - int i; - - for (i = 0; i < t; i++) { - T[i] = N[i]; - } - //printf("nonce cnt = ");display_vector(CNT,6); - block_cipher(s,k,T,CNT,D,t,n); - -} - -void generate_tag (unsigned char** c, unsigned char* s, - int n, unsigned long long* clen) { - - g8A(s, *c); - *c = *c + n; - *c = *c - *clen; - -} - -unsigned long long msg_encryption (const unsigned char** M, unsigned char** c, - const unsigned char* N, - unsigned char* CNT, - unsigned char*s, const unsigned char* k, - unsigned int n, unsigned int t, unsigned char D, - unsigned long long mlen) { - int len8; - - - if (mlen >= n) { - len8 = n; - mlen = mlen - n; - } - else { - len8 = mlen; - mlen = 0; - } - rho(*M, *c, s, len8, n); - *c = *c + len8; - *M = *M + len8; - dual_lfsr(CNT); - nonce_encryption(N,CNT,s,k,t,n,D); - return mlen; -} - - - -unsigned long long msg_decryption (unsigned char** M, const unsigned char** c, - const unsigned char* N, - unsigned char* CNT, - unsigned char*s, const unsigned char* k, - unsigned int n, unsigned int t, unsigned char D, - unsigned long long clen) { - int len8; - - if (clen >= n) { - len8 = n; - clen = clen - n; - } - else { - len8 = clen; - clen = 0; - } - irho(*M, *c, s, len8, n); - *c = *c + len8; - *M = *M + len8; - dual_lfsr(CNT); - nonce_encryption(N,CNT,s,k,t,n,D); - return clen; -} - -unsigned long long ad_encryption (const unsigned char** A, unsigned char* s, - const unsigned char* k, unsigned long long adlen, - unsigned char* CNT, - unsigned char D, - unsigned int n, unsigned int t) { - - unsigned char T [16]; - int len8; - - if (adlen >= n) { - len8 = n; - adlen = adlen - n; - } - else { - len8 = adlen; - adlen = 0; - } - //printf("AD in = ");display_vector(*A,len8); - rho_ad(*A, s, len8, n); - *A = *A + len8; - dual_lfsr(CNT); - //printf("AD cnt = ");display_vector(CNT,6); - if (adlen != 0) { - if (adlen >= t) { - len8 = t; - adlen = adlen - t; - } - else { - len8 = adlen; - adlen = 0; - } - pad(*A, T, t, len8); - *A = *A + len8; - block_cipher(s,k,T,CNT,D,t,n); - dual_lfsr(CNT); - } - - return adlen; -} - -int crypto_aead_encrypt ( - unsigned char* c, unsigned long long* clen, - const unsigned char* m, unsigned long long mlen, - const unsigned char* ad, unsigned long long adlen, - const unsigned char* nsec, - const unsigned char* npub, - const unsigned char* k - ) -{ - unsigned char s[16]; - unsigned char CNT[7]; - const unsigned char* A; - const unsigned char* M; - const unsigned char* N; - unsigned int n, t, i; - - (void)nsec; - A = ad; - M = m; - N = npub; - - n = AD_BLK_LEN_ODD; - t = AD_BLK_LEN_EVN; - - for (i = 0; i < n; i++) { - s[i] = 0; - } - reset_dual_lfsr(CNT); - //printf("s = ");display_vector(s,16); - //printf("cnt = ");display_vector(CNT,6); - - if (adlen == 0) { // AD is an empty string - dual_lfsr(CNT); - nonce_encryption(N,CNT,s,k,t,n,0x5a); - } - else while (adlen > 0) { - if (adlen < n) { // The last block of AD is odd and incomplete - adlen = ad_encryption(&A,s,k,adlen,CNT,0x48,n,t); - nonce_encryption(N,CNT,s,k,t,n,0x5a); - } - else if (adlen == n) { // The last block of AD is odd and complete - adlen = ad_encryption(&A,s,k,adlen,CNT,0x48,n,t); - nonce_encryption(N,CNT,s,k,t,n,0x58); - } - else if (adlen < (n+t)) { // The last block of AD is even and incomplete - adlen = ad_encryption(&A,s,k,adlen,CNT,0x48,n,t); - nonce_encryption(N,CNT,s,k,t,n,0x5a); - } - else if (adlen == (n+t)) { // The last block of AD is even and complete - adlen = ad_encryption(&A,s,k,adlen,CNT,0x48,n,t); - nonce_encryption(N,CNT,s,k,t,n,0x58); - } - else { // A normal full pair of blocks of AD - adlen = ad_encryption(&A,s,k,adlen,CNT,0x48,n,t); - } - } - - reset_dual_lfsr(CNT); - - n = MSG_BLK_LEN; - *clen = mlen + n; - - if (mlen == 0) { // M is an empty string - dual_lfsr(CNT); - nonce_encryption(N,CNT,s,k,t,n,0x55); - } - else while (mlen > 0) { - if (mlen < n) { // The last block of M is incomplete - mlen = msg_encryption(&M,&c,N,CNT,s,k,n,t,0x55,mlen); - } - else if (mlen == n) { // The last block of M is complete - mlen = msg_encryption(&M,&c,N,CNT,s,k,n,t,0x54,mlen); - } - else { // A normal full message block - mlen = msg_encryption(&M,&c,N,CNT,s,k,n,t,0x44,mlen); - } - } - - // Tag generation - generate_tag(&c,s,n,clen); - //printf("T = ");display_vector(c+*clen-n,n); - - - return 0; -} - -int crypto_aead_decrypt( -unsigned char *m,unsigned long long *mlen, -unsigned char *nsec, -const unsigned char *c,unsigned long long clen, -const unsigned char *ad,unsigned long long adlen, -const unsigned char *npub, -const unsigned char *k -) -{ - - unsigned char s[16]; - unsigned char T[16]; - unsigned char CNT[6]; - const unsigned char* A; - unsigned char* M; - const unsigned char* N; - unsigned int n, t, i; - - (void)nsec; - A = ad; - M = m; - N = npub; - - n = AD_BLK_LEN_ODD; - t = AD_BLK_LEN_EVN; - - for (i = 0; i < n; i++) { - s[i] = 0; - } - reset_dual_lfsr(CNT); - //printf("s = ");display_vector(s,16); - //printf("cnt = ");display_vector(CNT,6); - - if (adlen == 0) { // AD is an empty string - dual_lfsr(CNT); - nonce_encryption(N,CNT,s,k,t,n,0x5a); - } - else while (adlen > 0) { - if (adlen < n) { // The last block of AD is odd and incomplete - adlen = ad_encryption(&A,s,k,adlen,CNT,0x48,n,t); - nonce_encryption(N,CNT,s,k,t,n,0x5a); - } - else if (adlen == n) { // The last block of AD is odd and complete - adlen = ad_encryption(&A,s,k,adlen,CNT,0x48,n,t); - nonce_encryption(N,CNT,s,k,t,n,0x58); - } - else if (adlen < (n+t)) { // The last block of AD is even and incomplete - adlen = ad_encryption(&A,s,k,adlen,CNT,0x48,n,t); - nonce_encryption(N,CNT,s,k,t,n,0x5a); - } - else if (adlen == (n+t)) { // The last block of AD is even and complete - adlen = ad_encryption(&A,s,k,adlen,CNT,0x48,n,t); - nonce_encryption(N,CNT,s,k,t,n,0x58); - } - else { // A normal full pair of blocks of AD - adlen = ad_encryption(&A,s,k,adlen,CNT,0x48,n,t); - } - } - - reset_dual_lfsr(CNT); - - n = MSG_BLK_LEN; - - clen = clen - n; - *mlen = clen; - - if (clen == 0) { // C is an empty string - dual_lfsr(CNT); - nonce_encryption(N,CNT,s,k,t,n,0x55); - } - else while (clen > 0) { - if (clen < n) { // The last block of C is incomplete - clen = msg_decryption(&M,&c,N,CNT,s,k,n,t,0x55,clen); - } - else if (clen == n) { // The last block of C is complete - clen = msg_decryption(&M,&c,N,CNT,s,k,n,t,0x54,clen); - } - else { // A normal full message block - clen = msg_decryption(&M,&c,N,CNT,s,k,n,t,0x44,clen); - } - } - - - // Tag generation - g8A(s, T); - //printf("T = ");display_vector(T,n); - for (i = 0; i < 16; i++) { - if (T[i] != (*(c+i))) { - return -1; - } - } - - return 0; - -} - - diff --git a/romulus/Implementations/crypto_aead/romulusn2v12/ref/genkat_aead.c b/romulus/Implementations/crypto_aead/romulusn2v12/ref/genkat_aead.c deleted file mode 100644 index 9727b0b..0000000 --- a/romulus/Implementations/crypto_aead/romulusn2v12/ref/genkat_aead.c +++ /dev/null @@ -1,162 +0,0 @@ -// -// NIST-developed software is provided by NIST as a public service. -// You may use, copy and distribute copies of the software in any medium, -// provided that you keep intact this entire notice. You may improve, -// modify and create derivative works of the software or any portion of -// the software, and you may copy and distribute such modifications or -// works. Modified works should carry a notice stating that you changed -// the software and should note the date and nature of any such change. -// Please explicitly acknowledge the National Institute of Standards and -// Technology as the source of the software. -// -// NIST-developed software is expressly provided "AS IS." NIST MAKES NO -// WARRANTY OF ANY KIND, EXPRESS, IMPLIED, IN FACT OR ARISING BY OPERATION -// OF LAW, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTY OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT AND DATA ACCURACY. NIST -// NEITHER REPRESENTS NOR WARRANTS THAT THE OPERATION OF THE SOFTWARE WILL BE -// UNINTERRUPTED OR ERROR-FREE, OR THAT ANY DEFECTS WILL BE CORRECTED. NIST -// DOES NOT WARRANT OR MAKE ANY REPRESENTATIONS REGARDING THE USE OF THE SOFTWARE -// OR THE RESULTS THEREOF, INCLUDING BUT NOT LIMITED TO THE CORRECTNESS, ACCURACY, -// RELIABILITY, OR USEFULNESS OF THE SOFTWARE. -// -// You are solely responsible for determining the appropriateness of using and -// distributing the software and you assume all risks associated with its use, -// including but not limited to the risks and costs of program errors, compliance -// with applicable laws, damage to or loss of data, programs or equipment, and -// the unavailability or interruption of operation. This software is not intended -// to be used in any situation where a failure could cause risk of injury or -// damage to property. The software developed by NIST employees is not subject to -// copyright protection within the United States. -// - -// disable deprecation for sprintf and fopen -#ifdef _MSC_VER -#define _CRT_SECURE_NO_WARNINGS -#endif - -#include -#include - -#include "crypto_aead.h" -#include "api.h" - -#define KAT_SUCCESS 0 -#define KAT_FILE_OPEN_ERROR -1 -#define KAT_DATA_ERROR -3 -#define KAT_CRYPTO_FAILURE -4 - -#define MAX_FILE_NAME 256 -#define MAX_MESSAGE_LENGTH 32 -#define MAX_ASSOCIATED_DATA_LENGTH 32 - -void init_buffer(unsigned char *buffer, unsigned long long numbytes); - -void fprint_bstr(FILE *fp, const char *label, const unsigned char *data, unsigned long long length); - -int generate_test_vectors(); - -int main() -{ - int ret = generate_test_vectors(); - - if (ret != KAT_SUCCESS) { - fprintf(stderr, "test vector generation failed with code %d\n", ret); - } - - return ret; -} - -int generate_test_vectors() -{ - FILE *fp; - char fileName[MAX_FILE_NAME]; - unsigned char key[CRYPTO_KEYBYTES]; - unsigned char nonce[CRYPTO_NPUBBYTES]; - unsigned char msg[MAX_MESSAGE_LENGTH]; - unsigned char msg2[MAX_MESSAGE_LENGTH]; - unsigned char ad[MAX_ASSOCIATED_DATA_LENGTH]; - unsigned char ct[MAX_MESSAGE_LENGTH + CRYPTO_ABYTES]; - unsigned long long clen, mlen2; - int count = 1; - int func_ret, ret_val = KAT_SUCCESS; - - init_buffer(key, sizeof(key)); - init_buffer(nonce, sizeof(nonce)); - init_buffer(msg, sizeof(msg)); - init_buffer(ad, sizeof(ad)); - - sprintf(fileName, "LWC_AEAD_KAT_%d_%d.txt", (CRYPTO_KEYBYTES * 8), (CRYPTO_NPUBBYTES * 8)); - - if ((fp = fopen(fileName, "w")) == NULL) { - fprintf(stderr, "Couldn't open <%s> for write\n", fileName); - return KAT_FILE_OPEN_ERROR; - } - - for (unsigned long long mlen = 0; (mlen <= MAX_MESSAGE_LENGTH) && (ret_val == KAT_SUCCESS); mlen++) { - //for (unsigned long long mlen = 0; (mlen <= 0) && (ret_val == KAT_SUCCESS); mlen++) { - for (unsigned long long adlen = 0; adlen <= MAX_ASSOCIATED_DATA_LENGTH; adlen++) { - //for (unsigned long long adlen = 0; adlen <= 1; adlen++) { - - printf("%0d\n", (int)clen); - - fprintf(fp, "Count = %d\n", count++); - - fprint_bstr(fp, "Key = ", key, CRYPTO_KEYBYTES); - - fprint_bstr(fp, "Nonce = ", nonce, CRYPTO_NPUBBYTES); - - fprint_bstr(fp, "PT = ", msg, mlen); - - fprint_bstr(fp, "AD = ", ad, adlen); - - if ((func_ret = crypto_aead_encrypt(ct, &clen, msg, mlen, ad, adlen, NULL, nonce, key)) != 0) { - fprintf(fp, "crypto_aead_encrypt returned <%d>\n", func_ret); - ret_val = KAT_CRYPTO_FAILURE; - break; - } - - fprint_bstr(fp, "CT = ", ct, clen); - - fprintf(fp, "\n"); - - if ((func_ret = crypto_aead_decrypt(msg2, &mlen2, NULL, ct, clen, ad, adlen, nonce, key)) != 0) { - fprintf(fp, "crypto_aead_decrypt returned <%d>\n", func_ret); - ret_val = KAT_CRYPTO_FAILURE; - break; - } - - if (mlen != mlen2) { - fprintf(fp, "crypto_aead_decrypt returned bad 'mlen': Got <%llu>, expected <%llu>\n", mlen2, mlen); - ret_val = KAT_CRYPTO_FAILURE; - break; - } - - if (memcmp(msg, msg2, mlen)) { - fprintf(fp, "crypto_aead_decrypt did not recover the plaintext\n"); - ret_val = KAT_CRYPTO_FAILURE; - break; - } - } - } - - fclose(fp); - - return ret_val; -} - - -void fprint_bstr(FILE *fp, const char *label, const unsigned char *data, unsigned long long length) -{ - fprintf(fp, "%s", label); - - for (unsigned long long i = 0; i < length; i++) - fprintf(fp, "%02X", data[i]); - - fprintf(fp, "\n"); -} - -void init_buffer(unsigned char *buffer, unsigned long long numbytes) -{ - for (unsigned long long i = 0; i < numbytes; i++) - buffer[i] = (unsigned char)i; -} diff --git a/romulus/Implementations/crypto_aead/romulusn2v12/ref/skinny.h b/romulus/Implementations/crypto_aead/romulusn2v12/ref/skinny.h deleted file mode 100644 index 70c4421..0000000 --- a/romulus/Implementations/crypto_aead/romulusn2v12/ref/skinny.h +++ /dev/null @@ -1 +0,0 @@ -extern void skinny_128_384_enc (unsigned char* input, const unsigned char* userkey); diff --git a/romulus/Implementations/crypto_aead/romulusn2v12/ref/skinny_reference.c b/romulus/Implementations/crypto_aead/romulusn2v12/ref/skinny_reference.c deleted file mode 100644 index ec59a31..0000000 --- a/romulus/Implementations/crypto_aead/romulusn2v12/ref/skinny_reference.c +++ /dev/null @@ -1,547 +0,0 @@ -/* - * Date: 11 December 2015 - * Contact: Thomas Peyrin - thomas.peyrin@gmail.com - */ - -#include -#include -#include -#include -#include "skinny.h" - -#define DEBUG 0 - -// Table that encodes the parameters of the various Skinny versions: -// (block size, key size, number of rounds) -//Skinny-64-64: 32 rounds -//Skinny-64-128: 36 rounds -//Skinny-64-192: 40 rounds -//Skinny-128-128: 40 rounds -//Skinny-128-256: 48 rounds -//Skinny-128-384: 56 rounds -int versions[6][3]={{64,64,32},{64,128,36},{64,192,40},{128,128,40},{128,256,48},{128,384,56}}; - -// Packing of data is done as follows (state[i][j] stands for row i and column j): -// 0 1 2 3 -// 4 5 6 7 -// 8 9 10 11 -//12 13 14 15 - -// 4-bit Sbox -const unsigned char sbox_4[16] = {12,6,9,0,1,10,2,11,3,8,5,13,4,14,7,15}; -const unsigned char sbox_4_inv[16] = {3,4,6,8,12,10,1,14,9,2,5,7,0,11,13,15}; - -// 8-bit Sbox -const unsigned char sbox_8[256] = {0x65 , 0x4c , 0x6a , 0x42 , 0x4b , 0x63 , 0x43 , 0x6b , 0x55 , 0x75 , 0x5a , 0x7a , 0x53 , 0x73 , 0x5b , 0x7b ,0x35 , 0x8c , 0x3a , 0x81 , 0x89 , 0x33 , 0x80 , 0x3b , 0x95 , 0x25 , 0x98 , 0x2a , 0x90 , 0x23 , 0x99 , 0x2b ,0xe5 , 0xcc , 0xe8 , 0xc1 , 0xc9 , 0xe0 , 0xc0 , 0xe9 , 0xd5 , 0xf5 , 0xd8 , 0xf8 , 0xd0 , 0xf0 , 0xd9 , 0xf9 ,0xa5 , 0x1c , 0xa8 , 0x12 , 0x1b , 0xa0 , 0x13 , 0xa9 , 0x05 , 0xb5 , 0x0a , 0xb8 , 0x03 , 0xb0 , 0x0b , 0xb9 ,0x32 , 0x88 , 0x3c , 0x85 , 0x8d , 0x34 , 0x84 , 0x3d , 0x91 , 0x22 , 0x9c , 0x2c , 0x94 , 0x24 , 0x9d , 0x2d ,0x62 , 0x4a , 0x6c , 0x45 , 0x4d , 0x64 , 0x44 , 0x6d , 0x52 , 0x72 , 0x5c , 0x7c , 0x54 , 0x74 , 0x5d , 0x7d ,0xa1 , 0x1a , 0xac , 0x15 , 0x1d , 0xa4 , 0x14 , 0xad , 0x02 , 0xb1 , 0x0c , 0xbc , 0x04 , 0xb4 , 0x0d , 0xbd ,0xe1 , 0xc8 , 0xec , 0xc5 , 0xcd , 0xe4 , 0xc4 , 0xed , 0xd1 , 0xf1 , 0xdc , 0xfc , 0xd4 , 0xf4 , 0xdd , 0xfd ,0x36 , 0x8e , 0x38 , 0x82 , 0x8b , 0x30 , 0x83 , 0x39 , 0x96 , 0x26 , 0x9a , 0x28 , 0x93 , 0x20 , 0x9b , 0x29 ,0x66 , 0x4e , 0x68 , 0x41 , 0x49 , 0x60 , 0x40 , 0x69 , 0x56 , 0x76 , 0x58 , 0x78 , 0x50 , 0x70 , 0x59 , 0x79 ,0xa6 , 0x1e , 0xaa , 0x11 , 0x19 , 0xa3 , 0x10 , 0xab , 0x06 , 0xb6 , 0x08 , 0xba , 0x00 , 0xb3 , 0x09 , 0xbb ,0xe6 , 0xce , 0xea , 0xc2 , 0xcb , 0xe3 , 0xc3 , 0xeb , 0xd6 , 0xf6 , 0xda , 0xfa , 0xd3 , 0xf3 , 0xdb , 0xfb ,0x31 , 0x8a , 0x3e , 0x86 , 0x8f , 0x37 , 0x87 , 0x3f , 0x92 , 0x21 , 0x9e , 0x2e , 0x97 , 0x27 , 0x9f , 0x2f ,0x61 , 0x48 , 0x6e , 0x46 , 0x4f , 0x67 , 0x47 , 0x6f , 0x51 , 0x71 , 0x5e , 0x7e , 0x57 , 0x77 , 0x5f , 0x7f ,0xa2 , 0x18 , 0xae , 0x16 , 0x1f , 0xa7 , 0x17 , 0xaf , 0x01 , 0xb2 , 0x0e , 0xbe , 0x07 , 0xb7 , 0x0f , 0xbf ,0xe2 , 0xca , 0xee , 0xc6 , 0xcf ,0xe7 , 0xc7 , 0xef , 0xd2 , 0xf2 , 0xde , 0xfe , 0xd7 , 0xf7 , 0xdf , 0xff}; -const unsigned char sbox_8_inv[256] = {0xac , 0xe8 , 0x68 , 0x3c , 0x6c , 0x38 , 0xa8 , 0xec , 0xaa , 0xae , 0x3a , 0x3e , 0x6a , 0x6e , 0xea , 0xee ,0xa6 , 0xa3 , 0x33 , 0x36 , 0x66 , 0x63 , 0xe3 , 0xe6 , 0xe1 , 0xa4 , 0x61 , 0x34 , 0x31 , 0x64 , 0xa1 , 0xe4 ,0x8d , 0xc9 , 0x49 , 0x1d , 0x4d , 0x19 , 0x89 , 0xcd , 0x8b , 0x8f , 0x1b , 0x1f , 0x4b , 0x4f , 0xcb , 0xcf ,0x85 , 0xc0 , 0x40 , 0x15 , 0x45 , 0x10 , 0x80 , 0xc5 , 0x82 , 0x87 , 0x12 , 0x17 , 0x42 , 0x47 , 0xc2 , 0xc7 ,0x96 , 0x93 , 0x03 , 0x06 , 0x56 , 0x53 , 0xd3 , 0xd6 , 0xd1 , 0x94 , 0x51 , 0x04 , 0x01 , 0x54 , 0x91 , 0xd4 ,0x9c , 0xd8 , 0x58 , 0x0c , 0x5c , 0x08 , 0x98 , 0xdc , 0x9a , 0x9e , 0x0a , 0x0e , 0x5a , 0x5e , 0xda , 0xde ,0x95 , 0xd0 , 0x50 , 0x05 , 0x55 , 0x00 , 0x90 , 0xd5 , 0x92 , 0x97 , 0x02 , 0x07 , 0x52 , 0x57 , 0xd2 , 0xd7 ,0x9d , 0xd9 , 0x59 , 0x0d , 0x5d , 0x09 , 0x99 , 0xdd , 0x9b , 0x9f , 0x0b , 0x0f , 0x5b , 0x5f , 0xdb , 0xdf ,0x16 , 0x13 , 0x83 , 0x86 , 0x46 , 0x43 , 0xc3 , 0xc6 , 0x41 , 0x14 , 0xc1 , 0x84 , 0x11 , 0x44 , 0x81 , 0xc4 ,0x1c , 0x48 , 0xc8 , 0x8c , 0x4c , 0x18 , 0x88 , 0xcc , 0x1a , 0x1e , 0x8a , 0x8e , 0x4a , 0x4e , 0xca , 0xce ,0x35 , 0x60 , 0xe0 , 0xa5 , 0x65 , 0x30 , 0xa0 , 0xe5 , 0x32 , 0x37 , 0xa2 , 0xa7 , 0x62 , 0x67 , 0xe2 , 0xe7 ,0x3d , 0x69 , 0xe9 , 0xad , 0x6d , 0x39 , 0xa9 , 0xed , 0x3b , 0x3f , 0xab , 0xaf , 0x6b , 0x6f , 0xeb , 0xef ,0x26 , 0x23 , 0xb3 , 0xb6 , 0x76 , 0x73 , 0xf3 , 0xf6 , 0x71 , 0x24 , 0xf1 , 0xb4 , 0x21 , 0x74 , 0xb1 , 0xf4 ,0x2c , 0x78 , 0xf8 , 0xbc , 0x7c , 0x28 , 0xb8 , 0xfc , 0x2a , 0x2e , 0xba , 0xbe , 0x7a , 0x7e , 0xfa , 0xfe ,0x25 , 0x70 , 0xf0 , 0xb5 , 0x75 , 0x20 , 0xb0 , 0xf5 , 0x22 , 0x27 , 0xb2 , 0xb7 , 0x72 , 0x77 , 0xf2 , 0xf7 ,0x2d , 0x79 , 0xf9 , 0xbd , 0x7d , 0x29 , 0xb9 , 0xfd , 0x2b , 0x2f , 0xbb , 0xbf , 0x7b , 0x7f , 0xfb , 0xff}; - -// ShiftAndSwitchRows permutation -const unsigned char P[16] = {0,1,2,3,7,4,5,6,10,11,8,9,13,14,15,12}; -const unsigned char P_inv[16] = {0,1,2,3,5,6,7,4,10,11,8,9,15,12,13,14}; - -// Tweakey permutation -const unsigned char TWEAKEY_P[16] = {9,15,8,13,10,14,12,11,0,1,2,3,4,5,6,7}; -const unsigned char TWEAKEY_P_inv[16] = {8,9,10,11,12,13,14,15,2,0,4,7,6,3,5,1}; - -// round constants -const unsigned char RC[62] = { - 0x01, 0x03, 0x07, 0x0F, 0x1F, 0x3E, 0x3D, 0x3B, 0x37, 0x2F, - 0x1E, 0x3C, 0x39, 0x33, 0x27, 0x0E, 0x1D, 0x3A, 0x35, 0x2B, - 0x16, 0x2C, 0x18, 0x30, 0x21, 0x02, 0x05, 0x0B, 0x17, 0x2E, - 0x1C, 0x38, 0x31, 0x23, 0x06, 0x0D, 0x1B, 0x36, 0x2D, 0x1A, - 0x34, 0x29, 0x12, 0x24, 0x08, 0x11, 0x22, 0x04, 0x09, 0x13, - 0x26, 0x0c, 0x19, 0x32, 0x25, 0x0a, 0x15, 0x2a, 0x14, 0x28, - 0x10, 0x20}; - -FILE* fic; - - -// Extract and apply the subtweakey to the internal state (must be the two top rows XORed together), then update the tweakey state -void AddKey(unsigned char state[4][4], unsigned char keyCells[3][4][4], int ver) -{ - int i, j, k; - unsigned char pos; - unsigned char keyCells_tmp[3][4][4]; - - // apply the subtweakey to the internal state - for(i = 0; i <= 1; i++) - { - for(j = 0; j < 4; j++) - { - state[i][j] ^= keyCells[0][i][j]; - if (2*versions[ver][0]==versions[ver][1]) - state[i][j] ^= keyCells[1][i][j]; - else if (3*versions[ver][0]==versions[ver][1]) - state[i][j] ^= keyCells[1][i][j] ^ keyCells[2][i][j]; - } - } - - // update the subtweakey states with the permutation - for(k = 0; k <(int)(versions[ver][1]/versions[ver][0]); k++){ - for(i = 0; i < 4; i++){ - for(j = 0; j < 4; j++){ - //application of the TWEAKEY permutation - pos=TWEAKEY_P[j+4*i]; - keyCells_tmp[k][i][j]=keyCells[k][pos>>2][pos&0x3]; - } - } - } - - // update the subtweakey states with the LFSRs - for(k = 0; k <(int)(versions[ver][1]/versions[ver][0]); k++){ - for(i = 0; i <= 1; i++){ - for(j = 0; j < 4; j++){ - //application of LFSRs for TK updates - if (k==1) - { - if (versions[ver][0]==64) - keyCells_tmp[k][i][j]=((keyCells_tmp[k][i][j]<<1)&0xE)^((keyCells_tmp[k][i][j]>>3)&0x1)^((keyCells_tmp[k][i][j]>>2)&0x1); - else - keyCells_tmp[k][i][j]=((keyCells_tmp[k][i][j]<<1)&0xFE)^((keyCells_tmp[k][i][j]>>7)&0x01)^((keyCells_tmp[k][i][j]>>5)&0x01); - } - else if (k==2) - { - if (versions[ver][0]==64) - keyCells_tmp[k][i][j]=((keyCells_tmp[k][i][j]>>1)&0x7)^((keyCells_tmp[k][i][j])&0x8)^((keyCells_tmp[k][i][j]<<3)&0x8); - else - keyCells_tmp[k][i][j]=((keyCells_tmp[k][i][j]>>1)&0x7F)^((keyCells_tmp[k][i][j]<<7)&0x80)^((keyCells_tmp[k][i][j]<<1)&0x80); - } - } - } - } - - for(k = 0; k <(int)(versions[ver][1]/versions[ver][0]); k++){ - for(i = 0; i < 4; i++){ - for(j = 0; j < 4; j++){ - keyCells[k][i][j]=keyCells_tmp[k][i][j]; - } - } - } -} - - -// Extract and apply the subtweakey to the internal state (must be the two top rows XORed together), then update the tweakey state (inverse function} -void AddKey_inv(unsigned char state[4][4], unsigned char keyCells[3][4][4], int ver) -{ - int i, j, k; - unsigned char pos; - unsigned char keyCells_tmp[3][4][4]; - - // update the subtweakey states with the permutation - for(k = 0; k <(int)(versions[ver][1]/versions[ver][0]); k++){ - for(i = 0; i < 4; i++){ - for(j = 0; j < 4; j++){ - //application of the inverse TWEAKEY permutation - pos=TWEAKEY_P_inv[j+4*i]; - keyCells_tmp[k][i][j]=keyCells[k][pos>>2][pos&0x3]; - } - } - } - - // update the subtweakey states with the LFSRs - for(k = 0; k <(int)(versions[ver][1]/versions[ver][0]); k++){ - for(i = 2; i <= 3; i++){ - for(j = 0; j < 4; j++){ - //application of inverse LFSRs for TK updates - if (k==1) - { - if (versions[ver][0]==64) - keyCells_tmp[k][i][j]=((keyCells_tmp[k][i][j]>>1)&0x7)^((keyCells_tmp[k][i][j]<<3)&0x8)^((keyCells_tmp[k][i][j])&0x8); - else - keyCells_tmp[k][i][j]=((keyCells_tmp[k][i][j]>>1)&0x7F)^((keyCells_tmp[k][i][j]<<7)&0x80)^((keyCells_tmp[k][i][j]<<1)&0x80); - } - else if (k==2) - { - if (versions[ver][0]==64) - keyCells_tmp[k][i][j]=((keyCells_tmp[k][i][j]<<1)&0xE)^((keyCells_tmp[k][i][j]>>3)&0x1)^((keyCells_tmp[k][i][j]>>2)&0x1); - else - keyCells_tmp[k][i][j]=((keyCells_tmp[k][i][j]<<1)&0xFE)^((keyCells_tmp[k][i][j]>>7)&0x01)^((keyCells_tmp[k][i][j]>>5)&0x01); - } - } - } - } - - for(k = 0; k <(int)(versions[ver][1]/versions[ver][0]); k++){ - for(i = 0; i < 4; i++){ - for(j = 0; j < 4; j++){ - keyCells[k][i][j]=keyCells_tmp[k][i][j]; - } - } - } - - - // apply the subtweakey to the internal state - for(i = 0; i <= 1; i++) - { - for(j = 0; j < 4; j++) - { - state[i][j] ^= keyCells[0][i][j]; - if (2*versions[ver][0]==versions[ver][1]) - state[i][j] ^= keyCells[1][i][j]; - else if (3*versions[ver][0]==versions[ver][1]) - state[i][j] ^= keyCells[1][i][j] ^ keyCells[2][i][j]; - } - } -} - - -// Apply the constants: using a LFSR counter on 6 bits, we XOR the 6 bits to the first 6 bits of the internal state -void AddConstants(unsigned char state[4][4], int r) -{ - state[0][0] ^= (RC[r] & 0xf); - state[1][0] ^= ((RC[r]>>4) & 0x3); - state[2][0] ^= 0x2; -} - -// apply the 4-bit Sbox -void SubCell4(unsigned char state[4][4]) -{ - int i,j; - for(i = 0; i < 4; i++) - for(j = 0; j < 4; j++) - state[i][j] = sbox_4[state[i][j]]; -} - -// apply the 4-bit inverse Sbox -void SubCell4_inv(unsigned char state[4][4]) -{ - int i,j; - for(i = 0; i < 4; i++) - for(j = 0; j < 4; j++) - state[i][j] = sbox_4_inv[state[i][j]]; -} - -// apply the 8-bit Sbox -void SubCell8(unsigned char state[4][4]) -{ - int i,j; - for(i = 0; i < 4; i++) - for(j = 0; j < 4; j++) - state[i][j] = sbox_8[state[i][j]]; -} - -// apply the 8-bit inverse Sbox -void SubCell8_inv(unsigned char state[4][4]) -{ - int i,j; - for(i = 0; i < 4; i++) - for(j = 0; j < 4; j++) - state[i][j] = sbox_8_inv[state[i][j]]; -} - -// Apply the ShiftRows function -void ShiftRows(unsigned char state[4][4]) -{ - int i, j, pos; - - unsigned char state_tmp[4][4]; - for(i = 0; i < 4; i++) - { - for(j = 0; j < 4; j++) - { - //application of the ShiftRows permutation - pos=P[j+4*i]; - state_tmp[i][j]=state[pos>>2][pos&0x3]; - } - } - - for(i = 0; i < 4; i++) - { - for(j = 0; j < 4; j++) - { - state[i][j]=state_tmp[i][j]; - } - } -} - -// Apply the inverse ShiftRows function -void ShiftRows_inv(unsigned char state[4][4]) -{ - int i, j, pos; - - unsigned char state_tmp[4][4]; - for(i = 0; i < 4; i++) - { - for(j = 0; j < 4; j++) - { - //application of the inverse ShiftRows permutation - pos=P_inv[j+4*i]; - state_tmp[i][j]=state[pos>>2][pos&0x3]; - } - } - - for(i = 0; i < 4; i++) - { - for(j = 0; j < 4; j++) - { - state[i][j]=state_tmp[i][j]; - } - } -} - -// Apply the linear diffusion matrix -//M = -//1 0 1 1 -//1 0 0 0 -//0 1 1 0 -//1 0 1 0 -void MixColumn(unsigned char state[4][4]) -{ - int j; - unsigned char temp; - - for(j = 0; j < 4; j++){ - state[1][j]^=state[2][j]; - state[2][j]^=state[0][j]; - state[3][j]^=state[2][j]; - - temp=state[3][j]; - state[3][j]=state[2][j]; - state[2][j]=state[1][j]; - state[1][j]=state[0][j]; - state[0][j]=temp; - } -} - -// Apply the inverse linear diffusion matrix -void MixColumn_inv(unsigned char state[4][4]) -{ - int j; - unsigned char temp; - - for(j = 0; j < 4; j++){ - temp=state[3][j]; - state[3][j]=state[0][j]; - state[0][j]=state[1][j]; - state[1][j]=state[2][j]; - state[2][j]=temp; - - state[3][j]^=state[2][j]; - state[2][j]^=state[0][j]; - state[1][j]^=state[2][j]; - } -} - -// decryption function of Skinny -void dec(unsigned char* input, const unsigned char* userkey, int ver) -{ - unsigned char state[4][4]; - unsigned char dummy[4][4]={{0}}; - unsigned char keyCells[3][4][4]; - int i; - - memset(keyCells, 0, 48); - for(i = 0; i < 16; i++) { - if (versions[ver][0]==64){ - if(i&1) - { - state[i>>2][i&0x3] = input[i>>1]&0xF; - keyCells[0][i>>2][i&0x3] = userkey[i>>1]&0xF; - if (versions[ver][1]>=128) - keyCells[1][i>>2][i&0x3] = userkey[(i+16)>>1]&0xF; - if (versions[ver][1]>=192) - keyCells[2][i>>2][i&0x3] = userkey[(i+32)>>1]&0xF; - } - else - { - state[i>>2][i&0x3] = (input[i>>1]>>4)&0xF; - keyCells[0][i>>2][i&0x3] = (userkey[i>>1]>>4)&0xF; - if (versions[ver][1]>=128) - keyCells[1][i>>2][i&0x3] = (userkey[(i+16)>>1]>>4)&0xF; - if (versions[ver][1]>=192) - keyCells[2][i>>2][i&0x3] = (userkey[(i+32)>>1]>>4)&0xF; - } - } - else if (versions[ver][0]==128){ - state[i>>2][i&0x3] = input[i]&0xFF; - - keyCells[0][i>>2][i&0x3] = userkey[i]&0xFF; - if (versions[ver][1]>=256) - keyCells[1][i>>2][i&0x3] = userkey[i+16]&0xFF; - if (versions[ver][1]>=384) - keyCells[2][i>>2][i&0x3] = userkey[i+32]&0xFF; - } - } - - for(i = versions[ver][2]-1; i >=0 ; i--){ - AddKey(dummy, keyCells, ver); - } - - #ifdef DEBUG - //f//printf(fic,"DEC - initial state: ");display_cipher_state(state,keyCells,ver);//f//printf(fic,"\n"); - #endif - - for(i = versions[ver][2]-1; i >=0 ; i--){ - MixColumn_inv(state); - #ifdef DEBUG - //f//printf(fic,"DEC - round %.2i - after MixColumn_inv: ",i);display_cipher_state(state,keyCells,ver);//f//printf(fic,"\n"); - #endif - ShiftRows_inv(state); - #ifdef DEBUG - //f//printf(fic,"DEC - round %.2i - after ShiftRows_inv: ",i);display_cipher_state(state,keyCells,ver);//f//printf(fic,"\n"); - #endif - AddKey_inv(state, keyCells, ver); - #ifdef DEBUG - //f//printf(fic,"DEC - round %.2i - after AddKey_inv: ",i);display_cipher_state(state,keyCells,ver);//f//printf(fic,"\n"); - #endif - AddConstants(state, i); - #ifdef DEBUG - //f//printf(fic,"DEC - round %.2i - after AddConstants_inv: ",i);display_cipher_state(state,keyCells,ver);//f//printf(fic,"\n"); - #endif - if (versions[ver][0]==64) - SubCell4_inv(state); - else - SubCell8_inv(state); - #ifdef DEBUG - //f//printf(fic,"DEC - round %.2i - after SubCell_inv: ",i);display_cipher_state(state,keyCells,ver);//f//printf(fic,"\n"); - #endif - } - - #ifdef DEBUG - //f//printf(fic,"DEC - final state: ");display_cipher_state(state,keyCells,ver);//f//printf(fic,"\n"); - #endif - - if (versions[ver][0]==64) - { - for(i = 0; i < 8; i++) - input[i] = ((state[(2*i)>>2][(2*i)&0x3] & 0xF) << 4) | (state[(2*i+1)>>2][(2*i+1)&0x3] & 0xF); - } - else if (versions[ver][0]==128) - { - for(i = 0; i < 16; i++) - input[i] = state[i>>2][i&0x3] & 0xFF; - } -} - -// encryption function of Skinny -void enc(unsigned char* input, const unsigned char* userkey, int ver) -{ - unsigned char state[4][4]; - unsigned char keyCells[3][4][4]; - int i; - - memset(keyCells, 0, 48); - for(i = 0; i < 16; i++) { - if (versions[ver][0]==64){ - if(i&1) - { - state[i>>2][i&0x3] = input[i>>1]&0xF; - keyCells[0][i>>2][i&0x3] = userkey[i>>1]&0xF; - if (versions[ver][1]>=128) - keyCells[1][i>>2][i&0x3] = userkey[(i+16)>>1]&0xF; - if (versions[ver][1]>=192) - keyCells[2][i>>2][i&0x3] = userkey[(i+32)>>1]&0xF; - } - else - { - state[i>>2][i&0x3] = (input[i>>1]>>4)&0xF; - keyCells[0][i>>2][i&0x3] = (userkey[i>>1]>>4)&0xF; - if (versions[ver][1]>=128) - keyCells[1][i>>2][i&0x3] = (userkey[(i+16)>>1]>>4)&0xF; - if (versions[ver][1]>=192) - keyCells[2][i>>2][i&0x3] = (userkey[(i+32)>>1]>>4)&0xF; - } - } - else if (versions[ver][0]==128){ - state[i>>2][i&0x3] = input[i]&0xFF; - keyCells[0][i>>2][i&0x3] = userkey[i]&0xFF; - if (versions[ver][1]>=256) - keyCells[1][i>>2][i&0x3] = userkey[i+16]&0xFF; - if (versions[ver][1]>=384) - keyCells[2][i>>2][i&0x3] = userkey[i+32]&0xFF; - } - } - - #ifdef DEBUG - //printf("ENC - initial state: ");display_cipher_state(state,keyCells,ver);//printf("\n"); - #endif - for(i = 0; i < versions[ver][2]; i++){ - if (versions[ver][0]==64) - SubCell4(state); - else - SubCell8(state); - #ifdef DEBUG - //printf("ENC - round %.2i - after SubCell: ",i);display_cipher_state(state,keyCells,ver);//printf("\n"); - #endif - AddConstants(state, i); - #ifdef DEBUG - //printf("ENC - round %.2i - after AddConstants: ",i);display_cipher_state(state,keyCells,ver);//printf("\n"); - #endif - AddKey(state, keyCells, ver); - #ifdef DEBUG - //printf("ENC - round %.2i - after AddKey: ",i);display_cipher_state(state,keyCells,ver);//printf("\n"); - #endif - ShiftRows(state); - #ifdef DEBUG - //printf("ENC - round %.2i - after ShiftRows: ",i);display_cipher_state(state,keyCells,ver);//printf("\n"); - #endif - MixColumn(state); - #ifdef DEBUG - //printf("ENC - round %.2i - after MixColumn: ",i);display_cipher_state(state,keyCells,ver);//printf("\n"); - #endif - } //The last subtweakey should not be added - - #ifdef DEBUG - //printf("ENC - final state: ");display_cipher_state(state,keyCells,ver);//printf("\n"); - #endif - - if (versions[ver][0]==64) - { - for(i = 0; i < 8; i++) - input[i] = ((state[(2*i)>>2][(2*i)&0x3] & 0xF) << 4) | (state[(2*i+1)>>2][(2*i+1)&0x3] & 0xF); - } - else if (versions[ver][0]==128) - { - for(i = 0; i < 16; i++) - input[i] = state[i>>2][i&0x3] & 0xFF; - } -} - -void skinny_128_384_enc (unsigned char* input, const unsigned char* userkey) { - enc(input,userkey,5); -} - -// generate test vectors for all the versions of Skinny -void TestVectors(int ver) -{ - unsigned char p[16]; - unsigned char c[16]; - unsigned char k[48]; - int n; - - for(n = 1; n < 10; n++) - { - int i; - for(i = 0; i < (versions[ver][0]>>3); i++) c[i] = p[i] = rand() & 0xff; - for(i = 0; i < (versions[ver][1]>>3); i++) k[i] = rand() & 0xff; - //printf("TK = "); for(i = 0; i < (versions[ver][1]>>3); i++) //printf("%02x", k[i]); //printf("\n"); - //printf("P = "); for(i = 0; i < (versions[ver][0]>>3); i++) //printf("%02x", p[i]); //printf("\n"); - enc(c,k,ver); - //printf("C = "); for(i = 0; i < (versions[ver][0]>>3); i++) //printf("%02x", c[i]); //printf("\n"); - dec(c,k,ver); - //printf("P' = "); for(i = 0; i < (versions[ver][0]>>3); i++) //printf("%02x", c[i]); //printf("\n\n"); - } -} - -/* int main() { */ -/* unsigned int i; */ -/* char name[30]; */ - -/* srand((unsigned) time (NULL)); */ - -/* //test all versions of Skinny */ -/* for (i=0; i<(sizeof(versions)/sizeof(*versions));i++) */ -/* { */ -/* s//printf(name, "test_vectors_%i_%i.txt", versions[i][0], versions[i][1]); */ -/* fic=fopen(name,"w"); */ -/* //printf("\n\nSkinny-%i/%i: \n",versions[i][0],versions[i][1]); */ -/* TestVectors(i); */ -/* fclose(fic); */ -/* //printf("Generating test vectors for Skinny-%i/%i - saved in file test_vectors_%i_%i.txt \n",versions[i][0],versions[i][1],versions[i][0],versions[i][1]); */ -/* } */ - -/* return 0; */ -/* } */ - - - diff --git a/romulus/Implementations/crypto_aead/romulusn2v12/ref/variant.h b/romulus/Implementations/crypto_aead/romulusn2v12/ref/variant.h deleted file mode 100644 index 27e7705..0000000 --- a/romulus/Implementations/crypto_aead/romulusn2v12/ref/variant.h +++ /dev/null @@ -1,3 +0,0 @@ -#define MSG_BLK_LEN 16 -#define AD_BLK_LEN_ODD 16 -#define AD_BLK_LEN_EVN 12 diff --git a/romulus/Implementations/crypto_aead/romulusn3/LWC_AEAD_KAT_128_96.txt b/romulus/Implementations/crypto_aead/romulusn3/LWC_AEAD_KAT_128_96.txt new file mode 100644 index 0000000..384bc3e --- /dev/null +++ b/romulus/Implementations/crypto_aead/romulusn3/LWC_AEAD_KAT_128_96.txt @@ -0,0 +1,7623 @@ +Count = 1 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = +AD = +CT = 8F13641C9EB6C1307C40947E0326D8F2 + +Count = 2 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = +AD = 00 +CT = B12064E6DBB7BB6D081436FF7CA65AE1 + +Count = 3 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = +AD = 0001 +CT = FEA10D48FB277672BF47C3FCE4EF4966 + +Count = 4 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = +AD = 000102 +CT = 2E7A74514D401CB194AC2EFCF7B7396A + +Count = 5 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = +AD = 00010203 +CT = 1FFC1E07934B4F00053444B8BF58A700 + +Count = 6 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = +AD = 0001020304 +CT = 71BDF3AD797D3EEF55CE82D4BDBB9140 + +Count = 7 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = +AD = 000102030405 +CT = 6258DE1707590A93B4ABE1D506B405AD + +Count = 8 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = +AD = 00010203040506 +CT = 7FC140A0827E94FCA4CD6DF8552CAEF8 + +Count = 9 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = +AD = 0001020304050607 +CT = 6E358D0AB1F662110E9575108DED9B04 + +Count = 10 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = +AD = 000102030405060708 +CT = 45A2EEAC0C64962B560A6566C9CEC8F5 + +Count = 11 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = +AD = 00010203040506070809 +CT = AD7762A892816389E47AE51A7A3AE083 + +Count = 12 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = +AD = 000102030405060708090A +CT = A946DFBBDC58BB2FAFA332DD489707AE + +Count = 13 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = +AD = 000102030405060708090A0B +CT = 2AB43C90761D20C916B1E1CFA34BB851 + +Count = 14 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = +AD = 000102030405060708090A0B0C +CT = 1D74BF88344350B9A3F19B01A467B964 + +Count = 15 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = +AD = 000102030405060708090A0B0C0D +CT = A73C27CEC4C90A60657984ECF14F4311 + +Count = 16 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = +AD = 000102030405060708090A0B0C0D0E +CT = 9492A26AF193AC8795460141CD63860B + +Count = 17 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = +AD = 000102030405060708090A0B0C0D0E0F +CT = 2252E574D9AF87121148FEFFA823A7AA + +Count = 18 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = +AD = 000102030405060708090A0B0C0D0E0F10 +CT = C72F18D2C55EA6D7334F49A96965345E + +Count = 19 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 6E8AAF32A94307A8908CA6324D236D4D + +Count = 20 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = 20575D481A84E1AB52E0FBEF9AE4A236 + +Count = 21 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = CD46846451099CE17833D585648AE086 + +Count = 22 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = C6637DA570A27EDB37352D9139D68253 + +Count = 23 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = 856DEFC827B515CB9BF5345968668ED8 + +Count = 24 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = 13342A12C7E66227EACD20799E63D4FD + +Count = 25 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = FE1D77D9A2DB00DF11D49BE96EE17C6B + +Count = 26 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = EC825A7D1E7EBC0317C276FCEF297014 + +Count = 27 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = E2A36A4CCE59A358AA8D26DBAE8C20FF + +Count = 28 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 599292757F1270FE618818F69EC27C2E + +Count = 29 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = B80C2E6054ECCEEADBCCCF1F71556704 + +Count = 30 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = CDE9D19136EC000F6164EF8D1744061C + +Count = 31 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = 2A2C6F891B3A800D0356D2ECE2A8CBE2 + +Count = 32 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = C420CE77311CA0F1651173628C42B8A6 + +Count = 33 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = FCEECFBBE9CA6C7D94ABE3D5F33175F9 + +Count = 34 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00 +AD = +CT = C9B1E62EADFA676C59497D904C1BA69015 + +Count = 35 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00 +AD = 00 +CT = 237EC5AC4CA64DB10EAFC536CC8BE626EF + +Count = 36 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00 +AD = 0001 +CT = FEB3AED937210D5425A543ECC77DFA16AD + +Count = 37 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00 +AD = 000102 +CT = EC1A7F90FFE18A7384E6B5F30DA547C954 + +Count = 38 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00 +AD = 00010203 +CT = D10AB523132F0DFCB7F89D5EB80148C942 + +Count = 39 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00 +AD = 0001020304 +CT = A76BAF7ABBA866296578E827F56F060BE3 + +Count = 40 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00 +AD = 000102030405 +CT = DB0B51C1A9303D74F559CB938DC3B396AB + +Count = 41 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00 +AD = 00010203040506 +CT = 1D087D03E6CCDE88F034EF779F4936F136 + +Count = 42 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00 +AD = 0001020304050607 +CT = 4E8F4AC460F0A14D3632095232905E89A3 + +Count = 43 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00 +AD = 000102030405060708 +CT = FEB1BA6ED7015CE1A2A17D88866D280A39 + +Count = 44 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00 +AD = 00010203040506070809 +CT = E9020BFFA16CA0145C98C9C7BD917FCC97 + +Count = 45 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00 +AD = 000102030405060708090A +CT = FC57116EEADA77BD9781452F2C3EC1BBCE + +Count = 46 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00 +AD = 000102030405060708090A0B +CT = 02268235DA395874709E2880A1DC0356C4 + +Count = 47 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00 +AD = 000102030405060708090A0B0C +CT = 82EB11B55495F6AEEA8C31A0BCA68BD71C + +Count = 48 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00 +AD = 000102030405060708090A0B0C0D +CT = 5D1805D1A0137E94F8C2DF338F3FB33E75 + +Count = 49 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00 +AD = 000102030405060708090A0B0C0D0E +CT = F588FC532615510D4246CCAB1347972897 + +Count = 50 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00 +AD = 000102030405060708090A0B0C0D0E0F +CT = 0F09A8F8DAEF5BD76705493B0DC01DF196 + +Count = 51 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 18BFDF06F757F217B51778D1231D35173C + +Count = 52 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 0A4164F91A10EAEA6B498F69895BF332DA + +Count = 53 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = 811116F4DE216DC9A287F2BB86EF85C77B + +Count = 54 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = C53E2D862469A730C55147B4C3C3A177FE + +Count = 55 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = DDD7A5F896CB859F4AF52CE543507E08BF + +Count = 56 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = 80A1B1753382025F8D24115E7A51DF83F4 + +Count = 57 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = D840DA3949F2D36AA8F718C9350DCDC81E + +Count = 58 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = A5FF27C3B0B489AD79AE3BD8DF96C6A9E2 + +Count = 59 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 23979AFF552136775744E6A3E0A8826A30 + +Count = 60 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = BAFE8A72E5F1373B9FCB820BC89B62D94C + +Count = 61 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 6FB5657B20942FC69249F15433C0692D38 + +Count = 62 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 93BC612B3A74FD5B4DB79BC42226A23C75 + +Count = 63 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = 86D7D5CFBE500E50B1630268D8B5993A18 + +Count = 64 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = A4C763B7BF5974C3178476253183F3090C + +Count = 65 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = D40EB14A9264EB34276B2100C8EDA817E5 + +Count = 66 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 6E5572161B410A3D8CF17A10D39A0222DD + +Count = 67 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001 +AD = +CT = C9F982392533D3566DACC5F4210DCE21FA96 + +Count = 68 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001 +AD = 00 +CT = 231940C9D3B498A0103361F560B4A6081360 + +Count = 69 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001 +AD = 0001 +CT = FE9DE0658A4FE39D5A61C460A64E8262B1B6 + +Count = 70 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001 +AD = 000102 +CT = EC816FAC8F6C562459F5088347C2C18DD303 + +Count = 71 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001 +AD = 00010203 +CT = D1899AC8C34A16A568F537FF59D25EE21EC0 + +Count = 72 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001 +AD = 0001020304 +CT = A748EA5F576C15C2B2884AACE65CB6A49113 + +Count = 73 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001 +AD = 000102030405 +CT = DB24251352868E5E63F270B7C2313E4BFA7B + +Count = 74 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001 +AD = 00010203040506 +CT = 1D17BE35E3477E9331D60ADA365B0DB266C5 + +Count = 75 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001 +AD = 0001020304050607 +CT = 4E983B192E42B54C785A32570D7F7ABD37F9 + +Count = 76 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001 +AD = 000102030405060708 +CT = FE62C51E117D0053F17ABF450703A92F6FF1 + +Count = 77 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001 +AD = 00010203040506070809 +CT = E9C2B8078986ACC339F889A7F1F5CE349DED + +Count = 78 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001 +AD = 000102030405060708090A +CT = FCD0E62BBB8FB51A7F1594A8256E1BE2F9AB + +Count = 79 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001 +AD = 000102030405060708090A0B +CT = 02282414BA729A3A960528BB0753A9B4A148 + +Count = 80 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001 +AD = 000102030405060708090A0B0C +CT = 82B64D10719E5B1F43FCF51C63F7A3A39330 + +Count = 81 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001 +AD = 000102030405060708090A0B0C0D +CT = 5DC078B872210F0FA3FABF9C6F216C9F41BF + +Count = 82 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001 +AD = 000102030405060708090A0B0C0D0E +CT = F5E225D7290AAD96EC131CAD0C6251507600 + +Count = 83 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001 +AD = 000102030405060708090A0B0C0D0E0F +CT = 0F47189BD9D1E44EAB3208C941B15F7D14A9 + +Count = 84 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 183BC85265A336B277AB7F252442334C17CA + +Count = 85 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 0AD4E84CC8DA28493C28BD7F20FAD5C4CEA8 + +Count = 86 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = 81E2E5B99CF1E5B4E1E95A6BCC00CFF96EE4 + +Count = 87 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = C51BF8FBFCE942E4B9C0335EC72786C0DBCB + +Count = 88 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = DD72ECCD2856B7C0FDD26D4E374EEC879375 + +Count = 89 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = 8079A9735DEB4B0006A4493BDAD56116BFE9 + +Count = 90 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = D84873327AB0B6237BC00FBCA04A80F1C737 + +Count = 91 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = A5F03AE91B7FBAA7A4A2B54576F13C2DED3F + +Count = 92 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 236E1DF60F60A01110832857B416BA82C8CA + +Count = 93 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = BAECF624A640679ECC5E6BA72FA5CA16DC18 + +Count = 94 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 6FEA7927AC274D13C397337EEE3C0B701B38 + +Count = 95 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 935161C2BA7B6CF304BB1841B6E148238945 + +Count = 96 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = 8647ABD44A4D185908F74D3E3FFD16FCEE38 + +Count = 97 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = A4ECB9DA15A3633C86F3E11FBE5065B038A5 + +Count = 98 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = D4C89D46AF4546045CA7224B3343F9BF41E2 + +Count = 99 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 6EF9B5A0803A90FB2A1F11B9C68A0E4464EC + +Count = 100 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102 +AD = +CT = C9F98EDFAB30D37588E2091B11DD3544732354 + +Count = 101 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102 +AD = 00 +CT = 2319705BAFF7EBC8AC91D147CD93C4A1A13432 + +Count = 102 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102 +AD = 0001 +CT = FE9D36B78AF5CC41D79B956C2A41AB44F9FCA1 + +Count = 103 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102 +AD = 000102 +CT = EC81D55D5F3E073D7E9E0518E65086D07F7B67 + +Count = 104 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102 +AD = 00010203 +CT = D18908D0F0A3367D17089EA5BD757E5909E23F + +Count = 105 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102 +AD = 0001020304 +CT = A748A828E28DEB0DE01FAB79411DFFD59AF9C9 + +Count = 106 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102 +AD = 000102030405 +CT = DB24D061BE0A04F315D526F9051DBB3DA1C0F9 + +Count = 107 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102 +AD = 00010203040506 +CT = 1D1756BE37310966A4267EC854E1628C7D4660 + +Count = 108 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102 +AD = 0001020304050607 +CT = 4E9807C7F07380EFD416D9FCBE60ECFC524439 + +Count = 109 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102 +AD = 000102030405060708 +CT = FE628DA0638EC0EC11625A11C530314EA635C1 + +Count = 110 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102 +AD = 00010203040506070809 +CT = E9C2859D9116B31D3DA324D1C28CBCD895258D + +Count = 111 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102 +AD = 000102030405060708090A +CT = FCD0427833BC178B4DD4778D232BF7A631A4E4 + +Count = 112 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102 +AD = 000102030405060708090A0B +CT = 0228F042B0A755AE09EA73BB60CD0E644370E4 + +Count = 113 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102 +AD = 000102030405060708090A0B0C +CT = 82B6B9182831A9B38A012D1D65A88AF4DA6776 + +Count = 114 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102 +AD = 000102030405060708090A0B0C0D +CT = 5DC0EAEBE52D166D03E1967E2830B40135476B + +Count = 115 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102 +AD = 000102030405060708090A0B0C0D0E +CT = F5E273CE1863DAD994C1048026202141585526 + +Count = 116 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102 +AD = 000102030405060708090A0B0C0D0E0F +CT = 0F47F3C6C231BE30E69852FD544F0B973A3963 + +Count = 117 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 183BCBBC1D3456783267B79B4359A916B7510E + +Count = 118 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 0AD4E3283EE6F0FA076353CF775B760321AB05 + +Count = 119 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = 81E22BA840799993E44284FE542DA4DCC04BAF + +Count = 120 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = C51B01B207B3DE64E6459646831521BD5C9286 + +Count = 121 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = DD724F6BADA3DD4F789CCBA558A0BBC15ABDE6 + +Count = 122 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = 8079ED1CAEB76F7825E51E78EFD18225E3DCAA + +Count = 123 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = D84816EB409A228281499542BACA3F29E32E85 + +Count = 124 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = A5F0507F03E3CB94A5885761DE8FE18BAA30BB + +Count = 125 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 236EA8C6FC303ACBA910F592D1E557BDDC303B + +Count = 126 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = BAEC6972C544D12674CDE7059F219270D0E794 + +Count = 127 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 6FEAF78A7D0D3AF00D7352DC85B1D0716466EB + +Count = 128 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 9351D4A1B7435DEA389B4B3504EEB5B23B0168 + +Count = 129 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = 86474F442BAB29689DFFDCF7D8E3826179A52F + +Count = 130 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = A4ECA3C1BA0FBC28D768FAD240BCA22777DBEA + +Count = 131 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = D4C818C3FB7AE4BB0014C977C76861270ED00D + +Count = 132 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 6EF9B5A9090169F8A05326FAF574087660D8BF + +Count = 133 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203 +AD = +CT = C9F98EB87D2F4FF2E3A1DEEAB6BB679593A771BF + +Count = 134 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203 +AD = 00 +CT = 231970384065F6CDD955EE6FB4394D7EAF2542A5 + +Count = 135 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203 +AD = 0001 +CT = FE9D361C2C22520F4FB0F4EAFB2531C8ABCC3D13 + +Count = 136 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203 +AD = 000102 +CT = EC81D566715AEBC39B2D009F49212B1E69A5777E + +Count = 137 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203 +AD = 00010203 +CT = D189084BF094FABCF902C09AD7607D1F12E46A0E + +Count = 138 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203 +AD = 0001020304 +CT = A748A86562192C5ACCA653789A14B4070DC827DD + +Count = 139 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203 +AD = 000102030405 +CT = DB24D07822F0427E5F7E59E3B0D7C3228171747C + +Count = 140 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203 +AD = 00010203040506 +CT = 1D17560B315CD7DDF1A17357E04AE29A69A636CB + +Count = 141 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203 +AD = 0001020304050607 +CT = 4E9807772A0A414FD8E36899F709C69291048123 + +Count = 142 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203 +AD = 000102030405060708 +CT = FE628D5C84AF0519A8EE13F428A716826EF4E343 + +Count = 143 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203 +AD = 00010203040506070809 +CT = E9C28585340DC1AE4ED2999BDCAD91FBEAC12665 + +Count = 144 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203 +AD = 000102030405060708090A +CT = FCD0420F268F5728C6A25B4476EC1897A5F8041F + +Count = 145 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203 +AD = 000102030405060708090A0B +CT = 0228F0AB240916D33C8CB81E1BC3C4564C590765 + +Count = 146 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203 +AD = 000102030405060708090A0B0C +CT = 82B6B9CC769109CF58079A849C9455A4C1FF2305 + +Count = 147 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203 +AD = 000102030405060708090A0B0C0D +CT = 5DC0EAA36DC15EDB9403A69C2B66B4D8B1613A34 + +Count = 148 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203 +AD = 000102030405060708090A0B0C0D0E +CT = F5E273C07AA1B578A4DE7658A77D4E13E29DED85 + +Count = 149 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203 +AD = 000102030405060708090A0B0C0D0E0F +CT = 0F47F3B0CBAE55319CCEFF894645E96A0BFF2DCE + +Count = 150 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 183BCB0C2813B63ADE7985F3BB82FB4756A6795B + +Count = 151 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 0AD4E35D60AF8D7EC98110DFDAEF0BBBAA15A7EB + +Count = 152 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = 81E22B728D198E5F5FE3761283A448851F980F0F + +Count = 153 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = C51B01EF4685E55550789F40498DA3E33DFB1416 + +Count = 154 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = DD724F3973312E44824FB0686644773ED85CD788 + +Count = 155 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = 8079ED0F4ECBEFCEC5CBE7E46C3F050837CEE18F + +Count = 156 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = D84816B84972086C7B7732544672F0FF0331717B + +Count = 157 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = A5F050BCCFC7E412DB1D893A8005804D721DE238 + +Count = 158 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 236EA861CED78AA960F0D1C8F40E41DBE08BF3C8 + +Count = 159 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = BAEC69C02C262C03417FDDCFF72E821A4F0A7617 + +Count = 160 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 6FEAF790ED59AEBB93421E56D498DC94C53CC031 + +Count = 161 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 9351D46C641F16058B806A38F4C904959A0568EC + +Count = 162 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = 86474F47B0D522807A9434ADF5BAAB7003020EFD + +Count = 163 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = A4ECA33C356A65882441DC51EDD09461D74FA33E + +Count = 164 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = D4C8184C91955C6165194FB088401E8E962C6653 + +Count = 165 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 6EF9B5F26EA656F4AEBE733C844A07161DFC835F + +Count = 166 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304 +AD = +CT = C9F98EB86B382DD8E1D97766A8E05FE143594E02CD + +Count = 167 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304 +AD = 00 +CT = 2319703816065507A1019FB7D27B92F07A2D605924 + +Count = 168 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304 +AD = 0001 +CT = FE9D361C3552E5398CCF5D735C7C2BE33A71C58D87 + +Count = 169 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304 +AD = 000102 +CT = EC81D566D4BB2E26C883E3D4EAD46E0F835113411F + +Count = 170 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304 +AD = 00010203 +CT = D189084B1257E3A348CF873B5159A1A2F679C37A58 + +Count = 171 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304 +AD = 0001020304 +CT = A748A865EC0DB61D31CB0E6E1190106F960587FCA6 + +Count = 172 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304 +AD = 000102030405 +CT = DB24D0782A2E5FF25BBC07F46BE4F38EF1E8FA31FF + +Count = 173 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304 +AD = 00010203040506 +CT = 1D17560BBF2104D2260944386FC692199A976B0982 + +Count = 174 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304 +AD = 0001020304050607 +CT = 4E9807774B7F620D5E24809D595BB597BEC3E844F3 + +Count = 175 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304 +AD = 000102030405060708 +CT = FE628D5C6CBB2FA1B6AC731B315457F4A0B39D1135 + +Count = 176 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304 +AD = 00010203040506070809 +CT = E9C2858529ED986ACE480222C61E3A43809E4D7A2D + +Count = 177 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304 +AD = 000102030405060708090A +CT = FCD0420F6E5F30607911B021883AF713B9692F135A + +Count = 178 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304 +AD = 000102030405060708090A0B +CT = 0228F0ABBA9F051BE29A11596314CA6A419CE22E76 + +Count = 179 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304 +AD = 000102030405060708090A0B0C +CT = 82B6B9CC40F146650EC28E75F5A882736F86814E73 + +Count = 180 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304 +AD = 000102030405060708090A0B0C0D +CT = 5DC0EAA3E458347C639BB1E3EAAA579DF55F4A533E + +Count = 181 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304 +AD = 000102030405060708090A0B0C0D0E +CT = F5E273C0B8D663B2400D93A5D336394224F7537F4D + +Count = 182 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304 +AD = 000102030405060708090A0B0C0D0E0F +CT = 0F47F3B0C6848EEEC60CF952333A04F389607D60A0 + +Count = 183 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 183BCB0CE338A80EB6A14CDF51D3DE9FC10B1FADB9 + +Count = 184 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 0AD4E35D0CADA4C20563CED2F59DBFBA287087C43F + +Count = 185 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = 81E22B726999228CED5FC514A50F3FD4989A7F1724 + +Count = 186 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = C51B01EF48D5663C1BF78E89F108AA6E2D93983DE8 + +Count = 187 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = DD724F39ED3E20FFC1502678DD497213DE09193BD0 + +Count = 188 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = 8079ED0F7209BD16B55C8ADB9868CACAFCA7D394C4 + +Count = 189 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = D84816B878657B36CCB8AFB581AC7705F2187EBBC4 + +Count = 190 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = A5F050BCA2E2B078E8F64D24D19BCCB577CCB3FE09 + +Count = 191 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 236EA861E03D32998A463E2D4EB6AE57B691AC1596 + +Count = 192 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = BAEC69C08B4BA3FE7D25B2DEFEFC9EA07D364AA3B5 + +Count = 193 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 6FEAF7907655D5B8933883B0725C5BDD140F7CE19B + +Count = 194 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 9351D46CF95AC5845B92B3217A807EC5F82EF7F082 + +Count = 195 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = 86474F47C9B2533CA44A3002F2990448E909F7FCC3 + +Count = 196 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = A4ECA33C0C1842F03E6A562A25F44AD63AD5FFDD42 + +Count = 197 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = D4C8184CC290FB669C716222CA16DA7E90215D5836 + +Count = 198 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 6EF9B5F2232B22882A89DBE5BDA59EBACB9F1862E2 + +Count = 199 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405 +AD = +CT = C9F98EB86B5565C45D664E887985C6F8D427057D637A + +Count = 200 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405 +AD = 00 +CT = 23197038165DBB4B16F8CD78EF490629B79896D984E4 + +Count = 201 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405 +AD = 0001 +CT = FE9D361C358B6C6649FAE887FB986A01F2D208E26F3B + +Count = 202 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405 +AD = 000102 +CT = EC81D566D4E374C0558D95FBEFE2F466DD587C957CE8 + +Count = 203 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405 +AD = 00010203 +CT = D189084B12BEE8097E483D636342E69F6C2713209BA8 + +Count = 204 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405 +AD = 0001020304 +CT = A748A865EC8E2D64D88E56F5E2036814ABDE49BCC3A6 + +Count = 205 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405 +AD = 000102030405 +CT = DB24D0782A7B8A4A5171D80E217C19CAEE74A04E78AC + +Count = 206 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405 +AD = 00010203040506 +CT = 1D17560BBF8D61BAA6CDDB10D62EE25943683A9064EE + +Count = 207 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405 +AD = 0001020304050607 +CT = 4E9807774B4EA105C1B4C5AE48793D9367FEF8B8CD7D + +Count = 208 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405 +AD = 000102030405060708 +CT = FE628D5C6C63FE91963DC89D226FE1F2302DFDC0C4AF + +Count = 209 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405 +AD = 00010203040506070809 +CT = E9C2858529D6A761C238FE747745022909F526B293BE + +Count = 210 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405 +AD = 000102030405060708090A +CT = FCD0420F6E341B084BCB1D4EF1E35BB414EB34AD40B0 + +Count = 211 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405 +AD = 000102030405060708090A0B +CT = 0228F0ABBA1AB1D126368CAB5D6E3731CFCAC5F80883 + +Count = 212 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405 +AD = 000102030405060708090A0B0C +CT = 82B6B9CC40977C48FDF9AACC3372B58636315A79845D + +Count = 213 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405 +AD = 000102030405060708090A0B0C0D +CT = 5DC0EAA3E48EE91830D08E89FD8A5A953776D8FB75D2 + +Count = 214 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405 +AD = 000102030405060708090A0B0C0D0E +CT = F5E273C0B85F90E5B23FABEA4C54AAB4731D01B74620 + +Count = 215 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405 +AD = 000102030405060708090A0B0C0D0E0F +CT = 0F47F3B0C630105F92E61BA66702C18B74B632DB717E + +Count = 216 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 183BCB0CE30876B669CB645FE1F443D2D5B912CCB24C + +Count = 217 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 0AD4E35D0CDB1AF3AB42A22E8A058F697CEA1E9CFE8F + +Count = 218 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = 81E22B7269ECD70CA9099C105761B19109C0698FD4F5 + +Count = 219 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = C51B01EF48E7BCFC55008C5C143F1751BAE91F0EEF1E + +Count = 220 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = DD724F39ED7499827D63F9716F9DBDC458565530A0C6 + +Count = 221 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = 8079ED0F7239437922C797BDEA105A5C88CC301694ED + +Count = 222 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = D84816B878D7927F0776CE06A0F16F5E1E45BC87C55E + +Count = 223 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = A5F050BCA298591F584B3FE86B1994FC7986968B05B7 + +Count = 224 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 236EA861E0F671BFF301826750BDAD9F69969F2C55AB + +Count = 225 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = BAEC69C08B738B36890ADEC41942E34913422326E3C3 + +Count = 226 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 6FEAF790766470011844D422F4B37EBDDB1D8FE0C323 + +Count = 227 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 9351D46CF9BE9DA6BA69A43319763B5257DA065EEDD4 + +Count = 228 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = 86474F47C9B332BD6E245FE9CD9A8D02E48D03159D7E + +Count = 229 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = A4ECA33C0C64812A3FDEB803AF287C8F1C07B0371F62 + +Count = 230 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = D4C8184CC25687E958262AF7325934D3C01DE34DA1DB + +Count = 231 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 6EF9B5F2233984B2D0FDE45161FE5517368731DD8166 + +Count = 232 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506 +AD = +CT = C9F98EB86B55275645FF9B67FF6F6C093F4536963F7FA6 + +Count = 233 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506 +AD = 00 +CT = 23197038165DFAD597DE1282BAB261D5AF895E8C6B5E8A + +Count = 234 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506 +AD = 0001 +CT = FE9D361C358BCE6A6FB419FF31E0D7CD44130AAFA5FDC7 + +Count = 235 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506 +AD = 000102 +CT = EC81D566D4E35B131DCDD7E95CE7C8F9F74C03FE59CE52 + +Count = 236 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506 +AD = 00010203 +CT = D189084B12BEC8E81C95874C5A091E5BAD4FDF42216EA8 + +Count = 237 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506 +AD = 0001020304 +CT = A748A865EC8E7714DEA5465FA0286FE9EE4CD4163FA06A + +Count = 238 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506 +AD = 000102030405 +CT = DB24D0782A7BB0DE9CA577C8960E04A4851730533811EF + +Count = 239 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506 +AD = 00010203040506 +CT = 1D17560BBF8DC949066398482FF82E6AC6C45E310340E5 + +Count = 240 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506 +AD = 0001020304050607 +CT = 4E9807774B4E1421C304BD85908648BF239C99CE8F2B02 + +Count = 241 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506 +AD = 000102030405060708 +CT = FE628D5C6C63477186F8699775D6188418B9FAD6D69DAB + +Count = 242 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506 +AD = 00010203040506070809 +CT = E9C2858529D6FE30E55D578379C80EF7B4EAE8EEFE3DD6 + +Count = 243 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506 +AD = 000102030405060708090A +CT = FCD0420F6E34CE83AC5020950A57848CEE6CBA19C369E8 + +Count = 244 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506 +AD = 000102030405060708090A0B +CT = 0228F0ABBA1AB3D8B9728E06FAFD83478D7895D8E461B5 + +Count = 245 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506 +AD = 000102030405060708090A0B0C +CT = 82B6B9CC4097AC2D4E2B8CB34618971F709545358D7769 + +Count = 246 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506 +AD = 000102030405060708090A0B0C0D +CT = 5DC0EAA3E48E7216A3E5C6CB388EF254EBC4F4598FDA34 + +Count = 247 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506 +AD = 000102030405060708090A0B0C0D0E +CT = F5E273C0B85FF67668630037DE107A5A570E3970967DB3 + +Count = 248 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506 +AD = 000102030405060708090A0B0C0D0E0F +CT = 0F47F3B0C630FE4A7789F5618B98A65119C742F2911B83 + +Count = 249 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 183BCB0CE308719E54480BB8D4DEB9888D678E6254017B + +Count = 250 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 0AD4E35D0CDB5C1967DAF995F8CDB3B09FEC2925EEE326 + +Count = 251 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = 81E22B7269ECB5C93C6320FEA3D60079412ED9075F1A2C + +Count = 252 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = C51B01EF48E764AA6FF70466E26BF096D77E1A931ABA01 + +Count = 253 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = DD724F39ED749720DA3420434385F865032064A130A3EE + +Count = 254 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = 8079ED0F7239C782421D722D0554F31411B1E5473409E8 + +Count = 255 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = D84816B878D7164C6FA25C684694A926C3AD5E9FB940D7 + +Count = 256 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = A5F050BCA298C6448D3B3B059FC94F88AC78F449D7F0EB + +Count = 257 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 236EA861E0F625E0A4F0F2B9069826E0AE70E07053A087 + +Count = 258 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = BAEC69C08B733ECF9B9DE3198C57E244BEEB42770C15D5 + +Count = 259 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 6FEAF790766419034893D4BAD35C267D4B8B8C6978AD35 + +Count = 260 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 9351D46CF9BE443E868432850AD7827A70C7A8E096550B + +Count = 261 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = 86474F47C9B37AAC79FADC6A01CBE120F5A3D22021D09C + +Count = 262 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = A4ECA33C0C646BCA646074CF31092F5B8C393AD9EF4F31 + +Count = 263 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = D4C8184CC25612F55CA3CDBD98E4053268CCF49B9016E2 + +Count = 264 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 6EF9B5F223391BC250288F9E16FEF9C68EADE2A44923E7 + +Count = 265 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304050607 +AD = +CT = C9F98EB86B5527F8BDA81A5B539A64081EE0B27B15BED3F1 + +Count = 266 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304050607 +AD = 00 +CT = 23197038165DFA2E532972E2B3E4F5011FBA7E852F5DF258 + +Count = 267 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304050607 +AD = 0001 +CT = FE9D361C358BCE63FF096B5224A96C34EBF79C8B770AEA70 + +Count = 268 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304050607 +AD = 000102 +CT = EC81D566D4E35BC94772BF45CD0FADE0597760CD94258F13 + +Count = 269 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304050607 +AD = 00010203 +CT = D189084B12BEC8FC6DAE6001B5BFE5977C4376B1CD74A542 + +Count = 270 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304050607 +AD = 0001020304 +CT = A748A865EC8E77BF3D1D081D474087689ADEB148B3CCACE3 + +Count = 271 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304050607 +AD = 000102030405 +CT = DB24D0782A7BB0A96148D8B25E91E192DE147D3096E89101 + +Count = 272 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304050607 +AD = 00010203040506 +CT = 1D17560BBF8DC97238B8BDDCAE4443BE8C9B16D65F80480D + +Count = 273 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304050607 +AD = 0001020304050607 +CT = 4E9807774B4E14B5D00E283AF3710DB01A86B6FFE110429A + +Count = 274 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304050607 +AD = 000102030405060708 +CT = FE628D5C6C6347FC88C4C8BF373370D698D0EAD50AA6B8A5 + +Count = 275 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304050607 +AD = 00010203040506070809 +CT = E9C2858529D6FEB545A063F7D56DAEEDFEC0B83436E2A76E + +Count = 276 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304050607 +AD = 000102030405060708090A +CT = FCD0420F6E34CE1DEBD6A9219DBEC0C4C736B48986A0D4B3 + +Count = 277 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304050607 +AD = 000102030405060708090A0B +CT = 0228F0ABBA1AB39F45DB6EFDA61612C97C5E99F5BBCBB52B + +Count = 278 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304050607 +AD = 000102030405060708090A0B0C +CT = 82B6B9CC4097AC5E46DB165EDCCC8443C21A9E02F7A0EA28 + +Count = 279 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304050607 +AD = 000102030405060708090A0B0C0D +CT = 5DC0EAA3E48E728DB5689505F653B9882156BA8A561AF9F5 + +Count = 280 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304050607 +AD = 000102030405060708090A0B0C0D0E +CT = F5E273C0B85FF6299797CDDD486A5DB010388CF5A18A688C + +Count = 281 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304050607 +AD = 000102030405060708090A0B0C0D0E0F +CT = 0F47F3B0C630FE5985C97AB434E7CF00BB6F55BFE17192C4 + +Count = 282 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304050607 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 183BCB0CE30871A0B106129273B103713FB6E7BA2353F197 + +Count = 283 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304050607 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 0AD4E35D0CDB5C46BE4AB61D90D94275ABCDA50C86033D92 + +Count = 284 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304050607 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = 81E22B7269ECB5CA8D8C5E9CF2B81BDE8953EF163563EEC4 + +Count = 285 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304050607 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = C51B01EF48E764BE9C881C90703BB8BE60FFE3B266052EA3 + +Count = 286 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304050607 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = DD724F39ED7497B7CA43523DC2EC21357CA92B6DE88E87ED + +Count = 287 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304050607 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = 8079ED0F7239C79363AC70E4F77CC466CA23208E24D14FD7 + +Count = 288 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304050607 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = D84816B878D7162D50403240BC1BC9E107D6CF4DDFA329C0 + +Count = 289 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304050607 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = A5F050BCA298C6D3F46973518B62E5504AA1879B948C7A1D + +Count = 290 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304050607 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 236EA861E0F625AC990B4AD44E020ABEA246DDA55C01CDAE + +Count = 291 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304050607 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = BAEC69C08B733EDCAFF9538851D5335702570AD2EB2F2E9C + +Count = 292 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304050607 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 6FEAF790766419D173EA8E105C5D17BD96081D5AD33021A1 + +Count = 293 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304050607 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 9351D46CF9BE44C8FB19FE1BF3EE8F5C7C4782F97970E8EF + +Count = 294 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304050607 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = 86474F47C9B37AA7264ED9AA13C206B48F060E58A7F1D37E + +Count = 295 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304050607 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = A4ECA33C0C646BC41C4E1AF065B3CC115ACDCA319C81497F + +Count = 296 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304050607 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = D4C8184CC256126422FD989731159CE0B02DFF488C2E91C1 + +Count = 297 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 0001020304050607 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 6EF9B5F223391B7C971D7C710433FF3A56D70FB546A567C4 + +Count = 298 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708 +AD = +CT = C9F98EB86B5527F8DB95850398FF83DD043097648FEAF6C378 + +Count = 299 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708 +AD = 00 +CT = 23197038165DFA2E59B7E359D44E7E0149451A36A0CC9F41DC + +Count = 300 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708 +AD = 0001 +CT = FE9D361C358BCE63BA684BE77956A508CF1382F63564FFF112 + +Count = 301 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708 +AD = 000102 +CT = EC81D566D4E35BC9F915B598246433E1E5C71A11C0F203FD98 + +Count = 302 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708 +AD = 00010203 +CT = D189084B12BEC8FC8F18F8CE7E798C7164288F50BF5666B43F + +Count = 303 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708 +AD = 0001020304 +CT = A748A865EC8E77BF1540D38E0037C8863E64E88156F240F991 + +Count = 304 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708 +AD = 000102030405 +CT = DB24D0782A7BB0A9E21A602F2274A2F0C27D25115B6125D5C5 + +Count = 305 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708 +AD = 00010203040506 +CT = 1D17560BBF8DC9720E516A3E78B2B53D2D149FE9CFAA84C80A + +Count = 306 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708 +AD = 0001020304050607 +CT = 4E9807774B4E14B5DB12B96438F3FCF1914E335DE185151D7E + +Count = 307 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708 +AD = 000102030405060708 +CT = FE628D5C6C6347FCBE5D3719FAFC07A60F468F18014E543FC9 + +Count = 308 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708 +AD = 00010203040506070809 +CT = E9C2858529D6FEB52E023C4A7163CC60A343C4C9EF98382ABF + +Count = 309 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708 +AD = 000102030405060708090A +CT = FCD0420F6E34CE1DB5ABE004F7F4DC89FB3B30E29BAC513E12 + +Count = 310 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708 +AD = 000102030405060708090A0B +CT = 0228F0ABBA1AB39FD75143CC35577D088A1A6CC851443414F9 + +Count = 311 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708 +AD = 000102030405060708090A0B0C +CT = 82B6B9CC4097AC5E724874B0EF40EED1556841ECE46C959EE0 + +Count = 312 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708 +AD = 000102030405060708090A0B0C0D +CT = 5DC0EAA3E48E728D0A389FF0B8CD432972CFA5CA6EF51339E1 + +Count = 313 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708 +AD = 000102030405060708090A0B0C0D0E +CT = F5E273C0B85FF629E731B534B0E2427BA98772B637ACA1B1FA + +Count = 314 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708 +AD = 000102030405060708090A0B0C0D0E0F +CT = 0F47F3B0C630FE590098911C9579C86E035871418B7E85B7BF + +Count = 315 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 183BCB0CE30871A0923AB955552645ACF77A78671812B55E8B + +Count = 316 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 0AD4E35D0CDB5C46ED0DA4CC12347E74ADD6B220C9637FBE99 + +Count = 317 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = 81E22B7269ECB5CA727DC098C3996138BA0437E8837797B7DC + +Count = 318 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = C51B01EF48E764BE4B0A3AD06FA48CC01497123502D9906DE3 + +Count = 319 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = DD724F39ED7497B7C68B1C2824C3F535DD18D1BC8CAC4B70B1 + +Count = 320 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = 8079ED0F7239C793F85138C5BBA4B92BA3838CF32F0F434116 + +Count = 321 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = D84816B878D7162DF539DFD12765BFBF35B6010F8E1C2FB957 + +Count = 322 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = A5F050BCA298C6D361C74D8D08914BAA7368098D5DD26529F6 + +Count = 323 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 236EA861E0F625AC0F0EBF098F4455205D44BD18D16E552C61 + +Count = 324 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = BAEC69C08B733EDCD0CD0357965C87D32B2B883E10D317AA6E + +Count = 325 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 6FEAF790766419D1BC115E09ECBE834DE08996491A8ECFCD5A + +Count = 326 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 9351D46CF9BE44C89C123F7619B49E54B54C844FC3F88BE6AB + +Count = 327 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = 86474F47C9B37AA7B8D3D333E2377DE906E6F69CD57263E7E2 + +Count = 328 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = A4ECA33C0C646BC4B7D7315A83C5610EF79FADCF2228BBE25D + +Count = 329 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = D4C8184CC2561264CEB262B1F07FE895D5BFAFC78B9890A303 + +Count = 330 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 6EF9B5F223391B7C5F5272CB045A5CC2BBAD616F207BFB6865 + +Count = 331 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506070809 +AD = +CT = C9F98EB86B5527F8DBF6510EC6CFCB5320357D9F0540949C0739 + +Count = 332 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506070809 +AD = 00 +CT = 23197038165DFA2E594A4F4846A4EAB117ECED95B66022369275 + +Count = 333 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506070809 +AD = 0001 +CT = FE9D361C358BCE63BA1044440F7BBFA6E51574482E9A6AECB09C + +Count = 334 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506070809 +AD = 000102 +CT = EC81D566D4E35BC9F945B977DC230447617DB1780D477922F1D8 + +Count = 335 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506070809 +AD = 00010203 +CT = D189084B12BEC8FC8F96508A7427815238280C9FA9DA7A9EB2DF + +Count = 336 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506070809 +AD = 0001020304 +CT = A748A865EC8E77BF15431BC0CE0B89BA753D7F54ABCA9840E583 + +Count = 337 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506070809 +AD = 000102030405 +CT = DB24D0782A7BB0A9E2246316F1D28448B705C6E9591830169A4D + +Count = 338 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506070809 +AD = 00010203040506 +CT = 1D17560BBF8DC9720E27FBD7A96D99757BA4CDDC065CFB4FDD0E + +Count = 339 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506070809 +AD = 0001020304050607 +CT = 4E9807774B4E14B5DB8E4B8805F3953AC97F3B109FB338A18A39 + +Count = 340 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506070809 +AD = 000102030405060708 +CT = FE628D5C6C6347FCBE2520270F4B989CDDBCDDE1C6EC235673D2 + +Count = 341 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506070809 +AD = 00010203040506070809 +CT = E9C2858529D6FEB52EF4A1425C4E74F47A6859A5BB9CEAEF6595 + +Count = 342 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506070809 +AD = 000102030405060708090A +CT = FCD0420F6E34CE1DB5E1641F51D53E5C7F73EE0A4906AE600ACA + +Count = 343 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506070809 +AD = 000102030405060708090A0B +CT = 0228F0ABBA1AB39FD7D8094D4ACCC2B74F460D50C5F56E93150D + +Count = 344 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C +CT = 82B6B9CC4097AC5E72EAC80B30DBC2279DD40E11C3107040A6A5 + +Count = 345 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C0D +CT = 5DC0EAA3E48E728D0AB96D259D105A6C1AFF806A0AFA630C784E + +Count = 346 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C0D0E +CT = F5E273C0B85FF629E703FEE6662C67A32A80E05866EDD9AC81F9 + +Count = 347 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C0D0E0F +CT = 0F47F3B0C630FE590058D7DAE959802FFCD4F0C6AEAC90917F7F + +Count = 348 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 183BCB0CE30871A0920950631EA4B12FD863BA289BABB8E1022F + +Count = 349 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 0AD4E35D0CDB5C46ED51538C82438EED4CDF12AF9FE004FFCF85 + +Count = 350 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = 81E22B7269ECB5CA72D62E9858E67C364EFE9448A17E27CE8013 + +Count = 351 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = C51B01EF48E764BE4B064ECF65F830D5F2305DB4659A821443FB + +Count = 352 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = DD724F39ED7497B7C6A0909B3CD6AC7CDFB1D4E98ECA3C51FD26 + +Count = 353 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = 8079ED0F7239C793F8F61695555BCB1E898AEA7D78DFED1E4BA4 + +Count = 354 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = D84816B878D7162DF5599483671D4B8A3004E05C40D5FAEB14EF + +Count = 355 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = A5F050BCA298C6D36106F5813202AB368C8E0903BE575E8E2D8B + +Count = 356 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 236EA861E0F625AC0F7C1E7D6DF0A2FA6DF3D27558E8984FB2F0 + +Count = 357 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = BAEC69C08B733EDCD04B4C0470B1DC5FE5776368C8674220ED59 + +Count = 358 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 6FEAF790766419D1BCFE591EC307920710D53CF7DF260FA67C57 + +Count = 359 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 9351D46CF9BE44C89C4907AF8DC2762E0D40AA1E8F4B00E0B89B + +Count = 360 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = 86474F47C9B37AA7B81C6ED7EBDA2D25A3A35E8CA840B4E4A177 + +Count = 361 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = A4ECA33C0C646BC4B7C8D36A6374AA48F0908EFBD63C0C949ECF + +Count = 362 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = D4C8184CC2561264CE338CBD4728578C342893C69B8E856A1573 + +Count = 363 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 00010203040506070809 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 6EF9B5F223391B7C5FBF51929594DC98DDEB77D8C0E8E6022D73 + +Count = 364 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A +AD = +CT = C9F98EB86B5527F8DBF63ACF0E816185B1CA571203DCAEA251B874 + +Count = 365 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A +AD = 00 +CT = 23197038165DFA2E594A328A5262B43CF7262BFDD99D4DA4E7FC56 + +Count = 366 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A +AD = 0001 +CT = FE9D361C358BCE63BA1032A8D6687A7940107AAF87EBD3CB7EEF72 + +Count = 367 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A +AD = 000102 +CT = EC81D566D4E35BC9F945B1CB3A315A3355B636E2A58F729182453E + +Count = 368 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A +AD = 00010203 +CT = D189084B12BEC8FC8F96483C9F71F1124B76DC648047726CD1C616 + +Count = 369 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A +AD = 0001020304 +CT = A748A865EC8E77BF15434B69AC4ABA83AC7D2226C21CDDD1FC3D28 + +Count = 370 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A +AD = 000102030405 +CT = DB24D0782A7BB0A9E22421F517E911FFF648169AA8144F6CE3B837 + +Count = 371 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A +AD = 00010203040506 +CT = 1D17560BBF8DC9720E271247E7599B6227655583977271FE036CBB + +Count = 372 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A +AD = 0001020304050607 +CT = 4E9807774B4E14B5DB8E56BFBE888679A5B4B0C51320FC65B3193A + +Count = 373 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A +AD = 000102030405060708 +CT = FE628D5C6C6347FCBE258BA539B9E80D0C9E09B2DE1EABBDD24203 + +Count = 374 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A +AD = 00010203040506070809 +CT = E9C2858529D6FEB52EF49F8821CDBF1941E57C8A33A783E05705CD + +Count = 375 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A +AD = 000102030405060708090A +CT = FCD0420F6E34CE1DB5E14EC21550515C6B7129B2A866D4A3B8D67B + +Count = 376 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A +AD = 000102030405060708090A0B +CT = 0228F0ABBA1AB39FD7D86B7DDC3F5A985A7274381EEB194C59E6F5 + +Count = 377 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C +CT = 82B6B9CC4097AC5E72EA4EFEC8832FDB55435B738A674A92D22D62 + +Count = 378 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C0D +CT = 5DC0EAA3E48E728D0AB9716C54ACC339616A90EED101E669690627 + +Count = 379 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C0D0E +CT = F5E273C0B85FF629E70350E6FEAACC4610E23E23915B14E7DA3F8D + +Count = 380 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C0D0E0F +CT = 0F47F3B0C630FE59005875E8F27E31744616EC72D91776C2020CC7 + +Count = 381 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 183BCB0CE30871A09209FA4C188C9EE4D045FB3704ADCA85C3E268 + +Count = 382 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 0AD4E35D0CDB5C46ED519284C43C0D61A309764C90A98B2BE3F80A + +Count = 383 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = 81E22B7269ECB5CA72D6FCB0257C6DC0C4B71D333987969279A63D + +Count = 384 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = C51B01EF48E764BE4B06DF7807B2C33785E74EDB3753CBA2B9EC8C + +Count = 385 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = DD724F39ED7497B7C6A0CCACF09868C4605B7066F9B6B3802F89D8 + +Count = 386 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = 8079ED0F7239C793F8F69C3AE7D0D887D943390D6F2C0AAC00E52A + +Count = 387 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = D84816B878D7162DF5594124759816B18DA79C694416C5B74B32CE + +Count = 388 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = A5F050BCA298C6D36106B04CDFA1F2B0E427CB00B8C495A794CC51 + +Count = 389 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 236EA861E0F625AC0F7CC0F430BA4613725148E01C42B37EF17A46 + +Count = 390 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = BAEC69C08B733EDCD04BF5ECD358ED0A71446A0BA601A639A8A14F + +Count = 391 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 6FEAF790766419D1BCFE9F45C13715973E406ACF4C71348B6B4076 + +Count = 392 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 9351D46CF9BE44C89C49C0AEC571CEA60945621554280E1B75572B + +Count = 393 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = 86474F47C9B37AA7B81C7D48AFAB4181355D9013A2A0C0795C2309 + +Count = 394 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = A4ECA33C0C646BC4B7C83D82F45F11D129B76A4BFC2363EE7429B2 + +Count = 395 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = D4C8184CC2561264CE33285F6F4FD0CEB34931EEBAEA43F5AC2457 + +Count = 396 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 6EF9B5F223391B7C5FBFDCE56E4CE153E3BF914A70FEFE3AC7FF37 + +Count = 397 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B +AD = +CT = C9F98EB86B5527F8DBF63ACBDA30F68481D54A323C05167029DB2A4D + +Count = 398 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B +AD = 00 +CT = 23197038165DFA2E594A323B924D6E0B3F39133D689B0E6D90CE30CE + +Count = 399 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B +AD = 0001 +CT = FE9D361C358BCE63BA10321CB09ACB70A45391A9BE91A81D31C2A17B + +Count = 400 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B +AD = 000102 +CT = EC81D566D4E35BC9F945B1C7457D62DEE693D0361F289EE60C4B4066 + +Count = 401 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B +AD = 00010203 +CT = D189084B12BEC8FC8F964867806AD6FD4CFFFC768518C3C2D4245372 + +Count = 402 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B +AD = 0001020304 +CT = A748A865EC8E77BF15434B10CACB795E9CDD941C291B1BD4F10610DE + +Count = 403 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B +AD = 000102030405 +CT = DB24D0782A7BB0A9E224210DD94BA13DD0368728D2807396C723FC56 + +Count = 404 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B +AD = 00010203040506 +CT = 1D17560BBF8DC9720E2712624768A48895E251035023FF5946BB66E7 + +Count = 405 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B +AD = 0001020304050607 +CT = 4E9807774B4E14B5DB8E562CCF7AF50FC6122398C32E0B7742C86930 + +Count = 406 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B +AD = 000102030405060708 +CT = FE628D5C6C6347FCBE258B215B9F9EE04910B692696B2900C7AB5EF3 + +Count = 407 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B +AD = 00010203040506070809 +CT = E9C2858529D6FEB52EF49FB5F42E5492568FB805E7D8DF08AF3BAA26 + +Count = 408 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B +AD = 000102030405060708090A +CT = FCD0420F6E34CE1DB5E14EDD1CF7D7FC2985F383FD045D465A86D356 + +Count = 409 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B +CT = 0228F0ABBA1AB39FD7D86B18196D4B77DA34FDEAC4A7AAF0C8370CDA + +Count = 410 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C +CT = 82B6B9CC4097AC5E72EA4E52D6051538B68E06279CBA11669F25CE7E + +Count = 411 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C0D +CT = 5DC0EAA3E48E728D0AB971A3EAF5C218949FE981FD2797493E2E862B + +Count = 412 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C0D0E +CT = F5E273C0B85FF629E7035055A522BFE53086B2E7A020699047AB3C51 + +Count = 413 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C0D0E0F +CT = 0F47F3B0C630FE59005875D9452F39FCE1377E59D6F442107CA206FE + +Count = 414 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 183BCB0CE30871A09209FAFFA9A24C82E24FDBAA64F3B8EDC5D6B7AD + +Count = 415 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 0AD4E35D0CDB5C46ED5192D732A91894E26ED9440B7838A056FD9C33 + +Count = 416 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = 81E22B7269ECB5CA72D6FC2691D6642AB3EEED5B62E0186B5293806E + +Count = 417 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = C51B01EF48E764BE4B06DF487E36105E2DE0EE1F67F6E9D8751E04B0 + +Count = 418 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = DD724F39ED7497B7C6A0CC396D910D880CB41D11102975F2C87F95C6 + +Count = 419 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = 8079ED0F7239C793F8F69CAD55F19AF6AED913F32EB9CA52678EC3C6 + +Count = 420 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = D84816B878D7162DF559419B73ACF3EB2694087ADC9A10EAF0076DA8 + +Count = 421 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = A5F050BCA298C6D36106B020229D06194B7B5A08ABB8512625F93754 + +Count = 422 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 236EA861E0F625AC0F7CC043485F62F90D1C491549D08C9A3BED3C58 + +Count = 423 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = BAEC69C08B733EDCD04BF5AA5767AD6CBC75221CA65C4C9EC0003D51 + +Count = 424 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 6FEAF790766419D1BCFE9F16D9431004186D00BCB90C19F8CBD287A0 + +Count = 425 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 9351D46CF9BE44C89C49C08BB36FE30272EA2AB6FABB16B7297E5FB0 + +Count = 426 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = 86474F47C9B37AA7B81C7D3A7B0F036F81ECFBBF7CF4A97975BADCE7 + +Count = 427 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = A4ECA33C0C646BC4B7C83DE5F401340B1D1E5B0696180AA6C9F8C1AE + +Count = 428 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = D4C8184CC2561264CE33284B5909D91B42C0FD2392998D0443101D9C + +Count = 429 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 6EF9B5F223391B7C5FBFDC8F758132A98B03B144276669D8F1A6941F + +Count = 430 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C +AD = +CT = C9F98EB86B5527F8DBF63ACB57DF00D2427859F33A932751CE8A8C1D2F + +Count = 431 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C +AD = 00 +CT = 23197038165DFA2E594A323BEE6F8415F69A7731214210A7D020F7C2C1 + +Count = 432 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C +AD = 0001 +CT = FE9D361C358BCE63BA10321C6CF651CCE2A93F031FF09E750ACB499C41 + +Count = 433 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C +AD = 000102 +CT = EC81D566D4E35BC9F945B1C73698C8A299555A77B017EB56304FE56C1B + +Count = 434 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C +AD = 00010203 +CT = D189084B12BEC8FC8F96486759533E7D9C8FF9A516B6FA9FE000D612D0 + +Count = 435 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C +AD = 0001020304 +CT = A748A865EC8E77BF15434B10DCF5AA4E75B073778E028A68B4D6769271 + +Count = 436 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C +AD = 000102030405 +CT = DB24D0782A7BB0A9E224210DE1BFDE707BFA7971BDBE3E183C4D7FB66D + +Count = 437 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C +AD = 00010203040506 +CT = 1D17560BBF8DC9720E2712623A4719B1D8113597F971F35F49399F6850 + +Count = 438 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C +AD = 0001020304050607 +CT = 4E9807774B4E14B5DB8E562CB52E00AB1C8928D7E9AEEC68A2A0515342 + +Count = 439 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C +AD = 000102030405060708 +CT = FE628D5C6C6347FCBE258B21F949B792C2E133578A8318BB51D126F340 + +Count = 440 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C +AD = 00010203040506070809 +CT = E9C2858529D6FEB52EF49FB5D5274B8A22D3336B59F4508E3BCE675924 + +Count = 441 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A +CT = FCD0420F6E34CE1DB5E14EDDE5DFE573C3549EB8E6A9E6FB7E731DAB4C + +Count = 442 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B +CT = 0228F0ABBA1AB39FD7D86B189B7619B1F1BDDD32260EC2B2CEB32BEEF3 + +Count = 443 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C +CT = 82B6B9CC4097AC5E72EA4E522415D2ADEB646FC35ABD04CACD996E00E0 + +Count = 444 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C0D +CT = 5DC0EAA3E48E728D0AB971A3B42444F592C83FB174E0ECB79C01B594AD + +Count = 445 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C0D0E +CT = F5E273C0B85FF629E7035055363BE74462D84FE1E291D4D677CE3F6676 + +Count = 446 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C0D0E0F +CT = 0F47F3B0C630FE59005875D996839754A1705EEBA97908975621B79C74 + +Count = 447 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 183BCB0CE30871A09209FAFF6D297D577C782CCB6D17694147B186C34B + +Count = 448 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 0AD4E35D0CDB5C46ED5192D71A96CE2318813B16E4BEAFD948AAC822E7 + +Count = 449 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = 81E22B7269ECB5CA72D6FC266EDEB0C685E9E149664F867842BB1D277E + +Count = 450 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = C51B01EF48E764BE4B06DF483C534F79B578CBE908DA0BAE763820F2EE + +Count = 451 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = DD724F39ED7497B7C6A0CC39703DD49232260E889234C081E480827D7C + +Count = 452 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = 8079ED0F7239C793F8F69CAD417E086F80336F71DB8165C3C2A741CC41 + +Count = 453 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = D84816B878D7162DF559419BC3B5ED53322A88DAB86B2C820E03021605 + +Count = 454 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = A5F050BCA298C6D36106B0209CB5B0C114611CFE8E66E76B053D32B2AE + +Count = 455 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 236EA861E0F625AC0F7CC043F2EB8D39167CBDDFD5D00B09D13B233209 + +Count = 456 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = BAEC69C08B733EDCD04BF5AA9AAD0F9F3B8EBB97F3BE9837079AA06C8F + +Count = 457 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 6FEAF790766419D1BCFE9F1669C33EFF3203AE5E60751E6207706544CB + +Count = 458 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 9351D46CF9BE44C89C49C08B2E65FB2C410CDB3235BCDCB5094656A641 + +Count = 459 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = 86474F47C9B37AA7B81C7D3A7E5CB65A6581AEB95A56279279929D3622 + +Count = 460 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = A4ECA33C0C646BC4B7C83DE5CD37D5A994388AE049359ECC428E30A267 + +Count = 461 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = D4C8184CC2561264CE33284BB96BF4A2FDFD1CD547387EF0D1F4ABDFC1 + +Count = 462 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 6EF9B5F223391B7C5FBFDC8FB9BDF3034C6A1F5CE5A5B2C99A1C7B7CA0 + +Count = 463 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D +AD = +CT = C9F98EB86B5527F8DBF63ACB57B1DA4DC8FD74D91045BF24FCE0BD51E10A + +Count = 464 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D +AD = 00 +CT = 23197038165DFA2E594A323BEEB3D610B631605C23486B8FFF0B87E18057 + +Count = 465 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D +AD = 0001 +CT = FE9D361C358BCE63BA10321C6C41D9F4FAC77F7683A7E171EA46CB8DC5D5 + +Count = 466 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D +AD = 000102 +CT = EC81D566D4E35BC9F945B1C7366524931E0A3DE9B94D57FD5BDF06F9FA8B + +Count = 467 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D +AD = 00010203 +CT = D189084B12BEC8FC8F96486759FED2803E2AE66A253AAF0CDC2B5C5BC63C + +Count = 468 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D +AD = 0001020304 +CT = A748A865EC8E77BF15434B10DC18301F3096F7CBD9608B29DEA8909B4E17 + +Count = 469 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D +AD = 000102030405 +CT = DB24D0782A7BB0A9E224210DE1A18E41CDCB33FB5DB1D76AD7C06E2CC881 + +Count = 470 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D +AD = 00010203040506 +CT = 1D17560BBF8DC9720E2712623AC3B7B0620FE51DD5EB3C6DDB48E0096C08 + +Count = 471 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D +AD = 0001020304050607 +CT = 4E9807774B4E14B5DB8E562CB577D87AE29AC9DB3F58A16A52861AC5B23D + +Count = 472 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708 +CT = FE628D5C6C6347FCBE258B21F93E4B43B8274FE55887FEEC0E769141633E + +Count = 473 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D +AD = 00010203040506070809 +CT = E9C2858529D6FEB52EF49FB5D55EFAD4812FD1FBEAA611D87D690F3559F8 + +Count = 474 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A +CT = FCD0420F6E34CE1DB5E14EDDE537E6FCBEE7B0558B93E3F0D84416409C0F + +Count = 475 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B +CT = 0228F0ABBA1AB39FD7D86B189BA9E54D9DB9D5DB3AA5122799963576F564 + +Count = 476 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C +CT = 82B6B9CC4097AC5E72EA4E5224C7C97FC2E2FC0DC49C2BEFAE940E94DE59 + +Count = 477 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C0D +CT = 5DC0EAA3E48E728D0AB971A3B46C193589EBC49851E8228C6A589055A6F2 + +Count = 478 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C0D0E +CT = F5E273C0B85FF629E70350553620986A05613E97F14831F73EDA548145A7 + +Count = 479 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C0D0E0F +CT = 0F47F3B0C630FE59005875D996FA0E0BD5CE71FA235720E108D946B793DA + +Count = 480 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 183BCB0CE30871A09209FAFF6DD8EE48DFF45CEFED5A35C9882611E0C55C + +Count = 481 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 0AD4E35D0CDB5C46ED5192D71ABD5199836847DCF77F177D768BA929F976 + +Count = 482 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = 81E22B7269ECB5CA72D6FC266ED3567F2F3EC62B101D7C62B20FB52231DD + +Count = 483 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = C51B01EF48E764BE4B06DF483CFD382D9C5EA67A675234C5D5BEEE27936D + +Count = 484 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = DD724F39ED7497B7C6A0CC3970E9B919A4DE8389DCF460AD41ABEF65FE20 + +Count = 485 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = 8079ED0F7239C793F8F69CAD41F5D8B609727C8E1EED37C0970C67880AE8 + +Count = 486 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = D84816B878D7162DF559419BC38836B6F1273B9471E05C396622EB94966F + +Count = 487 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = A5F050BCA298C6D36106B0209C7B2EAA38F69C86C9877323A02803731851 + +Count = 488 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 236EA861E0F625AC0F7CC043F2488818090BBCD375DF55048F8BDFE53F04 + +Count = 489 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = BAEC69C08B733EDCD04BF5AA9A429D0FEA30FCE384E1FAD4EC72A135821D + +Count = 490 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 6FEAF790766419D1BCFE9F16690890B47FC40C672B9E02520F9B81BC74BC + +Count = 491 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 9351D46CF9BE44C89C49C08B2EA1F40F3F3A6A6071685B59B16EFBCE32B6 + +Count = 492 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = 86474F47C9B37AA7B81C7D3A7EF26250A6966A872B83D2A14BD2C6D798C4 + +Count = 493 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = A4ECA33C0C646BC4B7C83DE5CD87BD4001FE451211A9EE97546EB49E3332 + +Count = 494 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = D4C8184CC2561264CE33284BB9264CFFB8048AD472D1E0497D631DF0270F + +Count = 495 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 6EF9B5F223391B7C5FBFDC8FB9DB2316BFD268A3EC9FDD3EC6B8A288E171 + +Count = 496 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E +AD = +CT = C9F98EB86B5527F8DBF63ACB57B17444510FC8C1CE9A316D7D4F8B59BADC40 + +Count = 497 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E +AD = 00 +CT = 23197038165DFA2E594A323BEEB397E9AB7EE43889B8C93754730F643832D1 + +Count = 498 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E +AD = 0001 +CT = FE9D361C358BCE63BA10321C6C41CCEF9E17111FEB37C589ECDB7F7A5FAFAA + +Count = 499 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E +AD = 000102 +CT = EC81D566D4E35BC9F945B1C736650E843F0CDC1C67FC85A6CCFBB8A1D86F27 + +Count = 500 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E +AD = 00010203 +CT = D189084B12BEC8FC8F96486759FE7DAE7D33828B36DF83899AAEAC67576C57 + +Count = 501 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E +AD = 0001020304 +CT = A748A865EC8E77BF15434B10DC187AEA1AEA18B17DD5DB151854289F4E38D4 + +Count = 502 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405 +CT = DB24D0782A7BB0A9E224210DE1A13AC7F579F67B0AB53F16B7F2D9CD509ACF + +Count = 503 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E +AD = 00010203040506 +CT = 1D17560BBF8DC9720E2712623AC3412B9B7D59D3A26D89689C9BF02525E713 + +Count = 504 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E +AD = 0001020304050607 +CT = 4E9807774B4E14B5DB8E562CB5771AF2D89F19A9DF52589E2161314E3EC40C + +Count = 505 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708 +CT = FE628D5C6C6347FCBE258B21F93EB432C0E81C752E71DB8267C54E56093358 + +Count = 506 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E +AD = 00010203040506070809 +CT = E9C2858529D6FEB52EF49FB5D55EA53407AC7BF6259CFD38F1A8D4331E59CF + +Count = 507 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A +CT = FCD0420F6E34CE1DB5E14EDDE537955C9D3DF75802E341416CE65A2616E138 + +Count = 508 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B +CT = 0228F0ABBA1AB39FD7D86B189BA953304F8CF2B8F05D31F126503EE6E96976 + +Count = 509 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C +CT = 82B6B9CC4097AC5E72EA4E5224C7E7B9A4480C61F24F0DC1E1293A0FF7138A + +Count = 510 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C0D +CT = 5DC0EAA3E48E728D0AB971A3B46C5E6537D20F3F9346263325B2D5E1E823D3 + +Count = 511 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C0D0E +CT = F5E273C0B85FF629E70350553620E951B89C7930A2214F9BBA3CFCBDB629AF + +Count = 512 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C0D0E0F +CT = 0F47F3B0C630FE59005875D996FA128346A74ADE1DC03CEB0CC4DD14440928 + +Count = 513 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 183BCB0CE30871A09209FAFF6DD831DC333C013F409D43F3EE90A0D9C56A31 + +Count = 514 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 0AD4E35D0CDB5C46ED5192D71ABDA74D7900768553E478F14503DED2121FFC + +Count = 515 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = 81E22B7269ECB5CA72D6FC266ED37D8CDC4EF098A1C20D9A1AA10D81AA517B + +Count = 516 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = C51B01EF48E764BE4B06DF483CFD2493FB841414F02AFD09C6DEEB544D6B47 + +Count = 517 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = DD724F39ED7497B7C6A0CC3970E93E60978C2458E0EF1C565737F3EA7A8090 + +Count = 518 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = 8079ED0F7239C793F8F69CAD41F5D63F77CB571AAC584929C46EE25BF24507 + +Count = 519 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = D84816B878D7162DF559419BC388B127923658967F63189269EC13A457F5C8 + +Count = 520 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = A5F050BCA298C6D36106B0209C7BBEADB521740086C4F2810F8A796A63E295 + +Count = 521 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 236EA861E0F625AC0F7CC043F248E3844D42DFE8D6BC031225AB117795AA96 + +Count = 522 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = BAEC69C08B733EDCD04BF5AA9A422BE474E7345A60349880098B9CC73CEFCF + +Count = 523 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 6FEAF790766419D1BCFE9F16690883C6387DF26BF0495FF98AE6EE426B797C + +Count = 524 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 9351D46CF9BE44C89C49C08B2EA198BD561F9E8FCB1949924F534F9D2000B9 + +Count = 525 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = 86474F47C9B37AA7B81C7D3A7EF236611630F87AFC9552A5CE7FE59D43A8D4 + +Count = 526 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = A4ECA33C0C646BC4B7C83DE5CD87265BC92CB41CE75D607FF792E210FA1892 + +Count = 527 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = D4C8184CC2561264CE33284BB9262C3B952CAC3D8BA81C324816A49F581905 + +Count = 528 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 6EF9B5F223391B7C5FBFDC8FB9DBD47D4F66ED2849F5C3562967F82A883680 + +Count = 529 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F +AD = +CT = C9F98EB86B5527F8DBF63ACB57B174DE5616DF353013DD94D33D7300867C1241 + +Count = 530 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F +AD = 00 +CT = 23197038165DFA2E594A323BEEB3973AB01B11EE81F3A896A702B347064A8798 + +Count = 531 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F +AD = 0001 +CT = FE9D361C358BCE63BA10321C6C41CC7602D2EED44604C600CF7F2ADA5EE1F7A7 + +Count = 532 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102 +CT = EC81D566D4E35BC9F945B1C736650EDA79011357B177750A47D40B675341F099 + +Count = 533 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F +AD = 00010203 +CT = D189084B12BEC8FC8F96486759FE7DEC6CCE9D154222DE7E929AD02458C08157 + +Count = 534 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F +AD = 0001020304 +CT = A748A865EC8E77BF15434B10DC187A4022DBFF28D27A819937F055742056DAA1 + +Count = 535 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405 +CT = DB24D0782A7BB0A9E224210DE1A13AF6F7292395F07C15BAA36501C8BDB544E4 + +Count = 536 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F +AD = 00010203040506 +CT = 1D17560BBF8DC9720E2712623AC3416C9E4D4FC11C4C2CBFCD7026167D49DE10 + +Count = 537 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F +AD = 0001020304050607 +CT = 4E9807774B4E14B5DB8E562CB5771A70B1ADFFA76E574C0E43610147C1AECA96 + +Count = 538 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708 +CT = FE628D5C6C6347FCBE258B21F93EB48E6D2901944CE4A8A687041800B81401FE + +Count = 539 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F +AD = 00010203040506070809 +CT = E9C2858529D6FEB52EF49FB5D55EA58893C23BA77EFDEF1244E09CB26EC77212 + +Count = 540 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A +CT = FCD0420F6E34CE1DB5E14EDDE5379570826607720477BF5D03A10F4288741D25 + +Count = 541 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B +CT = 0228F0ABBA1AB39FD7D86B189BA9534BA1F7AF3706800E5A43153EFB798C9861 + +Count = 542 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C +CT = 82B6B9CC4097AC5E72EA4E5224C7E73BA944DFC6F5E29077A4F944134EB5123F + +Count = 543 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C0D +CT = 5DC0EAA3E48E728D0AB971A3B46C5E754FFB5F3192F32BDAC5E38BC5935B2F41 + +Count = 544 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C0D0E +CT = F5E273C0B85FF629E70350553620E9B09F75AC04037748DC6D63B4487FB940B0 + +Count = 545 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C0D0E0F +CT = 0F47F3B0C630FE59005875D996FA1207ECA4083541524376886CD1DB30016B2C + +Count = 546 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 183BCB0CE30871A09209FAFF6DD831FB2773C46432C0621AD8992347902E1123 + +Count = 547 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 0AD4E35D0CDB5C46ED5192D71ABDA77A19C87647749700B60B257F42F282D24C + +Count = 548 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = 81E22B7269ECB5CA72D6FC266ED37D15C8231198E1AD1443B7E3E7F6B5C28CF6 + +Count = 549 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = C51B01EF48E764BE4B06DF483CFD24B62DAD7836BB8AD559B75967D1E58239B1 + +Count = 550 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = DD724F39ED7497B7C6A0CC3970E93EAFFE1F9497FC1441A42EA79513A4B12A76 + +Count = 551 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = 8079ED0F7239C793F8F69CAD41F5D6F25953BCCCC7833EF451C720DACD910CC5 + +Count = 552 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = D84816B878D7162DF559419BC388B19E2AD3548FD2EA9FE2CC9B6D9E410A4029 + +Count = 553 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = A5F050BCA298C6D36106B0209C7BBE36A67FE170C5B3E40BE41173466B1D986D + +Count = 554 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 236EA861E0F625AC0F7CC043F248E3163FA1AA1115F8FCA10F20E4649A911BE3 + +Count = 555 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = BAEC69C08B733EDCD04BF5AA9A422B92A8AB259F885F761CBD44E814521CB9B0 + +Count = 556 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 6FEAF790766419D1BCFE9F16690883CBA2ACBB62663034593FC6DE1F69C78070 + +Count = 557 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 9351D46CF9BE44C89C49C08B2EA198AC749402A15B9C306939588FC2B9488A84 + +Count = 558 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = 86474F47C9B37AA7B81C7D3A7EF236A0F48A330929F77E2894E2BE8E7C64A655 + +Count = 559 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = A4ECA33C0C646BC4B7C83DE5CD87262F76A35D299251F95B431F4FED39E531DF + +Count = 560 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = D4C8184CC2561264CE33284BB9262C97800ED46590A73F583BD34CA649B995EB + +Count = 561 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 6EF9B5F223391B7C5FBFDC8FB9DBD4825E23BD4B138FDA0E6772916E8AF1DD50 + +Count = 562 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10 +AD = +CT = C9F98EB86B5527F8DBF63ACB57B174DEC945DD5542393590389AA08608BAA3647A + +Count = 563 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 00 +CT = 23197038165DFA2E594A323BEEB3973A56F81D2887F4B591BC3325293AA7073727 + +Count = 564 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 0001 +CT = FE9D361C358BCE63BA10321C6C41CC76B5693370660C507E75D61F18DC8685592E + +Count = 565 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102 +CT = EC81D566D4E35BC9F945B1C736650EDA4382887994F9067C04AC69F4DBD9AD6EBA + +Count = 566 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 00010203 +CT = D189084B12BEC8FC8F96486759FE7DECCCFBA8EEC5F84047B0D14689DCDE53FC41 + +Count = 567 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 0001020304 +CT = A748A865EC8E77BF15434B10DC187A4094CE7C859C2230B0650D485D27872EB9E6 + +Count = 568 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405 +CT = DB24D0782A7BB0A9E224210DE1A13AF61CF76F760A6EE2E1DB94188E61ED89F1E6 + +Count = 569 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 00010203040506 +CT = 1D17560BBF8DC9720E2712623AC3416CB9C25DA3A5CECD7A4FDFFA8D8DA9DAEE23 + +Count = 570 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 0001020304050607 +CT = 4E9807774B4E14B5DB8E562CB5771A706E06473BF331F1778C2676D2140273BEFB + +Count = 571 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708 +CT = FE628D5C6C6347FCBE258B21F93EB48EFD456ADE2B896566AD02E9B4B45E236118 + +Count = 572 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 00010203040506070809 +CT = E9C2858529D6FEB52EF49FB5D55EA588A7B6B0ACBBBC1FC0C948137FC78BB9FA63 + +Count = 573 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A +CT = FCD0420F6E34CE1DB5E14EDDE53795707DF3B5FAF39097659692917610FAD8C8AF + +Count = 574 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B +CT = 0228F0ABBA1AB39FD7D86B189BA9534B76A1588C3E87CD072660834DBED7A9CF2B + +Count = 575 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C +CT = 82B6B9CC4097AC5E72EA4E5224C7E73BBCB83814D85A37F26592CDBB5DE41A58C3 + +Count = 576 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C0D +CT = 5DC0EAA3E48E728D0AB971A3B46C5E756F1FE882F235A32CB30D3BBF9E2B4FF299 + +Count = 577 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C0D0E +CT = F5E273C0B85FF629E70350553620E9B0C26F4126C9932DDA88D2947092E7FCEBD3 + +Count = 578 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C0D0E0F +CT = 0F47F3B0C630FE59005875D996FA120759AEFA370112EF06D5537E95014136972F + +Count = 579 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 183BCB0CE30871A09209FAFF6DD831FB4A5BAAB112BDB0972926FB3AE12A7F988B + +Count = 580 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 0AD4E35D0CDB5C46ED5192D71ABDA77AF76B9F36977B7158F1E286FBA83499B271 + +Count = 581 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = 81E22B7269ECB5CA72D6FC266ED37D1517C0800691DD84AC15F3979C271A273578 + +Count = 582 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = C51B01EF48E764BE4B06DF483CFD24B620E7AAD2BB3C9353E5353AB1CC21DF8EBC + +Count = 583 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = DD724F39ED7497B7C6A0CC3970E93EAF17FB31EECC1DFA4BDB7365DC0C18E91940 + +Count = 584 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = 8079ED0F7239C793F8F69CAD41F5D6F2000C63C7D19AE59D5F4C059B95625C761B + +Count = 585 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = D84816B878D7162DF559419BC388B19E96CC77B0038B20B214D16DD0D9968C95BB + +Count = 586 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = A5F050BCA298C6D36106B0209C7BBE364BF378EDD840ADC9F39B2C65E021D14154 + +Count = 587 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 236EA861E0F625AC0F7CC043F248E3168FF0781FC2F4C720A1481A95AAAB8A37BD + +Count = 588 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = BAEC69C08B733EDCD04BF5AA9A422B92FD2D9E5004C3497CE014BE56400281AFDF + +Count = 589 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 6FEAF790766419D1BCFE9F16690883CBF23D63C0828F67D4157ADF23DE835D7BB2 + +Count = 590 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 9351D46CF9BE44C89C49C08B2EA198AC77D031AA0A5F950F129C08EC3115A927C1 + +Count = 591 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = 86474F47C9B37AA7B81C7D3A7EF236A07DA30FD9FA53527291509653DFAAF148CF + +Count = 592 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = A4ECA33C0C646BC4B7C83DE5CD87262F46583AC0D2991296413220A9F5B379678B + +Count = 593 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = D4C8184CC2561264CE33284BB9262C974AA9174DC9490E0389819DDAAF6E4E3711 + +Count = 594 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 6EF9B5F223391B7C5FBFDC8FB9DBD482C0225A021215185C3B11DFDDFE18749BB4 + +Count = 595 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = +CT = C9F98EB86B5527F8DBF63ACB57B174DEC9538F1FB5F7EDF0654B05BCC2923C994116 + +Count = 596 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 00 +CT = 23197038165DFA2E594A323BEEB3973A568FE1B216B70B6E164532847BAD2F2742FB + +Count = 597 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 0001 +CT = FE9D361C358BCE63BA10321C6C41CC76B5D46A8980622D82DAA320870CB4DF6FD19A + +Count = 598 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102 +CT = EC81D566D4E35BC9F945B1C736650EDA43E83038C757442200E48A6E02CB029B8D76 + +Count = 599 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 00010203 +CT = D189084B12BEC8FC8F96486759FE7DECCCD41455130DC1610C6A358E7B775E40C2B7 + +Count = 600 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 0001020304 +CT = A748A865EC8E77BF15434B10DC187A4094FA14EA928ABAFA65EF439F429DA3D596CE + +Count = 601 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405 +CT = DB24D0782A7BB0A9E224210DE1A13AF61C123C28C36B0FCC44AE145B98CC4F854C2A + +Count = 602 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 00010203040506 +CT = 1D17560BBF8DC9720E2712623AC3416CB9B72464E97083AA477574DA6FD3640C5165 + +Count = 603 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 0001020304050607 +CT = 4E9807774B4E14B5DB8E562CB5771A706EA1D43B1BD6FD6AF24CED53C24638A624D3 + +Count = 604 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708 +CT = FE628D5C6C6347FCBE258B21F93EB48EFD045910BD2536A294FF4C8926B06A8D106F + +Count = 605 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 00010203040506070809 +CT = E9C2858529D6FEB52EF49FB5D55EA588A73CA11CA4058832A5527B440A1C3173E4C8 + +Count = 606 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A +CT = FCD0420F6E34CE1DB5E14EDDE53795707D1B0A8F34BDD8C6207122251FA6F1F5D1FC + +Count = 607 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B +CT = 0228F0ABBA1AB39FD7D86B189BA9534B76C446DD39EF655413399D847517E1AF46AA + +Count = 608 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C +CT = 82B6B9CC4097AC5E72EA4E5224C7E73BBC13A6375558EBF42CA9E2CDF518017A7466 + +Count = 609 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C0D +CT = 5DC0EAA3E48E728D0AB971A3B46C5E756F0C7E0DF29C011CBD5CEFAE5B4BE80429DB + +Count = 610 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C0D0E +CT = F5E273C0B85FF629E70350553620E9B0C2068F5DD5AC9252575E97E794AD98E1D6DD + +Count = 611 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C0D0E0F +CT = 0F47F3B0C630FE59005875D996FA1207599A0790C79E7A7177834CEC12BCCF89C9F9 + +Count = 612 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 183BCB0CE30871A09209FAFF6DD831FB4A96065577377996B8AC480806A6C82C66FE + +Count = 613 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 0AD4E35D0CDB5C46ED5192D71ABDA77AF7F2F57C29A1CAB60DBBA5276BF2CA3BD4C3 + +Count = 614 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = 81E22B7269ECB5CA72D6FC266ED37D15173FEED1DEE49A33D750A902CF465FB3D541 + +Count = 615 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = C51B01EF48E764BE4B06DF483CFD24B6200511E16840C21B66FDC24E9360FDA1EDE4 + +Count = 616 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = DD724F39ED7497B7C6A0CC3970E93EAF17934C6BF59E728C632A3D76EC4A38BA0ED1 + +Count = 617 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = 8079ED0F7239C793F8F69CAD41F5D6F20005BAC06FF41AF32CC81DEE31CCA168D5BC + +Count = 618 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = D84816B878D7162DF559419BC388B19E964292936B9180AFB0EE29F9EA36D2788710 + +Count = 619 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = A5F050BCA298C6D36106B0209C7BBE364BC517D52FF585D1FBAD681CD693A7D3362C + +Count = 620 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 236EA861E0F625AC0F7CC043F248E3168FDE04B97360379F84F753CBC6F9B0E69803 + +Count = 621 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = BAEC69C08B733EDCD04BF5AA9A422B92FDFD00BFC2D5626E53422FD66CF9C85192AB + +Count = 622 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 6FEAF790766419D1BCFE9F16690883CBF21580F795B5C871C5636BF998C19F6EAE7A + +Count = 623 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 9351D46CF9BE44C89C49C08B2EA198AC77C814AC4766C231429C5E4C3335FA218115 + +Count = 624 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = 86474F47C9B37AA7B81C7D3A7EF236A07D2D1D2C0D26C1A62F0AC7CFEA0C3EE40591 + +Count = 625 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = A4ECA33C0C646BC4B7C83DE5CD87262F46687D86B3657181DE8E9D9A35DC69A04EBA + +Count = 626 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = D4C8184CC2561264CE33284BB9262C974A1D4C410CE3B9A0F85A0D50E1A85675F963 + +Count = 627 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 6EF9B5F223391B7C5FBFDC8FB9DBD482C0CA86908DB4D1DB0216EFCEB2A88334BAB6 + +Count = 628 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = +CT = C9F98EB86B5527F8DBF63ACB57B174DEC953EFF4ED34E921B0C534C713712EC984FA03 + +Count = 629 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 00 +CT = 23197038165DFA2E594A323BEEB3973A568F6C2219B8A0C1B88FCDA0AA086C4C6CC51F + +Count = 630 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 0001 +CT = FE9D361C358BCE63BA10321C6C41CC76B5D4472DCD3E830B9072F6EDF3D5AEC35F924A + +Count = 631 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102 +CT = EC81D566D4E35BC9F945B1C736650EDA43E8888B529E0956E1CC7F1825908EBA71B884 + +Count = 632 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 00010203 +CT = D189084B12BEC8FC8F96486759FE7DECCCD493D3A6849FAC15B24D2396AF1C4F4ED6EF + +Count = 633 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 0001020304 +CT = A748A865EC8E77BF15434B10DC187A4094FAB32C6B988388440644082F1A6F4A0AC02D + +Count = 634 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405 +CT = DB24D0782A7BB0A9E224210DE1A13AF61C12AE0A1F92EE539F21D206119A1AD04A89A9 + +Count = 635 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 00010203040506 +CT = 1D17560BBF8DC9720E2712623AC3416CB9B786E051D266F874477521DA01701450E60F + +Count = 636 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 0001020304050607 +CT = 4E9807774B4E14B5DB8E562CB5771A706EA183D5706B5EBEA63E67E625D7A23E8DB2F0 + +Count = 637 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708 +CT = FE628D5C6C6347FCBE258B21F93EB48EFD04635F39F11530084E7F61F8E1C6D8E4757C + +Count = 638 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 00010203040506070809 +CT = E9C2858529D6FEB52EF49FB5D55EA588A73C6B40308CF8BFCDD07DCF9DA70067BD4E99 + +Count = 639 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A +CT = FCD0420F6E34CE1DB5E14EDDE53795707D1B6A825A6F8C54DDE7492F314980A3C03FDE + +Count = 640 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B +CT = 0228F0ABBA1AB39FD7D86B189BA9534B76C48ADC12A0ACBA06C16922C75BC4DEA0E5EC + +Count = 641 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C +CT = 82B6B9CC4097AC5E72EA4E5224C7E73BBC136FD464F33D2AEBC7CB644EC7040187B159 + +Count = 642 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C0D +CT = 5DC0EAA3E48E728D0AB971A3B46C5E756F0C4B2AF542953A076CA1A2BA5DA70CD01DCE + +Count = 643 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C0D0E +CT = F5E273C0B85FF629E70350553620E9B0C206468CC67CCA55C81324613A8B4EB2E2CFD2 + +Count = 644 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C0D0E0F +CT = 0F47F3B0C630FE59005875D996FA1207599A4E5A8C97D782EAABD1F05DA7230B0FCED4 + +Count = 645 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 183BCB0CE30871A09209FAFF6DD831FB4A96618CB370D35F74960773CBE5BC0140AF74 + +Count = 646 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 0AD4E35D0CDB5C46ED5192D71ABDA77AF7F2B1E29FABAA216CB3BE1E956030B1682CFD + +Count = 647 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = 81E22B7269ECB5CA72D6FC266ED37D15173FDB2380577AE1E54E1D59C9346170153657 + +Count = 648 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = C51B01EF48E764BE4B06DF483CFD24B620050B215AEC4473C93D79934EEB33066ED8BB + +Count = 649 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = DD724F39ED7497B7C6A0CC3970E93EAF17939032A81BADF260166D5A0870A1F12A4499 + +Count = 650 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = 8079ED0F7239C793F8F69CAD41F5D6F20005179F628276ED9E046EE6312BE0CC400CA0 + +Count = 651 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = D84816B878D7162DF559419BC388B19E96426BE7C50E3FB14DFBF6183EEBB6196401A0 + +Count = 652 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = A5F050BCA298C6D36106B0209C7BBE364BC5340E315D158A6E313C8C0086726CD6CA46 + +Count = 653 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 236EA861E0F625AC0F7CC043F248E3168FDEBCB7CA7D3CD7784D45653C170CC9ED2867 + +Count = 654 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = BAEC69C08B733EDCD04BF5AA9A422B92FDFD306D26EC9518EA47E73A9F25B935090B4B + +Count = 655 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 6FEAF790766419D1BCFE9F16690883CBF2154E88B27C163669B95614BA61106B195339 + +Count = 656 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 9351D46CF9BE44C89C49C08B2EA198AC77C8B67ADFD4F66560F27C89F83847C670B94A + +Count = 657 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = 86474F47C9B37AA7B81C7D3A7EF236A07D2D7E82F6E2895D332136544B70C9DF798CC1 + +Count = 658 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = A4ECA33C0C646BC4B7C83DE5CD87262F4668A82E02E6C29B66BB466EF223A0F1547B24 + +Count = 659 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = D4C8184CC2561264CE33284BB9262C974A1D85DE9503E01C6E81BBFD076D3BC9FC2F4E + +Count = 660 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 6EF9B5F223391B7C5FBFDC8FB9DBD482C0CA05F4581BF68B8B49746925D335424ED23D + +Count = 661 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = +CT = C9F98EB86B5527F8DBF63ACB57B174DEC953EF56BC734FC7716FE1F318C64BC39140BF98 + +Count = 662 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 00 +CT = 23197038165DFA2E594A323BEEB3973A568F6C95DDEB9F8E18B372D5D6BB6AF211AF51BF + +Count = 663 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 0001 +CT = FE9D361C358BCE63BA10321C6C41CC76B5D447A764071D9D776C9E8B7BF11DA51FFA4A3B + +Count = 664 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102 +CT = EC81D566D4E35BC9F945B1C736650EDA43E8880C0A07B30D24A79B8FB2246E8432A5C37B + +Count = 665 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 00010203 +CT = D189084B12BEC8FC8F96486759FE7DECCCD4936CDE5145EE86ADFE98B311EB2A518D1DD8 + +Count = 666 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 0001020304 +CT = A748A865EC8E77BF15434B10DC187A4094FAB3F4AD70C6E293DD6CFCC5CBBB2CFC5E4D4C + +Count = 667 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405 +CT = DB24D0782A7BB0A9E224210DE1A13AF61C12AE9684B826699859C69BA177869677B025A4 + +Count = 668 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 00010203040506 +CT = 1D17560BBF8DC9720E2712623AC3416CB9B786F9E252963483AC8BED6B320FCFEDB3BEBC + +Count = 669 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 0001020304050607 +CT = 4E9807774B4E14B5DB8E562CB5771A706EA1833CF37ECA1F6CE98D78A48B8B639735295D + +Count = 670 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708 +CT = FE628D5C6C6347FCBE258B21F93EB48EFD0463F52D0159284C881A4E4D1AB67C53E50A8A + +Count = 671 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 00010203040506070809 +CT = E9C2858529D6FEB52EF49FB5D55EA588A73C6B3D567B81AEBEFFF64AA5F87D80FB39D5FC + +Count = 672 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A +CT = FCD0420F6E34CE1DB5E14EDDE53795707D1B6AF10D0E9A00503738FF087946F01B8590D3 + +Count = 673 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B +CT = 0228F0ABBA1AB39FD7D86B189BA9534B76C48A4C1B739987E48EEE4E6427FAD474AB6972 + +Count = 674 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C +CT = 82B6B9CC4097AC5E72EA4E5224C7E73BBC136FFBD680EC386EA65A48B987433C8AED316D + +Count = 675 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C0D +CT = 5DC0EAA3E48E728D0AB971A3B46C5E756F0C4B5F64B7BF2E71BC1D9B6482A24D3C630F39 + +Count = 676 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C0D0E +CT = F5E273C0B85FF629E70350553620E9B0C206469FB8FF43A5086E5FA37B4904D143792609 + +Count = 677 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C0D0E0F +CT = 0F47F3B0C630FE59005875D996FA1207599A4E353F66742E5893890E8AE1E87B588A7408 + +Count = 678 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 183BCB0CE30871A09209FAFF6DD831FB4A9661D421F6B16D533AFAD596AF98BBC6AF3980 + +Count = 679 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 0AD4E35D0CDB5C46ED5192D71ABDA77AF7F2B11C2F866643A5934C85ABCB85DFE9F22CE0 + +Count = 680 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = 81E22B7269ECB5CA72D6FC266ED37D15173FDB04F990117BCC6C33C9EF00944F4323809C + +Count = 681 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = C51B01EF48E764BE4B06DF483CFD24B620050B261F7625892D2103811099A4E8006E0330 + +Count = 682 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = DD724F39ED7497B7C6A0CC3970E93EAF179390D9DA29E78D00A826371100551DEA885897 + +Count = 683 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = 8079ED0F7239C793F8F69CAD41F5D6F20005173D6CA580E1434CBE6E7A2C56A2EA600CDE + +Count = 684 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = D84816B878D7162DF559419BC388B19E96426BF59A76E412BCD31FF952F406EE0A1DE847 + +Count = 685 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = A5F050BCA298C6D36106B0209C7BBE364BC534E710579BB779D400B59FB66C98DDD6E26A + +Count = 686 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 236EA861E0F625AC0F7CC043F248E3168FDEBCCF21C0F62CA603E46C859B76A44DBF1DA9 + +Count = 687 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = BAEC69C08B733EDCD04BF5AA9A422B92FDFD301FFCA3B757CB93D1899CB85B90C503EE92 + +Count = 688 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 6FEAF790766419D1BCFE9F16690883CBF2154EA04C9117F14A3A7068041A451A86F8CA43 + +Count = 689 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 9351D46CF9BE44C89C49C08B2EA198AC77C8B63E69A52DE16AF6CA8671DA302C9145D999 + +Count = 690 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = 86474F47C9B37AA7B81C7D3A7EF236A07D2D7E8C30FD19151A2776E922F8ABDFC107F99A + +Count = 691 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = A4ECA33C0C646BC4B7C83DE5CD87262F4668A8D50121E22F96A7E7EFE973D724FDF8D193 + +Count = 692 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = D4C8184CC2561264CE33284BB9262C974A1D85872B6956B0611375E3160ED6526718C3A9 + +Count = 693 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 6EF9B5F223391B7C5FBFDC8FB9DBD482C0CA05BFC989A838AEACCE47FC62B6E17D39BD23 + +Count = 694 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = +CT = C9F98EB86B5527F8DBF63ACB57B174DEC953EF563317D8CE0230822F499E9A5138CDBD2F25 + +Count = 695 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 00 +CT = 23197038165DFA2E594A323BEEB3973A568F6C952570AAA1453620EA20C28A85FA569B855E + +Count = 696 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 0001 +CT = FE9D361C358BCE63BA10321C6C41CC76B5D447A7060E75CFF298363A3489177F5C43B328FB + +Count = 697 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102 +CT = EC81D566D4E35BC9F945B1C736650EDA43E8880C27FC458CDB664E47E431AB887267FFE3ED + +Count = 698 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 00010203 +CT = D189084B12BEC8FC8F96486759FE7DECCCD4936CCBDA3F56E3DF9A87FA1CD66727C54D7035 + +Count = 699 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 0001020304 +CT = A748A865EC8E77BF15434B10DC187A4094FAB3F4802B1CD63D1F29760E05DCCC3FB3CA9D81 + +Count = 700 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405 +CT = DB24D0782A7BB0A9E224210DE1A13AF61C12AE96C628DB083071161CF5EAA15919D6442BF7 + +Count = 701 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 00010203040506 +CT = 1D17560BBF8DC9720E2712623AC3416CB9B786F9ED742280F1DE41BCF94D0843CD8FB3EC65 + +Count = 702 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 0001020304050607 +CT = 4E9807774B4E14B5DB8E562CB5771A706EA1833C33CD5F5A3C57609EC751B771E6F9D5E844 + +Count = 703 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708 +CT = FE628D5C6C6347FCBE258B21F93EB48EFD0463F54972B3C5682F4C26B933C7324A04D1D93B + +Count = 704 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 00010203040506070809 +CT = E9C2858529D6FEB52EF49FB5D55EA588A73C6B3DE4BFBC3E0F0EB18D8ADAD9947136BB042A + +Count = 705 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A +CT = FCD0420F6E34CE1DB5E14EDDE53795707D1B6AF1148014AF70D24464328255ABE113C51533 + +Count = 706 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B +CT = 0228F0ABBA1AB39FD7D86B189BA9534B76C48A4CEC20EF37D463400263AE235D0BFC164270 + +Count = 707 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C +CT = 82B6B9CC4097AC5E72EA4E5224C7E73BBC136FFB77EAA4FE85FF69CBECC31F600B39BE001E + +Count = 708 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C0D +CT = 5DC0EAA3E48E728D0AB971A3B46C5E756F0C4B5FC61AA18B7F8557B18F872D18EE549D3CA0 + +Count = 709 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C0D0E +CT = F5E273C0B85FF629E70350553620E9B0C206469F830A8F49503271D3F33CB977F2F1E67C95 + +Count = 710 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C0D0E0F +CT = 0F47F3B0C630FE59005875D996FA1207599A4E3550C7F5B9F38DC604A94310755EB5F33E04 + +Count = 711 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 183BCB0CE30871A09209FAFF6DD831FB4A9661D4EEAFBF787CCEA79F2D5161D3E8C186CB54 + +Count = 712 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 0AD4E35D0CDB5C46ED5192D71ABDA77AF7F2B11C47CCC72EC3BDED9ECBC09B090A12EA9701 + +Count = 713 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = 81E22B7269ECB5CA72D6FC266ED37D15173FDB041BD48FE382C3E67430711D88CBF7D2576B + +Count = 714 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = C51B01EF48E764BE4B06DF483CFD24B620050B26B12AAD43EEC304A19D5141A23B3715159E + +Count = 715 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = DD724F39ED7497B7C6A0CC3970E93EAF179390D95CC55C410D3D7B4C5389D37DF2B1380CFB + +Count = 716 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = 8079ED0F7239C793F8F69CAD41F5D6F20005173D510278AEBA32048479B7E4376D5884A253 + +Count = 717 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = D84816B878D7162DF559419BC388B19E96426BF5FA2191E5B1FFF6934BCC8E7807FBC52806 + +Count = 718 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = A5F050BCA298C6D36106B0209C7BBE364BC534E748B8D1C1953755098663474EDAF4912FD3 + +Count = 719 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 236EA861E0F625AC0F7CC043F248E3168FDEBCCF796281E32D8C0C5F037B36A23D7397182C + +Count = 720 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = BAEC69C08B733EDCD04BF5AA9A422B92FDFD301F71F4CF17733849F6B2FAC8DF0A9E234C0E + +Count = 721 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 6FEAF790766419D1BCFE9F16690883CBF2154EA0D45D9E63F930F9A26037ED43071902ED1B + +Count = 722 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 9351D46CF9BE44C89C49C08B2EA198AC77C8B63E024380FB61E668A756CF7462B2B5B5E3C0 + +Count = 723 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = 86474F47C9B37AA7B81C7D3A7EF236A07D2D7E8C262096DBDE2E15A032E3051D22D2580838 + +Count = 724 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = A4ECA33C0C646BC4B7C83DE5CD87262F4668A8D573BE51A560656EB548776F887440AECBB2 + +Count = 725 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = D4C8184CC2561264CE33284BB9262C974A1D8587A8456598582DA403F5FADF47C6A04321F1 + +Count = 726 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 6EF9B5F223391B7C5FBFDC8FB9DBD482C0CA05BFA28FAE7A81C716837767BAC64380180482 + +Count = 727 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = +CT = C9F98EB86B5527F8DBF63ACB57B174DEC953EF5633B12057FABAA3320578816E47BB1B99C5FB + +Count = 728 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 00 +CT = 23197038165DFA2E594A323BEEB3973A568F6C9525E676208C2034654E87C6A15CDD6524D535 + +Count = 729 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 0001 +CT = FE9D361C358BCE63BA10321C6C41CC76B5D447A70648D4C3D5BF865DABB92F88C3D7D2B19AEA + +Count = 730 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102 +CT = EC81D566D4E35BC9F945B1C736650EDA43E8880C275C0C6BEF3B3AFA4DC5BF05AC29BAD51383 + +Count = 731 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 00010203 +CT = D189084B12BEC8FC8F96486759FE7DECCCD4936CCBE213140ADC9F8DF705EAE296AE73C99284 + +Count = 732 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 0001020304 +CT = A748A865EC8E77BF15434B10DC187A4094FAB3F4809A39809A879DEAB49E01BAEB03EE6E5AC3 + +Count = 733 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405 +CT = DB24D0782A7BB0A9E224210DE1A13AF61C12AE96C6AD720D2F5400126CB0B1E420F1182292FE + +Count = 734 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 00010203040506 +CT = 1D17560BBF8DC9720E2712623AC3416CB9B786F9ED7B5C705B05B5ECAD94B0294617E911336C + +Count = 735 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 0001020304050607 +CT = 4E9807774B4E14B5DB8E562CB5771A706EA1833C33008BE515CA3472EA328FAAA1C990D27734 + +Count = 736 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708 +CT = FE628D5C6C6347FCBE258B21F93EB48EFD0463F5495ACE8F74D904A058B99B91EC571B64EE97 + +Count = 737 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 00010203040506070809 +CT = E9C2858529D6FEB52EF49FB5D55EA588A73C6B3DE4B7E411CF4D36FD4046F532B86B60C4A23B + +Count = 738 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A +CT = FCD0420F6E34CE1DB5E14EDDE53795707D1B6AF11415B2C2FB105B6800A8B9255757C8D9AB68 + +Count = 739 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B +CT = 0228F0ABBA1AB39FD7D86B189BA9534B76C48A4CEC02AFC1062B863E322889057A81D794D277 + +Count = 740 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C +CT = 82B6B9CC4097AC5E72EA4E5224C7E73BBC136FFB77065DE2B1BC1F7C2CA36BA1EE2A10C0C0FB + +Count = 741 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C0D +CT = 5DC0EAA3E48E728D0AB971A3B46C5E756F0C4B5FC61F8AB2AD7B214B35AD0050FC351CA4FE17 + +Count = 742 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C0D0E +CT = F5E273C0B85FF629E70350553620E9B0C206469F83C8317EB8C333428360B8F6CFB91E7C0375 + +Count = 743 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C0D0E0F +CT = 0F47F3B0C630FE59005875D996FA1207599A4E3550016977AF4B1D0DA096A03B2067CADAE615 + +Count = 744 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 183BCB0CE30871A09209FAFF6DD831FB4A9661D4EE2E966F9C8F3404C3A85AD8A252AA7CAB1A + +Count = 745 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 0AD4E35D0CDB5C46ED5192D71ABDA77AF7F2B11C471BD8582A333858BF06F9318D099290037B + +Count = 746 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = 81E22B7269ECB5CA72D6FC266ED37D15173FDB041B067631467B017714A7C680EF559D760A41 + +Count = 747 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = C51B01EF48E764BE4B06DF483CFD24B620050B26B19D6BE8E83078065BCC24BA0405D0A53AD3 + +Count = 748 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = DD724F39ED7497B7C6A0CC3970E93EAF179390D95CA6FCCAB479883C6C7786E8A8F270DE2F84 + +Count = 749 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = 8079ED0F7239C793F8F69CAD41F5D6F20005173D51EC8AD80042A797C6705D99DEF4CBD6163E + +Count = 750 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = D84816B878D7162DF559419BC388B19E96426BF5FA40C987DA02227BF1B5C29A69333ECC8801 + +Count = 751 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = A5F050BCA298C6D36106B0209C7BBE364BC534E748550EDA251E2A1601A6E6081A26CCF668D6 + +Count = 752 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 236EA861E0F625AC0F7CC043F248E3168FDEBCCF790DEE6BBA683030DAF526E24C442BE7D709 + +Count = 753 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = BAEC69C08B733EDCD04BF5AA9A422B92FDFD301F7167994AB35BBF8EC760908271A060C1B502 + +Count = 754 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 6FEAF790766419D1BCFE9F16690883CBF2154EA0D4FF5B92C0AE5715EF559919CDEFECDF3B25 + +Count = 755 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 9351D46CF9BE44C89C49C08B2EA198AC77C8B63E02A8C692DA02C590D414B11A51ACD1020940 + +Count = 756 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = 86474F47C9B37AA7B81C7D3A7EF236A07D2D7E8C263372C5ADE71F0BAE283E366EAB2E6A9694 + +Count = 757 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = A4ECA33C0C646BC4B7C83DE5CD87262F4668A8D573DBC19E09DCF84F06A31FC15794F2FE2FD8 + +Count = 758 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = D4C8184CC2561264CE33284BB9262C974A1D8587A896F241287E9CEB93CBFFA0A88F0D32EB3B + +Count = 759 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 6EF9B5F223391B7C5FBFDC8FB9DBD482C0CA05BFA23A69B67D8B97671BEF07DD73FBF30DA074 + +Count = 760 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = +CT = C9F98EB86B5527F8DBF63ACB57B174DEC953EF5633B156E09CDA071F41CE6394566EA56921073E + +Count = 761 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 00 +CT = 23197038165DFA2E594A323BEEB3973A568F6C9525E62C0F95C33A75DDE3682B2D1BA7ABD08FE2 + +Count = 762 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 0001 +CT = FE9D361C358BCE63BA10321C6C41CC76B5D447A706488AED488A9770E3A620FF697CE54F7AE6C2 + +Count = 763 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102 +CT = EC81D566D4E35BC9F945B1C736650EDA43E8880C275CA59D7B768A7552CFB1CED8DDCE257D4908 + +Count = 764 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 00010203 +CT = D189084B12BEC8FC8F96486759FE7DECCCD4936CCBE23998CCC6CD5C55D63D03F453D1C35B1C47 + +Count = 765 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 0001020304 +CT = A748A865EC8E77BF15434B10DC187A4094FAB3F4809A5CF3C2301E972E243BD83DFE91D5C2E52F + +Count = 766 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405 +CT = DB24D0782A7BB0A9E224210DE1A13AF61C12AE96C6AD9529CD25C5FC976443016CE6A7154F62D0 + +Count = 767 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 00010203040506 +CT = 1D17560BBF8DC9720E2712623AC3416CB9B786F9ED7B289B35577BBD106505CAD196359812D732 + +Count = 768 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 0001020304050607 +CT = 4E9807774B4E14B5DB8E562CB5771A706EA1833C3300A8B56F05D0E90530EC5AF99F5E5C48BFCA + +Count = 769 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708 +CT = FE628D5C6C6347FCBE258B21F93EB48EFD0463F5495A3CEBAA575001577C688AECFC376BAB6139 + +Count = 770 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 00010203040506070809 +CT = E9C2858529D6FEB52EF49FB5D55EA588A73C6B3DE4B7CF7F90D8B4F59D20429688297D853CEBBE + +Count = 771 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A +CT = FCD0420F6E34CE1DB5E14EDDE53795707D1B6AF1141588FC0CFF293ED1556435DC55B8C9BD85CF + +Count = 772 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B +CT = 0228F0ABBA1AB39FD7D86B189BA9534B76C48A4CEC021972C1E1337C074065BCDAF9E552C1EFA4 + +Count = 773 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C +CT = 82B6B9CC4097AC5E72EA4E5224C7E73BBC136FFB7706F397E48768C4B651872F0744B76851A4C8 + +Count = 774 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C0D +CT = 5DC0EAA3E48E728D0AB971A3B46C5E756F0C4B5FC61F0E4ABCD1E921010DE7D06659D2D128B4DF + +Count = 775 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C0D0E +CT = F5E273C0B85FF629E70350553620E9B0C206469F83C8CB3BC2CB79671AF3605893D8F5758A9F9B + +Count = 776 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C0D0E0F +CT = 0F47F3B0C630FE59005875D996FA1207599A4E355001D1799F7518EF53427C7A6051114B2FC31E + +Count = 777 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 183BCB0CE30871A09209FAFF6DD831FB4A9661D4EE2E5EDA89ABE09E33FBF5EAD46579B7841E01 + +Count = 778 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 0AD4E35D0CDB5C46ED5192D71ABDA77AF7F2B11C471BBF7FD83D4D9531005E98C2164DDC99B192 + +Count = 779 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = 81E22B7269ECB5CA72D6FC266ED37D15173FDB041B0633065E6A3897CAFD8E15F1ACB0128393BD + +Count = 780 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = C51B01EF48E764BE4B06DF483CFD24B620050B26B19D00815040806E7D623AFD2C097BB46C0C9B + +Count = 781 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = DD724F39ED7497B7C6A0CC3970E93EAF179390D95CA6D4D0A82671F86C75B309AAD455B147EFA0 + +Count = 782 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = 8079ED0F7239C793F8F69CAD41F5D6F20005173D51EC9FE2516D90778B8197B27C3F628918DDE7 + +Count = 783 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = D84816B878D7162DF559419BC388B19E96426BF5FA4044A6F7233A7B38641A1B35775EB5DD13E8 + +Count = 784 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = A5F050BCA298C6D36106B0209C7BBE364BC534E7485577EEF0B80EE0DEE4FFE7642E134B1EAADC + +Count = 785 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 236EA861E0F625AC0F7CC043F248E3168FDEBCCF790D7ED6F8BC789E47BEBC45FC881298E375DC + +Count = 786 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = BAEC69C08B733EDCD04BF5AA9A422B92FDFD301F71677846156F0577AF04D08B84646B646CC180 + +Count = 787 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 6FEAF790766419D1BCFE9F16690883CBF2154EA0D4FF544775A07D54D5FB347E31466CB68991E4 + +Count = 788 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 9351D46CF9BE44C89C49C08B2EA198AC77C8B63E02A8A09C9A87231C112056775AFF1935759110 + +Count = 789 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = 86474F47C9B37AA7B81C7D3A7EF236A07D2D7E8C26334EDB97F0FABA57B3A5876DE3184EBFE9E8 + +Count = 790 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = A4ECA33C0C646BC4B7C83DE5CD87262F4668A8D573DBBE708EBC1F39F26097B9CE67A40BBE8A74 + +Count = 791 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = D4C8184CC2561264CE33284BB9262C974A1D8587A8966DB9CCB9F69FDC74E8653F6C15F0F7D1D1 + +Count = 792 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 6EF9B5F223391B7C5FBFDC8FB9DBD482C0CA05BFA23A3716EDC1F3F39EC5AE2C10E1E64548C95C + +Count = 793 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = +CT = C9F98EB86B5527F8DBF63ACB57B174DEC953EF5633B156AA9AE59290B68599BA4C8766B092ED1DBF + +Count = 794 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 00 +CT = 23197038165DFA2E594A323BEEB3973A568F6C9525E62C695B9E2CC714FBDB84C80C2E3A2DDACD51 + +Count = 795 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 0001 +CT = FE9D361C358BCE63BA10321C6C41CC76B5D447A706488A96564B70DF207052CF34403510AE3B8AE9 + +Count = 796 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102 +CT = EC81D566D4E35BC9F945B1C736650EDA43E8880C275CA5D93FDF111795C6A906BC2CA1CA4C775B74 + +Count = 797 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 00010203 +CT = D189084B12BEC8FC8F96486759FE7DECCCD4936CCBE239883A5D5368B370D29EAB723A1F07403D3F + +Count = 798 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 0001020304 +CT = A748A865EC8E77BF15434B10DC187A4094FAB3F4809A5C8207A0D9D175D05B46FB242BDA49069492 + +Count = 799 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405 +CT = DB24D0782A7BB0A9E224210DE1A13AF61C12AE96C6AD9561E908E52610E5B364B406954B12474717 + +Count = 800 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 00010203040506 +CT = 1D17560BBF8DC9720E2712623AC3416CB9B786F9ED7B28B39CF5835B6CFF368188AD3AFA43B7D7D4 + +Count = 801 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 0001020304050607 +CT = 4E9807774B4E14B5DB8E562CB5771A706EA1833C3300A8186BA6159681BE6FB44E20EB7E0D974B5C + +Count = 802 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708 +CT = FE628D5C6C6347FCBE258B21F93EB48EFD0463F5495A3CE5F54B301ECAAEA75F6B68A9F47162CD63 + +Count = 803 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 00010203040506070809 +CT = E9C2858529D6FEB52EF49FB5D55EA588A73C6B3DE4B7CFF6A3D0CC5DD82808A7A0B57F2728AFC610 + +Count = 804 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A +CT = FCD0420F6E34CE1DB5E14EDDE53795707D1B6AF114158879E72EDBFACA233323D39200F6831A1689 + +Count = 805 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B +CT = 0228F0ABBA1AB39FD7D86B189BA9534B76C48A4CEC0219CC53058C24293CE1F55A0FAC112C5A2521 + +Count = 806 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C +CT = 82B6B9CC4097AC5E72EA4E5224C7E73BBC136FFB7706F39493116C64EE15BECC54B69249DBA963F2 + +Count = 807 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C0D +CT = 5DC0EAA3E48E728D0AB971A3B46C5E756F0C4B5FC61F0EE2FAA4BE2E4CBE2DDA0202A0E9DD74644A + +Count = 808 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C0D0E +CT = F5E273C0B85FF629E70350553620E9B0C206469F83C8CBAC4A242711C02960EAAF62182D619CD4A0 + +Count = 809 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C0D0E0F +CT = 0F47F3B0C630FE59005875D996FA1207599A4E355001D13A22CA9D381CD7B1B557444559CA5DBB04 + +Count = 810 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 183BCB0CE30871A09209FAFF6DD831FB4A9661D4EE2E5E14CB4F2BF7BAEA40BD0F6B3B25330EB060 + +Count = 811 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 0AD4E35D0CDB5C46ED5192D71ABDA77AF7F2B11C471BBF5316ABAB983339E493147149EB211EC7D6 + +Count = 812 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = 81E22B7269ECB5CA72D6FC266ED37D15173FDB041B0633DBDBC3379A50F44A6BB16B72E25F6887A3 + +Count = 813 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = C51B01EF48E764BE4B06DF483CFD24B620050B26B19D00B64136A73249189D8068CE5F5DF0F6074D + +Count = 814 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = DD724F39ED7497B7C6A0CC3970E93EAF179390D95CA6D4F749025C3494AA4499D5D338DE0ADFD435 + +Count = 815 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = 8079ED0F7239C793F8F69CAD41F5D6F20005173D51EC9FD20C18FDE916E0B1C355E8C2C95F57532F + +Count = 816 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = D84816B878D7162DF559419BC388B19E96426BF5FA40447817B131BCC8371BE053327302FBF81BFF + +Count = 817 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = A5F050BCA298C6D36106B0209C7BBE364BC534E7485577D96C6F7EABBE692C162F6A48F49C951B1C + +Count = 818 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 236EA861E0F625AC0F7CC043F248E3168FDEBCCF790D7E97E886024C0C93A50F44428009B1FC32D8 + +Count = 819 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = BAEC69C08B733EDCD04BF5AA9A422B92FDFD301F71677841ACEFDE890BA9A36BD0E1C898A038E33B + +Count = 820 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 6FEAF790766419D1BCFE9F16690883CBF2154EA0D4FF5432C0BA26B073F0C1ED8ABC5C8E9BC36ED7 + +Count = 821 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 9351D46CF9BE44C89C49C08B2EA198AC77C8B63E02A8A0B6974CD5C34B2B62754050E4CE89DA80CA + +Count = 822 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = 86474F47C9B37AA7B81C7D3A7EF236A07D2D7E8C26334E3D22A4047D5B4A838AE796733005C79A92 + +Count = 823 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = A4ECA33C0C646BC4B7C83DE5CD87262F4668A8D573DBBE8F9282F3A06F8AC6D701D7CFAB3F33B559 + +Count = 824 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = D4C8184CC2561264CE33284BB9262C974A1D8587A8966DF068432288AB5B6FE77A81E530F4E7F666 + +Count = 825 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F1011121314151617 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 6EF9B5F223391B7C5FBFDC8FB9DBD482C0CA05BFA23A37589B9DF02B50C503A1D34A8894EF8B9A3D + +Count = 826 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = +CT = C9F98EB86B5527F8DBF63ACB57B174DEC953EF5633B156AA95EB1A27F864129C59A0593593DDF4144E + +Count = 827 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 00 +CT = 23197038165DFA2E594A323BEEB3973A568F6C9525E62C697098DC8F891581B9FAE4CAE6664A0FE7A1 + +Count = 828 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 0001 +CT = FE9D361C358BCE63BA10321C6C41CC76B5D447A706488A96240DB61E54F3AF6BF1A36B3B9844FA7B79 + +Count = 829 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102 +CT = EC81D566D4E35BC9F945B1C736650EDA43E8880C275CA5D93AA83CA958A11B8910A80FDCF75BEAD5F7 + +Count = 830 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 00010203 +CT = D189084B12BEC8FC8F96486759FE7DECCCD4936CCBE239881D46D74D0743072F832544A051B853B984 + +Count = 831 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 0001020304 +CT = A748A865EC8E77BF15434B10DC187A4094FAB3F4809A5C82932A53D510691FA60D60F33F336FF36F46 + +Count = 832 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405 +CT = DB24D0782A7BB0A9E224210DE1A13AF61C12AE96C6AD9561C682F63506450011B04745CBF35967D2A3 + +Count = 833 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 00010203040506 +CT = 1D17560BBF8DC9720E2712623AC3416CB9B786F9ED7B28B33DFBCA7AE17610E4BCB70476DF02620B2E + +Count = 834 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 0001020304050607 +CT = 4E9807774B4E14B5DB8E562CB5771A706EA1833C3300A81806B4252AF349DC11ABA60302E935F7BFF8 + +Count = 835 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708 +CT = FE628D5C6C6347FCBE258B21F93EB48EFD0463F5495A3CE5953A19582A40141903324D229A13AFA307 + +Count = 836 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 00010203040506070809 +CT = E9C2858529D6FEB52EF49FB5D55EA588A73C6B3DE4B7CFF6B79380084770FC2C03AC334D32BCA2F45A + +Count = 837 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A +CT = FCD0420F6E34CE1DB5E14EDDE53795707D1B6AF114158879A387DA9AB0E04A1EACDA8FED018086D09A + +Count = 838 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B +CT = 0228F0ABBA1AB39FD7D86B189BA9534B76C48A4CEC0219CC30F629BA9ED59F64F0096EF919DADF5E6D + +Count = 839 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C +CT = 82B6B9CC4097AC5E72EA4E5224C7E73BBC136FFB7706F3942F0373E08E3DC41F62E4A190CC0ED2C2C8 + +Count = 840 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C0D +CT = 5DC0EAA3E48E728D0AB971A3B46C5E756F0C4B5FC61F0EE25313B7FC5FD7434BF4D66E6BD9CED905AD + +Count = 841 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C0D0E +CT = F5E273C0B85FF629E70350553620E9B0C206469F83C8CBAC59C169AE65D4CEA94675E557824B41C05F + +Count = 842 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C0D0E0F +CT = 0F47F3B0C630FE59005875D996FA1207599A4E355001D13AF74054620CECA335E11229B115DA0C03C7 + +Count = 843 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 183BCB0CE30871A09209FAFF6DD831FB4A9661D4EE2E5E141C42D266AFB1F847354D2E122D325F377E + +Count = 844 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 0AD4E35D0CDB5C46ED5192D71ABDA77AF7F2B11C471BBF5394B6236A45E1A4B35B51C229099565D0E9 + +Count = 845 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = 81E22B7269ECB5CA72D6FC266ED37D15173FDB041B0633DB30E75041505E1CC042D85CB41473C51568 + +Count = 846 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = C51B01EF48E764BE4B06DF483CFD24B620050B26B19D00B673E17478DE9747A33CD222E8FC331958C8 + +Count = 847 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = DD724F39ED7497B7C6A0CC3970E93EAF179390D95CA6D4F70CC557E0A491DB9CF146B8F2853231E8BD + +Count = 848 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = 8079ED0F7239C793F8F69CAD41F5D6F20005173D51EC9FD2A943631A549ECA7C87FF1F6C5DE2E70505 + +Count = 849 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = D84816B878D7162DF559419BC388B19E96426BF5FA4044780C929EE8926F040104368055A46C912551 + +Count = 850 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = A5F050BCA298C6D36106B0209C7BBE364BC534E7485577D9E59BA17FA0F541B8E33A5AFD965737085B + +Count = 851 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 236EA861E0F625AC0F7CC043F248E3168FDEBCCF790D7E971DADC14D30809C5B6299F5F01D92A07F97 + +Count = 852 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = BAEC69C08B733EDCD04BF5AA9A422B92FDFD301F71677841180A1FC07556079B35F303E67E44DB83F9 + +Count = 853 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 6FEAF790766419D1BCFE9F16690883CBF2154EA0D4FF5432A419EC3FA38003767099D35D8271329603 + +Count = 854 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 9351D46CF9BE44C89C49C08B2EA198AC77C8B63E02A8A0B68E75353902332F6C508A6F943497898C6A + +Count = 855 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = 86474F47C9B37AA7B81C7D3A7EF236A07D2D7E8C26334E3D275D171B435E425F48D3E0351F0D862144 + +Count = 856 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = A4ECA33C0C646BC4B7C83DE5CD87262F4668A8D573DBBE8FE86408758E2DCAF2EA0B2FE362FCD4502C + +Count = 857 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = D4C8184CC2561264CE33284BB9262C974A1D8587A8966DF0A2A3F55FBB89B2D7013B60413D6B8F616B + +Count = 858 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 6EF9B5F223391B7C5FBFDC8FB9DBD482C0CA05BFA23A37583BCA965CCFF24465DE9DA502F80640FD7E + +Count = 859 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = +CT = C9F98EB86B5527F8DBF63ACB57B174DEC953EF5633B156AA95B4D7CFE1DF979E6673AB62B4E3C4EB06BD + +Count = 860 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 00 +CT = 23197038165DFA2E594A323BEEB3973A568F6C9525E62C697059583EB2475AFDC080C2C8C4B8D7826609 + +Count = 861 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 0001 +CT = FE9D361C358BCE63BA10321C6C41CC76B5D447A706488A96248546A14094D44BD3F337581EB6F2926728 + +Count = 862 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102 +CT = EC81D566D4E35BC9F945B1C736650EDA43E8880C275CA5D93A92B9520CD6A23F7E9D071B2A2485695C1E + +Count = 863 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 00010203 +CT = D189084B12BEC8FC8F96486759FE7DECCCD4936CCBE239881DA4BAAEDA517D5232777F8E6BFEE1C403ED + +Count = 864 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 0001020304 +CT = A748A865EC8E77BF15434B10DC187A4094FAB3F4809A5C829344921C0C53FB535E6EAD28DBD67082A69B + +Count = 865 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405 +CT = DB24D0782A7BB0A9E224210DE1A13AF61C12AE96C6AD9561C67AFC542B2916246378B360F80107CC397F + +Count = 866 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 00010203040506 +CT = 1D17560BBF8DC9720E2712623AC3416CB9B786F9ED7B28B33D84CE573CE333F0D8840873600E09491B15 + +Count = 867 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 0001020304050607 +CT = 4E9807774B4E14B5DB8E562CB5771A706EA1833C3300A818060160A044633CF3B82EB63794F0E7771E1C + +Count = 868 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708 +CT = FE628D5C6C6347FCBE258B21F93EB48EFD0463F5495A3CE595449D494AA386F7FDC426FAA038AE03BD2E + +Count = 869 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 00010203040506070809 +CT = E9C2858529D6FEB52EF49FB5D55EA588A73C6B3DE4B7CFF6B79479B5F8CF42D14551D9385A60A1E6105C + +Count = 870 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A +CT = FCD0420F6E34CE1DB5E14EDDE53795707D1B6AF114158879A36C2DCD81CC15723883895F20B0C12AD84D + +Count = 871 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B +CT = 0228F0ABBA1AB39FD7D86B189BA9534B76C48A4CEC0219CC308A10462A086B2B31E9654664C88025DBF7 + +Count = 872 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C +CT = 82B6B9CC4097AC5E72EA4E5224C7E73BBC136FFB7706F3942FC1D3B482F246796EED5A501526F792C20F + +Count = 873 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C0D +CT = 5DC0EAA3E48E728D0AB971A3B46C5E756F0C4B5FC61F0EE2538E581E3D8A2995ADF0E9EE95844618E43F + +Count = 874 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C0D0E +CT = F5E273C0B85FF629E70350553620E9B0C206469F83C8CBAC592A1175FD5F9CAA0B3D0422EE62B817F970 + +Count = 875 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C0D0E0F +CT = 0F47F3B0C630FE59005875D996FA1207599A4E355001D13AF7956338354623A494B1B0A70BF40BE729C2 + +Count = 876 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 183BCB0CE30871A09209FAFF6DD831FB4A9661D4EE2E5E141C38F98627FD8A4B670DF4991D165474A35D + +Count = 877 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 0AD4E35D0CDB5C46ED5192D71ABDA77AF7F2B11C471BBF539428DBB4BB50A5433D8D5F3B67987A99613C + +Count = 878 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = 81E22B7269ECB5CA72D6FC266ED37D15173FDB041B0633DB30405540F48ADF760F06E4D547FD1F70B982 + +Count = 879 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = C51B01EF48E764BE4B06DF483CFD24B620050B26B19D00B67376E718819BF87E291941B27766F89F4C0D + +Count = 880 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = DD724F39ED7497B7C6A0CC3970E93EAF179390D95CA6D4F70CAF730238789BA6C2FB2DEF0658A4AA0731 + +Count = 881 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = 8079ED0F7239C793F8F69CAD41F5D6F20005173D51EC9FD2A91BC3E67CFB63FC7E57198FBA86D80952D5 + +Count = 882 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = D84816B878D7162DF559419BC388B19E96426BF5FA4044780C5E1A248E107C1511472C32CA29BC315EC5 + +Count = 883 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = A5F050BCA298C6D36106B0209C7BBE364BC534E7485577D9E583FBFC3A21FA4C589F57A755D101DC9002 + +Count = 884 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 236EA861E0F625AC0F7CC043F248E3168FDEBCCF790D7E971D4B35D507E92F9F2CE9947E1A2186318855 + +Count = 885 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = BAEC69C08B733EDCD04BF5AA9A422B92FDFD301F7167784118916E571E6FCF54BD4D22BF266B563111FD + +Count = 886 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 6FEAF790766419D1BCFE9F16690883CBF2154EA0D4FF5432A4B2CD54B3F84D365E45DA6457E9FA3249DB + +Count = 887 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 9351D46CF9BE44C89C49C08B2EA198AC77C8B63E02A8A0B68E53CEB71CFA042371AB3BE526C51D40D4AF + +Count = 888 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = 86474F47C9B37AA7B81C7D3A7EF236A07D2D7E8C26334E3D27041F3A4A0C5FFD2A8DF82E3176071B6F37 + +Count = 889 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = A4ECA33C0C646BC4B7C83DE5CD87262F4668A8D573DBBE8FE8C86A2829809635BF2A7BC57DE3CBDB123C + +Count = 890 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = D4C8184CC2561264CE33284BB9262C974A1D8587A8966DF0A2C999FF341286243E4389FB66FF901228EB + +Count = 891 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 6EF9B5F223391B7C5FBFDC8FB9DBD482C0CA05BFA23A37583B189B47E914FCCDE044EEED62D452707690 + +Count = 892 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = +CT = C9F98EB86B5527F8DBF63ACB57B174DEC953EF5633B156AA95B410BACA38479376CF47F6A864D1607EBF2B + +Count = 893 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 00 +CT = 23197038165DFA2E594A323BEEB3973A568F6C9525E62C697059647CBFC3EB77BF1D7454E7AE84DF49ABA0 + +Count = 894 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 0001 +CT = FE9D361C358BCE63BA10321C6C41CC76B5D447A706488A96248520D859191AB2D491C056EE2B6F732445BB + +Count = 895 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102 +CT = EC81D566D4E35BC9F945B1C736650EDA43E8880C275CA5D93A924C6E5097C1D28E0670625764D9D24B940A + +Count = 896 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 00010203 +CT = D189084B12BEC8FC8F96486759FE7DECCCD4936CCBE239881DA4A8CBCBA6211FB13334C3A9BFAD8FDA3253 + +Count = 897 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 0001020304 +CT = A748A865EC8E77BF15434B10DC187A4094FAB3F4809A5C829344E0EA2CF9A3CF91D4916EB7DA4E9B3746D0 + +Count = 898 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405 +CT = DB24D0782A7BB0A9E224210DE1A13AF61C12AE96C6AD9561C67A63193418BC2692898AB17BE90B840F2D19 + +Count = 899 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 00010203040506 +CT = 1D17560BBF8DC9720E2712623AC3416CB9B786F9ED7B28B33D84BEAFB578C59D7690B880322A10CB02B5A4 + +Count = 900 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 0001020304050607 +CT = 4E9807774B4E14B5DB8E562CB5771A706EA1833C3300A8180601D2DA291A44C8A07A576F66BAA6CF857B56 + +Count = 901 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708 +CT = FE628D5C6C6347FCBE258B21F93EB48EFD0463F5495A3CE595449E90110F447C180CB4882E0924BABD5404 + +Count = 902 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 00010203040506070809 +CT = E9C2858529D6FEB52EF49FB5D55EA588A73C6B3DE4B7CFF6B7942AFAC7F7222077EA117580341200676300 + +Count = 903 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A +CT = FCD0420F6E34CE1DB5E14EDDE53795707D1B6AF114158879A36CC952770AD21DFB305A54EDB13AF61E3C09 + +Count = 904 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B +CT = 0228F0ABBA1AB39FD7D86B189BA9534B76C48A4CEC0219CC308AA2083BA23C813B82F4BC58628FF983CC12 + +Count = 905 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C +CT = 82B6B9CC4097AC5E72EA4E5224C7E73BBC136FFB7706F3942FC1C08A85E511FFCE96970CCA7B66F07B4D77 + +Count = 906 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C0D +CT = 5DC0EAA3E48E728D0AB971A3B46C5E756F0C4B5FC61F0EE2538E6FB133959EFA6FDAB1A3AB1F9C1D8930CA + +Count = 907 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C0D0E +CT = F5E273C0B85FF629E70350553620E9B0C206469F83C8CBAC592A28A86CBF40F1C53A7D0350949C90F6AF44 + +Count = 908 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C0D0E0F +CT = 0F47F3B0C630FE59005875D996FA1207599A4E355001D13AF795C90B5EC84619231BB284DFBCDF2347EF41 + +Count = 909 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 183BCB0CE30871A09209FAFF6DD831FB4A9661D4EE2E5E141C38E209100082EC954407A0E17BBF7EE6FB31 + +Count = 910 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 0AD4E35D0CDB5C46ED5192D71ABDA77AF7F2B11C471BBF5394285DE74EE9F55AB4450738F5F1F853BA7C69 + +Count = 911 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = 81E22B7269ECB5CA72D6FC266ED37D15173FDB041B0633DB3040CC2E99B90B9ACF97BE0256C0CB5D972604 + +Count = 912 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = C51B01EF48E764BE4B06DF483CFD24B620050B26B19D00B67376B56B698911F82C1D24E04AF120846C6466 + +Count = 913 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = DD724F39ED7497B7C6A0CC3970E93EAF179390D95CA6D4F70CAF28023912D8965DF61C6F0514DD2CA2F085 + +Count = 914 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = 8079ED0F7239C793F8F69CAD41F5D6F20005173D51EC9FD2A91B7C92939AE5A4B659DA92D0F66DB20E5C40 + +Count = 915 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = D84816B878D7162DF559419BC388B19E96426BF5FA4044780C5E506A52F307AD101F2FB598C6A022904C85 + +Count = 916 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = A5F050BCA298C6D36106B0209C7BBE364BC534E7485577D9E58337B4559EAF36B992991F51D571A183AA31 + +Count = 917 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 236EA861E0F625AC0F7CC043F248E3168FDEBCCF790D7E971D4B16971040815372B40C46F0CEB6F5C42476 + +Count = 918 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = BAEC69C08B733EDCD04BF5AA9A422B92FDFD301F716778411891D18C1496B448440C9A3A1404C5FD1CDED3 + +Count = 919 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 6FEAF790766419D1BCFE9F16690883CBF2154EA0D4FF5432A4B243CDCFB826D2F53A8200E17EDB083BD466 + +Count = 920 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 9351D46CF9BE44C89C49C08B2EA198AC77C8B63E02A8A0B68E53E99653D0C19B170F2BE5399AD328D42592 + +Count = 921 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = 86474F47C9B37AA7B81C7D3A7EF236A07D2D7E8C26334E3D27043CFBC7AF33F9C8589E56FDDCFD2CC02C32 + +Count = 922 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = A4ECA33C0C646BC4B7C83DE5CD87262F4668A8D573DBBE8FE8C8A853C4B641E611E9E0695F52EBEE5377BF + +Count = 923 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = D4C8184CC2561264CE33284BB9262C974A1D8587A8966DF0A2C97386392A3DE63A06D561724DB898BB981C + +Count = 924 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 6EF9B5F223391B7C5FBFDC8FB9DBD482C0CA05BFA23A37583B186C8366015E65B9BFCEEA22EDDCFB5E3267 + +Count = 925 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = +CT = C9F98EB86B5527F8DBF63ACB57B174DEC953EF5633B156AA95B4100B31D263C4A1D84EB3BBBE2AB130720ADF + +Count = 926 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 00 +CT = 23197038165DFA2E594A323BEEB3973A568F6C9525E62C697059647D003176B6840B13E31E4F12E0ADD96B0D + +Count = 927 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 0001 +CT = FE9D361C358BCE63BA10321C6C41CC76B5D447A706488A96248520493C3CADD9D1DAB9CC47F72DFD09FF44A0 + +Count = 928 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102 +CT = EC81D566D4E35BC9F945B1C736650EDA43E8880C275CA5D93A924C13DCA84BCB74CB3D4A581D41160B33CCF8 + +Count = 929 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 00010203 +CT = D189084B12BEC8FC8F96486759FE7DECCCD4936CCBE239881DA4A8767135C8B0A98F97C74996003B61935908 + +Count = 930 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 0001020304 +CT = A748A865EC8E77BF15434B10DC187A4094FAB3F4809A5C829344E091F038C5855B2D0B8625AD0D1068031F0A + +Count = 931 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405 +CT = DB24D0782A7BB0A9E224210DE1A13AF61C12AE96C6AD9561C67A6310B3FBFAEEE06CD9200D3B04A10E9BD3EE + +Count = 932 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 00010203040506 +CT = 1D17560BBF8DC9720E2712623AC3416CB9B786F9ED7B28B33D84BE01D7262C92538F2A35AB898CEB201B5212 + +Count = 933 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 0001020304050607 +CT = 4E9807774B4E14B5DB8E562CB5771A706EA1833C3300A8180601D21DAE15C244471209AD06E764184D2AC94F + +Count = 934 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708 +CT = FE628D5C6C6347FCBE258B21F93EB48EFD0463F5495A3CE595449E6D94BE3860910D181E829D59C1A64712F0 + +Count = 935 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 00010203040506070809 +CT = E9C2858529D6FEB52EF49FB5D55EA588A73C6B3DE4B7CFF6B7942ADBC877A619EB113F0C7CA858205E19D360 + +Count = 936 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A +CT = FCD0420F6E34CE1DB5E14EDDE53795707D1B6AF114158879A36CC910C366A032C32380784234E4A68D4AA484 + +Count = 937 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B +CT = 0228F0ABBA1AB39FD7D86B189BA9534B76C48A4CEC0219CC308AA2806F94B145376D3BB1EAF45A24238B8B56 + +Count = 938 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C +CT = 82B6B9CC4097AC5E72EA4E5224C7E73BBC136FFB7706F3942FC1C001202D0E2EE021A41536A5AB25435BDC74 + +Count = 939 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C0D +CT = 5DC0EAA3E48E728D0AB971A3B46C5E756F0C4B5FC61F0EE2538E6F1BAB0DEABD07ADBA7B88D8400EE5308B7C + +Count = 940 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C0D0E +CT = F5E273C0B85FF629E70350553620E9B0C206469F83C8CBAC592A2884814C846E16F45CF93BFCF6E507540BDE + +Count = 941 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C0D0E0F +CT = 0F47F3B0C630FE59005875D996FA1207599A4E355001D13AF795C975F64DBCD3D7A2F182F04150D30C560464 + +Count = 942 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 183BCB0CE30871A09209FAFF6DD831FB4A9661D4EE2E5E141C38E2DCBDB73FE899AC777A3E0E2CF84909829E + +Count = 943 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 0AD4E35D0CDB5C46ED5192D71ABDA77AF7F2B11C471BBF5394285D8B0143F907FF3ADC0C6E4BD58051A7F31C + +Count = 944 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = 81E22B7269ECB5CA72D6FC266ED37D15173FDB041B0633DB3040CC965DC41AC6EA44FE58DC7D5919FC76C68F + +Count = 945 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = C51B01EF48E764BE4B06DF483CFD24B620050B26B19D00B67376B5C4972C2EDB71B7833545FD0DE74ACB6395 + +Count = 946 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = DD724F39ED7497B7C6A0CC3970E93EAF179390D95CA6D4F70CAF28559615D12E70EE9491DBD4C3DFCBCBCEF6 + +Count = 947 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = 8079ED0F7239C793F8F69CAD41F5D6F20005173D51EC9FD2A91B7C16E6BDECE8EC22C62A01BE06F6ADA586F8 + +Count = 948 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = D84816B878D7162DF559419BC388B19E96426BF5FA4044780C5E502C71E0E7D9B64BB1EB42867896D6317E16 + +Count = 949 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = A5F050BCA298C6D36106B0209C7BBE364BC534E7485577D9E583378852C4B86E8F19994A186BB761848D2395 + +Count = 950 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 236EA861E0F625AC0F7CC043F248E3168FDEBCCF790D7E971D4B16D82F2C2915A09ABD6895D36C5E55638D7C + +Count = 951 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = BAEC69C08B733EDCD04BF5AA9A422B92FDFD301F716778411891D1B6E1301CD1DEE35B33E7CE96DCEA5C1748 + +Count = 952 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 6FEAF790766419D1BCFE9F16690883CBF2154EA0D4FF5432A4B24329944F56C2A391F0D9D736759F1343E5A0 + +Count = 953 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 9351D46CF9BE44C89C49C08B2EA198AC77C8B63E02A8A0B68E53E9EFF3DE3AE889617D0223C2C4063D4250B3 + +Count = 954 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = 86474F47C9B37AA7B81C7D3A7EF236A07D2D7E8C26334E3D27043CFA5CDE45D448B231F96C9371D27B63E96C + +Count = 955 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = A4ECA33C0C646BC4B7C83DE5CD87262F4668A8D573DBBE8FE8C8A89E4788F0B11FDFAF5CE6C805AE40F2295A + +Count = 956 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = D4C8184CC2561264CE33284BB9262C974A1D8587A8966DF0A2C973EC2601285507FA4FA4B54AD0087DD1831C + +Count = 957 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 6EF9B5F223391B7C5FBFDC8FB9DBD482C0CA05BFA23A37583B186C393555DACCDEA294479E13DA9180CB2A6E + +Count = 958 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = +CT = C9F98EB86B5527F8DBF63ACB57B174DEC953EF5633B156AA95B4100B9F48939AEDDA8060DFD0AA340E603FCBC7 + +Count = 959 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 00 +CT = 23197038165DFA2E594A323BEEB3973A568F6C9525E62C697059647D8CDC8E64F98A5DFBCA7F4AF376D7B5DC13 + +Count = 960 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 0001 +CT = FE9D361C358BCE63BA10321C6C41CC76B5D447A706488A96248520499007788476F56704C0D2531FBBD47EB4EC + +Count = 961 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102 +CT = EC81D566D4E35BC9F945B1C736650EDA43E8880C275CA5D93A924C13DA2AAC6A069824C79790A4F0DE49FA7508 + +Count = 962 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 00010203 +CT = D189084B12BEC8FC8F96486759FE7DECCCD4936CCBE239881DA4A8767267DBE7E03A00B196A82931242EED379A + +Count = 963 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 0001020304 +CT = A748A865EC8E77BF15434B10DC187A4094FAB3F4809A5C829344E09138EDD78A5AC736B237F13A73DD881E6894 + +Count = 964 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405 +CT = DB24D0782A7BB0A9E224210DE1A13AF61C12AE96C6AD9561C67A631063E91F53F99B5D07BF05C2EE47D4628A05 + +Count = 965 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 00010203040506 +CT = 1D17560BBF8DC9720E2712623AC3416CB9B786F9ED7B28B33D84BE01FDA042737073304C9D646F336B931957E5 + +Count = 966 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 0001020304050607 +CT = 4E9807774B4E14B5DB8E562CB5771A706EA1833C3300A8180601D21DDBA124FA85F8C4DAA22D4552B4EA3BA22A + +Count = 967 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708 +CT = FE628D5C6C6347FCBE258B21F93EB48EFD0463F5495A3CE595449E6DB15D5AB8365275274C6E6802B151AFF417 + +Count = 968 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 00010203040506070809 +CT = E9C2858529D6FEB52EF49FB5D55EA588A73C6B3DE4B7CFF6B7942ADB7CE1D1286D740DC8179F71EF1D29CEBE5B + +Count = 969 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A +CT = FCD0420F6E34CE1DB5E14EDDE53795707D1B6AF114158879A36CC91003ED059C1A23B998DB933B7C0A6FA2F053 + +Count = 970 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B +CT = 0228F0ABBA1AB39FD7D86B189BA9534B76C48A4CEC0219CC308AA280EA63E0663CC9F35D4CA2A1B4E45083779C + +Count = 971 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C +CT = 82B6B9CC4097AC5E72EA4E5224C7E73BBC136FFB7706F3942FC1C0018EB0E22AA31B7D5CE3E50E0A6605B56D3E + +Count = 972 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C0D +CT = 5DC0EAA3E48E728D0AB971A3B46C5E756F0C4B5FC61F0EE2538E6F1BD793706EB6EC581A90A1684B33D65F2979 + +Count = 973 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C0D0E +CT = F5E273C0B85FF629E70350553620E9B0C206469F83C8CBAC592A2884E65834BD33AA16F191503349FBC711960E + +Count = 974 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C0D0E0F +CT = 0F47F3B0C630FE59005875D996FA1207599A4E355001D13AF795C975706D6F7D2F013FEDAFCE582348A18F40B0 + +Count = 975 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 183BCB0CE30871A09209FAFF6DD831FB4A9661D4EE2E5E141C38E2DC6D80618A2692594EE4979822074AE07AB9 + +Count = 976 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 0AD4E35D0CDB5C46ED5192D71ABDA77AF7F2B11C471BBF5394285D8BF7C28B102E7E9F6017A2B4FF6EF22AE15D + +Count = 977 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = 81E22B7269ECB5CA72D6FC266ED37D15173FDB041B0633DB3040CC9620C308532C650B79AD634CA79256FAB213 + +Count = 978 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = C51B01EF48E764BE4B06DF483CFD24B620050B26B19D00B67376B5C4642A14193CCF06FBE882A5F58F6D270E7B + +Count = 979 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = DD724F39ED7497B7C6A0CC3970E93EAF179390D95CA6D4F70CAF28554162973BDA725B90A3DB8F3E472EF9E925 + +Count = 980 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = 8079ED0F7239C793F8F69CAD41F5D6F20005173D51EC9FD2A91B7C16C2417E827DA0645AD8E063DEA63C2765AF + +Count = 981 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = D84816B878D7162DF559419BC388B19E96426BF5FA4044780C5E502C44AFEEADD697BDC32FDD9A9CF20EA50575 + +Count = 982 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = A5F050BCA298C6D36106B0209C7BBE364BC534E7485577D9E58337884F56D501947DFDC2A8DC1395528113EC70 + +Count = 983 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 236EA861E0F625AC0F7CC043F248E3168FDEBCCF790D7E971D4B16D8092B49CA34B25DD29C7C4E9D9E9A6FA260 + +Count = 984 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = BAEC69C08B733EDCD04BF5AA9A422B92FDFD301F716778411891D1B6B97832563E076F75D0F1F286CA40E7B0FE + +Count = 985 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 6FEAF790766419D1BCFE9F16690883CBF2154EA0D4FF5432A4B24329D75D25D62B0F3D05E34F853F77B05B9845 + +Count = 986 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 9351D46CF9BE44C89C49C08B2EA198AC77C8B63E02A8A0B68E53E9EF6BD52E4CFA1E3D496C2226EBE182D4A949 + +Count = 987 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = 86474F47C9B37AA7B81C7D3A7EF236A07D2D7E8C26334E3D27043CFA28727E0C130395D7AE3B3C0DACBA40C9E3 + +Count = 988 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = A4ECA33C0C646BC4B7C83DE5CD87262F4668A8D573DBBE8FE8C8A89E4DA9A8C6DB93FADB624A7692C14D902CD3 + +Count = 989 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = D4C8184CC2561264CE33284BB9262C974A1D8587A8966DF0A2C973EC7997C5B4B258E03ECBAB4540474C64BE69 + +Count = 990 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 6EF9B5F223391B7C5FBFDC8FB9DBD482C0CA05BFA23A37583B186C399900CFCDB5375348C989CA4F5563B6AB98 + +Count = 991 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = +CT = C9F98EB86B5527F8DBF63ACB57B174DEC953EF5633B156AA95B4100B9F3E4C3D389DE1B4EF8DF215C8AEFFB3D15B + +Count = 992 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 00 +CT = 23197038165DFA2E594A323BEEB3973A568F6C9525E62C697059647D8C2211C2CD0DE03BF9792240491098C82A24 + +Count = 993 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 0001 +CT = FE9D361C358BCE63BA10321C6C41CC76B5D447A706488A962485204990B851E239A4ADE91ECCE694F7E707E287C6 + +Count = 994 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102 +CT = EC81D566D4E35BC9F945B1C736650EDA43E8880C275CA5D93A924C13DA32C34017E9967D98F817EE86822A2D3088 + +Count = 995 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 00010203 +CT = D189084B12BEC8FC8F96486759FE7DECCCD4936CCBE239881DA4A8767221A799A40E2196B49AFFF9B02C2D7B7994 + +Count = 996 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 0001020304 +CT = A748A865EC8E77BF15434B10DC187A4094FAB3F4809A5C829344E0913815F5F4CCDE746AF7E60D67823C727D7EE5 + +Count = 997 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405 +CT = DB24D0782A7BB0A9E224210DE1A13AF61C12AE96C6AD9561C67A631063A270BDEB13DB66AF3C023695EAE4EB661C + +Count = 998 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 00010203040506 +CT = 1D17560BBF8DC9720E2712623AC3416CB9B786F9ED7B28B33D84BE01FD335E2BC966298F7273D954E941B7FABAAA + +Count = 999 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 0001020304050607 +CT = 4E9807774B4E14B5DB8E562CB5771A706EA1833C3300A8180601D21DDBF74EC67CC256A6AE20C86557977B2B8D41 + +Count = 1000 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708 +CT = FE628D5C6C6347FCBE258B21F93EB48EFD0463F5495A3CE595449E6DB19AC229446946A2D0F657BFD013073BC1C7 + +Count = 1001 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 00010203040506070809 +CT = E9C2858529D6FEB52EF49FB5D55EA588A73C6B3DE4B7CFF6B7942ADB7C07C91585DA708AE1BD752B1FAB584C0D98 + +Count = 1002 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A +CT = FCD0420F6E34CE1DB5E14EDDE53795707D1B6AF114158879A36CC91003DD075FFC1E373F9F18AA200137EBD460D5 + +Count = 1003 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B +CT = 0228F0ABBA1AB39FD7D86B189BA9534B76C48A4CEC0219CC308AA280EAA22BBF2C6D3ABA10F411E296D95BB42B3E + +Count = 1004 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C +CT = 82B6B9CC4097AC5E72EA4E5224C7E73BBC136FFB7706F3942FC1C0018E2C8D7198300109BC2F19E994746B95EB57 + +Count = 1005 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C0D +CT = 5DC0EAA3E48E728D0AB971A3B46C5E756F0C4B5FC61F0EE2538E6F1BD71745D145E60A0376CBB4C6BB20F48CBCA2 + +Count = 1006 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C0D0E +CT = F5E273C0B85FF629E70350553620E9B0C206469F83C8CBAC592A2884E6E6964401D883D7C629FCB8F6CB6A2B48FC + +Count = 1007 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C0D0E0F +CT = 0F47F3B0C630FE59005875D996FA1207599A4E355001D13AF795C975701A29AE43883DE845A1D28920C8AD23A363 + +Count = 1008 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 183BCB0CE30871A09209FAFF6DD831FB4A9661D4EE2E5E141C38E2DC6DE5766EE570C150D9B8AA36AB17D3F03352 + +Count = 1009 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 0AD4E35D0CDB5C46ED5192D71ABDA77AF7F2B11C471BBF5394285D8BF7C76B2DDA9149C19C8AC5FEC3DAC51D3DC2 + +Count = 1010 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = 81E22B7269ECB5CA72D6FC266ED37D15173FDB041B0633DB3040CC962082578727343DC313B9C28FF863A6738616 + +Count = 1011 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = C51B01EF48E764BE4B06DF483CFD24B620050B26B19D00B67376B5C4641F721FB5E95B8B7D92C687B19A20B6247B + +Count = 1012 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = DD724F39ED7497B7C6A0CC3970E93EAF179390D95CA6D4F70CAF28554121CB718D1DCF05E3C0885EADE74B0C889A + +Count = 1013 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = 8079ED0F7239C793F8F69CAD41F5D6F20005173D51EC9FD2A91B7C16C2722606C1B929878E3CFFE9AFE60AD05477 + +Count = 1014 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = D84816B878D7162DF559419BC388B19E96426BF5FA4044780C5E502C446932C9AC398E2CDF2BADBF6B44DE97B30B + +Count = 1015 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = A5F050BCA298C6D36106B0209C7BBE364BC534E7485577D9E58337884FC9892BEE89794C898048AC4FE8BF789DA3 + +Count = 1016 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 236EA861E0F625AC0F7CC043F248E3168FDEBCCF790D7E971D4B16D809FEDEC6AD206EE6B7D3C806B8BF5E82044A + +Count = 1017 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = BAEC69C08B733EDCD04BF5AA9A422B92FDFD301F716778411891D1B6B9060416870014C827EA7BDB3C00FADD63E1 + +Count = 1018 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 6FEAF790766419D1BCFE9F16690883CBF2154EA0D4FF5432A4B24329D79D80E793E2751842620E14D27FDAD3286D + +Count = 1019 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 9351D46CF9BE44C89C49C08B2EA198AC77C8B63E02A8A0B68E53E9EF6B72269D5C79DA42035BCDCFBFB0BD1F927D + +Count = 1020 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = 86474F47C9B37AA7B81C7D3A7EF236A07D2D7E8C26334E3D27043CFA28ACACBE9497A65A195EC890BA44486C8166 + +Count = 1021 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = A4ECA33C0C646BC4B7C83DE5CD87262F4668A8D573DBBE8FE8C8A89E4D384E9F2F05CB923956547153164623214F + +Count = 1022 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = D4C8184CC2561264CE33284BB9262C974A1D8587A8966DF0A2C973EC79124838CD94297BEC7DB8EC08B8CC944298 + +Count = 1023 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 6EF9B5F223391B7C5FBFDC8FB9DBD482C0CA05BFA23A37583B186C39997DB1DB4201A919D82E2DC9BFA9390BB8D8 + +Count = 1024 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = +CT = C9F98EB86B5527F8DBF63ACB57B174DEC953EF5633B156AA95B4100B9F3E225D63F33EACF403232EEBC877504BA945 + +Count = 1025 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 00 +CT = 23197038165DFA2E594A323BEEB3973A568F6C9525E62C697059647D8C2256A3B0E5C269BEDD5428AF7BADE56C1BFB + +Count = 1026 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 0001 +CT = FE9D361C358BCE63BA10321C6C41CC76B5D447A706488A962485204990B82BEA8ED355B2010004E70B9F073A1A9A1C + +Count = 1027 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102 +CT = EC81D566D4E35BC9F945B1C736650EDA43E8880C275CA5D93A924C13DA320699AA1EFBBEDEA5C015EB60438BF55BD4 + +Count = 1028 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 00010203 +CT = D189084B12BEC8FC8F96486759FE7DECCCD4936CCBE239881DA4A8767221DAC6EBC711A9AA0FCD4E6F6FF3DF67CA0E + +Count = 1029 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 0001020304 +CT = A748A865EC8E77BF15434B10DC187A4094FAB3F4809A5C829344E0913815DBA20979A65A25A4BC056103DF3325605D + +Count = 1030 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405 +CT = DB24D0782A7BB0A9E224210DE1A13AF61C12AE96C6AD9561C67A631063A2E1749214FB99E52E98EF6D55746C2FE209 + +Count = 1031 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 00010203040506 +CT = 1D17560BBF8DC9720E2712623AC3416CB9B786F9ED7B28B33D84BE01FD338C8DA6F565A362793AC146F239B3E6079B + +Count = 1032 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 0001020304050607 +CT = 4E9807774B4E14B5DB8E562CB5771A706EA1833C3300A8180601D21DDBF76DB9E4A7B2E664CD26D4E76A60B78BCFAB + +Count = 1033 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708 +CT = FE628D5C6C6347FCBE258B21F93EB48EFD0463F5495A3CE595449E6DB19A9EB7D0249D7BB37AAB6038D6853F77A386 + +Count = 1034 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 00010203040506070809 +CT = E9C2858529D6FEB52EF49FB5D55EA588A73C6B3DE4B7CFF6B7942ADB7C072FAFADB6E4CFF1B3B37A155B276E391F02 + +Count = 1035 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A +CT = FCD0420F6E34CE1DB5E14EDDE53795707D1B6AF114158879A36CC91003DD4206FFEDC11EEBC364ADB53CA143E5AF78 + +Count = 1036 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B +CT = 0228F0ABBA1AB39FD7D86B189BA9534B76C48A4CEC0219CC308AA280EAA2A7FB55CA8DFDB00E0543A7CC87341C4AA5 + +Count = 1037 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C +CT = 82B6B9CC4097AC5E72EA4E5224C7E73BBC136FFB7706F3942FC1C0018E2C92ECA8FF12367E079FE28EAD0EF0F6FF78 + +Count = 1038 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C0D +CT = 5DC0EAA3E48E728D0AB971A3B46C5E756F0C4B5FC61F0EE2538E6F1BD7176BE279083445350C4DAD1418C818962934 + +Count = 1039 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C0D0E +CT = F5E273C0B85FF629E70350553620E9B0C206469F83C8CBAC592A2884E6E67CAA6716E46D26EBF628A7A45A333EC745 + +Count = 1040 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C0D0E0F +CT = 0F47F3B0C630FE59005875D996FA1207599A4E355001D13AF795C975701A4C0A42D6CDE3E7591DEED47B5D37193697 + +Count = 1041 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 183BCB0CE30871A09209FAFF6DD831FB4A9661D4EE2E5E141C38E2DC6DE54D199DBA21411E4EF9695F369E37C02E8D + +Count = 1042 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 0AD4E35D0CDB5C46ED5192D71ABDA77AF7F2B11C471BBF5394285D8BF7C70DF31549EB3D1324560FED36C91A05BB10 + +Count = 1043 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = 81E22B7269ECB5CA72D6FC266ED37D15173FDB041B0633DB3040CC9620829FA8C0F2D0C794D9F2E9AE415617013091 + +Count = 1044 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = C51B01EF48E764BE4B06DF483CFD24B620050B26B19D00B67376B5C4641F7DB89DBA4D144147BD2E94FBB5A496092A + +Count = 1045 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = DD724F39ED7497B7C6A0CC3970E93EAF179390D95CA6D4F70CAF2855412113D048352141034AA42279987863E766FC + +Count = 1046 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = 8079ED0F7239C793F8F69CAD41F5D6F20005173D51EC9FD2A91B7C16C27254249819406824E775526930282883169E + +Count = 1047 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = D84816B878D7162DF559419BC388B19E96426BF5FA4044780C5E502C4469B5781D6A6FC6F099C0E2A255A151317FAE + +Count = 1048 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = A5F050BCA298C6D36106B0209C7BBE364BC534E7485577D9E58337884FC99CDB6FD2BC10616D2FD2D2E638B2C52160 + +Count = 1049 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 236EA861E0F625AC0F7CC043F248E3168FDEBCCF790D7E971D4B16D809FE6E6C7936D74CE656DEFFDC45D9B0D61278 + +Count = 1050 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = BAEC69C08B733EDCD04BF5AA9A422B92FDFD301F716778411891D1B6B9063A212C81D87FB4E073C2E824FE3F3F2A64 + +Count = 1051 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 6FEAF790766419D1BCFE9F16690883CBF2154EA0D4FF5432A4B24329D79DCCB68C9AF906D4E6C98269A8AEE0E3C8FD + +Count = 1052 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 9351D46CF9BE44C89C49C08B2EA198AC77C8B63E02A8A0B68E53E9EF6B725CC7FBBBBCE7A4632D49BA3D0EF4D481DA + +Count = 1053 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = 86474F47C9B37AA7B81C7D3A7EF236A07D2D7E8C26334E3D27043CFA28ACC16E6B974DE65A72AF78DFE1213896A6A5 + +Count = 1054 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = A4ECA33C0C646BC4B7C83DE5CD87262F4668A8D573DBBE8FE8C8A89E4D383B37294D0C856FA466FA6B36F6A1A431F0 + +Count = 1055 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = D4C8184CC2561264CE33284BB9262C974A1D8587A8966DF0A2C973EC7912E6DF1121421948B14017ED93DC7F5459FE + +Count = 1056 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 6EF9B5F223391B7C5FBFDC8FB9DBD482C0CA05BFA23A37583B186C39997D055AA94B5E468CE63DCD44F541DBD53BF7 + +Count = 1057 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = +CT = C9F98EB86B5527F8DBF63ACB57B174DEC953EF5633B156AA95B4100B9F3E22E627D5F27F10BB11DD268E4CA0F3EF8F1F + +Count = 1058 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 00 +CT = 23197038165DFA2E594A323BEEB3973A568F6C9525E62C697059647D8C2256B7AAB5DA2D2C00FE4C61B7D7E1A0EEB4D2 + +Count = 1059 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 0001 +CT = FE9D361C358BCE63BA10321C6C41CC76B5D447A706488A962485204990B82B505232C898672CA796CE4BE13406D95F36 + +Count = 1060 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102 +CT = EC81D566D4E35BC9F945B1C736650EDA43E8880C275CA5D93A924C13DA320602F0EEC7EAADEC7F14BCFE33584C7A9C33 + +Count = 1061 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 00010203 +CT = D189084B12BEC8FC8F96486759FE7DECCCD4936CCBE239881DA4A8767221DAF247C6CDCBF48AEFA2BB40DF12B43282BB + +Count = 1062 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 0001020304 +CT = A748A865EC8E77BF15434B10DC187A4094FAB3F4809A5C829344E0913815DB261254FDE44786D1E0AC0B85C692733B5A + +Count = 1063 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405 +CT = DB24D0782A7BB0A9E224210DE1A13AF61C12AE96C6AD9561C67A631063A2E19430110413609C20EEAE9ACD1B4D00D345 + +Count = 1064 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 00010203040506 +CT = 1D17560BBF8DC9720E2712623AC3416CB9B786F9ED7B28B33D84BE01FD338C41A05851554FB3B05453374A28F18CA714 + +Count = 1065 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 0001020304050607 +CT = 4E9807774B4E14B5DB8E562CB5771A706EA1833C3300A8180601D21DDBF76DED0B8840AED7AC6A1B356D2A850EA7EE62 + +Count = 1066 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708 +CT = FE628D5C6C6347FCBE258B21F93EB48EFD0463F5495A3CE595449E6DB19A9E44513023DE104FD23765125C9B07EEB165 + +Count = 1067 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 00010203040506070809 +CT = E9C2858529D6FEB52EF49FB5D55EA588A73C6B3DE4B7CFF6B7942ADB7C072FDFB6E624875209FC1F1AA766A1F3167ED6 + +Count = 1068 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A +CT = FCD0420F6E34CE1DB5E14EDDE53795707D1B6AF114158879A36CC91003DD421BEBDFB45734B39D7F5410D844C2CA0F28 + +Count = 1069 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B +CT = 0228F0ABBA1AB39FD7D86B189BA9534B76C48A4CEC0219CC308AA280EAA2A7B45E3FE76D37CFBFC6E1ADF13B4D12769F + +Count = 1070 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C +CT = 82B6B9CC4097AC5E72EA4E5224C7E73BBC136FFB7706F3942FC1C0018E2C927742A49E33CEF5E95359840BE33402B23C + +Count = 1071 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C0D +CT = 5DC0EAA3E48E728D0AB971A3B46C5E756F0C4B5FC61F0EE2538E6F1BD7176B8B6FD00CBE2F2BF4EDC2B149905FCA0260 + +Count = 1072 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C0D0E +CT = F5E273C0B85FF629E70350553620E9B0C206469F83C8CBAC592A2884E6E67CA8DCE12BD377F770ACBB8CB38576B2C839 + +Count = 1073 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C0D0E0F +CT = 0F47F3B0C630FE59005875D996FA1207599A4E355001D13AF795C975701A4CD6DCEA25311A9960BFBE8CBD76D1F266C1 + +Count = 1074 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C0D0E0F10 +CT = 183BCB0CE30871A09209FAFF6DD831FB4A9661D4EE2E5E141C38E2DC6DE54DB89F00DF2FBC59FB5B37717E31EAD6B8D5 + +Count = 1075 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C0D0E0F1011 +CT = 0AD4E35D0CDB5C46ED5192D71ABDA77AF7F2B11C471BBF5394285D8BF7C70DAC60387EB03694EC34D2E694F42AAE9840 + +Count = 1076 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C0D0E0F101112 +CT = 81E22B7269ECB5CA72D6FC266ED37D15173FDB041B0633DB3040CC9620829F35A47A3D32337F3C2BBA61067460478857 + +Count = 1077 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C0D0E0F10111213 +CT = C51B01EF48E764BE4B06DF483CFD24B620050B26B19D00B67376B5C4641F7D041AAB72249613C4919D6205C6F7C1BB2A + +Count = 1078 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C0D0E0F1011121314 +CT = DD724F39ED7497B7C6A0CC3970E93EAF179390D95CA6D4F70CAF28554121131E17ED438E81B0C576F021FE612CCCABFE + +Count = 1079 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C0D0E0F101112131415 +CT = 8079ED0F7239C793F8F69CAD41F5D6F20005173D51EC9FD2A91B7C16C2725473882A01E9FA10C71E44CFCF2C175E8164 + +Count = 1080 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C0D0E0F10111213141516 +CT = D84816B878D7162DF559419BC388B19E96426BF5FA4044780C5E502C4469B5CB91DB73D585EF87464A5661FFCAF1C5F5 + +Count = 1081 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C0D0E0F1011121314151617 +CT = A5F050BCA298C6D36106B0209C7BBE364BC534E7485577D9E58337884FC99C0BAE01800E0952827006097847213C3766 + +Count = 1082 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C0D0E0F101112131415161718 +CT = 236EA861E0F625AC0F7CC043F248E3168FDEBCCF790D7E971D4B16D809FE6EDBB100FC8CBE8473AB3C2D4CE6C2A37627 + +Count = 1083 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 +CT = BAEC69C08B733EDCD04BF5AA9A422B92FDFD301F716778411891D1B6B9063A06F54C239C0AD9B98F6C9189008BB6B4CB + +Count = 1084 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A +CT = 6FEAF790766419D1BCFE9F16690883CBF2154EA0D4FF5432A4B24329D79DCC239168FC2FFDCEC2A6459B905D62BBAB87 + +Count = 1085 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B +CT = 9351D46CF9BE44C89C49C08B2EA198AC77C8B63E02A8A0B68E53E9EF6B725C75DAA33200662451E9729DFAEB78708C32 + +Count = 1086 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C +CT = 86474F47C9B37AA7B81C7D3A7EF236A07D2D7E8C26334E3D27043CFA28ACC19669B1FF57E581F95F443D7D51DA2FDF1A + +Count = 1087 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D +CT = A4ECA33C0C646BC4B7C83DE5CD87262F4668A8D573DBBE8FE8C8A89E4D383B5D19DC9E6765C9DD28D73489C7C5C4068D + +Count = 1088 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E +CT = D4C8184CC2561264CE33284BB9262C974A1D8587A8966DF0A2C973EC7912E6F72CF80EFB9E9C6C96669915420552D810 + +Count = 1089 +Key = 000102030405060708090A0B0C0D0E0F +Nonce = 000102030405060708090A0B +PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F +CT = 6EF9B5F223391B7C5FBFDC8FB9DBD482C0CA05BFA23A37583B186C39997D05A09C3F443CB093A9A7B4918D21D658F29B + diff --git a/romulus/Implementations/crypto_aead/romulusn3/ref/api.h b/romulus/Implementations/crypto_aead/romulusn3/ref/api.h new file mode 100644 index 0000000..969c338 --- /dev/null +++ b/romulus/Implementations/crypto_aead/romulusn3/ref/api.h @@ -0,0 +1,5 @@ +#define CRYPTO_KEYBYTES 16 +#define CRYPTO_NSECBYTES 0 +#define CRYPTO_NPUBBYTES 12 +#define CRYPTO_ABYTES 16 +#define CRYPTO_NOOVERLAP 1 diff --git a/romulus/Implementations/crypto_aead/romulusn3/ref/encrypt.c b/romulus/Implementations/crypto_aead/romulusn3/ref/encrypt.c new file mode 100644 index 0000000..b75a0dc --- /dev/null +++ b/romulus/Implementations/crypto_aead/romulusn3/ref/encrypt.c @@ -0,0 +1,518 @@ +/* + * Date: 29 November 2018 + * Contact: Thomas Peyrin - thomas.peyrin@gmail.com + * Mustafa Khairallah - mustafam001@e.ntu.edu.sg + */ + +#include "crypto_aead.h" +#include "api.h" +#include "variant.h" +#include "skinny.h" +#include +#include + +/*void display_vector (const unsigned char* x, int lenx) { + int i; + + for (i = 0; i < lenx; i++) { + //printf("%02x",x[i]); + } + //printf("\n"); + }*/ + +void pad (const unsigned char* m, unsigned char* mp, int ver, int len8) { + int i; + + for (i = 0; i < ver; i++) { + if (i < len8) { + mp[i] = m[i]; + } + else if (i == ver - 1) { + mp[i] = (len8 & 0x0f); + } + else { + mp[i] = 0x00; + } + } +} + +void g (unsigned char* s, unsigned char* c) { + c[0] = s[4]; + c[1] = s[5]; + c[2] = s[6]; + c[3] = s[7]; + + c[4] = s[8]; + c[5] = s[9]; + c[6] = s[10]; + c[7] = s[11]; + + c[8] = s[12]; + c[9] = s[13]; + c[10] = s[14]; + c[11] = s[15]; + + c[12] = s[0] ^ s[12]; + c[13] = s[1] ^ s[13]; + c[14] = s[2] ^ s[14]; + c[15] = s[3] ^ s[15]; + +} + +void g8A (unsigned char* s, unsigned char* c) { + int i; + + for (i = 0; i < 16; i++) { + c[i] = (s[i] >> 1) ^ (s[i] & 0x80) ^ ((s[i] & 0x01) << 7); + } +} + +void rho_ad (const unsigned char* m, + unsigned char* s, + int len8, + int ver) { + int i; + unsigned char mp [16]; + + //mp = (unsigned char*) malloc(ver); + + //printf("rho in m = ");display_vector(m,len8); + pad(m,mp,ver,len8); + //printf("rho in mp = ");display_vector(mp,16); + //printf("rho in s = ");display_vector(s,16); + //g(s,c); + //g8A(s,c); + for (i = 0; i < ver; i++) { + s[i] = s[i] ^ mp[i]; + } + //printf("rho out s = ");display_vector(s,16); + ////printf("rho out c = ");display_vector(c,16); + + //free(mp); + +} + +void rho (const unsigned char* m, + unsigned char* c, + unsigned char* s, + int len8, + int ver) { + int i; + unsigned char mp [16]; + + + + //printf("rho in m = ");display_vector(m,len8); + pad(m,mp,ver,len8); + //printf("rho in mp = ");display_vector(mp,16); + //printf("rho in s = ");display_vector(s,16); + //g(s,c); + g8A(s,c); + for (i = 0; i < ver; i++) { + s[i] = s[i] ^ mp[i]; + if (i < len8) { + c[i] = c[i] ^ mp[i]; + } + else { + c[i] = 0; + } + } + //printf("rho out s = ");display_vector(s,16); + //printf("rho out c = ");display_vector(c,16); + + +} + +void reset_lfsr_gf24 (unsigned char* CNT) { + CNT[0] = 0x01; + CNT[1] = 0x00; + CNT[2] = 0x00; +} + +void lfsr_gf24 (unsigned char* CNT) { + unsigned char fb0; + + fb0 = CNT[2] >> 7; + + CNT[2] = (CNT[2] << 1) | (CNT[1] >> 7); + CNT[1] = (CNT[1] << 1) | (CNT[0] >> 7); + if (fb0 == 1) { + CNT[0] = (CNT[0] << 1) ^ 0x1b; + } + else { + CNT[0] = (CNT[0] << 1); + } +} + +void compose_tweakey (unsigned char* KT, + const unsigned char* K, + unsigned char* T, + unsigned char* CNT, + unsigned char D, + int t) { + + int i; + + for (i = 0; i < 3; i++) { + KT[i] = CNT[i]; + } + KT[i] = D; + for (i = 0; i < t; i++) { + KT[i+4] = T[i]; + } + for (i = 0; i < 16; i++) { + KT[i+16] = K[i]; + } + + +} + +void block_cipher(unsigned char* s, + const unsigned char* k, unsigned char* T, + unsigned char* CNT, unsigned char D, int t, int n) { + unsigned char KT [32]; + + (void)n; + compose_tweakey(KT,k,T,CNT,D,t); + //printf("BC in kt = ");display_vector(KT,2*n); + //printf("BC in s = ");display_vector(s,n); + skinny_128_256_enc (s,KT); + //printf("BC out s = ");display_vector(s,n); + +} + +void nonce_encryption (const unsigned char* N, + unsigned char* CNT, + unsigned char*s, const unsigned char* k, + unsigned int t, unsigned int n, unsigned char D) { + unsigned char T [16]; + unsigned int i; + + for (i = 0; i < t; i++) { + T[i] = N[i]; + } + //printf("nonce cnt = ");display_vector(CNT,3); + block_cipher(s,k,T,CNT,D,t,n); + +} + +void generate_tag (unsigned char** c, unsigned char* s, + int n, unsigned long long* clen) { + g8A(s, *c); + *c = *c + n; + *c = *c - *clen; + +} + +unsigned long long msg_encryption (const unsigned char** M, unsigned char** c, + const unsigned char* N, + unsigned char* CNT, + unsigned char*s, const unsigned char* k, + unsigned int n, unsigned int t, unsigned char D, + unsigned long long mlen) { + int len8; + + + if (mlen >= n) { + len8 = n; + mlen = mlen - n; + } + else { + len8 = mlen; + mlen = 0; + } + rho(*M, *c, s, len8, n); + *c = *c + len8; + *M = *M + len8; + lfsr_gf24(CNT); + nonce_encryption(N,CNT,s,k,t,n,D); + return mlen; +} + +void irho (unsigned char* m, + const unsigned char* c, + unsigned char* s, + int len8, + int ver) { + int i; + unsigned char cp [16]; + + //printf("irho in c = ");display_vector(c,len8); + pad(c,cp,ver,len8); + //printf("irho in cp = ");display_vector(cp,16); + //printf("irho in s = ");display_vector(s,16); + + g8A(s,m); + for (i = 0; i < ver; i++) { + if (i < len8) { + s[i] = s[i] ^ cp[i] ^ m[i]; + } + else { + s[i] = s[i] ^ cp[i]; + } + if (i < len8) { + m[i] = m[i] ^ cp[i]; + } + else { + m[i] = 0; + } + } + //printf("irho out s = ");display_vector(s,16); + //printf("irho out m = ");display_vector(c,16); + +} + +unsigned long long msg_decryption (unsigned char** M, const unsigned char** c, + const unsigned char* N, + unsigned char* CNT, + unsigned char*s, const unsigned char* k, + unsigned int n, unsigned int t, unsigned char D, + unsigned long long clen) { + int len8; + + + if (clen >= n) { + len8 = n; + clen = clen - n; + } + else { + len8 = clen; + clen = 0; + } + irho(*M, *c, s, len8, n); + *c = *c + len8; + *M = *M + len8; + lfsr_gf24(CNT); + nonce_encryption(N,CNT,s,k,t,n,D); + return clen; +} + +unsigned long long ad_encryption (const unsigned char** A, unsigned char* s, + const unsigned char* k, unsigned long long adlen, + unsigned char* CNT, + unsigned char D, + unsigned int n, unsigned int t) { + + + unsigned char T [16]; + + int len8; + + + if (adlen >= n) { + len8 = n; + adlen = adlen - n; + } + else { + len8 = adlen; + adlen = 0; + } + //printf("AD in = ");display_vector(*A,len8); + rho_ad(*A, s, len8, n); + *A = *A + len8; + lfsr_gf24(CNT); + //printf("AD cnt = ");display_vector(CNT,3); + if (adlen != 0) { + if (adlen >= t) { + len8 = t; + adlen = adlen - t; + } + else { + len8 = adlen; + adlen = 0; + } + pad(*A, T, t, len8); + *A = *A + len8; + block_cipher(s,k,T,CNT,D,t,n); + lfsr_gf24(CNT); + } + + return adlen; +} + +int crypto_aead_encrypt ( + unsigned char* c, unsigned long long* clen, + const unsigned char* m, unsigned long long mlen, + const unsigned char* ad, unsigned long long adlen, + const unsigned char* nsec, + const unsigned char* npub, + const unsigned char* k + ) +{ + unsigned char s[16]; + unsigned char CNT[3]; + const unsigned char* A; + const unsigned char* M; + const unsigned char* N; + unsigned long long n, t, i; + + (void)nsec; + A = ad; + M = m; + N = npub; + + n = AD_BLK_LEN_ODD; + t = AD_BLK_LEN_EVN; + + for (i = 0; i < n; i++) { + s[i] = 0; + } + reset_lfsr_gf24(CNT); + //printf("s = ");display_vector(s,16); + //printf("cnt = ");display_vector(CNT,3); + + if (adlen == 0) { // AD is an empty string + lfsr_gf24(CNT); + nonce_encryption(N,CNT,s,k,t,n,0x9a); + } + else while (adlen > 0) { + if (adlen < n) { // The last block of AD is odd and incomplete + adlen = ad_encryption(&A,s,k,adlen,CNT,0x88,n,t); + nonce_encryption(N,CNT,s,k,t,n,0x9a); + } + else if (adlen == n) { // The last block of AD is odd and complete + adlen = ad_encryption(&A,s,k,adlen,CNT,0x88,n,t); + nonce_encryption(N,CNT,s,k,t,n,0x98); + } + else if (adlen < (n+t)) { // The last block of AD is even and incomplete + adlen = ad_encryption(&A,s,k,adlen,CNT,0x88,n,t); + nonce_encryption(N,CNT,s,k,t,n,0x9a); + } + else if (adlen == (n+t)) { // The last block of AD is even and complete + adlen = ad_encryption(&A,s,k,adlen,CNT,0x88,n,t); + nonce_encryption(N,CNT,s,k,t,n,0x98); + } + else { // A normal full pair of blocks of AD + adlen = ad_encryption(&A,s,k,adlen,CNT,0x88,n,t); + } + } + + reset_lfsr_gf24(CNT); + + n = MSG_BLK_LEN; + *clen = mlen + n; + + if (mlen == 0) { // AD is an empty string + lfsr_gf24(CNT); + nonce_encryption(N,CNT,s,k,t,n,0x95); + } + else while (mlen > 0) { + if (mlen < n) { // The last block of M is incomplete + mlen = msg_encryption(&M,&c,N,CNT,s,k,n,t,0x95,mlen); + } + else if (mlen == n) { // The last block of M is complete + mlen = msg_encryption(&M,&c,N,CNT,s,k,n,t,0x94,mlen); + } + else { // A normal full message block + mlen = msg_encryption(&M,&c,N,CNT,s,k,n,t,0x84,mlen); + } + } + + + // Tag generation + generate_tag(&c,s,n,clen); + //printf("T = ");display_vector(c+*clen-n,n); + + //free(s); + //free(CNT); + + return 0; +} + + +int crypto_aead_decrypt( +unsigned char *m,unsigned long long *mlen, +unsigned char *nsec, +const unsigned char *c,unsigned long long clen, +const unsigned char *ad,unsigned long long adlen, +const unsigned char *npub, +const unsigned char *k +) +{ + + unsigned char s[16]; + unsigned char T[16]; + unsigned char CNT[3]; + const unsigned char* A; + unsigned char* M; + const unsigned char* N; + unsigned long long n, t, i; + + (void)nsec; + A = ad; + M = m; + N = npub; + + n = AD_BLK_LEN_ODD; + t = AD_BLK_LEN_EVN; + + for (i = 0; i < n; i++) { + s[i] = 0; + } + reset_lfsr_gf24(CNT); + //printf("s = ");display_vector(s,16); + //printf("cnt = ");display_vector(CNT,3); + + if (adlen == 0) { // AD is an empty string + lfsr_gf24(CNT); + nonce_encryption(N,CNT,s,k,t,n,0x9a); + } + else while (adlen > 0) { + if (adlen < n) { // The last block of AD is odd and incomplete + adlen = ad_encryption(&A,s,k,adlen,CNT,0x08,n,t); + nonce_encryption(N,CNT,s,k,t,n,0x9a); + } + else if (adlen == n) { // The last block of AD is odd and complete + adlen = ad_encryption(&A,s,k,adlen,CNT,0x88,n,t); + nonce_encryption(N,CNT,s,k,t,n,0x98); + } + else if (adlen < (n+t)) { // The last block of AD is even and incomplete + adlen = ad_encryption(&A,s,k,adlen,CNT,0x88,n,t); + nonce_encryption(N,CNT,s,k,t,n,0x9a); + } + else if (adlen == (n+t)) { // The last block of AD is even and complete + adlen = ad_encryption(&A,s,k,adlen,CNT,0x88,n,t); + nonce_encryption(N,CNT,s,k,t,n,0x98); + } + else { // A normal full pair of blocks of AD + adlen = ad_encryption(&A,s,k,adlen,CNT,0x88,n,t); + } + } + + reset_lfsr_gf24(CNT); + + n = MSG_BLK_LEN; + + clen = clen - n; + + *mlen = clen; + + if (clen == 0) { // C is an empty string + lfsr_gf24(CNT); + nonce_encryption(N,CNT,s,k,t,n,0x95); + } + else while (clen > 0) { + if (clen < n) { // The last block of C is incomplete + clen = msg_decryption(&M,&c,N,CNT,s,k,n,t,0x95,clen); + } + else if (clen == n) { // The last block of C is complete + clen = msg_decryption(&M,&c,N,CNT,s,k,n,t,0x94,clen); + } + else { // A normal full message block + clen = msg_decryption(&M,&c,N,CNT,s,k,n,t,0x84,clen); + } + } + + + // Tag generation + g8A(s, T); + //printf("T = ");display_vector(T,n); + for (i = 0; i < 16; i++) { + if (T[i] != (*(c+i))) { + return -1; + } + } + + return 0; + +} diff --git a/romulus/Implementations/crypto_aead/romulusn3/ref/genkat_aead.c b/romulus/Implementations/crypto_aead/romulusn3/ref/genkat_aead.c new file mode 100644 index 0000000..6e6ae11 --- /dev/null +++ b/romulus/Implementations/crypto_aead/romulusn3/ref/genkat_aead.c @@ -0,0 +1,162 @@ +// +// NIST-developed software is provided by NIST as a public service. +// You may use, copy and distribute copies of the software in any medium, +// provided that you keep intact this entire notice. You may improve, +// modify and create derivative works of the software or any portion of +// the software, and you may copy and distribute such modifications or +// works. Modified works should carry a notice stating that you changed +// the software and should note the date and nature of any such change. +// Please explicitly acknowledge the National Institute of Standards and +// Technology as the source of the software. +// +// NIST-developed software is expressly provided "AS IS." NIST MAKES NO +// WARRANTY OF ANY KIND, EXPRESS, IMPLIED, IN FACT OR ARISING BY OPERATION +// OF LAW, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTY OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT AND DATA ACCURACY. NIST +// NEITHER REPRESENTS NOR WARRANTS THAT THE OPERATION OF THE SOFTWARE WILL BE +// UNINTERRUPTED OR ERROR-FREE, OR THAT ANY DEFECTS WILL BE CORRECTED. NIST +// DOES NOT WARRANT OR MAKE ANY REPRESENTATIONS REGARDING THE USE OF THE SOFTWARE +// OR THE RESULTS THEREOF, INCLUDING BUT NOT LIMITED TO THE CORRECTNESS, ACCURACY, +// RELIABILITY, OR USEFULNESS OF THE SOFTWARE. +// +// You are solely responsible for determining the appropriateness of using and +// distributing the software and you assume all risks associated with its use, +// including but not limited to the risks and costs of program errors, compliance +// with applicable laws, damage to or loss of data, programs or equipment, and +// the unavailability or interruption of operation. This software is not intended +// to be used in any situation where a failure could cause risk of injury or +// damage to property. The software developed by NIST employees is not subject to +// copyright protection within the United States. +// + +// disable deprecation for sprintf and fopen +#ifdef _MSC_VER +#define _CRT_SECURE_NO_WARNINGS +#endif + +#include +#include + +#include "crypto_aead.h" +#include "api.h" + +#define KAT_SUCCESS 0 +#define KAT_FILE_OPEN_ERROR -1 +#define KAT_DATA_ERROR -3 +#define KAT_CRYPTO_FAILURE -4 + +#define MAX_FILE_NAME 256 +#define MAX_MESSAGE_LENGTH 32 +#define MAX_ASSOCIATED_DATA_LENGTH 32 + +void init_buffer(unsigned char *buffer, unsigned long long numbytes); + +void fprint_bstr(FILE *fp, const char *label, const unsigned char *data, unsigned long long length); + +int generate_test_vectors(); + +int main() +{ + int ret = generate_test_vectors(); + + if (ret != KAT_SUCCESS) { + fprintf(stderr, "test vector generation failed with code %d\n", ret); + } + + return ret; +} + +int generate_test_vectors() +{ + FILE *fp; + char fileName[MAX_FILE_NAME]; + unsigned char key[CRYPTO_KEYBYTES]; + unsigned char nonce[CRYPTO_NPUBBYTES]; + unsigned char msg[MAX_MESSAGE_LENGTH]; + unsigned char msg2[MAX_MESSAGE_LENGTH]; + unsigned char ad[MAX_ASSOCIATED_DATA_LENGTH]; + unsigned char ct[MAX_MESSAGE_LENGTH + CRYPTO_ABYTES]; + unsigned long long clen, mlen2; + int count = 1; + int func_ret, ret_val = KAT_SUCCESS; + + init_buffer(key, sizeof(key)); + init_buffer(nonce, sizeof(nonce)); + init_buffer(msg, sizeof(msg)); + init_buffer(ad, sizeof(ad)); + + sprintf(fileName, "LWC_AEAD_KAT_%d_%d.txt", (CRYPTO_KEYBYTES * 8), (CRYPTO_NPUBBYTES * 8)); + + if ((fp = fopen(fileName, "w")) == NULL) { + fprintf(stderr, "Couldn't open <%s> for write\n", fileName); + return KAT_FILE_OPEN_ERROR; + } + + for (unsigned long long mlen = 0; (mlen <= MAX_MESSAGE_LENGTH) && (ret_val == KAT_SUCCESS); mlen++) { + //for (unsigned long long mlen = 0; (mlen <= 0) && (ret_val == KAT_SUCCESS); mlen++) { + for (unsigned long long adlen = 0; adlen <= MAX_ASSOCIATED_DATA_LENGTH; adlen++) { + //for (unsigned long long adlen = 0; adlen <= 17; adlen++) { + + printf("%0d\n", (int)clen); + + fprintf(fp, "Count = %d\n", count++); + + fprint_bstr(fp, "Key = ", key, CRYPTO_KEYBYTES); + + fprint_bstr(fp, "Nonce = ", nonce, CRYPTO_NPUBBYTES); + + fprint_bstr(fp, "PT = ", msg, mlen); + + fprint_bstr(fp, "AD = ", ad, adlen); + + if ((func_ret = crypto_aead_encrypt(ct, &clen, msg, mlen, ad, adlen, NULL, nonce, key)) != 0) { + fprintf(fp, "crypto_aead_encrypt returned <%d>\n", func_ret); + ret_val = KAT_CRYPTO_FAILURE; + break; + } + + fprint_bstr(fp, "CT = ", ct, clen); + + fprintf(fp, "\n"); + + if ((func_ret = crypto_aead_decrypt(msg2, &mlen2, NULL, ct, clen, ad, adlen, nonce, key)) != 0) { + fprintf(fp, "crypto_aead_decrypt returned <%d>\n", func_ret); + ret_val = KAT_CRYPTO_FAILURE; + break; + } + + if (mlen != mlen2) { + fprintf(fp, "crypto_aead_decrypt returned bad 'mlen': Got <%llu>, expected <%llu>\n", mlen2, mlen); + ret_val = KAT_CRYPTO_FAILURE; + break; + } + + if (memcmp(msg, msg2, mlen)) { + fprintf(fp, "crypto_aead_decrypt did not recover the plaintext\n"); + ret_val = KAT_CRYPTO_FAILURE; + break; + } + } + } + + fclose(fp); + + return ret_val; +} + + +void fprint_bstr(FILE *fp, const char *label, const unsigned char *data, unsigned long long length) +{ + fprintf(fp, "%s", label); + + for (unsigned long long i = 0; i < length; i++) + fprintf(fp, "%02X", data[i]); + + fprintf(fp, "\n"); +} + +void init_buffer(unsigned char *buffer, unsigned long long numbytes) +{ + for (unsigned long long i = 0; i < numbytes; i++) + buffer[i] = (unsigned char)i; +} diff --git a/romulus/Implementations/crypto_aead/romulusn3/ref/skinny.h b/romulus/Implementations/crypto_aead/romulusn3/ref/skinny.h new file mode 100644 index 0000000..a33ba58 --- /dev/null +++ b/romulus/Implementations/crypto_aead/romulusn3/ref/skinny.h @@ -0,0 +1 @@ +extern void skinny_128_256_enc (unsigned char* input, const unsigned char* userkey); diff --git a/romulus/Implementations/crypto_aead/romulusn3/ref/skinny_reference.c b/romulus/Implementations/crypto_aead/romulusn3/ref/skinny_reference.c new file mode 100644 index 0000000..171a179 --- /dev/null +++ b/romulus/Implementations/crypto_aead/romulusn3/ref/skinny_reference.c @@ -0,0 +1,547 @@ +/* + * Date: 11 December 2015 + * Contact: Thomas Peyrin - thomas.peyrin@gmail.com + */ + +#include +#include +#include +#include +#include "skinny.h" + +#define DEBUG 0 + +// Table that encodes the parameters of the various Skinny versions: +// (block size, key size, number of rounds) +//Skinny-64-64: 32 rounds +//Skinny-64-128: 36 rounds +//Skinny-64-192: 40 rounds +//Skinny-128-128: 40 rounds +//Skinny-128-256: 48 rounds +//Skinny-128-384: 56 rounds +int versions[6][3]={{64,64,32},{64,128,36},{64,192,40},{128,128,40},{128,256,48},{128,384,56}}; + +// Packing of data is done as follows (state[i][j] stands for row i and column j): +// 0 1 2 3 +// 4 5 6 7 +// 8 9 10 11 +//12 13 14 15 + +// 4-bit Sbox +const unsigned char sbox_4[16] = {12,6,9,0,1,10,2,11,3,8,5,13,4,14,7,15}; +const unsigned char sbox_4_inv[16] = {3,4,6,8,12,10,1,14,9,2,5,7,0,11,13,15}; + +// 8-bit Sbox +const unsigned char sbox_8[256] = {0x65 , 0x4c , 0x6a , 0x42 , 0x4b , 0x63 , 0x43 , 0x6b , 0x55 , 0x75 , 0x5a , 0x7a , 0x53 , 0x73 , 0x5b , 0x7b ,0x35 , 0x8c , 0x3a , 0x81 , 0x89 , 0x33 , 0x80 , 0x3b , 0x95 , 0x25 , 0x98 , 0x2a , 0x90 , 0x23 , 0x99 , 0x2b ,0xe5 , 0xcc , 0xe8 , 0xc1 , 0xc9 , 0xe0 , 0xc0 , 0xe9 , 0xd5 , 0xf5 , 0xd8 , 0xf8 , 0xd0 , 0xf0 , 0xd9 , 0xf9 ,0xa5 , 0x1c , 0xa8 , 0x12 , 0x1b , 0xa0 , 0x13 , 0xa9 , 0x05 , 0xb5 , 0x0a , 0xb8 , 0x03 , 0xb0 , 0x0b , 0xb9 ,0x32 , 0x88 , 0x3c , 0x85 , 0x8d , 0x34 , 0x84 , 0x3d , 0x91 , 0x22 , 0x9c , 0x2c , 0x94 , 0x24 , 0x9d , 0x2d ,0x62 , 0x4a , 0x6c , 0x45 , 0x4d , 0x64 , 0x44 , 0x6d , 0x52 , 0x72 , 0x5c , 0x7c , 0x54 , 0x74 , 0x5d , 0x7d ,0xa1 , 0x1a , 0xac , 0x15 , 0x1d , 0xa4 , 0x14 , 0xad , 0x02 , 0xb1 , 0x0c , 0xbc , 0x04 , 0xb4 , 0x0d , 0xbd ,0xe1 , 0xc8 , 0xec , 0xc5 , 0xcd , 0xe4 , 0xc4 , 0xed , 0xd1 , 0xf1 , 0xdc , 0xfc , 0xd4 , 0xf4 , 0xdd , 0xfd ,0x36 , 0x8e , 0x38 , 0x82 , 0x8b , 0x30 , 0x83 , 0x39 , 0x96 , 0x26 , 0x9a , 0x28 , 0x93 , 0x20 , 0x9b , 0x29 ,0x66 , 0x4e , 0x68 , 0x41 , 0x49 , 0x60 , 0x40 , 0x69 , 0x56 , 0x76 , 0x58 , 0x78 , 0x50 , 0x70 , 0x59 , 0x79 ,0xa6 , 0x1e , 0xaa , 0x11 , 0x19 , 0xa3 , 0x10 , 0xab , 0x06 , 0xb6 , 0x08 , 0xba , 0x00 , 0xb3 , 0x09 , 0xbb ,0xe6 , 0xce , 0xea , 0xc2 , 0xcb , 0xe3 , 0xc3 , 0xeb , 0xd6 , 0xf6 , 0xda , 0xfa , 0xd3 , 0xf3 , 0xdb , 0xfb ,0x31 , 0x8a , 0x3e , 0x86 , 0x8f , 0x37 , 0x87 , 0x3f , 0x92 , 0x21 , 0x9e , 0x2e , 0x97 , 0x27 , 0x9f , 0x2f ,0x61 , 0x48 , 0x6e , 0x46 , 0x4f , 0x67 , 0x47 , 0x6f , 0x51 , 0x71 , 0x5e , 0x7e , 0x57 , 0x77 , 0x5f , 0x7f ,0xa2 , 0x18 , 0xae , 0x16 , 0x1f , 0xa7 , 0x17 , 0xaf , 0x01 , 0xb2 , 0x0e , 0xbe , 0x07 , 0xb7 , 0x0f , 0xbf ,0xe2 , 0xca , 0xee , 0xc6 , 0xcf ,0xe7 , 0xc7 , 0xef , 0xd2 , 0xf2 , 0xde , 0xfe , 0xd7 , 0xf7 , 0xdf , 0xff}; +const unsigned char sbox_8_inv[256] = {0xac , 0xe8 , 0x68 , 0x3c , 0x6c , 0x38 , 0xa8 , 0xec , 0xaa , 0xae , 0x3a , 0x3e , 0x6a , 0x6e , 0xea , 0xee ,0xa6 , 0xa3 , 0x33 , 0x36 , 0x66 , 0x63 , 0xe3 , 0xe6 , 0xe1 , 0xa4 , 0x61 , 0x34 , 0x31 , 0x64 , 0xa1 , 0xe4 ,0x8d , 0xc9 , 0x49 , 0x1d , 0x4d , 0x19 , 0x89 , 0xcd , 0x8b , 0x8f , 0x1b , 0x1f , 0x4b , 0x4f , 0xcb , 0xcf ,0x85 , 0xc0 , 0x40 , 0x15 , 0x45 , 0x10 , 0x80 , 0xc5 , 0x82 , 0x87 , 0x12 , 0x17 , 0x42 , 0x47 , 0xc2 , 0xc7 ,0x96 , 0x93 , 0x03 , 0x06 , 0x56 , 0x53 , 0xd3 , 0xd6 , 0xd1 , 0x94 , 0x51 , 0x04 , 0x01 , 0x54 , 0x91 , 0xd4 ,0x9c , 0xd8 , 0x58 , 0x0c , 0x5c , 0x08 , 0x98 , 0xdc , 0x9a , 0x9e , 0x0a , 0x0e , 0x5a , 0x5e , 0xda , 0xde ,0x95 , 0xd0 , 0x50 , 0x05 , 0x55 , 0x00 , 0x90 , 0xd5 , 0x92 , 0x97 , 0x02 , 0x07 , 0x52 , 0x57 , 0xd2 , 0xd7 ,0x9d , 0xd9 , 0x59 , 0x0d , 0x5d , 0x09 , 0x99 , 0xdd , 0x9b , 0x9f , 0x0b , 0x0f , 0x5b , 0x5f , 0xdb , 0xdf ,0x16 , 0x13 , 0x83 , 0x86 , 0x46 , 0x43 , 0xc3 , 0xc6 , 0x41 , 0x14 , 0xc1 , 0x84 , 0x11 , 0x44 , 0x81 , 0xc4 ,0x1c , 0x48 , 0xc8 , 0x8c , 0x4c , 0x18 , 0x88 , 0xcc , 0x1a , 0x1e , 0x8a , 0x8e , 0x4a , 0x4e , 0xca , 0xce ,0x35 , 0x60 , 0xe0 , 0xa5 , 0x65 , 0x30 , 0xa0 , 0xe5 , 0x32 , 0x37 , 0xa2 , 0xa7 , 0x62 , 0x67 , 0xe2 , 0xe7 ,0x3d , 0x69 , 0xe9 , 0xad , 0x6d , 0x39 , 0xa9 , 0xed , 0x3b , 0x3f , 0xab , 0xaf , 0x6b , 0x6f , 0xeb , 0xef ,0x26 , 0x23 , 0xb3 , 0xb6 , 0x76 , 0x73 , 0xf3 , 0xf6 , 0x71 , 0x24 , 0xf1 , 0xb4 , 0x21 , 0x74 , 0xb1 , 0xf4 ,0x2c , 0x78 , 0xf8 , 0xbc , 0x7c , 0x28 , 0xb8 , 0xfc , 0x2a , 0x2e , 0xba , 0xbe , 0x7a , 0x7e , 0xfa , 0xfe ,0x25 , 0x70 , 0xf0 , 0xb5 , 0x75 , 0x20 , 0xb0 , 0xf5 , 0x22 , 0x27 , 0xb2 , 0xb7 , 0x72 , 0x77 , 0xf2 , 0xf7 ,0x2d , 0x79 , 0xf9 , 0xbd , 0x7d , 0x29 , 0xb9 , 0xfd , 0x2b , 0x2f , 0xbb , 0xbf , 0x7b , 0x7f , 0xfb , 0xff}; + +// ShiftAndSwitchRows permutation +const unsigned char P[16] = {0,1,2,3,7,4,5,6,10,11,8,9,13,14,15,12}; +const unsigned char P_inv[16] = {0,1,2,3,5,6,7,4,10,11,8,9,15,12,13,14}; + +// Tweakey permutation +const unsigned char TWEAKEY_P[16] = {9,15,8,13,10,14,12,11,0,1,2,3,4,5,6,7}; +const unsigned char TWEAKEY_P_inv[16] = {8,9,10,11,12,13,14,15,2,0,4,7,6,3,5,1}; + +// round constants +const unsigned char RC[62] = { + 0x01, 0x03, 0x07, 0x0F, 0x1F, 0x3E, 0x3D, 0x3B, 0x37, 0x2F, + 0x1E, 0x3C, 0x39, 0x33, 0x27, 0x0E, 0x1D, 0x3A, 0x35, 0x2B, + 0x16, 0x2C, 0x18, 0x30, 0x21, 0x02, 0x05, 0x0B, 0x17, 0x2E, + 0x1C, 0x38, 0x31, 0x23, 0x06, 0x0D, 0x1B, 0x36, 0x2D, 0x1A, + 0x34, 0x29, 0x12, 0x24, 0x08, 0x11, 0x22, 0x04, 0x09, 0x13, + 0x26, 0x0c, 0x19, 0x32, 0x25, 0x0a, 0x15, 0x2a, 0x14, 0x28, + 0x10, 0x20}; + +FILE* fic; + + +// Extract and apply the subtweakey to the internal state (must be the two top rows XORed together), then update the tweakey state +void AddKey(unsigned char state[4][4], unsigned char keyCells[3][4][4], int ver) +{ + int i, j, k; + unsigned char pos; + unsigned char keyCells_tmp[3][4][4]; + + // apply the subtweakey to the internal state + for(i = 0; i <= 1; i++) + { + for(j = 0; j < 4; j++) + { + state[i][j] ^= keyCells[0][i][j]; + if (2*versions[ver][0]==versions[ver][1]) + state[i][j] ^= keyCells[1][i][j]; + else if (3*versions[ver][0]==versions[ver][1]) + state[i][j] ^= keyCells[1][i][j] ^ keyCells[2][i][j]; + } + } + + // update the subtweakey states with the permutation + for(k = 0; k <(int)(versions[ver][1]/versions[ver][0]); k++){ + for(i = 0; i < 4; i++){ + for(j = 0; j < 4; j++){ + //application of the TWEAKEY permutation + pos=TWEAKEY_P[j+4*i]; + keyCells_tmp[k][i][j]=keyCells[k][pos>>2][pos&0x3]; + } + } + } + + // update the subtweakey states with the LFSRs + for(k = 0; k <(int)(versions[ver][1]/versions[ver][0]); k++){ + for(i = 0; i <= 1; i++){ + for(j = 0; j < 4; j++){ + //application of LFSRs for TK updates + if (k==1) + { + if (versions[ver][0]==64) + keyCells_tmp[k][i][j]=((keyCells_tmp[k][i][j]<<1)&0xE)^((keyCells_tmp[k][i][j]>>3)&0x1)^((keyCells_tmp[k][i][j]>>2)&0x1); + else + keyCells_tmp[k][i][j]=((keyCells_tmp[k][i][j]<<1)&0xFE)^((keyCells_tmp[k][i][j]>>7)&0x01)^((keyCells_tmp[k][i][j]>>5)&0x01); + } + else if (k==2) + { + if (versions[ver][0]==64) + keyCells_tmp[k][i][j]=((keyCells_tmp[k][i][j]>>1)&0x7)^((keyCells_tmp[k][i][j])&0x8)^((keyCells_tmp[k][i][j]<<3)&0x8); + else + keyCells_tmp[k][i][j]=((keyCells_tmp[k][i][j]>>1)&0x7F)^((keyCells_tmp[k][i][j]<<7)&0x80)^((keyCells_tmp[k][i][j]<<1)&0x80); + } + } + } + } + + for(k = 0; k <(int)(versions[ver][1]/versions[ver][0]); k++){ + for(i = 0; i < 4; i++){ + for(j = 0; j < 4; j++){ + keyCells[k][i][j]=keyCells_tmp[k][i][j]; + } + } + } +} + + +// Extract and apply the subtweakey to the internal state (must be the two top rows XORed together), then update the tweakey state (inverse function} +void AddKey_inv(unsigned char state[4][4], unsigned char keyCells[3][4][4], int ver) +{ + int i, j, k; + unsigned char pos; + unsigned char keyCells_tmp[3][4][4]; + + // update the subtweakey states with the permutation + for(k = 0; k <(int)(versions[ver][1]/versions[ver][0]); k++){ + for(i = 0; i < 4; i++){ + for(j = 0; j < 4; j++){ + //application of the inverse TWEAKEY permutation + pos=TWEAKEY_P_inv[j+4*i]; + keyCells_tmp[k][i][j]=keyCells[k][pos>>2][pos&0x3]; + } + } + } + + // update the subtweakey states with the LFSRs + for(k = 0; k <(int)(versions[ver][1]/versions[ver][0]); k++){ + for(i = 2; i <= 3; i++){ + for(j = 0; j < 4; j++){ + //application of inverse LFSRs for TK updates + if (k==1) + { + if (versions[ver][0]==64) + keyCells_tmp[k][i][j]=((keyCells_tmp[k][i][j]>>1)&0x7)^((keyCells_tmp[k][i][j]<<3)&0x8)^((keyCells_tmp[k][i][j])&0x8); + else + keyCells_tmp[k][i][j]=((keyCells_tmp[k][i][j]>>1)&0x7F)^((keyCells_tmp[k][i][j]<<7)&0x80)^((keyCells_tmp[k][i][j]<<1)&0x80); + } + else if (k==2) + { + if (versions[ver][0]==64) + keyCells_tmp[k][i][j]=((keyCells_tmp[k][i][j]<<1)&0xE)^((keyCells_tmp[k][i][j]>>3)&0x1)^((keyCells_tmp[k][i][j]>>2)&0x1); + else + keyCells_tmp[k][i][j]=((keyCells_tmp[k][i][j]<<1)&0xFE)^((keyCells_tmp[k][i][j]>>7)&0x01)^((keyCells_tmp[k][i][j]>>5)&0x01); + } + } + } + } + + for(k = 0; k <(int)(versions[ver][1]/versions[ver][0]); k++){ + for(i = 0; i < 4; i++){ + for(j = 0; j < 4; j++){ + keyCells[k][i][j]=keyCells_tmp[k][i][j]; + } + } + } + + + // apply the subtweakey to the internal state + for(i = 0; i <= 1; i++) + { + for(j = 0; j < 4; j++) + { + state[i][j] ^= keyCells[0][i][j]; + if (2*versions[ver][0]==versions[ver][1]) + state[i][j] ^= keyCells[1][i][j]; + else if (3*versions[ver][0]==versions[ver][1]) + state[i][j] ^= keyCells[1][i][j] ^ keyCells[2][i][j]; + } + } +} + + +// Apply the constants: using a LFSR counter on 6 bits, we XOR the 6 bits to the first 6 bits of the internal state +void AddConstants(unsigned char state[4][4], int r) +{ + state[0][0] ^= (RC[r] & 0xf); + state[1][0] ^= ((RC[r]>>4) & 0x3); + state[2][0] ^= 0x2; +} + +// apply the 4-bit Sbox +void SubCell4(unsigned char state[4][4]) +{ + int i,j; + for(i = 0; i < 4; i++) + for(j = 0; j < 4; j++) + state[i][j] = sbox_4[state[i][j]]; +} + +// apply the 4-bit inverse Sbox +void SubCell4_inv(unsigned char state[4][4]) +{ + int i,j; + for(i = 0; i < 4; i++) + for(j = 0; j < 4; j++) + state[i][j] = sbox_4_inv[state[i][j]]; +} + +// apply the 8-bit Sbox +void SubCell8(unsigned char state[4][4]) +{ + int i,j; + for(i = 0; i < 4; i++) + for(j = 0; j < 4; j++) + state[i][j] = sbox_8[state[i][j]]; +} + +// apply the 8-bit inverse Sbox +void SubCell8_inv(unsigned char state[4][4]) +{ + int i,j; + for(i = 0; i < 4; i++) + for(j = 0; j < 4; j++) + state[i][j] = sbox_8_inv[state[i][j]]; +} + +// Apply the ShiftRows function +void ShiftRows(unsigned char state[4][4]) +{ + int i, j, pos; + + unsigned char state_tmp[4][4]; + for(i = 0; i < 4; i++) + { + for(j = 0; j < 4; j++) + { + //application of the ShiftRows permutation + pos=P[j+4*i]; + state_tmp[i][j]=state[pos>>2][pos&0x3]; + } + } + + for(i = 0; i < 4; i++) + { + for(j = 0; j < 4; j++) + { + state[i][j]=state_tmp[i][j]; + } + } +} + +// Apply the inverse ShiftRows function +void ShiftRows_inv(unsigned char state[4][4]) +{ + int i, j, pos; + + unsigned char state_tmp[4][4]; + for(i = 0; i < 4; i++) + { + for(j = 0; j < 4; j++) + { + //application of the inverse ShiftRows permutation + pos=P_inv[j+4*i]; + state_tmp[i][j]=state[pos>>2][pos&0x3]; + } + } + + for(i = 0; i < 4; i++) + { + for(j = 0; j < 4; j++) + { + state[i][j]=state_tmp[i][j]; + } + } +} + +// Apply the linear diffusion matrix +//M = +//1 0 1 1 +//1 0 0 0 +//0 1 1 0 +//1 0 1 0 +void MixColumn(unsigned char state[4][4]) +{ + int j; + unsigned char temp; + + for(j = 0; j < 4; j++){ + state[1][j]^=state[2][j]; + state[2][j]^=state[0][j]; + state[3][j]^=state[2][j]; + + temp=state[3][j]; + state[3][j]=state[2][j]; + state[2][j]=state[1][j]; + state[1][j]=state[0][j]; + state[0][j]=temp; + } +} + +// Apply the inverse linear diffusion matrix +void MixColumn_inv(unsigned char state[4][4]) +{ + int j; + unsigned char temp; + + for(j = 0; j < 4; j++){ + temp=state[3][j]; + state[3][j]=state[0][j]; + state[0][j]=state[1][j]; + state[1][j]=state[2][j]; + state[2][j]=temp; + + state[3][j]^=state[2][j]; + state[2][j]^=state[0][j]; + state[1][j]^=state[2][j]; + } +} + +// decryption function of Skinny +void dec(unsigned char* input, const unsigned char* userkey, int ver) +{ + unsigned char state[4][4]; + unsigned char dummy[4][4]={{0}}; + unsigned char keyCells[3][4][4]; + int i; + + memset(keyCells, 0, 48); + for(i = 0; i < 16; i++) { + if (versions[ver][0]==64){ + if(i&1) + { + state[i>>2][i&0x3] = input[i>>1]&0xF; + keyCells[0][i>>2][i&0x3] = userkey[i>>1]&0xF; + if (versions[ver][1]>=128) + keyCells[1][i>>2][i&0x3] = userkey[(i+16)>>1]&0xF; + if (versions[ver][1]>=192) + keyCells[2][i>>2][i&0x3] = userkey[(i+32)>>1]&0xF; + } + else + { + state[i>>2][i&0x3] = (input[i>>1]>>4)&0xF; + keyCells[0][i>>2][i&0x3] = (userkey[i>>1]>>4)&0xF; + if (versions[ver][1]>=128) + keyCells[1][i>>2][i&0x3] = (userkey[(i+16)>>1]>>4)&0xF; + if (versions[ver][1]>=192) + keyCells[2][i>>2][i&0x3] = (userkey[(i+32)>>1]>>4)&0xF; + } + } + else if (versions[ver][0]==128){ + state[i>>2][i&0x3] = input[i]&0xFF; + + keyCells[0][i>>2][i&0x3] = userkey[i]&0xFF; + if (versions[ver][1]>=256) + keyCells[1][i>>2][i&0x3] = userkey[i+16]&0xFF; + if (versions[ver][1]>=384) + keyCells[2][i>>2][i&0x3] = userkey[i+32]&0xFF; + } + } + + for(i = versions[ver][2]-1; i >=0 ; i--){ + AddKey(dummy, keyCells, ver); + } + + #ifdef DEBUG + //f//printf(fic,"DEC - initial state: ");display_cipher_state(state,keyCells,ver);//f//printf(fic,"\n"); + #endif + + for(i = versions[ver][2]-1; i >=0 ; i--){ + MixColumn_inv(state); + #ifdef DEBUG + //f//printf(fic,"DEC - round %.2i - after MixColumn_inv: ",i);display_cipher_state(state,keyCells,ver);//f//printf(fic,"\n"); + #endif + ShiftRows_inv(state); + #ifdef DEBUG + //f//printf(fic,"DEC - round %.2i - after ShiftRows_inv: ",i);display_cipher_state(state,keyCells,ver);//f//printf(fic,"\n"); + #endif + AddKey_inv(state, keyCells, ver); + #ifdef DEBUG + //f//printf(fic,"DEC - round %.2i - after AddKey_inv: ",i);display_cipher_state(state,keyCells,ver);//f//printf(fic,"\n"); + #endif + AddConstants(state, i); + #ifdef DEBUG + //f//printf(fic,"DEC - round %.2i - after AddConstants_inv: ",i);display_cipher_state(state,keyCells,ver);//f//printf(fic,"\n"); + #endif + if (versions[ver][0]==64) + SubCell4_inv(state); + else + SubCell8_inv(state); + #ifdef DEBUG + //f//printf(fic,"DEC - round %.2i - after SubCell_inv: ",i);display_cipher_state(state,keyCells,ver);//f//printf(fic,"\n"); + #endif + } + + #ifdef DEBUG + //f//printf(fic,"DEC - final state: ");display_cipher_state(state,keyCells,ver);//f//printf(fic,"\n"); + #endif + + if (versions[ver][0]==64) + { + for(i = 0; i < 8; i++) + input[i] = ((state[(2*i)>>2][(2*i)&0x3] & 0xF) << 4) | (state[(2*i+1)>>2][(2*i+1)&0x3] & 0xF); + } + else if (versions[ver][0]==128) + { + for(i = 0; i < 16; i++) + input[i] = state[i>>2][i&0x3] & 0xFF; + } +} + +// encryption function of Skinny +void enc(unsigned char* input, const unsigned char* userkey, int ver) +{ + unsigned char state[4][4]; + unsigned char keyCells[3][4][4]; + int i; + + memset(keyCells, 0, 48); + for(i = 0; i < 16; i++) { + if (versions[ver][0]==64){ + if(i&1) + { + state[i>>2][i&0x3] = input[i>>1]&0xF; + keyCells[0][i>>2][i&0x3] = userkey[i>>1]&0xF; + if (versions[ver][1]>=128) + keyCells[1][i>>2][i&0x3] = userkey[(i+16)>>1]&0xF; + if (versions[ver][1]>=192) + keyCells[2][i>>2][i&0x3] = userkey[(i+32)>>1]&0xF; + } + else + { + state[i>>2][i&0x3] = (input[i>>1]>>4)&0xF; + keyCells[0][i>>2][i&0x3] = (userkey[i>>1]>>4)&0xF; + if (versions[ver][1]>=128) + keyCells[1][i>>2][i&0x3] = (userkey[(i+16)>>1]>>4)&0xF; + if (versions[ver][1]>=192) + keyCells[2][i>>2][i&0x3] = (userkey[(i+32)>>1]>>4)&0xF; + } + } + else if (versions[ver][0]==128){ + state[i>>2][i&0x3] = input[i]&0xFF; + keyCells[0][i>>2][i&0x3] = userkey[i]&0xFF; + if (versions[ver][1]>=256) + keyCells[1][i>>2][i&0x3] = userkey[i+16]&0xFF; + if (versions[ver][1]>=384) + keyCells[2][i>>2][i&0x3] = userkey[i+32]&0xFF; + } + } + + #ifdef DEBUG + //printf("ENC - initial state: ");display_cipher_state(state,keyCells,ver);//printf("\n"); + #endif + for(i = 0; i < versions[ver][2]; i++){ + if (versions[ver][0]==64) + SubCell4(state); + else + SubCell8(state); + #ifdef DEBUG + //printf("ENC - round %.2i - after SubCell: ",i);display_cipher_state(state,keyCells,ver);//printf("\n"); + #endif + AddConstants(state, i); + #ifdef DEBUG + //printf("ENC - round %.2i - after AddConstants: ",i);display_cipher_state(state,keyCells,ver);//printf("\n"); + #endif + AddKey(state, keyCells, ver); + #ifdef DEBUG + //printf("ENC - round %.2i - after AddKey: ",i);display_cipher_state(state,keyCells,ver);//printf("\n"); + #endif + ShiftRows(state); + #ifdef DEBUG + //printf("ENC - round %.2i - after ShiftRows: ",i);display_cipher_state(state,keyCells,ver);//printf("\n"); + #endif + MixColumn(state); + #ifdef DEBUG + //printf("ENC - round %.2i - after MixColumn: ",i);display_cipher_state(state,keyCells,ver);//printf("\n"); + #endif + } //The last subtweakey should not be added + + #ifdef DEBUG + //printf("ENC - final state: ");display_cipher_state(state,keyCells,ver);//printf("\n"); + #endif + + if (versions[ver][0]==64) + { + for(i = 0; i < 8; i++) + input[i] = ((state[(2*i)>>2][(2*i)&0x3] & 0xF) << 4) | (state[(2*i+1)>>2][(2*i+1)&0x3] & 0xF); + } + else if (versions[ver][0]==128) + { + for(i = 0; i < 16; i++) + input[i] = state[i>>2][i&0x3] & 0xFF; + } +} + +void skinny_128_256_enc (unsigned char* input, const unsigned char* userkey) { + enc(input,userkey,4); +} + +// generate test vectors for all the versions of Skinny +void TestVectors(int ver) +{ + unsigned char p[16]; + unsigned char c[16]; + unsigned char k[48]; + int n; + + for(n = 1; n < 10; n++) + { + int i; + for(i = 0; i < (versions[ver][0]>>3); i++) c[i] = p[i] = rand() & 0xff; + for(i = 0; i < (versions[ver][1]>>3); i++) k[i] = rand() & 0xff; + //printf("TK = "); for(i = 0; i < (versions[ver][1]>>3); i++) //printf("%02x", k[i]); //printf("\n"); + //printf("P = "); for(i = 0; i < (versions[ver][0]>>3); i++) //printf("%02x", p[i]); //printf("\n"); + enc(c,k,ver); + //printf("C = "); for(i = 0; i < (versions[ver][0]>>3); i++) //printf("%02x", c[i]); //printf("\n"); + dec(c,k,ver); + //printf("P' = "); for(i = 0; i < (versions[ver][0]>>3); i++) //printf("%02x", c[i]); //printf("\n\n"); + } +} + +/* int main() { */ +/* unsigned int i; */ +/* char name[30]; */ + +/* srand((unsigned) time (NULL)); */ + +/* //test all versions of Skinny */ +/* for (i=0; i<(sizeof(versions)/sizeof(*versions));i++) */ +/* { */ +/* s//printf(name, "test_vectors_%i_%i.txt", versions[i][0], versions[i][1]); */ +/* fic=fopen(name,"w"); */ +/* //printf("\n\nSkinny-%i/%i: \n",versions[i][0],versions[i][1]); */ +/* TestVectors(i); */ +/* fclose(fic); */ +/* //printf("Generating test vectors for Skinny-%i/%i - saved in file test_vectors_%i_%i.txt \n",versions[i][0],versions[i][1],versions[i][0],versions[i][1]); */ +/* } */ + +/* return 0; */ +/* } */ + + + diff --git a/romulus/Implementations/crypto_aead/romulusn3/ref/variant.h b/romulus/Implementations/crypto_aead/romulusn3/ref/variant.h new file mode 100644 index 0000000..27e7705 --- /dev/null +++ b/romulus/Implementations/crypto_aead/romulusn3/ref/variant.h @@ -0,0 +1,3 @@ +#define MSG_BLK_LEN 16 +#define AD_BLK_LEN_ODD 16 +#define AD_BLK_LEN_EVN 12 diff --git a/romulus/Implementations/crypto_aead/romulusn3v12/LWC_AEAD_KAT_128_96.txt b/romulus/Implementations/crypto_aead/romulusn3v12/LWC_AEAD_KAT_128_96.txt deleted file mode 100644 index 384bc3e..0000000 --- a/romulus/Implementations/crypto_aead/romulusn3v12/LWC_AEAD_KAT_128_96.txt +++ /dev/null @@ -1,7623 +0,0 @@ -Count = 1 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = -AD = -CT = 8F13641C9EB6C1307C40947E0326D8F2 - -Count = 2 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = -AD = 00 -CT = B12064E6DBB7BB6D081436FF7CA65AE1 - -Count = 3 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = -AD = 0001 -CT = FEA10D48FB277672BF47C3FCE4EF4966 - -Count = 4 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = -AD = 000102 -CT = 2E7A74514D401CB194AC2EFCF7B7396A - -Count = 5 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = -AD = 00010203 -CT = 1FFC1E07934B4F00053444B8BF58A700 - -Count = 6 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = -AD = 0001020304 -CT = 71BDF3AD797D3EEF55CE82D4BDBB9140 - -Count = 7 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = -AD = 000102030405 -CT = 6258DE1707590A93B4ABE1D506B405AD - -Count = 8 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = -AD = 00010203040506 -CT = 7FC140A0827E94FCA4CD6DF8552CAEF8 - -Count = 9 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = -AD = 0001020304050607 -CT = 6E358D0AB1F662110E9575108DED9B04 - -Count = 10 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = -AD = 000102030405060708 -CT = 45A2EEAC0C64962B560A6566C9CEC8F5 - -Count = 11 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = -AD = 00010203040506070809 -CT = AD7762A892816389E47AE51A7A3AE083 - -Count = 12 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = -AD = 000102030405060708090A -CT = A946DFBBDC58BB2FAFA332DD489707AE - -Count = 13 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = -AD = 000102030405060708090A0B -CT = 2AB43C90761D20C916B1E1CFA34BB851 - -Count = 14 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = -AD = 000102030405060708090A0B0C -CT = 1D74BF88344350B9A3F19B01A467B964 - -Count = 15 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = -AD = 000102030405060708090A0B0C0D -CT = A73C27CEC4C90A60657984ECF14F4311 - -Count = 16 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = -AD = 000102030405060708090A0B0C0D0E -CT = 9492A26AF193AC8795460141CD63860B - -Count = 17 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = -AD = 000102030405060708090A0B0C0D0E0F -CT = 2252E574D9AF87121148FEFFA823A7AA - -Count = 18 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = -AD = 000102030405060708090A0B0C0D0E0F10 -CT = C72F18D2C55EA6D7334F49A96965345E - -Count = 19 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 6E8AAF32A94307A8908CA6324D236D4D - -Count = 20 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = 20575D481A84E1AB52E0FBEF9AE4A236 - -Count = 21 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = CD46846451099CE17833D585648AE086 - -Count = 22 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = C6637DA570A27EDB37352D9139D68253 - -Count = 23 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = 856DEFC827B515CB9BF5345968668ED8 - -Count = 24 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = 13342A12C7E66227EACD20799E63D4FD - -Count = 25 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = FE1D77D9A2DB00DF11D49BE96EE17C6B - -Count = 26 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = EC825A7D1E7EBC0317C276FCEF297014 - -Count = 27 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = E2A36A4CCE59A358AA8D26DBAE8C20FF - -Count = 28 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 599292757F1270FE618818F69EC27C2E - -Count = 29 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = B80C2E6054ECCEEADBCCCF1F71556704 - -Count = 30 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = CDE9D19136EC000F6164EF8D1744061C - -Count = 31 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = 2A2C6F891B3A800D0356D2ECE2A8CBE2 - -Count = 32 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = C420CE77311CA0F1651173628C42B8A6 - -Count = 33 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = FCEECFBBE9CA6C7D94ABE3D5F33175F9 - -Count = 34 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00 -AD = -CT = C9B1E62EADFA676C59497D904C1BA69015 - -Count = 35 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00 -AD = 00 -CT = 237EC5AC4CA64DB10EAFC536CC8BE626EF - -Count = 36 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00 -AD = 0001 -CT = FEB3AED937210D5425A543ECC77DFA16AD - -Count = 37 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00 -AD = 000102 -CT = EC1A7F90FFE18A7384E6B5F30DA547C954 - -Count = 38 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00 -AD = 00010203 -CT = D10AB523132F0DFCB7F89D5EB80148C942 - -Count = 39 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00 -AD = 0001020304 -CT = A76BAF7ABBA866296578E827F56F060BE3 - -Count = 40 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00 -AD = 000102030405 -CT = DB0B51C1A9303D74F559CB938DC3B396AB - -Count = 41 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00 -AD = 00010203040506 -CT = 1D087D03E6CCDE88F034EF779F4936F136 - -Count = 42 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00 -AD = 0001020304050607 -CT = 4E8F4AC460F0A14D3632095232905E89A3 - -Count = 43 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00 -AD = 000102030405060708 -CT = FEB1BA6ED7015CE1A2A17D88866D280A39 - -Count = 44 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00 -AD = 00010203040506070809 -CT = E9020BFFA16CA0145C98C9C7BD917FCC97 - -Count = 45 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00 -AD = 000102030405060708090A -CT = FC57116EEADA77BD9781452F2C3EC1BBCE - -Count = 46 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00 -AD = 000102030405060708090A0B -CT = 02268235DA395874709E2880A1DC0356C4 - -Count = 47 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00 -AD = 000102030405060708090A0B0C -CT = 82EB11B55495F6AEEA8C31A0BCA68BD71C - -Count = 48 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00 -AD = 000102030405060708090A0B0C0D -CT = 5D1805D1A0137E94F8C2DF338F3FB33E75 - -Count = 49 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00 -AD = 000102030405060708090A0B0C0D0E -CT = F588FC532615510D4246CCAB1347972897 - -Count = 50 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00 -AD = 000102030405060708090A0B0C0D0E0F -CT = 0F09A8F8DAEF5BD76705493B0DC01DF196 - -Count = 51 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 18BFDF06F757F217B51778D1231D35173C - -Count = 52 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 0A4164F91A10EAEA6B498F69895BF332DA - -Count = 53 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = 811116F4DE216DC9A287F2BB86EF85C77B - -Count = 54 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = C53E2D862469A730C55147B4C3C3A177FE - -Count = 55 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = DDD7A5F896CB859F4AF52CE543507E08BF - -Count = 56 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = 80A1B1753382025F8D24115E7A51DF83F4 - -Count = 57 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = D840DA3949F2D36AA8F718C9350DCDC81E - -Count = 58 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = A5FF27C3B0B489AD79AE3BD8DF96C6A9E2 - -Count = 59 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 23979AFF552136775744E6A3E0A8826A30 - -Count = 60 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = BAFE8A72E5F1373B9FCB820BC89B62D94C - -Count = 61 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 6FB5657B20942FC69249F15433C0692D38 - -Count = 62 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 93BC612B3A74FD5B4DB79BC42226A23C75 - -Count = 63 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = 86D7D5CFBE500E50B1630268D8B5993A18 - -Count = 64 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = A4C763B7BF5974C3178476253183F3090C - -Count = 65 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = D40EB14A9264EB34276B2100C8EDA817E5 - -Count = 66 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 6E5572161B410A3D8CF17A10D39A0222DD - -Count = 67 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001 -AD = -CT = C9F982392533D3566DACC5F4210DCE21FA96 - -Count = 68 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001 -AD = 00 -CT = 231940C9D3B498A0103361F560B4A6081360 - -Count = 69 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001 -AD = 0001 -CT = FE9DE0658A4FE39D5A61C460A64E8262B1B6 - -Count = 70 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001 -AD = 000102 -CT = EC816FAC8F6C562459F5088347C2C18DD303 - -Count = 71 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001 -AD = 00010203 -CT = D1899AC8C34A16A568F537FF59D25EE21EC0 - -Count = 72 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001 -AD = 0001020304 -CT = A748EA5F576C15C2B2884AACE65CB6A49113 - -Count = 73 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001 -AD = 000102030405 -CT = DB24251352868E5E63F270B7C2313E4BFA7B - -Count = 74 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001 -AD = 00010203040506 -CT = 1D17BE35E3477E9331D60ADA365B0DB266C5 - -Count = 75 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001 -AD = 0001020304050607 -CT = 4E983B192E42B54C785A32570D7F7ABD37F9 - -Count = 76 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001 -AD = 000102030405060708 -CT = FE62C51E117D0053F17ABF450703A92F6FF1 - -Count = 77 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001 -AD = 00010203040506070809 -CT = E9C2B8078986ACC339F889A7F1F5CE349DED - -Count = 78 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001 -AD = 000102030405060708090A -CT = FCD0E62BBB8FB51A7F1594A8256E1BE2F9AB - -Count = 79 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001 -AD = 000102030405060708090A0B -CT = 02282414BA729A3A960528BB0753A9B4A148 - -Count = 80 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001 -AD = 000102030405060708090A0B0C -CT = 82B64D10719E5B1F43FCF51C63F7A3A39330 - -Count = 81 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001 -AD = 000102030405060708090A0B0C0D -CT = 5DC078B872210F0FA3FABF9C6F216C9F41BF - -Count = 82 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001 -AD = 000102030405060708090A0B0C0D0E -CT = F5E225D7290AAD96EC131CAD0C6251507600 - -Count = 83 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001 -AD = 000102030405060708090A0B0C0D0E0F -CT = 0F47189BD9D1E44EAB3208C941B15F7D14A9 - -Count = 84 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 183BC85265A336B277AB7F252442334C17CA - -Count = 85 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 0AD4E84CC8DA28493C28BD7F20FAD5C4CEA8 - -Count = 86 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = 81E2E5B99CF1E5B4E1E95A6BCC00CFF96EE4 - -Count = 87 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = C51BF8FBFCE942E4B9C0335EC72786C0DBCB - -Count = 88 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = DD72ECCD2856B7C0FDD26D4E374EEC879375 - -Count = 89 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = 8079A9735DEB4B0006A4493BDAD56116BFE9 - -Count = 90 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = D84873327AB0B6237BC00FBCA04A80F1C737 - -Count = 91 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = A5F03AE91B7FBAA7A4A2B54576F13C2DED3F - -Count = 92 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 236E1DF60F60A01110832857B416BA82C8CA - -Count = 93 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = BAECF624A640679ECC5E6BA72FA5CA16DC18 - -Count = 94 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 6FEA7927AC274D13C397337EEE3C0B701B38 - -Count = 95 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 935161C2BA7B6CF304BB1841B6E148238945 - -Count = 96 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = 8647ABD44A4D185908F74D3E3FFD16FCEE38 - -Count = 97 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = A4ECB9DA15A3633C86F3E11FBE5065B038A5 - -Count = 98 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = D4C89D46AF4546045CA7224B3343F9BF41E2 - -Count = 99 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 6EF9B5A0803A90FB2A1F11B9C68A0E4464EC - -Count = 100 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102 -AD = -CT = C9F98EDFAB30D37588E2091B11DD3544732354 - -Count = 101 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102 -AD = 00 -CT = 2319705BAFF7EBC8AC91D147CD93C4A1A13432 - -Count = 102 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102 -AD = 0001 -CT = FE9D36B78AF5CC41D79B956C2A41AB44F9FCA1 - -Count = 103 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102 -AD = 000102 -CT = EC81D55D5F3E073D7E9E0518E65086D07F7B67 - -Count = 104 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102 -AD = 00010203 -CT = D18908D0F0A3367D17089EA5BD757E5909E23F - -Count = 105 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102 -AD = 0001020304 -CT = A748A828E28DEB0DE01FAB79411DFFD59AF9C9 - -Count = 106 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102 -AD = 000102030405 -CT = DB24D061BE0A04F315D526F9051DBB3DA1C0F9 - -Count = 107 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102 -AD = 00010203040506 -CT = 1D1756BE37310966A4267EC854E1628C7D4660 - -Count = 108 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102 -AD = 0001020304050607 -CT = 4E9807C7F07380EFD416D9FCBE60ECFC524439 - -Count = 109 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102 -AD = 000102030405060708 -CT = FE628DA0638EC0EC11625A11C530314EA635C1 - -Count = 110 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102 -AD = 00010203040506070809 -CT = E9C2859D9116B31D3DA324D1C28CBCD895258D - -Count = 111 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102 -AD = 000102030405060708090A -CT = FCD0427833BC178B4DD4778D232BF7A631A4E4 - -Count = 112 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102 -AD = 000102030405060708090A0B -CT = 0228F042B0A755AE09EA73BB60CD0E644370E4 - -Count = 113 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102 -AD = 000102030405060708090A0B0C -CT = 82B6B9182831A9B38A012D1D65A88AF4DA6776 - -Count = 114 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102 -AD = 000102030405060708090A0B0C0D -CT = 5DC0EAEBE52D166D03E1967E2830B40135476B - -Count = 115 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102 -AD = 000102030405060708090A0B0C0D0E -CT = F5E273CE1863DAD994C1048026202141585526 - -Count = 116 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102 -AD = 000102030405060708090A0B0C0D0E0F -CT = 0F47F3C6C231BE30E69852FD544F0B973A3963 - -Count = 117 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 183BCBBC1D3456783267B79B4359A916B7510E - -Count = 118 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 0AD4E3283EE6F0FA076353CF775B760321AB05 - -Count = 119 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = 81E22BA840799993E44284FE542DA4DCC04BAF - -Count = 120 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = C51B01B207B3DE64E6459646831521BD5C9286 - -Count = 121 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = DD724F6BADA3DD4F789CCBA558A0BBC15ABDE6 - -Count = 122 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = 8079ED1CAEB76F7825E51E78EFD18225E3DCAA - -Count = 123 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = D84816EB409A228281499542BACA3F29E32E85 - -Count = 124 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = A5F0507F03E3CB94A5885761DE8FE18BAA30BB - -Count = 125 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 236EA8C6FC303ACBA910F592D1E557BDDC303B - -Count = 126 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = BAEC6972C544D12674CDE7059F219270D0E794 - -Count = 127 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 6FEAF78A7D0D3AF00D7352DC85B1D0716466EB - -Count = 128 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 9351D4A1B7435DEA389B4B3504EEB5B23B0168 - -Count = 129 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = 86474F442BAB29689DFFDCF7D8E3826179A52F - -Count = 130 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = A4ECA3C1BA0FBC28D768FAD240BCA22777DBEA - -Count = 131 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = D4C818C3FB7AE4BB0014C977C76861270ED00D - -Count = 132 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 6EF9B5A9090169F8A05326FAF574087660D8BF - -Count = 133 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203 -AD = -CT = C9F98EB87D2F4FF2E3A1DEEAB6BB679593A771BF - -Count = 134 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203 -AD = 00 -CT = 231970384065F6CDD955EE6FB4394D7EAF2542A5 - -Count = 135 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203 -AD = 0001 -CT = FE9D361C2C22520F4FB0F4EAFB2531C8ABCC3D13 - -Count = 136 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203 -AD = 000102 -CT = EC81D566715AEBC39B2D009F49212B1E69A5777E - -Count = 137 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203 -AD = 00010203 -CT = D189084BF094FABCF902C09AD7607D1F12E46A0E - -Count = 138 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203 -AD = 0001020304 -CT = A748A86562192C5ACCA653789A14B4070DC827DD - -Count = 139 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203 -AD = 000102030405 -CT = DB24D07822F0427E5F7E59E3B0D7C3228171747C - -Count = 140 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203 -AD = 00010203040506 -CT = 1D17560B315CD7DDF1A17357E04AE29A69A636CB - -Count = 141 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203 -AD = 0001020304050607 -CT = 4E9807772A0A414FD8E36899F709C69291048123 - -Count = 142 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203 -AD = 000102030405060708 -CT = FE628D5C84AF0519A8EE13F428A716826EF4E343 - -Count = 143 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203 -AD = 00010203040506070809 -CT = E9C28585340DC1AE4ED2999BDCAD91FBEAC12665 - -Count = 144 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203 -AD = 000102030405060708090A -CT = FCD0420F268F5728C6A25B4476EC1897A5F8041F - -Count = 145 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203 -AD = 000102030405060708090A0B -CT = 0228F0AB240916D33C8CB81E1BC3C4564C590765 - -Count = 146 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203 -AD = 000102030405060708090A0B0C -CT = 82B6B9CC769109CF58079A849C9455A4C1FF2305 - -Count = 147 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203 -AD = 000102030405060708090A0B0C0D -CT = 5DC0EAA36DC15EDB9403A69C2B66B4D8B1613A34 - -Count = 148 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203 -AD = 000102030405060708090A0B0C0D0E -CT = F5E273C07AA1B578A4DE7658A77D4E13E29DED85 - -Count = 149 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203 -AD = 000102030405060708090A0B0C0D0E0F -CT = 0F47F3B0CBAE55319CCEFF894645E96A0BFF2DCE - -Count = 150 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 183BCB0C2813B63ADE7985F3BB82FB4756A6795B - -Count = 151 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 0AD4E35D60AF8D7EC98110DFDAEF0BBBAA15A7EB - -Count = 152 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = 81E22B728D198E5F5FE3761283A448851F980F0F - -Count = 153 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = C51B01EF4685E55550789F40498DA3E33DFB1416 - -Count = 154 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = DD724F3973312E44824FB0686644773ED85CD788 - -Count = 155 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = 8079ED0F4ECBEFCEC5CBE7E46C3F050837CEE18F - -Count = 156 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = D84816B84972086C7B7732544672F0FF0331717B - -Count = 157 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = A5F050BCCFC7E412DB1D893A8005804D721DE238 - -Count = 158 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 236EA861CED78AA960F0D1C8F40E41DBE08BF3C8 - -Count = 159 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = BAEC69C02C262C03417FDDCFF72E821A4F0A7617 - -Count = 160 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 6FEAF790ED59AEBB93421E56D498DC94C53CC031 - -Count = 161 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 9351D46C641F16058B806A38F4C904959A0568EC - -Count = 162 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = 86474F47B0D522807A9434ADF5BAAB7003020EFD - -Count = 163 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = A4ECA33C356A65882441DC51EDD09461D74FA33E - -Count = 164 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = D4C8184C91955C6165194FB088401E8E962C6653 - -Count = 165 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 6EF9B5F26EA656F4AEBE733C844A07161DFC835F - -Count = 166 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304 -AD = -CT = C9F98EB86B382DD8E1D97766A8E05FE143594E02CD - -Count = 167 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304 -AD = 00 -CT = 2319703816065507A1019FB7D27B92F07A2D605924 - -Count = 168 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304 -AD = 0001 -CT = FE9D361C3552E5398CCF5D735C7C2BE33A71C58D87 - -Count = 169 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304 -AD = 000102 -CT = EC81D566D4BB2E26C883E3D4EAD46E0F835113411F - -Count = 170 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304 -AD = 00010203 -CT = D189084B1257E3A348CF873B5159A1A2F679C37A58 - -Count = 171 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304 -AD = 0001020304 -CT = A748A865EC0DB61D31CB0E6E1190106F960587FCA6 - -Count = 172 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304 -AD = 000102030405 -CT = DB24D0782A2E5FF25BBC07F46BE4F38EF1E8FA31FF - -Count = 173 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304 -AD = 00010203040506 -CT = 1D17560BBF2104D2260944386FC692199A976B0982 - -Count = 174 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304 -AD = 0001020304050607 -CT = 4E9807774B7F620D5E24809D595BB597BEC3E844F3 - -Count = 175 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304 -AD = 000102030405060708 -CT = FE628D5C6CBB2FA1B6AC731B315457F4A0B39D1135 - -Count = 176 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304 -AD = 00010203040506070809 -CT = E9C2858529ED986ACE480222C61E3A43809E4D7A2D - -Count = 177 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304 -AD = 000102030405060708090A -CT = FCD0420F6E5F30607911B021883AF713B9692F135A - -Count = 178 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304 -AD = 000102030405060708090A0B -CT = 0228F0ABBA9F051BE29A11596314CA6A419CE22E76 - -Count = 179 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304 -AD = 000102030405060708090A0B0C -CT = 82B6B9CC40F146650EC28E75F5A882736F86814E73 - -Count = 180 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304 -AD = 000102030405060708090A0B0C0D -CT = 5DC0EAA3E458347C639BB1E3EAAA579DF55F4A533E - -Count = 181 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304 -AD = 000102030405060708090A0B0C0D0E -CT = F5E273C0B8D663B2400D93A5D336394224F7537F4D - -Count = 182 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304 -AD = 000102030405060708090A0B0C0D0E0F -CT = 0F47F3B0C6848EEEC60CF952333A04F389607D60A0 - -Count = 183 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 183BCB0CE338A80EB6A14CDF51D3DE9FC10B1FADB9 - -Count = 184 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 0AD4E35D0CADA4C20563CED2F59DBFBA287087C43F - -Count = 185 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = 81E22B726999228CED5FC514A50F3FD4989A7F1724 - -Count = 186 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = C51B01EF48D5663C1BF78E89F108AA6E2D93983DE8 - -Count = 187 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = DD724F39ED3E20FFC1502678DD497213DE09193BD0 - -Count = 188 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = 8079ED0F7209BD16B55C8ADB9868CACAFCA7D394C4 - -Count = 189 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = D84816B878657B36CCB8AFB581AC7705F2187EBBC4 - -Count = 190 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = A5F050BCA2E2B078E8F64D24D19BCCB577CCB3FE09 - -Count = 191 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 236EA861E03D32998A463E2D4EB6AE57B691AC1596 - -Count = 192 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = BAEC69C08B4BA3FE7D25B2DEFEFC9EA07D364AA3B5 - -Count = 193 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 6FEAF7907655D5B8933883B0725C5BDD140F7CE19B - -Count = 194 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 9351D46CF95AC5845B92B3217A807EC5F82EF7F082 - -Count = 195 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = 86474F47C9B2533CA44A3002F2990448E909F7FCC3 - -Count = 196 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = A4ECA33C0C1842F03E6A562A25F44AD63AD5FFDD42 - -Count = 197 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = D4C8184CC290FB669C716222CA16DA7E90215D5836 - -Count = 198 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 6EF9B5F2232B22882A89DBE5BDA59EBACB9F1862E2 - -Count = 199 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405 -AD = -CT = C9F98EB86B5565C45D664E887985C6F8D427057D637A - -Count = 200 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405 -AD = 00 -CT = 23197038165DBB4B16F8CD78EF490629B79896D984E4 - -Count = 201 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405 -AD = 0001 -CT = FE9D361C358B6C6649FAE887FB986A01F2D208E26F3B - -Count = 202 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405 -AD = 000102 -CT = EC81D566D4E374C0558D95FBEFE2F466DD587C957CE8 - -Count = 203 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405 -AD = 00010203 -CT = D189084B12BEE8097E483D636342E69F6C2713209BA8 - -Count = 204 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405 -AD = 0001020304 -CT = A748A865EC8E2D64D88E56F5E2036814ABDE49BCC3A6 - -Count = 205 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405 -AD = 000102030405 -CT = DB24D0782A7B8A4A5171D80E217C19CAEE74A04E78AC - -Count = 206 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405 -AD = 00010203040506 -CT = 1D17560BBF8D61BAA6CDDB10D62EE25943683A9064EE - -Count = 207 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405 -AD = 0001020304050607 -CT = 4E9807774B4EA105C1B4C5AE48793D9367FEF8B8CD7D - -Count = 208 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405 -AD = 000102030405060708 -CT = FE628D5C6C63FE91963DC89D226FE1F2302DFDC0C4AF - -Count = 209 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405 -AD = 00010203040506070809 -CT = E9C2858529D6A761C238FE747745022909F526B293BE - -Count = 210 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405 -AD = 000102030405060708090A -CT = FCD0420F6E341B084BCB1D4EF1E35BB414EB34AD40B0 - -Count = 211 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405 -AD = 000102030405060708090A0B -CT = 0228F0ABBA1AB1D126368CAB5D6E3731CFCAC5F80883 - -Count = 212 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405 -AD = 000102030405060708090A0B0C -CT = 82B6B9CC40977C48FDF9AACC3372B58636315A79845D - -Count = 213 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405 -AD = 000102030405060708090A0B0C0D -CT = 5DC0EAA3E48EE91830D08E89FD8A5A953776D8FB75D2 - -Count = 214 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405 -AD = 000102030405060708090A0B0C0D0E -CT = F5E273C0B85F90E5B23FABEA4C54AAB4731D01B74620 - -Count = 215 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405 -AD = 000102030405060708090A0B0C0D0E0F -CT = 0F47F3B0C630105F92E61BA66702C18B74B632DB717E - -Count = 216 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 183BCB0CE30876B669CB645FE1F443D2D5B912CCB24C - -Count = 217 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 0AD4E35D0CDB1AF3AB42A22E8A058F697CEA1E9CFE8F - -Count = 218 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = 81E22B7269ECD70CA9099C105761B19109C0698FD4F5 - -Count = 219 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = C51B01EF48E7BCFC55008C5C143F1751BAE91F0EEF1E - -Count = 220 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = DD724F39ED7499827D63F9716F9DBDC458565530A0C6 - -Count = 221 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = 8079ED0F7239437922C797BDEA105A5C88CC301694ED - -Count = 222 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = D84816B878D7927F0776CE06A0F16F5E1E45BC87C55E - -Count = 223 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = A5F050BCA298591F584B3FE86B1994FC7986968B05B7 - -Count = 224 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 236EA861E0F671BFF301826750BDAD9F69969F2C55AB - -Count = 225 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = BAEC69C08B738B36890ADEC41942E34913422326E3C3 - -Count = 226 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 6FEAF790766470011844D422F4B37EBDDB1D8FE0C323 - -Count = 227 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 9351D46CF9BE9DA6BA69A43319763B5257DA065EEDD4 - -Count = 228 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = 86474F47C9B332BD6E245FE9CD9A8D02E48D03159D7E - -Count = 229 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = A4ECA33C0C64812A3FDEB803AF287C8F1C07B0371F62 - -Count = 230 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = D4C8184CC25687E958262AF7325934D3C01DE34DA1DB - -Count = 231 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 6EF9B5F2233984B2D0FDE45161FE5517368731DD8166 - -Count = 232 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506 -AD = -CT = C9F98EB86B55275645FF9B67FF6F6C093F4536963F7FA6 - -Count = 233 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506 -AD = 00 -CT = 23197038165DFAD597DE1282BAB261D5AF895E8C6B5E8A - -Count = 234 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506 -AD = 0001 -CT = FE9D361C358BCE6A6FB419FF31E0D7CD44130AAFA5FDC7 - -Count = 235 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506 -AD = 000102 -CT = EC81D566D4E35B131DCDD7E95CE7C8F9F74C03FE59CE52 - -Count = 236 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506 -AD = 00010203 -CT = D189084B12BEC8E81C95874C5A091E5BAD4FDF42216EA8 - -Count = 237 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506 -AD = 0001020304 -CT = A748A865EC8E7714DEA5465FA0286FE9EE4CD4163FA06A - -Count = 238 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506 -AD = 000102030405 -CT = DB24D0782A7BB0DE9CA577C8960E04A4851730533811EF - -Count = 239 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506 -AD = 00010203040506 -CT = 1D17560BBF8DC949066398482FF82E6AC6C45E310340E5 - -Count = 240 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506 -AD = 0001020304050607 -CT = 4E9807774B4E1421C304BD85908648BF239C99CE8F2B02 - -Count = 241 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506 -AD = 000102030405060708 -CT = FE628D5C6C63477186F8699775D6188418B9FAD6D69DAB - -Count = 242 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506 -AD = 00010203040506070809 -CT = E9C2858529D6FE30E55D578379C80EF7B4EAE8EEFE3DD6 - -Count = 243 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506 -AD = 000102030405060708090A -CT = FCD0420F6E34CE83AC5020950A57848CEE6CBA19C369E8 - -Count = 244 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506 -AD = 000102030405060708090A0B -CT = 0228F0ABBA1AB3D8B9728E06FAFD83478D7895D8E461B5 - -Count = 245 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506 -AD = 000102030405060708090A0B0C -CT = 82B6B9CC4097AC2D4E2B8CB34618971F709545358D7769 - -Count = 246 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506 -AD = 000102030405060708090A0B0C0D -CT = 5DC0EAA3E48E7216A3E5C6CB388EF254EBC4F4598FDA34 - -Count = 247 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506 -AD = 000102030405060708090A0B0C0D0E -CT = F5E273C0B85FF67668630037DE107A5A570E3970967DB3 - -Count = 248 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506 -AD = 000102030405060708090A0B0C0D0E0F -CT = 0F47F3B0C630FE4A7789F5618B98A65119C742F2911B83 - -Count = 249 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 183BCB0CE308719E54480BB8D4DEB9888D678E6254017B - -Count = 250 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 0AD4E35D0CDB5C1967DAF995F8CDB3B09FEC2925EEE326 - -Count = 251 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = 81E22B7269ECB5C93C6320FEA3D60079412ED9075F1A2C - -Count = 252 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = C51B01EF48E764AA6FF70466E26BF096D77E1A931ABA01 - -Count = 253 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = DD724F39ED749720DA3420434385F865032064A130A3EE - -Count = 254 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = 8079ED0F7239C782421D722D0554F31411B1E5473409E8 - -Count = 255 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = D84816B878D7164C6FA25C684694A926C3AD5E9FB940D7 - -Count = 256 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = A5F050BCA298C6448D3B3B059FC94F88AC78F449D7F0EB - -Count = 257 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 236EA861E0F625E0A4F0F2B9069826E0AE70E07053A087 - -Count = 258 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = BAEC69C08B733ECF9B9DE3198C57E244BEEB42770C15D5 - -Count = 259 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 6FEAF790766419034893D4BAD35C267D4B8B8C6978AD35 - -Count = 260 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 9351D46CF9BE443E868432850AD7827A70C7A8E096550B - -Count = 261 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = 86474F47C9B37AAC79FADC6A01CBE120F5A3D22021D09C - -Count = 262 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = A4ECA33C0C646BCA646074CF31092F5B8C393AD9EF4F31 - -Count = 263 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = D4C8184CC25612F55CA3CDBD98E4053268CCF49B9016E2 - -Count = 264 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 6EF9B5F223391BC250288F9E16FEF9C68EADE2A44923E7 - -Count = 265 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304050607 -AD = -CT = C9F98EB86B5527F8BDA81A5B539A64081EE0B27B15BED3F1 - -Count = 266 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304050607 -AD = 00 -CT = 23197038165DFA2E532972E2B3E4F5011FBA7E852F5DF258 - -Count = 267 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304050607 -AD = 0001 -CT = FE9D361C358BCE63FF096B5224A96C34EBF79C8B770AEA70 - -Count = 268 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304050607 -AD = 000102 -CT = EC81D566D4E35BC94772BF45CD0FADE0597760CD94258F13 - -Count = 269 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304050607 -AD = 00010203 -CT = D189084B12BEC8FC6DAE6001B5BFE5977C4376B1CD74A542 - -Count = 270 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304050607 -AD = 0001020304 -CT = A748A865EC8E77BF3D1D081D474087689ADEB148B3CCACE3 - -Count = 271 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304050607 -AD = 000102030405 -CT = DB24D0782A7BB0A96148D8B25E91E192DE147D3096E89101 - -Count = 272 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304050607 -AD = 00010203040506 -CT = 1D17560BBF8DC97238B8BDDCAE4443BE8C9B16D65F80480D - -Count = 273 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304050607 -AD = 0001020304050607 -CT = 4E9807774B4E14B5D00E283AF3710DB01A86B6FFE110429A - -Count = 274 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304050607 -AD = 000102030405060708 -CT = FE628D5C6C6347FC88C4C8BF373370D698D0EAD50AA6B8A5 - -Count = 275 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304050607 -AD = 00010203040506070809 -CT = E9C2858529D6FEB545A063F7D56DAEEDFEC0B83436E2A76E - -Count = 276 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304050607 -AD = 000102030405060708090A -CT = FCD0420F6E34CE1DEBD6A9219DBEC0C4C736B48986A0D4B3 - -Count = 277 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304050607 -AD = 000102030405060708090A0B -CT = 0228F0ABBA1AB39F45DB6EFDA61612C97C5E99F5BBCBB52B - -Count = 278 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304050607 -AD = 000102030405060708090A0B0C -CT = 82B6B9CC4097AC5E46DB165EDCCC8443C21A9E02F7A0EA28 - -Count = 279 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304050607 -AD = 000102030405060708090A0B0C0D -CT = 5DC0EAA3E48E728DB5689505F653B9882156BA8A561AF9F5 - -Count = 280 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304050607 -AD = 000102030405060708090A0B0C0D0E -CT = F5E273C0B85FF6299797CDDD486A5DB010388CF5A18A688C - -Count = 281 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304050607 -AD = 000102030405060708090A0B0C0D0E0F -CT = 0F47F3B0C630FE5985C97AB434E7CF00BB6F55BFE17192C4 - -Count = 282 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304050607 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 183BCB0CE30871A0B106129273B103713FB6E7BA2353F197 - -Count = 283 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304050607 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 0AD4E35D0CDB5C46BE4AB61D90D94275ABCDA50C86033D92 - -Count = 284 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304050607 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = 81E22B7269ECB5CA8D8C5E9CF2B81BDE8953EF163563EEC4 - -Count = 285 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304050607 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = C51B01EF48E764BE9C881C90703BB8BE60FFE3B266052EA3 - -Count = 286 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304050607 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = DD724F39ED7497B7CA43523DC2EC21357CA92B6DE88E87ED - -Count = 287 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304050607 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = 8079ED0F7239C79363AC70E4F77CC466CA23208E24D14FD7 - -Count = 288 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304050607 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = D84816B878D7162D50403240BC1BC9E107D6CF4DDFA329C0 - -Count = 289 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304050607 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = A5F050BCA298C6D3F46973518B62E5504AA1879B948C7A1D - -Count = 290 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304050607 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 236EA861E0F625AC990B4AD44E020ABEA246DDA55C01CDAE - -Count = 291 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304050607 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = BAEC69C08B733EDCAFF9538851D5335702570AD2EB2F2E9C - -Count = 292 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304050607 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 6FEAF790766419D173EA8E105C5D17BD96081D5AD33021A1 - -Count = 293 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304050607 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 9351D46CF9BE44C8FB19FE1BF3EE8F5C7C4782F97970E8EF - -Count = 294 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304050607 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = 86474F47C9B37AA7264ED9AA13C206B48F060E58A7F1D37E - -Count = 295 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304050607 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = A4ECA33C0C646BC41C4E1AF065B3CC115ACDCA319C81497F - -Count = 296 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304050607 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = D4C8184CC256126422FD989731159CE0B02DFF488C2E91C1 - -Count = 297 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 0001020304050607 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 6EF9B5F223391B7C971D7C710433FF3A56D70FB546A567C4 - -Count = 298 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708 -AD = -CT = C9F98EB86B5527F8DB95850398FF83DD043097648FEAF6C378 - -Count = 299 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708 -AD = 00 -CT = 23197038165DFA2E59B7E359D44E7E0149451A36A0CC9F41DC - -Count = 300 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708 -AD = 0001 -CT = FE9D361C358BCE63BA684BE77956A508CF1382F63564FFF112 - -Count = 301 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708 -AD = 000102 -CT = EC81D566D4E35BC9F915B598246433E1E5C71A11C0F203FD98 - -Count = 302 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708 -AD = 00010203 -CT = D189084B12BEC8FC8F18F8CE7E798C7164288F50BF5666B43F - -Count = 303 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708 -AD = 0001020304 -CT = A748A865EC8E77BF1540D38E0037C8863E64E88156F240F991 - -Count = 304 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708 -AD = 000102030405 -CT = DB24D0782A7BB0A9E21A602F2274A2F0C27D25115B6125D5C5 - -Count = 305 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708 -AD = 00010203040506 -CT = 1D17560BBF8DC9720E516A3E78B2B53D2D149FE9CFAA84C80A - -Count = 306 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708 -AD = 0001020304050607 -CT = 4E9807774B4E14B5DB12B96438F3FCF1914E335DE185151D7E - -Count = 307 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708 -AD = 000102030405060708 -CT = FE628D5C6C6347FCBE5D3719FAFC07A60F468F18014E543FC9 - -Count = 308 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708 -AD = 00010203040506070809 -CT = E9C2858529D6FEB52E023C4A7163CC60A343C4C9EF98382ABF - -Count = 309 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708 -AD = 000102030405060708090A -CT = FCD0420F6E34CE1DB5ABE004F7F4DC89FB3B30E29BAC513E12 - -Count = 310 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708 -AD = 000102030405060708090A0B -CT = 0228F0ABBA1AB39FD75143CC35577D088A1A6CC851443414F9 - -Count = 311 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708 -AD = 000102030405060708090A0B0C -CT = 82B6B9CC4097AC5E724874B0EF40EED1556841ECE46C959EE0 - -Count = 312 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708 -AD = 000102030405060708090A0B0C0D -CT = 5DC0EAA3E48E728D0A389FF0B8CD432972CFA5CA6EF51339E1 - -Count = 313 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708 -AD = 000102030405060708090A0B0C0D0E -CT = F5E273C0B85FF629E731B534B0E2427BA98772B637ACA1B1FA - -Count = 314 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708 -AD = 000102030405060708090A0B0C0D0E0F -CT = 0F47F3B0C630FE590098911C9579C86E035871418B7E85B7BF - -Count = 315 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 183BCB0CE30871A0923AB955552645ACF77A78671812B55E8B - -Count = 316 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 0AD4E35D0CDB5C46ED0DA4CC12347E74ADD6B220C9637FBE99 - -Count = 317 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = 81E22B7269ECB5CA727DC098C3996138BA0437E8837797B7DC - -Count = 318 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = C51B01EF48E764BE4B0A3AD06FA48CC01497123502D9906DE3 - -Count = 319 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = DD724F39ED7497B7C68B1C2824C3F535DD18D1BC8CAC4B70B1 - -Count = 320 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = 8079ED0F7239C793F85138C5BBA4B92BA3838CF32F0F434116 - -Count = 321 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = D84816B878D7162DF539DFD12765BFBF35B6010F8E1C2FB957 - -Count = 322 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = A5F050BCA298C6D361C74D8D08914BAA7368098D5DD26529F6 - -Count = 323 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 236EA861E0F625AC0F0EBF098F4455205D44BD18D16E552C61 - -Count = 324 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = BAEC69C08B733EDCD0CD0357965C87D32B2B883E10D317AA6E - -Count = 325 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 6FEAF790766419D1BC115E09ECBE834DE08996491A8ECFCD5A - -Count = 326 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 9351D46CF9BE44C89C123F7619B49E54B54C844FC3F88BE6AB - -Count = 327 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = 86474F47C9B37AA7B8D3D333E2377DE906E6F69CD57263E7E2 - -Count = 328 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = A4ECA33C0C646BC4B7D7315A83C5610EF79FADCF2228BBE25D - -Count = 329 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = D4C8184CC2561264CEB262B1F07FE895D5BFAFC78B9890A303 - -Count = 330 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 6EF9B5F223391B7C5F5272CB045A5CC2BBAD616F207BFB6865 - -Count = 331 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506070809 -AD = -CT = C9F98EB86B5527F8DBF6510EC6CFCB5320357D9F0540949C0739 - -Count = 332 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506070809 -AD = 00 -CT = 23197038165DFA2E594A4F4846A4EAB117ECED95B66022369275 - -Count = 333 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506070809 -AD = 0001 -CT = FE9D361C358BCE63BA1044440F7BBFA6E51574482E9A6AECB09C - -Count = 334 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506070809 -AD = 000102 -CT = EC81D566D4E35BC9F945B977DC230447617DB1780D477922F1D8 - -Count = 335 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506070809 -AD = 00010203 -CT = D189084B12BEC8FC8F96508A7427815238280C9FA9DA7A9EB2DF - -Count = 336 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506070809 -AD = 0001020304 -CT = A748A865EC8E77BF15431BC0CE0B89BA753D7F54ABCA9840E583 - -Count = 337 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506070809 -AD = 000102030405 -CT = DB24D0782A7BB0A9E2246316F1D28448B705C6E9591830169A4D - -Count = 338 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506070809 -AD = 00010203040506 -CT = 1D17560BBF8DC9720E27FBD7A96D99757BA4CDDC065CFB4FDD0E - -Count = 339 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506070809 -AD = 0001020304050607 -CT = 4E9807774B4E14B5DB8E4B8805F3953AC97F3B109FB338A18A39 - -Count = 340 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506070809 -AD = 000102030405060708 -CT = FE628D5C6C6347FCBE2520270F4B989CDDBCDDE1C6EC235673D2 - -Count = 341 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506070809 -AD = 00010203040506070809 -CT = E9C2858529D6FEB52EF4A1425C4E74F47A6859A5BB9CEAEF6595 - -Count = 342 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506070809 -AD = 000102030405060708090A -CT = FCD0420F6E34CE1DB5E1641F51D53E5C7F73EE0A4906AE600ACA - -Count = 343 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506070809 -AD = 000102030405060708090A0B -CT = 0228F0ABBA1AB39FD7D8094D4ACCC2B74F460D50C5F56E93150D - -Count = 344 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C -CT = 82B6B9CC4097AC5E72EAC80B30DBC2279DD40E11C3107040A6A5 - -Count = 345 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C0D -CT = 5DC0EAA3E48E728D0AB96D259D105A6C1AFF806A0AFA630C784E - -Count = 346 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C0D0E -CT = F5E273C0B85FF629E703FEE6662C67A32A80E05866EDD9AC81F9 - -Count = 347 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C0D0E0F -CT = 0F47F3B0C630FE590058D7DAE959802FFCD4F0C6AEAC90917F7F - -Count = 348 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 183BCB0CE30871A0920950631EA4B12FD863BA289BABB8E1022F - -Count = 349 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 0AD4E35D0CDB5C46ED51538C82438EED4CDF12AF9FE004FFCF85 - -Count = 350 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = 81E22B7269ECB5CA72D62E9858E67C364EFE9448A17E27CE8013 - -Count = 351 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = C51B01EF48E764BE4B064ECF65F830D5F2305DB4659A821443FB - -Count = 352 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = DD724F39ED7497B7C6A0909B3CD6AC7CDFB1D4E98ECA3C51FD26 - -Count = 353 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = 8079ED0F7239C793F8F61695555BCB1E898AEA7D78DFED1E4BA4 - -Count = 354 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = D84816B878D7162DF5599483671D4B8A3004E05C40D5FAEB14EF - -Count = 355 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = A5F050BCA298C6D36106F5813202AB368C8E0903BE575E8E2D8B - -Count = 356 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 236EA861E0F625AC0F7C1E7D6DF0A2FA6DF3D27558E8984FB2F0 - -Count = 357 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = BAEC69C08B733EDCD04B4C0470B1DC5FE5776368C8674220ED59 - -Count = 358 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 6FEAF790766419D1BCFE591EC307920710D53CF7DF260FA67C57 - -Count = 359 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 9351D46CF9BE44C89C4907AF8DC2762E0D40AA1E8F4B00E0B89B - -Count = 360 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = 86474F47C9B37AA7B81C6ED7EBDA2D25A3A35E8CA840B4E4A177 - -Count = 361 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = A4ECA33C0C646BC4B7C8D36A6374AA48F0908EFBD63C0C949ECF - -Count = 362 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = D4C8184CC2561264CE338CBD4728578C342893C69B8E856A1573 - -Count = 363 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 00010203040506070809 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 6EF9B5F223391B7C5FBF51929594DC98DDEB77D8C0E8E6022D73 - -Count = 364 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A -AD = -CT = C9F98EB86B5527F8DBF63ACF0E816185B1CA571203DCAEA251B874 - -Count = 365 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A -AD = 00 -CT = 23197038165DFA2E594A328A5262B43CF7262BFDD99D4DA4E7FC56 - -Count = 366 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A -AD = 0001 -CT = FE9D361C358BCE63BA1032A8D6687A7940107AAF87EBD3CB7EEF72 - -Count = 367 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A -AD = 000102 -CT = EC81D566D4E35BC9F945B1CB3A315A3355B636E2A58F729182453E - -Count = 368 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A -AD = 00010203 -CT = D189084B12BEC8FC8F96483C9F71F1124B76DC648047726CD1C616 - -Count = 369 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A -AD = 0001020304 -CT = A748A865EC8E77BF15434B69AC4ABA83AC7D2226C21CDDD1FC3D28 - -Count = 370 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A -AD = 000102030405 -CT = DB24D0782A7BB0A9E22421F517E911FFF648169AA8144F6CE3B837 - -Count = 371 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A -AD = 00010203040506 -CT = 1D17560BBF8DC9720E271247E7599B6227655583977271FE036CBB - -Count = 372 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A -AD = 0001020304050607 -CT = 4E9807774B4E14B5DB8E56BFBE888679A5B4B0C51320FC65B3193A - -Count = 373 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A -AD = 000102030405060708 -CT = FE628D5C6C6347FCBE258BA539B9E80D0C9E09B2DE1EABBDD24203 - -Count = 374 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A -AD = 00010203040506070809 -CT = E9C2858529D6FEB52EF49F8821CDBF1941E57C8A33A783E05705CD - -Count = 375 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A -AD = 000102030405060708090A -CT = FCD0420F6E34CE1DB5E14EC21550515C6B7129B2A866D4A3B8D67B - -Count = 376 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A -AD = 000102030405060708090A0B -CT = 0228F0ABBA1AB39FD7D86B7DDC3F5A985A7274381EEB194C59E6F5 - -Count = 377 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C -CT = 82B6B9CC4097AC5E72EA4EFEC8832FDB55435B738A674A92D22D62 - -Count = 378 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C0D -CT = 5DC0EAA3E48E728D0AB9716C54ACC339616A90EED101E669690627 - -Count = 379 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C0D0E -CT = F5E273C0B85FF629E70350E6FEAACC4610E23E23915B14E7DA3F8D - -Count = 380 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C0D0E0F -CT = 0F47F3B0C630FE59005875E8F27E31744616EC72D91776C2020CC7 - -Count = 381 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 183BCB0CE30871A09209FA4C188C9EE4D045FB3704ADCA85C3E268 - -Count = 382 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 0AD4E35D0CDB5C46ED519284C43C0D61A309764C90A98B2BE3F80A - -Count = 383 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = 81E22B7269ECB5CA72D6FCB0257C6DC0C4B71D333987969279A63D - -Count = 384 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = C51B01EF48E764BE4B06DF7807B2C33785E74EDB3753CBA2B9EC8C - -Count = 385 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = DD724F39ED7497B7C6A0CCACF09868C4605B7066F9B6B3802F89D8 - -Count = 386 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = 8079ED0F7239C793F8F69C3AE7D0D887D943390D6F2C0AAC00E52A - -Count = 387 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = D84816B878D7162DF5594124759816B18DA79C694416C5B74B32CE - -Count = 388 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = A5F050BCA298C6D36106B04CDFA1F2B0E427CB00B8C495A794CC51 - -Count = 389 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 236EA861E0F625AC0F7CC0F430BA4613725148E01C42B37EF17A46 - -Count = 390 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = BAEC69C08B733EDCD04BF5ECD358ED0A71446A0BA601A639A8A14F - -Count = 391 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 6FEAF790766419D1BCFE9F45C13715973E406ACF4C71348B6B4076 - -Count = 392 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 9351D46CF9BE44C89C49C0AEC571CEA60945621554280E1B75572B - -Count = 393 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = 86474F47C9B37AA7B81C7D48AFAB4181355D9013A2A0C0795C2309 - -Count = 394 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = A4ECA33C0C646BC4B7C83D82F45F11D129B76A4BFC2363EE7429B2 - -Count = 395 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = D4C8184CC2561264CE33285F6F4FD0CEB34931EEBAEA43F5AC2457 - -Count = 396 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 6EF9B5F223391B7C5FBFDCE56E4CE153E3BF914A70FEFE3AC7FF37 - -Count = 397 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B -AD = -CT = C9F98EB86B5527F8DBF63ACBDA30F68481D54A323C05167029DB2A4D - -Count = 398 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B -AD = 00 -CT = 23197038165DFA2E594A323B924D6E0B3F39133D689B0E6D90CE30CE - -Count = 399 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B -AD = 0001 -CT = FE9D361C358BCE63BA10321CB09ACB70A45391A9BE91A81D31C2A17B - -Count = 400 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B -AD = 000102 -CT = EC81D566D4E35BC9F945B1C7457D62DEE693D0361F289EE60C4B4066 - -Count = 401 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B -AD = 00010203 -CT = D189084B12BEC8FC8F964867806AD6FD4CFFFC768518C3C2D4245372 - -Count = 402 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B -AD = 0001020304 -CT = A748A865EC8E77BF15434B10CACB795E9CDD941C291B1BD4F10610DE - -Count = 403 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B -AD = 000102030405 -CT = DB24D0782A7BB0A9E224210DD94BA13DD0368728D2807396C723FC56 - -Count = 404 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B -AD = 00010203040506 -CT = 1D17560BBF8DC9720E2712624768A48895E251035023FF5946BB66E7 - -Count = 405 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B -AD = 0001020304050607 -CT = 4E9807774B4E14B5DB8E562CCF7AF50FC6122398C32E0B7742C86930 - -Count = 406 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B -AD = 000102030405060708 -CT = FE628D5C6C6347FCBE258B215B9F9EE04910B692696B2900C7AB5EF3 - -Count = 407 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B -AD = 00010203040506070809 -CT = E9C2858529D6FEB52EF49FB5F42E5492568FB805E7D8DF08AF3BAA26 - -Count = 408 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B -AD = 000102030405060708090A -CT = FCD0420F6E34CE1DB5E14EDD1CF7D7FC2985F383FD045D465A86D356 - -Count = 409 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B -CT = 0228F0ABBA1AB39FD7D86B18196D4B77DA34FDEAC4A7AAF0C8370CDA - -Count = 410 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C -CT = 82B6B9CC4097AC5E72EA4E52D6051538B68E06279CBA11669F25CE7E - -Count = 411 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C0D -CT = 5DC0EAA3E48E728D0AB971A3EAF5C218949FE981FD2797493E2E862B - -Count = 412 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C0D0E -CT = F5E273C0B85FF629E7035055A522BFE53086B2E7A020699047AB3C51 - -Count = 413 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C0D0E0F -CT = 0F47F3B0C630FE59005875D9452F39FCE1377E59D6F442107CA206FE - -Count = 414 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 183BCB0CE30871A09209FAFFA9A24C82E24FDBAA64F3B8EDC5D6B7AD - -Count = 415 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 0AD4E35D0CDB5C46ED5192D732A91894E26ED9440B7838A056FD9C33 - -Count = 416 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = 81E22B7269ECB5CA72D6FC2691D6642AB3EEED5B62E0186B5293806E - -Count = 417 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = C51B01EF48E764BE4B06DF487E36105E2DE0EE1F67F6E9D8751E04B0 - -Count = 418 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = DD724F39ED7497B7C6A0CC396D910D880CB41D11102975F2C87F95C6 - -Count = 419 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = 8079ED0F7239C793F8F69CAD55F19AF6AED913F32EB9CA52678EC3C6 - -Count = 420 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = D84816B878D7162DF559419B73ACF3EB2694087ADC9A10EAF0076DA8 - -Count = 421 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = A5F050BCA298C6D36106B020229D06194B7B5A08ABB8512625F93754 - -Count = 422 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 236EA861E0F625AC0F7CC043485F62F90D1C491549D08C9A3BED3C58 - -Count = 423 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = BAEC69C08B733EDCD04BF5AA5767AD6CBC75221CA65C4C9EC0003D51 - -Count = 424 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 6FEAF790766419D1BCFE9F16D9431004186D00BCB90C19F8CBD287A0 - -Count = 425 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 9351D46CF9BE44C89C49C08BB36FE30272EA2AB6FABB16B7297E5FB0 - -Count = 426 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = 86474F47C9B37AA7B81C7D3A7B0F036F81ECFBBF7CF4A97975BADCE7 - -Count = 427 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = A4ECA33C0C646BC4B7C83DE5F401340B1D1E5B0696180AA6C9F8C1AE - -Count = 428 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = D4C8184CC2561264CE33284B5909D91B42C0FD2392998D0443101D9C - -Count = 429 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 6EF9B5F223391B7C5FBFDC8F758132A98B03B144276669D8F1A6941F - -Count = 430 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C -AD = -CT = C9F98EB86B5527F8DBF63ACB57DF00D2427859F33A932751CE8A8C1D2F - -Count = 431 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C -AD = 00 -CT = 23197038165DFA2E594A323BEE6F8415F69A7731214210A7D020F7C2C1 - -Count = 432 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C -AD = 0001 -CT = FE9D361C358BCE63BA10321C6CF651CCE2A93F031FF09E750ACB499C41 - -Count = 433 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C -AD = 000102 -CT = EC81D566D4E35BC9F945B1C73698C8A299555A77B017EB56304FE56C1B - -Count = 434 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C -AD = 00010203 -CT = D189084B12BEC8FC8F96486759533E7D9C8FF9A516B6FA9FE000D612D0 - -Count = 435 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C -AD = 0001020304 -CT = A748A865EC8E77BF15434B10DCF5AA4E75B073778E028A68B4D6769271 - -Count = 436 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C -AD = 000102030405 -CT = DB24D0782A7BB0A9E224210DE1BFDE707BFA7971BDBE3E183C4D7FB66D - -Count = 437 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C -AD = 00010203040506 -CT = 1D17560BBF8DC9720E2712623A4719B1D8113597F971F35F49399F6850 - -Count = 438 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C -AD = 0001020304050607 -CT = 4E9807774B4E14B5DB8E562CB52E00AB1C8928D7E9AEEC68A2A0515342 - -Count = 439 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C -AD = 000102030405060708 -CT = FE628D5C6C6347FCBE258B21F949B792C2E133578A8318BB51D126F340 - -Count = 440 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C -AD = 00010203040506070809 -CT = E9C2858529D6FEB52EF49FB5D5274B8A22D3336B59F4508E3BCE675924 - -Count = 441 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A -CT = FCD0420F6E34CE1DB5E14EDDE5DFE573C3549EB8E6A9E6FB7E731DAB4C - -Count = 442 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B -CT = 0228F0ABBA1AB39FD7D86B189B7619B1F1BDDD32260EC2B2CEB32BEEF3 - -Count = 443 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C -CT = 82B6B9CC4097AC5E72EA4E522415D2ADEB646FC35ABD04CACD996E00E0 - -Count = 444 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C0D -CT = 5DC0EAA3E48E728D0AB971A3B42444F592C83FB174E0ECB79C01B594AD - -Count = 445 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C0D0E -CT = F5E273C0B85FF629E7035055363BE74462D84FE1E291D4D677CE3F6676 - -Count = 446 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C0D0E0F -CT = 0F47F3B0C630FE59005875D996839754A1705EEBA97908975621B79C74 - -Count = 447 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 183BCB0CE30871A09209FAFF6D297D577C782CCB6D17694147B186C34B - -Count = 448 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 0AD4E35D0CDB5C46ED5192D71A96CE2318813B16E4BEAFD948AAC822E7 - -Count = 449 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = 81E22B7269ECB5CA72D6FC266EDEB0C685E9E149664F867842BB1D277E - -Count = 450 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = C51B01EF48E764BE4B06DF483C534F79B578CBE908DA0BAE763820F2EE - -Count = 451 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = DD724F39ED7497B7C6A0CC39703DD49232260E889234C081E480827D7C - -Count = 452 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = 8079ED0F7239C793F8F69CAD417E086F80336F71DB8165C3C2A741CC41 - -Count = 453 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = D84816B878D7162DF559419BC3B5ED53322A88DAB86B2C820E03021605 - -Count = 454 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = A5F050BCA298C6D36106B0209CB5B0C114611CFE8E66E76B053D32B2AE - -Count = 455 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 236EA861E0F625AC0F7CC043F2EB8D39167CBDDFD5D00B09D13B233209 - -Count = 456 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = BAEC69C08B733EDCD04BF5AA9AAD0F9F3B8EBB97F3BE9837079AA06C8F - -Count = 457 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 6FEAF790766419D1BCFE9F1669C33EFF3203AE5E60751E6207706544CB - -Count = 458 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 9351D46CF9BE44C89C49C08B2E65FB2C410CDB3235BCDCB5094656A641 - -Count = 459 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = 86474F47C9B37AA7B81C7D3A7E5CB65A6581AEB95A56279279929D3622 - -Count = 460 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = A4ECA33C0C646BC4B7C83DE5CD37D5A994388AE049359ECC428E30A267 - -Count = 461 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = D4C8184CC2561264CE33284BB96BF4A2FDFD1CD547387EF0D1F4ABDFC1 - -Count = 462 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 6EF9B5F223391B7C5FBFDC8FB9BDF3034C6A1F5CE5A5B2C99A1C7B7CA0 - -Count = 463 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D -AD = -CT = C9F98EB86B5527F8DBF63ACB57B1DA4DC8FD74D91045BF24FCE0BD51E10A - -Count = 464 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D -AD = 00 -CT = 23197038165DFA2E594A323BEEB3D610B631605C23486B8FFF0B87E18057 - -Count = 465 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D -AD = 0001 -CT = FE9D361C358BCE63BA10321C6C41D9F4FAC77F7683A7E171EA46CB8DC5D5 - -Count = 466 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D -AD = 000102 -CT = EC81D566D4E35BC9F945B1C7366524931E0A3DE9B94D57FD5BDF06F9FA8B - -Count = 467 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D -AD = 00010203 -CT = D189084B12BEC8FC8F96486759FED2803E2AE66A253AAF0CDC2B5C5BC63C - -Count = 468 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D -AD = 0001020304 -CT = A748A865EC8E77BF15434B10DC18301F3096F7CBD9608B29DEA8909B4E17 - -Count = 469 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D -AD = 000102030405 -CT = DB24D0782A7BB0A9E224210DE1A18E41CDCB33FB5DB1D76AD7C06E2CC881 - -Count = 470 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D -AD = 00010203040506 -CT = 1D17560BBF8DC9720E2712623AC3B7B0620FE51DD5EB3C6DDB48E0096C08 - -Count = 471 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D -AD = 0001020304050607 -CT = 4E9807774B4E14B5DB8E562CB577D87AE29AC9DB3F58A16A52861AC5B23D - -Count = 472 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708 -CT = FE628D5C6C6347FCBE258B21F93E4B43B8274FE55887FEEC0E769141633E - -Count = 473 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D -AD = 00010203040506070809 -CT = E9C2858529D6FEB52EF49FB5D55EFAD4812FD1FBEAA611D87D690F3559F8 - -Count = 474 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A -CT = FCD0420F6E34CE1DB5E14EDDE537E6FCBEE7B0558B93E3F0D84416409C0F - -Count = 475 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B -CT = 0228F0ABBA1AB39FD7D86B189BA9E54D9DB9D5DB3AA5122799963576F564 - -Count = 476 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C -CT = 82B6B9CC4097AC5E72EA4E5224C7C97FC2E2FC0DC49C2BEFAE940E94DE59 - -Count = 477 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C0D -CT = 5DC0EAA3E48E728D0AB971A3B46C193589EBC49851E8228C6A589055A6F2 - -Count = 478 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C0D0E -CT = F5E273C0B85FF629E70350553620986A05613E97F14831F73EDA548145A7 - -Count = 479 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C0D0E0F -CT = 0F47F3B0C630FE59005875D996FA0E0BD5CE71FA235720E108D946B793DA - -Count = 480 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 183BCB0CE30871A09209FAFF6DD8EE48DFF45CEFED5A35C9882611E0C55C - -Count = 481 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 0AD4E35D0CDB5C46ED5192D71ABD5199836847DCF77F177D768BA929F976 - -Count = 482 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = 81E22B7269ECB5CA72D6FC266ED3567F2F3EC62B101D7C62B20FB52231DD - -Count = 483 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = C51B01EF48E764BE4B06DF483CFD382D9C5EA67A675234C5D5BEEE27936D - -Count = 484 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = DD724F39ED7497B7C6A0CC3970E9B919A4DE8389DCF460AD41ABEF65FE20 - -Count = 485 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = 8079ED0F7239C793F8F69CAD41F5D8B609727C8E1EED37C0970C67880AE8 - -Count = 486 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = D84816B878D7162DF559419BC38836B6F1273B9471E05C396622EB94966F - -Count = 487 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = A5F050BCA298C6D36106B0209C7B2EAA38F69C86C9877323A02803731851 - -Count = 488 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 236EA861E0F625AC0F7CC043F2488818090BBCD375DF55048F8BDFE53F04 - -Count = 489 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = BAEC69C08B733EDCD04BF5AA9A429D0FEA30FCE384E1FAD4EC72A135821D - -Count = 490 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 6FEAF790766419D1BCFE9F16690890B47FC40C672B9E02520F9B81BC74BC - -Count = 491 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 9351D46CF9BE44C89C49C08B2EA1F40F3F3A6A6071685B59B16EFBCE32B6 - -Count = 492 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = 86474F47C9B37AA7B81C7D3A7EF26250A6966A872B83D2A14BD2C6D798C4 - -Count = 493 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = A4ECA33C0C646BC4B7C83DE5CD87BD4001FE451211A9EE97546EB49E3332 - -Count = 494 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = D4C8184CC2561264CE33284BB9264CFFB8048AD472D1E0497D631DF0270F - -Count = 495 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 6EF9B5F223391B7C5FBFDC8FB9DB2316BFD268A3EC9FDD3EC6B8A288E171 - -Count = 496 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E -AD = -CT = C9F98EB86B5527F8DBF63ACB57B17444510FC8C1CE9A316D7D4F8B59BADC40 - -Count = 497 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E -AD = 00 -CT = 23197038165DFA2E594A323BEEB397E9AB7EE43889B8C93754730F643832D1 - -Count = 498 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E -AD = 0001 -CT = FE9D361C358BCE63BA10321C6C41CCEF9E17111FEB37C589ECDB7F7A5FAFAA - -Count = 499 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E -AD = 000102 -CT = EC81D566D4E35BC9F945B1C736650E843F0CDC1C67FC85A6CCFBB8A1D86F27 - -Count = 500 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E -AD = 00010203 -CT = D189084B12BEC8FC8F96486759FE7DAE7D33828B36DF83899AAEAC67576C57 - -Count = 501 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E -AD = 0001020304 -CT = A748A865EC8E77BF15434B10DC187AEA1AEA18B17DD5DB151854289F4E38D4 - -Count = 502 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405 -CT = DB24D0782A7BB0A9E224210DE1A13AC7F579F67B0AB53F16B7F2D9CD509ACF - -Count = 503 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E -AD = 00010203040506 -CT = 1D17560BBF8DC9720E2712623AC3412B9B7D59D3A26D89689C9BF02525E713 - -Count = 504 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E -AD = 0001020304050607 -CT = 4E9807774B4E14B5DB8E562CB5771AF2D89F19A9DF52589E2161314E3EC40C - -Count = 505 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708 -CT = FE628D5C6C6347FCBE258B21F93EB432C0E81C752E71DB8267C54E56093358 - -Count = 506 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E -AD = 00010203040506070809 -CT = E9C2858529D6FEB52EF49FB5D55EA53407AC7BF6259CFD38F1A8D4331E59CF - -Count = 507 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A -CT = FCD0420F6E34CE1DB5E14EDDE537955C9D3DF75802E341416CE65A2616E138 - -Count = 508 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B -CT = 0228F0ABBA1AB39FD7D86B189BA953304F8CF2B8F05D31F126503EE6E96976 - -Count = 509 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C -CT = 82B6B9CC4097AC5E72EA4E5224C7E7B9A4480C61F24F0DC1E1293A0FF7138A - -Count = 510 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C0D -CT = 5DC0EAA3E48E728D0AB971A3B46C5E6537D20F3F9346263325B2D5E1E823D3 - -Count = 511 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C0D0E -CT = F5E273C0B85FF629E70350553620E951B89C7930A2214F9BBA3CFCBDB629AF - -Count = 512 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C0D0E0F -CT = 0F47F3B0C630FE59005875D996FA128346A74ADE1DC03CEB0CC4DD14440928 - -Count = 513 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 183BCB0CE30871A09209FAFF6DD831DC333C013F409D43F3EE90A0D9C56A31 - -Count = 514 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 0AD4E35D0CDB5C46ED5192D71ABDA74D7900768553E478F14503DED2121FFC - -Count = 515 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = 81E22B7269ECB5CA72D6FC266ED37D8CDC4EF098A1C20D9A1AA10D81AA517B - -Count = 516 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = C51B01EF48E764BE4B06DF483CFD2493FB841414F02AFD09C6DEEB544D6B47 - -Count = 517 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = DD724F39ED7497B7C6A0CC3970E93E60978C2458E0EF1C565737F3EA7A8090 - -Count = 518 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = 8079ED0F7239C793F8F69CAD41F5D63F77CB571AAC584929C46EE25BF24507 - -Count = 519 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = D84816B878D7162DF559419BC388B127923658967F63189269EC13A457F5C8 - -Count = 520 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = A5F050BCA298C6D36106B0209C7BBEADB521740086C4F2810F8A796A63E295 - -Count = 521 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 236EA861E0F625AC0F7CC043F248E3844D42DFE8D6BC031225AB117795AA96 - -Count = 522 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = BAEC69C08B733EDCD04BF5AA9A422BE474E7345A60349880098B9CC73CEFCF - -Count = 523 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 6FEAF790766419D1BCFE9F16690883C6387DF26BF0495FF98AE6EE426B797C - -Count = 524 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 9351D46CF9BE44C89C49C08B2EA198BD561F9E8FCB1949924F534F9D2000B9 - -Count = 525 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = 86474F47C9B37AA7B81C7D3A7EF236611630F87AFC9552A5CE7FE59D43A8D4 - -Count = 526 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = A4ECA33C0C646BC4B7C83DE5CD87265BC92CB41CE75D607FF792E210FA1892 - -Count = 527 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = D4C8184CC2561264CE33284BB9262C3B952CAC3D8BA81C324816A49F581905 - -Count = 528 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 6EF9B5F223391B7C5FBFDC8FB9DBD47D4F66ED2849F5C3562967F82A883680 - -Count = 529 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F -AD = -CT = C9F98EB86B5527F8DBF63ACB57B174DE5616DF353013DD94D33D7300867C1241 - -Count = 530 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F -AD = 00 -CT = 23197038165DFA2E594A323BEEB3973AB01B11EE81F3A896A702B347064A8798 - -Count = 531 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F -AD = 0001 -CT = FE9D361C358BCE63BA10321C6C41CC7602D2EED44604C600CF7F2ADA5EE1F7A7 - -Count = 532 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102 -CT = EC81D566D4E35BC9F945B1C736650EDA79011357B177750A47D40B675341F099 - -Count = 533 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F -AD = 00010203 -CT = D189084B12BEC8FC8F96486759FE7DEC6CCE9D154222DE7E929AD02458C08157 - -Count = 534 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F -AD = 0001020304 -CT = A748A865EC8E77BF15434B10DC187A4022DBFF28D27A819937F055742056DAA1 - -Count = 535 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405 -CT = DB24D0782A7BB0A9E224210DE1A13AF6F7292395F07C15BAA36501C8BDB544E4 - -Count = 536 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F -AD = 00010203040506 -CT = 1D17560BBF8DC9720E2712623AC3416C9E4D4FC11C4C2CBFCD7026167D49DE10 - -Count = 537 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F -AD = 0001020304050607 -CT = 4E9807774B4E14B5DB8E562CB5771A70B1ADFFA76E574C0E43610147C1AECA96 - -Count = 538 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708 -CT = FE628D5C6C6347FCBE258B21F93EB48E6D2901944CE4A8A687041800B81401FE - -Count = 539 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F -AD = 00010203040506070809 -CT = E9C2858529D6FEB52EF49FB5D55EA58893C23BA77EFDEF1244E09CB26EC77212 - -Count = 540 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A -CT = FCD0420F6E34CE1DB5E14EDDE5379570826607720477BF5D03A10F4288741D25 - -Count = 541 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B -CT = 0228F0ABBA1AB39FD7D86B189BA9534BA1F7AF3706800E5A43153EFB798C9861 - -Count = 542 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C -CT = 82B6B9CC4097AC5E72EA4E5224C7E73BA944DFC6F5E29077A4F944134EB5123F - -Count = 543 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C0D -CT = 5DC0EAA3E48E728D0AB971A3B46C5E754FFB5F3192F32BDAC5E38BC5935B2F41 - -Count = 544 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C0D0E -CT = F5E273C0B85FF629E70350553620E9B09F75AC04037748DC6D63B4487FB940B0 - -Count = 545 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C0D0E0F -CT = 0F47F3B0C630FE59005875D996FA1207ECA4083541524376886CD1DB30016B2C - -Count = 546 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 183BCB0CE30871A09209FAFF6DD831FB2773C46432C0621AD8992347902E1123 - -Count = 547 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 0AD4E35D0CDB5C46ED5192D71ABDA77A19C87647749700B60B257F42F282D24C - -Count = 548 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = 81E22B7269ECB5CA72D6FC266ED37D15C8231198E1AD1443B7E3E7F6B5C28CF6 - -Count = 549 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = C51B01EF48E764BE4B06DF483CFD24B62DAD7836BB8AD559B75967D1E58239B1 - -Count = 550 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = DD724F39ED7497B7C6A0CC3970E93EAFFE1F9497FC1441A42EA79513A4B12A76 - -Count = 551 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = 8079ED0F7239C793F8F69CAD41F5D6F25953BCCCC7833EF451C720DACD910CC5 - -Count = 552 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = D84816B878D7162DF559419BC388B19E2AD3548FD2EA9FE2CC9B6D9E410A4029 - -Count = 553 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = A5F050BCA298C6D36106B0209C7BBE36A67FE170C5B3E40BE41173466B1D986D - -Count = 554 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 236EA861E0F625AC0F7CC043F248E3163FA1AA1115F8FCA10F20E4649A911BE3 - -Count = 555 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = BAEC69C08B733EDCD04BF5AA9A422B92A8AB259F885F761CBD44E814521CB9B0 - -Count = 556 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 6FEAF790766419D1BCFE9F16690883CBA2ACBB62663034593FC6DE1F69C78070 - -Count = 557 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 9351D46CF9BE44C89C49C08B2EA198AC749402A15B9C306939588FC2B9488A84 - -Count = 558 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = 86474F47C9B37AA7B81C7D3A7EF236A0F48A330929F77E2894E2BE8E7C64A655 - -Count = 559 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = A4ECA33C0C646BC4B7C83DE5CD87262F76A35D299251F95B431F4FED39E531DF - -Count = 560 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = D4C8184CC2561264CE33284BB9262C97800ED46590A73F583BD34CA649B995EB - -Count = 561 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 6EF9B5F223391B7C5FBFDC8FB9DBD4825E23BD4B138FDA0E6772916E8AF1DD50 - -Count = 562 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10 -AD = -CT = C9F98EB86B5527F8DBF63ACB57B174DEC945DD5542393590389AA08608BAA3647A - -Count = 563 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 00 -CT = 23197038165DFA2E594A323BEEB3973A56F81D2887F4B591BC3325293AA7073727 - -Count = 564 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 0001 -CT = FE9D361C358BCE63BA10321C6C41CC76B5693370660C507E75D61F18DC8685592E - -Count = 565 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102 -CT = EC81D566D4E35BC9F945B1C736650EDA4382887994F9067C04AC69F4DBD9AD6EBA - -Count = 566 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 00010203 -CT = D189084B12BEC8FC8F96486759FE7DECCCFBA8EEC5F84047B0D14689DCDE53FC41 - -Count = 567 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 0001020304 -CT = A748A865EC8E77BF15434B10DC187A4094CE7C859C2230B0650D485D27872EB9E6 - -Count = 568 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405 -CT = DB24D0782A7BB0A9E224210DE1A13AF61CF76F760A6EE2E1DB94188E61ED89F1E6 - -Count = 569 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 00010203040506 -CT = 1D17560BBF8DC9720E2712623AC3416CB9C25DA3A5CECD7A4FDFFA8D8DA9DAEE23 - -Count = 570 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 0001020304050607 -CT = 4E9807774B4E14B5DB8E562CB5771A706E06473BF331F1778C2676D2140273BEFB - -Count = 571 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708 -CT = FE628D5C6C6347FCBE258B21F93EB48EFD456ADE2B896566AD02E9B4B45E236118 - -Count = 572 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 00010203040506070809 -CT = E9C2858529D6FEB52EF49FB5D55EA588A7B6B0ACBBBC1FC0C948137FC78BB9FA63 - -Count = 573 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A -CT = FCD0420F6E34CE1DB5E14EDDE53795707DF3B5FAF39097659692917610FAD8C8AF - -Count = 574 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B -CT = 0228F0ABBA1AB39FD7D86B189BA9534B76A1588C3E87CD072660834DBED7A9CF2B - -Count = 575 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C -CT = 82B6B9CC4097AC5E72EA4E5224C7E73BBCB83814D85A37F26592CDBB5DE41A58C3 - -Count = 576 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C0D -CT = 5DC0EAA3E48E728D0AB971A3B46C5E756F1FE882F235A32CB30D3BBF9E2B4FF299 - -Count = 577 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C0D0E -CT = F5E273C0B85FF629E70350553620E9B0C26F4126C9932DDA88D2947092E7FCEBD3 - -Count = 578 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C0D0E0F -CT = 0F47F3B0C630FE59005875D996FA120759AEFA370112EF06D5537E95014136972F - -Count = 579 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 183BCB0CE30871A09209FAFF6DD831FB4A5BAAB112BDB0972926FB3AE12A7F988B - -Count = 580 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 0AD4E35D0CDB5C46ED5192D71ABDA77AF76B9F36977B7158F1E286FBA83499B271 - -Count = 581 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = 81E22B7269ECB5CA72D6FC266ED37D1517C0800691DD84AC15F3979C271A273578 - -Count = 582 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = C51B01EF48E764BE4B06DF483CFD24B620E7AAD2BB3C9353E5353AB1CC21DF8EBC - -Count = 583 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = DD724F39ED7497B7C6A0CC3970E93EAF17FB31EECC1DFA4BDB7365DC0C18E91940 - -Count = 584 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = 8079ED0F7239C793F8F69CAD41F5D6F2000C63C7D19AE59D5F4C059B95625C761B - -Count = 585 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = D84816B878D7162DF559419BC388B19E96CC77B0038B20B214D16DD0D9968C95BB - -Count = 586 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = A5F050BCA298C6D36106B0209C7BBE364BF378EDD840ADC9F39B2C65E021D14154 - -Count = 587 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 236EA861E0F625AC0F7CC043F248E3168FF0781FC2F4C720A1481A95AAAB8A37BD - -Count = 588 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = BAEC69C08B733EDCD04BF5AA9A422B92FD2D9E5004C3497CE014BE56400281AFDF - -Count = 589 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 6FEAF790766419D1BCFE9F16690883CBF23D63C0828F67D4157ADF23DE835D7BB2 - -Count = 590 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 9351D46CF9BE44C89C49C08B2EA198AC77D031AA0A5F950F129C08EC3115A927C1 - -Count = 591 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = 86474F47C9B37AA7B81C7D3A7EF236A07DA30FD9FA53527291509653DFAAF148CF - -Count = 592 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = A4ECA33C0C646BC4B7C83DE5CD87262F46583AC0D2991296413220A9F5B379678B - -Count = 593 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = D4C8184CC2561264CE33284BB9262C974AA9174DC9490E0389819DDAAF6E4E3711 - -Count = 594 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 6EF9B5F223391B7C5FBFDC8FB9DBD482C0225A021215185C3B11DFDDFE18749BB4 - -Count = 595 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = -CT = C9F98EB86B5527F8DBF63ACB57B174DEC9538F1FB5F7EDF0654B05BCC2923C994116 - -Count = 596 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 00 -CT = 23197038165DFA2E594A323BEEB3973A568FE1B216B70B6E164532847BAD2F2742FB - -Count = 597 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 0001 -CT = FE9D361C358BCE63BA10321C6C41CC76B5D46A8980622D82DAA320870CB4DF6FD19A - -Count = 598 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102 -CT = EC81D566D4E35BC9F945B1C736650EDA43E83038C757442200E48A6E02CB029B8D76 - -Count = 599 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 00010203 -CT = D189084B12BEC8FC8F96486759FE7DECCCD41455130DC1610C6A358E7B775E40C2B7 - -Count = 600 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 0001020304 -CT = A748A865EC8E77BF15434B10DC187A4094FA14EA928ABAFA65EF439F429DA3D596CE - -Count = 601 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405 -CT = DB24D0782A7BB0A9E224210DE1A13AF61C123C28C36B0FCC44AE145B98CC4F854C2A - -Count = 602 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 00010203040506 -CT = 1D17560BBF8DC9720E2712623AC3416CB9B72464E97083AA477574DA6FD3640C5165 - -Count = 603 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 0001020304050607 -CT = 4E9807774B4E14B5DB8E562CB5771A706EA1D43B1BD6FD6AF24CED53C24638A624D3 - -Count = 604 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708 -CT = FE628D5C6C6347FCBE258B21F93EB48EFD045910BD2536A294FF4C8926B06A8D106F - -Count = 605 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 00010203040506070809 -CT = E9C2858529D6FEB52EF49FB5D55EA588A73CA11CA4058832A5527B440A1C3173E4C8 - -Count = 606 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A -CT = FCD0420F6E34CE1DB5E14EDDE53795707D1B0A8F34BDD8C6207122251FA6F1F5D1FC - -Count = 607 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B -CT = 0228F0ABBA1AB39FD7D86B189BA9534B76C446DD39EF655413399D847517E1AF46AA - -Count = 608 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C -CT = 82B6B9CC4097AC5E72EA4E5224C7E73BBC13A6375558EBF42CA9E2CDF518017A7466 - -Count = 609 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C0D -CT = 5DC0EAA3E48E728D0AB971A3B46C5E756F0C7E0DF29C011CBD5CEFAE5B4BE80429DB - -Count = 610 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C0D0E -CT = F5E273C0B85FF629E70350553620E9B0C2068F5DD5AC9252575E97E794AD98E1D6DD - -Count = 611 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C0D0E0F -CT = 0F47F3B0C630FE59005875D996FA1207599A0790C79E7A7177834CEC12BCCF89C9F9 - -Count = 612 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 183BCB0CE30871A09209FAFF6DD831FB4A96065577377996B8AC480806A6C82C66FE - -Count = 613 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 0AD4E35D0CDB5C46ED5192D71ABDA77AF7F2F57C29A1CAB60DBBA5276BF2CA3BD4C3 - -Count = 614 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = 81E22B7269ECB5CA72D6FC266ED37D15173FEED1DEE49A33D750A902CF465FB3D541 - -Count = 615 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = C51B01EF48E764BE4B06DF483CFD24B6200511E16840C21B66FDC24E9360FDA1EDE4 - -Count = 616 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = DD724F39ED7497B7C6A0CC3970E93EAF17934C6BF59E728C632A3D76EC4A38BA0ED1 - -Count = 617 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = 8079ED0F7239C793F8F69CAD41F5D6F20005BAC06FF41AF32CC81DEE31CCA168D5BC - -Count = 618 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = D84816B878D7162DF559419BC388B19E964292936B9180AFB0EE29F9EA36D2788710 - -Count = 619 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = A5F050BCA298C6D36106B0209C7BBE364BC517D52FF585D1FBAD681CD693A7D3362C - -Count = 620 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 236EA861E0F625AC0F7CC043F248E3168FDE04B97360379F84F753CBC6F9B0E69803 - -Count = 621 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = BAEC69C08B733EDCD04BF5AA9A422B92FDFD00BFC2D5626E53422FD66CF9C85192AB - -Count = 622 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 6FEAF790766419D1BCFE9F16690883CBF21580F795B5C871C5636BF998C19F6EAE7A - -Count = 623 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 9351D46CF9BE44C89C49C08B2EA198AC77C814AC4766C231429C5E4C3335FA218115 - -Count = 624 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = 86474F47C9B37AA7B81C7D3A7EF236A07D2D1D2C0D26C1A62F0AC7CFEA0C3EE40591 - -Count = 625 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = A4ECA33C0C646BC4B7C83DE5CD87262F46687D86B3657181DE8E9D9A35DC69A04EBA - -Count = 626 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = D4C8184CC2561264CE33284BB9262C974A1D4C410CE3B9A0F85A0D50E1A85675F963 - -Count = 627 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 6EF9B5F223391B7C5FBFDC8FB9DBD482C0CA86908DB4D1DB0216EFCEB2A88334BAB6 - -Count = 628 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = -CT = C9F98EB86B5527F8DBF63ACB57B174DEC953EFF4ED34E921B0C534C713712EC984FA03 - -Count = 629 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 00 -CT = 23197038165DFA2E594A323BEEB3973A568F6C2219B8A0C1B88FCDA0AA086C4C6CC51F - -Count = 630 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 0001 -CT = FE9D361C358BCE63BA10321C6C41CC76B5D4472DCD3E830B9072F6EDF3D5AEC35F924A - -Count = 631 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102 -CT = EC81D566D4E35BC9F945B1C736650EDA43E8888B529E0956E1CC7F1825908EBA71B884 - -Count = 632 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 00010203 -CT = D189084B12BEC8FC8F96486759FE7DECCCD493D3A6849FAC15B24D2396AF1C4F4ED6EF - -Count = 633 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 0001020304 -CT = A748A865EC8E77BF15434B10DC187A4094FAB32C6B988388440644082F1A6F4A0AC02D - -Count = 634 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405 -CT = DB24D0782A7BB0A9E224210DE1A13AF61C12AE0A1F92EE539F21D206119A1AD04A89A9 - -Count = 635 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 00010203040506 -CT = 1D17560BBF8DC9720E2712623AC3416CB9B786E051D266F874477521DA01701450E60F - -Count = 636 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 0001020304050607 -CT = 4E9807774B4E14B5DB8E562CB5771A706EA183D5706B5EBEA63E67E625D7A23E8DB2F0 - -Count = 637 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708 -CT = FE628D5C6C6347FCBE258B21F93EB48EFD04635F39F11530084E7F61F8E1C6D8E4757C - -Count = 638 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 00010203040506070809 -CT = E9C2858529D6FEB52EF49FB5D55EA588A73C6B40308CF8BFCDD07DCF9DA70067BD4E99 - -Count = 639 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A -CT = FCD0420F6E34CE1DB5E14EDDE53795707D1B6A825A6F8C54DDE7492F314980A3C03FDE - -Count = 640 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B -CT = 0228F0ABBA1AB39FD7D86B189BA9534B76C48ADC12A0ACBA06C16922C75BC4DEA0E5EC - -Count = 641 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C -CT = 82B6B9CC4097AC5E72EA4E5224C7E73BBC136FD464F33D2AEBC7CB644EC7040187B159 - -Count = 642 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C0D -CT = 5DC0EAA3E48E728D0AB971A3B46C5E756F0C4B2AF542953A076CA1A2BA5DA70CD01DCE - -Count = 643 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C0D0E -CT = F5E273C0B85FF629E70350553620E9B0C206468CC67CCA55C81324613A8B4EB2E2CFD2 - -Count = 644 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C0D0E0F -CT = 0F47F3B0C630FE59005875D996FA1207599A4E5A8C97D782EAABD1F05DA7230B0FCED4 - -Count = 645 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 183BCB0CE30871A09209FAFF6DD831FB4A96618CB370D35F74960773CBE5BC0140AF74 - -Count = 646 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 0AD4E35D0CDB5C46ED5192D71ABDA77AF7F2B1E29FABAA216CB3BE1E956030B1682CFD - -Count = 647 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = 81E22B7269ECB5CA72D6FC266ED37D15173FDB2380577AE1E54E1D59C9346170153657 - -Count = 648 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = C51B01EF48E764BE4B06DF483CFD24B620050B215AEC4473C93D79934EEB33066ED8BB - -Count = 649 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = DD724F39ED7497B7C6A0CC3970E93EAF17939032A81BADF260166D5A0870A1F12A4499 - -Count = 650 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = 8079ED0F7239C793F8F69CAD41F5D6F20005179F628276ED9E046EE6312BE0CC400CA0 - -Count = 651 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = D84816B878D7162DF559419BC388B19E96426BE7C50E3FB14DFBF6183EEBB6196401A0 - -Count = 652 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = A5F050BCA298C6D36106B0209C7BBE364BC5340E315D158A6E313C8C0086726CD6CA46 - -Count = 653 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 236EA861E0F625AC0F7CC043F248E3168FDEBCB7CA7D3CD7784D45653C170CC9ED2867 - -Count = 654 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = BAEC69C08B733EDCD04BF5AA9A422B92FDFD306D26EC9518EA47E73A9F25B935090B4B - -Count = 655 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 6FEAF790766419D1BCFE9F16690883CBF2154E88B27C163669B95614BA61106B195339 - -Count = 656 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 9351D46CF9BE44C89C49C08B2EA198AC77C8B67ADFD4F66560F27C89F83847C670B94A - -Count = 657 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = 86474F47C9B37AA7B81C7D3A7EF236A07D2D7E82F6E2895D332136544B70C9DF798CC1 - -Count = 658 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = A4ECA33C0C646BC4B7C83DE5CD87262F4668A82E02E6C29B66BB466EF223A0F1547B24 - -Count = 659 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = D4C8184CC2561264CE33284BB9262C974A1D85DE9503E01C6E81BBFD076D3BC9FC2F4E - -Count = 660 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 6EF9B5F223391B7C5FBFDC8FB9DBD482C0CA05F4581BF68B8B49746925D335424ED23D - -Count = 661 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = -CT = C9F98EB86B5527F8DBF63ACB57B174DEC953EF56BC734FC7716FE1F318C64BC39140BF98 - -Count = 662 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 00 -CT = 23197038165DFA2E594A323BEEB3973A568F6C95DDEB9F8E18B372D5D6BB6AF211AF51BF - -Count = 663 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 0001 -CT = FE9D361C358BCE63BA10321C6C41CC76B5D447A764071D9D776C9E8B7BF11DA51FFA4A3B - -Count = 664 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102 -CT = EC81D566D4E35BC9F945B1C736650EDA43E8880C0A07B30D24A79B8FB2246E8432A5C37B - -Count = 665 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 00010203 -CT = D189084B12BEC8FC8F96486759FE7DECCCD4936CDE5145EE86ADFE98B311EB2A518D1DD8 - -Count = 666 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 0001020304 -CT = A748A865EC8E77BF15434B10DC187A4094FAB3F4AD70C6E293DD6CFCC5CBBB2CFC5E4D4C - -Count = 667 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405 -CT = DB24D0782A7BB0A9E224210DE1A13AF61C12AE9684B826699859C69BA177869677B025A4 - -Count = 668 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 00010203040506 -CT = 1D17560BBF8DC9720E2712623AC3416CB9B786F9E252963483AC8BED6B320FCFEDB3BEBC - -Count = 669 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 0001020304050607 -CT = 4E9807774B4E14B5DB8E562CB5771A706EA1833CF37ECA1F6CE98D78A48B8B639735295D - -Count = 670 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708 -CT = FE628D5C6C6347FCBE258B21F93EB48EFD0463F52D0159284C881A4E4D1AB67C53E50A8A - -Count = 671 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 00010203040506070809 -CT = E9C2858529D6FEB52EF49FB5D55EA588A73C6B3D567B81AEBEFFF64AA5F87D80FB39D5FC - -Count = 672 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A -CT = FCD0420F6E34CE1DB5E14EDDE53795707D1B6AF10D0E9A00503738FF087946F01B8590D3 - -Count = 673 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B -CT = 0228F0ABBA1AB39FD7D86B189BA9534B76C48A4C1B739987E48EEE4E6427FAD474AB6972 - -Count = 674 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C -CT = 82B6B9CC4097AC5E72EA4E5224C7E73BBC136FFBD680EC386EA65A48B987433C8AED316D - -Count = 675 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C0D -CT = 5DC0EAA3E48E728D0AB971A3B46C5E756F0C4B5F64B7BF2E71BC1D9B6482A24D3C630F39 - -Count = 676 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C0D0E -CT = F5E273C0B85FF629E70350553620E9B0C206469FB8FF43A5086E5FA37B4904D143792609 - -Count = 677 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C0D0E0F -CT = 0F47F3B0C630FE59005875D996FA1207599A4E353F66742E5893890E8AE1E87B588A7408 - -Count = 678 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 183BCB0CE30871A09209FAFF6DD831FB4A9661D421F6B16D533AFAD596AF98BBC6AF3980 - -Count = 679 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 0AD4E35D0CDB5C46ED5192D71ABDA77AF7F2B11C2F866643A5934C85ABCB85DFE9F22CE0 - -Count = 680 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = 81E22B7269ECB5CA72D6FC266ED37D15173FDB04F990117BCC6C33C9EF00944F4323809C - -Count = 681 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = C51B01EF48E764BE4B06DF483CFD24B620050B261F7625892D2103811099A4E8006E0330 - -Count = 682 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = DD724F39ED7497B7C6A0CC3970E93EAF179390D9DA29E78D00A826371100551DEA885897 - -Count = 683 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = 8079ED0F7239C793F8F69CAD41F5D6F20005173D6CA580E1434CBE6E7A2C56A2EA600CDE - -Count = 684 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = D84816B878D7162DF559419BC388B19E96426BF59A76E412BCD31FF952F406EE0A1DE847 - -Count = 685 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = A5F050BCA298C6D36106B0209C7BBE364BC534E710579BB779D400B59FB66C98DDD6E26A - -Count = 686 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 236EA861E0F625AC0F7CC043F248E3168FDEBCCF21C0F62CA603E46C859B76A44DBF1DA9 - -Count = 687 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = BAEC69C08B733EDCD04BF5AA9A422B92FDFD301FFCA3B757CB93D1899CB85B90C503EE92 - -Count = 688 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 6FEAF790766419D1BCFE9F16690883CBF2154EA04C9117F14A3A7068041A451A86F8CA43 - -Count = 689 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 9351D46CF9BE44C89C49C08B2EA198AC77C8B63E69A52DE16AF6CA8671DA302C9145D999 - -Count = 690 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = 86474F47C9B37AA7B81C7D3A7EF236A07D2D7E8C30FD19151A2776E922F8ABDFC107F99A - -Count = 691 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = A4ECA33C0C646BC4B7C83DE5CD87262F4668A8D50121E22F96A7E7EFE973D724FDF8D193 - -Count = 692 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = D4C8184CC2561264CE33284BB9262C974A1D85872B6956B0611375E3160ED6526718C3A9 - -Count = 693 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 6EF9B5F223391B7C5FBFDC8FB9DBD482C0CA05BFC989A838AEACCE47FC62B6E17D39BD23 - -Count = 694 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = -CT = C9F98EB86B5527F8DBF63ACB57B174DEC953EF563317D8CE0230822F499E9A5138CDBD2F25 - -Count = 695 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 00 -CT = 23197038165DFA2E594A323BEEB3973A568F6C952570AAA1453620EA20C28A85FA569B855E - -Count = 696 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 0001 -CT = FE9D361C358BCE63BA10321C6C41CC76B5D447A7060E75CFF298363A3489177F5C43B328FB - -Count = 697 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102 -CT = EC81D566D4E35BC9F945B1C736650EDA43E8880C27FC458CDB664E47E431AB887267FFE3ED - -Count = 698 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 00010203 -CT = D189084B12BEC8FC8F96486759FE7DECCCD4936CCBDA3F56E3DF9A87FA1CD66727C54D7035 - -Count = 699 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 0001020304 -CT = A748A865EC8E77BF15434B10DC187A4094FAB3F4802B1CD63D1F29760E05DCCC3FB3CA9D81 - -Count = 700 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405 -CT = DB24D0782A7BB0A9E224210DE1A13AF61C12AE96C628DB083071161CF5EAA15919D6442BF7 - -Count = 701 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 00010203040506 -CT = 1D17560BBF8DC9720E2712623AC3416CB9B786F9ED742280F1DE41BCF94D0843CD8FB3EC65 - -Count = 702 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 0001020304050607 -CT = 4E9807774B4E14B5DB8E562CB5771A706EA1833C33CD5F5A3C57609EC751B771E6F9D5E844 - -Count = 703 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708 -CT = FE628D5C6C6347FCBE258B21F93EB48EFD0463F54972B3C5682F4C26B933C7324A04D1D93B - -Count = 704 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 00010203040506070809 -CT = E9C2858529D6FEB52EF49FB5D55EA588A73C6B3DE4BFBC3E0F0EB18D8ADAD9947136BB042A - -Count = 705 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A -CT = FCD0420F6E34CE1DB5E14EDDE53795707D1B6AF1148014AF70D24464328255ABE113C51533 - -Count = 706 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B -CT = 0228F0ABBA1AB39FD7D86B189BA9534B76C48A4CEC20EF37D463400263AE235D0BFC164270 - -Count = 707 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C -CT = 82B6B9CC4097AC5E72EA4E5224C7E73BBC136FFB77EAA4FE85FF69CBECC31F600B39BE001E - -Count = 708 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C0D -CT = 5DC0EAA3E48E728D0AB971A3B46C5E756F0C4B5FC61AA18B7F8557B18F872D18EE549D3CA0 - -Count = 709 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C0D0E -CT = F5E273C0B85FF629E70350553620E9B0C206469F830A8F49503271D3F33CB977F2F1E67C95 - -Count = 710 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C0D0E0F -CT = 0F47F3B0C630FE59005875D996FA1207599A4E3550C7F5B9F38DC604A94310755EB5F33E04 - -Count = 711 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 183BCB0CE30871A09209FAFF6DD831FB4A9661D4EEAFBF787CCEA79F2D5161D3E8C186CB54 - -Count = 712 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 0AD4E35D0CDB5C46ED5192D71ABDA77AF7F2B11C47CCC72EC3BDED9ECBC09B090A12EA9701 - -Count = 713 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = 81E22B7269ECB5CA72D6FC266ED37D15173FDB041BD48FE382C3E67430711D88CBF7D2576B - -Count = 714 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = C51B01EF48E764BE4B06DF483CFD24B620050B26B12AAD43EEC304A19D5141A23B3715159E - -Count = 715 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = DD724F39ED7497B7C6A0CC3970E93EAF179390D95CC55C410D3D7B4C5389D37DF2B1380CFB - -Count = 716 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = 8079ED0F7239C793F8F69CAD41F5D6F20005173D510278AEBA32048479B7E4376D5884A253 - -Count = 717 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = D84816B878D7162DF559419BC388B19E96426BF5FA2191E5B1FFF6934BCC8E7807FBC52806 - -Count = 718 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = A5F050BCA298C6D36106B0209C7BBE364BC534E748B8D1C1953755098663474EDAF4912FD3 - -Count = 719 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 236EA861E0F625AC0F7CC043F248E3168FDEBCCF796281E32D8C0C5F037B36A23D7397182C - -Count = 720 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = BAEC69C08B733EDCD04BF5AA9A422B92FDFD301F71F4CF17733849F6B2FAC8DF0A9E234C0E - -Count = 721 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 6FEAF790766419D1BCFE9F16690883CBF2154EA0D45D9E63F930F9A26037ED43071902ED1B - -Count = 722 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 9351D46CF9BE44C89C49C08B2EA198AC77C8B63E024380FB61E668A756CF7462B2B5B5E3C0 - -Count = 723 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = 86474F47C9B37AA7B81C7D3A7EF236A07D2D7E8C262096DBDE2E15A032E3051D22D2580838 - -Count = 724 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = A4ECA33C0C646BC4B7C83DE5CD87262F4668A8D573BE51A560656EB548776F887440AECBB2 - -Count = 725 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = D4C8184CC2561264CE33284BB9262C974A1D8587A8456598582DA403F5FADF47C6A04321F1 - -Count = 726 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 6EF9B5F223391B7C5FBFDC8FB9DBD482C0CA05BFA28FAE7A81C716837767BAC64380180482 - -Count = 727 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = -CT = C9F98EB86B5527F8DBF63ACB57B174DEC953EF5633B12057FABAA3320578816E47BB1B99C5FB - -Count = 728 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 00 -CT = 23197038165DFA2E594A323BEEB3973A568F6C9525E676208C2034654E87C6A15CDD6524D535 - -Count = 729 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 0001 -CT = FE9D361C358BCE63BA10321C6C41CC76B5D447A70648D4C3D5BF865DABB92F88C3D7D2B19AEA - -Count = 730 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102 -CT = EC81D566D4E35BC9F945B1C736650EDA43E8880C275C0C6BEF3B3AFA4DC5BF05AC29BAD51383 - -Count = 731 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 00010203 -CT = D189084B12BEC8FC8F96486759FE7DECCCD4936CCBE213140ADC9F8DF705EAE296AE73C99284 - -Count = 732 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 0001020304 -CT = A748A865EC8E77BF15434B10DC187A4094FAB3F4809A39809A879DEAB49E01BAEB03EE6E5AC3 - -Count = 733 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405 -CT = DB24D0782A7BB0A9E224210DE1A13AF61C12AE96C6AD720D2F5400126CB0B1E420F1182292FE - -Count = 734 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 00010203040506 -CT = 1D17560BBF8DC9720E2712623AC3416CB9B786F9ED7B5C705B05B5ECAD94B0294617E911336C - -Count = 735 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 0001020304050607 -CT = 4E9807774B4E14B5DB8E562CB5771A706EA1833C33008BE515CA3472EA328FAAA1C990D27734 - -Count = 736 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708 -CT = FE628D5C6C6347FCBE258B21F93EB48EFD0463F5495ACE8F74D904A058B99B91EC571B64EE97 - -Count = 737 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 00010203040506070809 -CT = E9C2858529D6FEB52EF49FB5D55EA588A73C6B3DE4B7E411CF4D36FD4046F532B86B60C4A23B - -Count = 738 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A -CT = FCD0420F6E34CE1DB5E14EDDE53795707D1B6AF11415B2C2FB105B6800A8B9255757C8D9AB68 - -Count = 739 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B -CT = 0228F0ABBA1AB39FD7D86B189BA9534B76C48A4CEC02AFC1062B863E322889057A81D794D277 - -Count = 740 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C -CT = 82B6B9CC4097AC5E72EA4E5224C7E73BBC136FFB77065DE2B1BC1F7C2CA36BA1EE2A10C0C0FB - -Count = 741 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C0D -CT = 5DC0EAA3E48E728D0AB971A3B46C5E756F0C4B5FC61F8AB2AD7B214B35AD0050FC351CA4FE17 - -Count = 742 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C0D0E -CT = F5E273C0B85FF629E70350553620E9B0C206469F83C8317EB8C333428360B8F6CFB91E7C0375 - -Count = 743 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C0D0E0F -CT = 0F47F3B0C630FE59005875D996FA1207599A4E3550016977AF4B1D0DA096A03B2067CADAE615 - -Count = 744 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 183BCB0CE30871A09209FAFF6DD831FB4A9661D4EE2E966F9C8F3404C3A85AD8A252AA7CAB1A - -Count = 745 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 0AD4E35D0CDB5C46ED5192D71ABDA77AF7F2B11C471BD8582A333858BF06F9318D099290037B - -Count = 746 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = 81E22B7269ECB5CA72D6FC266ED37D15173FDB041B067631467B017714A7C680EF559D760A41 - -Count = 747 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = C51B01EF48E764BE4B06DF483CFD24B620050B26B19D6BE8E83078065BCC24BA0405D0A53AD3 - -Count = 748 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = DD724F39ED7497B7C6A0CC3970E93EAF179390D95CA6FCCAB479883C6C7786E8A8F270DE2F84 - -Count = 749 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = 8079ED0F7239C793F8F69CAD41F5D6F20005173D51EC8AD80042A797C6705D99DEF4CBD6163E - -Count = 750 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = D84816B878D7162DF559419BC388B19E96426BF5FA40C987DA02227BF1B5C29A69333ECC8801 - -Count = 751 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = A5F050BCA298C6D36106B0209C7BBE364BC534E748550EDA251E2A1601A6E6081A26CCF668D6 - -Count = 752 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 236EA861E0F625AC0F7CC043F248E3168FDEBCCF790DEE6BBA683030DAF526E24C442BE7D709 - -Count = 753 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = BAEC69C08B733EDCD04BF5AA9A422B92FDFD301F7167994AB35BBF8EC760908271A060C1B502 - -Count = 754 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 6FEAF790766419D1BCFE9F16690883CBF2154EA0D4FF5B92C0AE5715EF559919CDEFECDF3B25 - -Count = 755 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 9351D46CF9BE44C89C49C08B2EA198AC77C8B63E02A8C692DA02C590D414B11A51ACD1020940 - -Count = 756 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = 86474F47C9B37AA7B81C7D3A7EF236A07D2D7E8C263372C5ADE71F0BAE283E366EAB2E6A9694 - -Count = 757 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = A4ECA33C0C646BC4B7C83DE5CD87262F4668A8D573DBC19E09DCF84F06A31FC15794F2FE2FD8 - -Count = 758 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = D4C8184CC2561264CE33284BB9262C974A1D8587A896F241287E9CEB93CBFFA0A88F0D32EB3B - -Count = 759 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 6EF9B5F223391B7C5FBFDC8FB9DBD482C0CA05BFA23A69B67D8B97671BEF07DD73FBF30DA074 - -Count = 760 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = -CT = C9F98EB86B5527F8DBF63ACB57B174DEC953EF5633B156E09CDA071F41CE6394566EA56921073E - -Count = 761 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 00 -CT = 23197038165DFA2E594A323BEEB3973A568F6C9525E62C0F95C33A75DDE3682B2D1BA7ABD08FE2 - -Count = 762 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 0001 -CT = FE9D361C358BCE63BA10321C6C41CC76B5D447A706488AED488A9770E3A620FF697CE54F7AE6C2 - -Count = 763 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102 -CT = EC81D566D4E35BC9F945B1C736650EDA43E8880C275CA59D7B768A7552CFB1CED8DDCE257D4908 - -Count = 764 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 00010203 -CT = D189084B12BEC8FC8F96486759FE7DECCCD4936CCBE23998CCC6CD5C55D63D03F453D1C35B1C47 - -Count = 765 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 0001020304 -CT = A748A865EC8E77BF15434B10DC187A4094FAB3F4809A5CF3C2301E972E243BD83DFE91D5C2E52F - -Count = 766 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405 -CT = DB24D0782A7BB0A9E224210DE1A13AF61C12AE96C6AD9529CD25C5FC976443016CE6A7154F62D0 - -Count = 767 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 00010203040506 -CT = 1D17560BBF8DC9720E2712623AC3416CB9B786F9ED7B289B35577BBD106505CAD196359812D732 - -Count = 768 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 0001020304050607 -CT = 4E9807774B4E14B5DB8E562CB5771A706EA1833C3300A8B56F05D0E90530EC5AF99F5E5C48BFCA - -Count = 769 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708 -CT = FE628D5C6C6347FCBE258B21F93EB48EFD0463F5495A3CEBAA575001577C688AECFC376BAB6139 - -Count = 770 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 00010203040506070809 -CT = E9C2858529D6FEB52EF49FB5D55EA588A73C6B3DE4B7CF7F90D8B4F59D20429688297D853CEBBE - -Count = 771 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A -CT = FCD0420F6E34CE1DB5E14EDDE53795707D1B6AF1141588FC0CFF293ED1556435DC55B8C9BD85CF - -Count = 772 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B -CT = 0228F0ABBA1AB39FD7D86B189BA9534B76C48A4CEC021972C1E1337C074065BCDAF9E552C1EFA4 - -Count = 773 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C -CT = 82B6B9CC4097AC5E72EA4E5224C7E73BBC136FFB7706F397E48768C4B651872F0744B76851A4C8 - -Count = 774 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C0D -CT = 5DC0EAA3E48E728D0AB971A3B46C5E756F0C4B5FC61F0E4ABCD1E921010DE7D06659D2D128B4DF - -Count = 775 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C0D0E -CT = F5E273C0B85FF629E70350553620E9B0C206469F83C8CB3BC2CB79671AF3605893D8F5758A9F9B - -Count = 776 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C0D0E0F -CT = 0F47F3B0C630FE59005875D996FA1207599A4E355001D1799F7518EF53427C7A6051114B2FC31E - -Count = 777 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 183BCB0CE30871A09209FAFF6DD831FB4A9661D4EE2E5EDA89ABE09E33FBF5EAD46579B7841E01 - -Count = 778 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 0AD4E35D0CDB5C46ED5192D71ABDA77AF7F2B11C471BBF7FD83D4D9531005E98C2164DDC99B192 - -Count = 779 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = 81E22B7269ECB5CA72D6FC266ED37D15173FDB041B0633065E6A3897CAFD8E15F1ACB0128393BD - -Count = 780 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = C51B01EF48E764BE4B06DF483CFD24B620050B26B19D00815040806E7D623AFD2C097BB46C0C9B - -Count = 781 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = DD724F39ED7497B7C6A0CC3970E93EAF179390D95CA6D4D0A82671F86C75B309AAD455B147EFA0 - -Count = 782 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = 8079ED0F7239C793F8F69CAD41F5D6F20005173D51EC9FE2516D90778B8197B27C3F628918DDE7 - -Count = 783 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = D84816B878D7162DF559419BC388B19E96426BF5FA4044A6F7233A7B38641A1B35775EB5DD13E8 - -Count = 784 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = A5F050BCA298C6D36106B0209C7BBE364BC534E7485577EEF0B80EE0DEE4FFE7642E134B1EAADC - -Count = 785 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 236EA861E0F625AC0F7CC043F248E3168FDEBCCF790D7ED6F8BC789E47BEBC45FC881298E375DC - -Count = 786 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = BAEC69C08B733EDCD04BF5AA9A422B92FDFD301F71677846156F0577AF04D08B84646B646CC180 - -Count = 787 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 6FEAF790766419D1BCFE9F16690883CBF2154EA0D4FF544775A07D54D5FB347E31466CB68991E4 - -Count = 788 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 9351D46CF9BE44C89C49C08B2EA198AC77C8B63E02A8A09C9A87231C112056775AFF1935759110 - -Count = 789 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = 86474F47C9B37AA7B81C7D3A7EF236A07D2D7E8C26334EDB97F0FABA57B3A5876DE3184EBFE9E8 - -Count = 790 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = A4ECA33C0C646BC4B7C83DE5CD87262F4668A8D573DBBE708EBC1F39F26097B9CE67A40BBE8A74 - -Count = 791 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = D4C8184CC2561264CE33284BB9262C974A1D8587A8966DB9CCB9F69FDC74E8653F6C15F0F7D1D1 - -Count = 792 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 6EF9B5F223391B7C5FBFDC8FB9DBD482C0CA05BFA23A3716EDC1F3F39EC5AE2C10E1E64548C95C - -Count = 793 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = -CT = C9F98EB86B5527F8DBF63ACB57B174DEC953EF5633B156AA9AE59290B68599BA4C8766B092ED1DBF - -Count = 794 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 00 -CT = 23197038165DFA2E594A323BEEB3973A568F6C9525E62C695B9E2CC714FBDB84C80C2E3A2DDACD51 - -Count = 795 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 0001 -CT = FE9D361C358BCE63BA10321C6C41CC76B5D447A706488A96564B70DF207052CF34403510AE3B8AE9 - -Count = 796 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102 -CT = EC81D566D4E35BC9F945B1C736650EDA43E8880C275CA5D93FDF111795C6A906BC2CA1CA4C775B74 - -Count = 797 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 00010203 -CT = D189084B12BEC8FC8F96486759FE7DECCCD4936CCBE239883A5D5368B370D29EAB723A1F07403D3F - -Count = 798 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 0001020304 -CT = A748A865EC8E77BF15434B10DC187A4094FAB3F4809A5C8207A0D9D175D05B46FB242BDA49069492 - -Count = 799 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405 -CT = DB24D0782A7BB0A9E224210DE1A13AF61C12AE96C6AD9561E908E52610E5B364B406954B12474717 - -Count = 800 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 00010203040506 -CT = 1D17560BBF8DC9720E2712623AC3416CB9B786F9ED7B28B39CF5835B6CFF368188AD3AFA43B7D7D4 - -Count = 801 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 0001020304050607 -CT = 4E9807774B4E14B5DB8E562CB5771A706EA1833C3300A8186BA6159681BE6FB44E20EB7E0D974B5C - -Count = 802 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708 -CT = FE628D5C6C6347FCBE258B21F93EB48EFD0463F5495A3CE5F54B301ECAAEA75F6B68A9F47162CD63 - -Count = 803 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 00010203040506070809 -CT = E9C2858529D6FEB52EF49FB5D55EA588A73C6B3DE4B7CFF6A3D0CC5DD82808A7A0B57F2728AFC610 - -Count = 804 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A -CT = FCD0420F6E34CE1DB5E14EDDE53795707D1B6AF114158879E72EDBFACA233323D39200F6831A1689 - -Count = 805 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B -CT = 0228F0ABBA1AB39FD7D86B189BA9534B76C48A4CEC0219CC53058C24293CE1F55A0FAC112C5A2521 - -Count = 806 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C -CT = 82B6B9CC4097AC5E72EA4E5224C7E73BBC136FFB7706F39493116C64EE15BECC54B69249DBA963F2 - -Count = 807 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C0D -CT = 5DC0EAA3E48E728D0AB971A3B46C5E756F0C4B5FC61F0EE2FAA4BE2E4CBE2DDA0202A0E9DD74644A - -Count = 808 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C0D0E -CT = F5E273C0B85FF629E70350553620E9B0C206469F83C8CBAC4A242711C02960EAAF62182D619CD4A0 - -Count = 809 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C0D0E0F -CT = 0F47F3B0C630FE59005875D996FA1207599A4E355001D13A22CA9D381CD7B1B557444559CA5DBB04 - -Count = 810 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 183BCB0CE30871A09209FAFF6DD831FB4A9661D4EE2E5E14CB4F2BF7BAEA40BD0F6B3B25330EB060 - -Count = 811 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 0AD4E35D0CDB5C46ED5192D71ABDA77AF7F2B11C471BBF5316ABAB983339E493147149EB211EC7D6 - -Count = 812 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = 81E22B7269ECB5CA72D6FC266ED37D15173FDB041B0633DBDBC3379A50F44A6BB16B72E25F6887A3 - -Count = 813 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = C51B01EF48E764BE4B06DF483CFD24B620050B26B19D00B64136A73249189D8068CE5F5DF0F6074D - -Count = 814 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = DD724F39ED7497B7C6A0CC3970E93EAF179390D95CA6D4F749025C3494AA4499D5D338DE0ADFD435 - -Count = 815 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = 8079ED0F7239C793F8F69CAD41F5D6F20005173D51EC9FD20C18FDE916E0B1C355E8C2C95F57532F - -Count = 816 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = D84816B878D7162DF559419BC388B19E96426BF5FA40447817B131BCC8371BE053327302FBF81BFF - -Count = 817 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = A5F050BCA298C6D36106B0209C7BBE364BC534E7485577D96C6F7EABBE692C162F6A48F49C951B1C - -Count = 818 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 236EA861E0F625AC0F7CC043F248E3168FDEBCCF790D7E97E886024C0C93A50F44428009B1FC32D8 - -Count = 819 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = BAEC69C08B733EDCD04BF5AA9A422B92FDFD301F71677841ACEFDE890BA9A36BD0E1C898A038E33B - -Count = 820 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 6FEAF790766419D1BCFE9F16690883CBF2154EA0D4FF5432C0BA26B073F0C1ED8ABC5C8E9BC36ED7 - -Count = 821 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 9351D46CF9BE44C89C49C08B2EA198AC77C8B63E02A8A0B6974CD5C34B2B62754050E4CE89DA80CA - -Count = 822 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = 86474F47C9B37AA7B81C7D3A7EF236A07D2D7E8C26334E3D22A4047D5B4A838AE796733005C79A92 - -Count = 823 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = A4ECA33C0C646BC4B7C83DE5CD87262F4668A8D573DBBE8F9282F3A06F8AC6D701D7CFAB3F33B559 - -Count = 824 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = D4C8184CC2561264CE33284BB9262C974A1D8587A8966DF068432288AB5B6FE77A81E530F4E7F666 - -Count = 825 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F1011121314151617 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 6EF9B5F223391B7C5FBFDC8FB9DBD482C0CA05BFA23A37589B9DF02B50C503A1D34A8894EF8B9A3D - -Count = 826 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = -CT = C9F98EB86B5527F8DBF63ACB57B174DEC953EF5633B156AA95EB1A27F864129C59A0593593DDF4144E - -Count = 827 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 00 -CT = 23197038165DFA2E594A323BEEB3973A568F6C9525E62C697098DC8F891581B9FAE4CAE6664A0FE7A1 - -Count = 828 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 0001 -CT = FE9D361C358BCE63BA10321C6C41CC76B5D447A706488A96240DB61E54F3AF6BF1A36B3B9844FA7B79 - -Count = 829 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102 -CT = EC81D566D4E35BC9F945B1C736650EDA43E8880C275CA5D93AA83CA958A11B8910A80FDCF75BEAD5F7 - -Count = 830 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 00010203 -CT = D189084B12BEC8FC8F96486759FE7DECCCD4936CCBE239881D46D74D0743072F832544A051B853B984 - -Count = 831 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 0001020304 -CT = A748A865EC8E77BF15434B10DC187A4094FAB3F4809A5C82932A53D510691FA60D60F33F336FF36F46 - -Count = 832 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405 -CT = DB24D0782A7BB0A9E224210DE1A13AF61C12AE96C6AD9561C682F63506450011B04745CBF35967D2A3 - -Count = 833 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 00010203040506 -CT = 1D17560BBF8DC9720E2712623AC3416CB9B786F9ED7B28B33DFBCA7AE17610E4BCB70476DF02620B2E - -Count = 834 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 0001020304050607 -CT = 4E9807774B4E14B5DB8E562CB5771A706EA1833C3300A81806B4252AF349DC11ABA60302E935F7BFF8 - -Count = 835 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708 -CT = FE628D5C6C6347FCBE258B21F93EB48EFD0463F5495A3CE5953A19582A40141903324D229A13AFA307 - -Count = 836 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 00010203040506070809 -CT = E9C2858529D6FEB52EF49FB5D55EA588A73C6B3DE4B7CFF6B79380084770FC2C03AC334D32BCA2F45A - -Count = 837 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A -CT = FCD0420F6E34CE1DB5E14EDDE53795707D1B6AF114158879A387DA9AB0E04A1EACDA8FED018086D09A - -Count = 838 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B -CT = 0228F0ABBA1AB39FD7D86B189BA9534B76C48A4CEC0219CC30F629BA9ED59F64F0096EF919DADF5E6D - -Count = 839 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C -CT = 82B6B9CC4097AC5E72EA4E5224C7E73BBC136FFB7706F3942F0373E08E3DC41F62E4A190CC0ED2C2C8 - -Count = 840 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C0D -CT = 5DC0EAA3E48E728D0AB971A3B46C5E756F0C4B5FC61F0EE25313B7FC5FD7434BF4D66E6BD9CED905AD - -Count = 841 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C0D0E -CT = F5E273C0B85FF629E70350553620E9B0C206469F83C8CBAC59C169AE65D4CEA94675E557824B41C05F - -Count = 842 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C0D0E0F -CT = 0F47F3B0C630FE59005875D996FA1207599A4E355001D13AF74054620CECA335E11229B115DA0C03C7 - -Count = 843 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 183BCB0CE30871A09209FAFF6DD831FB4A9661D4EE2E5E141C42D266AFB1F847354D2E122D325F377E - -Count = 844 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 0AD4E35D0CDB5C46ED5192D71ABDA77AF7F2B11C471BBF5394B6236A45E1A4B35B51C229099565D0E9 - -Count = 845 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = 81E22B7269ECB5CA72D6FC266ED37D15173FDB041B0633DB30E75041505E1CC042D85CB41473C51568 - -Count = 846 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = C51B01EF48E764BE4B06DF483CFD24B620050B26B19D00B673E17478DE9747A33CD222E8FC331958C8 - -Count = 847 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = DD724F39ED7497B7C6A0CC3970E93EAF179390D95CA6D4F70CC557E0A491DB9CF146B8F2853231E8BD - -Count = 848 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = 8079ED0F7239C793F8F69CAD41F5D6F20005173D51EC9FD2A943631A549ECA7C87FF1F6C5DE2E70505 - -Count = 849 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = D84816B878D7162DF559419BC388B19E96426BF5FA4044780C929EE8926F040104368055A46C912551 - -Count = 850 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = A5F050BCA298C6D36106B0209C7BBE364BC534E7485577D9E59BA17FA0F541B8E33A5AFD965737085B - -Count = 851 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 236EA861E0F625AC0F7CC043F248E3168FDEBCCF790D7E971DADC14D30809C5B6299F5F01D92A07F97 - -Count = 852 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = BAEC69C08B733EDCD04BF5AA9A422B92FDFD301F71677841180A1FC07556079B35F303E67E44DB83F9 - -Count = 853 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 6FEAF790766419D1BCFE9F16690883CBF2154EA0D4FF5432A419EC3FA38003767099D35D8271329603 - -Count = 854 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 9351D46CF9BE44C89C49C08B2EA198AC77C8B63E02A8A0B68E75353902332F6C508A6F943497898C6A - -Count = 855 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = 86474F47C9B37AA7B81C7D3A7EF236A07D2D7E8C26334E3D275D171B435E425F48D3E0351F0D862144 - -Count = 856 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = A4ECA33C0C646BC4B7C83DE5CD87262F4668A8D573DBBE8FE86408758E2DCAF2EA0B2FE362FCD4502C - -Count = 857 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = D4C8184CC2561264CE33284BB9262C974A1D8587A8966DF0A2A3F55FBB89B2D7013B60413D6B8F616B - -Count = 858 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 6EF9B5F223391B7C5FBFDC8FB9DBD482C0CA05BFA23A37583BCA965CCFF24465DE9DA502F80640FD7E - -Count = 859 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = -CT = C9F98EB86B5527F8DBF63ACB57B174DEC953EF5633B156AA95B4D7CFE1DF979E6673AB62B4E3C4EB06BD - -Count = 860 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 00 -CT = 23197038165DFA2E594A323BEEB3973A568F6C9525E62C697059583EB2475AFDC080C2C8C4B8D7826609 - -Count = 861 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 0001 -CT = FE9D361C358BCE63BA10321C6C41CC76B5D447A706488A96248546A14094D44BD3F337581EB6F2926728 - -Count = 862 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102 -CT = EC81D566D4E35BC9F945B1C736650EDA43E8880C275CA5D93A92B9520CD6A23F7E9D071B2A2485695C1E - -Count = 863 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 00010203 -CT = D189084B12BEC8FC8F96486759FE7DECCCD4936CCBE239881DA4BAAEDA517D5232777F8E6BFEE1C403ED - -Count = 864 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 0001020304 -CT = A748A865EC8E77BF15434B10DC187A4094FAB3F4809A5C829344921C0C53FB535E6EAD28DBD67082A69B - -Count = 865 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405 -CT = DB24D0782A7BB0A9E224210DE1A13AF61C12AE96C6AD9561C67AFC542B2916246378B360F80107CC397F - -Count = 866 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 00010203040506 -CT = 1D17560BBF8DC9720E2712623AC3416CB9B786F9ED7B28B33D84CE573CE333F0D8840873600E09491B15 - -Count = 867 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 0001020304050607 -CT = 4E9807774B4E14B5DB8E562CB5771A706EA1833C3300A818060160A044633CF3B82EB63794F0E7771E1C - -Count = 868 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708 -CT = FE628D5C6C6347FCBE258B21F93EB48EFD0463F5495A3CE595449D494AA386F7FDC426FAA038AE03BD2E - -Count = 869 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 00010203040506070809 -CT = E9C2858529D6FEB52EF49FB5D55EA588A73C6B3DE4B7CFF6B79479B5F8CF42D14551D9385A60A1E6105C - -Count = 870 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A -CT = FCD0420F6E34CE1DB5E14EDDE53795707D1B6AF114158879A36C2DCD81CC15723883895F20B0C12AD84D - -Count = 871 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B -CT = 0228F0ABBA1AB39FD7D86B189BA9534B76C48A4CEC0219CC308A10462A086B2B31E9654664C88025DBF7 - -Count = 872 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C -CT = 82B6B9CC4097AC5E72EA4E5224C7E73BBC136FFB7706F3942FC1D3B482F246796EED5A501526F792C20F - -Count = 873 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C0D -CT = 5DC0EAA3E48E728D0AB971A3B46C5E756F0C4B5FC61F0EE2538E581E3D8A2995ADF0E9EE95844618E43F - -Count = 874 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C0D0E -CT = F5E273C0B85FF629E70350553620E9B0C206469F83C8CBAC592A1175FD5F9CAA0B3D0422EE62B817F970 - -Count = 875 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C0D0E0F -CT = 0F47F3B0C630FE59005875D996FA1207599A4E355001D13AF7956338354623A494B1B0A70BF40BE729C2 - -Count = 876 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 183BCB0CE30871A09209FAFF6DD831FB4A9661D4EE2E5E141C38F98627FD8A4B670DF4991D165474A35D - -Count = 877 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 0AD4E35D0CDB5C46ED5192D71ABDA77AF7F2B11C471BBF539428DBB4BB50A5433D8D5F3B67987A99613C - -Count = 878 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = 81E22B7269ECB5CA72D6FC266ED37D15173FDB041B0633DB30405540F48ADF760F06E4D547FD1F70B982 - -Count = 879 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = C51B01EF48E764BE4B06DF483CFD24B620050B26B19D00B67376E718819BF87E291941B27766F89F4C0D - -Count = 880 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = DD724F39ED7497B7C6A0CC3970E93EAF179390D95CA6D4F70CAF730238789BA6C2FB2DEF0658A4AA0731 - -Count = 881 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = 8079ED0F7239C793F8F69CAD41F5D6F20005173D51EC9FD2A91BC3E67CFB63FC7E57198FBA86D80952D5 - -Count = 882 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = D84816B878D7162DF559419BC388B19E96426BF5FA4044780C5E1A248E107C1511472C32CA29BC315EC5 - -Count = 883 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = A5F050BCA298C6D36106B0209C7BBE364BC534E7485577D9E583FBFC3A21FA4C589F57A755D101DC9002 - -Count = 884 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 236EA861E0F625AC0F7CC043F248E3168FDEBCCF790D7E971D4B35D507E92F9F2CE9947E1A2186318855 - -Count = 885 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = BAEC69C08B733EDCD04BF5AA9A422B92FDFD301F7167784118916E571E6FCF54BD4D22BF266B563111FD - -Count = 886 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 6FEAF790766419D1BCFE9F16690883CBF2154EA0D4FF5432A4B2CD54B3F84D365E45DA6457E9FA3249DB - -Count = 887 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 9351D46CF9BE44C89C49C08B2EA198AC77C8B63E02A8A0B68E53CEB71CFA042371AB3BE526C51D40D4AF - -Count = 888 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = 86474F47C9B37AA7B81C7D3A7EF236A07D2D7E8C26334E3D27041F3A4A0C5FFD2A8DF82E3176071B6F37 - -Count = 889 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = A4ECA33C0C646BC4B7C83DE5CD87262F4668A8D573DBBE8FE8C86A2829809635BF2A7BC57DE3CBDB123C - -Count = 890 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = D4C8184CC2561264CE33284BB9262C974A1D8587A8966DF0A2C999FF341286243E4389FB66FF901228EB - -Count = 891 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F10111213141516171819 -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 6EF9B5F223391B7C5FBFDC8FB9DBD482C0CA05BFA23A37583B189B47E914FCCDE044EEED62D452707690 - -Count = 892 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = -CT = C9F98EB86B5527F8DBF63ACB57B174DEC953EF5633B156AA95B410BACA38479376CF47F6A864D1607EBF2B - -Count = 893 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 00 -CT = 23197038165DFA2E594A323BEEB3973A568F6C9525E62C697059647CBFC3EB77BF1D7454E7AE84DF49ABA0 - -Count = 894 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 0001 -CT = FE9D361C358BCE63BA10321C6C41CC76B5D447A706488A96248520D859191AB2D491C056EE2B6F732445BB - -Count = 895 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102 -CT = EC81D566D4E35BC9F945B1C736650EDA43E8880C275CA5D93A924C6E5097C1D28E0670625764D9D24B940A - -Count = 896 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 00010203 -CT = D189084B12BEC8FC8F96486759FE7DECCCD4936CCBE239881DA4A8CBCBA6211FB13334C3A9BFAD8FDA3253 - -Count = 897 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 0001020304 -CT = A748A865EC8E77BF15434B10DC187A4094FAB3F4809A5C829344E0EA2CF9A3CF91D4916EB7DA4E9B3746D0 - -Count = 898 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405 -CT = DB24D0782A7BB0A9E224210DE1A13AF61C12AE96C6AD9561C67A63193418BC2692898AB17BE90B840F2D19 - -Count = 899 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 00010203040506 -CT = 1D17560BBF8DC9720E2712623AC3416CB9B786F9ED7B28B33D84BEAFB578C59D7690B880322A10CB02B5A4 - -Count = 900 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 0001020304050607 -CT = 4E9807774B4E14B5DB8E562CB5771A706EA1833C3300A8180601D2DA291A44C8A07A576F66BAA6CF857B56 - -Count = 901 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708 -CT = FE628D5C6C6347FCBE258B21F93EB48EFD0463F5495A3CE595449E90110F447C180CB4882E0924BABD5404 - -Count = 902 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 00010203040506070809 -CT = E9C2858529D6FEB52EF49FB5D55EA588A73C6B3DE4B7CFF6B7942AFAC7F7222077EA117580341200676300 - -Count = 903 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A -CT = FCD0420F6E34CE1DB5E14EDDE53795707D1B6AF114158879A36CC952770AD21DFB305A54EDB13AF61E3C09 - -Count = 904 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B -CT = 0228F0ABBA1AB39FD7D86B189BA9534B76C48A4CEC0219CC308AA2083BA23C813B82F4BC58628FF983CC12 - -Count = 905 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C -CT = 82B6B9CC4097AC5E72EA4E5224C7E73BBC136FFB7706F3942FC1C08A85E511FFCE96970CCA7B66F07B4D77 - -Count = 906 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C0D -CT = 5DC0EAA3E48E728D0AB971A3B46C5E756F0C4B5FC61F0EE2538E6FB133959EFA6FDAB1A3AB1F9C1D8930CA - -Count = 907 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C0D0E -CT = F5E273C0B85FF629E70350553620E9B0C206469F83C8CBAC592A28A86CBF40F1C53A7D0350949C90F6AF44 - -Count = 908 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C0D0E0F -CT = 0F47F3B0C630FE59005875D996FA1207599A4E355001D13AF795C90B5EC84619231BB284DFBCDF2347EF41 - -Count = 909 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 183BCB0CE30871A09209FAFF6DD831FB4A9661D4EE2E5E141C38E209100082EC954407A0E17BBF7EE6FB31 - -Count = 910 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 0AD4E35D0CDB5C46ED5192D71ABDA77AF7F2B11C471BBF5394285DE74EE9F55AB4450738F5F1F853BA7C69 - -Count = 911 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = 81E22B7269ECB5CA72D6FC266ED37D15173FDB041B0633DB3040CC2E99B90B9ACF97BE0256C0CB5D972604 - -Count = 912 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = C51B01EF48E764BE4B06DF483CFD24B620050B26B19D00B67376B56B698911F82C1D24E04AF120846C6466 - -Count = 913 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = DD724F39ED7497B7C6A0CC3970E93EAF179390D95CA6D4F70CAF28023912D8965DF61C6F0514DD2CA2F085 - -Count = 914 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = 8079ED0F7239C793F8F69CAD41F5D6F20005173D51EC9FD2A91B7C92939AE5A4B659DA92D0F66DB20E5C40 - -Count = 915 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = D84816B878D7162DF559419BC388B19E96426BF5FA4044780C5E506A52F307AD101F2FB598C6A022904C85 - -Count = 916 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = A5F050BCA298C6D36106B0209C7BBE364BC534E7485577D9E58337B4559EAF36B992991F51D571A183AA31 - -Count = 917 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 236EA861E0F625AC0F7CC043F248E3168FDEBCCF790D7E971D4B16971040815372B40C46F0CEB6F5C42476 - -Count = 918 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = BAEC69C08B733EDCD04BF5AA9A422B92FDFD301F716778411891D18C1496B448440C9A3A1404C5FD1CDED3 - -Count = 919 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 6FEAF790766419D1BCFE9F16690883CBF2154EA0D4FF5432A4B243CDCFB826D2F53A8200E17EDB083BD466 - -Count = 920 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 9351D46CF9BE44C89C49C08B2EA198AC77C8B63E02A8A0B68E53E99653D0C19B170F2BE5399AD328D42592 - -Count = 921 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = 86474F47C9B37AA7B81C7D3A7EF236A07D2D7E8C26334E3D27043CFBC7AF33F9C8589E56FDDCFD2CC02C32 - -Count = 922 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = A4ECA33C0C646BC4B7C83DE5CD87262F4668A8D573DBBE8FE8C8A853C4B641E611E9E0695F52EBEE5377BF - -Count = 923 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = D4C8184CC2561264CE33284BB9262C974A1D8587A8966DF0A2C97386392A3DE63A06D561724DB898BB981C - -Count = 924 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 6EF9B5F223391B7C5FBFDC8FB9DBD482C0CA05BFA23A37583B186C8366015E65B9BFCEEA22EDDCFB5E3267 - -Count = 925 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = -CT = C9F98EB86B5527F8DBF63ACB57B174DEC953EF5633B156AA95B4100B31D263C4A1D84EB3BBBE2AB130720ADF - -Count = 926 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 00 -CT = 23197038165DFA2E594A323BEEB3973A568F6C9525E62C697059647D003176B6840B13E31E4F12E0ADD96B0D - -Count = 927 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 0001 -CT = FE9D361C358BCE63BA10321C6C41CC76B5D447A706488A96248520493C3CADD9D1DAB9CC47F72DFD09FF44A0 - -Count = 928 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102 -CT = EC81D566D4E35BC9F945B1C736650EDA43E8880C275CA5D93A924C13DCA84BCB74CB3D4A581D41160B33CCF8 - -Count = 929 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 00010203 -CT = D189084B12BEC8FC8F96486759FE7DECCCD4936CCBE239881DA4A8767135C8B0A98F97C74996003B61935908 - -Count = 930 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 0001020304 -CT = A748A865EC8E77BF15434B10DC187A4094FAB3F4809A5C829344E091F038C5855B2D0B8625AD0D1068031F0A - -Count = 931 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405 -CT = DB24D0782A7BB0A9E224210DE1A13AF61C12AE96C6AD9561C67A6310B3FBFAEEE06CD9200D3B04A10E9BD3EE - -Count = 932 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 00010203040506 -CT = 1D17560BBF8DC9720E2712623AC3416CB9B786F9ED7B28B33D84BE01D7262C92538F2A35AB898CEB201B5212 - -Count = 933 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 0001020304050607 -CT = 4E9807774B4E14B5DB8E562CB5771A706EA1833C3300A8180601D21DAE15C244471209AD06E764184D2AC94F - -Count = 934 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708 -CT = FE628D5C6C6347FCBE258B21F93EB48EFD0463F5495A3CE595449E6D94BE3860910D181E829D59C1A64712F0 - -Count = 935 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 00010203040506070809 -CT = E9C2858529D6FEB52EF49FB5D55EA588A73C6B3DE4B7CFF6B7942ADBC877A619EB113F0C7CA858205E19D360 - -Count = 936 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A -CT = FCD0420F6E34CE1DB5E14EDDE53795707D1B6AF114158879A36CC910C366A032C32380784234E4A68D4AA484 - -Count = 937 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B -CT = 0228F0ABBA1AB39FD7D86B189BA9534B76C48A4CEC0219CC308AA2806F94B145376D3BB1EAF45A24238B8B56 - -Count = 938 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C -CT = 82B6B9CC4097AC5E72EA4E5224C7E73BBC136FFB7706F3942FC1C001202D0E2EE021A41536A5AB25435BDC74 - -Count = 939 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C0D -CT = 5DC0EAA3E48E728D0AB971A3B46C5E756F0C4B5FC61F0EE2538E6F1BAB0DEABD07ADBA7B88D8400EE5308B7C - -Count = 940 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C0D0E -CT = F5E273C0B85FF629E70350553620E9B0C206469F83C8CBAC592A2884814C846E16F45CF93BFCF6E507540BDE - -Count = 941 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C0D0E0F -CT = 0F47F3B0C630FE59005875D996FA1207599A4E355001D13AF795C975F64DBCD3D7A2F182F04150D30C560464 - -Count = 942 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 183BCB0CE30871A09209FAFF6DD831FB4A9661D4EE2E5E141C38E2DCBDB73FE899AC777A3E0E2CF84909829E - -Count = 943 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 0AD4E35D0CDB5C46ED5192D71ABDA77AF7F2B11C471BBF5394285D8B0143F907FF3ADC0C6E4BD58051A7F31C - -Count = 944 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = 81E22B7269ECB5CA72D6FC266ED37D15173FDB041B0633DB3040CC965DC41AC6EA44FE58DC7D5919FC76C68F - -Count = 945 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = C51B01EF48E764BE4B06DF483CFD24B620050B26B19D00B67376B5C4972C2EDB71B7833545FD0DE74ACB6395 - -Count = 946 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = DD724F39ED7497B7C6A0CC3970E93EAF179390D95CA6D4F70CAF28559615D12E70EE9491DBD4C3DFCBCBCEF6 - -Count = 947 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = 8079ED0F7239C793F8F69CAD41F5D6F20005173D51EC9FD2A91B7C16E6BDECE8EC22C62A01BE06F6ADA586F8 - -Count = 948 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = D84816B878D7162DF559419BC388B19E96426BF5FA4044780C5E502C71E0E7D9B64BB1EB42867896D6317E16 - -Count = 949 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = A5F050BCA298C6D36106B0209C7BBE364BC534E7485577D9E583378852C4B86E8F19994A186BB761848D2395 - -Count = 950 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 236EA861E0F625AC0F7CC043F248E3168FDEBCCF790D7E971D4B16D82F2C2915A09ABD6895D36C5E55638D7C - -Count = 951 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = BAEC69C08B733EDCD04BF5AA9A422B92FDFD301F716778411891D1B6E1301CD1DEE35B33E7CE96DCEA5C1748 - -Count = 952 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 6FEAF790766419D1BCFE9F16690883CBF2154EA0D4FF5432A4B24329944F56C2A391F0D9D736759F1343E5A0 - -Count = 953 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 9351D46CF9BE44C89C49C08B2EA198AC77C8B63E02A8A0B68E53E9EFF3DE3AE889617D0223C2C4063D4250B3 - -Count = 954 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = 86474F47C9B37AA7B81C7D3A7EF236A07D2D7E8C26334E3D27043CFA5CDE45D448B231F96C9371D27B63E96C - -Count = 955 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = A4ECA33C0C646BC4B7C83DE5CD87262F4668A8D573DBBE8FE8C8A89E4788F0B11FDFAF5CE6C805AE40F2295A - -Count = 956 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = D4C8184CC2561264CE33284BB9262C974A1D8587A8966DF0A2C973EC2601285507FA4FA4B54AD0087DD1831C - -Count = 957 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 6EF9B5F223391B7C5FBFDC8FB9DBD482C0CA05BFA23A37583B186C393555DACCDEA294479E13DA9180CB2A6E - -Count = 958 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = -CT = C9F98EB86B5527F8DBF63ACB57B174DEC953EF5633B156AA95B4100B9F48939AEDDA8060DFD0AA340E603FCBC7 - -Count = 959 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 00 -CT = 23197038165DFA2E594A323BEEB3973A568F6C9525E62C697059647D8CDC8E64F98A5DFBCA7F4AF376D7B5DC13 - -Count = 960 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 0001 -CT = FE9D361C358BCE63BA10321C6C41CC76B5D447A706488A96248520499007788476F56704C0D2531FBBD47EB4EC - -Count = 961 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102 -CT = EC81D566D4E35BC9F945B1C736650EDA43E8880C275CA5D93A924C13DA2AAC6A069824C79790A4F0DE49FA7508 - -Count = 962 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 00010203 -CT = D189084B12BEC8FC8F96486759FE7DECCCD4936CCBE239881DA4A8767267DBE7E03A00B196A82931242EED379A - -Count = 963 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 0001020304 -CT = A748A865EC8E77BF15434B10DC187A4094FAB3F4809A5C829344E09138EDD78A5AC736B237F13A73DD881E6894 - -Count = 964 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405 -CT = DB24D0782A7BB0A9E224210DE1A13AF61C12AE96C6AD9561C67A631063E91F53F99B5D07BF05C2EE47D4628A05 - -Count = 965 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 00010203040506 -CT = 1D17560BBF8DC9720E2712623AC3416CB9B786F9ED7B28B33D84BE01FDA042737073304C9D646F336B931957E5 - -Count = 966 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 0001020304050607 -CT = 4E9807774B4E14B5DB8E562CB5771A706EA1833C3300A8180601D21DDBA124FA85F8C4DAA22D4552B4EA3BA22A - -Count = 967 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708 -CT = FE628D5C6C6347FCBE258B21F93EB48EFD0463F5495A3CE595449E6DB15D5AB8365275274C6E6802B151AFF417 - -Count = 968 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 00010203040506070809 -CT = E9C2858529D6FEB52EF49FB5D55EA588A73C6B3DE4B7CFF6B7942ADB7CE1D1286D740DC8179F71EF1D29CEBE5B - -Count = 969 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A -CT = FCD0420F6E34CE1DB5E14EDDE53795707D1B6AF114158879A36CC91003ED059C1A23B998DB933B7C0A6FA2F053 - -Count = 970 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B -CT = 0228F0ABBA1AB39FD7D86B189BA9534B76C48A4CEC0219CC308AA280EA63E0663CC9F35D4CA2A1B4E45083779C - -Count = 971 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C -CT = 82B6B9CC4097AC5E72EA4E5224C7E73BBC136FFB7706F3942FC1C0018EB0E22AA31B7D5CE3E50E0A6605B56D3E - -Count = 972 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C0D -CT = 5DC0EAA3E48E728D0AB971A3B46C5E756F0C4B5FC61F0EE2538E6F1BD793706EB6EC581A90A1684B33D65F2979 - -Count = 973 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C0D0E -CT = F5E273C0B85FF629E70350553620E9B0C206469F83C8CBAC592A2884E65834BD33AA16F191503349FBC711960E - -Count = 974 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C0D0E0F -CT = 0F47F3B0C630FE59005875D996FA1207599A4E355001D13AF795C975706D6F7D2F013FEDAFCE582348A18F40B0 - -Count = 975 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 183BCB0CE30871A09209FAFF6DD831FB4A9661D4EE2E5E141C38E2DC6D80618A2692594EE4979822074AE07AB9 - -Count = 976 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 0AD4E35D0CDB5C46ED5192D71ABDA77AF7F2B11C471BBF5394285D8BF7C28B102E7E9F6017A2B4FF6EF22AE15D - -Count = 977 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = 81E22B7269ECB5CA72D6FC266ED37D15173FDB041B0633DB3040CC9620C308532C650B79AD634CA79256FAB213 - -Count = 978 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = C51B01EF48E764BE4B06DF483CFD24B620050B26B19D00B67376B5C4642A14193CCF06FBE882A5F58F6D270E7B - -Count = 979 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = DD724F39ED7497B7C6A0CC3970E93EAF179390D95CA6D4F70CAF28554162973BDA725B90A3DB8F3E472EF9E925 - -Count = 980 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = 8079ED0F7239C793F8F69CAD41F5D6F20005173D51EC9FD2A91B7C16C2417E827DA0645AD8E063DEA63C2765AF - -Count = 981 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = D84816B878D7162DF559419BC388B19E96426BF5FA4044780C5E502C44AFEEADD697BDC32FDD9A9CF20EA50575 - -Count = 982 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = A5F050BCA298C6D36106B0209C7BBE364BC534E7485577D9E58337884F56D501947DFDC2A8DC1395528113EC70 - -Count = 983 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 236EA861E0F625AC0F7CC043F248E3168FDEBCCF790D7E971D4B16D8092B49CA34B25DD29C7C4E9D9E9A6FA260 - -Count = 984 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = BAEC69C08B733EDCD04BF5AA9A422B92FDFD301F716778411891D1B6B97832563E076F75D0F1F286CA40E7B0FE - -Count = 985 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 6FEAF790766419D1BCFE9F16690883CBF2154EA0D4FF5432A4B24329D75D25D62B0F3D05E34F853F77B05B9845 - -Count = 986 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 9351D46CF9BE44C89C49C08B2EA198AC77C8B63E02A8A0B68E53E9EF6BD52E4CFA1E3D496C2226EBE182D4A949 - -Count = 987 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = 86474F47C9B37AA7B81C7D3A7EF236A07D2D7E8C26334E3D27043CFA28727E0C130395D7AE3B3C0DACBA40C9E3 - -Count = 988 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = A4ECA33C0C646BC4B7C83DE5CD87262F4668A8D573DBBE8FE8C8A89E4DA9A8C6DB93FADB624A7692C14D902CD3 - -Count = 989 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = D4C8184CC2561264CE33284BB9262C974A1D8587A8966DF0A2C973EC7997C5B4B258E03ECBAB4540474C64BE69 - -Count = 990 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 6EF9B5F223391B7C5FBFDC8FB9DBD482C0CA05BFA23A37583B186C399900CFCDB5375348C989CA4F5563B6AB98 - -Count = 991 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = -CT = C9F98EB86B5527F8DBF63ACB57B174DEC953EF5633B156AA95B4100B9F3E4C3D389DE1B4EF8DF215C8AEFFB3D15B - -Count = 992 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 00 -CT = 23197038165DFA2E594A323BEEB3973A568F6C9525E62C697059647D8C2211C2CD0DE03BF9792240491098C82A24 - -Count = 993 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 0001 -CT = FE9D361C358BCE63BA10321C6C41CC76B5D447A706488A962485204990B851E239A4ADE91ECCE694F7E707E287C6 - -Count = 994 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102 -CT = EC81D566D4E35BC9F945B1C736650EDA43E8880C275CA5D93A924C13DA32C34017E9967D98F817EE86822A2D3088 - -Count = 995 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 00010203 -CT = D189084B12BEC8FC8F96486759FE7DECCCD4936CCBE239881DA4A8767221A799A40E2196B49AFFF9B02C2D7B7994 - -Count = 996 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 0001020304 -CT = A748A865EC8E77BF15434B10DC187A4094FAB3F4809A5C829344E0913815F5F4CCDE746AF7E60D67823C727D7EE5 - -Count = 997 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405 -CT = DB24D0782A7BB0A9E224210DE1A13AF61C12AE96C6AD9561C67A631063A270BDEB13DB66AF3C023695EAE4EB661C - -Count = 998 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 00010203040506 -CT = 1D17560BBF8DC9720E2712623AC3416CB9B786F9ED7B28B33D84BE01FD335E2BC966298F7273D954E941B7FABAAA - -Count = 999 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 0001020304050607 -CT = 4E9807774B4E14B5DB8E562CB5771A706EA1833C3300A8180601D21DDBF74EC67CC256A6AE20C86557977B2B8D41 - -Count = 1000 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708 -CT = FE628D5C6C6347FCBE258B21F93EB48EFD0463F5495A3CE595449E6DB19AC229446946A2D0F657BFD013073BC1C7 - -Count = 1001 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 00010203040506070809 -CT = E9C2858529D6FEB52EF49FB5D55EA588A73C6B3DE4B7CFF6B7942ADB7C07C91585DA708AE1BD752B1FAB584C0D98 - -Count = 1002 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A -CT = FCD0420F6E34CE1DB5E14EDDE53795707D1B6AF114158879A36CC91003DD075FFC1E373F9F18AA200137EBD460D5 - -Count = 1003 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B -CT = 0228F0ABBA1AB39FD7D86B189BA9534B76C48A4CEC0219CC308AA280EAA22BBF2C6D3ABA10F411E296D95BB42B3E - -Count = 1004 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C -CT = 82B6B9CC4097AC5E72EA4E5224C7E73BBC136FFB7706F3942FC1C0018E2C8D7198300109BC2F19E994746B95EB57 - -Count = 1005 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C0D -CT = 5DC0EAA3E48E728D0AB971A3B46C5E756F0C4B5FC61F0EE2538E6F1BD71745D145E60A0376CBB4C6BB20F48CBCA2 - -Count = 1006 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C0D0E -CT = F5E273C0B85FF629E70350553620E9B0C206469F83C8CBAC592A2884E6E6964401D883D7C629FCB8F6CB6A2B48FC - -Count = 1007 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C0D0E0F -CT = 0F47F3B0C630FE59005875D996FA1207599A4E355001D13AF795C975701A29AE43883DE845A1D28920C8AD23A363 - -Count = 1008 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 183BCB0CE30871A09209FAFF6DD831FB4A9661D4EE2E5E141C38E2DC6DE5766EE570C150D9B8AA36AB17D3F03352 - -Count = 1009 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 0AD4E35D0CDB5C46ED5192D71ABDA77AF7F2B11C471BBF5394285D8BF7C76B2DDA9149C19C8AC5FEC3DAC51D3DC2 - -Count = 1010 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = 81E22B7269ECB5CA72D6FC266ED37D15173FDB041B0633DB3040CC962082578727343DC313B9C28FF863A6738616 - -Count = 1011 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = C51B01EF48E764BE4B06DF483CFD24B620050B26B19D00B67376B5C4641F721FB5E95B8B7D92C687B19A20B6247B - -Count = 1012 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = DD724F39ED7497B7C6A0CC3970E93EAF179390D95CA6D4F70CAF28554121CB718D1DCF05E3C0885EADE74B0C889A - -Count = 1013 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = 8079ED0F7239C793F8F69CAD41F5D6F20005173D51EC9FD2A91B7C16C2722606C1B929878E3CFFE9AFE60AD05477 - -Count = 1014 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = D84816B878D7162DF559419BC388B19E96426BF5FA4044780C5E502C446932C9AC398E2CDF2BADBF6B44DE97B30B - -Count = 1015 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = A5F050BCA298C6D36106B0209C7BBE364BC534E7485577D9E58337884FC9892BEE89794C898048AC4FE8BF789DA3 - -Count = 1016 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 236EA861E0F625AC0F7CC043F248E3168FDEBCCF790D7E971D4B16D809FEDEC6AD206EE6B7D3C806B8BF5E82044A - -Count = 1017 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = BAEC69C08B733EDCD04BF5AA9A422B92FDFD301F716778411891D1B6B9060416870014C827EA7BDB3C00FADD63E1 - -Count = 1018 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 6FEAF790766419D1BCFE9F16690883CBF2154EA0D4FF5432A4B24329D79D80E793E2751842620E14D27FDAD3286D - -Count = 1019 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 9351D46CF9BE44C89C49C08B2EA198AC77C8B63E02A8A0B68E53E9EF6B72269D5C79DA42035BCDCFBFB0BD1F927D - -Count = 1020 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = 86474F47C9B37AA7B81C7D3A7EF236A07D2D7E8C26334E3D27043CFA28ACACBE9497A65A195EC890BA44486C8166 - -Count = 1021 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = A4ECA33C0C646BC4B7C83DE5CD87262F4668A8D573DBBE8FE8C8A89E4D384E9F2F05CB923956547153164623214F - -Count = 1022 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = D4C8184CC2561264CE33284BB9262C974A1D8587A8966DF0A2C973EC79124838CD94297BEC7DB8EC08B8CC944298 - -Count = 1023 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 6EF9B5F223391B7C5FBFDC8FB9DBD482C0CA05BFA23A37583B186C39997DB1DB4201A919D82E2DC9BFA9390BB8D8 - -Count = 1024 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = -CT = C9F98EB86B5527F8DBF63ACB57B174DEC953EF5633B156AA95B4100B9F3E225D63F33EACF403232EEBC877504BA945 - -Count = 1025 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 00 -CT = 23197038165DFA2E594A323BEEB3973A568F6C9525E62C697059647D8C2256A3B0E5C269BEDD5428AF7BADE56C1BFB - -Count = 1026 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 0001 -CT = FE9D361C358BCE63BA10321C6C41CC76B5D447A706488A962485204990B82BEA8ED355B2010004E70B9F073A1A9A1C - -Count = 1027 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102 -CT = EC81D566D4E35BC9F945B1C736650EDA43E8880C275CA5D93A924C13DA320699AA1EFBBEDEA5C015EB60438BF55BD4 - -Count = 1028 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 00010203 -CT = D189084B12BEC8FC8F96486759FE7DECCCD4936CCBE239881DA4A8767221DAC6EBC711A9AA0FCD4E6F6FF3DF67CA0E - -Count = 1029 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 0001020304 -CT = A748A865EC8E77BF15434B10DC187A4094FAB3F4809A5C829344E0913815DBA20979A65A25A4BC056103DF3325605D - -Count = 1030 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405 -CT = DB24D0782A7BB0A9E224210DE1A13AF61C12AE96C6AD9561C67A631063A2E1749214FB99E52E98EF6D55746C2FE209 - -Count = 1031 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 00010203040506 -CT = 1D17560BBF8DC9720E2712623AC3416CB9B786F9ED7B28B33D84BE01FD338C8DA6F565A362793AC146F239B3E6079B - -Count = 1032 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 0001020304050607 -CT = 4E9807774B4E14B5DB8E562CB5771A706EA1833C3300A8180601D21DDBF76DB9E4A7B2E664CD26D4E76A60B78BCFAB - -Count = 1033 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708 -CT = FE628D5C6C6347FCBE258B21F93EB48EFD0463F5495A3CE595449E6DB19A9EB7D0249D7BB37AAB6038D6853F77A386 - -Count = 1034 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 00010203040506070809 -CT = E9C2858529D6FEB52EF49FB5D55EA588A73C6B3DE4B7CFF6B7942ADB7C072FAFADB6E4CFF1B3B37A155B276E391F02 - -Count = 1035 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A -CT = FCD0420F6E34CE1DB5E14EDDE53795707D1B6AF114158879A36CC91003DD4206FFEDC11EEBC364ADB53CA143E5AF78 - -Count = 1036 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B -CT = 0228F0ABBA1AB39FD7D86B189BA9534B76C48A4CEC0219CC308AA280EAA2A7FB55CA8DFDB00E0543A7CC87341C4AA5 - -Count = 1037 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C -CT = 82B6B9CC4097AC5E72EA4E5224C7E73BBC136FFB7706F3942FC1C0018E2C92ECA8FF12367E079FE28EAD0EF0F6FF78 - -Count = 1038 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C0D -CT = 5DC0EAA3E48E728D0AB971A3B46C5E756F0C4B5FC61F0EE2538E6F1BD7176BE279083445350C4DAD1418C818962934 - -Count = 1039 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C0D0E -CT = F5E273C0B85FF629E70350553620E9B0C206469F83C8CBAC592A2884E6E67CAA6716E46D26EBF628A7A45A333EC745 - -Count = 1040 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C0D0E0F -CT = 0F47F3B0C630FE59005875D996FA1207599A4E355001D13AF795C975701A4C0A42D6CDE3E7591DEED47B5D37193697 - -Count = 1041 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 183BCB0CE30871A09209FAFF6DD831FB4A9661D4EE2E5E141C38E2DC6DE54D199DBA21411E4EF9695F369E37C02E8D - -Count = 1042 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 0AD4E35D0CDB5C46ED5192D71ABDA77AF7F2B11C471BBF5394285D8BF7C70DF31549EB3D1324560FED36C91A05BB10 - -Count = 1043 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = 81E22B7269ECB5CA72D6FC266ED37D15173FDB041B0633DB3040CC9620829FA8C0F2D0C794D9F2E9AE415617013091 - -Count = 1044 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = C51B01EF48E764BE4B06DF483CFD24B620050B26B19D00B67376B5C4641F7DB89DBA4D144147BD2E94FBB5A496092A - -Count = 1045 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = DD724F39ED7497B7C6A0CC3970E93EAF179390D95CA6D4F70CAF2855412113D048352141034AA42279987863E766FC - -Count = 1046 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = 8079ED0F7239C793F8F69CAD41F5D6F20005173D51EC9FD2A91B7C16C27254249819406824E775526930282883169E - -Count = 1047 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = D84816B878D7162DF559419BC388B19E96426BF5FA4044780C5E502C4469B5781D6A6FC6F099C0E2A255A151317FAE - -Count = 1048 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = A5F050BCA298C6D36106B0209C7BBE364BC534E7485577D9E58337884FC99CDB6FD2BC10616D2FD2D2E638B2C52160 - -Count = 1049 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 236EA861E0F625AC0F7CC043F248E3168FDEBCCF790D7E971D4B16D809FE6E6C7936D74CE656DEFFDC45D9B0D61278 - -Count = 1050 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = BAEC69C08B733EDCD04BF5AA9A422B92FDFD301F716778411891D1B6B9063A212C81D87FB4E073C2E824FE3F3F2A64 - -Count = 1051 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 6FEAF790766419D1BCFE9F16690883CBF2154EA0D4FF5432A4B24329D79DCCB68C9AF906D4E6C98269A8AEE0E3C8FD - -Count = 1052 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 9351D46CF9BE44C89C49C08B2EA198AC77C8B63E02A8A0B68E53E9EF6B725CC7FBBBBCE7A4632D49BA3D0EF4D481DA - -Count = 1053 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = 86474F47C9B37AA7B81C7D3A7EF236A07D2D7E8C26334E3D27043CFA28ACC16E6B974DE65A72AF78DFE1213896A6A5 - -Count = 1054 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = A4ECA33C0C646BC4B7C83DE5CD87262F4668A8D573DBBE8FE8C8A89E4D383B37294D0C856FA466FA6B36F6A1A431F0 - -Count = 1055 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = D4C8184CC2561264CE33284BB9262C974A1D8587A8966DF0A2C973EC7912E6DF1121421948B14017ED93DC7F5459FE - -Count = 1056 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 6EF9B5F223391B7C5FBFDC8FB9DBD482C0CA05BFA23A37583B186C39997D055AA94B5E468CE63DCD44F541DBD53BF7 - -Count = 1057 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = -CT = C9F98EB86B5527F8DBF63ACB57B174DEC953EF5633B156AA95B4100B9F3E22E627D5F27F10BB11DD268E4CA0F3EF8F1F - -Count = 1058 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 00 -CT = 23197038165DFA2E594A323BEEB3973A568F6C9525E62C697059647D8C2256B7AAB5DA2D2C00FE4C61B7D7E1A0EEB4D2 - -Count = 1059 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 0001 -CT = FE9D361C358BCE63BA10321C6C41CC76B5D447A706488A962485204990B82B505232C898672CA796CE4BE13406D95F36 - -Count = 1060 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102 -CT = EC81D566D4E35BC9F945B1C736650EDA43E8880C275CA5D93A924C13DA320602F0EEC7EAADEC7F14BCFE33584C7A9C33 - -Count = 1061 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 00010203 -CT = D189084B12BEC8FC8F96486759FE7DECCCD4936CCBE239881DA4A8767221DAF247C6CDCBF48AEFA2BB40DF12B43282BB - -Count = 1062 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 0001020304 -CT = A748A865EC8E77BF15434B10DC187A4094FAB3F4809A5C829344E0913815DB261254FDE44786D1E0AC0B85C692733B5A - -Count = 1063 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405 -CT = DB24D0782A7BB0A9E224210DE1A13AF61C12AE96C6AD9561C67A631063A2E19430110413609C20EEAE9ACD1B4D00D345 - -Count = 1064 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 00010203040506 -CT = 1D17560BBF8DC9720E2712623AC3416CB9B786F9ED7B28B33D84BE01FD338C41A05851554FB3B05453374A28F18CA714 - -Count = 1065 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 0001020304050607 -CT = 4E9807774B4E14B5DB8E562CB5771A706EA1833C3300A8180601D21DDBF76DED0B8840AED7AC6A1B356D2A850EA7EE62 - -Count = 1066 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708 -CT = FE628D5C6C6347FCBE258B21F93EB48EFD0463F5495A3CE595449E6DB19A9E44513023DE104FD23765125C9B07EEB165 - -Count = 1067 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 00010203040506070809 -CT = E9C2858529D6FEB52EF49FB5D55EA588A73C6B3DE4B7CFF6B7942ADB7C072FDFB6E624875209FC1F1AA766A1F3167ED6 - -Count = 1068 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A -CT = FCD0420F6E34CE1DB5E14EDDE53795707D1B6AF114158879A36CC91003DD421BEBDFB45734B39D7F5410D844C2CA0F28 - -Count = 1069 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B -CT = 0228F0ABBA1AB39FD7D86B189BA9534B76C48A4CEC0219CC308AA280EAA2A7B45E3FE76D37CFBFC6E1ADF13B4D12769F - -Count = 1070 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C -CT = 82B6B9CC4097AC5E72EA4E5224C7E73BBC136FFB7706F3942FC1C0018E2C927742A49E33CEF5E95359840BE33402B23C - -Count = 1071 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C0D -CT = 5DC0EAA3E48E728D0AB971A3B46C5E756F0C4B5FC61F0EE2538E6F1BD7176B8B6FD00CBE2F2BF4EDC2B149905FCA0260 - -Count = 1072 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C0D0E -CT = F5E273C0B85FF629E70350553620E9B0C206469F83C8CBAC592A2884E6E67CA8DCE12BD377F770ACBB8CB38576B2C839 - -Count = 1073 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C0D0E0F -CT = 0F47F3B0C630FE59005875D996FA1207599A4E355001D13AF795C975701A4CD6DCEA25311A9960BFBE8CBD76D1F266C1 - -Count = 1074 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C0D0E0F10 -CT = 183BCB0CE30871A09209FAFF6DD831FB4A9661D4EE2E5E141C38E2DC6DE54DB89F00DF2FBC59FB5B37717E31EAD6B8D5 - -Count = 1075 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C0D0E0F1011 -CT = 0AD4E35D0CDB5C46ED5192D71ABDA77AF7F2B11C471BBF5394285D8BF7C70DAC60387EB03694EC34D2E694F42AAE9840 - -Count = 1076 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C0D0E0F101112 -CT = 81E22B7269ECB5CA72D6FC266ED37D15173FDB041B0633DB3040CC9620829F35A47A3D32337F3C2BBA61067460478857 - -Count = 1077 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C0D0E0F10111213 -CT = C51B01EF48E764BE4B06DF483CFD24B620050B26B19D00B67376B5C4641F7D041AAB72249613C4919D6205C6F7C1BB2A - -Count = 1078 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C0D0E0F1011121314 -CT = DD724F39ED7497B7C6A0CC3970E93EAF179390D95CA6D4F70CAF28554121131E17ED438E81B0C576F021FE612CCCABFE - -Count = 1079 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C0D0E0F101112131415 -CT = 8079ED0F7239C793F8F69CAD41F5D6F20005173D51EC9FD2A91B7C16C2725473882A01E9FA10C71E44CFCF2C175E8164 - -Count = 1080 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C0D0E0F10111213141516 -CT = D84816B878D7162DF559419BC388B19E96426BF5FA4044780C5E502C4469B5CB91DB73D585EF87464A5661FFCAF1C5F5 - -Count = 1081 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C0D0E0F1011121314151617 -CT = A5F050BCA298C6D36106B0209C7BBE364BC534E7485577D9E58337884FC99C0BAE01800E0952827006097847213C3766 - -Count = 1082 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C0D0E0F101112131415161718 -CT = 236EA861E0F625AC0F7CC043F248E3168FDEBCCF790D7E971D4B16D809FE6EDBB100FC8CBE8473AB3C2D4CE6C2A37627 - -Count = 1083 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C0D0E0F10111213141516171819 -CT = BAEC69C08B733EDCD04BF5AA9A422B92FDFD301F716778411891D1B6B9063A06F54C239C0AD9B98F6C9189008BB6B4CB - -Count = 1084 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A -CT = 6FEAF790766419D1BCFE9F16690883CBF2154EA0D4FF5432A4B24329D79DCC239168FC2FFDCEC2A6459B905D62BBAB87 - -Count = 1085 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B -CT = 9351D46CF9BE44C89C49C08B2EA198AC77C8B63E02A8A0B68E53E9EF6B725C75DAA33200662451E9729DFAEB78708C32 - -Count = 1086 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C -CT = 86474F47C9B37AA7B81C7D3A7EF236A07D2D7E8C26334E3D27043CFA28ACC19669B1FF57E581F95F443D7D51DA2FDF1A - -Count = 1087 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D -CT = A4ECA33C0C646BC4B7C83DE5CD87262F4668A8D573DBBE8FE8C8A89E4D383B5D19DC9E6765C9DD28D73489C7C5C4068D - -Count = 1088 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E -CT = D4C8184CC2561264CE33284BB9262C974A1D8587A8966DF0A2C973EC7912E6F72CF80EFB9E9C6C96669915420552D810 - -Count = 1089 -Key = 000102030405060708090A0B0C0D0E0F -Nonce = 000102030405060708090A0B -PT = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -AD = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F -CT = 6EF9B5F223391B7C5FBFDC8FB9DBD482C0CA05BFA23A37583B186C39997D05A09C3F443CB093A9A7B4918D21D658F29B - diff --git a/romulus/Implementations/crypto_aead/romulusn3v12/ref/api.h b/romulus/Implementations/crypto_aead/romulusn3v12/ref/api.h deleted file mode 100644 index 969c338..0000000 --- a/romulus/Implementations/crypto_aead/romulusn3v12/ref/api.h +++ /dev/null @@ -1,5 +0,0 @@ -#define CRYPTO_KEYBYTES 16 -#define CRYPTO_NSECBYTES 0 -#define CRYPTO_NPUBBYTES 12 -#define CRYPTO_ABYTES 16 -#define CRYPTO_NOOVERLAP 1 diff --git a/romulus/Implementations/crypto_aead/romulusn3v12/ref/encrypt.c b/romulus/Implementations/crypto_aead/romulusn3v12/ref/encrypt.c deleted file mode 100644 index b75a0dc..0000000 --- a/romulus/Implementations/crypto_aead/romulusn3v12/ref/encrypt.c +++ /dev/null @@ -1,518 +0,0 @@ -/* - * Date: 29 November 2018 - * Contact: Thomas Peyrin - thomas.peyrin@gmail.com - * Mustafa Khairallah - mustafam001@e.ntu.edu.sg - */ - -#include "crypto_aead.h" -#include "api.h" -#include "variant.h" -#include "skinny.h" -#include -#include - -/*void display_vector (const unsigned char* x, int lenx) { - int i; - - for (i = 0; i < lenx; i++) { - //printf("%02x",x[i]); - } - //printf("\n"); - }*/ - -void pad (const unsigned char* m, unsigned char* mp, int ver, int len8) { - int i; - - for (i = 0; i < ver; i++) { - if (i < len8) { - mp[i] = m[i]; - } - else if (i == ver - 1) { - mp[i] = (len8 & 0x0f); - } - else { - mp[i] = 0x00; - } - } -} - -void g (unsigned char* s, unsigned char* c) { - c[0] = s[4]; - c[1] = s[5]; - c[2] = s[6]; - c[3] = s[7]; - - c[4] = s[8]; - c[5] = s[9]; - c[6] = s[10]; - c[7] = s[11]; - - c[8] = s[12]; - c[9] = s[13]; - c[10] = s[14]; - c[11] = s[15]; - - c[12] = s[0] ^ s[12]; - c[13] = s[1] ^ s[13]; - c[14] = s[2] ^ s[14]; - c[15] = s[3] ^ s[15]; - -} - -void g8A (unsigned char* s, unsigned char* c) { - int i; - - for (i = 0; i < 16; i++) { - c[i] = (s[i] >> 1) ^ (s[i] & 0x80) ^ ((s[i] & 0x01) << 7); - } -} - -void rho_ad (const unsigned char* m, - unsigned char* s, - int len8, - int ver) { - int i; - unsigned char mp [16]; - - //mp = (unsigned char*) malloc(ver); - - //printf("rho in m = ");display_vector(m,len8); - pad(m,mp,ver,len8); - //printf("rho in mp = ");display_vector(mp,16); - //printf("rho in s = ");display_vector(s,16); - //g(s,c); - //g8A(s,c); - for (i = 0; i < ver; i++) { - s[i] = s[i] ^ mp[i]; - } - //printf("rho out s = ");display_vector(s,16); - ////printf("rho out c = ");display_vector(c,16); - - //free(mp); - -} - -void rho (const unsigned char* m, - unsigned char* c, - unsigned char* s, - int len8, - int ver) { - int i; - unsigned char mp [16]; - - - - //printf("rho in m = ");display_vector(m,len8); - pad(m,mp,ver,len8); - //printf("rho in mp = ");display_vector(mp,16); - //printf("rho in s = ");display_vector(s,16); - //g(s,c); - g8A(s,c); - for (i = 0; i < ver; i++) { - s[i] = s[i] ^ mp[i]; - if (i < len8) { - c[i] = c[i] ^ mp[i]; - } - else { - c[i] = 0; - } - } - //printf("rho out s = ");display_vector(s,16); - //printf("rho out c = ");display_vector(c,16); - - -} - -void reset_lfsr_gf24 (unsigned char* CNT) { - CNT[0] = 0x01; - CNT[1] = 0x00; - CNT[2] = 0x00; -} - -void lfsr_gf24 (unsigned char* CNT) { - unsigned char fb0; - - fb0 = CNT[2] >> 7; - - CNT[2] = (CNT[2] << 1) | (CNT[1] >> 7); - CNT[1] = (CNT[1] << 1) | (CNT[0] >> 7); - if (fb0 == 1) { - CNT[0] = (CNT[0] << 1) ^ 0x1b; - } - else { - CNT[0] = (CNT[0] << 1); - } -} - -void compose_tweakey (unsigned char* KT, - const unsigned char* K, - unsigned char* T, - unsigned char* CNT, - unsigned char D, - int t) { - - int i; - - for (i = 0; i < 3; i++) { - KT[i] = CNT[i]; - } - KT[i] = D; - for (i = 0; i < t; i++) { - KT[i+4] = T[i]; - } - for (i = 0; i < 16; i++) { - KT[i+16] = K[i]; - } - - -} - -void block_cipher(unsigned char* s, - const unsigned char* k, unsigned char* T, - unsigned char* CNT, unsigned char D, int t, int n) { - unsigned char KT [32]; - - (void)n; - compose_tweakey(KT,k,T,CNT,D,t); - //printf("BC in kt = ");display_vector(KT,2*n); - //printf("BC in s = ");display_vector(s,n); - skinny_128_256_enc (s,KT); - //printf("BC out s = ");display_vector(s,n); - -} - -void nonce_encryption (const unsigned char* N, - unsigned char* CNT, - unsigned char*s, const unsigned char* k, - unsigned int t, unsigned int n, unsigned char D) { - unsigned char T [16]; - unsigned int i; - - for (i = 0; i < t; i++) { - T[i] = N[i]; - } - //printf("nonce cnt = ");display_vector(CNT,3); - block_cipher(s,k,T,CNT,D,t,n); - -} - -void generate_tag (unsigned char** c, unsigned char* s, - int n, unsigned long long* clen) { - g8A(s, *c); - *c = *c + n; - *c = *c - *clen; - -} - -unsigned long long msg_encryption (const unsigned char** M, unsigned char** c, - const unsigned char* N, - unsigned char* CNT, - unsigned char*s, const unsigned char* k, - unsigned int n, unsigned int t, unsigned char D, - unsigned long long mlen) { - int len8; - - - if (mlen >= n) { - len8 = n; - mlen = mlen - n; - } - else { - len8 = mlen; - mlen = 0; - } - rho(*M, *c, s, len8, n); - *c = *c + len8; - *M = *M + len8; - lfsr_gf24(CNT); - nonce_encryption(N,CNT,s,k,t,n,D); - return mlen; -} - -void irho (unsigned char* m, - const unsigned char* c, - unsigned char* s, - int len8, - int ver) { - int i; - unsigned char cp [16]; - - //printf("irho in c = ");display_vector(c,len8); - pad(c,cp,ver,len8); - //printf("irho in cp = ");display_vector(cp,16); - //printf("irho in s = ");display_vector(s,16); - - g8A(s,m); - for (i = 0; i < ver; i++) { - if (i < len8) { - s[i] = s[i] ^ cp[i] ^ m[i]; - } - else { - s[i] = s[i] ^ cp[i]; - } - if (i < len8) { - m[i] = m[i] ^ cp[i]; - } - else { - m[i] = 0; - } - } - //printf("irho out s = ");display_vector(s,16); - //printf("irho out m = ");display_vector(c,16); - -} - -unsigned long long msg_decryption (unsigned char** M, const unsigned char** c, - const unsigned char* N, - unsigned char* CNT, - unsigned char*s, const unsigned char* k, - unsigned int n, unsigned int t, unsigned char D, - unsigned long long clen) { - int len8; - - - if (clen >= n) { - len8 = n; - clen = clen - n; - } - else { - len8 = clen; - clen = 0; - } - irho(*M, *c, s, len8, n); - *c = *c + len8; - *M = *M + len8; - lfsr_gf24(CNT); - nonce_encryption(N,CNT,s,k,t,n,D); - return clen; -} - -unsigned long long ad_encryption (const unsigned char** A, unsigned char* s, - const unsigned char* k, unsigned long long adlen, - unsigned char* CNT, - unsigned char D, - unsigned int n, unsigned int t) { - - - unsigned char T [16]; - - int len8; - - - if (adlen >= n) { - len8 = n; - adlen = adlen - n; - } - else { - len8 = adlen; - adlen = 0; - } - //printf("AD in = ");display_vector(*A,len8); - rho_ad(*A, s, len8, n); - *A = *A + len8; - lfsr_gf24(CNT); - //printf("AD cnt = ");display_vector(CNT,3); - if (adlen != 0) { - if (adlen >= t) { - len8 = t; - adlen = adlen - t; - } - else { - len8 = adlen; - adlen = 0; - } - pad(*A, T, t, len8); - *A = *A + len8; - block_cipher(s,k,T,CNT,D,t,n); - lfsr_gf24(CNT); - } - - return adlen; -} - -int crypto_aead_encrypt ( - unsigned char* c, unsigned long long* clen, - const unsigned char* m, unsigned long long mlen, - const unsigned char* ad, unsigned long long adlen, - const unsigned char* nsec, - const unsigned char* npub, - const unsigned char* k - ) -{ - unsigned char s[16]; - unsigned char CNT[3]; - const unsigned char* A; - const unsigned char* M; - const unsigned char* N; - unsigned long long n, t, i; - - (void)nsec; - A = ad; - M = m; - N = npub; - - n = AD_BLK_LEN_ODD; - t = AD_BLK_LEN_EVN; - - for (i = 0; i < n; i++) { - s[i] = 0; - } - reset_lfsr_gf24(CNT); - //printf("s = ");display_vector(s,16); - //printf("cnt = ");display_vector(CNT,3); - - if (adlen == 0) { // AD is an empty string - lfsr_gf24(CNT); - nonce_encryption(N,CNT,s,k,t,n,0x9a); - } - else while (adlen > 0) { - if (adlen < n) { // The last block of AD is odd and incomplete - adlen = ad_encryption(&A,s,k,adlen,CNT,0x88,n,t); - nonce_encryption(N,CNT,s,k,t,n,0x9a); - } - else if (adlen == n) { // The last block of AD is odd and complete - adlen = ad_encryption(&A,s,k,adlen,CNT,0x88,n,t); - nonce_encryption(N,CNT,s,k,t,n,0x98); - } - else if (adlen < (n+t)) { // The last block of AD is even and incomplete - adlen = ad_encryption(&A,s,k,adlen,CNT,0x88,n,t); - nonce_encryption(N,CNT,s,k,t,n,0x9a); - } - else if (adlen == (n+t)) { // The last block of AD is even and complete - adlen = ad_encryption(&A,s,k,adlen,CNT,0x88,n,t); - nonce_encryption(N,CNT,s,k,t,n,0x98); - } - else { // A normal full pair of blocks of AD - adlen = ad_encryption(&A,s,k,adlen,CNT,0x88,n,t); - } - } - - reset_lfsr_gf24(CNT); - - n = MSG_BLK_LEN; - *clen = mlen + n; - - if (mlen == 0) { // AD is an empty string - lfsr_gf24(CNT); - nonce_encryption(N,CNT,s,k,t,n,0x95); - } - else while (mlen > 0) { - if (mlen < n) { // The last block of M is incomplete - mlen = msg_encryption(&M,&c,N,CNT,s,k,n,t,0x95,mlen); - } - else if (mlen == n) { // The last block of M is complete - mlen = msg_encryption(&M,&c,N,CNT,s,k,n,t,0x94,mlen); - } - else { // A normal full message block - mlen = msg_encryption(&M,&c,N,CNT,s,k,n,t,0x84,mlen); - } - } - - - // Tag generation - generate_tag(&c,s,n,clen); - //printf("T = ");display_vector(c+*clen-n,n); - - //free(s); - //free(CNT); - - return 0; -} - - -int crypto_aead_decrypt( -unsigned char *m,unsigned long long *mlen, -unsigned char *nsec, -const unsigned char *c,unsigned long long clen, -const unsigned char *ad,unsigned long long adlen, -const unsigned char *npub, -const unsigned char *k -) -{ - - unsigned char s[16]; - unsigned char T[16]; - unsigned char CNT[3]; - const unsigned char* A; - unsigned char* M; - const unsigned char* N; - unsigned long long n, t, i; - - (void)nsec; - A = ad; - M = m; - N = npub; - - n = AD_BLK_LEN_ODD; - t = AD_BLK_LEN_EVN; - - for (i = 0; i < n; i++) { - s[i] = 0; - } - reset_lfsr_gf24(CNT); - //printf("s = ");display_vector(s,16); - //printf("cnt = ");display_vector(CNT,3); - - if (adlen == 0) { // AD is an empty string - lfsr_gf24(CNT); - nonce_encryption(N,CNT,s,k,t,n,0x9a); - } - else while (adlen > 0) { - if (adlen < n) { // The last block of AD is odd and incomplete - adlen = ad_encryption(&A,s,k,adlen,CNT,0x08,n,t); - nonce_encryption(N,CNT,s,k,t,n,0x9a); - } - else if (adlen == n) { // The last block of AD is odd and complete - adlen = ad_encryption(&A,s,k,adlen,CNT,0x88,n,t); - nonce_encryption(N,CNT,s,k,t,n,0x98); - } - else if (adlen < (n+t)) { // The last block of AD is even and incomplete - adlen = ad_encryption(&A,s,k,adlen,CNT,0x88,n,t); - nonce_encryption(N,CNT,s,k,t,n,0x9a); - } - else if (adlen == (n+t)) { // The last block of AD is even and complete - adlen = ad_encryption(&A,s,k,adlen,CNT,0x88,n,t); - nonce_encryption(N,CNT,s,k,t,n,0x98); - } - else { // A normal full pair of blocks of AD - adlen = ad_encryption(&A,s,k,adlen,CNT,0x88,n,t); - } - } - - reset_lfsr_gf24(CNT); - - n = MSG_BLK_LEN; - - clen = clen - n; - - *mlen = clen; - - if (clen == 0) { // C is an empty string - lfsr_gf24(CNT); - nonce_encryption(N,CNT,s,k,t,n,0x95); - } - else while (clen > 0) { - if (clen < n) { // The last block of C is incomplete - clen = msg_decryption(&M,&c,N,CNT,s,k,n,t,0x95,clen); - } - else if (clen == n) { // The last block of C is complete - clen = msg_decryption(&M,&c,N,CNT,s,k,n,t,0x94,clen); - } - else { // A normal full message block - clen = msg_decryption(&M,&c,N,CNT,s,k,n,t,0x84,clen); - } - } - - - // Tag generation - g8A(s, T); - //printf("T = ");display_vector(T,n); - for (i = 0; i < 16; i++) { - if (T[i] != (*(c+i))) { - return -1; - } - } - - return 0; - -} diff --git a/romulus/Implementations/crypto_aead/romulusn3v12/ref/genkat_aead.c b/romulus/Implementations/crypto_aead/romulusn3v12/ref/genkat_aead.c deleted file mode 100644 index 6e6ae11..0000000 --- a/romulus/Implementations/crypto_aead/romulusn3v12/ref/genkat_aead.c +++ /dev/null @@ -1,162 +0,0 @@ -// -// NIST-developed software is provided by NIST as a public service. -// You may use, copy and distribute copies of the software in any medium, -// provided that you keep intact this entire notice. You may improve, -// modify and create derivative works of the software or any portion of -// the software, and you may copy and distribute such modifications or -// works. Modified works should carry a notice stating that you changed -// the software and should note the date and nature of any such change. -// Please explicitly acknowledge the National Institute of Standards and -// Technology as the source of the software. -// -// NIST-developed software is expressly provided "AS IS." NIST MAKES NO -// WARRANTY OF ANY KIND, EXPRESS, IMPLIED, IN FACT OR ARISING BY OPERATION -// OF LAW, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTY OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT AND DATA ACCURACY. NIST -// NEITHER REPRESENTS NOR WARRANTS THAT THE OPERATION OF THE SOFTWARE WILL BE -// UNINTERRUPTED OR ERROR-FREE, OR THAT ANY DEFECTS WILL BE CORRECTED. NIST -// DOES NOT WARRANT OR MAKE ANY REPRESENTATIONS REGARDING THE USE OF THE SOFTWARE -// OR THE RESULTS THEREOF, INCLUDING BUT NOT LIMITED TO THE CORRECTNESS, ACCURACY, -// RELIABILITY, OR USEFULNESS OF THE SOFTWARE. -// -// You are solely responsible for determining the appropriateness of using and -// distributing the software and you assume all risks associated with its use, -// including but not limited to the risks and costs of program errors, compliance -// with applicable laws, damage to or loss of data, programs or equipment, and -// the unavailability or interruption of operation. This software is not intended -// to be used in any situation where a failure could cause risk of injury or -// damage to property. The software developed by NIST employees is not subject to -// copyright protection within the United States. -// - -// disable deprecation for sprintf and fopen -#ifdef _MSC_VER -#define _CRT_SECURE_NO_WARNINGS -#endif - -#include -#include - -#include "crypto_aead.h" -#include "api.h" - -#define KAT_SUCCESS 0 -#define KAT_FILE_OPEN_ERROR -1 -#define KAT_DATA_ERROR -3 -#define KAT_CRYPTO_FAILURE -4 - -#define MAX_FILE_NAME 256 -#define MAX_MESSAGE_LENGTH 32 -#define MAX_ASSOCIATED_DATA_LENGTH 32 - -void init_buffer(unsigned char *buffer, unsigned long long numbytes); - -void fprint_bstr(FILE *fp, const char *label, const unsigned char *data, unsigned long long length); - -int generate_test_vectors(); - -int main() -{ - int ret = generate_test_vectors(); - - if (ret != KAT_SUCCESS) { - fprintf(stderr, "test vector generation failed with code %d\n", ret); - } - - return ret; -} - -int generate_test_vectors() -{ - FILE *fp; - char fileName[MAX_FILE_NAME]; - unsigned char key[CRYPTO_KEYBYTES]; - unsigned char nonce[CRYPTO_NPUBBYTES]; - unsigned char msg[MAX_MESSAGE_LENGTH]; - unsigned char msg2[MAX_MESSAGE_LENGTH]; - unsigned char ad[MAX_ASSOCIATED_DATA_LENGTH]; - unsigned char ct[MAX_MESSAGE_LENGTH + CRYPTO_ABYTES]; - unsigned long long clen, mlen2; - int count = 1; - int func_ret, ret_val = KAT_SUCCESS; - - init_buffer(key, sizeof(key)); - init_buffer(nonce, sizeof(nonce)); - init_buffer(msg, sizeof(msg)); - init_buffer(ad, sizeof(ad)); - - sprintf(fileName, "LWC_AEAD_KAT_%d_%d.txt", (CRYPTO_KEYBYTES * 8), (CRYPTO_NPUBBYTES * 8)); - - if ((fp = fopen(fileName, "w")) == NULL) { - fprintf(stderr, "Couldn't open <%s> for write\n", fileName); - return KAT_FILE_OPEN_ERROR; - } - - for (unsigned long long mlen = 0; (mlen <= MAX_MESSAGE_LENGTH) && (ret_val == KAT_SUCCESS); mlen++) { - //for (unsigned long long mlen = 0; (mlen <= 0) && (ret_val == KAT_SUCCESS); mlen++) { - for (unsigned long long adlen = 0; adlen <= MAX_ASSOCIATED_DATA_LENGTH; adlen++) { - //for (unsigned long long adlen = 0; adlen <= 17; adlen++) { - - printf("%0d\n", (int)clen); - - fprintf(fp, "Count = %d\n", count++); - - fprint_bstr(fp, "Key = ", key, CRYPTO_KEYBYTES); - - fprint_bstr(fp, "Nonce = ", nonce, CRYPTO_NPUBBYTES); - - fprint_bstr(fp, "PT = ", msg, mlen); - - fprint_bstr(fp, "AD = ", ad, adlen); - - if ((func_ret = crypto_aead_encrypt(ct, &clen, msg, mlen, ad, adlen, NULL, nonce, key)) != 0) { - fprintf(fp, "crypto_aead_encrypt returned <%d>\n", func_ret); - ret_val = KAT_CRYPTO_FAILURE; - break; - } - - fprint_bstr(fp, "CT = ", ct, clen); - - fprintf(fp, "\n"); - - if ((func_ret = crypto_aead_decrypt(msg2, &mlen2, NULL, ct, clen, ad, adlen, nonce, key)) != 0) { - fprintf(fp, "crypto_aead_decrypt returned <%d>\n", func_ret); - ret_val = KAT_CRYPTO_FAILURE; - break; - } - - if (mlen != mlen2) { - fprintf(fp, "crypto_aead_decrypt returned bad 'mlen': Got <%llu>, expected <%llu>\n", mlen2, mlen); - ret_val = KAT_CRYPTO_FAILURE; - break; - } - - if (memcmp(msg, msg2, mlen)) { - fprintf(fp, "crypto_aead_decrypt did not recover the plaintext\n"); - ret_val = KAT_CRYPTO_FAILURE; - break; - } - } - } - - fclose(fp); - - return ret_val; -} - - -void fprint_bstr(FILE *fp, const char *label, const unsigned char *data, unsigned long long length) -{ - fprintf(fp, "%s", label); - - for (unsigned long long i = 0; i < length; i++) - fprintf(fp, "%02X", data[i]); - - fprintf(fp, "\n"); -} - -void init_buffer(unsigned char *buffer, unsigned long long numbytes) -{ - for (unsigned long long i = 0; i < numbytes; i++) - buffer[i] = (unsigned char)i; -} diff --git a/romulus/Implementations/crypto_aead/romulusn3v12/ref/skinny.h b/romulus/Implementations/crypto_aead/romulusn3v12/ref/skinny.h deleted file mode 100644 index a33ba58..0000000 --- a/romulus/Implementations/crypto_aead/romulusn3v12/ref/skinny.h +++ /dev/null @@ -1 +0,0 @@ -extern void skinny_128_256_enc (unsigned char* input, const unsigned char* userkey); diff --git a/romulus/Implementations/crypto_aead/romulusn3v12/ref/skinny_reference.c b/romulus/Implementations/crypto_aead/romulusn3v12/ref/skinny_reference.c deleted file mode 100644 index 171a179..0000000 --- a/romulus/Implementations/crypto_aead/romulusn3v12/ref/skinny_reference.c +++ /dev/null @@ -1,547 +0,0 @@ -/* - * Date: 11 December 2015 - * Contact: Thomas Peyrin - thomas.peyrin@gmail.com - */ - -#include -#include -#include -#include -#include "skinny.h" - -#define DEBUG 0 - -// Table that encodes the parameters of the various Skinny versions: -// (block size, key size, number of rounds) -//Skinny-64-64: 32 rounds -//Skinny-64-128: 36 rounds -//Skinny-64-192: 40 rounds -//Skinny-128-128: 40 rounds -//Skinny-128-256: 48 rounds -//Skinny-128-384: 56 rounds -int versions[6][3]={{64,64,32},{64,128,36},{64,192,40},{128,128,40},{128,256,48},{128,384,56}}; - -// Packing of data is done as follows (state[i][j] stands for row i and column j): -// 0 1 2 3 -// 4 5 6 7 -// 8 9 10 11 -//12 13 14 15 - -// 4-bit Sbox -const unsigned char sbox_4[16] = {12,6,9,0,1,10,2,11,3,8,5,13,4,14,7,15}; -const unsigned char sbox_4_inv[16] = {3,4,6,8,12,10,1,14,9,2,5,7,0,11,13,15}; - -// 8-bit Sbox -const unsigned char sbox_8[256] = {0x65 , 0x4c , 0x6a , 0x42 , 0x4b , 0x63 , 0x43 , 0x6b , 0x55 , 0x75 , 0x5a , 0x7a , 0x53 , 0x73 , 0x5b , 0x7b ,0x35 , 0x8c , 0x3a , 0x81 , 0x89 , 0x33 , 0x80 , 0x3b , 0x95 , 0x25 , 0x98 , 0x2a , 0x90 , 0x23 , 0x99 , 0x2b ,0xe5 , 0xcc , 0xe8 , 0xc1 , 0xc9 , 0xe0 , 0xc0 , 0xe9 , 0xd5 , 0xf5 , 0xd8 , 0xf8 , 0xd0 , 0xf0 , 0xd9 , 0xf9 ,0xa5 , 0x1c , 0xa8 , 0x12 , 0x1b , 0xa0 , 0x13 , 0xa9 , 0x05 , 0xb5 , 0x0a , 0xb8 , 0x03 , 0xb0 , 0x0b , 0xb9 ,0x32 , 0x88 , 0x3c , 0x85 , 0x8d , 0x34 , 0x84 , 0x3d , 0x91 , 0x22 , 0x9c , 0x2c , 0x94 , 0x24 , 0x9d , 0x2d ,0x62 , 0x4a , 0x6c , 0x45 , 0x4d , 0x64 , 0x44 , 0x6d , 0x52 , 0x72 , 0x5c , 0x7c , 0x54 , 0x74 , 0x5d , 0x7d ,0xa1 , 0x1a , 0xac , 0x15 , 0x1d , 0xa4 , 0x14 , 0xad , 0x02 , 0xb1 , 0x0c , 0xbc , 0x04 , 0xb4 , 0x0d , 0xbd ,0xe1 , 0xc8 , 0xec , 0xc5 , 0xcd , 0xe4 , 0xc4 , 0xed , 0xd1 , 0xf1 , 0xdc , 0xfc , 0xd4 , 0xf4 , 0xdd , 0xfd ,0x36 , 0x8e , 0x38 , 0x82 , 0x8b , 0x30 , 0x83 , 0x39 , 0x96 , 0x26 , 0x9a , 0x28 , 0x93 , 0x20 , 0x9b , 0x29 ,0x66 , 0x4e , 0x68 , 0x41 , 0x49 , 0x60 , 0x40 , 0x69 , 0x56 , 0x76 , 0x58 , 0x78 , 0x50 , 0x70 , 0x59 , 0x79 ,0xa6 , 0x1e , 0xaa , 0x11 , 0x19 , 0xa3 , 0x10 , 0xab , 0x06 , 0xb6 , 0x08 , 0xba , 0x00 , 0xb3 , 0x09 , 0xbb ,0xe6 , 0xce , 0xea , 0xc2 , 0xcb , 0xe3 , 0xc3 , 0xeb , 0xd6 , 0xf6 , 0xda , 0xfa , 0xd3 , 0xf3 , 0xdb , 0xfb ,0x31 , 0x8a , 0x3e , 0x86 , 0x8f , 0x37 , 0x87 , 0x3f , 0x92 , 0x21 , 0x9e , 0x2e , 0x97 , 0x27 , 0x9f , 0x2f ,0x61 , 0x48 , 0x6e , 0x46 , 0x4f , 0x67 , 0x47 , 0x6f , 0x51 , 0x71 , 0x5e , 0x7e , 0x57 , 0x77 , 0x5f , 0x7f ,0xa2 , 0x18 , 0xae , 0x16 , 0x1f , 0xa7 , 0x17 , 0xaf , 0x01 , 0xb2 , 0x0e , 0xbe , 0x07 , 0xb7 , 0x0f , 0xbf ,0xe2 , 0xca , 0xee , 0xc6 , 0xcf ,0xe7 , 0xc7 , 0xef , 0xd2 , 0xf2 , 0xde , 0xfe , 0xd7 , 0xf7 , 0xdf , 0xff}; -const unsigned char sbox_8_inv[256] = {0xac , 0xe8 , 0x68 , 0x3c , 0x6c , 0x38 , 0xa8 , 0xec , 0xaa , 0xae , 0x3a , 0x3e , 0x6a , 0x6e , 0xea , 0xee ,0xa6 , 0xa3 , 0x33 , 0x36 , 0x66 , 0x63 , 0xe3 , 0xe6 , 0xe1 , 0xa4 , 0x61 , 0x34 , 0x31 , 0x64 , 0xa1 , 0xe4 ,0x8d , 0xc9 , 0x49 , 0x1d , 0x4d , 0x19 , 0x89 , 0xcd , 0x8b , 0x8f , 0x1b , 0x1f , 0x4b , 0x4f , 0xcb , 0xcf ,0x85 , 0xc0 , 0x40 , 0x15 , 0x45 , 0x10 , 0x80 , 0xc5 , 0x82 , 0x87 , 0x12 , 0x17 , 0x42 , 0x47 , 0xc2 , 0xc7 ,0x96 , 0x93 , 0x03 , 0x06 , 0x56 , 0x53 , 0xd3 , 0xd6 , 0xd1 , 0x94 , 0x51 , 0x04 , 0x01 , 0x54 , 0x91 , 0xd4 ,0x9c , 0xd8 , 0x58 , 0x0c , 0x5c , 0x08 , 0x98 , 0xdc , 0x9a , 0x9e , 0x0a , 0x0e , 0x5a , 0x5e , 0xda , 0xde ,0x95 , 0xd0 , 0x50 , 0x05 , 0x55 , 0x00 , 0x90 , 0xd5 , 0x92 , 0x97 , 0x02 , 0x07 , 0x52 , 0x57 , 0xd2 , 0xd7 ,0x9d , 0xd9 , 0x59 , 0x0d , 0x5d , 0x09 , 0x99 , 0xdd , 0x9b , 0x9f , 0x0b , 0x0f , 0x5b , 0x5f , 0xdb , 0xdf ,0x16 , 0x13 , 0x83 , 0x86 , 0x46 , 0x43 , 0xc3 , 0xc6 , 0x41 , 0x14 , 0xc1 , 0x84 , 0x11 , 0x44 , 0x81 , 0xc4 ,0x1c , 0x48 , 0xc8 , 0x8c , 0x4c , 0x18 , 0x88 , 0xcc , 0x1a , 0x1e , 0x8a , 0x8e , 0x4a , 0x4e , 0xca , 0xce ,0x35 , 0x60 , 0xe0 , 0xa5 , 0x65 , 0x30 , 0xa0 , 0xe5 , 0x32 , 0x37 , 0xa2 , 0xa7 , 0x62 , 0x67 , 0xe2 , 0xe7 ,0x3d , 0x69 , 0xe9 , 0xad , 0x6d , 0x39 , 0xa9 , 0xed , 0x3b , 0x3f , 0xab , 0xaf , 0x6b , 0x6f , 0xeb , 0xef ,0x26 , 0x23 , 0xb3 , 0xb6 , 0x76 , 0x73 , 0xf3 , 0xf6 , 0x71 , 0x24 , 0xf1 , 0xb4 , 0x21 , 0x74 , 0xb1 , 0xf4 ,0x2c , 0x78 , 0xf8 , 0xbc , 0x7c , 0x28 , 0xb8 , 0xfc , 0x2a , 0x2e , 0xba , 0xbe , 0x7a , 0x7e , 0xfa , 0xfe ,0x25 , 0x70 , 0xf0 , 0xb5 , 0x75 , 0x20 , 0xb0 , 0xf5 , 0x22 , 0x27 , 0xb2 , 0xb7 , 0x72 , 0x77 , 0xf2 , 0xf7 ,0x2d , 0x79 , 0xf9 , 0xbd , 0x7d , 0x29 , 0xb9 , 0xfd , 0x2b , 0x2f , 0xbb , 0xbf , 0x7b , 0x7f , 0xfb , 0xff}; - -// ShiftAndSwitchRows permutation -const unsigned char P[16] = {0,1,2,3,7,4,5,6,10,11,8,9,13,14,15,12}; -const unsigned char P_inv[16] = {0,1,2,3,5,6,7,4,10,11,8,9,15,12,13,14}; - -// Tweakey permutation -const unsigned char TWEAKEY_P[16] = {9,15,8,13,10,14,12,11,0,1,2,3,4,5,6,7}; -const unsigned char TWEAKEY_P_inv[16] = {8,9,10,11,12,13,14,15,2,0,4,7,6,3,5,1}; - -// round constants -const unsigned char RC[62] = { - 0x01, 0x03, 0x07, 0x0F, 0x1F, 0x3E, 0x3D, 0x3B, 0x37, 0x2F, - 0x1E, 0x3C, 0x39, 0x33, 0x27, 0x0E, 0x1D, 0x3A, 0x35, 0x2B, - 0x16, 0x2C, 0x18, 0x30, 0x21, 0x02, 0x05, 0x0B, 0x17, 0x2E, - 0x1C, 0x38, 0x31, 0x23, 0x06, 0x0D, 0x1B, 0x36, 0x2D, 0x1A, - 0x34, 0x29, 0x12, 0x24, 0x08, 0x11, 0x22, 0x04, 0x09, 0x13, - 0x26, 0x0c, 0x19, 0x32, 0x25, 0x0a, 0x15, 0x2a, 0x14, 0x28, - 0x10, 0x20}; - -FILE* fic; - - -// Extract and apply the subtweakey to the internal state (must be the two top rows XORed together), then update the tweakey state -void AddKey(unsigned char state[4][4], unsigned char keyCells[3][4][4], int ver) -{ - int i, j, k; - unsigned char pos; - unsigned char keyCells_tmp[3][4][4]; - - // apply the subtweakey to the internal state - for(i = 0; i <= 1; i++) - { - for(j = 0; j < 4; j++) - { - state[i][j] ^= keyCells[0][i][j]; - if (2*versions[ver][0]==versions[ver][1]) - state[i][j] ^= keyCells[1][i][j]; - else if (3*versions[ver][0]==versions[ver][1]) - state[i][j] ^= keyCells[1][i][j] ^ keyCells[2][i][j]; - } - } - - // update the subtweakey states with the permutation - for(k = 0; k <(int)(versions[ver][1]/versions[ver][0]); k++){ - for(i = 0; i < 4; i++){ - for(j = 0; j < 4; j++){ - //application of the TWEAKEY permutation - pos=TWEAKEY_P[j+4*i]; - keyCells_tmp[k][i][j]=keyCells[k][pos>>2][pos&0x3]; - } - } - } - - // update the subtweakey states with the LFSRs - for(k = 0; k <(int)(versions[ver][1]/versions[ver][0]); k++){ - for(i = 0; i <= 1; i++){ - for(j = 0; j < 4; j++){ - //application of LFSRs for TK updates - if (k==1) - { - if (versions[ver][0]==64) - keyCells_tmp[k][i][j]=((keyCells_tmp[k][i][j]<<1)&0xE)^((keyCells_tmp[k][i][j]>>3)&0x1)^((keyCells_tmp[k][i][j]>>2)&0x1); - else - keyCells_tmp[k][i][j]=((keyCells_tmp[k][i][j]<<1)&0xFE)^((keyCells_tmp[k][i][j]>>7)&0x01)^((keyCells_tmp[k][i][j]>>5)&0x01); - } - else if (k==2) - { - if (versions[ver][0]==64) - keyCells_tmp[k][i][j]=((keyCells_tmp[k][i][j]>>1)&0x7)^((keyCells_tmp[k][i][j])&0x8)^((keyCells_tmp[k][i][j]<<3)&0x8); - else - keyCells_tmp[k][i][j]=((keyCells_tmp[k][i][j]>>1)&0x7F)^((keyCells_tmp[k][i][j]<<7)&0x80)^((keyCells_tmp[k][i][j]<<1)&0x80); - } - } - } - } - - for(k = 0; k <(int)(versions[ver][1]/versions[ver][0]); k++){ - for(i = 0; i < 4; i++){ - for(j = 0; j < 4; j++){ - keyCells[k][i][j]=keyCells_tmp[k][i][j]; - } - } - } -} - - -// Extract and apply the subtweakey to the internal state (must be the two top rows XORed together), then update the tweakey state (inverse function} -void AddKey_inv(unsigned char state[4][4], unsigned char keyCells[3][4][4], int ver) -{ - int i, j, k; - unsigned char pos; - unsigned char keyCells_tmp[3][4][4]; - - // update the subtweakey states with the permutation - for(k = 0; k <(int)(versions[ver][1]/versions[ver][0]); k++){ - for(i = 0; i < 4; i++){ - for(j = 0; j < 4; j++){ - //application of the inverse TWEAKEY permutation - pos=TWEAKEY_P_inv[j+4*i]; - keyCells_tmp[k][i][j]=keyCells[k][pos>>2][pos&0x3]; - } - } - } - - // update the subtweakey states with the LFSRs - for(k = 0; k <(int)(versions[ver][1]/versions[ver][0]); k++){ - for(i = 2; i <= 3; i++){ - for(j = 0; j < 4; j++){ - //application of inverse LFSRs for TK updates - if (k==1) - { - if (versions[ver][0]==64) - keyCells_tmp[k][i][j]=((keyCells_tmp[k][i][j]>>1)&0x7)^((keyCells_tmp[k][i][j]<<3)&0x8)^((keyCells_tmp[k][i][j])&0x8); - else - keyCells_tmp[k][i][j]=((keyCells_tmp[k][i][j]>>1)&0x7F)^((keyCells_tmp[k][i][j]<<7)&0x80)^((keyCells_tmp[k][i][j]<<1)&0x80); - } - else if (k==2) - { - if (versions[ver][0]==64) - keyCells_tmp[k][i][j]=((keyCells_tmp[k][i][j]<<1)&0xE)^((keyCells_tmp[k][i][j]>>3)&0x1)^((keyCells_tmp[k][i][j]>>2)&0x1); - else - keyCells_tmp[k][i][j]=((keyCells_tmp[k][i][j]<<1)&0xFE)^((keyCells_tmp[k][i][j]>>7)&0x01)^((keyCells_tmp[k][i][j]>>5)&0x01); - } - } - } - } - - for(k = 0; k <(int)(versions[ver][1]/versions[ver][0]); k++){ - for(i = 0; i < 4; i++){ - for(j = 0; j < 4; j++){ - keyCells[k][i][j]=keyCells_tmp[k][i][j]; - } - } - } - - - // apply the subtweakey to the internal state - for(i = 0; i <= 1; i++) - { - for(j = 0; j < 4; j++) - { - state[i][j] ^= keyCells[0][i][j]; - if (2*versions[ver][0]==versions[ver][1]) - state[i][j] ^= keyCells[1][i][j]; - else if (3*versions[ver][0]==versions[ver][1]) - state[i][j] ^= keyCells[1][i][j] ^ keyCells[2][i][j]; - } - } -} - - -// Apply the constants: using a LFSR counter on 6 bits, we XOR the 6 bits to the first 6 bits of the internal state -void AddConstants(unsigned char state[4][4], int r) -{ - state[0][0] ^= (RC[r] & 0xf); - state[1][0] ^= ((RC[r]>>4) & 0x3); - state[2][0] ^= 0x2; -} - -// apply the 4-bit Sbox -void SubCell4(unsigned char state[4][4]) -{ - int i,j; - for(i = 0; i < 4; i++) - for(j = 0; j < 4; j++) - state[i][j] = sbox_4[state[i][j]]; -} - -// apply the 4-bit inverse Sbox -void SubCell4_inv(unsigned char state[4][4]) -{ - int i,j; - for(i = 0; i < 4; i++) - for(j = 0; j < 4; j++) - state[i][j] = sbox_4_inv[state[i][j]]; -} - -// apply the 8-bit Sbox -void SubCell8(unsigned char state[4][4]) -{ - int i,j; - for(i = 0; i < 4; i++) - for(j = 0; j < 4; j++) - state[i][j] = sbox_8[state[i][j]]; -} - -// apply the 8-bit inverse Sbox -void SubCell8_inv(unsigned char state[4][4]) -{ - int i,j; - for(i = 0; i < 4; i++) - for(j = 0; j < 4; j++) - state[i][j] = sbox_8_inv[state[i][j]]; -} - -// Apply the ShiftRows function -void ShiftRows(unsigned char state[4][4]) -{ - int i, j, pos; - - unsigned char state_tmp[4][4]; - for(i = 0; i < 4; i++) - { - for(j = 0; j < 4; j++) - { - //application of the ShiftRows permutation - pos=P[j+4*i]; - state_tmp[i][j]=state[pos>>2][pos&0x3]; - } - } - - for(i = 0; i < 4; i++) - { - for(j = 0; j < 4; j++) - { - state[i][j]=state_tmp[i][j]; - } - } -} - -// Apply the inverse ShiftRows function -void ShiftRows_inv(unsigned char state[4][4]) -{ - int i, j, pos; - - unsigned char state_tmp[4][4]; - for(i = 0; i < 4; i++) - { - for(j = 0; j < 4; j++) - { - //application of the inverse ShiftRows permutation - pos=P_inv[j+4*i]; - state_tmp[i][j]=state[pos>>2][pos&0x3]; - } - } - - for(i = 0; i < 4; i++) - { - for(j = 0; j < 4; j++) - { - state[i][j]=state_tmp[i][j]; - } - } -} - -// Apply the linear diffusion matrix -//M = -//1 0 1 1 -//1 0 0 0 -//0 1 1 0 -//1 0 1 0 -void MixColumn(unsigned char state[4][4]) -{ - int j; - unsigned char temp; - - for(j = 0; j < 4; j++){ - state[1][j]^=state[2][j]; - state[2][j]^=state[0][j]; - state[3][j]^=state[2][j]; - - temp=state[3][j]; - state[3][j]=state[2][j]; - state[2][j]=state[1][j]; - state[1][j]=state[0][j]; - state[0][j]=temp; - } -} - -// Apply the inverse linear diffusion matrix -void MixColumn_inv(unsigned char state[4][4]) -{ - int j; - unsigned char temp; - - for(j = 0; j < 4; j++){ - temp=state[3][j]; - state[3][j]=state[0][j]; - state[0][j]=state[1][j]; - state[1][j]=state[2][j]; - state[2][j]=temp; - - state[3][j]^=state[2][j]; - state[2][j]^=state[0][j]; - state[1][j]^=state[2][j]; - } -} - -// decryption function of Skinny -void dec(unsigned char* input, const unsigned char* userkey, int ver) -{ - unsigned char state[4][4]; - unsigned char dummy[4][4]={{0}}; - unsigned char keyCells[3][4][4]; - int i; - - memset(keyCells, 0, 48); - for(i = 0; i < 16; i++) { - if (versions[ver][0]==64){ - if(i&1) - { - state[i>>2][i&0x3] = input[i>>1]&0xF; - keyCells[0][i>>2][i&0x3] = userkey[i>>1]&0xF; - if (versions[ver][1]>=128) - keyCells[1][i>>2][i&0x3] = userkey[(i+16)>>1]&0xF; - if (versions[ver][1]>=192) - keyCells[2][i>>2][i&0x3] = userkey[(i+32)>>1]&0xF; - } - else - { - state[i>>2][i&0x3] = (input[i>>1]>>4)&0xF; - keyCells[0][i>>2][i&0x3] = (userkey[i>>1]>>4)&0xF; - if (versions[ver][1]>=128) - keyCells[1][i>>2][i&0x3] = (userkey[(i+16)>>1]>>4)&0xF; - if (versions[ver][1]>=192) - keyCells[2][i>>2][i&0x3] = (userkey[(i+32)>>1]>>4)&0xF; - } - } - else if (versions[ver][0]==128){ - state[i>>2][i&0x3] = input[i]&0xFF; - - keyCells[0][i>>2][i&0x3] = userkey[i]&0xFF; - if (versions[ver][1]>=256) - keyCells[1][i>>2][i&0x3] = userkey[i+16]&0xFF; - if (versions[ver][1]>=384) - keyCells[2][i>>2][i&0x3] = userkey[i+32]&0xFF; - } - } - - for(i = versions[ver][2]-1; i >=0 ; i--){ - AddKey(dummy, keyCells, ver); - } - - #ifdef DEBUG - //f//printf(fic,"DEC - initial state: ");display_cipher_state(state,keyCells,ver);//f//printf(fic,"\n"); - #endif - - for(i = versions[ver][2]-1; i >=0 ; i--){ - MixColumn_inv(state); - #ifdef DEBUG - //f//printf(fic,"DEC - round %.2i - after MixColumn_inv: ",i);display_cipher_state(state,keyCells,ver);//f//printf(fic,"\n"); - #endif - ShiftRows_inv(state); - #ifdef DEBUG - //f//printf(fic,"DEC - round %.2i - after ShiftRows_inv: ",i);display_cipher_state(state,keyCells,ver);//f//printf(fic,"\n"); - #endif - AddKey_inv(state, keyCells, ver); - #ifdef DEBUG - //f//printf(fic,"DEC - round %.2i - after AddKey_inv: ",i);display_cipher_state(state,keyCells,ver);//f//printf(fic,"\n"); - #endif - AddConstants(state, i); - #ifdef DEBUG - //f//printf(fic,"DEC - round %.2i - after AddConstants_inv: ",i);display_cipher_state(state,keyCells,ver);//f//printf(fic,"\n"); - #endif - if (versions[ver][0]==64) - SubCell4_inv(state); - else - SubCell8_inv(state); - #ifdef DEBUG - //f//printf(fic,"DEC - round %.2i - after SubCell_inv: ",i);display_cipher_state(state,keyCells,ver);//f//printf(fic,"\n"); - #endif - } - - #ifdef DEBUG - //f//printf(fic,"DEC - final state: ");display_cipher_state(state,keyCells,ver);//f//printf(fic,"\n"); - #endif - - if (versions[ver][0]==64) - { - for(i = 0; i < 8; i++) - input[i] = ((state[(2*i)>>2][(2*i)&0x3] & 0xF) << 4) | (state[(2*i+1)>>2][(2*i+1)&0x3] & 0xF); - } - else if (versions[ver][0]==128) - { - for(i = 0; i < 16; i++) - input[i] = state[i>>2][i&0x3] & 0xFF; - } -} - -// encryption function of Skinny -void enc(unsigned char* input, const unsigned char* userkey, int ver) -{ - unsigned char state[4][4]; - unsigned char keyCells[3][4][4]; - int i; - - memset(keyCells, 0, 48); - for(i = 0; i < 16; i++) { - if (versions[ver][0]==64){ - if(i&1) - { - state[i>>2][i&0x3] = input[i>>1]&0xF; - keyCells[0][i>>2][i&0x3] = userkey[i>>1]&0xF; - if (versions[ver][1]>=128) - keyCells[1][i>>2][i&0x3] = userkey[(i+16)>>1]&0xF; - if (versions[ver][1]>=192) - keyCells[2][i>>2][i&0x3] = userkey[(i+32)>>1]&0xF; - } - else - { - state[i>>2][i&0x3] = (input[i>>1]>>4)&0xF; - keyCells[0][i>>2][i&0x3] = (userkey[i>>1]>>4)&0xF; - if (versions[ver][1]>=128) - keyCells[1][i>>2][i&0x3] = (userkey[(i+16)>>1]>>4)&0xF; - if (versions[ver][1]>=192) - keyCells[2][i>>2][i&0x3] = (userkey[(i+32)>>1]>>4)&0xF; - } - } - else if (versions[ver][0]==128){ - state[i>>2][i&0x3] = input[i]&0xFF; - keyCells[0][i>>2][i&0x3] = userkey[i]&0xFF; - if (versions[ver][1]>=256) - keyCells[1][i>>2][i&0x3] = userkey[i+16]&0xFF; - if (versions[ver][1]>=384) - keyCells[2][i>>2][i&0x3] = userkey[i+32]&0xFF; - } - } - - #ifdef DEBUG - //printf("ENC - initial state: ");display_cipher_state(state,keyCells,ver);//printf("\n"); - #endif - for(i = 0; i < versions[ver][2]; i++){ - if (versions[ver][0]==64) - SubCell4(state); - else - SubCell8(state); - #ifdef DEBUG - //printf("ENC - round %.2i - after SubCell: ",i);display_cipher_state(state,keyCells,ver);//printf("\n"); - #endif - AddConstants(state, i); - #ifdef DEBUG - //printf("ENC - round %.2i - after AddConstants: ",i);display_cipher_state(state,keyCells,ver);//printf("\n"); - #endif - AddKey(state, keyCells, ver); - #ifdef DEBUG - //printf("ENC - round %.2i - after AddKey: ",i);display_cipher_state(state,keyCells,ver);//printf("\n"); - #endif - ShiftRows(state); - #ifdef DEBUG - //printf("ENC - round %.2i - after ShiftRows: ",i);display_cipher_state(state,keyCells,ver);//printf("\n"); - #endif - MixColumn(state); - #ifdef DEBUG - //printf("ENC - round %.2i - after MixColumn: ",i);display_cipher_state(state,keyCells,ver);//printf("\n"); - #endif - } //The last subtweakey should not be added - - #ifdef DEBUG - //printf("ENC - final state: ");display_cipher_state(state,keyCells,ver);//printf("\n"); - #endif - - if (versions[ver][0]==64) - { - for(i = 0; i < 8; i++) - input[i] = ((state[(2*i)>>2][(2*i)&0x3] & 0xF) << 4) | (state[(2*i+1)>>2][(2*i+1)&0x3] & 0xF); - } - else if (versions[ver][0]==128) - { - for(i = 0; i < 16; i++) - input[i] = state[i>>2][i&0x3] & 0xFF; - } -} - -void skinny_128_256_enc (unsigned char* input, const unsigned char* userkey) { - enc(input,userkey,4); -} - -// generate test vectors for all the versions of Skinny -void TestVectors(int ver) -{ - unsigned char p[16]; - unsigned char c[16]; - unsigned char k[48]; - int n; - - for(n = 1; n < 10; n++) - { - int i; - for(i = 0; i < (versions[ver][0]>>3); i++) c[i] = p[i] = rand() & 0xff; - for(i = 0; i < (versions[ver][1]>>3); i++) k[i] = rand() & 0xff; - //printf("TK = "); for(i = 0; i < (versions[ver][1]>>3); i++) //printf("%02x", k[i]); //printf("\n"); - //printf("P = "); for(i = 0; i < (versions[ver][0]>>3); i++) //printf("%02x", p[i]); //printf("\n"); - enc(c,k,ver); - //printf("C = "); for(i = 0; i < (versions[ver][0]>>3); i++) //printf("%02x", c[i]); //printf("\n"); - dec(c,k,ver); - //printf("P' = "); for(i = 0; i < (versions[ver][0]>>3); i++) //printf("%02x", c[i]); //printf("\n\n"); - } -} - -/* int main() { */ -/* unsigned int i; */ -/* char name[30]; */ - -/* srand((unsigned) time (NULL)); */ - -/* //test all versions of Skinny */ -/* for (i=0; i<(sizeof(versions)/sizeof(*versions));i++) */ -/* { */ -/* s//printf(name, "test_vectors_%i_%i.txt", versions[i][0], versions[i][1]); */ -/* fic=fopen(name,"w"); */ -/* //printf("\n\nSkinny-%i/%i: \n",versions[i][0],versions[i][1]); */ -/* TestVectors(i); */ -/* fclose(fic); */ -/* //printf("Generating test vectors for Skinny-%i/%i - saved in file test_vectors_%i_%i.txt \n",versions[i][0],versions[i][1],versions[i][0],versions[i][1]); */ -/* } */ - -/* return 0; */ -/* } */ - - - diff --git a/romulus/Implementations/crypto_aead/romulusn3v12/ref/variant.h b/romulus/Implementations/crypto_aead/romulusn3v12/ref/variant.h deleted file mode 100644 index 27e7705..0000000 --- a/romulus/Implementations/crypto_aead/romulusn3v12/ref/variant.h +++ /dev/null @@ -1,3 +0,0 @@ -#define MSG_BLK_LEN 16 -#define AD_BLK_LEN_ODD 16 -#define AD_BLK_LEN_EVN 12 -- libgit2 0.26.0